<?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>194900</bug_id>
          
          <creation_ts>2019-02-21 07:51:58 -0800</creation_ts>
          <short_desc>Add tests mixing programmatic and user frame scrolling on iOS</short_desc>
          <delta_ts>2019-03-29 03:12:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=196394</see_also>
          <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>
          <dependson>192303</dependson>
    
    <dependson>194886</dependson>
    
    <dependson>195003</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508509</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-21 07:51:58 -0800</bug_when>
    <thetext>Add more tests for programmatic frame scrolling on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508511</commentid>
    <comment_count>1</comment_count>
      <attachid>362605</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-21 07:54:12 -0800</bug_when>
    <thetext>Created attachment 362605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509012</commentid>
    <comment_count>2</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-22 09:08:16 -0800</bug_when>
    <thetext>review ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509034</commentid>
    <comment_count>3</comment_count>
      <attachid>362605</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-22 10:24:17 -0800</bug_when>
    <thetext>Comment on attachment 362605
Patch

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

&gt; LayoutTests/fast/scrolling/ios/hit-testing-iframe.html:110
&gt; +      &lt;iframe id=&quot;clickElementInsideFrameAfterProgrammaticScroll&quot; style=&quot;left: 100px; top: 100px;&quot; scrolling=&quot;yes&quot; onclick=&quot;this.style.background=&apos;red&apos;&quot; srcdoc=&quot;
&gt; +          &lt;body style=&apos;margin: 0; width: 200px; height: 200px; background: green;&apos;&gt;
&gt; +             &lt;div style=&apos;position: absolute; width: 75px; height: 75px; background: red;&apos;&gt;&lt;/div&gt;
&gt; +              &lt;div style=&apos;position: absolute; left: 110px; top: 110px; width: 50px; height: 50px; background: red;&apos;
&gt; +                   onclick=&apos;this.style.background=&amp;quot;green&amp;quot;&apos;&gt;&lt;/div&gt;
&gt; +          &lt;/body&gt;&quot; onload=&quot;newFrameLoaded()&quot;&gt;
&gt; +      &lt;/iframe&gt;

I don&apos;t like tests that do multiple different things. It&apos;s really hard to debug them, and when the test breaks, you have to spend time investigating to see which part broke. I think this should be broken into 6(?) different tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509612</commentid>
    <comment_count>4</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-25 06:41:36 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 362605 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362605&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/scrolling/ios/hit-testing-iframe.html:110
&gt; &gt; +      &lt;iframe id=&quot;clickElementInsideFrameAfterProgrammaticScroll&quot; style=&quot;left: 100px; top: 100px;&quot; scrolling=&quot;yes&quot; onclick=&quot;this.style.background=&apos;red&apos;&quot; srcdoc=&quot;
&gt; &gt; +          &lt;body style=&apos;margin: 0; width: 200px; height: 200px; background: green;&apos;&gt;
&gt; &gt; +             &lt;div style=&apos;position: absolute; width: 75px; height: 75px; background: red;&apos;&gt;&lt;/div&gt;
&gt; &gt; +              &lt;div style=&apos;position: absolute; left: 110px; top: 110px; width: 50px; height: 50px; background: red;&apos;
&gt; &gt; +                   onclick=&apos;this.style.background=&amp;quot;green&amp;quot;&apos;&gt;&lt;/div&gt;
&gt; &gt; +          &lt;/body&gt;&quot; onload=&quot;newFrameLoaded()&quot;&gt;
&gt; &gt; +      &lt;/iframe&gt;
&gt; 
&gt; I don&apos;t like tests that do multiple different things. It&apos;s really hard to
&gt; debug them, and when the test breaks, you have to spend time investigating
&gt; to see which part broke. I think this should be broken into 6(?) different
&gt; tests.


For hit-testing.html, I moved that task to bug 195003. I&apos;ll try and split the new one on this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509629</commentid>
    <comment_count>5</comment_count>
      <attachid>362605</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-25 07:37:03 -0800</bug_when>
    <thetext>Comment on attachment 362605
Patch

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

&gt; LayoutTests/fast/scrolling/ios/mixing-user-and-programmatic-scroll.html:83
&gt; +       var frameToLoadCount = 1;

Oops, this seems wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509640</commentid>
    <comment_count>6</comment_count>
      <attachid>362904</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-25 08:23:21 -0800</bug_when>
    <thetext>Created attachment 362904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509656</commentid>
    <comment_count>7</comment_count>
      <attachid>362904</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-02-25 09:56:50 -0800</bug_when>
    <thetext>Comment on attachment 362904
Patch

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

&gt; LayoutTests/fast/scrolling/ios/mixing-user-and-programmatic-scroll-005.html:37
&gt; +          await waitPromise(1000); // Wait for scrolling to stabilize.

It is bit sad that these tests are so slow to run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509658</commentid>
    <comment_count>8</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-25 10:00:41 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #7)
&gt; Comment on attachment 362904 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362904&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/scrolling/ios/mixing-user-and-programmatic-scroll-005.html:37
&gt; &gt; +          await waitPromise(1000); // Wait for scrolling to stabilize.
&gt; 
&gt; It is bit sad that these tests are so slow to run.

Right, not sure how to improve this, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509672</commentid>
    <comment_count>9</comment_count>
      <attachid>362904</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-25 10:26:14 -0800</bug_when>
    <thetext>Comment on attachment 362904
Patch

Clearing flags on attachment: 362904

Committed r242046: &lt;https://trac.webkit.org/changeset/242046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509673</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-25 10:26:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509674</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-02-25 10:27:34 -0800</bug_when>
    <thetext>We should add testing API that simulates user scroll without using UI scripting. I have a patch along those lines. It is good to have some tests doing real scrolling though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509680</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-25 10:39:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/48368245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509681</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-25 10:39:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/48368246&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362605</attachid>
            <date>2019-02-21 07:54:12 -0800</date>
            <delta_ts>2019-02-25 08:23:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194900-20190221165411.patch</filename>
            <type>text/plain</type>
            <size>11203</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxODY1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmM5ZDM0MTBhMjA5NTNkNmRhN2Nj
MDRkMTFiZTBlMDhiNGI0MjRiOS4uMjU2ZWM1Yzk1YTFjNzlkZGY2ZDllMDkzMGZhZTBiMWZhZmI1
YmU5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAyLTIxICBGcmVkZXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgbW9yZSB0ZXN0cyBmb3IgcHJvZ3JhbW1h
dGljIGZyYW1lIHNjcm9sbGluZyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NDkwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyB0ZXN0cyBpbml0aWFsbHkgd3JpdHRl
biBmb3IgYnVnIDE4Mjg2OCBidXQKKyAgICAgICAgZXZlbnR1YWxseSBmaXhlZCBieSBidWcgMTk0
ODg2OgorICAgICAgICAtIGhpdCB0ZXN0aW5nIGFmdGVyIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4K
KyAgICAgICAgLSBtaXhpbmcgdXNlciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKworICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3Jv
bGwtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL21p
eGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAy
LTIxICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gR2FyZGVuaW5nIGZvciB1bmV4cGVjdGVkIHBhc3NlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS5odG1sCmluZGV4IGJhNjZl
MzE0OGY3MWVkZGFhYzBmOTI4NWQ1MzJjMDkxNDJkZjJlOWMuLjhhNDUxMzg5YjY2ZGFmYmRjM2Fm
MzRiOGEyMWM0ZjE4MDM5ZmFlYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLmh0bWwKQEAgLTM4LDYgKzM4LDExIEBACiAg
ICAgICAgICBwID0gZnJhbWVCb3goImNsaWNrRWxlbWVudEluc2lkZUZyYW1lIik7CiAgICAgICAg
ICBhd2FpdCB0YXBBdFBvaW50KHAubGVmdCArIDcgKyAxMCwgcC50b3AgKyA3ICsgMTApOwogCisg
ICAgICAgICAvLyBUaGlzIHZlcmlmaWVzIHRoYXQgYSBjbGljayBldmVudCBpcyBjb25zdW1lZCBi
eSBhbiBlbGVtZW50IGluc2lkZSB0aGUgZnJhbWUsIGFmdGVyIGEgcHJvZ3JhbW1hdGljIHNjcm9s
bC4KKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGlja0VsZW1lbnRJbnNpZGVG
cmFtZUFmdGVyUHJvZ3JhbW1hdGljU2Nyb2xsIikuY29udGVudFdpbmRvdy53aW5kb3cuc2Nyb2xs
VG8oMTAwLCAxMDApOworICAgICAgICAgcCA9IGZyYW1lQm94KCJjbGlja0VsZW1lbnRJbnNpZGVG
cmFtZUFmdGVyUHJvZ3JhbW1hdGljU2Nyb2xsIik7CisgICAgICAgICBhd2FpdCB0YXBBdFBvaW50
KHAubGVmdCArIDcgKyAxMCwgcC50b3AgKyA3ICsgMTApOworCiAgICAgICAgICAvLyBUaGlzIHZl
cmlmaWVzIHRoYXQgYSBjbGljayBldmVudCBpcyBjb25zdW1lZCBieSBhbiBlbGVtZW50IGluc2lk
ZSB0aGUgZnJhbWUsIGFmdGVyIGEgdXNlciBzY3JvbGwuCiAgICAgICAgICBwID0gZnJhbWVCb3go
ImNsaWNrRWxlbWVudEluc2lkZUZyYW1lQWZ0ZXJVc2VyU2Nyb2xsIik7CiAgICAgICAgICBhd2Fp
dCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KHAubGVmdCArIDcsIHAudG9wICsgNywgcC5s
ZWZ0ICsgNywgcC50b3AgLSAxNTApOwpAQCAtNDksNyArNTQsNyBAQAogICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgfQogCi0gICAgICAgdmFyIGZyYW1lVG9Mb2FkQ291
bnQgPSA1OworICAgICAgIHZhciBmcmFtZVRvTG9hZENvdW50ID0gNjsKICAgICAgICBmdW5jdGlv
biBuZXdGcmFtZUxvYWRlZCgpIHsKICAgICAgICAgICAgZnJhbWVUb0xvYWRDb3VudC0tOwogICAg
ICAgICAgICBpZiAoZnJhbWVUb0xvYWRDb3VudCA9PSAwKQpAQCAtOTYsNiArMTAxLDEzIEBACiAg
ICAgICAgICAgICAgICAgICAgb25jbGljaz0ndGhpcy5zdHlsZS5iYWNrZ3JvdW5kPSZxdW90O2dy
ZWVuJnF1b3Q7Jz48L2Rpdj4KICAgICAgICAgICA8L2JvZHk+IiBvbmxvYWQ9Im5ld0ZyYW1lTG9h
ZGVkKCkiPgogICAgICAgPC9pZnJhbWU+CisgICAgICA8aWZyYW1lIGlkPSJjbGlja0VsZW1lbnRJ
bnNpZGVGcmFtZUFmdGVyUHJvZ3JhbW1hdGljU2Nyb2xsIiBzdHlsZT0ibGVmdDogMTAwcHg7IHRv
cDogMTAwcHg7IiBzY3JvbGxpbmc9InllcyIgb25jbGljaz0idGhpcy5zdHlsZS5iYWNrZ3JvdW5k
PSdyZWQnIiBzcmNkb2M9IgorICAgICAgICAgIDxib2R5IHN0eWxlPSdtYXJnaW46IDA7IHdpZHRo
OiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Jz4KKyAgICAgICAgICAg
ICA8ZGl2IHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiA3NXB4OyBoZWlnaHQ6IDc1
cHg7IGJhY2tncm91bmQ6IHJlZDsnPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSdw
b3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDExMHB4OyB0b3A6IDExMHB4OyB3aWR0aDogNTBweDsg
aGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiByZWQ7JworICAgICAgICAgICAgICAgICAgIG9uY2xp
Y2s9J3RoaXMuc3R5bGUuYmFja2dyb3VuZD0mcXVvdDtncmVlbiZxdW90Oyc+PC9kaXY+CisgICAg
ICAgICAgPC9ib2R5PiIgb25sb2FkPSJuZXdGcmFtZUxvYWRlZCgpIj4KKyAgICAgIDwvaWZyYW1l
PgogICAgICAgPGlmcmFtZSBpZD0iY2xpY2tFbGVtZW50SW5zaWRlRnJhbWVBZnRlclVzZXJTY3Jv
bGwiIHN0eWxlPSJsZWZ0OiAxMDBweDsgdG9wOiAxMDBweDsiIHNjcm9sbGluZz0ieWVzIiBvbmNs
aWNrPSJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9J3JlZCciIHNyY2RvYz0iCiAgICAgICAgICAgPGJv
ZHkgc3R5bGU9J21hcmdpbjogMDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3Jv
dW5kOiBncmVlbjsnPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0
ZTsgd2lkdGg6IDc1cHg7IGhlaWdodDogNzVweDsgYmFja2dyb3VuZDogcmVkOyc+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5k
LXByb2dyYW1tYXRpYy1zY3JvbGwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYxYzhiODBlODM4NDQ1Y2Q3ZGU1Mzk0MzI4YTNiYTA1MGViMjUwYTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5n
LXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+TWl4aW5n
IHVzZXIgYW5kIHByb2dyYW1tYXRpYyBzY3JvbGwgb2YgaWZyYW1lPC90aXRsZT4KKyAgICA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEiPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYg
eW91IHNlZSBhIGdyZWVuIHJlY3RhbmdsZS48L3A+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDNlbTsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3Jv
dW5kOiBncmVlbjsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Ny
b2xsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5k
LXByb2dyYW1tYXRpYy1zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzcxMTU0NTcyODM3YjkwMzU1
MWZjZDQwMWRkZTM4N2QyMzEyNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLmh0bWwK
QEAgLTAsMCArMSwxMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDx0aXRsZT5NaXhpbmcgdXNlciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbCBvZiBpZnJhbWU8L3Rp
dGxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSI+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQodHJ1ZSk7CisKKyAgICAgIGZ1bmN0aW9uIGdldEZyYW1lRGF0YShpZCkKKyAgICAgIHsK
KyAgICAgICAgICB2YXIgcmVzdWx0ID0ge307CisgICAgICAgICAgdmFyIGYgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgICAgcmVzdWx0LncgPSBmLmNvbnRlbnRXaW5kb3cu
d2luZG93OworICAgICAgICAgIHZhciBmcmFtZUJveCA9IGYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgICAgcmVzdWx0LnggPSBmcmFtZUJveC5sZWZ0ICsgZnJhbWVCb3gud2lkdGgg
LyAyOworICAgICAgICAgIHJlc3VsdC55ID0gZnJhbWVCb3gudG9wICsgZnJhbWVCb3guaGVpZ2h0
IC8gMjsKKyAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgfQorCisgICAgICBmdW5jdGlv
biB3YWl0UHJvbWlzZShkZWxheSkKKyAgICAgIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgc2V0VGltZW91dChyZXNvbHZlLCBkZWxheSk7IH0pOworICAgICAg
fQorCisgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgIC8vIFRoaXMgdmVyaWZpZXMgdXNlciBzY3JvbGwgZm9sbG93ZWQg
Ynkgb3J0aG9nb25hbCBwcm9ncmFtbWF0aWMgc2Nyb2xsLgorICAgICAgICAgdmFyIGQgPSBnZXRG
cmFtZURhdGEoInVzZXJZQW5kUHJvZ3JhbW1hdGljWCIpOworICAgICAgICAgYXdhaXQgdG91Y2hB
bmREcmFnRnJvbVBvaW50VG9Qb2ludChkLngsIGQueSwgZC54LCBkLnkgLSAxNTApOworICAgICAg
ICAgYXdhaXQgbGlmdFVwQXRQb2ludChkLngsIGQueSAtIDE1MCk7CisgICAgICAgICBhd2FpdCB3
YWl0UHJvbWlzZSgxMDAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xsaW5nIHRvIHN0YWJpbGl6ZS4KKyAg
ICAgICAgIGQudy5zY3JvbGxCeSgxMDAsIDApOworCisgICAgICAgICAvLyBUaGlzIHZlcmlmaWVz
IHByb2dyYW1tYXRpYyBzY3JvbGwgZm9sbG93ZWQgYnkgb3J0aG9nb25hbCB1c2VyIHNjcm9sbC4K
KyAgICAgICAgIGQgPSBnZXRGcmFtZURhdGEoInByb2dyYW1tYXRpY1hBbmRVc2VyWSIpOworICAg
ICAgICAgZC53LnNjcm9sbEJ5KDEwMCwgMCk7CisgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdG
cm9tUG9pbnRUb1BvaW50KGQueCwgZC55LCBkLngsIGQueSAtIDE1MCk7CisgICAgICAgICBhd2Fp
dCBsaWZ0VXBBdFBvaW50KGQueCwgZC55IC0gMTUwKTsKKyAgICAgICAgIGF3YWl0IHdhaXRQcm9t
aXNlKDEwMDApOyAvLyBXYWl0IGZvciBzY3JvbGxpbmcgdG8gc3RhYmlsaXplLgorCisgICAgICAg
ICAvLyBUaGlzIHZlcmlmaWVzIHByb2dyYW1tYXRpYyBzY3JvbGwgZm9sbG93ZWQgYnkgdXNlciBz
Y3JvbGwgaW4gdGhlIHNhbWUgZGlyZWN0aW9uLgorICAgICAgICAgZCA9IGdldEZyYW1lRGF0YSgi
cHJvZ3JhbW1hdGljWEFuZFVzZXJYIik7CisgICAgICAgICBkLncuc2Nyb2xsQnkoMTUwLCAwKTsK
KyAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZC54LCBkLnksIGQu
eCAtIDEwMCwgZC55KTsKKyAgICAgICAgIGF3YWl0IGxpZnRVcEF0UG9pbnQoZC54IC0gMTAwLCBk
LnkpOworICAgICAgICAgYXdhaXQgd2FpdFByb21pc2UoMTAwMCk7IC8vIFdhaXQgZm9yIHNjcm9s
bGluZyB0byBzdGFiaWxpemUuCisKKyAgICAgICAgIC8vIFRoaXMgdmVyaWZpZXMgdXNlciBzY3Jv
bGwgZm9sbG93ZWQgYnkgcHJvZ3JhbW1hdGljIHNjcm9sbCBpbiB0aGUgc2FtZSBkaXJlY3Rpb24u
CisgICAgICAgICBkID0gZ2V0RnJhbWVEYXRhKCJ1c2VyWEFuZFByb2dyYW1tYXRpY1giKTsKKyAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZC54LCBkLnksIGQueCAt
IDEwMCwgZC55KTsKKyAgICAgICAgIGF3YWl0IGxpZnRVcEF0UG9pbnQoZC54IC0gMTAwLCBkLnkp
OworICAgICAgICAgYXdhaXQgd2FpdFByb21pc2UoMTAwMCk7IC8vIFdhaXQgZm9yIHNjcm9sbGlu
ZyB0byBzdGFiaWxpemUuCisgICAgICAgICBkLncuc2Nyb2xsQnkoMTUwLCAwKTsKKworICAgICAg
ICAgLy8gVGhpcyB2ZXJpZmllcyBtaXhpbmcgc2V2ZXJhbCB1c2VyL3Byb2dyYW1tYXRpYyBzY3Jv
bGxzIGluIHZhcmlvdXMgZGlyZWN0aW9ucy4KKyAgICAgICAgIGQgPSBnZXRGcmFtZURhdGEoInBy
b2dyYW1tYXRpY1lBbmRVc2VyWEFuZFByb2dyYW1tYXRpY1hBbmRVc2VyWSIpOworICAgICAgICAg
YXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkLngsIGQueSwgZC54LCBkLnkgLSAx
MDApOworICAgICAgICAgYXdhaXQgbGlmdFVwQXRQb2ludChkLngsIGQueSAtIDEwMCk7CisgICAg
ICAgICBhd2FpdCB3YWl0UHJvbWlzZSgxMDAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xsaW5nIHRvIHN0
YWJpbGl6ZS4KKyAgICAgICAgIGQudy5zY3JvbGxCeSgxNTAsIDApOworICAgICAgICAgYXdhaXQg
dG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkLngsIGQueSwgZC54IC0gMTAwLCBkLnkpOwor
ICAgICAgICAgYXdhaXQgbGlmdFVwQXRQb2ludChkLnggLSAxMDAsIGQueSk7CisgICAgICAgICBh
d2FpdCB3YWl0UHJvbWlzZSgxMDAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xsaW5nIHRvIHN0YWJpbGl6
ZS4KKyAgICAgICAgIGQudy5zY3JvbGxCeSgwLCAxNTApOworCisgICAgICAgICAvLyBUaGlzIHZl
cmlmaWVzIGhpdCB0ZXN0aW5nIGFmdGVyIHVzZXIgYW5kIHByb2dyYW1tYXRpYyBzY3JvbGwuCisg
ICAgICAgICBkID0gZ2V0RnJhbWVEYXRhKCJwcm9ncmFtbWF0aWNZQW5kVXNlclhBbmRIaXRUZXN0
aW5nIik7CisgICAgICAgICBkLncuc2Nyb2xsQnkoMCwgMTAwKTsKKyAgICAgICAgIGF3YWl0IHRv
dWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZC54LCBkLnksIGQueCAtIDE1MCwgZC55KTsKKyAg
ICAgICAgIGF3YWl0IGxpZnRVcEF0UG9pbnQoZC54IC0gMTUwLCBkLnkpOworICAgICAgICAgYXdh
aXQgd2FpdFByb21pc2UoMTUwMCk7IC8vIFdhaXQgZm9yIHNjcm9sbGluZyB0byBzdGFiaWxpemUg
YW5kIGZvciBzY3JvbGxiYXIgdG8gZGlzYXBwZWFyLgorICAgICAgICAgYXdhaXQgdGFwQXRQb2lu
dChkLngsIGQueSk7CisKKyAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
IH0KKworICAgICAgIHZhciBmcmFtZVRvTG9hZENvdW50ID0gMTsKKyAgICAgICBmdW5jdGlvbiBu
ZXdGcmFtZUxvYWRlZCgpIHsKKyAgICAgICAgICAgZnJhbWVUb0xvYWRDb3VudC0tOworICAgICAg
ICAgICBpZiAoZnJhbWVUb0xvYWRDb3VudCA9PSAwKQorICAgICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgIGlmcmFtZSB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIG9yYW5nZSk7CisgICAgICAgICAgICBib3Jk
ZXI6IDA7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IG5vbmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNl
ZSBhIGdyZWVuIHJlY3RhbmdsZS48L3A+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyB0b3A6IDNlbTsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiBn
cmVlbjsiPgorICAgICAgICA8aWZyYW1lIGlkPSJ1c2VyWUFuZFByb2dyYW1tYXRpY1giIHN0eWxl
PSJsZWZ0OiAwcHg7IHRvcDogMHB4OyIgc2Nyb2xsaW5nPSJ5ZXMiIHNyY2RvYz0iCisgICAgICAg
ICAgICA8Ym9keSBzdHlsZT0nbWFyZ2luOiAwOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHgn
PgorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9J2xlZnQ6IDEwMHB4OyB0b3A6IDEwMHB4OyBw
b3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3Vu
ZDogZ3JlZW47Jz48L2Rpdj4KKyAgICAgICAgICAgIDwvYm9keT4iIG9ubG9hZD0ibmV3RnJhbWVM
b2FkZWQoKSI+CisgICAgICAgIDwvaWZyYW1lPgorICAgICAgICA8aWZyYW1lIGlkPSJwcm9ncmFt
bWF0aWNYQW5kVXNlclkiIHN0eWxlPSJsZWZ0OiAxMDBweDsgdG9wOiAwcHg7IiBzY3JvbGxpbmc9
InllcyIgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5IHN0eWxlPSdtYXJnaW46IDA7IHdpZHRo
OiAyMDBweDsgaGVpZ2h0OiAyMDBweCc+CisgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0nbGVm
dDogMTAwcHg7IHRvcDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsnPjwvZGl2PgorICAgICAgICAgICAgPC9i
b2R5PiIgb25sb2FkPSJuZXdGcmFtZUxvYWRlZCgpIj4KKyAgICAgICAgPC9pZnJhbWU+CisgICAg
ICAgIDxpZnJhbWUgaWQ9InByb2dyYW1tYXRpY1hBbmRVc2VyWCIgc3R5bGU9ImxlZnQ6IDIwMHB4
OyB0b3A6IDBweDsiIHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9IgorICAgICAgICAgICAgPGJvZHkg
c3R5bGU9J21hcmdpbjogMDsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4Jz4KKyAgICAgICAg
ICAgICAgICA8ZGl2IHN0eWxlPSdsZWZ0OiAyMDBweDsgdG9wOiAwcHg7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsnPjwv
ZGl2PgorICAgICAgICAgICAgPC9ib2R5PiIgb25sb2FkPSJuZXdGcmFtZUxvYWRlZCgpIj4KKyAg
ICAgICAgPC9pZnJhbWU+CisgICAgICAgIDxpZnJhbWUgaWQ9InVzZXJYQW5kUHJvZ3JhbW1hdGlj
WCIgc3R5bGU9ImxlZnQ6IDBweDsgdG9wOiAxMDBweDsiIHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9
IgorICAgICAgICAgICAgPGJvZHkgc3R5bGU9J21hcmdpbjogMDsgd2lkdGg6IDMwMHB4OyBoZWln
aHQ6IDIwMHB4Jz4KKyAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSdsZWZ0OiAyMDBweDsgdG9w
OiAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBi
YWNrZ3JvdW5kOiBncmVlbjsnPjwvZGl2PgorICAgICAgICAgICAgPC9ib2R5PiIgb25sb2FkPSJu
ZXdGcmFtZUxvYWRlZCgpIj4KKyAgICAgICAgPC9pZnJhbWU+CisgICAgICAgIDxpZnJhbWUgaWQ9
InByb2dyYW1tYXRpY1lBbmRVc2VyWEFuZFByb2dyYW1tYXRpY1hBbmRVc2VyWSIgc3R5bGU9Imxl
ZnQ6IDEwMHB4OyB0b3A6IDEwMHB4OyIgc2Nyb2xsaW5nPSJ5ZXMiIHNyY2RvYz0iCisgICAgICAg
ICAgICA8Ym9keSBzdHlsZT0nbWFyZ2luOiAwOyB3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHgn
PgorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9J2xlZnQ6IDIwMHB4OyB0b3A6IDIwMHB4OyBw
b3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3Vu
ZDogZ3JlZW47Jz48L2Rpdj4KKyAgICAgICAgICAgIDwvYm9keT4iIG9ubG9hZD0ibmV3RnJhbWVM
b2FkZWQoKSI+CisgICAgICAgIDwvaWZyYW1lPgorICAgICAgICA8aWZyYW1lIGlkPSJwcm9ncmFt
bWF0aWNZQW5kVXNlclhBbmRIaXRUZXN0aW5nIiBzdHlsZT0ibGVmdDogMjAwcHg7IHRvcDogMTAw
cHg7IiBzY3JvbGxpbmc9InllcyIgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5IHN0eWxlPSdt
YXJnaW46IDA7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweCc+CisgICAgICAgICAgICAgICAg
PGRpdiBzdHlsZT0nbGVmdDogMTAwcHg7IHRvcDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiByZWQ7JyBvbmNsaWNrPSd0
aGlzLnN0eWxlLmJhY2tncm91bmQ9JnF1b3Q7Z3JlZW4mcXVvdDsnPjwvZGl2PgorICAgICAgICAg
ICAgPC9ib2R5PiIgb25sb2FkPSJuZXdGcmFtZUxvYWRlZCgpIj4KKyAgICAgICAgPC9pZnJhbWU+
CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362904</attachid>
            <date>2019-02-25 08:23:21 -0800</date>
            <delta_ts>2019-02-25 10:26:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194900-20190225172319.patch</filename>
            <type>text/plain</type>
            <size>23289</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTgwMjBlNjYzYmFkNjljMTg2N2My
Y2IyYmM4MDc2MzI4MmNjMWYwYS4uNDI4MjEwMjc2Y2U3NmM5ZTU5OTY3NWZhYzM1ZDUyZDkyMDFm
YmZiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAyLTI1ICBGcmVkZXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgdGVzdHMgbWl4aW5nIHByb2dyYW1tYXRp
YyBhbmQgdXNlciBmcmFtZSBzY3JvbGxpbmcgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5MDAKKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgdGVzdHMgaW5pdGlhbGx5IHdyaXR0ZW4gZm9yIGJ1ZyAxODI4NjggYnV0IGV2ZW50dWFsbHkK
KyAgICAgICAgZml4ZWQgYnkgYnVnIDE5NDg4Ni4gVGhleSBpbnZvbHZlIG1peGluZyB1c2VyIGFu
ZCBwcm9ncmFtbWF0aWMKKyAgICAgICAgc2Nyb2xsaW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11
c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwMS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1z
Y3JvbGwtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9taXhp
bmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDItZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0
aWMtc2Nyb2xsLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mv
bWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtMDAzLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3Jh
bW1hdGljLXNjcm9sbC0wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwNC1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXBy
b2dyYW1tYXRpYy1zY3JvbGwtMDA0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDUtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFu
ZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Nj
cm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtMDA2LWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNl
ci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDYuaHRtbDogQWRkZWQuCisKIDIwMTktMDItMjUg
IFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgV1BFIGdhcmRlbmluZy4gQWRkaW5nIGEgZmV3IGZhaWx1cmUgZXhwZWN0YXRpb25zIGFzIHdl
bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNl
ci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0w
MDEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZhY2I4Nzg1OWJmNWEzYzQwNTU1YTk3MGI4
ZGNmOTMxODEzNDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwMS1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDx0aXRsZT5NaXhpbmcgdXNlciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbCBvZiBpZnJhbWU8
L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHA+VGhp
cyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gcmVjdGFuZ2xlLjwvcD4KKyAgICA8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogM2VtOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5k
LXByb2dyYW1tYXRpYy1zY3JvbGwtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtMDAxLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2ViZjQ2MDVjMGQyYjZjYjQ3YTY3NzYzOThlMzJhZWRmZWM3YjA5MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQt
cHJvZ3JhbW1hdGljLXNjcm9sbC0wMDEuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+TWl4aW5nIHVzZXIgYW5kIHByb2dy
YW1tYXRpYyBzY3JvbGwgb2YgaWZyYW1lPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworCisgICAgICBmdW5jdGlv
biBnZXRGcmFtZURhdGEoaWQpCisgICAgICB7CisgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9Owor
ICAgICAgICAgIHZhciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICAg
IHJlc3VsdC53ID0gZi5jb250ZW50V2luZG93LndpbmRvdzsKKyAgICAgICAgICB2YXIgZnJhbWVC
b3ggPSBmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgIHJlc3VsdC54ID0gZnJh
bWVCb3gubGVmdCArIGZyYW1lQm94LndpZHRoIC8gMjsKKyAgICAgICAgICByZXN1bHQueSA9IGZy
YW1lQm94LnRvcCArIGZyYW1lQm94LmhlaWdodCAvIDI7CisgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gd2FpdFByb21pc2UoZGVsYXkpCisgICAgICB7
CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVvdXQo
cmVzb2x2ZSwgZGVsYXkpOyB9KTsKKyAgICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBUaGlz
IHZlcmlmaWVzIHVzZXIgc2Nyb2xsIGZvbGxvd2VkIGJ5IG9ydGhvZ29uYWwgcHJvZ3JhbW1hdGlj
IHNjcm9sbC4KKyAgICAgICAgICB2YXIgZCA9IGdldEZyYW1lRGF0YSgidXNlcllBbmRQcm9ncmFt
bWF0aWNYIik7CisgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
LngsIGQueSwgZC54LCBkLnkgLSAxNTApOworICAgICAgICAgIGF3YWl0IGxpZnRVcEF0UG9pbnQo
ZC54LCBkLnkgLSAxNTApOworICAgICAgICAgIGF3YWl0IHdhaXRQcm9taXNlKDEwMDApOyAvLyBX
YWl0IGZvciBzY3JvbGxpbmcgdG8gc3RhYmlsaXplLgorICAgICAgICAgIGQudy5zY3JvbGxCeSgx
MDAsIDApOworCisgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgaWZyYW1lIHsKKyAgICAgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFk
aWVudCgxMzVkZWcsIHJlZCwgb3JhbmdlKTsKKyAgICAgICAgICAgIGJvcmRlcjogMDsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
ICAgICBvdmVyZmxvdzogbm9uZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gcmVj
dGFuZ2xlLjwvcD4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogM2Vt
OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+CisgICAg
ICAgIDxpZnJhbWUgaWQ9InVzZXJZQW5kUHJvZ3JhbW1hdGljWCIgc3R5bGU9ImxlZnQ6IDBweDsg
dG9wOiAwcHg7IiBzY3JvbGxpbmc9InllcyIgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5IHN0
eWxlPSdtYXJnaW46IDA7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweCc+CisgICAgICAgICAg
ICAgICAgPGRpdiBzdHlsZT0nbGVmdDogMTAwcHg7IHRvcDogMTAwcHg7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsnPjwv
ZGl2PgorICAgICAgICAgICAgPC9ib2R5PiIgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICA8
L2lmcmFtZT4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNj
cm9sbC0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9t
aXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDItZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42Y2ZhY2I4Nzg1OWJmNWEzYzQwNTU1YTk3MGI4ZGNmOTMxODEzNDMwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFu
ZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwMi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5NaXhpbmcgdXNl
ciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbCBvZiBpZnJhbWU8L3RpdGxlPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSI+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ug
c2VlIGEgZ3JlZW4gcmVjdGFuZ2xlLjwvcD4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IHRvcDogM2VtOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6
IGdyZWVuOyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwt
MDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5k
LXByb2dyYW1tYXRpYy1zY3JvbGwtMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RmZjA5ZWIzNmVhNWEy
ODMzNDNiOGZkNTFiZjQ4OTRjY2M3MTE5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0w
MDIuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8dGl0bGU+TWl4aW5nIHVzZXIgYW5kIHByb2dyYW1tYXRpYyBzY3JvbGwgb2YgaWZy
YW1lPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3Jv
bGxpbmdFbmFibGVkKHRydWUpOworCisgICAgICBmdW5jdGlvbiBnZXRGcmFtZURhdGEoaWQpCisg
ICAgICB7CisgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9OworICAgICAgICAgIHZhciBmID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgIHJlc3VsdC53ID0gZi5jb250ZW50
V2luZG93LndpbmRvdzsKKyAgICAgICAgICB2YXIgZnJhbWVCb3ggPSBmLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICAgICAgICAgIHJlc3VsdC54ID0gZnJhbWVCb3gubGVmdCArIGZyYW1lQm94
LndpZHRoIC8gMjsKKyAgICAgICAgICByZXN1bHQueSA9IGZyYW1lQm94LnRvcCArIGZyYW1lQm94
LmhlaWdodCAvIDI7CisgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgIH0KKworICAgICAg
ZnVuY3Rpb24gd2FpdFByb21pc2UoZGVsYXkpCisgICAgICB7CisgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpOyB9KTsK
KyAgICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBUaGlzIHZlcmlmaWVzIHByb2dyYW1tYXRp
YyBzY3JvbGwgZm9sbG93ZWQgYnkgb3J0aG9nb25hbCB1c2VyIHNjcm9sbC4KKyAgICAgICAgICBk
ID0gZ2V0RnJhbWVEYXRhKCJwcm9ncmFtbWF0aWNYQW5kVXNlclkiKTsKKyAgICAgICAgICBkLncu
c2Nyb2xsQnkoMTAwLCAwKTsKKyAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRU
b1BvaW50KGQueCwgZC55LCBkLngsIGQueSAtIDE1MCk7CisgICAgICAgICAgYXdhaXQgbGlmdFVw
QXRQb2ludChkLngsIGQueSAtIDE1MCk7CisgICAgICAgICAgYXdhaXQgd2FpdFByb21pc2UoMTAw
MCk7IC8vIFdhaXQgZm9yIHNjcm9sbGluZyB0byBzdGFiaWxpemUuCisKKyAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxl
PgorICAgICAgICBpZnJhbWUgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBvcmFuZ2Up
OworICAgICAgICAgICAgYm9yZGVyOiAwOworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBub25lOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UaGlzIHRl
c3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgIDxkaXYgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzZW07IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij4KKyAgICAgICAgPGlmcmFtZSBpZD0icHJvZ3JhbW1h
dGljWEFuZFVzZXJZIiBzdHlsZT0ibGVmdDogMHB4OyB0b3A6IDBweDsiIHNjcm9sbGluZz0ieWVz
IiBzcmNkb2M9IgorICAgICAgICAgICAgPGJvZHkgc3R5bGU9J21hcmdpbjogMDsgd2lkdGg6IDIw
MHB4OyBoZWlnaHQ6IDIwMHB4Jz4KKyAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSdsZWZ0OiAx
MDBweDsgdG9wOiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyc+PC9kaXY+CisgICAgICAgICAgICA8L2JvZHk+
IiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDwvaWZyYW1lPgorICAgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwMy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0
aWMtc2Nyb2xsLTAwMy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZmFjYjg3ODU5YmY1YTNj
NDA1NTVhOTcwYjhkY2Y5MzE4MTM0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtMDAz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KyAgPGhlYWQ+CisgICAgPHRpdGxlPk1peGluZyB1c2VyIGFuZCBwcm9ncmFtbWF0aWMgc2Nyb2xs
IG9mIGlmcmFtZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBncmVlbiByZWN0YW5nbGUuPC9w
PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzZW07IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhp
bmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NWY5NDFmOGE3ZDAyY2M0ZTM2NGRlZDQzMjE0NWUxNzMzOWU2Mzhi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGlu
Zy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwMy5odG1sCkBAIC0wLDAgKzEsNjQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5NaXhpbmcgdXNl
ciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbCBvZiBpZnJhbWU8L3RpdGxlPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSI+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworCisgICAgICBmdW5j
dGlvbiBnZXRGcmFtZURhdGEoaWQpCisgICAgICB7CisgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9
OworICAgICAgICAgIHZhciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAg
ICAgIHJlc3VsdC53ID0gZi5jb250ZW50V2luZG93LndpbmRvdzsKKyAgICAgICAgICB2YXIgZnJh
bWVCb3ggPSBmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgIHJlc3VsdC54ID0g
ZnJhbWVCb3gubGVmdCArIGZyYW1lQm94LndpZHRoIC8gMjsKKyAgICAgICAgICByZXN1bHQueSA9
IGZyYW1lQm94LnRvcCArIGZyYW1lQm94LmhlaWdodCAvIDI7CisgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gd2FpdFByb21pc2UoZGVsYXkpCisgICAg
ICB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVv
dXQocmVzb2x2ZSwgZGVsYXkpOyB9KTsKKyAgICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBU
aGlzIHZlcmlmaWVzIHByb2dyYW1tYXRpYyBzY3JvbGwgZm9sbG93ZWQgYnkgdXNlciBzY3JvbGwg
aW4gdGhlIHNhbWUgZGlyZWN0aW9uLgorICAgICAgICAgIGQgPSBnZXRGcmFtZURhdGEoInByb2dy
YW1tYXRpY1hBbmRVc2VyWCIpOworICAgICAgICAgIGQudy5zY3JvbGxCeSgxNTAsIDApOworICAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZC54LCBkLnksIGQueCAt
IDEwMCwgZC55KTsKKyAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGQueCAtIDEwMCwgZC55
KTsKKyAgICAgICAgICBhd2FpdCB3YWl0UHJvbWlzZSgxMDAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xs
aW5nIHRvIHN0YWJpbGl6ZS4KKworICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgIGlmcmFtZSB7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBiYWNrZ3JvdW5kOiBs
aW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIG9yYW5nZSk7CisgICAgICAgICAgICBib3JkZXI6
IDA7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICAgICAgb3ZlcmZsb3c6IG5vbmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IGdyZWVuIHJlY3RhbmdsZS48L3A+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyB0b3A6IDNlbTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVl
bjsiPgorICAgICAgICA8aWZyYW1lIGlkPSJwcm9ncmFtbWF0aWNYQW5kVXNlclgiIHN0eWxlPSJs
ZWZ0OiAwcHg7IHRvcDogMHB4OyIgc2Nyb2xsaW5nPSJ5ZXMiIHNyY2RvYz0iCisgICAgICAgICAg
ICA8Ym9keSBzdHlsZT0nbWFyZ2luOiAwOyB3aWR0aDogMzAwcHg7IGhlaWdodDogMjAwcHgnPgor
ICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9J2xlZnQ6IDIwMHB4OyB0b3A6IDBweDsgcG9zaXRp
b246IGFic29sdXRlOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6IGdy
ZWVuOyc+PC9kaXY+CisgICAgICAgICAgICA8L2JvZHk+IiBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgICAgIDwvaWZyYW1lPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFt
bWF0aWMtc2Nyb2xsLTAwNC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwNC1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZjZmFjYjg3ODU5YmY1YTNjNDA1NTVhOTcwYjhkY2Y5MzE4MTM0MzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5n
LXVzZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtMDA0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPk1p
eGluZyB1c2VyIGFuZCBwcm9ncmFtbWF0aWMgc2Nyb2xsIG9mIGlmcmFtZTwvdGl0bGU+CisgICAg
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xIj4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UaGlzIHRlc3QgcGFzc2Vz
IGlmIHlvdSBzZWUgYSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgIDxkaXYgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgdG9wOiAzZW07IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFj
a2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGlj
LXNjcm9sbC0wMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmct
dXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzM4ODli
ZDQyODcwMTRjMWEzZGUzZGI3MzRjOGE2ZTUwOWZjOGI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMt
c2Nyb2xsLTAwNC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgIDxoZWFkPgorICAgIDx0aXRsZT5NaXhpbmcgdXNlciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9s
bCBvZiBpZnJhbWU8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3Jv
bGxpbmdFbmFibGVkKHRydWUpOworCisgICAgICBmdW5jdGlvbiBnZXRGcmFtZURhdGEoaWQpCisg
ICAgICB7CisgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9OworICAgICAgICAgIHZhciBmID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgIHJlc3VsdC53ID0gZi5jb250ZW50
V2luZG93LndpbmRvdzsKKyAgICAgICAgICB2YXIgZnJhbWVCb3ggPSBmLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICAgICAgICAgIHJlc3VsdC54ID0gZnJhbWVCb3gubGVmdCArIGZyYW1lQm94
LndpZHRoIC8gMjsKKyAgICAgICAgICByZXN1bHQueSA9IGZyYW1lQm94LnRvcCArIGZyYW1lQm94
LmhlaWdodCAvIDI7CisgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgIH0KKworICAgICAg
ZnVuY3Rpb24gd2FpdFByb21pc2UoZGVsYXkpCisgICAgICB7CisgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpOyB9KTsK
KyAgICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBUaGlzIHZlcmlmaWVzIHVzZXIgc2Nyb2xs
IGZvbGxvd2VkIGJ5IHByb2dyYW1tYXRpYyBzY3JvbGwgaW4gdGhlIHNhbWUgZGlyZWN0aW9uLgor
ICAgICAgICAgIGQgPSBnZXRGcmFtZURhdGEoInVzZXJYQW5kUHJvZ3JhbW1hdGljWCIpOworICAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZC54LCBkLnksIGQueCAt
IDEwMCwgZC55KTsKKyAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGQueCAtIDEwMCwgZC55
KTsKKyAgICAgICAgICBhd2FpdCB3YWl0UHJvbWlzZSgxMDAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xs
aW5nIHRvIHN0YWJpbGl6ZS4KKyAgICAgICAgICBkLncuc2Nyb2xsQnkoMTUwLCAwKTsKKworICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KyAgICA8c3R5bGU+CisgICAgICAgIGlmcmFtZSB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBy
ZWQsIG9yYW5nZSk7CisgICAgICAgICAgICBib3JkZXI6IDA7CisgICAgICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgb3ZlcmZsb3c6
IG5vbmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGdyZWVuIHJlY3RhbmdsZS48L3A+Cisg
ICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDNlbTsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPgorICAgICAgICA8aWZyYW1lIGlk
PSJ1c2VyWEFuZFByb2dyYW1tYXRpY1giIHN0eWxlPSJsZWZ0OiAwcHg7IHRvcDogMHB4OyIgc2Ny
b2xsaW5nPSJ5ZXMiIHNyY2RvYz0iCisgICAgICAgICAgICA8Ym9keSBzdHlsZT0nbWFyZ2luOiAw
OyB3aWR0aDogMzAwcHg7IGhlaWdodDogMjAwcHgnPgorICAgICAgICAgICAgICAgIDxkaXYgc3R5
bGU9J2xlZnQ6IDIwMHB4OyB0b3A6IDBweDsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyc+PC9kaXY+CisgICAgICAgICAg
ICA8L2JvZHk+IiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDwvaWZyYW1lPgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwNS1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1w
cm9ncmFtbWF0aWMtc2Nyb2xsLTAwNS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZmFjYjg3
ODU5YmY1YTNjNDA1NTVhOTcwYjhkY2Y5MzE4MTM0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVzZXItYW5kLXByb2dyYW1tYXRpYy1z
Y3JvbGwtMDA1LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPk1peGluZyB1c2VyIGFuZCBwcm9ncmFtbWF0
aWMgc2Nyb2xsIG9mIGlmcmFtZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgICA8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBncmVlbiByZWN0
YW5nbGUuPC9wPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzZW07
IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNj
cm9sbC0wMDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGQ5NzVlNjUxOGVjMzVkZmRlZTBiNzlkMmM3NDMx
ZjQ1Mzc1ZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwNS5odG1sCkBAIC0wLDAg
KzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5N
aXhpbmcgdXNlciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbCBvZiBpZnJhbWU8L3RpdGxlPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSI+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1n
ZXN0dXJlcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworCisg
ICAgICBmdW5jdGlvbiBnZXRGcmFtZURhdGEoaWQpCisgICAgICB7CisgICAgICAgICAgdmFyIHJl
c3VsdCA9IHt9OworICAgICAgICAgIHZhciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
OworICAgICAgICAgIHJlc3VsdC53ID0gZi5jb250ZW50V2luZG93LndpbmRvdzsKKyAgICAgICAg
ICB2YXIgZnJhbWVCb3ggPSBmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgIHJl
c3VsdC54ID0gZnJhbWVCb3gubGVmdCArIGZyYW1lQm94LndpZHRoIC8gMjsKKyAgICAgICAgICBy
ZXN1bHQueSA9IGZyYW1lQm94LnRvcCArIGZyYW1lQm94LmhlaWdodCAvIDI7CisgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gd2FpdFByb21pc2UoZGVs
YXkpCisgICAgICB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpOyB9KTsKKyAgICAgIH0KKworICAgICAgYXN5bmMg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8
ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAvLyBUaGlzIHZlcmlmaWVzIG1peGluZyBzZXZlcmFsIHVzZXIvcHJvZ3JhbW1hdGljIHNj
cm9sbHMgaW4gdmFyaW91cyBkaXJlY3Rpb25zLgorICAgICAgICAgIGQgPSBnZXRGcmFtZURhdGEo
InByb2dyYW1tYXRpY1lBbmRVc2VyWEFuZFByb2dyYW1tYXRpY1hBbmRVc2VyWSIpOworICAgICAg
ICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZC54LCBkLnksIGQueCwgZC55
IC0gMTAwKTsKKyAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGQueCwgZC55IC0gMTAwKTsK
KyAgICAgICAgICBhd2FpdCB3YWl0UHJvbWlzZSgxMDAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xsaW5n
IHRvIHN0YWJpbGl6ZS4KKyAgICAgICAgICBkLncuc2Nyb2xsQnkoMTUwLCAwKTsKKyAgICAgICAg
ICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGQueCwgZC55LCBkLnggLSAxMDAs
IGQueSk7CisgICAgICAgICAgYXdhaXQgbGlmdFVwQXRQb2ludChkLnggLSAxMDAsIGQueSk7Cisg
ICAgICAgICAgYXdhaXQgd2FpdFByb21pc2UoMTAwMCk7IC8vIFdhaXQgZm9yIHNjcm9sbGluZyB0
byBzdGFiaWxpemUuCisgICAgICAgICAgZC53LnNjcm9sbEJ5KDAsIDE1MCk7CisKKyAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAg
PHN0eWxlPgorICAgICAgICBpZnJhbWUgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBv
cmFuZ2UpOworICAgICAgICAgICAgYm9yZGVyOiAwOworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBub25l
OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5U
aGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgIDxk
aXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzZW07IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij4KKyAgICAgICAgPGlmcmFtZSBpZD0icHJv
Z3JhbW1hdGljWUFuZFVzZXJYQW5kUHJvZ3JhbW1hdGljWEFuZFVzZXJZIiBzdHlsZT0ibGVmdDog
MHB4OyB0b3A6IDBweDsiIHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9IgorICAgICAgICAgICAgPGJv
ZHkgc3R5bGU9J21hcmdpbjogMDsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4Jz4KKyAgICAg
ICAgICAgICAgICA8ZGl2IHN0eWxlPSdsZWZ0OiAyMDBweDsgdG9wOiAyMDBweDsgcG9zaXRpb246
IGFic29sdXRlOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVu
Oyc+PC9kaXY+CisgICAgICAgICAgICA8L2JvZHk+IiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAg
ICAgIDwvaWZyYW1lPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0
aWMtc2Nyb2xsLTAwNi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Nyb2xsLTAwNi1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZjZmFjYjg3ODU5YmY1YTNjNDA1NTVhOTcwYjhkY2Y5MzE4MTM0MzAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvbWl4aW5nLXVz
ZXItYW5kLXByb2dyYW1tYXRpYy1zY3JvbGwtMDA2LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPk1peGlu
ZyB1c2VyIGFuZCBwcm9ncmFtbWF0aWMgc2Nyb2xsIG9mIGlmcmFtZTwvdGl0bGU+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xIj4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8cD5UaGlzIHRlc3QgcGFzc2VzIGlm
IHlvdSBzZWUgYSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgdG9wOiAzZW07IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dy
b3VuZDogZ3JlZW47Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNlci1hbmQtcHJvZ3JhbW1hdGljLXNj
cm9sbC0wMDYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9taXhpbmctdXNl
ci1hbmQtcHJvZ3JhbW1hdGljLXNjcm9sbC0wMDYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODkzMDBjYTVl
MGY4OWYzM2VjMDk3N2QxYzc1OTM0M2NhODM3OWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL21peGluZy11c2VyLWFuZC1wcm9ncmFtbWF0aWMtc2Ny
b2xsLTAwNi5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT5NaXhpbmcgdXNlciBhbmQgcHJvZ3JhbW1hdGljIHNjcm9sbCBv
ZiBpZnJhbWU8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxp
bmdFbmFibGVkKHRydWUpOworCisgICAgICBmdW5jdGlvbiBnZXRGcmFtZURhdGEoaWQpCisgICAg
ICB7CisgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9OworICAgICAgICAgIHZhciBmID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgIHJlc3VsdC53ID0gZi5jb250ZW50V2lu
ZG93LndpbmRvdzsKKyAgICAgICAgICB2YXIgZnJhbWVCb3ggPSBmLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOworICAgICAgICAgIHJlc3VsdC54ID0gZnJhbWVCb3gubGVmdCArIGZyYW1lQm94Lndp
ZHRoIC8gMjsKKyAgICAgICAgICByZXN1bHQueSA9IGZyYW1lQm94LnRvcCArIGZyYW1lQm94Lmhl
aWdodCAvIDI7CisgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgIH0KKworICAgICAgZnVu
Y3Rpb24gd2FpdFByb21pc2UoZGVsYXkpCisgICAgICB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpOyB9KTsKKyAg
ICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBUaGlzIHZlcmlmaWVzIGhpdCB0ZXN0aW5nIGFm
dGVyIHVzZXIgYW5kIHByb2dyYW1tYXRpYyBzY3JvbGwuCisgICAgICAgICAgZCA9IGdldEZyYW1l
RGF0YSgicHJvZ3JhbW1hdGljWUFuZFVzZXJYQW5kSGl0VGVzdGluZyIpOworICAgICAgICAgIGQu
dy5zY3JvbGxCeSgwLCAxMDApOworICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2lu
dFRvUG9pbnQoZC54LCBkLnksIGQueCAtIDE1MCwgZC55KTsKKyAgICAgICAgICBhd2FpdCBsaWZ0
VXBBdFBvaW50KGQueCAtIDE1MCwgZC55KTsKKyAgICAgICAgICBhd2FpdCB3YWl0UHJvbWlzZSgx
NTAwKTsgLy8gV2FpdCBmb3Igc2Nyb2xsaW5nIHRvIHN0YWJpbGl6ZSBhbmQgZm9yIHNjcm9sbGJh
ciB0byBkaXNhcHBlYXIuCisgICAgICAgICAgYXdhaXQgdGFwQXRQb2ludChkLngsIGQueSk7CisK
KyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICB9CisgICAgPC9zY3Jp
cHQ+CisgICAgPHN0eWxlPgorICAgICAgICBpZnJhbWUgeworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRl
ZywgcmVkLCBvcmFuZ2UpOworICAgICAgICAgICAgYm9yZGVyOiAwOworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIG92ZXJm
bG93OiBub25lOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBncmVlbiByZWN0YW5nbGUuPC9w
PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzZW07IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij4KKyAgICAgICAgPGlmcmFt
ZSBpZD0icHJvZ3JhbW1hdGljWUFuZFVzZXJYQW5kSGl0VGVzdGluZyIgc3R5bGU9ImxlZnQ6IDBw
eDsgdG9wOiAwcHg7IiBzY3JvbGxpbmc9InllcyIgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5
IHN0eWxlPSdtYXJnaW46IDA7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweCc+CisgICAgICAg
ICAgICAgICAgPGRpdiBzdHlsZT0nbGVmdDogMTAwcHg7IHRvcDogMTAwcHg7IHBvc2l0aW9uOiBh
YnNvbHV0ZTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiByZWQ7JyBv
bmNsaWNrPSd0aGlzLnN0eWxlLmJhY2tncm91bmQ9JnF1b3Q7Z3JlZW4mcXVvdDsnPjwvZGl2Pgor
ICAgICAgICAgICAgPC9ib2R5PiIgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICA8L2lmcmFt
ZT4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>