<?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>233085</bug_id>
          
          <creation_ts>2021-11-13 09:13:29 -0800</creation_ts>
          <short_desc>AX: Make 7 more layout tests async so that they pass in --release --accessibility-isolated-tree mode</short_desc>
          <delta_ts>2021-11-15 20:48:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1814758</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-13 09:13:29 -0800</bug_when>
    <thetext>Make 7 more layout tests async so that they pass in --release --accessibility-isolated-tree mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814759</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-13 09:13:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/85376470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814760</commentid>
    <comment_count>2</comment_count>
      <attachid>444139</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-13 09:18:55 -0800</bug_when>
    <thetext>Created attachment 444139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814790</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-13 13:57:39 -0800</bug_when>
    <thetext>Committed r285778 (244222@main): &lt;https://commits.webkit.org/244222@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444139.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815090</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-15 09:12:27 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #2)
&gt; Created attachment 444139 [details]
&gt; Patch

--- a/LayoutTests/accessibility/ancestor-computation.html
+++ a/LayoutTests/accessibility/ancestor-computation.html

+        let elementsToCheck = [await waitForElementById(startElementId)];

Why is this an array? 

--- a/LayoutTests/accessibility/color-well.html
+++ a/LayoutTests/accessibility/color-well.html

+            let axColorwell = await waitForElementById(&quot;empty_colorwell&quot;);

Do we really need to wait to get the accessible element for these elements? I would think we can get them without having to wait, i.e., just with AccessibilityController.accessibleElementById.

In general, we should need to wait only if a mutation on the tree occurs, or if any property of elements change. In case of static docs where the JS is doing just reading of properties, we shouldn&apos;t need to wait.

--- a/LayoutTests/resources/accessibility-helper.js
+++ a/LayoutTests/resources/accessibility-helper.js

+async function waitForExpression(element, expression, expectedValue) {

Most (or all) calls to this function are followed by a shouldBE. Can we put the shouldBe as part of this function? As you did in one of the tests, with a more explicit name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815336</commentid>
    <comment_count>5</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 20:48:30 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #4)
&gt; (In reply to Tyler Wilcock from comment #2)
&gt; &gt; Created attachment 444139 [details]
&gt; &gt; Patch
&gt; 
&gt; --- a/LayoutTests/accessibility/ancestor-computation.html
&gt; +++ a/LayoutTests/accessibility/ancestor-computation.html
&gt; 
&gt; +        let elementsToCheck = [await waitForElementById(startElementId)];
&gt; 
&gt; Why is this an array? 
&gt; 
&gt; --- a/LayoutTests/accessibility/color-well.html
&gt; +++ a/LayoutTests/accessibility/color-well.html
&gt; 
&gt; +            let axColorwell = await waitForElementById(&quot;empty_colorwell&quot;);
&gt; 
&gt; Do we really need to wait to get the accessible element for these elements?
&gt; I would think we can get them without having to wait, i.e., just with
&gt; AccessibilityController.accessibleElementById.
&gt; 
&gt; In general, we should need to wait only if a mutation on the tree occurs, or
&gt; if any property of elements change. In case of static docs where the JS is
&gt; doing just reading of properties, we shouldn&apos;t need to wait.
&gt; 
&gt; --- a/LayoutTests/resources/accessibility-helper.js
&gt; +++ a/LayoutTests/resources/accessibility-helper.js
&gt; 
&gt; +async function waitForExpression(element, expression, expectedValue) {
&gt; 
&gt; Most (or all) calls to this function are followed by a shouldBE. Can we put
&gt; the shouldBe as part of this function? As you did in one of the tests, with
&gt; a more explicit name.
All good points. Addressing in: https://bugs.webkit.org/show_bug.cgi?id=233167</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444139</attachid>
            <date>2021-11-13 09:18:55 -0800</date>
            <delta_ts>2021-11-13 13:57:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233085-20211113111854.patch</filename>
            <type>text/plain</type>
            <size>32456</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NzcyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjkwNDk4ZDNiYzg0OTU4MzNmNjZj
M2NjMGZiYTczOGU5ZDBmZjU3ZS4uZWNlMGYzZjlkNjE1MDE0YWFmNjZkNTA4Yzg2NzhiYjZkMDll
ZjY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTExLTEzICBUeWxlciBXaWxjb2NrICA8
dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE1ha2UgNyBtb3JlIGxheW91dCB0ZXN0
cyBhc3luYyBzbyB0aGF0IHRoZXkgcGFzcyBpbiAtLXJlbGVhc2UgLS1hY2Nlc3NpYmlsaXR5LWlz
b2xhdGVkLXRyZWUgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyA3IG1vcmUgdGVzdHMgYXN5bmMgc28gdGhhdCB0aGV5
IHBhc3MgaW4gLS1yZWxlYXNlCisgICAgICAgIC0tYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVl
IG1vZGUuIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHNvbWUgaGVscGVyCisgICAgICAgIGZ1bmN0aW9u
cyB0byBhY2Nlc3NpYmlsaXR5LWhlbHBlci5qcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
YW5jZXN0b3ItY29tcHV0YXRpb24uaHRtbDoKKyAgICAgICAgTW92ZSBgd2FpdEZvckVsZW1lbnRg
IHRvIGFjY2Vzc2liaWxpdHktaGVscGVycy5qcyBhbmQgcmVuYW1lIHRvCisgICAgICAgIGB3YWl0
Rm9yRWxlbWVudEJ5SWRgLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jb2xvci13ZWxsLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NvbG9yLXdlbGwuaHRtbDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zY3JvbGxiYXJzLmh0bWw6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9wbGFjZWhvbGRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9wbGFjZWhvbGRlci5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcHJvZ3Jlc3Ni
YXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcHJvZ3Jlc3NiYXIuaHRt
bDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3JhbmdlLWFsdGVyLWJ5LXBlcmNlbnQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmFuZ2UtYWx0ZXItYnktcGVyY2VudC5o
dG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmFuZ2UtYWx0ZXItYnktc3RlcC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9yYW5nZS1hbHRlci1ieS1zdGVwLmh0bWw6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zcGluYnV0dG9uLXZhbHVlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3NwaW5idXR0b24tdmFsdWUuaHRtbDoKKyAgICAgICAg
TWFrZSB0ZXN0cyBhc3luYyBzbyB0aGV5IHBhc3MgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorICAg
ICAgICBNaW5vciB1cGRhdGVzIHRvIGV4cGVjdGF0aW9uczoKKyAgICAgICAgICAtIFNvbWUgdmFy
aWFibGVzIHJlbmFtZWQgZm9yIGJldHRlciByZWFkYWJpbGl0eQorICAgICAgICAgIC0gU29tZXRp
bWVzIHRoZXJlIGlzIG9uZSBtb3JlIG9yIG9uZSBsZXNzIG5ld2xpbmUgYWZ0ZXIgdGhlIHRlc3Qg
cmV3cml0ZXMKKworICAgICAgICAqIHJlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qczoK
KyAgICAgICAgKGFzeW5jIHdhaXRGb3JFbGVtZW50QnlJZCk6IEFkZGVkLiBPcmlnaW5hbGx5IGRl
ZmluZWQgaW4KKyAgICAgICAgYWNjZXNzaWJpbGl0eS9hbmNlc3Rvci1jb21wdXRhdGlvbi5odG1s
LgorICAgICAgICAoYXN5bmMgd2FpdEZvckV4cHJlc3Npb24pOiBBZGRlZC4KKwogMjAyMS0xMS0x
MiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIyODU0ODEpOiBJbmZpbml0ZSByZWN1cnNpb24gd2l0aCBjeWNsaWMgZmlsdGVyIHJlZmVy
ZW5jZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hbmNlc3Rvci1jb21w
dXRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hbmNlc3Rvci1jb21wdXRh
dGlvbi5odG1sCmluZGV4IDE4M2IyZmQ2NmYzOWNhMGQ4NTIwZGQ0OTFmMDYwZTBlZTdmNjQ2ODcu
LjM4MWYzNTgwMWEzYWQyYjgyOGI3NmRmMmVmYTU0MzhiMDBmNDE1YWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYW5jZXN0b3ItY29tcHV0YXRpb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FuY2VzdG9yLWNvbXB1dGF0aW9uLmh0bWwKQEAgLTUz
LDE5ICs1MywxMCBAQAogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBhY2Nlc3Np
YmlsaXR5IGVsZW1lbnRzIHByb3Blcmx5IHRyYWNrIHRoZWlyIGFuY2VzdG9yIHR5cGVzLiIpOwog
ICAgIHZhciBlbGVtZW50OwogCi0gICAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckVsZW1lbnQoaWQp
IHsKLSAgICAgICAgbGV0IHJldHVybkVsZW1lbnQ7Ci0gICAgICAgIGF3YWl0IHdhaXRGb3IoKCkg
PT4gewotICAgICAgICAgICAgcmV0dXJuRWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZChpZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmV0dXJuRWxl
bWVudDsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiByZXR1cm5FbGVtZW50OwotICAgIH0K
LQogICAgIGFzeW5jIGZ1bmN0aW9uIHNob3VsZEJlRm9yQWxsRGVzY2VuZGFudHMoc3RhcnRFbGVt
ZW50SWQsIGV4cGVjdGVkUHJvcGVydHlWYWx1ZXMpIHsKICAgICAgICAgZGVidWcoYFZlcmlmeWlu
ZyAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkUHJvcGVydHlWYWx1ZXMpfSBmb3IgYWxsIGRlc2Nl
bmRhbnRzIG9mICR7c3RhcnRFbGVtZW50SWR9LmApOwogCi0gICAgICAgIGxldCBlbGVtZW50c1Rv
Q2hlY2sgPSBbYXdhaXQgd2FpdEZvckVsZW1lbnQoc3RhcnRFbGVtZW50SWQpXTsKKyAgICAgICAg
bGV0IGVsZW1lbnRzVG9DaGVjayA9IFthd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQoc3RhcnRFbGVt
ZW50SWQpXTsKICAgICAgICAgd2hpbGUgKGVsZW1lbnRzVG9DaGVjay5sZW5ndGgpIHsKICAgICAg
ICAgICAgIGVsZW1lbnQgPSBlbGVtZW50c1RvQ2hlY2sucG9wKCk7CiAgICAgICAgICAgICBpZiAo
IWVsZW1lbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NvbG9yLXdl
bGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jb2xvci13ZWxsLWV4
cGVjdGVkLnR4dAppbmRleCA1NDExYzVmNzA0ZTA1ZTI3YjVmYTczZjY4MzI0YjdhMjdjOWM4MGM2
Li4xZDk0NGI1ZWU0NDVmNGQyZGQxY2Y0OWFhZWM3MzkwMzRiMTViNTYxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NvbG9yLXdlbGwtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY29sb3Itd2VsbC1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACi0KIFRoaXMgdGVzdCBjaGVja3MgdGhlIHJvbGUgb2YgQ29sb3JXZWxsUm9sZWFuIGlu
cHV0IHdpdGggdHlwZT1jb2xvcgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NvbG9yLXdlbGwuaHRtbCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvY29sb3Itd2VsbC5odG1sCmluZGV4IDE2NjdmZGVlZjZmYjhhNTk3
ZTA2MzZkMDhmYWVjYTA0NTBhMDA0NjQuLmM0NTM1NDU2ZjBkMDZiNjZhZGUxZDcxZWUwOTU5Nzg3
ODE1NTgxOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY29sb3Itd2Vs
bC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY29sb3Itd2VsbC5odG1sCkBA
IC0xLDM4ICsxLDM2IEBACi08aHRtbD4KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxp
dHktaGVscGVyLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IGlkPSJib2R5Ij4KKzxib2R5
PgogCi0gICAgPGlucHV0IGlkPSJlbXB0eV9jb2xvcndlbGwiIHR5cGU9ImNvbG9yIj4KLSAgICA8
aW5wdXQgaWQ9Imdvb2RfY29sb3J3ZWxsIiB0eXBlPSJjb2xvciIgdmFsdWU9IiNmZjAwMDAiPgot
ICAgIDxpbnB1dCBpZD0iYmFkX2NvbG9yd2VsbCIgdHlwZT0iY29sb3IiIHZhbHVlPSJwdXJwbGUi
PgorPGlucHV0IGlkPSJlbXB0eV9jb2xvcndlbGwiIHR5cGU9ImNvbG9yIj4KKzxpbnB1dCBpZD0i
Z29vZF9jb2xvcndlbGwiIHR5cGU9ImNvbG9yIiB2YWx1ZT0iI2ZmMDAwMCI+Cis8aW5wdXQgaWQ9
ImJhZF9jb2xvcndlbGwiIHR5cGU9ImNvbG9yIiB2YWx1ZT0icHVycGxlIj4KICAgICAKLSAgICA8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLSAg
ICAgCi0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgewotICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIHJv
bGUgb2YgQ29sb3JXZWxsUm9sZWFuIGlucHV0IHdpdGggdHlwZT1jb2xvciIpOworPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgcm9sZSBvZiBDb2xvcldlbGxS
b2xlYW4gaW5wdXQgd2l0aCB0eXBlPWNvbG9yIik7CiAKLSAgICAgICAgICAgIHZhciBjb2xvcndl
bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW1wdHlfY29sb3J3ZWxsIikuZm9jdXMoKTsK
LSAgICAgICAgICAgIHZhciBheENvbG9yd2VsbCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50OwotICAgICAgICAgICAgZGVidWcoIlJvbGUgb2YgaW5wdXQgdHlwZT1jb2xv
ciBpczogIiArIGF4Q29sb3J3ZWxsLnJvbGUpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCisg
ICAgICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBsZXQgYXhD
b2xvcndlbGwgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQoImVtcHR5X2NvbG9yd2VsbCIpOwor
ICAgICAgICAgICAgZGVidWcoIlJvbGUgb2YgaW5wdXQgdHlwZT1jb2xvciBpczogIiArIGF4Q29s
b3J3ZWxsLnJvbGUpOwogICAgICAgICAgICAgZGVidWcoIlZhbHVlIG9mIGVtcHR5IGNvbG9yIHdl
bGw6ICIgKyBheENvbG9yd2VsbC5zdHJpbmdWYWx1ZSk7CiAKLSAgICAgICAgICAgIGNvbG9yd2Vs
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnb29kX2NvbG9yd2VsbCIpLmZvY3VzKCk7Ci0g
ICAgICAgICAgICBheENvbG9yd2VsbCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworICAgICAgICAgICAgYXhDb2xvcndlbGwgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5
SWQoImdvb2RfY29sb3J3ZWxsIik7CiAgICAgICAgICAgICBkZWJ1ZygiVmFsdWUgb2YgZ29vZCBj
b2xvciB3ZWxsOiAiICsgYXhDb2xvcndlbGwuc3RyaW5nVmFsdWUpOwogCi0gICAgICAgICAgICBj
b2xvcndlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFkX2NvbG9yd2VsbCIpLmZvY3Vz
KCk7Ci0gICAgICAgICAgICBheENvbG9yd2VsbCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50OworICAgICAgICAgICAgYXhDb2xvcndlbGwgPSBhd2FpdCB3YWl0Rm9yRWxl
bWVudEJ5SWQoImJhZF9jb2xvcndlbGwiKTsKICAgICAgICAgICAgIGRlYnVnKCJWYWx1ZSBvZiBi
YWQgY29sb3Igd2VsbDogIiArIGF4Q29sb3J3ZWxsLnN0cmluZ1ZhbHVlKTsKLSAgICAgICAgfQot
ICAgIDwvc2NyaXB0PgogCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4gCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+CiA8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Njcm9sbGJhcnMuaHRtbCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Njcm9sbGJhcnMuaHRtbAppbmRleCA5YzgxNDAz
N2ViODI1YzY4NTM2ZmVjMWQwZWRiYTZhOWE4YTUwY2Y5Li4wNDE1OTg4ZmM5YWQwYTY3YThkZWRl
YzM2YjEwMmM3ODE0MzZiOGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zY3JvbGxiYXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2Nyb2xsYmFycy5odG1sCkBAIC0xLDQ0ICsxLDQzIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdD4KLXZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBp
ZD0iYm9keSIgdGFiaW5kZXg9IjAiPgotCi08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08ZGl2IHJvbGU9InRleHRib3giIGlkPSJpZnJhbWVHcm91
cCI+PC9kaXY+Cis8Ym9keSBpZD0iYm9keSIgcm9sZT0iZ3JvdXAiPgogCiA8c2NyaXB0PgotCiAg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBhIHNjcm9sbCBhcmVhIHdpbGwgcmV0dXJu
IHNjcm9sbCBiYXJzIHdoZW4gYXNrZWQuIik7CiAKLSAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5m
b2N1cygpOwotICAgICAgICB2YXIgYm9keSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3Vz
ZWRFbGVtZW50OwotICAgIH0KLQogICAgIC8vIENhdXNlIHRoZSB3ZWIgcGFnZSB0byBnYWluIHNj
cm9sbGJhcnMuCiAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAxMDA7IGsrKykgewogICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuaW5uZXJIVE1MICs9ICI8YnI+PGJyPjxicj4i
OwogICAgIH0KIAotICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0g
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5mb2N1cygpOwotICAgICAg
ICAgIHZhciBib2R5ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Cisg
ICAgdmFyIHNjcm9sbEFyZWE7CisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikgeworICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICAgICAgICB2
YXIgc2Nyb2xsQXJlYSA9IGJvZHkucGFyZW50RWxlbWVudCgpOwotICAgICAgICAgIHNob3VsZEJl
KCJzY3JvbGxBcmVhLnJvbGUiLCAiJ0FYUm9sZTogQVhTY3JvbGxBcmVhJyIpOwotICAgICAgICAg
IHNob3VsZEJlKCJzY3JvbGxBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyLnJvbGUiLCAiJ0FYUm9sZTog
QVhTY3JvbGxCYXInIik7Ci0gICAgfQorICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgLy8gSXRlcmF0ZSB1cCBmcm9tIHRoZSBib2R5IEFYIGVsZW1lbnQg
dG8gdGhlIHNjcm9sbGFyZWEgQVggZWxlbWVudC4KKyAgICAgICAgICAgIGxldCBtYXliZVNjcm9s
bEFyZWEgPSAoYXdhaXQgd2FpdEZvckVsZW1lbnRCeUlkKCJib2R5IikpLnBhcmVudEVsZW1lbnQo
KTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgICAgIGlm
IChtYXliZVNjcm9sbEFyZWEgJiYgbWF5YmVTY3JvbGxBcmVhLnJvbGUgPT09ICJBWFJvbGU6IEFY
U2Nyb2xsQXJlYSIpIHsKKyAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQXJlYSA9IG1heWJlU2Ny
b2xsQXJlYTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAg
ICAgfQogCi0gICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgorICAgICAg
ICAgICAgICAgIG1heWJlU2Nyb2xsQXJlYSA9IG1heWJlU2Nyb2xsQXJlYS5wYXJlbnRFbGVtZW50
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJzY3JvbGxBcmVhLnJvbGUiLCAiJ0FYUm9sZTogQVhTY3JvbGxB
cmVhJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInNjcm9sbEFyZWEudmVydGljYWxTY3JvbGxi
YXIucm9sZSIsICInQVhSb2xlOiBBWFNjcm9sbEJhciciKTsKIAotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3BsYWNlaG9sZGVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXItZXhw
ZWN0ZWQudHh0CmluZGV4IGMwM2EyNmYwYzE1OTVmOWQ2Y2Y3NWM5Njg5N2EwN2Y1ZDJkMDBhM2Uu
LjE4ZWE1NDgxOGI5OTY2Mzc4MGY1YTExN2NjMDdhOTY2ODQwODQ0N2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE2
ICsxLDE1IEBACi0gICBCaXJ0aGRheToKLTAzLTE0LTE4NzkKLQogVGhpcyB0ZXN0IG1ha2VzIHN1
cmUgdGhhdCB0aGUgcGxhY2Vob2xkZXIgaXMgcmV0dXJuZWQgYXMgdGhlIGNvcnJlY3QgYXR0cmli
dXRlCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiBQQVNTIGZpZWxkRWxlbWVudC5z
dHJpbmdBdHRyaWJ1dGVWYWx1ZSgnQVhQbGFjZWhvbGRlclZhbHVlJykgaXMgJ3NlYXJjaCcKLVBB
U1MgcGFzcy5zdHJpbmdBdHRyaWJ1dGVWYWx1ZSgnQVhQbGFjZWhvbGRlclZhbHVlJykgaXMgJ1Bh
c3N3b3JkJwotUEFTUyBzZWFyY2guc3RyaW5nQXR0cmlidXRlVmFsdWUoJ0FYUGxhY2Vob2xkZXJW
YWx1ZScpIGlzICdNTS1ERC1ZWVlZJwotUEFTUyBpbnB1dC5zdHJpbmdBdHRyaWJ1dGVWYWx1ZSgn
QVhQbGFjZWhvbGRlclZhbHVlJykgaXMgJ0ZpbGwgaW4gdGhlIGJsYW5rJworUEFTUyBwYXNzd29y
ZEVsZW1lbnQuc3RyaW5nQXR0cmlidXRlVmFsdWUoJ0FYUGxhY2Vob2xkZXJWYWx1ZScpIGlzICdQ
YXNzd29yZCcKK1BBU1Mgc2VhcmNoRWxlbWVudC5zdHJpbmdBdHRyaWJ1dGVWYWx1ZSgnQVhQbGFj
ZWhvbGRlclZhbHVlJykgaXMgJ01NLURELVlZWVknCitQQVNTIHRleHRJbnB1dC5zdHJpbmdBdHRy
aWJ1dGVWYWx1ZSgnQVhQbGFjZWhvbGRlclZhbHVlJykgaXMgJ0ZpbGwgaW4gdGhlIGJsYW5rJwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCisgICBCaXJ0
aGRheToKKzAzLTE0LTE4NzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9wbGFjZWhvbGRlci5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wbGFjZWhvbGRl
ci5odG1sCmluZGV4IDQ3YWExNTdlZTJjYWNkZmRhMzRkM2Q0MzYyZTEwNjQwYjU0OTQzMDkuLjI5
YjNmNzEzMDIwNzczYTIxZTcyYTNmMGU1Mjk5ZDYxMWE2NzJhOTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L3BsYWNlaG9sZGVyLmh0bWwKQEAgLTEsNDQgKzEsNDYgQEAKLTxodG1sPgor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0Pgog
PC9oZWFkPgotPGJvZHkgaWQ9ImJvZHkiPgotIAotICAgIDxpbnB1dCBwbGFjZWhvbGRlcj0ic2Vh
cmNoIiB0eXBlPSJ0ZXh0IiBuYW1lPSJxIiBzaXplPSIxNSIgbWF4bGVuZ3RoPSIyNTUiIGlkPSJz
ZWFyY2h0ZXJtIiAvPgorPGJvZHk+CiAKLSAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiBjbGFzcz0i
ZmllbGQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJzYzE3OTgiIHZhbHVlPSIiIHBsYWNlaG9sZGVy
PSJQYXNzd29yZCIgc3BlbGxjaGVjaz0idHJ1ZSIgbWF4bGVuZ3RoPSI1MDk2Ij4KLSAgICAKLSAg
ICA8c3BhbiBpZD0ibGFiZWwiPkJpcnRoZGF5Ojwvc3Bhbj4KLSAgICA8ZGl2IGlkPSJzZWFyY2gi
IHJvbGU9InNlYXJjaGJveCIgYXJpYS1sYWJlbGxlZGJ5PSJsYWJlbCIgYXJpYS1wbGFjZWhvbGRl
cj0iTU0tREQtWVlZWSI+MDMtMTQtMTg3OTwvZGl2PgotICAgIAotICAgIDxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0iaW5wdXQiIHBsYWNlaG9sZGVyPSJGaWxsIGluIHRoZSBibGFuayIgYXJpYS1wbGFj
ZWhvbGRlcj0iYXJpYSBwbGFjZWhvbGRlciI+Cis8aW5wdXQgcGxhY2Vob2xkZXI9InNlYXJjaCIg
dHlwZT0idGV4dCIgbmFtZT0icSIgc2l6ZT0iMTUiIG1heGxlbmd0aD0iMjU1IiBpZD0ic2VhcmNo
dGVybSIgLz4KKworPGlucHV0IGlkPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkIiB0eXBlPSJwYXNz
d29yZCIgbmFtZT0ic2MxNzk4IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHNwZWxs
Y2hlY2s9InRydWUiIG1heGxlbmd0aD0iNTA5NiI+CisKKzxzcGFuIGlkPSJsYWJlbCI+QmlydGhk
YXk6PC9zcGFuPgorPGRpdiBpZD0ic2VhcmNoIiByb2xlPSJzZWFyY2hib3giIGFyaWEtbGFiZWxs
ZWRieT0ibGFiZWwiIGFyaWEtcGxhY2Vob2xkZXI9Ik1NLURELVlZWVkiPjAzLTE0LTE4Nzk8L2Rp
dj4KKworPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCIgcGxhY2Vob2xkZXI9IkZpbGwgaW4g
dGhlIGJsYW5rIiBhcmlhLXBsYWNlaG9sZGVyPSJhcmlhIHBsYWNlaG9sZGVyIj4KICAgICAKLSAg
ICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LSAgICAgCi0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJl
IHRoYXQgdGhlIHBsYWNlaG9sZGVyIGlzIHJldHVybmVkIGFzIHRoZSBjb3JyZWN0IGF0dHJpYnV0
ZSIpOwotCi0gICAgICAgICAgICB2YXIgZmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c2VhcmNodGVybSIpLmZvY3VzKCk7Ci0gICAgICAgICAgICB2YXIgZmllbGRFbGVtZW50ID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHRoZSBwbGFjZWhvbGRlciBpcyByZXR1
cm5lZCBhcyB0aGUgY29ycmVjdCBhdHRyaWJ1dGUiKTsKKworICAgIHZhciBmaWVsZEVsZW1lbnQs
IHBhc3N3b3JkRWxlbWVudCwgc2VhcmNoRWxlbWVudCwgdGV4dElucHV0OworICAgIGlmICh3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBmaWVsZEVsZW1lbnQgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQoInNlYXJjaHRl
cm0iKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJmaWVsZEVsZW1lbnQuc3RyaW5nQXR0cmlidXRl
VmFsdWUoJ0FYUGxhY2Vob2xkZXJWYWx1ZScpIiwgIidzZWFyY2gnIik7CiAKLSAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXNzd29yZCIpLmZvY3VzKCk7Ci0gICAgICAgICAg
ICB2YXIgcGFzcyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotICAg
ICAgICAgICAgc2hvdWxkQmUoInBhc3Muc3RyaW5nQXR0cmlidXRlVmFsdWUoJ0FYUGxhY2Vob2xk
ZXJWYWx1ZScpIiwgIidQYXNzd29yZCciKTsKKyAgICAgICAgICAgIHBhc3N3b3JkRWxlbWVudCA9
IGF3YWl0IHdhaXRGb3JFbGVtZW50QnlJZCgicGFzc3dvcmQiKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJwYXNzd29yZEVsZW1lbnQuc3RyaW5nQXR0cmlidXRlVmFsdWUoJ0FYUGxhY2Vob2xkZXJW
YWx1ZScpIiwgIidQYXNzd29yZCciKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgdmFyIHNl
YXJjaCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgic2Vh
cmNoIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgic2VhcmNoLnN0cmluZ0F0dHJpYnV0ZVZhbHVl
KCdBWFBsYWNlaG9sZGVyVmFsdWUnKSIsICInTU0tREQtWVlZWSciKTsKKyAgICAgICAgICAgIHNl
YXJjaEVsZW1lbnQgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQoInNlYXJjaCIpOworICAgICAg
ICAgICAgc2hvdWxkQmUoInNlYXJjaEVsZW1lbnQuc3RyaW5nQXR0cmlidXRlVmFsdWUoJ0FYUGxh
Y2Vob2xkZXJWYWx1ZScpIiwgIidNTS1ERC1ZWVlZJyIpOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICAvLyBXaGVuIHRoZSBwbGFjZWhvbGRlciBhbmQgYXJpYS1wbGFjZWhvbGRlciBhdHRyaWJ1
dGVzIGFyZSBib3RoIHByZXNlbnQsIHVzZSB0aGUgcGxhY2Vob2xkZXIKICAgICAgICAgICAgIC8v
IGF0dHJpYnV0ZSdzIHZhbHVlLgotICAgICAgICAgICAgdmFyIGlucHV0ID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbnB1dCIpOwotICAgICAgICAgICAg
c2hvdWxkQmUoImlucHV0LnN0cmluZ0F0dHJpYnV0ZVZhbHVlKCdBWFBsYWNlaG9sZGVyVmFsdWUn
KSIsICInRmlsbCBpbiB0aGUgYmxhbmsnIik7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KKyAg
ICAgICAgICAgIHRleHRJbnB1dCA9IGF3YWl0IHdhaXRGb3JFbGVtZW50QnlJZCgiaW5wdXQiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJ0ZXh0SW5wdXQuc3RyaW5nQXR0cmlidXRlVmFsdWUoJ0FY
UGxhY2Vob2xkZXJWYWx1ZScpIiwgIidGaWxsIGluIHRoZSBibGFuayciKTsKIAotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgogPC9ib2R5
PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Byb2dyZXNzYmFyLWV4cGVjdGVkLnR4dAppbmRl
eCBiNjBhYzViNWZlMTVhNzViYjllYTBhMjdiMTZiYjc0YTRlZjc4MmUxLi45Njc0NTk4OTFkMzAx
NDdiODRkMDgyN2YwYWYwOTk0ZjRiNWQwYjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Byb2dyZXNzYmFyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Byb2dyZXNzYmFyLWV4cGVjdGVkLnR4dApAQCAtMSwxNiArMSwxNSBAQAotWCBY
CiBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHByb2dyZXNzIGVsZW1lbnQgY2FuIGJlIGFjY2Vz
c2VkIGJ5IEFjY2Vzc2liaWxpdHkgRlcuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1QQVNTIG9iai5pbnRWYWx1ZSBpcyA3Ci1QQVNTIG9iai5pbnRWYWx1ZSBpcyA1Ci1QQVNTIG9i
ai5pbnRWYWx1ZSBpcyA3Ci1QQVNTIG9iai5yb2xlIGlzICdBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRp
Y2F0b3InCi1QQVNTIG9iai5pbnRWYWx1ZSBpcyAwCi1QQVNTIG9iai5yb2xlIGlzICdBWFJvbGU6
IEFYUHJvZ3Jlc3NJbmRpY2F0b3InCitQQVNTIHByb2dyZXNzYmFyMS5pbnRWYWx1ZSBpcyA3CitQ
QVNTIHByb2dyZXNzYmFyMi5pbnRWYWx1ZSBpcyA1CitQQVNTIHByb2dyZXNzYmFyMy5pbnRWYWx1
ZSBpcyA3CitQQVNTIHByb2dyZXNzYmFyMy5yb2xlIGlzICdBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRp
Y2F0b3InCitQQVNTIHByb2dyZXNzYmFyNC5pbnRWYWx1ZSBpcyAwCitQQVNTIHByb2dyZXNzYmFy
NC5yb2xlIGlzICdBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRpY2F0b3InCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLQorWCBYCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Byb2dyZXNzYmFyLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Byb2dyZXNzYmFyLmh0bWwKaW5kZXggZDFhNTNhODVmYjAwZGEyNzMwYzNlMTdm
NjcwMjkxYTVjNmIyMWRkZS4uYTRmYTA3ZDk2Y2RjYWMxZWNhZDhkMjkyNjc1OTcwYjQzYjcxZGRk
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wcm9ncmVzc2Jhci5odG1s
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcHJvZ3Jlc3NiYXIuaHRtbApAQCAtMSw5
ICsxLDEwIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Cis8Ym9keT4KIAogPHNwYW4gdGFi
aW5kZXg9IjAiIHJvbGU9InByb2dyZXNzYmFyIiBpZD0icHJvZ3Jlc3NiYXIxIiBhcmlhLXZhbHVl
bm93PTcgYXJpYS12YWx1ZW1pbj0wIGFyaWEtdmFsdWVtYXg9MTA+WDwvc3Bhbj4KIDxzcGFuIHRh
YmluZGV4PSIwIiByb2xlPSJwcm9ncmVzc2JhciIgaWQ9InByb2dyZXNzYmFyMiIgYXJpYS12YWx1
ZW1heD0xMD5YPC9zcGFuPgpAQCAtMTEsNDQgKzEyLDQyIEBACiA8cHJvZ3Jlc3MgdGFiaW5kZXg9
IjAiIGlkPSJwcm9ncmVzc2JhcjMiIHZhbHVlPTcgbWF4PTEwPjwvcHJvZ3Jlc3M+CiA8cHJvZ3Jl
c3MgdGFiaW5kZXg9IjAiIGlkPSJwcm9ncmVzc2JhcjQiPjwvcHJvZ3Jlc3M+CiAKLTxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KIDxzY3JpcHQ+Ci0K
ICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBwcm9ncmVzcyBlbGVt
ZW50IGNhbiBiZSBhY2Nlc3NlZCBieSBBY2Nlc3NpYmlsaXR5IEZXLiIpOwogCisgICAgdmFyIHBy
b2dyZXNzYmFyMSwgcHJvZ3Jlc3NiYXIyLCBwcm9ncmVzc2JhcjMsIHByb2dyZXNzYmFyNDsKICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0KLSAgICAgICAgICAvLyBB
UklBIGRldGVybWluYXRlIHByb2dyZXNzYmFyCi0gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInByb2dyZXNzYmFyMSIpLmZvY3VzKCk7Ci0gICAgICAgICAgdmFyIG9iaiA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotCi0gICAgICAgICAgc2hvdWxkQmUo
Im9iai5pbnRWYWx1ZSIsICI3Iik7Ci0KLSAgICAgICAgICAvLyBBUklBIGluZGV0ZXJtaW5hdGUg
cHJvZ3Jlc3NiYXIgCi0gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb2dyZXNz
YmFyMiIpLmZvY3VzKCk7Ci0gICAgICAgICAgdmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmZvY3VzZWRFbGVtZW50OwotCi0gICAgICAgICAgc2hvdWxkQmUoIm9iai5pbnRWYWx1ZSIs
ICI1Iik7Ci0KLSAgICAgICAgICAvLyBkZXRlcm1pbmF0ZSBwcm9ncmVzcyBlbGVtZW50Ci0gICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb2dyZXNzYmFyMyIpLmZvY3VzKCk7Ci0g
ICAgICAgICAgdmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50
OwotCi0gICAgICAgICAgc2hvdWxkQmUoIm9iai5pbnRWYWx1ZSIsICI3Iik7Ci0gICAgICAgICAg
c2hvdWxkQmUoIm9iai5yb2xlIiwgIidBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRpY2F0b3InIik7Ci0K
LSAgICAgICAgICAvLyBpbmRldGVybWluYXRlIHByb2dyZXNzIGVsZW1lbnQKLSAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvZ3Jlc3NiYXI0IikuZm9jdXMoKTsKLSAgICAgICAg
ICB2YXIgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0KLSAg
ICAgICAgICBzaG91bGRCZSgib2JqLmludFZhbHVlIiwgIjAiKTsKLSAgICAgICAgICBzaG91bGRC
ZSgib2JqLnJvbGUiLCAiJ0FYUm9sZTogQVhQcm9ncmVzc0luZGljYXRvciciKTsKKyAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAvLyBBUklBIGRldGVybWluYXRlIHByb2dyZXNzYmFy
CisgICAgICAgICAgICBwcm9ncmVzc2JhcjEgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQoInBy
b2dyZXNzYmFyMSIpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24ocHJvZ3Jl
c3NiYXIxLCAiaW50VmFsdWUiLCA3KTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJwcm9ncmVzc2Jh
cjEuaW50VmFsdWUiLCAiNyIpOworCisgICAgICAgICAgICAvLyBBUklBIGluZGV0ZXJtaW5hdGUg
cHJvZ3Jlc3NiYXIKKyAgICAgICAgICAgIHByb2dyZXNzYmFyMiA9IGF3YWl0IHdhaXRGb3JFbGVt
ZW50QnlJZCgicHJvZ3Jlc3NiYXIyIik7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yRXhwcmVz
c2lvbihwcm9ncmVzc2JhcjIsICJpbnRWYWx1ZSIsIDUpOworICAgICAgICAgICAgc2hvdWxkQmUo
InByb2dyZXNzYmFyMi5pbnRWYWx1ZSIsICI1Iik7CisKKyAgICAgICAgICAgIC8vIERldGVybWlu
YXRlIHByb2dyZXNzIGVsZW1lbnQKKyAgICAgICAgICAgIHByb2dyZXNzYmFyMyA9IGF3YWl0IHdh
aXRGb3JFbGVtZW50QnlJZCgicHJvZ3Jlc3NiYXIzIik7CisgICAgICAgICAgICBhd2FpdCB3YWl0
Rm9yRXhwcmVzc2lvbihwcm9ncmVzc2JhcjMsICJpbnRWYWx1ZSIsIDcpOworICAgICAgICAgICAg
c2hvdWxkQmUoInByb2dyZXNzYmFyMy5pbnRWYWx1ZSIsICI3Iik7CisgICAgICAgICAgICBzaG91
bGRCZSgicHJvZ3Jlc3NiYXIzLnJvbGUiLCAiJ0FYUm9sZTogQVhQcm9ncmVzc0luZGljYXRvcici
KTsKKworICAgICAgICAgICAgLy8gSW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBlbGVtZW50CisgICAg
ICAgICAgICBwcm9ncmVzc2JhcjQgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQoInByb2dyZXNz
YmFyNCIpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24ocHJvZ3Jlc3NiYXI0
LCAiaW50VmFsdWUiLCAwKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJwcm9ncmVzc2JhcjQuaW50
VmFsdWUiLCAiMCIpOworICAgICAgICAgICAgc2hvdWxkQmUoInByb2dyZXNzYmFyNC5yb2xlIiwg
IidBWFJvbGU6IEFYUHJvZ3Jlc3NJbmRpY2F0b3InIik7CisKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9LCAwKTsKICAgICB9Ci0KIDwvc2NyaXB0PgotCi08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhbmdlLWFs
dGVyLWJ5LXBlcmNlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9y
YW5nZS1hbHRlci1ieS1wZXJjZW50LWV4cGVjdGVkLnR4dAppbmRleCA3ZDg0OWNiMmFkMzBlN2Q3
MWFmMTI4NjgxNGE5N2UwNmQxYTg4YTkzLi43ODY3YWRlNzM3YTU4MzMyMGE5YjYwODkyMzgxYWNk
MjNkMjEwMTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhbmdlLWFs
dGVyLWJ5LXBlcmNlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvcmFuZ2UtYWx0ZXItYnktcGVyY2VudC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi0K
IFRoaXMgdGVzdHMgdGhhdCBkZWNyZW1lbnQgYW5kIGluY3JlbWVudCBhbHRlciBhIHJhbmdlIHR5
cGUgaW5wdXQgZWxlbWVudCBieSBmaXZlIHBlcmNlbnQgb3Igb25lICh3aGljaGV2ZXIgaXMgbGFy
Z2VyKSB3aGVuIG5vIHN0ZXAgaXMgc3BlY2lmaWVkLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhbmdlLWFsdGVyLWJ5
LXBlcmNlbnQuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFuZ2UtYWx0ZXItYnkt
cGVyY2VudC5odG1sCmluZGV4IDlmNGY3ZGEwZjVhNDM1MmUwNzA1N2FiMGY3NzcxOTllNzA1ZGEy
ZjcuLjFjM2M0OTAzYTZiNzU0MDExMDU3MDE4Zjk2ZWNhYTJkNzlmZjRhNWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFuZ2UtYWx0ZXItYnktcGVyY2VudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFuZ2UtYWx0ZXItYnktcGVyY2VudC5odG1s
CkBAIC0xLDcgKzEsOSBAQAotPCFET0NUWVBFIGh0bWw+CisKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KIDx0aXRsZT5SYW5nZSBBbHRlciBi
eSBQZXJjZW50PC90aXRsZT4KIDwvaGVhZD4KIDxib2R5PgpAQCAtMTMsMzkgKzE1LDQ5IEBACiA8
IS0tIEltcGxpY2l0IHN0ZXAgc2l6ZSBvZiBvbmUgd2hlbiBkZWNyZW1lbnQvaW5jcmVtZW50IGlz
IGNhbGxlZCAoYmVjYXVzZSBmaXZlIHBlcmNlbnQgd291bGQgZ2l2ZSB1cyBsZXNzIHRoYW4gb25l
KS4gLS0+CiA8aW5wdXQgaWQ9InNtYWxsUmFuZ2UiIG1heD0iMTAiIG1pbj0iMCIgdHlwZT0icmFu
Z2UiIHZhbHVlPSI1Ij4KIAotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQogPHNjcmlwdD4KICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0
IGRlY3JlbWVudCBhbmQgaW5jcmVtZW50IGFsdGVyIGEgcmFuZ2UgdHlwZSBpbnB1dCBlbGVtZW50
IGJ5IGZpdmUgcGVyY2VudCBvciBvbmUgKHdoaWNoZXZlciBpcyBsYXJnZXIpIHdoZW4gbm8gc3Rl
cCBpcyBzcGVjaWZpZWQuIik7Ci0gICAgCisKKyAgICB2YXIgc21hbGxSYW5nZSwgbGFyZ2VSYW5n
ZTsKICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgIC8v
IExhcmdlIHJhbmdlLgotICAgICAgICB2YXIgbGFyZ2VSYW5nZSA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgibGFyZ2VSYW5nZSIpOwotICAgICAgICBzaG91
bGRCZSgibGFyZ2VSYW5nZS5pbnRWYWx1ZSIsICI1MCIpOwotICAgICAgICBsYXJnZVJhbmdlLmlu
Y3JlbWVudCgpOwotICAgICAgICBzaG91bGRCZSgibGFyZ2VSYW5nZS5pbnRWYWx1ZSIsICI1NSIp
OwotICAgICAgICBsYXJnZVJhbmdlLmluY3JlbWVudCgpOwotICAgICAgICBzaG91bGRCZSgibGFy
Z2VSYW5nZS5pbnRWYWx1ZSIsICI2MCIpOwotICAgICAgICBsYXJnZVJhbmdlLmRlY3JlbWVudCgp
OwotICAgICAgICBzaG91bGRCZSgibGFyZ2VSYW5nZS5pbnRWYWx1ZSIsICI1NSIpOwotICAgICAg
ICBsYXJnZVJhbmdlLmRlY3JlbWVudCgpOwotICAgICAgICBzaG91bGRCZSgibGFyZ2VSYW5nZS5p
bnRWYWx1ZSIsICI1MCIpOwotICAgICAgICAKLSAgICAgICAgLy8gU21hbGwgcmFuZ2UuCi0gICAg
ICAgIHZhciBzbWFsbFJhbmdlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJzbWFsbFJhbmdlIik7Ci0gICAgICAgIHNob3VsZEJlKCJzbWFsbFJhbmdlLmlu
dFZhbHVlIiwgIjUiKTsKLSAgICAgICAgc21hbGxSYW5nZS5pbmNyZW1lbnQoKTsKLSAgICAgICAg
c2hvdWxkQmUoInNtYWxsUmFuZ2UuaW50VmFsdWUiLCAiNiIpOwotICAgICAgICBzbWFsbFJhbmdl
LmluY3JlbWVudCgpOwotICAgICAgICBzaG91bGRCZSgic21hbGxSYW5nZS5pbnRWYWx1ZSIsICI3
Iik7Ci0gICAgICAgIHNtYWxsUmFuZ2UuZGVjcmVtZW50KCk7Ci0gICAgICAgIHNob3VsZEJlKCJz
bWFsbFJhbmdlLmludFZhbHVlIiwgIjYiKTsKLSAgICAgICAgc21hbGxSYW5nZS5kZWNyZW1lbnQo
KTsKLSAgICAgICAgc2hvdWxkQmUoInNtYWxsUmFuZ2UuaW50VmFsdWUiLCAiNSIpOworICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgc2V0VGltZW91dChhc3lu
YyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGxhcmdlUmFuZ2UgPSBhd2FpdCB3YWl0Rm9yRWxl
bWVudEJ5SWQoImxhcmdlUmFuZ2UiKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JFeHByZXNz
aW9uKGxhcmdlUmFuZ2UsICJpbnRWYWx1ZSIsIDUwKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJs
YXJnZVJhbmdlLmludFZhbHVlIiwgIjUwIik7CisgICAgICAgICAgICBsYXJnZVJhbmdlLmluY3Jl
bWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24obGFyZ2VSYW5nZSwg
ImludFZhbHVlIiwgNTUpOworICAgICAgICAgICAgc2hvdWxkQmUoImxhcmdlUmFuZ2UuaW50VmFs
dWUiLCAiNTUiKTsKKyAgICAgICAgICAgIGxhcmdlUmFuZ2UuaW5jcmVtZW50KCk7CisgICAgICAg
ICAgICBhd2FpdCB3YWl0Rm9yRXhwcmVzc2lvbihsYXJnZVJhbmdlLCAiaW50VmFsdWUiLCA2MCk7
CisgICAgICAgICAgICBzaG91bGRCZSgibGFyZ2VSYW5nZS5pbnRWYWx1ZSIsICI2MCIpOworICAg
ICAgICAgICAgbGFyZ2VSYW5nZS5kZWNyZW1lbnQoKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRG
b3JFeHByZXNzaW9uKGxhcmdlUmFuZ2UsICJpbnRWYWx1ZSIsIDU1KTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJsYXJnZVJhbmdlLmludFZhbHVlIiwgIjU1Iik7CisgICAgICAgICAgICBsYXJnZVJh
bmdlLmRlY3JlbWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24obGFy
Z2VSYW5nZSwgImludFZhbHVlIiwgNTApOworICAgICAgICAgICAgc2hvdWxkQmUoImxhcmdlUmFu
Z2UuaW50VmFsdWUiLCAiNTAiKTsKKworICAgICAgICAgICAgc21hbGxSYW5nZSA9IGF3YWl0IHdh
aXRGb3JFbGVtZW50QnlJZCgic21hbGxSYW5nZSIpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZv
ckV4cHJlc3Npb24oc21hbGxSYW5nZSwgImludFZhbHVlIiwgNSk7CisgICAgICAgICAgICBzaG91
bGRCZSgic21hbGxSYW5nZS5pbnRWYWx1ZSIsICI1Iik7CisgICAgICAgICAgICBzbWFsbFJhbmdl
LmluY3JlbWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24oc21hbGxS
YW5nZSwgImludFZhbHVlIiwgNik7CisgICAgICAgICAgICBzaG91bGRCZSgic21hbGxSYW5nZS5p
bnRWYWx1ZSIsICI2Iik7CisgICAgICAgICAgICBzbWFsbFJhbmdlLmluY3JlbWVudCgpOworICAg
ICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24oc21hbGxSYW5nZSwgImludFZhbHVlIiwg
Nyk7CisgICAgICAgICAgICBzaG91bGRCZSgic21hbGxSYW5nZS5pbnRWYWx1ZSIsICI3Iik7Cisg
ICAgICAgICAgICBzbWFsbFJhbmdlLmRlY3JlbWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvckV4cHJlc3Npb24oc21hbGxSYW5nZSwgImludFZhbHVlIiwgNik7CisgICAgICAgICAgICBz
aG91bGRCZSgic21hbGxSYW5nZS5pbnRWYWx1ZSIsICI2Iik7CisgICAgICAgICAgICBzbWFsbFJh
bmdlLmRlY3JlbWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckV4cHJlc3Npb24oc21h
bGxSYW5nZSwgImludFZhbHVlIiwgNSk7CisgICAgICAgICAgICBzaG91bGRCZSgic21hbGxSYW5n
ZS5pbnRWYWx1ZSIsICI1Iik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICB9LCAwKTsKICAgICB9CiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yYW5nZS1hbHRlci1ieS1zdGVwLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFuZ2UtYWx0ZXItYnktc3RlcC1leHBlY3Rl
ZC50eHQKaW5kZXggZmJkZWU4ZDM4YjhkNzVhMDY3YzY1Mzc5NDY3ZmUyNGZmMDkwOWNhNC4uZGYw
MWZmYmI5M2I1YzRhZWMzZDRmNDBkZmFhMjYxYzhkMWI3MmQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9yYW5nZS1hbHRlci1ieS1zdGVwLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhbmdlLWFsdGVyLWJ5LXN0ZXAtZXhwZWN0ZWQu
dHh0CkBAIC0xLDE5ICsxLDE4IEBACi0KIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgaWYgYSBy
YW5nZSB0eXBlIGhhcyBhIHN0ZXAgdmFsdWUsIHRoYXQgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQg
d29yay4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgb2JqLmludFZhbHVl
IGlzIDI1Ci1QQVNTIG9iai5pbnRWYWx1ZSBpcyA1MAotUEFTUyBvYmouaW50VmFsdWUgaXMgNzUK
LVBBU1Mgb2JqLmludFZhbHVlIGlzIDEwMAotUEFTUyBvYmouaW50VmFsdWUgaXMgMTAwCi1QQVNT
IG9iai5pbnRWYWx1ZSBpcyA3NQotUEFTUyBvYmouaW50VmFsdWUgaXMgNTAKLVBBU1Mgb2JqLmlu
dFZhbHVlIGlzIDI1Ci1QQVNTIG9iai5pbnRWYWx1ZSBpcyAwCi1QQVNTIG9iai5pbnRWYWx1ZSBp
cyAwCitQQVNTIHJhbmdlSW5wdXQuaW50VmFsdWUgaXMgMjUKK1BBU1MgcmFuZ2VJbnB1dC5pbnRW
YWx1ZSBpcyA1MAorUEFTUyByYW5nZUlucHV0LmludFZhbHVlIGlzIDc1CitQQVNTIHJhbmdlSW5w
dXQuaW50VmFsdWUgaXMgMTAwCitQQVNTIHJhbmdlSW5wdXQuaW50VmFsdWUgaXMgMTAwCitQQVNT
IHJhbmdlSW5wdXQuaW50VmFsdWUgaXMgNzUKK1BBU1MgcmFuZ2VJbnB1dC5pbnRWYWx1ZSBpcyA1
MAorUEFTUyByYW5nZUlucHV0LmludFZhbHVlIGlzIDI1CitQQVNTIHJhbmdlSW5wdXQuaW50VmFs
dWUgaXMgMAorUEFTUyByYW5nZUlucHV0LmludFZhbHVlIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9yYW5nZS1hbHRlci1ieS1zdGVwLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3JhbmdlLWFsdGVyLWJ5LXN0ZXAuaHRtbAppbmRleCA5MDU2ZTJkMDEyZWJjZDZi
YmVkYTVkYWZmZTEzZjMwOGE0NWRkMjFiLi43OGRlYzJmZWE0NGM4YzQ0MDk0MWNiNDE1NGNhM2Y0
ZmExOWY2MmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhbmdlLWFs
dGVyLWJ5LXN0ZXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhbmdlLWFs
dGVyLWJ5LXN0ZXAuaHRtbApAQCAtMSw1NyArMSw2MSBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgaWQ9ImJv
ZHkiPgorPGJvZHk+CiAKLTxpbnB1dCB0eXBlPSJyYW5nZSIgbWluPSIwIiBtYXg9IjEwMCIgdmFs
dWU9IjI1IiBzdGVwPSIyNSIgaWQ9InJhbmdlMSIvPgotCi08cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IHR5cGU9InJhbmdlIiBtaW49IjAi
IG1heD0iMTAwIiB2YWx1ZT0iMjUiIHN0ZXA9IjI1IiBpZD0icmFuZ2VJbnB1dCIvPgogCiA8c2Ny
aXB0PgotCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgaWYgYSBy
YW5nZSB0eXBlIGhhcyBhIHN0ZXAgdmFsdWUsIHRoYXQgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQg
d29yay4iKTsKIAorICAgIHZhciByYW5nZUlucHV0OworICAgIGFzeW5jIGZ1bmN0aW9uIHdhaXRG
b3JBbmRFeHBlY3RJbnRWYWx1ZShleHBlY3RlZEludFZhbHVlKSB7CisgICAgICAgIGF3YWl0IHdh
aXRGb3JFeHByZXNzaW9uKHJhbmdlSW5wdXQsICJpbnRWYWx1ZSIsIGV4cGVjdGVkSW50VmFsdWUp
OworICAgICAgICBzaG91bGRCZSgicmFuZ2VJbnB1dC5pbnRWYWx1ZSIsIGAke2V4cGVjdGVkSW50
VmFsdWV9YCkKKyAgICB9CisKICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgICAgICAgIC8v
IEFSSUEgZGV0ZXJtaW5hdGUgcHJvZ3Jlc3NiYXIKLSAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmFuZ2UxIikuZm9jdXMoKTsKLSAgICAgICAgICB2YXIgb2JqID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgICAgICAgCi0gICAgICAgICAgc2hv
dWxkQmUoIm9iai5pbnRWYWx1ZSIsICIyNSIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgLy8gQVJJQSBkZXRlcm1pbmF0ZSBwcm9ncmVzc2Jhcgor
ICAgICAgICAgICAgcmFuZ2VJbnB1dCA9IGF3YWl0IHdhaXRGb3JFbGVtZW50QnlJZCgicmFuZ2VJ
bnB1dCIpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckFuZEV4cGVjdEludFZhbHVlKDI1KTsK
IAotICAgICAgICAgIG9iai5pbmNyZW1lbnQoKTsKLSAgICAgICAgICBzaG91bGRCZSgib2JqLmlu
dFZhbHVlIiwgIjUwIik7CisgICAgICAgICAgICByYW5nZUlucHV0LmluY3JlbWVudCgpOworICAg
ICAgICAgICAgYXdhaXQgd2FpdEZvckFuZEV4cGVjdEludFZhbHVlKDUwKTsKIAotICAgICAgICAg
IG9iai5pbmNyZW1lbnQoKTsKLSAgICAgICAgICBzaG91bGRCZSgib2JqLmludFZhbHVlIiwgIjc1
Iik7CisgICAgICAgICAgICByYW5nZUlucHV0LmluY3JlbWVudCgpOworICAgICAgICAgICAgYXdh
aXQgd2FpdEZvckFuZEV4cGVjdEludFZhbHVlKDc1KTsKIAotICAgICAgICAgIG9iai5pbmNyZW1l
bnQoKTsKLSAgICAgICAgICBzaG91bGRCZSgib2JqLmludFZhbHVlIiwgIjEwMCIpOworICAgICAg
ICAgICAgcmFuZ2VJbnB1dC5pbmNyZW1lbnQoKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JB
bmRFeHBlY3RJbnRWYWx1ZSgxMDApOwogCi0gICAgICAgICAgb2JqLmluY3JlbWVudCgpOwotICAg
ICAgICAgIHNob3VsZEJlKCJvYmouaW50VmFsdWUiLCAiMTAwIik7CisgICAgICAgICAgICByYW5n
ZUlucHV0LmluY3JlbWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckFuZEV4cGVjdElu
dFZhbHVlKDEwMCk7CiAKLSAgICAgICAgICBvYmouZGVjcmVtZW50KCk7Ci0gICAgICAgICAgc2hv
dWxkQmUoIm9iai5pbnRWYWx1ZSIsICI3NSIpOworICAgICAgICAgICAgcmFuZ2VJbnB1dC5kZWNy
ZW1lbnQoKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JBbmRFeHBlY3RJbnRWYWx1ZSg3NSk7
CiAKLSAgICAgICAgICBvYmouZGVjcmVtZW50KCk7Ci0gICAgICAgICAgc2hvdWxkQmUoIm9iai5p
bnRWYWx1ZSIsICI1MCIpOworICAgICAgICAgICAgcmFuZ2VJbnB1dC5kZWNyZW1lbnQoKTsKKyAg
ICAgICAgICAgIGF3YWl0IHdhaXRGb3JBbmRFeHBlY3RJbnRWYWx1ZSg1MCk7CiAKLSAgICAgICAg
ICBvYmouZGVjcmVtZW50KCk7Ci0gICAgICAgICAgc2hvdWxkQmUoIm9iai5pbnRWYWx1ZSIsICIy
NSIpOworICAgICAgICAgICAgcmFuZ2VJbnB1dC5kZWNyZW1lbnQoKTsKKyAgICAgICAgICAgIGF3
YWl0IHdhaXRGb3JBbmRFeHBlY3RJbnRWYWx1ZSgyNSk7CiAKLSAgICAgICAgICBvYmouZGVjcmVt
ZW50KCk7Ci0gICAgICAgICAgc2hvdWxkQmUoIm9iai5pbnRWYWx1ZSIsICIwIik7CisgICAgICAg
ICAgICByYW5nZUlucHV0LmRlY3JlbWVudCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckFu
ZEV4cGVjdEludFZhbHVlKDApOwogCi0gICAgICAgICAgb2JqLmRlY3JlbWVudCgpOwotICAgICAg
ICAgIHNob3VsZEJlKCJvYmouaW50VmFsdWUiLCAiMCIpOwotICAgIH0KKyAgICAgICAgICAgIHJh
bmdlSW5wdXQuZGVjcmVtZW50KCk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yQW5kRXhwZWN0
SW50VmFsdWUoMCk7CiAKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCAw
KTsKKyAgICB9CiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NwaW5idXR0b24tdmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zcGluYnV0dG9uLXZhbHVlLWV4cGVjdGVkLnR4dAppbmRl
eCAwZjBhNDZlM2FhNjJlNWE1ZmIxOWRmYjUzMjFiMjY1N2VmMzgzNDRhLi4wNjU0YmY0ZjhkZGFl
MjUzYTE3M2Y3MzdlMGExZjRiMTMzYTBiNGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NwaW5idXR0b24tdmFsdWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvc3BpbmJ1dHRvbi12YWx1ZS1leHBlY3RlZC50eHQKQEAgLTEsMTYgKzEs
MTUgQEAKLQotNDIKIFRoaXMgdGVzdHMgdGhhdCBhIHNwaW4gYnV0dG9uIHN1cHBvcnRzIHJhbmdl
IHZhbHVlIGF0dHJpYnV0ZXMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNT
IGVuZHNXaXRoKGF4U3Bpbi5pbnRWYWx1ZSwgJzUnKSBpcyB0cnVlCi1QQVNTIGVuZHNXaXRoKGF4
U3Bpbi5taW5WYWx1ZSwgJzEnKSBpcyB0cnVlCi1QQVNTIGVuZHNXaXRoKGF4U3Bpbi5tYXhWYWx1
ZSwgJzknKSBpcyB0cnVlCi1QQVNTIGVuZHNXaXRoKGF4U3Bpbi52YWx1ZURlc2NyaXB0aW9uLCAn
NSBvZiA5JykgaXMgdHJ1ZQotUEFTUyBheFNwaW4udGl0bGUgaXMgYXhVbnRpdGxlZC50aXRsZQor
UEFTUyBlbmRzV2l0aChzcGluYnV0dG9uLmludFZhbHVlLCAnNScpIGlzIHRydWUKK1BBU1MgZW5k
c1dpdGgoc3BpbmJ1dHRvbi5taW5WYWx1ZSwgJzEnKSBpcyB0cnVlCitQQVNTIGVuZHNXaXRoKHNw
aW5idXR0b24ubWF4VmFsdWUsICc5JykgaXMgdHJ1ZQorUEFTUyBlbmRzV2l0aChzcGluYnV0dG9u
LnZhbHVlRGVzY3JpcHRpb24sICc1IG9mIDknKSBpcyB0cnVlCitQQVNTIHNwaW5idXR0b24udGl0
bGUgaXMgdW50aXRsZWRCdXR0b24udGl0bGUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQogCis0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9zcGluYnV0dG9uLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3NwaW5idXR0b24tdmFsdWUuaHRtbAppbmRleCBkNDk3M2JlZWM0NzA5YzE1MGFhOWVjMWI2Yjc4
NTY1YzRkNzI2ZGM2Li4wYjE5MzA3YTk0M2JmMzA1YTRlOGU3YWZkNDI4OTg1ZDUyMGM3NjYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NwaW5idXR0b24tdmFsdWUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NwaW5idXR0b24tdmFsdWUuaHRtbApA
QCAtMSwxMSArMSwxNCBAQAotPCFET0NUWVBFIEhUTUw+Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KLTxib2R5PgorPGhlYWQ+CiA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KIAotPGJ1dHRvbiBpZD0idW50aXRsZWQiPjwvYnV0dG9uPgorPGJ1dHRvbiBpZD0idW50
aXRsZWRCdXR0b24iPjwvYnV0dG9uPgogCi08ZGl2IGlkPSJzcGluIgorPGRpdiBpZD0ic3BpbmJ1
dHRvbiIKICAgICAgdGFiaW5kZXg9IjAiCiAgICAgIHJvbGU9InNwaW5idXR0b24iCiAgICAgIGFy
aWEtdmFsdWV0ZXh0PSI1IG9mIDkiCkBAIC0xMywzNSArMTYsMzcgQEAKICAgICAgYXJpYS12YWx1
ZW1heD0iOSIKICAgICAgYXJpYS12YWx1ZW5vdz0iNSI+NDI8L2Rpdj4KIAotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBhIHNw
aW4gYnV0dG9uIHN1cHBvcnRzIHJhbmdlIHZhbHVlIGF0dHJpYnV0ZXMuIikKKyAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGF0IGEgc3BpbiBidXR0b24gc3VwcG9ydHMgcmFuZ2UgdmFsdWUg
YXR0cmlidXRlcy4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikgewogICAgIGZ1bmN0aW9uIGVuZHNXaXRoKHN0ciwgc3VmZml4KSB7
Ci0gICAgICAgIHN0ciA9ICcnICsgc3RyOworICAgICAgICBzdHIgPSAiIiArIHN0cjsKICAgICAg
ICAgcmV0dXJuIHN0ci5zdWJzdHIoc3RyLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpID09IHN1ZmZp
eDsKICAgICB9CiAKLSAgICB2YXIgdW50aXRsZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dW50aXRsZWQnKTsKLSAgICB1bnRpdGxlZC5mb2N1cygpOwotICAgIHdpbmRvdy5heFVudGl0bGVk
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgdmFyIHNwaW5i
dXR0b24sIHVudGl0bGVkQnV0dG9uOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgdmFy
IHNwaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbicpOwotICAgIHNwaW4uZm9jdXMo
KTsKLSAgICB3aW5kb3cuYXhTcGluID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVs
ZW1lbnQ7CisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB1bnRpdGxlZEJ1dHRvbiA9IGF3YWl0IHdhaXRGb3JFbGVtZW50QnlJZCgidW50aXRsZWRCdXR0
b24iKTsKKyAgICAgICAgICAgIHNwaW5idXR0b24gPSBhd2FpdCB3YWl0Rm9yRWxlbWVudEJ5SWQo
InNwaW5idXR0b24iKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JFeHByZXNzaW9uKHNwaW5i
dXR0b24sICJpbnRWYWx1ZSIsIDUpOwogCi0gICAgLy8gVGVzdCByYW5nZSB2YWx1ZSBhdHRyaWJ1
dGVzLgotICAgIHNob3VsZEJlKCJlbmRzV2l0aChheFNwaW4uaW50VmFsdWUsICc1JykiLCAidHJ1
ZSIpOwotICAgIHNob3VsZEJlKCJlbmRzV2l0aChheFNwaW4ubWluVmFsdWUsICcxJykiLCAidHJ1
ZSIpOwotICAgIHNob3VsZEJlKCJlbmRzV2l0aChheFNwaW4ubWF4VmFsdWUsICc5JykiLCAidHJ1
ZSIpOwotICAgIHNob3VsZEJlKCJlbmRzV2l0aChheFNwaW4udmFsdWVEZXNjcmlwdGlvbiwgJzUg
b2YgOScpIiwgInRydWUiKTsKKyAgICAgICAgICAgIC8vIFRlc3QgcmFuZ2UgdmFsdWUgYXR0cmli
dXRlcy4KKyAgICAgICAgICAgIHNob3VsZEJlKCJlbmRzV2l0aChzcGluYnV0dG9uLmludFZhbHVl
LCAnNScpIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJlbmRzV2l0aChzcGluYnV0
dG9uLm1pblZhbHVlLCAnMScpIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJlbmRz
V2l0aChzcGluYnV0dG9uLm1heFZhbHVlLCAnOScpIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJlbmRzV2l0aChzcGluYnV0dG9uLnZhbHVlRGVzY3JpcHRpb24sICc1IG9mIDknKSIs
ICJ0cnVlIik7CiAKLSAgICAvLyBNYWtlIHN1cmUgdGhlIHRpdGxlIGRvZXNuJ3QgY29tZSBmcm9t
IHRoZSBpbm5lciB0ZXh0LiBJdCBzaG91bGQganVzdCBiZSBlbXB0eSBpZgotICAgIC8vIG5vdCBv
dGhlcndpc2Ugc3BlY2lmaWVkLgotICAgIHNob3VsZEJlKCJheFNwaW4udGl0bGUiLCAiYXhVbnRp
dGxlZC50aXRsZSIpOwotfQorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB0aXRsZSBkb2Vz
bid0IGNvbWUgZnJvbSB0aGUgaW5uZXIgdGV4dC4gSXQgc2hvdWxkIGp1c3QgYmUgZW1wdHkgaWYK
KyAgICAgICAgICAgIC8vIG5vdCBvdGhlcndpc2Ugc3BlY2lmaWVkLgorICAgICAgICAgICAgc2hv
dWxkQmUoInNwaW5idXR0b24udGl0bGUiLCAidW50aXRsZWRCdXR0b24udGl0bGUiKTsKIAorICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0sIDApOworICAgIH0KIDwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
YWNjZXNzaWJpbGl0eS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvYWNjZXNzaWJp
bGl0eS1oZWxwZXIuanMKaW5kZXggYzJlZWFkNWE4YmI1OWNlMjlkOTQ5Y2ZmOGNkOTIyY2IwN2I5
ZDVjZS4uOGJhYWFlYmM5ZGYyNTU0ZGNhZDQyOGMxMjc4M2QxYTVmNzEyMWI4NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzCisrKyBiL0xh
eW91dFRlc3RzL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcwpAQCAtMTEwLDMgKzEx
MCwyMiBAQCBmdW5jdGlvbiB3YWl0Rm9yKGNvbmRpdGlvbikKICAgICAgICAgfSwgMCk7CiAgICAg
fSk7CiB9CisKK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JFbGVtZW50QnlJZChpZCkgeworICAgIGxl
dCBlbGVtZW50OworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICBlbGVtZW50ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAg
ICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgfSk7CisgICAgcmV0dXJuIGVsZW1lbnQ7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHdhaXRGb3JFeHByZXNzaW9uKGVsZW1lbnQsIGV4cHJlc3Npb24sIGV4cGVj
dGVkVmFsdWUpIHsKKyAgICBpZiAodHlwZW9mIGV4cHJlc3Npb24gIT09ICJzdHJpbmciKQorICAg
ICAgICBkZWJ1ZygiV0FSTjogVGhlIGV4cHJlc3Npb24gYXJnIGluIHdhaXRGb3JFeHByZXNzaW9u
KCkgc2hvdWxkIGJlIGEgc3RyaW5nLiIpOworCisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7Cisg
ICAgICAgIHJldHVybiBldmFsKGBlbGVtZW50LiR7ZXhwcmVzc2lvbn0gPT09ICR7ZXhwZWN0ZWRW
YWx1ZX1gKTsKKyAgICB9KTsKK30KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>