<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>210156</bug_id>
          
          <creation_ts>2020-04-07 14:53:41 -0700</creation_ts>
          <short_desc>[ Mac iOS ] animations/animation-direction-normal.html is a flaky failure</short_desc>
          <delta_ts>2020-04-23 10:23:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Truitt Savell">tsavell</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>jacob_uphoff</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638812</commentid>
    <comment_count>0</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-04-07 14:53:41 -0700</bug_when>
    <thetext>animations/animation-direction-normal.html

This test has been a flaky failure on Mac and iOS for a while.

History:
https://results.webkit.org/?suite=layout-tests&amp;test=animations%2Fanimation-direction-normal.html

Diff MacOS:
--- /Volumes/Data/slave/catalina-debug-tests-wk1/build/layout-test-results/animations/animation-direction-normal-expected.txt
+++ /Volumes/Data/slave/catalina-debug-tests-wk1/build/layout-test-results/animations/animation-direction-normal-actual.txt
@@ -1,4 +1,4 @@
-PASS - &quot;margin-left&quot; property for &quot;box&quot; element at 0.5s saw something close to: 50
-PASS - &quot;margin-left&quot; property for &quot;box&quot; element at 1s saw something close to: 100
+FAIL - &quot;margin-left&quot; property for &quot;box&quot; element at 0.5s expected: 50 but saw: 79.19999694824219
+FAIL - &quot;margin-left&quot; property for &quot;box&quot; element at 1s expected: 100 but saw: 129.3000030517578
 PASS - &quot;margin-left&quot; property for &quot;box&quot; element at 2.5s saw something close to: 50
 

Diff iOS:
--- /Volumes/Data/slave/ipados-simulator-13-debug-tests-wk2/build/layout-test-results/animations/animation-direction-normal-expected.txt
+++ /Volumes/Data/slave/ipados-simulator-13-debug-tests-wk2/build/layout-test-results/animations/animation-direction-normal-actual.txt
@@ -1,4 +1,4 @@
-PASS - &quot;margin-left&quot; property for &quot;box&quot; element at 0.5s saw something close to: 50
+FAIL - &quot;margin-left&quot; property for &quot;box&quot; element at 0.5s expected: 50 but saw: 18.200000762939453
 PASS - &quot;margin-left&quot; property for &quot;box&quot; element at 1s saw something close to: 100
 PASS - &quot;margin-left&quot; property for &quot;box&quot; element at 2.5s saw something close to: 50</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638813</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-07 14:53:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/61411725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644270</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 05:23:43 -0700</bug_when>
    <thetext>This test disables the use of a pause API and thus relies exclusively on timers. Presumably this is to check the runtime behavior of the test, but then this makes the test flaky by design since it relies on timers.

We should probably nuke such tests, I don&apos;t think they serve much value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644272</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 05:57:35 -0700</bug_when>
    <thetext>I&apos;ll still try something to improve the situation and use a requestAnimationFrame() loop rather than set timers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644337</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 09:22:34 -0700</bug_when>
    <thetext>That won&apos;t help either. This test needs to be rewritten completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644806</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-23 09:46:57 -0700</bug_when>
    <thetext>*** Bug 209362 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644808</commentid>
    <comment_count>6</comment_count>
      <attachid>397350</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-23 09:56:10 -0700</bug_when>
    <thetext>Created attachment 397350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644813</commentid>
    <comment_count>7</comment_count>
      <attachid>397350</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-23 10:01:22 -0700</bug_when>
    <thetext>Comment on attachment 397350
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=397350&amp;action=review

&gt; LayoutTests/animations/resources/animation-test.js:34
&gt; +        this._target = options.target;

&quot;target&quot; is a bit generic. Maybe targetProperty?

&gt; LayoutTests/animations/resources/animation-test.js:91
&gt; +        // Reset the animation.
&gt; +        animation.cancel();
&gt; +
&gt; +        // Make sure it&apos;s in the paused state for seeking.
&gt; +        animation.pause();

Is the cancel then pause really necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644816</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-23 10:04:28 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 397350 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397350&amp;action=review
&gt; 
&gt; &gt; LayoutTests/animations/resources/animation-test.js:34
&gt; &gt; +        this._target = options.target;
&gt; 
&gt; &quot;target&quot; is a bit generic. Maybe targetProperty?

This is an element and it matches the terminology for KeyframeEffect::target.

&gt; &gt; LayoutTests/animations/resources/animation-test.js:91
&gt; &gt; +        // Reset the animation.
&gt; &gt; +        animation.cancel();
&gt; &gt; +
&gt; &gt; +        // Make sure it&apos;s in the paused state for seeking.
&gt; &gt; +        animation.pause();
&gt; 
&gt; Is the cancel then pause really necessary?

Yeah, I think we can get by with the cancel() call only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644832</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-23 10:23:25 -0700</bug_when>
    <thetext>Committed r260577: &lt;https://trac.webkit.org/changeset/260577&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397350</attachid>
            <date>2020-04-23 09:56:10 -0700</date>
            <delta_ts>2020-04-23 10:01:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210156-20200423185608.patch</filename>
            <type>text/plain</type>
            <size>18880</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTU5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWM3ZjI1ZDI1MDQ1ZjA3MWUzYjE3
MzhkYzFhNGFkNDIxNTU3ZGYzZS4uMTdkZGM1YjIxOTE3ZjBmNGJmNDgwMzNkOGI4ODY3Zjc0NzNj
MGMyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA0LTIzICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgWyBNYWMgaU9TIF0gYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLW5vcm1hbC5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTU2CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MTQxMTcyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgdGVzdHMgYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LW5vcm1hbC5odG1sIGFuZCBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS5o
dG1sIHdlcmUgYm90aCB3cml0dGVuCisgICAgICAgIHNpbWlsYXJseSB0byB0ZXN0IHRoYXQgYW4g
ZWxlbWVudCB0YXJnZXRlZCBieSBhIENTUyBBbmltYXRpb24gd291bGQgaGF2ZSBzdHlsZXMgYW5p
bWF0ZWQgd2hpbGUgdGhlIGFuaW1hdGlvbiBpcyBydW5uaW5nCisgICAgICAgIGFuZCB0aGF0IHRo
b3NlIHN0eWxlcyB3b3VsZCBubyBsb25nZXIgYmUgYW5pbWF0ZWQgb25jZSB0aGUgQ1NTIEFuaW1h
dGlvbiB3YXMgcGF1c2VkIHVzaW5nIHRoZSAiYW5pbWF0aW9uLXBsYXktc3RhdGUiCisgICAgICAg
IENTUyBwcm9wZXJ0eS4KKworICAgICAgICBUaGUgd2F5IHRob3NlIGFzc2VydGlvbnMgd2VyZSBt
YWRlIHdlcmUgdG8gdXNlIHNldFRpbWVvdXQoKSB0byBjaGVjayB0aGUgY29tcHV0ZWQgc3R5bGUg
YXQgYSBnaXZlbiB0aW1lIGFuZCBjb21wYXJlZCBpdAorICAgICAgICB0byBhbiBleHBlY3RlZCB2
YWx1ZSBnaXZlIG9yIHRha2UgYW4gZXJyb3IgbWFyZ2luLiBUaGlzIGRlc2lnbiB3YXMgZmxha3ks
IGFzIGEgc3lzdGVtIHVuZGVyIGxvYWQgY291bGQgZWFzaWx5IG5vdCBydW4gdGhlCisgICAgICAg
IHRpbWVvdXQgdW50aWwgYSBtdWNoIGxhcmdlciBkZWx0YSB0aGFuIHRoZSBvbmUgZXhwZWN0ZWQg
d291bGQgZWxhcHNlLgorCisgICAgICAgIFdlIHVzZSBhIG5ldyBKUyBoZWxwZXIgdG8gd3JpdGUg
dGhlc2UgdGVzdHMgaW4gYSBub24tZmxha3kgbWFubmVyLiBUaGUgdGVjaG5pcXVlIHVzZWQgbm93
IGlzIHRvIHJlY29yZCB0aGUgY29tcHV0ZWQgc3R5bGUKKyAgICAgICAgd2hpbGUgdGhlIGFuaW1h
dGlvbiBpcyBydW5uaW5nIHdpdGhvdXQgcHJvdmlkaW5nIGV4cGVjdGVkIHRpbWVzIGFuZCB2YWx1
ZXMsIGJ1dCByYXRoZXIgc3BlY2lmeWluZyBkZWxheXMgYmV0d2VlbiB3aGljaCB3ZQorICAgICAg
ICB3YW50IHRvIHJlY29yZCB0aGUgY29tcHV0ZWQgc3R5bGUuIE9uY2UgYWxsIHZhbHVlcyBoYXZl
IGJlZW4gcmVjb3JkZWQsIGEgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNoZWNrIHRob3NlIHJlY29y
ZGVkIHZhbHVlcworICAgICAgICBieSB1c2luZyB0aGUgV2ViIEFuaW1hdGlvbnMgQVBJIHRvIHBh
dXNlIGFuZCBzZWVrIHRoZSBhbmltYXRpb24gYXQgcmVjb3JkZWQgdGltZXMgYW5kIHF1ZXJ5IHRo
ZSBjb21wdXRlZCBzdHlsZSwgd2hpY2ggYWxsb3dzCisgICAgICAgIHVzIHRvIHRlc3QgdmFsdWVz
IHdpdGhvdXQgYW4gZXJyb3IgbWFyZ2luLgorCisgICAgICAgIEZpbmFsbHksIHRoZSBuZXcgSlMg
aGVscGVyIGFsc28gYWxsb3dzIHRvIGNoZWNrIHRoZSBjb21wdXRlZCBzdHlsZSB1c2luZyBhIHRp
bWVvdXQgd2hlbiB0aGUgYW5pbWF0aW9uIHBsYXkgc3RhdGUgaXMgbm90IHJlbGV2YW50LAorICAg
ICAgICBhbGxvd2luZyB0aG9zZSB0ZXN0cyB0byBwYXVzZSB0aGUgYW5pbWF0aW9uIHVzaW5nIHRo
ZSAiYW5pbWF0aW9uLXBsYXktc3RhdGUiIHByb3BlcnR5IGFuZCBjaGVjayBhZnRlciBpbmNyZW1l
bnRhbCB0aW1lb3V0cworICAgICAgICB0aGF0IHRoZSBjb21wdXRlZCBzdHlsZSBkaWQgbm90IGNo
YW5nZS4KKworICAgICAgICBXZSBhbHNvIG1hZGUgdGhlIHRlc3RzIHVzZSB0aGUgV1BUIGhhcm5l
c3MgZm9yIGFzc2VydGlvbnMgYW5kIHJlcG9ydGluZy4KKworICAgICAgICAqIGFuaW1hdGlvbnMv
YW5pbWF0aW9uLWRpcmVjdGlvbi1ub3JtYWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1h
dGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1ub3JtYWwuaHRtbDoKKyAgICAgICAgKiBhbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbDoKKyAgICAgICAgKiBh
bmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC5qczogQWRkZWQuCisgICAgICAgIChB
bmltYXRpb25UZXN0KToKKyAgICAgICAgKEFuaW1hdGlvblRlc3QucHJvdG90eXBlLmdldCBhbmlt
YXRpb24pOgorICAgICAgICAoQW5pbWF0aW9uVGVzdC5wcm90b3R5cGUuZ2V0IHZhbHVlKToKKyAg
ICAgICAgKEFuaW1hdGlvblRlc3QucHJvdG90eXBlLmFzeW5jIHZhbHVlQWZ0ZXJXYWl0aW5nRm9y
KToKKyAgICAgICAgKEFuaW1hdGlvblRlc3QucHJvdG90eXBlLmFzeW5jIHJlY29yZFZhbHVlQWZ0
ZXJSdW5uaW5nRm9yKToKKyAgICAgICAgKEFuaW1hdGlvblRlc3QucHJvdG90eXBlLmNoZWNrUmVj
b3JkZWRWYWx1ZXMpOgorICAgICAgICAoQW5pbWF0aW9uVGVzdC5wcm90b3R5cGUuX3RpY2tVbnRp
bCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wNC0yMyAgRGll
Z28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0g
R2FyZGVuaW5nLCB1cGRhdGUgYmFzZWxpbmVzIGFuZCB0ZXN0IGV4cGVjdGF0aW9ucwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLW5vcm1hbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
bm9ybWFsLWV4cGVjdGVkLnR4dAppbmRleCAzNzBkYmNjYzJkNzAyN2Y0OGJiMDExMmE0ZmM0NDcw
NzJjYjY0NmRiLi42OTA2YmEwNjAyNzAwNzc0ODMwMzY1ZjUzOTBjY2M0ZTgwNDM3MmI5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tbm9ybWFs
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tbm9ybWFsLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLVBBU1MgLSAibWFyZ2lu
LWxlZnQiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogNTAKLVBBU1MgLSAibWFyZ2luLWxlZnQiIHByb3BlcnR5IGZvciAiYm94IiBlbGVt
ZW50IGF0IDFzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEwMAotUEFTUyAtICJtYXJnaW4tbGVm
dCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMi41cyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiA1MAorCitQQVNTIFBhdXNpbmcgYW4gYW5pbWF0aW9uIHVzaW5nIHRoZSBhbmltYXRpb24t
cGxheS1zdGF0ZSBwcm9wZXJ0eSBzdG9wcyBhbmltYXRpbmcgc3R5bGVzLiAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLW5vcm1hbC5odG1s
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLW5vcm1hbC5odG1s
CmluZGV4IDYyZjczYjgyN2JmMWFkMTY4YjNhN2FhZWEwMDY1YmU4MmNlZjdmNjQuLjhiODZmMDI2
OGIzY2NhYTE4NDRmZTY1N2Q1ODYxMjVlZGZiN2I0MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1ub3JtYWwuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tbm9ybWFsLmh0bWwKQEAgLTEsNyAr
MSw3IEBACiA8aHRtbCBsYW5nPSJlbiI+CiA8aGVhZD4KICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotICA8dGl0bGU+
VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlPC90aXRsZT4KKyAgPHRpdGxlPlRl
c3Qgb2YgYW5pbWF0aW9uLXBsYXktc3RhdGU8L3RpdGxlPgogICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiIG1lZGlhPSJzY3JlZW4iPgogICAgIGJvZHkgewogICAgICAgbWFyZ2luOiAwOwpAQCAtMTUs
NTggKzE1LDUxIEBACiAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7CiAgICAgICBtYXJnaW46IDA7Ci0gICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlv
bjogMnM7Ci0gICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsKLSAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKLSAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwotICAgICAgLXdlYmtpdC1hbmltYXRpb24t
bmFtZTogIm1vdmUxIjsKKyAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7CisgICAgICBh
bmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CisgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNv
dW50OiBpbmZpbml0ZTsKKyAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsK
KyAgICAgIGFuaW1hdGlvbi1uYW1lOiAibW92ZTEiOwogICAgIH0KLSAgICAjc2FmZXpvbmUgewot
ICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgdG9wOiAxMDBweDsKLSAgICAgIGhlaWdo
dDogMTAwcHg7Ci0gICAgICB3aWR0aDogMTIwcHg7Ci0gICAgICBsZWZ0OiAzMHB4OwotICAgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0gICAgfQotICAgIEAtd2Via2l0LWtleWZyYW1lcyAi
bW92ZTEiIHsKKworICAgIEBrZXlmcmFtZXMgbW92ZTEgewogICAgICAgZnJvbSB7IG1hcmdpbi1s
ZWZ0OiAwcHg7IH0KICAgICAgIHRvICAgeyBtYXJnaW4tbGVmdDogMjAwcHg7IH0KICAgICB9Ci0g
ICAgI3Jlc3VsdCB7Ci0gICAgICBjb2xvcjogd2hpdGU7IC8qIGhpZGUgZnJvbSBwaXhlbCByZXN1
bHRzICovCi0gICAgfQogICA8L3N0eWxlPgotICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1h
dGlvbi10ZXN0LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPjwvc2NyaXB0PgotICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgotICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWwotICAgICAgLy8gW2FuaW1hdGlv
bi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVy
YW5jZV0KLSAgICAgIFsibW92ZTEiLCAwLjUsICJib3giLCAibWFyZ2luLWxlZnQiLCA1MCwgMjBd
LAotICAgICAgWyJtb3ZlMSIsIDEuMCwgImJveCIsICJtYXJnaW4tbGVmdCIsIDEwMCwgMjBdLAot
ICAgICAgWyJtb3ZlMSIsIDIuNSwgImJveCIsICJtYXJnaW4tbGVmdCIsIDUwLCAyMF0sCi0gICAg
XTsKKyAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYm94Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAg
YXN5bmNfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgICAgY29uc3QgZGVsYXkgPSAxMDA7CiAKLSAg
ICBmdW5jdGlvbiBwYXVzZUFuaW1hdGlvbigpCi0gICAgewotICAgICAgICBjb25zdCBib3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94Iik7Ci0gICAgICAgIGJveC5zdHlsZS53ZWJraXRB
bmltYXRpb25QbGF5U3RhdGUgPSAicGF1c2VkIjsKLSAgICAgICAgYm94LmdldEFuaW1hdGlvbnMo
KVswXS5jdXJyZW50VGltZSA9IDI1MDA7Ci0gICAgfQorICAgICAgICBjb25zdCB0ZXN0ID0gbmV3
IEFuaW1hdGlvblRlc3QoeworICAgICAgICAgICAgdGFyZ2V0OiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYm94IiksCisgICAgICAgICAgICBzdHlsZUV4dHJhY3Rvcjogc3R5bGUgPT4gcGFyc2VG
bG9hdChzdHlsZS5tYXJnaW5MZWZ0KQorICAgICAgICB9KTsKIAotICAgIGZ1bmN0aW9uIHNldFRp
bWVycygpCi0gICAgewotICAgICAgICBzZXRUaW1lb3V0KHBhdXNlQW5pbWF0aW9uLCAyNTAwKTsK
LSAgICB9CisgICAgICAgIC8vIFJlY29yZCB0d28gY29tcHV0ZWQgdmFsdWVzIGFmdGVyIHRoZSBz
cGVjaWZpZWQgZGVsYXkgZWFjaC4KKyAgICAgICAgYXdhaXQgdGVzdC5yZWNvcmRWYWx1ZUFmdGVy
UnVubmluZ0ZvcihkZWxheSk7CisgICAgICAgIGF3YWl0IHRlc3QucmVjb3JkVmFsdWVBZnRlclJ1
bm5pbmdGb3IoZGVsYXkpOwogCi0gICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywg
c2V0VGltZXJzLCBudWxsLCB0cnVlKTsKKyAgICAgICAgLy8gV2UnbGwgbm93IHdhaXQgZm9yIHRo
ZSBuZXh0ICJhbmltYXRpb25pdGVyYXRpb24iIGV2ZW50IHRvIHBhdXNlIHRoZSBhbmltYXRpb24K
KyAgICAgICAgLy8gdXNpbmcgdGhlIENTUyBwcm9wZXJ0eSAiYW5pbWF0aW9uLXBsYXktc3RhdGUi
LgorICAgICAgICBib3guc3R5bGUuYW5pbWF0aW9uUGxheVN0YXRlID0gInBhdXNlZCI7CiAKLSAg
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTwhLS0gVGhpcyB0ZXN0cyB0aGUgb3BlcmF0aW9u
IG9mIC13ZWJraXQtYW5pbWF0aW9uLXBsYXktc3RhdGUuIEFmdGVyIDEgc2Vjb25kIHRoZSByZWQg
Ym94ZXMgc2hvdWxkIGJlIGhpZGRlbiBieSB0aGUgZ3JlZW4gYm94ZXMuIFlvdSBzaG91bGQgc2Vl
IG5vIHJlZCBib3hlcy4gLS0+Ci08ZGl2IGlkPSJib3giPjwvZGl2PgotPGRpdiBpZD0ic2FmZXpv
bmUiPjwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvZGl2PgorICAgICAgICAvLyBB
bmQgbm93IHdlJ2xsIHJlY29yZCB2YWx1ZXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkZWxheSBlYWNo
IGFuZCBjaGVjayB0aGF0IHRob3NlIGFyZSB0aGUgc2FtZS4KKyAgICAgICAgY29uc3QgaW5pdGlh
bFBhdXNlZFZhbHVlID0gYXdhaXQgdGVzdC52YWx1ZUFmdGVyV2FpdGluZ0ZvcihkZWxheSk7Cisg
ICAgICAgIGNvbnN0IGN1cnJlbnRQYXVzZWRWYWx1ZSA9IGF3YWl0IHRlc3QudmFsdWVBZnRlcldh
aXRpbmdGb3IoZGVsYXkpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluaXRpYWxQYXVzZWRWYWx1
ZSwgY3VycmVudFBhdXNlZFZhbHVlLCAiVmFsdWVzIHJlY29yZGVkIHdoaWxlIHBhdXNlZCBhcmUg
dGhlIHNhbWUuIik7CisKKyAgICAgICAgLy8gRmluYWxseSwgY2hlY2sgdGhlIHZhbHVlcyByZWNv
cmRlZCBlYXJsaWVyIGluIHRoZSB0ZXN0LgorICAgICAgICB0ZXN0LmNoZWNrUmVjb3JkZWRWYWx1
ZXMoKTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICB9LCBgUGF1c2luZyBhbiBhbmltYXRpb24g
dXNpbmcgdGhlIGFuaW1hdGlvbi1wbGF5LXN0YXRlIHByb3BlcnR5IHN0b3BzIGFuaW1hdGluZyBz
dHlsZXMuYCk7Cis8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWV4
cGVjdGVkLnR4dAppbmRleCAzM2ZjYzBjZDRkOTk2ZmY5YTFiNTBkMmI5MDAyZTlhMTQ1ZGJiMjJm
Li43NGZlMTQ3YzAzNDFhZmZiYWM1Y2MyMjhiMzlmOWY2OTk0Yjk1NTVkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJl
dmVyc2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotUEFTUyAtICJtYXJnaW4tbGVmdCIg
cHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRv
OiAxNTAKLVBBU1MgLSAibWFyZ2luLWxlZnQiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0
IDFzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEwMAotUEFTUyAtICJtYXJnaW4tbGVmdCIgcHJv
cGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMi41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAw
CisKK1BBU1MgUGF1c2luZyBhbiBhbmltYXRpb24gdXNpbmcgdGhlIGFuaW1hdGlvbi1wbGF5LXN0
YXRlIHByb3BlcnR5IHN0b3BzIGFuaW1hdGluZyBzdHlsZXMgd2l0aCBhbmltYXRpb24tZGlyZWN0
aW9uOiByZXZlcnNlLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwKaW5kZXggOWU1ZWEyYzA1NWE0Y2Q5Y2QzODI1
MmEzNDY0YWU2Mzg5ZGIxZTFmMC4uMjFkYzI4ZjczMjJlYWE2Zjc3YzdmZTMxMjFmMjJjMjc1ZjI4
ZGRhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPGh0bWwgbGFuZz0iZW4iPgog
PGhlYWQ+CiAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04Ij4KLSAgPHRpdGxlPlRlc3Qgb2YgLXdlYmtpdC1hbmltYXRpb24t
cGxheS1zdGF0ZTwvdGl0bGU+CisgIDx0aXRsZT5UZXN0IG9mIGFuaW1hdGlvbi1wbGF5LXN0YXRl
PC90aXRsZT4KICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgICBi
b2R5IHsKICAgICAgIG1hcmdpbjogMDsKQEAgLTE1LDQ1ICsxNSw1MSBAQAogICAgICAgd2lkdGg6
IDEwMHB4OwogICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgICAgbWFyZ2luOiAwOwot
ICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOwotICAgICAgLXdlYmtpdC1hbmlt
YXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOwotICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5n
LWZ1bmN0aW9uOiBsaW5lYXI7Ci0gICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiAibW92ZTEi
OworICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsKKyAgICAgIGFuaW1hdGlvbi1kaXJl
Y3Rpb246IHJldmVyc2U7CisgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0
ZTsKKyAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIGFuaW1h
dGlvbi1uYW1lOiAibW92ZTEiOwogICAgIH0KLSAgICBALXdlYmtpdC1rZXlmcmFtZXMgIm1vdmUx
IiB7CisKKyAgICBAa2V5ZnJhbWVzIG1vdmUxIHsKICAgICAgIGZyb20geyBtYXJnaW4tbGVmdDog
MHB4OyB9CiAgICAgICB0byAgIHsgbWFyZ2luLWxlZnQ6IDIwMHB4OyB9CiAgICAgfQotICAgICNy
ZXN1bHQgewotICAgICAgY29sb3I6IHdoaXRlOyAvKiBoaWRlIGZyb20gcGl4ZWwgcmVzdWx0cyAq
LwotICAgIH0KICAgPC9zdHlsZT4KLSAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24t
dGVzdC1oZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48
L3NjcmlwdD4KLSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04
Ij4KLSAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKLSAgICAgIC8vIFthbmltYXRpb24tbmFt
ZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2Vd
Ci0gICAgICBbIm1vdmUxIiwgMC41LCAiYm94IiwgIm1hcmdpbi1sZWZ0IiwgMTUwLCAyMF0sCi0g
ICAgICBbIm1vdmUxIiwgMS4wLCAiYm94IiwgIm1hcmdpbi1sZWZ0IiwgMTAwLCAyMF0sCi0gICAg
ICBbIm1vdmUxIiwgMi41LCAiYm94IiwgIm1hcmdpbi1sZWZ0IiwgMCwgMjBdLAotICAgIF07Ci0K
LSAgICBmdW5jdGlvbiBwYXVzZUFuaW1hdGlvbigpCi0gICAgewotICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYm94Iikuc3R5bGUud2Via2l0QW5pbWF0aW9uUGxheVN0YXRlID0gInBh
dXNlZCI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc2V0VGltZXJzKCkKLSAgICB7Ci0gICAgICAg
IHNldFRpbWVvdXQocGF1c2VBbmltYXRpb24sIDI1MDApOwotICAgIH0KLQotICAgIHJ1bkFuaW1h
dGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMsIHNldFRpbWVycywgbnVsbCwgdHJ1ZSk7Ci0KLSAgPC9z
Y3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImJveCI+PC9kaXY+Ci08ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgotPC9kaXY+Cis8c2NyaXB0PgorICAgIGFzeW5jX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgICAgIGNvbnN0IGRlbGF5ID0gMTAwOworCisgICAgICAgIGNvbnN0IHRlc3QgPSBu
ZXcgQW5pbWF0aW9uVGVzdCh7CisgICAgICAgICAgICB0YXJnZXQ6IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJib3giKSwKKyAgICAgICAgICAgIHN0eWxlRXh0cmFjdG9yOiBzdHlsZSA9PiBwYXJz
ZUZsb2F0KHN0eWxlLm1hcmdpbkxlZnQpCisgICAgICAgIH0pOworCisgICAgICAgIC8vIFJlY29y
ZCB0d28gY29tcHV0ZWQgdmFsdWVzIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGVsYXkgZWFjaC4KKyAg
ICAgICAgYXdhaXQgdGVzdC5yZWNvcmRWYWx1ZUFmdGVyUnVubmluZ0ZvcihkZWxheSk7CisgICAg
ICAgIGF3YWl0IHRlc3QucmVjb3JkVmFsdWVBZnRlclJ1bm5pbmdGb3IoZGVsYXkpOworCisgICAg
ICAgIC8vIFdlJ2xsIG5vdyB3YWl0IGZvciB0aGUgbmV4dCAiYW5pbWF0aW9uaXRlcmF0aW9uIiBl
dmVudCB0byBwYXVzZSB0aGUgYW5pbWF0aW9uCisgICAgICAgIC8vIHVzaW5nIHRoZSBDU1MgcHJv
cGVydHkgImFuaW1hdGlvbi1wbGF5LXN0YXRlIi4KKyAgICAgICAgYm94LnN0eWxlLmFuaW1hdGlv
blBsYXlTdGF0ZSA9ICJwYXVzZWQiOworCisgICAgICAgIC8vIEFuZCBub3cgd2UnbGwgcmVjb3Jk
IHZhbHVlcyBhZnRlciAyNTBtcyBlYWNoIGFuZCBjaGVjayB0aGF0IHRob3NlIGFyZSB0aGUgc2Ft
ZS4KKyAgICAgICAgY29uc3QgaW5pdGlhbFBhdXNlZFZhbHVlID0gYXdhaXQgdGVzdC52YWx1ZUFm
dGVyV2FpdGluZ0ZvcihkZWxheSk7CisgICAgICAgIGNvbnN0IGN1cnJlbnRQYXVzZWRWYWx1ZSA9
IGF3YWl0IHRlc3QudmFsdWVBZnRlcldhaXRpbmdGb3IoZGVsYXkpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGluaXRpYWxQYXVzZWRWYWx1ZSwgY3VycmVudFBhdXNlZFZhbHVlLCAiVmFsdWVzIHJl
Y29yZGVkIHdoaWxlIHBhdXNlZCBhcmUgdGhlIHNhbWUuIik7CisKKyAgICAgICAgLy8gRmluYWxs
eSwgY2hlY2sgdGhlIHZhbHVlcyByZWNvcmRlZCBlYXJsaWVyIGluIHRoZSB0ZXN0LgorICAgICAg
ICB0ZXN0LmNoZWNrUmVjb3JkZWRWYWx1ZXMoKTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
LCBgUGF1c2luZyBhbiBhbmltYXRpb24gdXNpbmcgdGhlIGFuaW1hdGlvbi1wbGF5LXN0YXRlIHBy
b3BlcnR5IHN0b3BzIGFuaW1hdGluZyBzdHlsZXMgd2l0aCBhbmltYXRpb24tZGlyZWN0aW9uOiBy
ZXZlcnNlLmApOworPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC5qcyBiL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2
YzZmMDEwMTgyMGFiZjhhZWM2NThiMTYyNTIzNDc3ZDFiNGM3MWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC5qcwpAQCAt
MCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK2NsYXNzIEFuaW1hdGlvblRlc3QKK3sKKworICAgIC8vIEV4cGVjdHMgYSBkaWN0aW9uYXJ5
IHdpdGggYW4gRWxlbWVudCAodGFyZ2V0KSBhbmQgYSBGdW5jdGlvbiAoc3R5bGVFeHRyYWN0b3Ip
IHVzZWQgdG8gZXh0cmFjdAorICAgIC8vIHRoZSByZWNvcmRlZCB2YWx1ZSBmcm9tIGEgY29tcHV0
ZWQgc3R5bGUuCisgICAgY29uc3RydWN0b3Iob3B0aW9ucykKKyAgICB7CisgICAgICAgIHRoaXMu
X3JlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fdGFyZ2V0ID0gb3B0aW9ucy50YXJnZXQ7Cisg
ICAgICAgIHRoaXMuX3N0eWxlRXh0cmFjdG9yID0gb3B0aW9ucy5zdHlsZUV4dHJhY3RvcjsKKyAg
ICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIC8vIFJldHVybnMgdGhlIEFuaW1hdGlvbiBvYmpl
Y3QuIEN1cnJlbnRseSwgdGhpcyBleHBlY3RzIGEgc2luZ2xlIGFuaW1hdGlvbiBpcyBydW5uaW5n
IG9uIHRoZQorICAgIC8vIHByb3ZpZGVkIGVsZW1lbnQuCisgICAgZ2V0IGFuaW1hdGlvbigpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0LmdldEFuaW1hdGlvbnMoKVswXTsKKyAg
ICB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgdmFsdWUgZnJvbSB0aGUgY29tcHV0
ZWQgc3R5bGUgdXNpbmcgdGhlIHByb3ZpZGVkIHN0eWxlIGV4dHJhY3Rvci4KKyAgICBnZXQgdmFs
dWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlRXh0cmFjdG9yKGdldENvbXB1
dGVkU3R5bGUodGhpcy5fdGFyZ2V0KSk7CisgICAgfQorCisgICAgLy8gUmV0dXJucyB0aGUgcmVx
dWVzdGVkIHZhbHVlIGZyb20gdGhlIGNvbXB1dGVkIHN0eWxlIGFmdGVyIHdhaXRpbmcgYSBjZXJ0
YWluIGRlbGF5LgorICAgIC8vIFRoaXMgbWV0aG9kIHJ1bnMgaW5kZXBlbmRlbnRseSBvZiB0aGUg
YW5pbWF0aW9uIHBsYXkgc3RhdGUgYW5kIHdhaXRzIGF0IGEgbWluaW11bQorICAgIC8vIGZvciBh
biBhbmltYXRpb24gZnJhbWUgdG8gaGF2ZSBlbGFwc2VkLgorICAgIGFzeW5jIHZhbHVlQWZ0ZXJX
YWl0aW5nRm9yKGRlbGF5KQorICAgIHsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKSwKKyAgICAgICAgICAg
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheSkpCisgICAg
ICAgIF0pOworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICAvLyBSZWNv
cmRzIHRoZSByZXF1ZXN0ZWQgdmFsdWUgZnJvbSB0aGUgY29tcHV0ZWQgc3R5bGUgYWZ0ZXIgYSBn
aXZlbiBkZWxheSBoYXMgZWxhcHNlZCB3aGlsZSB0aGUKKyAgICAvLyBhbmltYXRpb24gaXMgcnVu
bmluZy4gVGhlIHJlY29yZCBzdG9yZWQgd2lsbCBiZSBjaGVja2VkIHdoZW4gY2hlY2tSZWNvcmRl
ZFZhbHVlcygpIGlzIGNhbGxlZC4KKyAgICBhc3luYyByZWNvcmRWYWx1ZUFmdGVyUnVubmluZ0Zv
cihkZWxheSkKKyAgICB7CisgICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9u
OworICAgICAgICBhd2FpdCBhbmltYXRpb24ucmVhZHk7CisKKyAgICAgICAgY29uc3QgdGFyZ2V0
VGltZSA9IGFuaW1hdGlvbi5jdXJyZW50VGltZSArIGRlbGF5OworICAgICAgICBhd2FpdCB0aGlz
Ll90aWNrVW50aWwoZWxhcHNlZFRpbWUgPT4gYW5pbWF0aW9uLmN1cnJlbnRUaW1lID49IHRhcmdl
dFRpbWUpOworCisgICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7CisgICAgICAgICAgICBjdXJy
ZW50VGltZTogYW5pbWF0aW9uLmN1cnJlbnRUaW1lLAorICAgICAgICAgICAgdmFsdWU6IHRoaXMu
dmFsdWUKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8gQ2hlY2sgdGhhdCBhbGwgcmVxdWVz
dGVkIHZhbHVlcyByZWNvcmRlZCB1c2luZyByZWNvcmRWYWx1ZUFmdGVyUnVubmluZ0ZvcigpIG1h
dGNoIHRoZSBzYW1lIHZhbHVlcworICAgIC8vIHdoZW4gdGhlIGFuaW1hdGlvbiBpcyBwYXVzZWQg
YW5kIHNlZWtlZCBhdCB0aGUgc2FtZSBhbmltYXRpb24gY3VycmVudFRpbWUgYXMgd2hlbiB0aGUg
cmVjb3JkIHdhcyBtYWRlLgorICAgIGNoZWNrUmVjb3JkZWRWYWx1ZXMoKQorICAgIHsKKyAgICAg
ICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb247CisKKyAgICAgICAgLy8gUmVzZXQg
dGhlIGFuaW1hdGlvbi4KKyAgICAgICAgYW5pbWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIC8v
IE1ha2Ugc3VyZSBpdCdzIGluIHRoZSBwYXVzZWQgc3RhdGUgZm9yIHNlZWtpbmcuCisgICAgICAg
IGFuaW1hdGlvbi5wYXVzZSgpOworCisgICAgICAgIC8vIE5vdyBzZWVrIHRvIGVhY2ggb2YgdGhl
IHJlY29yZGVkIHRpbWVzIGFuZCBhc3NlcnQgdGhlIHZhbHVlLgorICAgICAgICB0aGlzLl9yZWNv
cmRzLmZvckVhY2goKHJlY29yZCwgaW5kZXgpID0+IHsKKyAgICAgICAgICAgIGFuaW1hdGlvbi5j
dXJyZW50VGltZSA9IHJlY29yZC5jdXJyZW50VGltZTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVjb3JkLnZhbHVlLCB0aGlzLnZhbHVlLCBgUmVjb3JkZWQgdmFsdWUgIyR7aW5kZXh9IGlz
IGNvcnJlY3QuYCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAg
IC8vIFdhaXQgdW50aWwgdGhlIHByb3ZpZGVkIGNvbmRpdGlvbiBpcyB0cnVlIHVzaW5nIGFuaW1h
dGlvbiBmcmFtZXMuCisgICAgX3RpY2tVbnRpbChjb25kaXRpb24pCisgICAgeworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX3N0
YXJ0VGltZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5u
b3coKTsKKworICAgICAgICAgICAgY29uc3QgdGljayA9IHRpbWVzdGFtcCA9PiB7CisgICAgICAg
ICAgICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXAgLSB0aGlzLl9zdGFydFRpbWU7
CisgICAgICAgICAgICAgICAgaWYgKGNvbmRpdGlvbihlbGFwc2VkVGltZSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3N0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUodGljayk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUodGljayk7CisgICAgICAgIH0pOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ3NWUzNmMwNWEwZGQ4
MjgxYjgxYjU5NTMwMWI2ZDE3Y2E4ZDZlZmQuLmNjMzU2ZDc3ZGQ4ZDM4YjQ2OGFlNTVkY2E1MjIw
MTU1YzFiNGQ3M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azEvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTExMzcsNyArMTEzNyw2IEBAIGh0dHAvdGVzdHMvbXVsdGlwYXJ0L211bHRp
cGFydC1hc3luYy1pbWFnZS5odG1sCiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2
ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogYW5pbWF0aW9ucy9h
bmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
CiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25z
LWhhcmR3YXJlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotYW5pbWF0aW9ucy9hbmltYXRpb24tZGly
ZWN0aW9uLXJldmVyc2UuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiBhbmltYXRpb25zL2FuaW1hdGlv
bi1oaXQtdGVzdC10cmFuc2Zvcm0uaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiBjb21wb3NpdGluZy9s
YXllci1jcmVhdGlvbi9taXNtYXRjaGVkLXJvdGF0ZWQtdHJhbnNmb3JtLXRyYW5zaXRpb24tb3Zl
cmxhcC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL21p
c21hdGNoZWQtdHJhbnNmb3JtLXRyYW5zaXRpb24tb3ZlcmxhcC5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBlNmU3YWQ3NjA1Y2ZhZjUzYmQ5MTE0NjI1ZjA2MzYyMTg4MTJmOTQxLi4zZGUyZGQzNDY3ZTFm
MjRhZTMxNTg0MmMwZDU1YTMyYjA5NGIzZjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzI3LDggKzEzMjcsNiBAQCB3ZWJraXQub3Jn
L2IvMjA1MzA5IHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9zY3JvbGwtcG9zaXRpb24tYWZ0ZXIt
cmVhdHRhY2guaHRtbAogCiB3ZWJraXQub3JnL2IvMjA3MTUzIGFuaW1hdGlvbnMvYW5pbWF0aW9u
LWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9i
LzIwOTM2MiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIwNzE1NiBbIFJlbGVhc2UgXSBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvY2xvc2UuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8yMDcxNjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8y
ZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtdHJhbnNmZXIuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="412740"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>