<?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>54459</bug_id>
          
          <creation_ts>2011-02-15 07:13:21 -0800</creation_ts>
          <short_desc>Web Inspector: implement DOM agent tests.</short_desc>
          <delta_ts>2011-02-15 10:21:44 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351238</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-15 07:13:21 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351270</commentid>
    <comment_count>1</comment_count>
      <attachid>82457</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-15 08:07:07 -0800</bug_when>
    <thetext>Created attachment 82457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351290</commentid>
    <comment_count>2</comment_count>
      <attachid>82457</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-15 08:33:13 -0800</bug_when>
    <thetext>Comment on attachment 82457
Patch

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

&gt; LayoutTests/http/tests/inspector/elements-test.js:164
&gt; +        if (children.length)

This will fail if children is undefined. Prefer early return when children is undefined above. r- for this.

&gt; LayoutTests/http/tests/inspector/inspector-test.js:142
&gt; +        if (/^test/.exec(symbol) &amp;&amp; typeof testSuite[symbol] === &quot;function&quot;)

test() should be used instead of exec() here.

&gt; LayoutTests/http/tests/inspector/inspector-test.js:153
&gt; +        testSuiteTests.splice(0, 1);

Just use Array.shift() instead of these two lines.

&gt; LayoutTests/inspector/elements/insert-node-collapsed.html:23
&gt; +            function callback(node)

You shouldn&apos;t rely on the order of the properties in for/in loop. If you need the tests to be executed in a particular order you should use array instead of object.

&gt; LayoutTests/inspector/elements/mutate-unknown-node.html:31
&gt; +        InspectorTest.addResult(&quot;DOMAgent event fired. Should only happen once for output node: &quot; + type + &quot; &quot; + event.target.nodeName + &quot;#&quot; + event.target.getAttribute(&quot;id&quot;));

Please, move description of correct result to the static section below in the body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351297</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-15 08:40:10 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 82457 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82457&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/inspector/elements-test.js:164
&gt; &gt; +        if (children.length)
&gt; 
&gt; This will fail if children is undefined. Prefer early return when children is undefined above. r- for this.
&gt; 

Done.

&gt; &gt; LayoutTests/http/tests/inspector/inspector-test.js:142
&gt; &gt; +        if (/^test/.exec(symbol) &amp;&amp; typeof testSuite[symbol] === &quot;function&quot;)
&gt; 
&gt; test() should be used instead of exec() here.
&gt; 

Done.

&gt; &gt; LayoutTests/http/tests/inspector/inspector-test.js:153
&gt; &gt; +        testSuiteTests.splice(0, 1);
&gt; 
&gt; Just use Array.shift() instead of these two lines.
&gt; 

Done.

&gt; &gt; LayoutTests/inspector/elements/insert-node-collapsed.html:23
&gt; &gt; +            function callback(node)
&gt; 
&gt; You shouldn&apos;t rely on the order of the properties in for/in loop. If you need the tests to be executed in a particular order you should use array instead of object.
&gt; 

This is a de-facto standard tested in many javascript layout tests.

&gt; &gt; LayoutTests/inspector/elements/mutate-unknown-node.html:31
&gt; &gt; +        InspectorTest.addResult(&quot;DOMAgent event fired. Should only happen once for output node: &quot; + type + &quot; &quot; + event.target.nodeName + &quot;#&quot; + event.target.getAttribute(&quot;id&quot;));
&gt; 
&gt; Please, move description of correct result to the static section below in the body.

I think it reflects what is happening now better this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351307</commentid>
    <comment_count>4</comment_count>
      <attachid>82465</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-15 08:49:27 -0800</bug_when>
    <thetext>Created attachment 82465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351356</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-15 09:41:40 -0800</bug_when>
    <thetext>Committed r78576: &lt;http://trac.webkit.org/changeset/78576&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351384</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-15 10:21:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78576 might have broken Qt Linux Release
The following tests are not passing:
inspector/elements/mutate-unknown-node.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82457</attachid>
            <date>2011-02-15 08:07:07 -0800</date>
            <delta_ts>2011-02-15 08:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54459-20110215190702.patch</filename>
            <type>text/plain</type>
            <size>41427</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg1NDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMmU5NGNhZGU0Y2UwODRiNGI2ODUz
MGMyM2U1MGQ5YWQ3MjBiZjU1Li5hNmVmYjlmNWNlOTQ4NDI1MDhmZmRhNzA0MWYzMDFlZGZiMDNl
ZTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsNDggQEAKIDIwMTEtMDItMTUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IERPTSBhZ2VudCB0ZXN0cy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NDU5CisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzOgorICAgICAg
ICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJ
ZC5jYWxsYmFjayk6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRl
c3QuZXhwYW5kZWROb2RlV2l0aElkKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRlc3Qu
SW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxl
bWVudFRlc3QuSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlLnByaW50KToKKyAgICAgICAg
KGluaXRpYWxpemVfRWxlbWVudFRlc3QuSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZEVs
ZW1lbnRzVHJlZS5teWNhbGxiYWNrKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRlc3Qu
SW5zcGVjdG9yVGVzdC5kdW1wRE9NQWdlbnRUcmVlKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxl
bWVudFRlc3QpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVz
b3VyY2VzLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVz
dC5JbnNwZWN0b3JUZXN0LmFkZFJlc3VsdC5jbGVhclJlc3VsdHMpOgorICAgICAgICAoaW5pdGlh
bGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlLnJ1bm5lcik6Cisg
ICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3Vp
dGUpOgorICAgICAgICAob3V0cHV0KToKKyAgICAgICAgKGNsZWFyT3V0cHV0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRl
LWhyZWYuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwt
c3RydWN0dXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtcGFuZWwtc3RydWN0dXJlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFwc2VkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2Rl
LWNvbGxhcHNlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaW5z
ZXJ0LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvaW5zZXJ0LW5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L21vZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1leHBlY3Rl
ZC50eHQ6CisKKzIwMTEtMDItMTUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgTm90IHJldmlld2VkOiB1cGRhdGUgaW5zcGVjdG9yIGV4cGVjdGF0aW9u
IHBhdGggZm9yIG1hYy1sZW9wYXJkLgogCiAgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvaW5zcGVjdG9yL2V4
dGVuc2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCmluZGV4IDYyNDg2MTc5ZWRjZDY3OGJh
ZThkMjYwZGNmYTdkZGZmYTZjYjM4YjUuLjkyNTE2YzljNzBmNmEzMWFjOGYyZWMzYTZkZDZjNzJm
ZjYzMDQ2YTcgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcwpAQCAtMSw5ICsxLDUgQEAKIHZhciBpbml0aWFsaXplX0VsZW1lbnRUZXN0
ID0gZnVuY3Rpb24oKSB7CiAKLUluc3BlY3RvclRlc3QucHVzaEFsbERPTSA9IGZ1bmN0aW9uKGNh
bGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgvbm9uc3RyaW5nLywgY2Fs
bGJhY2spOwotfQogCiBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQgPSBmdW5jdGlvbihpZFZhbHVl
LCBjYWxsYmFjaykKIHsKQEAgLTM3LDYgKzMzLDE3IEBAIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJ
ZCA9IGZ1bmN0aW9uKGlkVmFsdWUsIGNhbGxiYWNrKQogICAgIFdlYkluc3BlY3Rvci5kb21BZ2Vu
dC5nZXRDaGlsZE5vZGVzQXN5bmMoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LCBwcm9j
ZXNzQ2hpbGRyZW4uYmluZCh0aGlzLCB0cnVlKSk7CiB9OwogCitJbnNwZWN0b3JUZXN0LmV4cGFu
ZGVkTm9kZVdpdGhJZCA9IGZ1bmN0aW9uKGlkVmFsdWUpCit7CisgICAgdmFyIHJlc3VsdDsKKyAg
ICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQorICAgIHsKKyAgICAgICAgcmVzdWx0ID0gbm9kZTsK
KyAgICB9CisgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKGlkVmFsdWUsIGNhbGxiYWNrKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQg
PSBmdW5jdGlvbihpZFZhbHVlLCBjYWxsYmFjaykKIHsKICAgICBmdW5jdGlvbiBteWNhbGxiYWNr
KG5vZGUpCkBAIC0xMjMsMjYgKzEzMCw3NyBAQCBJbnNwZWN0b3JUZXN0LmR1bXBTdHlsZVRyZWVJ
dGVtID0gZnVuY3Rpb24odHJlZUl0ZW0sIHByZWZpeCwgZGVwdGgpCiAgICAgfQogfTsKIAotSW5z
cGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlID0gZnVuY3Rpb24oKQorSW5zcGVjdG9yVGVzdC5k
dW1wRWxlbWVudHNUcmVlID0gZnVuY3Rpb24ocm9vdE5vZGUpCiB7CisgICAgZnVuY3Rpb24gYmVh
dXRpZnkoZWxlbWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50
LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikucmVwbGFjZSgvXG4vZywgIiIpLnRyaW0oKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBwcmludCh0cmVlSXRlbSwgcHJlZml4KQorICAgIHsKKyAgICAgICAg
aWYgKHRyZWVJdGVtLmxpc3RJdGVtRWxlbWVudCkgeworICAgICAgICAgICAgdmFyIGV4cGFuZGVy
OworICAgICAgICAgICAgaWYgKHRyZWVJdGVtLmhhc0NoaWxkcmVuKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHRyZWVJdGVtLmV4cGFuZGVkKQorICAgICAgICAgICAgICAgICAgICBleHBhbmRlciA9
ICItICI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBleHBhbmRl
ciA9ICIrICI7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBleHBhbmRlciA9
ICIgICI7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHByZWZpeCArIGV4
cGFuZGVyICsgYmVhdXRpZnkodHJlZUl0ZW0ubGlzdEl0ZW1FbGVtZW50KSk7CisgICAgICAgIH0K
KyAgICAgICAgCisKKyAgICAgICAgaWYgKCF0cmVlSXRlbS5leHBhbmRlZCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB2YXIgY2hpbGRyZW4gPSB0cmVlSXRlbS5jaGlsZHJlbjsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGNoaWxkcmVuICYmIGkgPCBjaGlsZHJlbi5sZW5ndGggLSAx
OyArK2kpCisgICAgICAgICAgICBwcmludChjaGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiKTsK
KworICAgICAgICAvLyBDbG9zaW5nIHRhZy4KKyAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCkK
KyAgICAgICAgICAgIHByaW50KGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLCBwcmVmaXgp
OworICAgIH0KKwogICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudXBkYXRlTW9kaWZp
ZWROb2RlcygpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KFdlYkluc3BlY3Rvci5wYW5l
bHMuZWxlbWVudHMudHJlZU91dGxpbmUuZWxlbWVudC50ZXh0Q29udGVudC5yZXBsYWNlKC9cdTIw
MGIvZywgIiIpLnJlcGxhY2UoL1xuL2csICIiKS5yZXBsYWNlKC88L2csICJcbjwiKSk7CisgICAg
dmFyIHRyZWVPdXRsaW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGlu
ZTsKKyAgICBwcmludChyb290Tm9kZSA/IHRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyb290
Tm9kZSkgOiB0cmVlT3V0bGluZSwgIiIpOwogfTsKIAotSW5zcGVjdG9yVGVzdC5kdW1wTG9hZGVk
RE9NID0gZnVuY3Rpb24oKQorSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUgPSBmdW5j
dGlvbihjYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBleHBhbmQodHJlZUl0ZW0sIHRvcExldmVs
KQorICAgIGZ1bmN0aW9uIGV4cGFuZCh0cmVlSXRlbSkKICAgICB7CiAgICAgICAgIHZhciBjaGls
ZHJlbiA9IHRyZWVJdGVtLmNoaWxkcmVuOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgY2hpbGRy
ZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICBjaGlsZHJlbltp
XS5leHBhbmQoKTsKLSAgICAgICAgICAgIGV4cGFuZChjaGlsZHJlbltpXSwgZmFsc2UpOworICAg
ICAgICAgICAgZXhwYW5kKGNoaWxkcmVuW2ldKTsKICAgICAgICAgfQotICAgICAgICBpZiAodG9w
TGV2ZWwpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTsKICAg
ICB9Ci0gICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy51cGRhdGVNb2RpZmllZE5vZGVz
KCk7Ci0gICAgZXhwYW5kKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUs
IHRydWUpOworCisgICAgZnVuY3Rpb24gbXljYWxsYmFjaygpCisgICAgeworICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKKyAgICAgICAg
ZXhwYW5kKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUpOworICAgICAg
ICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgIH0KKyAgICBJbnNw
ZWN0b3JUZXN0Lm5vZGVXaXRoSWQoL25vbnN0cmluZy8sIG15Y2FsbGJhY2spOworfTsKKworSW5z
cGVjdG9yVGVzdC5kdW1wRE9NQWdlbnRUcmVlID0gZnVuY3Rpb24oKQoreworICAgIGZ1bmN0aW9u
IGR1bXAobm9kZSwgcHJlZml4KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQocHJlZml4ICsgbm9kZS5ub2RlTmFtZSArICJbIiArIG5vZGUuaWQgKyAiXSIpOworICAgICAg
ICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
Y2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgZHVtcChj
aGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiKTsKKyAgICB9CisgICAgZHVtcChXZWJJbnNwZWN0
b3IuZG9tQWdlbnQuZG9jdW1lbnQsICIiKTsKIH07CiAKIH07ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy1yZXNvdXJjZXMtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtcmVkaXJlY3QtZXhwZWN0ZWQu
dHh0CmluZGV4IDNkMmEyNzE3Nzc5MThjODNjNDVjZDE3ZTM0OTI2NDgzYWQ5YTFmOTIuLjlhNGU4
MGUwMmY2MThlNDVmOTY3NDRlZTU3MWM2MzA4MzU0ZjgwMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLXJlZGlyZWN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zLXJlc291cmNlcy1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTIsMTAgKzIsOCBAQCBUZXN0
cyBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQogCiBQYWdlIHJlbG9hZGVkLgogU3RhcnRlZCBl
eHRlbnNpb24uCi0KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RHZXRSZWRpcmVjdFJlc291cmNlQ29udGVudAotCiBjb250ZW50OiB1bmRlZmluZWQsIGVuY29k
aW5nOiB1bmRlZmluZWQKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RSZWRpcmVjdFJlc291
cmNlRmluaXNoZWQKIEZpbmlzaGVkIHJlc291cmNlOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9h
ZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3N0YXR1cz0zMDIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMK
aW5kZXggZDhiMDYxYzllNDA0NzRiNDlmMjgzZTAxYzEwMThkYTA1Yzk1ZGUyYS4uOWUwMzgyZTNm
MDRhYzJmMWU4MGFmYTAxN2U4OGIwNzA4MzFkYzdmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTYyLDcgKzYyLDcgQEAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQgPSBmdW5jdGlvbih0ZXh0KQogCiAgICAgZnVuY3Rpb24g
Y2xlYXJSZXN1bHRzKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVj
dG9yQWxsKCdkaXYub3V0cHV0JyksIGZ1bmN0aW9uKG5vZGUpIHsgbm9kZS5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKG5vZGUpOyB9KSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJjbGVhck91dHB1dCgpIik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYWRkUmVzdWx0VG9Q
YWdlKHRleHQpCkBAIC0xMzUsNDUgKzEzNSwyNiBAQCBJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2
ZW50ID0gZnVuY3Rpb24oa2V5SWRlbnRpZmllcikKICAgICByZXR1cm4gZXZ0OwogfQogCi1JbnNw
ZWN0b3JUZXN0LmZpbmRET01Ob2RlID0gZnVuY3Rpb24ocm9vdCwgZmlsdGVyLCBjYWxsYmFjaykK
K0luc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlID0gZnVuY3Rpb24odGVzdFN1aXRlKQogewotICAg
IHZhciBmb3VuZCA9IGZhbHNlOwotICAgIHZhciBwZW5kaW5nQ2FsbHMgPSAxOwotCi0gICAgaWYg
KHJvb3QpCi0gICAgICAgIGZpbmRET01Ob2RlKHJvb3QpOwotICAgIGVsc2UKLSAgICAgICAgd2Fp
dEZvckRvY3VtZW50KCk7Ci0KLSAgICBmdW5jdGlvbiB3YWl0Rm9yRG9jdW1lbnQoKQotICAgIHsK
LSAgICAgICAgcm9vdCA9IFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudDsKLSAgICAgICAg
aWYgKHJvb3QpCi0gICAgICAgICAgICBmaW5kRE9NTm9kZShyb290KTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsIHNldERv
Y3VtZW50LCB3YWl0Rm9yRG9jdW1lbnQpOworICAgIHZhciB0ZXN0U3VpdGVUZXN0cyA9IFtdOwor
ICAgIGZvciAoc3ltYm9sIGluIHRlc3RTdWl0ZSkgeworICAgICAgICBpZiAoL150ZXN0Ly5leGVj
KHN5bWJvbCkgJiYgdHlwZW9mIHRlc3RTdWl0ZVtzeW1ib2xdID09PSAiZnVuY3Rpb24iKQorICAg
ICAgICAgICAgdGVzdFN1aXRlVGVzdHMucHVzaCh0ZXN0U3VpdGVbc3ltYm9sXSk7CiAgICAgfQog
Ci0gICAgZnVuY3Rpb24gZmluZERPTU5vZGUobm9kZSkKKyAgICBmdW5jdGlvbiBydW5uZXIoKQog
ICAgIHsKLSAgICAgICAgaWYgKGZpbHRlcihub2RlKSkgewotICAgICAgICAgICAgY2FsbGJhY2so
bm9kZSk7Ci0gICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmdldENoaWxkTm9kZXNBc3luYyhub2RlLCBwcm9j
ZXNzQ2hpbGRyZW4pOwotCi0gICAgICAgIC0tcGVuZGluZ0NhbGxzOwotCi0gICAgICAgIGlmICgh
Zm91bmQgJiYgIXBlbmRpbmdDYWxscykKLSAgICAgICAgICAgIHNldFRpbWVvdXQoZmluZERPTU5v
ZGUuYmluZChudWxsLCByb290KSwgMCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0NoaWxk
cmVuKGNoaWxkcmVuKQotICAgICAgICB7Ci0gICAgICAgICAgICBwZW5kaW5nQ2FsbHMgKz0gY2hp
bGRyZW4gPyBjaGlsZHJlbi5sZW5ndGggOiAwOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
ICFmb3VuZCAmJiBjaGlsZHJlbiAmJiBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICAgICAgZmluZERPTU5vZGUoY2hpbGRyZW5baV0pOworICAgICAgICBpZiAoIXRlc3RTdWl0
ZVRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICB2YXIgbmV4dFRlc3RG
dW5jdGlvbiA9IHRlc3RTdWl0ZVRlc3RzWzBdOworICAgICAgICB0ZXN0U3VpdGVUZXN0cy5zcGxp
Y2UoMCwgMSk7CisgICAgICAgIG5leHRUZXN0RnVuY3Rpb24ocnVubmVyKTsKICAgICB9CisKKyAg
ICBydW5uZXIoKTsKIH0KIAogSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlciA9IGZ1bmN0aW9uKHJl
Y2VpdmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNreSkKQEAgLTI2OCwxMiArMjQ5
LDI0IEBAIGZ1bmN0aW9uIGRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElkKQogICAg
IH0sIDApOwogfQogCit2YXIgb3V0cHV0RWxlbWVudDsKKwogZnVuY3Rpb24gb3V0cHV0KHRleHQp
CiB7Ci0gICAgdmFyIG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICBvdXRwdXRFbGVtZW50LmNsYXNzTmFtZSA9ICJvdXRwdXQiOwotICAgIG91dHB1dEVs
ZW1lbnQuc3R5bGUud2hpdGVTcGFjZSA9ICJwcmUiOworICAgIGlmICghb3V0cHV0RWxlbWVudCkg
eworICAgICAgICBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgICAgIG91dHB1dEVsZW1lbnQuY2xhc3NOYW1lID0gIm91dHB1dCI7CisgICAgICAgIG91
dHB1dEVsZW1lbnQuc3R5bGUud2hpdGVTcGFjZSA9ICJwcmUiOworICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKG91dHB1dEVsZW1lbnQpOworICAgIH0KICAgICBvdXRwdXRFbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKICAgICBvdXRwdXRF
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOwotICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0cHV0RWxlbWVudCk7Cit9CisKK2Z1bmN0aW9uIGNs
ZWFyT3V0cHV0KCkKK3sKKyAgICBpZiAob3V0cHV0RWxlbWVudCkgeworICAgICAgICBvdXRwdXRF
bGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob3V0cHV0RWxlbWVudCk7CisgICAgICAgIG91
dHB1dEVsZW1lbnQgPSBudWxsOworICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbAppbmRleCA3MWI4MzhkZmE2ZDgxNDdk
MTRjMjM5NGE0ZDIwYmQ1ZDlkYTYxMTU1Li5kZDdiNDBiOTk2ZGEwYTY2MDQyODVjMmU1ZWM3NjE5
MzA1NDMzOWMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9t
LWJyZWFrcG9pbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rv
bS1icmVha3BvaW50cy5odG1sCkBAIC0zMCw3ICszMCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24o
KQogICAgIHRlc3RJbnNlcnRDaGlsZC5zdGVwMSA9IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgJ1N1YnRyZWUgTW9kaWZpZWQnIGJy
ZWFrcG9pbnQgaXMgaGl0IHdoZW4gYXBwZW5kaW5nIGEgY2hpbGQuIik7Ci0gICAgICAgIGZpbmRE
T01Ob2RlQnlJZCgicm9vdEVsZW1lbnQiLCB0ZXN0SW5zZXJ0Q2hpbGQuc3RlcDIpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInJvb3RFbGVtZW50IiwgdGVzdEluc2VydENoaWxk
LnN0ZXAyKTsKICAgICB9OwogICAgIHRlc3RJbnNlcnRDaGlsZC5zdGVwMiA9IGZ1bmN0aW9uKG5v
ZGUpCiAgICAgewpAQCAtMTAzLDcgKzEwMyw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAg
IHRlc3RSZW1vdmVOb2RlLnN0ZXAyID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBlbGVtZW50VG9SZW1vdmUgdG8gcm9vdEVsZW1lbnQu
Iik7Ci0gICAgICAgIGZpbmRET01Ob2RlQnlJZCgiZWxlbWVudFRvUmVtb3ZlIiwgdGVzdFJlbW92
ZU5vZGUuc3RlcDMpOworICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoImVsZW1lbnRU
b1JlbW92ZSIsIHRlc3RSZW1vdmVOb2RlLnN0ZXAzKTsKICAgICB9CiAgICAgdGVzdFJlbW92ZU5v
ZGUuc3RlcDMgPSBmdW5jdGlvbihub2RlKQogICAgIHsKQEAgLTEyMyw3ICsxMjMsNyBAQCB2YXIg
dGVzdCA9IGZ1bmN0aW9uKCkKICAgICB0ZXN0UmVsb2FkLnN0ZXAxID0gZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCBET00gYnJlYWtw
b2ludHMgYXJlIHBlcnNpc3RlZCBiZXR3ZWVuIHBhZ2UgcmVsb2Fkcy4iKTsKLSAgICAgICAgZmlu
ZERPTU5vZGVCeUlkKCJyb290RWxlbWVudCIsIHRlc3RSZWxvYWQuc3RlcDIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInJvb3RFbGVtZW50IiwgdGVzdFJlbG9hZC5zdGVwMik7
CiAgICAgfQogICAgIHRlc3RSZWxvYWQuc3RlcDIgPSBmdW5jdGlvbihub2RlKQogICAgIHsKQEAg
LTE0MywxMyArMTQzLDYgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBmaW5k
RE9NTm9kZUJ5SWQoaWQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5m
aW5kRE9NTm9kZShudWxsLCBmdW5jdGlvbihub2RlKSB7Ci0gICAgICAgICAgICByZXR1cm4gbm9k
ZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IGlkOwotICAgICAgICB9LCBjYWxsYmFjayk7Ci0gICAg
fQotCiAgICAgZnVuY3Rpb24gZHVtcFN0YXR1cyhjYWxsRnJhbWVzKQogICAgIHsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNo
aWxkcmVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVt
ZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAppbmRleCBhZTY3NmVkM2Vk
YWVmODc2ZjE1OWU0NWU0NDE5Y2M4ZDE2YzdmMTg3Li4wYWI4MTJjZjU3MTY2NmVmM2U4MjkxMzc1
ZDQzODdlM2IxZDE2NmRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZWxlbWVudHMtcGFuZWwtbGltaXRlZC1jaGlsZHJlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRy
ZW4tZXhwZWN0ZWQudHh0CkBAIC0xMCw5MyArMTAsNTUgQEAKIFRlc3RzIHRoYXQgc3JjIGFuZCBo
cmVmIGVsZW1lbnQgdGFyZ2V0cyBhcmUgcmV3cml0dGVuIHByb3Blcmx5LgogCiA9PT09PT09PT09
PSBMb2FkZWQgNSBjaGlsZHJlbiA9PT09PT09PT09PQotCi08aHRtbD4KLTxoZWFkPuKApgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPGRpdiBpZD0iZGF0YSI+Ci08ZGl2IGlk
PSJpZDEiPjEKLTwvZGl2PgotPGRpdiBpZD0iaWQyIj4yCi08L2Rpdj4KLTxkaXYgaWQ9ImlkMyI+
MwotPC9kaXY+Ci08ZGl2IGlkPSJpZDQiPjQKLTwvZGl2PgotPGRpdiBpZD0iaWQ1Ij41Ci08L2Rp
dj5TaG93IEFsbCBOb2RlcyAoNSBNb3JlKQotPC9kaXY+Ci08cD5UZXN0cyB0aGF0IHNyYyBhbmQg
aHJlZiBlbGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS4KLTwvcD4KLTwvYm9k
eT4KLTwvaHRtbD4KKy0gPGh0bWw+CisgICAgKyA8aGVhZD7igKY8L2hlYWQ+CisgICAgLSA8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIC0gPGRpdiBpZD0iZGF0YSI+CisgICAgICAg
ICAgICAgIDxkaXYgaWQ9ImlkMSI+MTwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDIi
PjI8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQzIj4zPC9kaXY+CisgICAgICAgICAg
ICAgIDxkaXYgaWQ9ImlkNCI+NDwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDUiPjU8
L2Rpdj4KKyAgICAgICAgICAgICAgU2hvdyBBbGwgTm9kZXMgKDUgTW9yZSkKKyAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICA8cD5UZXN0cyB0aGF0IHNyYyBhbmQgaHJlZiBlbGVtZW50IHRhcmdl
dHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS48L3A+CisgICAgICA8L2JvZHk+CisgIDwvaHRtbD4K
ID09PT09PT09PT09IE1vZGlmaWVkIGNoaWxkcmVuID09PT09PT09PT09Ci0KLTxodG1sPgotPGhl
YWQ+4oCmCi08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08ZGl2IGlkPSJkYXRh
Ij4KLTxhPgotPC9hPgotPGRpdiBpZD0iaWQxIj4xCi08L2Rpdj4KLTxkaXYgaWQ9ImlkMyI+Mwot
PC9kaXY+Ci08ZGl2IGlkPSJpZDQiPjQKLTwvZGl2PgotPGRpdiBpZD0iaWQ1Ij41Ci08L2Rpdj5T
aG93IEFsbCBOb2RlcyAoNiBNb3JlKQotPC9kaXY+Ci08cD5UZXN0cyB0aGF0IHNyYyBhbmQgaHJl
ZiBlbGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS4KLTwvcD4KLTxkaXYgY2xh
c3M9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmCi08L2Rpdj4KLTxkaXYg
Y2xhc3M9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmCi08L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KKy0gPGh0bWw+CisgICAgKyA8aGVhZD7igKY8L2hlYWQ+CisgICAgLSA8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIC0gPGRpdiBpZD0iZGF0YSI+CisgICAg
ICAgICAgICAgIDxhPjwvYT4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQxIj4xPC9kaXY+Cisg
ICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMyI+MzwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlk
PSJpZDQiPjQ8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQ1Ij41PC9kaXY+CisgICAg
ICAgICAgICAgIFNob3cgQWxsIE5vZGVzICg2IE1vcmUpCisgICAgICAgICAgPC9kaXY+CisgICAg
ICAgICAgPHA+VGVzdHMgdGhhdCBzcmMgYW5kIGhyZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdy
aXR0ZW4gcHJvcGVybHkuPC9wPgorICAgICAgICArIDxkaXYgY2xhc3M9Im91dHB1dCIgc3R5bGU9
IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmPC9kaXY+CisgICAgICA8L2JvZHk+CisgIDwvaHRtbD4K
ID09PT09PT09PT09IExvYWRlZCBhbGwgY2hpbGRyZW4gPT09PT09PT09PT0KLQotPGh0bWw+Ci08
aGVhZD7igKYKLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxkaXYgaWQ9ImRh
dGEiPgotPGE+Ci08L2E+Ci08ZGl2IGlkPSJpZDEiPjEKLTwvZGl2PgotPGRpdiBpZD0iaWQzIj4z
Ci08L2Rpdj4KLTxkaXYgaWQ9ImlkNCI+NAotPC9kaXY+Ci08ZGl2IGlkPSJpZDUiPjUKLTwvZGl2
PgotPGRpdiBpZD0iaWQ2Ij42Ci08L2Rpdj4KLTxkaXYgaWQ9ImlkNyI+NwotPC9kaXY+Ci08ZGl2
IGlkPSJpZDgiPjgKLTwvZGl2PgotPGRpdiBpZD0iaWQ5Ij45Ci08L2Rpdj4KLTxkaXYgaWQ9Imlk
MTAiPjEwCi08L2Rpdj4KLTxhPgotPC9hPgotPC9kaXY+Ci08cD5UZXN0cyB0aGF0IHNyYyBhbmQg
aHJlZiBlbGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS4KLTwvcD4KLTxkaXYg
Y2xhc3M9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmCi08L2Rpdj4KLTxk
aXYgY2xhc3M9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmCi08L2Rpdj4K
LTxkaXYgY2xhc3M9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmCi08L2Rp
dj4KLTxkaXYgY2xhc3M9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmCi08
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KKy0gPGh0bWw+CisgICAgKyA8aGVhZD7igKY8L2hlYWQ+
CisgICAgLSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIC0gPGRpdiBpZD0iZGF0
YSI+CisgICAgICAgICAgICAgIDxhPjwvYT4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQxIj4x
PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMyI+MzwvZGl2PgorICAgICAgICAgICAg
ICA8ZGl2IGlkPSJpZDQiPjQ8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQ1Ij41PC9k
aXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNiI+NjwvZGl2PgorICAgICAgICAgICAgICA8
ZGl2IGlkPSJpZDciPjc8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQ4Ij44PC9kaXY+
CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkOSI+OTwvZGl2PgorICAgICAgICAgICAgICA8ZGl2
IGlkPSJpZDEwIj4xMDwvZGl2PgorICAgICAgICAgICAgICA8YT48L2E+CisgICAgICAgICAgPC9k
aXY+CisgICAgICAgICAgPHA+VGVzdHMgdGhhdCBzcmMgYW5kIGhyZWYgZWxlbWVudCB0YXJnZXRz
IGFyZSByZXdyaXR0ZW4gcHJvcGVybHkuPC9wPgorICAgICAgICArIDxkaXYgY2xhc3M9Im91dHB1
dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7ICI+4oCmPC9kaXY+CisgICAgICA8L2JvZHk+Cisg
IDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vs
ZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sCmluZGV4IGU4MTYyZjg5MzVi
MWQ5ZDI1MDJlN2RjMjllM2I2NDQwZjk1NmFiMzIuLmI3ODkyOTIzNDA4M2UxYWI3MjM2MzljY2Ix
MzEzMzU2NmIxMjBiZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtcmV3cml0ZS1ocmVmLmh0bWwKQEAgLTksNyAr
OSw3IEBACiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIEluc3BlY3RvclRlc3QucHVzaEFsbERP
TShzdGVwMSk7CisgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoc3RlcDEpOwog
CiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS1l
eHBlY3RlZC50eHQKaW5kZXggOGVkN2RmMzE2YzY4YTJhMTAzYzgxODAyMjc0ZmYyOGUxMWRhNmEw
ZC4uMmIxYTIzNWY5ZWI4YjRkYWQ4N2MwZWJkMDMyMWRhNjk4MTA1OGU0YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRz
LXBhbmVsLXN0cnVjdHVyZS1leHBlY3RlZC50eHQKQEAgLTEsMjYgKzEsMjMgQEAKIFRlc3RzIHRo
YXQgZWxlbWVudHMgcGFuZWwgc2hvd3MgZG9tIHRyZWUgc3RydWN0dXJlLgogCiBUZXh0Ci0KLTwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzIj4KLTwvc2NyaXB0PgotPHNjcmlwdD5mdW5jdGlvbiB0ZXN0KCl7
ICAgIEluc3BlY3RvclRlc3QucHVzaEFsbERPTShzdGVwMSk7ICAgIGZ1bmN0aW9uIHN0ZXAxKCkg
ICAgeyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wTG9hZGVkRE9NKCk7ICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOyAgICB9fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHNob3dzIGRv
bSB0cmVlIHN0cnVjdHVyZS4KLTwvcD4KLTxkaXYgaWQ9ImxldmVsMSI+Ci08ZGl2IGlkPSJsZXZl
bDIiPiJUZXh0ICAgICAgICAiCi08ZGl2IGlkPSJsZXZlbDMiPgotPC9kaXY+Ci08L2Rpdj4KLTwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgorICAgICAgPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RS
L2h0bWw0L2xvb3NlLmR0ZCI+CistIDxodG1sPgorICAgIC0gPGhlYWQ+CisgICAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIC0gPHNjcmlwdD4KKyAgICAg
ICAgICAgICAgZnVuY3Rpb24gdGVzdCgpeyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRz
VHJlZShzdGVwMSk7ICAgIGZ1bmN0aW9uIHN0ZXAxKCkgICAgeyAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wRWxlbWVudHNUcmVlKCk7ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OyAgICB9fQorICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgPC9oZWFkPgorICAgIC0gPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICAgIDxwPlRlc3RzIHRoYXQgZWxlbWVudHMgcGFu
ZWwgc2hvd3MgZG9tIHRyZWUgc3RydWN0dXJlLjwvcD4KKyAgICAgICAgLSA8ZGl2IGlkPSJsZXZl
bDEiPgorICAgICAgICAgICAgLSA8ZGl2IGlkPSJsZXZlbDIiPgorICAgICAgICAgICAgICAgICAg
IlRleHQgICAgICAgICIKKyAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImxldmVsMyI+PC9kaXY+
CisgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgPC9ib2R5Pgor
ICA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9l
bGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUuaHRtbAppbmRleCA4MDAxNmU5MTM1YTRiNmEz
OTViZjQ5OTA3YTI3N2M5ZjUwZGI1NTc2Li5iY2U4NzU5YTg2YjA1NWZlNmYwOTVkZmQ3ZTlkN2Rj
NTEyOGUzZWI3IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtcGFuZWwtc3RydWN0dXJlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS5odG1sCkBAIC03LDExICs3LDExIEBACiAK
IGZ1bmN0aW9uIHRlc3QoKQogewotICAgIEluc3BlY3RvclRlc3QucHVzaEFsbERPTShzdGVwMSk7
CisgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoc3RlcDEpOwogCiAgICAgZnVu
Y3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wTG9hZGVkRE9N
KCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpOwogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBh
bmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3RlZC50eHQKaW5kZXggYzQ3YzJhOWQ3NzhjOTVjNGQx
NDk3NzJjOGQ0YmVjMzc3OGY5YmM1Ni4uY2ViMmJjZmNiY2M1NWIzODk5ZDEzN2Q1OTcwMTBiMTZi
OGYzZjZlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1l
bnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3Rl
ZC50eHQKQEAgLTQsMjkgKzQsMjYgQEAgUGFyYWdyYXBoIEJSIHRlc3QKIE5leHQgbGluZQogCiAg
Ci0KLTxIVE1MIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxIZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij4KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMiPgotPC9zY3JpcHQ+Ci08c2NyaXB0PgotPCFbQ0RBVEFbZnVuY3Rpb24g
dGVzdCgpeyAgICBJbnNwZWN0b3JUZXN0LnB1c2hBbGxET00oc3RlcDEpOyAgICBmdW5jdGlvbiBz
dGVwMSgpICAgIHsgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcExvYWRlZERPTSgpOyAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsgICAgfX1dXT4KLTwvc2NyaXB0PgotPC9IZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+IlRlc3RzIHRoYXQgZWxlbWVudHMgcGFu
ZWwgc2hvd3MgWE1MIGRvbSB0cmVlIHN0cnVjdHVyZSB3aXRoIGNsb3NpbmcgdGFncyBmb3IgYWxs
IGVsZW1lbnRzLiIKLTwvcD4KLTxocj4KLTwvaHI+Ci08cD4iUGFyYWdyYXBoIEJSIHRlc3QiCi08
YnI+Ci08L2JyPiJOZXh0IGxpbmUiCi08L3A+Ci08IVtDREFUQVsgQ0RhdGEgQ29udGVudCBdXT4K
LTxpbWcgYWx0PSJSYW5kb20gSW1hZ2UiPgotPC9pbWc+Ci08L2JvZHk+Ci08L0hUTUw+CistIDxI
VE1MIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICAtIDxIZWFkPgor
ICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICAtIDxz
Y3JpcHQ+CisgICAgICAgICAgICAgIDwhW0NEQVRBW2Z1bmN0aW9uIHRlc3QoKXsgICAgSW5zcGVj
dG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoc3RlcDEpOyAgICBmdW5jdGlvbiBzdGVwMSgpICAg
IHsgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpOyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsgICAgfX1dXT4KKyAgICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgIDwvSGVhZD4KKyAgICAtIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgLSA8
cD4KKyAgICAgICAgICAgICAgIlRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgc2hvd3MgWE1MIGRv
bSB0cmVlIHN0cnVjdHVyZSB3aXRoIGNsb3NpbmcgdGFncyBmb3IgYWxsIGVsZW1lbnRzLiIKKyAg
ICAgICAgICA8L3A+CisgICAgICAgICAgPGhyPjwvaHI+CisgICAgICAgIC0gPHA+CisgICAgICAg
ICAgICAgICJQYXJhZ3JhcGggQlIgdGVzdCIKKyAgICAgICAgICAgICAgPGJyPjwvYnI+CisgICAg
ICAgICAgICAgICJOZXh0IGxpbmUiCisgICAgICAgICAgPC9wPgorICAgICAgICAgIDwhW0NEQVRB
WyBDRGF0YSBDb250ZW50IF1dPgorICAgICAgICAgIDxpbWcgYWx0PSJSYW5kb20gSW1hZ2UiPjwv
aW1nPgorICAgICAgPC9ib2R5PgorICA8L0hUTUw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUueGh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwteGh0bWwtc3Ry
dWN0dXJlLnhodG1sCmluZGV4IGM3MTMyZjQwN2JiNzFhZTk0ODFlMmViZGU2NWFjMTAwODAwNWJk
NzMuLjgxZjlhODhhNGVhZGI2MmM3Nzg3MGVjZTg2ZmM2ZDRkODQyYzg2OGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1
Y3R1cmUueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRz
LXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbApAQCAtNiwxMSArNiwxMSBAQAogPCFbQ0RBVEFb
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnB1c2hBbGxET00oc3RlcDEp
OworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAxKTsKIAogICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcExvYWRlZERP
TSgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFwc2VkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1jb2xsYXBz
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YjVhZDliNDA0ZThjMTRjMDA5N2I2ZGY0ZTA3
NGVjNTg1ZTUyOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaW5zZXJ0LW5vZGUtY29sbGFwc2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBoYXNDaGlsZHJlbiBmbGFnIHVwb24g
YWRkaW5nIGNoaWxkcmVuIHRvIGNvbGxhcHNlZCBub2Rlcy4KKworPT09PT09PT09IE9yaWdpbmFs
ID09PT09PT09CisgIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis9PT09PT09PSBBcHBlbmRl
ZCA9PT09PT09PT0KKysgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRiMmFhYjRjZmFlYTMzYTdmMDczYTFlMTQxNTY4MGFhYTU2Y2FhYjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0
LW5vZGUtY29sbGFwc2VkLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGFwcGVuZENoaWxkKCkKK3sKKyAgICB2
YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAg
IHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGNoaWxkLnNl
dEF0dHJpYnV0ZSgiaWQiLCAiYXBwZW5kZWQiKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
Y2hpbGQpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgY29udGFpbmVyTm9kZTsK
KworICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKHsKKyAgICAgICAgdGVzdER1bXBJbml0
aWFsOiBmdW5jdGlvbihuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjayhub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnRhaW5lck5vZGUg
PSBub2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09
PT0gT3JpZ2luYWwgPT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElk
KCJjb250YWluZXIiLCBjYWxsYmFjayk7CisgICAgICAgIH0sCisKKyAgICAgICAgdGVzdEFwcGVu
ZDogZnVuY3Rpb24obmV4dCkgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PT09PSBBcHBlbmRlZCA9PT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgiYXBwZW5kQ2hpbGQoKSIsIGNhbGxiYWNrKTsKKyAgICAgICAgfQorICAgIH0pOworfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0
cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgaGFzQ2hpbGRyZW4gZmxhZyB1cG9uIGFkZGlu
ZyBjaGlsZHJlbiB0byBjb2xsYXBzZWQgbm9kZXMuCis8L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5l
ciI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJm
MDY1ZjM1OTU2ZGRmMWY1MTU2Yjg3ZGExYzkxMTQyMjFiZDJhZjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBkb20g
dHJlZSBzdHJ1Y3R1cmUgdXBvbiBub2RlIGluc2VydGlvbi4KKworPT09PT09PT09IE9yaWdpbmFs
ID09PT09PT09CistIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlkPSJjaGlsZDEi
PjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNo
aWxkMyI+PC9kaXY+CisgIDwvZGl2PgorPT09PT0gSW5zZXJ0ZWQgYmVmb3JlID09PT09CistIDxk
aXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlkPSJjaGlsZC1iZWZvcmUiPjwvZGl2Pgor
ICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9k
aXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgorICA8L2Rpdj4KKz09PT09IEluc2Vy
dGVkIG1pZGRsZSA9PT09PQorLSA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgPGRpdiBpZD0i
Y2hpbGQtYmVmb3JlIj48L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMSI+PC9kaXY+CisgICAg
ICA8ZGl2IGlkPSJjaGlsZC1taWRkbGUiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQyIj48
L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+CisgIDwvZGl2PgorPT09PT09PT0g
QXBwZW5kZWQgPT09PT09PT09CistIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlk
PSJjaGlsZC1iZWZvcmUiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KKyAg
ICAgIDxkaXYgaWQ9ImNoaWxkLW1pZGRsZSI+PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDIi
PjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNo
aWxkLWFmdGVyIj48L2Rpdj4KKyAgPC9kaXY+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2luc2VydC1ub2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY0YTc3MWQ4MGMxNjNkMTcz
YzcwZjQ4ZmQzMTU0YzgyMmNhYjliNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24g
aW5zZXJ0QmVmb3JlRmlyc3QoKQoreworICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgY2hpbGQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGlsZC1iZWZv
cmUiKTsKKyAgICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKGNoaWxkLCBjb250YWluZXIuZmlyc3RD
aGlsZCk7Cit9CisKK2Z1bmN0aW9uIGluc2VydE5vZGUoKQoreworICAgIHZhciBjb250YWluZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgdmFyIGNoaWxkMiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKTsKKyAgICB2YXIgY2hpbGQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoImlkIiwg
ImNoaWxkLW1pZGRsZSIpOworICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hpbGQsIGNoaWxk
Mik7Cit9CisKK2Z1bmN0aW9uIGFwcGVuZENoaWxkKCkKK3sKKyAgICB2YXIgY29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgIHZhciBjaGlsZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgiaWQi
LCAiY2hpbGQtYWZ0ZXIiKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY2hpbGQpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgY29udGFpbmVyTm9kZTsKKworICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKHsKKyAgICAgICAgdGVzdER1bXBJbml0aWFsOiBmdW5jdGlv
bihuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnRhaW5lck5vZGUgPSBJbnNwZWN0b3JU
ZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiY29udGFpbmVyIik7CisKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Iik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5v
ZGUpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKGNhbGxiYWNrKTsKKyAgICAgICAgfSwK
KworICAgICAgICB0ZXN0SW5zZXJ0QmVmb3JlOiBmdW5jdGlvbihuZXh0KQorICAgICAgICB7Cisg
ICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IEluc2VydGVkIGJlZm9yZSA9PT09
PSIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250
YWluZXJOb2RlKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJpbnNlcnRCZWZvcmVGaXJzdCgp
IiwgY2FsbGJhY2spOworICAgICAgICB9LAorCisgICAgICAgIHRlc3RJbnNlcnRNaWRkbGU6IGZ1
bmN0aW9uKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
PT09PT0gSW5zZXJ0ZWQgbWlkZGxlID09PT09Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOworICAgICAgICAgICAgICAgIG5l
eHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoImluc2VydE5vZGUoKSIsIGNhbGxiYWNrKTsKKyAgICAgICAgfSwKKworICAgICAgICB0
ZXN0QXBwZW5kOiBmdW5jdGlvbihuZXh0KSB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
aygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIj09PT09PT09IEFwcGVuZGVkID09PT09PT09PSIpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKKyAgICAgICAgICAgICAg
ICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJhcHBlbmRDaGlsZCgpIiwgY2FsbGJhY2spOworICAgICAgICB9CisgICAgfSk7
Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD4KK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBkb20gdHJlZSBzdHJ1Y3R1cmUg
dXBvbiBub2RlIGluc2VydGlvbi4KKzwvcD4KKworPGRpdiBpZD0iY29udGFpbmVyIj48ZGl2IGlk
PSJjaGlsZDEiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+PGRpdiBpZD0iY2hpbGQzIj48
L2Rpdj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL21vZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW9kaWZ5LWNoYXJkYXRhLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZDRiMmY5MTYzNjQ1ZGVjN2I4NDdlNzBkNmYzOWM5YzMwZTA1N2Y3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21vZGlmeS1jaGFyZGF0
YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVs
IHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24gY2hhbmdlcyB0byBjaGFyYWN0ZXJzLgor
CitCYXIKKz09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PQorICA8ZGl2IGlkPSJub2RlIj5Gb288
L2Rpdj4KKz09PT09IE11dGF0ZWQgdGV4dCBub2RlID09PT09CisgIDxkaXYgaWQ9Im5vZGUiPkJh
cjwvZGl2PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW9k
aWZ5LWNoYXJkYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW9kaWZ5
LWNoYXJkYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5MTZmMmIzZDlmZDRmNzRkM2IwNThhOGRmMTEx
YjNlMzYzMjhhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9tb2RpZnktY2hhcmRhdGEuaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIG1vZGlmeUNo
YXJzKCkKK3sKKyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub2RlIik7
CisgICAgbm9kZS5maXJzdENoaWxkLnRleHRDb250ZW50ID0gIkJhciI7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHZhciB0YXJnZXROb2RlOworCisgICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoeworICAgICAgICB0ZXN0RHVtcEluaXRpYWw6IGZ1bmN0aW9uKG5leHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG5vZGU7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsK
KyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm5vZGUiLCBjYWxsYmFjayk7CisgICAgICAgIH0s
CisKKyAgICAgICAgdGVzdFNldEF0dHJpYnV0ZTogZnVuY3Rpb24obmV4dCkKKyAgICAgICAgewor
ICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBNdXRhdGVkIHRleHQgbm9kZSA9
PT09PSIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0
YXJnZXROb2RlKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlDaGFycygpIiwgY2Fs
bGJhY2spOworICAgICAgICB9CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwg
dXBkYXRlcyBkb20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiBjaGFuZ2VzIHRvIGNoYXJhY3RlcnMuCis8
L3A+CisKKzxkaXYgaWQ9Im5vZGUiPkZvbzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9k
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVu
a25vd24tbm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJiYjhiMzEwYjk4MzljODg5NTM4
Y2Y4Yjg4ODExMzczOTM1OTdlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE1IEBACitUZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIGRvZXMgbm90IHJlY2VpdmUgZXZlbnRz
IHVwb24gY2hhbmdlcyB0byB0aGUgdW5kaXNjb3ZlcmVkIG5vZGVzLgorCis9PT09PT09PT0gT3Jp
Z2luYWwgPT09PT09PT0KKyNkb2N1bWVudFsxXQorICAgIEhUTUxbMl0KKyAgICAgICAgSEVBRFsz
XQorICAgICAgICBCT0RZWzRdCisgICAgICAgICAgICBQWzVdCisgICAgICAgICAgICAgICAgWzZd
CisgICAgICAgICAgICBESVZbN10KK0RPTUFnZW50IGV2ZW50IGZpcmVkLiBTaG91bGQgb25seSBo
YXBwZW4gb25jZSBmb3Igb3V0cHV0IG5vZGU6IERPTU5vZGVJbnNlcnRlZCBESVYjdW5kZWZpbmVk
CitBcHBlbmRlZAorUmVtb3ZlZAorQXR0cmlidXRlIG1vZGlmaWVkCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhlMmVhODg0MjJhYmE5ZmU1ZWJjMTA2NzM0Mzg2YTYzZThkZjZjMzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25v
d24tbm9kZS5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gYXBwZW5kQ2hpbGQoKQoreworICAg
IHZhciBoaWRkZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGlkZGVuIik7CisgICAgdmFy
IGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgY2hpbGQuc2V0QXR0
cmlidXRlKCJpZCIsICJhcHBlbmRlZCIpOworICAgIGhpZGRlbi5hcHBlbmRDaGlsZChjaGlsZCk7
Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUNoaWxkKCkKK3sKKyAgICB2YXIgY2hpbGQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXBwZW5kZWQiKTsKKyAgICBjaGlsZC5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKGNoaWxkKTsKK30KKworZnVuY3Rpb24gbW9kaWZ5QXR0cmlidXRlKCkKK3sKKyAgICB2
YXIgaGlkZGVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhpZGRlbiIpOworICAgIGhpZGRl
bi5zZXRBdHRyaWJ1dGUoImZvbyIsICJiYXIiKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgZnVuY3Rpb24gbGlzdGVuZXIodHlwZSwgZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRE9NQWdlbnQgZXZlbnQgZmlyZWQuIFNob3VsZCBvbmx5IGhhcHBl
biBvbmNlIGZvciBvdXRwdXQgbm9kZTogIiArIHR5cGUgKyAiICIgKyBldmVudC50YXJnZXQubm9k
ZU5hbWUgKyAiIyIgKyBldmVudC50YXJnZXQuZ2V0QXR0cmlidXRlKCJpZCIpKTsKKyAgICB9CisK
KyAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9N
QXR0ck1vZGlmaWVkIiwgbGlzdGVuZXIuYmluZCh0aGlzLCAiRE9NQXR0ck1vZGlmaWVkIikpOwor
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01D
aGFyYWN0ZXJEYXRhTW9kaWZpZWQiLCBsaXN0ZW5lci5iaW5kKHRoaXMsICJET01DaGFyYWN0ZXJE
YXRhTW9kaWZpZWQiKSk7CisgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGxpc3RlbmVyLmJpbmQodGhpcywgIkRPTU5v
ZGVJbnNlcnRlZCIpKTsKKyAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92ZWQiLCBsaXN0ZW5lci5iaW5kKHRoaXMsICJET01Ob2Rl
UmVtb3ZlZCIpKTsKKworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT0gT3Jp
Z2luYWwgPT09PT09PT0iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBET01BZ2VudFRyZWUoKTsK
KworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImFwcGVuZENoaWxkKCkiLCBzdGVw
MSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQXBwZW5kZWQiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgicmVtb3ZlQ2hpbGQoKSIsIHN0ZXAyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVw
MigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3ZlZCIpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlBdHRyaWJ1dGUoKSIs
IHN0ZXAzKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMygpCisgICAgeworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXR0cmlidXRlIG1vZGlmaWVkIik7CisgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVh
ZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGF0IGVsZW1lbnRz
IHBhbmVsIGRvZXMgbm90IHJlY2VpdmUgZXZlbnRzIHVwb24gY2hhbmdlcyB0byB0aGUgdW5kaXNj
b3ZlcmVkIG5vZGVzLgorPC9wPgorCis8ZGl2PgorPGRpdiBpZD0iaGlkZGVuIj4KKzwvZGl2Pgor
PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9yZW1vdmUtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZDg1
N2RhYzQ1NjFkZWI5OTRhOWNiNTE1MWM5NzNiN2E0MmNlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjggQEAKK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBkb20gdHJl
ZSBzdHJ1Y3R1cmUgdXBvbiBub2RlIHJlbW92YWwuCisKKz09PT09PT09PSBPcmlnaW5hbCA9PT09
PT09PQorLSA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rp
dj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDMi
PjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQ0Ij48L2Rpdj4KKyAgPC9kaXY+Cis9PT09PSBS
ZW1vdmVkIGZpcnN0ID09PT09CistIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlk
PSJjaGlsZDIiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KKyAgICAgIDxk
aXYgaWQ9ImNoaWxkNCI+PC9kaXY+CisgIDwvZGl2PgorPT09PT0gUmVtb3ZlZCBtaWRkbGUgPT09
PT0KKy0gPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+
CisgICAgICA8ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PgorICA8L2Rpdj4KKz09PT09IFJlbW92ZWQg
bGFzdCA9PT09PQorLSA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgPGRpdiBpZD0iY2hpbGQy
Ij48L2Rpdj4KKyAgPC9kaXY+Cis9PT09PSBSZW1vdmVkIHRoZSBvbmx5ID09PT09CistIDxkaXYg
aWQ9ImNvbnRhaW5lciI+CisgIDwvZGl2PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9yZW1vdmUtbm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNDdjMWEwMGZlYWQwNThmOWZm
NjI5NDI5NmY5YThiMTg3NTA5ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUuaHRtbApAQCAtMCwwICsxLDg4IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJl
bW92ZU5vZGUoaWQpCit7CisgICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpOworICAgIGNoaWxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpOworfQorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgY29udGFpbmVyTm9kZTsKKworICAgIEluc3BlY3RvclRl
c3QucnVuVGVzdFN1aXRlKHsKKyAgICAgICAgdGVzdER1bXBJbml0aWFsOiBmdW5jdGlvbihuZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGNvbnRhaW5lck5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4
cGFuZGVkTm9kZVdpdGhJZCgiY29udGFpbmVyIik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Iik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwor
ICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKGNhbGxiYWNrKTsKKyAgICAgICAgfSwKKworICAg
ICAgICB0ZXN0UmVtb3ZlRmlyc3Q6IGZ1bmN0aW9uKG5leHQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gUmVtb3ZlZCBmaXJzdCA9PT09PSIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2Rl
KTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVOb2RlKCdjaGlsZDEnKSIsIGNhbGxi
YWNrKTsKKyAgICAgICAgfSwKKworICAgICAgICB0ZXN0UmVtb3ZlTWlkZGxlOiBmdW5jdGlvbihu
ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IFJl
bW92ZWQgbWlkZGxlID09PT09Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
RWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJl
bW92ZU5vZGUoJ2NoaWxkMycpIiwgY2FsbGJhY2spOworICAgICAgICB9LAorCisgICAgICAgIHRl
c3RSZW1vdmVMYXN0OiBmdW5jdGlvbihuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjaygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PT09IFJlbW92ZWQgbGFzdCA9PT09PSIpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKKyAgICAg
ICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVOb2RlKCdjaGlsZDQnKSIsIGNhbGxiYWNrKTsKKyAg
ICAgICAgfSwKKworICAgICAgICB0ZXN0UmVtb3ZlVGhlT25seTogZnVuY3Rpb24obmV4dCkKKyAg
ICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBSZW1vdmVkIHRo
ZSBvbmx5ID09PT09Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVu
dHNUcmVlKGNvbnRhaW5lck5vZGUpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJlbW92ZU5v
ZGUoJ2NoaWxkMicpIiwgY2FsbGJhY2spOworICAgICAgICB9CisgICAgfSk7Cit9CisKKzwvc2Ny
aXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRo
YXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBkb20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiBub2RlIHJl
bW92YWwuCis8L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBpZD0iY2hpbGQxIj48L2Rp
dj48ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+PGRpdiBpZD0i
Y2hpbGQ0Ij48L2Rpdj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMz
OGFhM2ZjZDI5ZDg4MGZmOTAwYzhlY2RmNWQyOWY5NjkyMTc3NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0cmlidXRlLmh0bWwKQEAgLTAs
MCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCitmdW5jdGlvbiBzZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCit7CisgICAgdmFyIG5v
ZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOworICAgIG5vZGUuc2V0QXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQXR0cmlidXRlKG5hbWUpCit7
CisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOworICAgIG5v
ZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2
YXIgdGFyZ2V0Tm9kZTsKKworICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKHsKKyAgICAg
ICAgdGVzdER1bXBJbml0aWFsOiBmdW5jdGlvbihuZXh0KQorICAgICAgICB7CisgICAgICAgICAg
ICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHRhcmdldE5vZGUgPSBub2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT09PT09PT0gT3JpZ2luYWwgPT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0Tm9kZSk7CisgICAgICAgICAgICAgICAg
bmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlV2l0aElkKCJub2RlIiwgY2FsbGJhY2spOworICAgICAgICB9LAorCisgICAgICAgIHRlc3RT
ZXRBdHRyaWJ1dGU6IGZ1bmN0aW9uKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09PT0gU2V0IGF0dHJpYnV0ZSA9PT09PSIpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKKyAgICAgICAg
ICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRBdHRyaWJ1dGUoJ25hbWUnLCAndmFsdWUnKSIsIGNhbGxiYWNr
KTsKKyAgICAgICAgfSwKKworICAgICAgICB0ZXN0UmVtb3ZlQXR0cmlidXRlOiBmdW5jdGlvbihu
ZXh0KSB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBSZW1vdmVkIGF0dHJp
YnV0ZSA9PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1Ry
ZWUodGFyZ2V0Tm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlQXR0cmlidXRl
KCduYW1lJykiLCBjYWxsYmFjayk7CisgICAgICAgIH0KKyAgICB9KTsKK30KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBl
bGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIHNldHRpbmcgYXR0
cmlidXRlLgorPC9wPgorCis8ZGl2IGlkPSJub2RlIj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWV4cGVjdGVkLnR4dAppbmRleCAwMzNkNjljODZkOTAyOTk0OTAwMGU5Nzg0Njg5NmM1YzVj
MmY0ZDQxLi43ODcxMzI1ZTIwM2ZlMTYzZDJhMGRhYWRkMjhiMGVmMWJiN2MyNDZiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV4
cGVjdGVkLnR4dApAQCAtMTcsNyArMTcsNyBAQCBTaWRlYmFyIGNyZWF0ZWQKICAgICBzZXRIZWln
aHQgOiA8ZnVuY3Rpb24+CiB9CiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXh0ZW5zaW9u
V2F0Y2hTaWRlYmFyRXhwcmVzc2lvbgotU2lkZWJhciBjb250ZW50OiB0aXRsZWYwOiAiZXhwcmVz
c2lvbiJmMTogdW5kZWZpbmVkZjI6IG51bGxmMzogT2JqZWN0ZjQ6IEFycmF5WzBdZjU6IEFycmF5
WzNdZjY6IE9iamVjdGY3OiA0MmY4OiBMb2NhdGlvbmY5OiBIVE1MQ29sbGVjdGlvblsxOF1mMTA6
IGZ1bmN0aW9uICgpIHt9X19wcm90b19fOiBPYmplY3QKK1NpZGViYXIgY29udGVudDogdGl0bGVm
MDogImV4cHJlc3Npb24iZjE6IHVuZGVmaW5lZGYyOiBudWxsZjM6IE9iamVjdGY0OiBBcnJheVsw
XWY1OiBBcnJheVszXWY2OiBPYmplY3RmNzogNDJmODogTG9jYXRpb25mOTogSFRNTENvbGxlY3Rp
b25bMl1mMTA6IGZ1bmN0aW9uICgpIHt9X19wcm90b19fOiBPYmplY3QKIFJVTk5JTkcgVEVTVDog
ZXh0ZW5zaW9uX3Rlc3RFeHRlbnNpb25XYXRjaFNpZGViYXJPYmplY3QKIFdhdGNoIHNpZGViYXIg
Y3JlYXRlZCwgY2FsbGJhY2sgYXJndW1lbnRzIGR1bXAgZm9sbG93czoKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82465</attachid>
            <date>2011-02-15 08:49:27 -0800</date>
            <delta_ts>2011-02-15 09:27:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54459-20110215194923.patch</filename>
            <type>text/plain</type>
            <size>41241</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg1NDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMmU5NGNhZGU0Y2UwODRiNGI2ODUz
MGMyM2U1MGQ5YWQ3MjBiZjU1Li5hNmVmYjlmNWNlOTQ4NDI1MDhmZmRhNzA0MWYzMDFlZGZiMDNl
ZTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsNDggQEAKIDIwMTEtMDItMTUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IERPTSBhZ2VudCB0ZXN0cy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NDU5CisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzOgorICAgICAg
ICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJ
ZC5jYWxsYmFjayk6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRl
c3QuZXhwYW5kZWROb2RlV2l0aElkKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRlc3Qu
SW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxl
bWVudFRlc3QuSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlLnByaW50KToKKyAgICAgICAg
KGluaXRpYWxpemVfRWxlbWVudFRlc3QuSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZEVs
ZW1lbnRzVHJlZS5teWNhbGxiYWNrKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRlc3Qu
SW5zcGVjdG9yVGVzdC5kdW1wRE9NQWdlbnRUcmVlKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxl
bWVudFRlc3QpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVz
b3VyY2VzLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVz
dC5JbnNwZWN0b3JUZXN0LmFkZFJlc3VsdC5jbGVhclJlc3VsdHMpOgorICAgICAgICAoaW5pdGlh
bGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlLnJ1bm5lcik6Cisg
ICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3Vp
dGUpOgorICAgICAgICAob3V0cHV0KToKKyAgICAgICAgKGNsZWFyT3V0cHV0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRl
LWhyZWYuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwt
c3RydWN0dXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtcGFuZWwtc3RydWN0dXJlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFwc2VkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2Rl
LWNvbGxhcHNlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaW5z
ZXJ0LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvaW5zZXJ0LW5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L21vZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1leHBlY3Rl
ZC50eHQ6CisKKzIwMTEtMDItMTUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgTm90IHJldmlld2VkOiB1cGRhdGUgaW5zcGVjdG9yIGV4cGVjdGF0aW9u
IHBhdGggZm9yIG1hYy1sZW9wYXJkLgogCiAgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvaW5zcGVjdG9yL2V4
dGVuc2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCmluZGV4IDYyNDg2MTc5ZWRjZDY3OGJh
ZThkMjYwZGNmYTdkZGZmYTZjYjM4YjUuLmU4MzgzZmRhODRkMDFkNjY2NjI3N2VkNWM4YmQwM2Y1
MDRhNWQ0ZWQgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcwpAQCAtMSw5ICsxLDUgQEAKIHZhciBpbml0aWFsaXplX0VsZW1lbnRUZXN0
ID0gZnVuY3Rpb24oKSB7CiAKLUluc3BlY3RvclRlc3QucHVzaEFsbERPTSA9IGZ1bmN0aW9uKGNh
bGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgvbm9uc3RyaW5nLywgY2Fs
bGJhY2spOwotfQogCiBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQgPSBmdW5jdGlvbihpZFZhbHVl
LCBjYWxsYmFjaykKIHsKQEAgLTM3LDYgKzMzLDE3IEBAIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJ
ZCA9IGZ1bmN0aW9uKGlkVmFsdWUsIGNhbGxiYWNrKQogICAgIFdlYkluc3BlY3Rvci5kb21BZ2Vu
dC5nZXRDaGlsZE5vZGVzQXN5bmMoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LCBwcm9j
ZXNzQ2hpbGRyZW4uYmluZCh0aGlzLCB0cnVlKSk7CiB9OwogCitJbnNwZWN0b3JUZXN0LmV4cGFu
ZGVkTm9kZVdpdGhJZCA9IGZ1bmN0aW9uKGlkVmFsdWUpCit7CisgICAgdmFyIHJlc3VsdDsKKyAg
ICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQorICAgIHsKKyAgICAgICAgcmVzdWx0ID0gbm9kZTsK
KyAgICB9CisgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKGlkVmFsdWUsIGNhbGxiYWNrKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQg
PSBmdW5jdGlvbihpZFZhbHVlLCBjYWxsYmFjaykKIHsKICAgICBmdW5jdGlvbiBteWNhbGxiYWNr
KG5vZGUpCkBAIC0xMjMsMjYgKzEzMCw3NyBAQCBJbnNwZWN0b3JUZXN0LmR1bXBTdHlsZVRyZWVJ
dGVtID0gZnVuY3Rpb24odHJlZUl0ZW0sIHByZWZpeCwgZGVwdGgpCiAgICAgfQogfTsKIAotSW5z
cGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlID0gZnVuY3Rpb24oKQorSW5zcGVjdG9yVGVzdC5k
dW1wRWxlbWVudHNUcmVlID0gZnVuY3Rpb24ocm9vdE5vZGUpCiB7CisgICAgZnVuY3Rpb24gYmVh
dXRpZnkoZWxlbWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50
LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikucmVwbGFjZSgvXG4vZywgIiIpLnRyaW0oKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBwcmludCh0cmVlSXRlbSwgcHJlZml4KQorICAgIHsKKyAgICAgICAg
aWYgKHRyZWVJdGVtLmxpc3RJdGVtRWxlbWVudCkgeworICAgICAgICAgICAgdmFyIGV4cGFuZGVy
OworICAgICAgICAgICAgaWYgKHRyZWVJdGVtLmhhc0NoaWxkcmVuKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHRyZWVJdGVtLmV4cGFuZGVkKQorICAgICAgICAgICAgICAgICAgICBleHBhbmRlciA9
ICItICI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBleHBhbmRl
ciA9ICIrICI7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBleHBhbmRlciA9
ICIgICI7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHByZWZpeCArIGV4
cGFuZGVyICsgYmVhdXRpZnkodHJlZUl0ZW0ubGlzdEl0ZW1FbGVtZW50KSk7CisgICAgICAgIH0K
KyAgICAgICAgCisKKyAgICAgICAgaWYgKCF0cmVlSXRlbS5leHBhbmRlZCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB2YXIgY2hpbGRyZW4gPSB0cmVlSXRlbS5jaGlsZHJlbjsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGNoaWxkcmVuICYmIGkgPCBjaGlsZHJlbi5sZW5ndGggLSAx
OyArK2kpCisgICAgICAgICAgICBwcmludChjaGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiKTsK
KworICAgICAgICAvLyBDbG9zaW5nIHRhZy4KKyAgICAgICAgaWYgKGNoaWxkcmVuICYmIGNoaWxk
cmVuLmxlbmd0aCkKKyAgICAgICAgICAgIHByaW50KGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAt
IDFdLCBwcmVmaXgpOworICAgIH0KKwogICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMu
dXBkYXRlTW9kaWZpZWROb2RlcygpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KFdlYklu
c3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuZWxlbWVudC50ZXh0Q29udGVudC5y
ZXBsYWNlKC9cdTIwMGIvZywgIiIpLnJlcGxhY2UoL1xuL2csICIiKS5yZXBsYWNlKC88L2csICJc
bjwiKSk7CisgICAgdmFyIHRyZWVPdXRsaW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy50cmVlT3V0bGluZTsKKyAgICBwcmludChyb290Tm9kZSA/IHRyZWVPdXRsaW5lLmZpbmRUcmVl
RWxlbWVudChyb290Tm9kZSkgOiB0cmVlT3V0bGluZSwgIiIpOwogfTsKIAotSW5zcGVjdG9yVGVz
dC5kdW1wTG9hZGVkRE9NID0gZnVuY3Rpb24oKQorSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50
c1RyZWUgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBleHBhbmQodHJlZUl0
ZW0sIHRvcExldmVsKQorICAgIGZ1bmN0aW9uIGV4cGFuZCh0cmVlSXRlbSkKICAgICB7CiAgICAg
ICAgIHZhciBjaGlsZHJlbiA9IHRyZWVJdGVtLmNoaWxkcmVuOwogICAgICAgICBmb3IgKHZhciBp
ID0gMDsgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAg
ICBjaGlsZHJlbltpXS5leHBhbmQoKTsKLSAgICAgICAgICAgIGV4cGFuZChjaGlsZHJlbltpXSwg
ZmFsc2UpOworICAgICAgICAgICAgZXhwYW5kKGNoaWxkcmVuW2ldKTsKICAgICAgICAgfQotICAg
ICAgICBpZiAodG9wTGV2ZWwpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50
c1RyZWUoKTsKICAgICB9Ci0gICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy51cGRhdGVN
b2RpZmllZE5vZGVzKCk7Ci0gICAgZXhwYW5kKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMu
dHJlZU91dGxpbmUsIHRydWUpOworCisgICAgZnVuY3Rpb24gbXljYWxsYmFjaygpCisgICAgewor
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMo
KTsKKyAgICAgICAgZXhwYW5kKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxp
bmUpOworICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICBjYWxsYmFjaygpOworICAg
IH0KKyAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoL25vbnN0cmluZy8sIG15Y2FsbGJhY2sp
OworfTsKKworSW5zcGVjdG9yVGVzdC5kdW1wRE9NQWdlbnRUcmVlID0gZnVuY3Rpb24oKQorewor
ICAgIGZ1bmN0aW9uIGR1bXAobm9kZSwgcHJlZml4KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQocHJlZml4ICsgbm9kZS5ub2RlTmFtZSArICJbIiArIG5vZGUuaWQgKyAi
XSIpOworICAgICAgICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgZHVtcChjaGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiKTsKKyAgICB9CisgICAgZHVt
cChXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQsICIiKTsKIH07CiAKIH07ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtcmVkaXJl
Y3QtZXhwZWN0ZWQudHh0CmluZGV4IDNkMmEyNzE3Nzc5MThjODNjNDVjZDE3ZTM0OTI2NDgzYWQ5
YTFmOTIuLjlhNGU4MGUwMmY2MThlNDVmOTY3NDRlZTU3MWM2MzA4MzU0ZjgwMDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2Vz
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zLXJlc291cmNlcy1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTIsMTAg
KzIsOCBAQCBUZXN0cyBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQogCiBQYWdlIHJlbG9hZGVk
LgogU3RhcnRlZCBleHRlbnNpb24uCi0KIFJ1bm5pbmcgdGVzdHMuLi4KIFJVTk5JTkcgVEVTVDog
ZXh0ZW5zaW9uX3Rlc3RHZXRSZWRpcmVjdFJlc291cmNlQ29udGVudAotCiBjb250ZW50OiB1bmRl
ZmluZWQsIGVuY29kaW5nOiB1bmRlZmluZWQKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RS
ZWRpcmVjdFJlc291cmNlRmluaXNoZWQKIEZpbmlzaGVkIHJlc291cmNlOiBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3N0
YXR1cz0zMDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMKaW5kZXggZDhiMDYxYzllNDA0NzRiNDlmMjgzZTAxYzEwMThkYTA1Yzk1ZGUy
YS4uMzYxNjIxYWY0MDZkZDYwMzE3NTc4NWY2MWFkMTdjN2NlNGRiMGFjYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTYy
LDcgKzYyLDcgQEAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQgPSBmdW5jdGlvbih0ZXh0KQogCiAg
ICAgZnVuY3Rpb24gY2xlYXJSZXN1bHRzKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQuYm9k
eS5xdWVyeVNlbGVjdG9yQWxsKCdkaXYub3V0cHV0JyksIGZ1bmN0aW9uKG5vZGUpIHsgbm9kZS5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpOyB9KSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJjbGVhck91dHB1dCgpIik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24g
YWRkUmVzdWx0VG9QYWdlKHRleHQpCkBAIC0xMzUsNDUgKzEzNSwyMSBAQCBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUtleUV2ZW50ID0gZnVuY3Rpb24oa2V5SWRlbnRpZmllcikKICAgICByZXR1cm4gZXZ0
OwogfQogCi1JbnNwZWN0b3JUZXN0LmZpbmRET01Ob2RlID0gZnVuY3Rpb24ocm9vdCwgZmlsdGVy
LCBjYWxsYmFjaykKK0luc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlID0gZnVuY3Rpb24odGVzdFN1
aXRlKQogewotICAgIHZhciBmb3VuZCA9IGZhbHNlOwotICAgIHZhciBwZW5kaW5nQ2FsbHMgPSAx
OworICAgIHZhciB0ZXN0U3VpdGVUZXN0cyA9IHRlc3RTdWl0ZS5zbGljZSgpOwogCi0gICAgaWYg
KHJvb3QpCi0gICAgICAgIGZpbmRET01Ob2RlKHJvb3QpOwotICAgIGVsc2UKLSAgICAgICAgd2Fp
dEZvckRvY3VtZW50KCk7Ci0KLSAgICBmdW5jdGlvbiB3YWl0Rm9yRG9jdW1lbnQoKQorICAgIGZ1
bmN0aW9uIHJ1bm5lcigpCiAgICAgewotICAgICAgICByb290ID0gV2ViSW5zcGVjdG9yLmRvbUFn
ZW50LmRvY3VtZW50OwotICAgICAgICBpZiAocm9vdCkKLSAgICAgICAgICAgIGZpbmRET01Ob2Rl
KHJvb3QpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvciwgc2V0RG9jdW1lbnQsIHdhaXRGb3JEb2N1bWVudCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gZmluZERPTU5vZGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmIChmaWx0
ZXIobm9kZSkpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKG5vZGUpOwotICAgICAgICAgICAgZm91
bmQgPSB0cnVlOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5nZXRDaGlsZE5vZGVzQXN5bmMobm9kZSwgcHJvY2Vzc0NoaWxkcmVuKTsKLQotICAgICAg
ICAtLXBlbmRpbmdDYWxsczsKLQotICAgICAgICBpZiAoIWZvdW5kICYmICFwZW5kaW5nQ2FsbHMp
Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KGZpbmRET01Ob2RlLmJpbmQobnVsbCwgcm9vdCksIDAp
OwotCi0gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbikKLSAgICAgICAg
ewotICAgICAgICAgICAgcGVuZGluZ0NhbGxzICs9IGNoaWxkcmVuID8gY2hpbGRyZW4ubGVuZ3Ro
IDogMDsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyAhZm91bmQgJiYgY2hpbGRyZW4gJiYg
aSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGZpbmRET01Ob2RlKGNo
aWxkcmVuW2ldKTsKKyAgICAgICAgaWYgKCF0ZXN0U3VpdGVUZXN0cy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KKyAgICAgICAgdmFyIG5leHRUZXN0RnVuY3Rpb24gPSB0ZXN0U3VpdGVUZXN0
cy5zaGlmdCgpOworICAgICAgICBuZXh0VGVzdEZ1bmN0aW9uKHJ1bm5lcik7CiAgICAgfQorCisg
ICAgcnVubmVyKCk7CiB9CiAKIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIgPSBmdW5jdGlvbihy
ZWNlaXZlciwgbWV0aG9kTmFtZSwgb3ZlcnJpZGUsIG9wdF9zdGlja3kpCkBAIC0yNjgsMTIgKzI0
NCwyNCBAQCBmdW5jdGlvbiBkaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNhbGxJZCkKICAg
ICB9LCAwKTsKIH0KIAordmFyIG91dHB1dEVsZW1lbnQ7CisKIGZ1bmN0aW9uIG91dHB1dCh0ZXh0
KQogewotICAgIHZhciBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Ci0gICAgb3V0cHV0RWxlbWVudC5jbGFzc05hbWUgPSAib3V0cHV0IjsKLSAgICBvdXRwdXRF
bGVtZW50LnN0eWxlLndoaXRlU3BhY2UgPSAicHJlIjsKKyAgICBpZiAoIW91dHB1dEVsZW1lbnQp
IHsKKyAgICAgICAgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICBvdXRwdXRFbGVtZW50LmNsYXNzTmFtZSA9ICJvdXRwdXQiOworICAgICAgICBv
dXRwdXRFbGVtZW50LnN0eWxlLndoaXRlU3BhY2UgPSAicHJlIjsKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChvdXRwdXRFbGVtZW50KTsKKyAgICB9CiAgICAgb3V0cHV0RWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CiAgICAgb3V0cHV0
RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG91dHB1dEVsZW1lbnQpOworfQorCitmdW5jdGlvbiBj
bGVhck91dHB1dCgpCit7CisgICAgaWYgKG91dHB1dEVsZW1lbnQpIHsKKyAgICAgICAgb3V0cHV0
RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG91dHB1dEVsZW1lbnQpOworICAgICAgICBv
dXRwdXRFbGVtZW50ID0gbnVsbDsKKyAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggNzFiODM4ZGZhNmQ4MTQ3
ZDE0YzIzOTRhNGQyMGJkNWQ5ZGE2MTE1NS4uZGQ3YjQwYjk5NmRhMGE2NjA0Mjg1YzJlNWVjNzYx
OTMwNTQzMzljMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rv
bS1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
b20tYnJlYWtwb2ludHMuaHRtbApAQCAtMzAsNyArMzAsNyBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKICAgICB0ZXN0SW5zZXJ0Q2hpbGQuc3RlcDEgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBi
cmVha3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGluZyBhIGNoaWxkLiIpOwotICAgICAgICBmaW5k
RE9NTm9kZUJ5SWQoInJvb3RFbGVtZW50IiwgdGVzdEluc2VydENoaWxkLnN0ZXAyKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJyb290RWxlbWVudCIsIHRlc3RJbnNlcnRDaGls
ZC5zdGVwMik7CiAgICAgfTsKICAgICB0ZXN0SW5zZXJ0Q2hpbGQuc3RlcDIgPSBmdW5jdGlvbihu
b2RlKQogICAgIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAg
ICB0ZXN0UmVtb3ZlTm9kZS5zdGVwMiA9IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJBcHBlbmQgZWxlbWVudFRvUmVtb3ZlIHRvIHJvb3RFbGVtZW50
LiIpOwotICAgICAgICBmaW5kRE9NTm9kZUJ5SWQoImVsZW1lbnRUb1JlbW92ZSIsIHRlc3RSZW1v
dmVOb2RlLnN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJlbGVtZW50
VG9SZW1vdmUiLCB0ZXN0UmVtb3ZlTm9kZS5zdGVwMyk7CiAgICAgfQogICAgIHRlc3RSZW1vdmVO
b2RlLnN0ZXAzID0gZnVuY3Rpb24obm9kZSkKICAgICB7CkBAIC0xMjMsNyArMTIzLDcgQEAgdmFy
IHRlc3QgPSBmdW5jdGlvbigpCiAgICAgdGVzdFJlbG9hZC5zdGVwMSA9IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgRE9NIGJyZWFr
cG9pbnRzIGFyZSBwZXJzaXN0ZWQgYmV0d2VlbiBwYWdlIHJlbG9hZHMuIik7Ci0gICAgICAgIGZp
bmRET01Ob2RlQnlJZCgicm9vdEVsZW1lbnQiLCB0ZXN0UmVsb2FkLnN0ZXAyKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJyb290RWxlbWVudCIsIHRlc3RSZWxvYWQuc3RlcDIp
OwogICAgIH0KICAgICB0ZXN0UmVsb2FkLnN0ZXAyID0gZnVuY3Rpb24obm9kZSkKICAgICB7CkBA
IC0xNDMsMTMgKzE0Myw2IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZmlu
ZERPTU5vZGVCeUlkKGlkLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZmluZERPTU5vZGUobnVsbCwgZnVuY3Rpb24obm9kZSkgewotICAgICAgICAgICAgcmV0dXJuIG5v
ZGUuZ2V0QXR0cmlidXRlKCJpZCIpID09PSBpZDsKLSAgICAgICAgfSwgY2FsbGJhY2spOwotICAg
IH0KLQogICAgIGZ1bmN0aW9uIGR1bXBTdGF0dXMoY2FsbEZyYW1lcykKICAgICB7CiAgICAgICAg
IEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtbGltaXRlZC1j
aGlsZHJlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtcGFuZWwtbGltaXRlZC1jaGlsZHJlbi1leHBlY3RlZC50eHQKaW5kZXggYWU2NzZlZDNl
ZGFlZjg3NmYxNTllNDVlNDQxOWNjOGQxNmM3ZjE4Ny4uMGFiODEyY2Y1NzE2NjZlZjNlODI5MTM3
NWQ0Mzg3ZTNiMWQxNjZkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxk
cmVuLWV4cGVjdGVkLnR4dApAQCAtMTAsOTMgKzEwLDU1IEBACiBUZXN0cyB0aGF0IHNyYyBhbmQg
aHJlZiBlbGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS4KIAogPT09PT09PT09
PT0gTG9hZGVkIDUgY2hpbGRyZW4gPT09PT09PT09PT0KLQotPGh0bWw+Ci08aGVhZD7igKYKLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxkaXYgaWQ9ImRhdGEiPgotPGRpdiBp
ZD0iaWQxIj4xCi08L2Rpdj4KLTxkaXYgaWQ9ImlkMiI+MgotPC9kaXY+Ci08ZGl2IGlkPSJpZDMi
PjMKLTwvZGl2PgotPGRpdiBpZD0iaWQ0Ij40Ci08L2Rpdj4KLTxkaXYgaWQ9ImlkNSI+NQotPC9k
aXY+U2hvdyBBbGwgTm9kZXMgKDUgTW9yZSkKLTwvZGl2PgotPHA+VGVzdHMgdGhhdCBzcmMgYW5k
IGhyZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdyaXR0ZW4gcHJvcGVybHkuCi08L3A+Ci08L2Jv
ZHk+Ci08L2h0bWw+CistIDxodG1sPgorICAgICsgPGhlYWQ+4oCmPC9oZWFkPgorICAgIC0gPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICAtIDxkaXYgaWQ9ImRhdGEiPgorICAgICAg
ICAgICAgICA8ZGl2IGlkPSJpZDEiPjE8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQy
Ij4yPC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMyI+MzwvZGl2PgorICAgICAgICAg
ICAgICA8ZGl2IGlkPSJpZDQiPjQ8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0iaWQ1Ij41
PC9kaXY+CisgICAgICAgICAgICAgIFNob3cgQWxsIE5vZGVzICg1IE1vcmUpCisgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgPHA+VGVzdHMgdGhhdCBzcmMgYW5kIGhyZWYgZWxlbWVudCB0YXJn
ZXRzIGFyZSByZXdyaXR0ZW4gcHJvcGVybHkuPC9wPgorICAgICAgPC9ib2R5PgorICA8L2h0bWw+
CiA9PT09PT09PT09PSBNb2RpZmllZCBjaGlsZHJlbiA9PT09PT09PT09PQotCi08aHRtbD4KLTxo
ZWFkPuKApgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPGRpdiBpZD0iZGF0
YSI+Ci08YT4KLTwvYT4KLTxkaXYgaWQ9ImlkMSI+MQotPC9kaXY+Ci08ZGl2IGlkPSJpZDMiPjMK
LTwvZGl2PgotPGRpdiBpZD0iaWQ0Ij40Ci08L2Rpdj4KLTxkaXYgaWQ9ImlkNSI+NQotPC9kaXY+
U2hvdyBBbGwgTm9kZXMgKDYgTW9yZSkKLTwvZGl2PgotPHA+VGVzdHMgdGhhdCBzcmMgYW5kIGhy
ZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdyaXR0ZW4gcHJvcGVybHkuCi08L3A+Ci08ZGl2IGNs
YXNzPSJvdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApgotPC9kaXY+Ci08ZGl2
IGNsYXNzPSJvdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApgotPC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CistIDxodG1sPgorICAgICsgPGhlYWQ+4oCmPC9oZWFkPgorICAgIC0g
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICAtIDxkaXYgaWQ9ImRhdGEiPgorICAg
ICAgICAgICAgICA8YT48L2E+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMSI+MTwvZGl2Pgor
ICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDMiPjM8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBp
ZD0iaWQ0Ij40PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNSI+NTwvZGl2PgorICAg
ICAgICAgICAgICBTaG93IEFsbCBOb2RlcyAoNiBNb3JlKQorICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgIDxwPlRlc3RzIHRoYXQgc3JjIGFuZCBocmVmIGVsZW1lbnQgdGFyZ2V0cyBhcmUgcmV3
cml0dGVuIHByb3Blcmx5LjwvcD4KKyAgICAgICAgKyA8ZGl2IGNsYXNzPSJvdXRwdXQiIHN0eWxl
PSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApjwvZGl2PgorICAgICAgPC9ib2R5PgorICA8L2h0bWw+
CiA9PT09PT09PT09PSBMb2FkZWQgYWxsIGNoaWxkcmVuID09PT09PT09PT09Ci0KLTxodG1sPgot
PGhlYWQ+4oCmCi08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08ZGl2IGlkPSJk
YXRhIj4KLTxhPgotPC9hPgotPGRpdiBpZD0iaWQxIj4xCi08L2Rpdj4KLTxkaXYgaWQ9ImlkMyI+
MwotPC9kaXY+Ci08ZGl2IGlkPSJpZDQiPjQKLTwvZGl2PgotPGRpdiBpZD0iaWQ1Ij41Ci08L2Rp
dj4KLTxkaXYgaWQ9ImlkNiI+NgotPC9kaXY+Ci08ZGl2IGlkPSJpZDciPjcKLTwvZGl2PgotPGRp
diBpZD0iaWQ4Ij44Ci08L2Rpdj4KLTxkaXYgaWQ9ImlkOSI+OQotPC9kaXY+Ci08ZGl2IGlkPSJp
ZDEwIj4xMAotPC9kaXY+Ci08YT4KLTwvYT4KLTwvZGl2PgotPHA+VGVzdHMgdGhhdCBzcmMgYW5k
IGhyZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdyaXR0ZW4gcHJvcGVybHkuCi08L3A+Ci08ZGl2
IGNsYXNzPSJvdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApgotPC9kaXY+Ci08
ZGl2IGNsYXNzPSJvdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApgotPC9kaXY+
Ci08ZGl2IGNsYXNzPSJvdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApgotPC9k
aXY+Ci08ZGl2IGNsYXNzPSJvdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApgot
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CistIDxodG1sPgorICAgICsgPGhlYWQ+4oCmPC9oZWFk
PgorICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICAtIDxkaXYgaWQ9ImRh
dGEiPgorICAgICAgICAgICAgICA8YT48L2E+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMSI+
MTwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDMiPjM8L2Rpdj4KKyAgICAgICAgICAg
ICAgPGRpdiBpZD0iaWQ0Ij40PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNSI+NTwv
ZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDYiPjY8L2Rpdj4KKyAgICAgICAgICAgICAg
PGRpdiBpZD0iaWQ3Ij43PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImlkOCI+ODwvZGl2
PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDkiPjk8L2Rpdj4KKyAgICAgICAgICAgICAgPGRp
diBpZD0iaWQxMCI+MTA8L2Rpdj4KKyAgICAgICAgICAgICAgPGE+PC9hPgorICAgICAgICAgIDwv
ZGl2PgorICAgICAgICAgIDxwPlRlc3RzIHRoYXQgc3JjIGFuZCBocmVmIGVsZW1lbnQgdGFyZ2V0
cyBhcmUgcmV3cml0dGVuIHByb3Blcmx5LjwvcD4KKyAgICAgICAgKyA8ZGl2IGNsYXNzPSJvdXRw
dXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyAiPuKApjwvZGl2PgorICAgICAgPC9ib2R5Pgor
ICA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9l
bGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYuaHRtbAppbmRleCBlODE2MmY4OTM1
YjFkOWQyNTAyZTdkYzI5ZTNiNjQ0MGY5NTZhYjMyLi5iNzg5MjkyMzQwODNlMWFiNzIzNjM5Y2Ni
MTMxMzM1NjZiMTIwYmRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZWxlbWVudHMtcGFuZWwtcmV3cml0ZS1ocmVmLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sCkBAIC05LDcg
KzksNyBAQAogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnB1c2hBbGxE
T00oc3RlcDEpOworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAxKTsK
IAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc3RydWN0dXJlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUt
ZXhwZWN0ZWQudHh0CmluZGV4IDhlZDdkZjMxNmM2OGEyYTEwM2M4MTgwMjI3NGZmMjhlMTFkYTZh
MGQuLjJiMWEyMzVmOWViOGI0ZGFkODdjMGViZDAzMjFkYTY5ODEwNThlNGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50
cy1wYW5lbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDI2ICsxLDIzIEBACiBUZXN0cyB0
aGF0IGVsZW1lbnRzIHBhbmVsIHNob3dzIGRvbSB0cmVlIHN0cnVjdHVyZS4KIAogVGV4dAotCi08
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPgotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcyI+Ci08L3NjcmlwdD4KLTxzY3JpcHQ+ZnVuY3Rpb24gdGVzdCgp
eyAgICBJbnNwZWN0b3JUZXN0LnB1c2hBbGxET00oc3RlcDEpOyAgICBmdW5jdGlvbiBzdGVwMSgp
ICAgIHsgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcExvYWRlZERPTSgpOyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsgICAgfX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBk
b20gdHJlZSBzdHJ1Y3R1cmUuCi08L3A+Ci08ZGl2IGlkPSJsZXZlbDEiPgotPGRpdiBpZD0ibGV2
ZWwyIj4iVGV4dCAgICAgICAgIgotPGRpdiBpZD0ibGV2ZWwzIj4KLTwvZGl2PgotPC9kaXY+Ci08
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KKyAgICAgIDwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8v
VzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNC9sb29zZS5kdGQiPgorLSA8aHRtbD4KKyAgICAtIDxoZWFkPgorICAgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICAtIDxzY3JpcHQ+CisgICAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKXsgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50
c1RyZWUoc3RlcDEpOyAgICBmdW5jdGlvbiBzdGVwMSgpICAgIHsgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcEVsZW1lbnRzVHJlZSgpOyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsgICAgfX0KKyAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgIDwvaGVhZD4KKyAgICAtIDxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgICA8cD5UZXN0cyB0aGF0IGVsZW1lbnRzIHBh
bmVsIHNob3dzIGRvbSB0cmVlIHN0cnVjdHVyZS48L3A+CisgICAgICAgIC0gPGRpdiBpZD0ibGV2
ZWwxIj4KKyAgICAgICAgICAgIC0gPGRpdiBpZD0ibGV2ZWwyIj4KKyAgICAgICAgICAgICAgICAg
ICJUZXh0ICAgICAgICAiCisgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJsZXZlbDMiPjwvZGl2
PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgIDwvYm9keT4K
KyAgPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZWxlbWVudHMtcGFuZWwtc3RydWN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvZWxlbWVudHMtcGFuZWwtc3RydWN0dXJlLmh0bWwKaW5kZXggODAwMTZlOTEzNWE0YjZh
Mzk1YmY0OTkwN2EyNzdjOWY1MGRiNTU3Ni4uYmNlODc1OWE4NmIwNTVmZTZmMDk1ZGZkN2U5ZDdk
YzUxMjhlM2ViNyAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vs
ZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUuaHRtbApAQCAtNywxMSArNywxMSBAQAog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnB1c2hBbGxET00oc3RlcDEp
OworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAxKTsKIAogICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcExvYWRlZERP
TSgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwteGh0bWwtc3RydWN0dXJl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1w
YW5lbC14aHRtbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGM0N2MyYTlkNzc4Yzk1YzRk
MTQ5NzcyYzhkNGJlYzM3NzhmOWJjNTYuLmNlYjJiY2ZjYmNjNTViMzg5OWQxMzdkNTk3MDEwYjE2
YjhmM2Y2ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVt
ZW50cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUtZXhwZWN0
ZWQudHh0CkBAIC00LDI5ICs0LDI2IEBAIFBhcmFncmFwaCBCUiB0ZXN0CiBOZXh0IGxpbmUKIAog
IAotCi08SFRNTCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08SGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy10ZXN0LmpzIj4KLTwvc2NyaXB0PgotPHNjcmlwdD4KLTwhW0NEQVRBW2Z1bmN0aW9u
IHRlc3QoKXsgICAgSW5zcGVjdG9yVGVzdC5wdXNoQWxsRE9NKHN0ZXAxKTsgICAgZnVuY3Rpb24g
c3RlcDEoKSAgICB7ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBMb2FkZWRET00oKTsgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7ICAgIH19XV0+Ci08L3NjcmlwdD4KLTwvSGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPiJUZXN0cyB0aGF0IGVsZW1lbnRzIHBh
bmVsIHNob3dzIFhNTCBkb20gdHJlZSBzdHJ1Y3R1cmUgd2l0aCBjbG9zaW5nIHRhZ3MgZm9yIGFs
bCBlbGVtZW50cy4iCi08L3A+Ci08aHI+Ci08L2hyPgotPHA+IlBhcmFncmFwaCBCUiB0ZXN0Igot
PGJyPgotPC9icj4iTmV4dCBsaW5lIgotPC9wPgotPCFbQ0RBVEFbIENEYXRhIENvbnRlbnQgXV0+
Ci08aW1nIGFsdD0iUmFuZG9tIEltYWdlIj4KLTwvaW1nPgotPC9ib2R5PgotPC9IVE1MPgorLSA8
SFRNTCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgLSA8SGVhZD4K
KyAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgLSA8
c2NyaXB0PgorICAgICAgICAgICAgICA8IVtDREFUQVtmdW5jdGlvbiB0ZXN0KCl7ICAgIEluc3Bl
Y3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAxKTsgICAgZnVuY3Rpb24gc3RlcDEoKSAg
ICB7ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTsgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7ICAgIH19XV0+CisgICAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICA8L0hlYWQ+CisgICAgLSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIC0g
PHA+CisgICAgICAgICAgICAgICJUZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHNob3dzIFhNTCBk
b20gdHJlZSBzdHJ1Y3R1cmUgd2l0aCBjbG9zaW5nIHRhZ3MgZm9yIGFsbCBlbGVtZW50cy4iCisg
ICAgICAgICAgPC9wPgorICAgICAgICAgIDxocj48L2hyPgorICAgICAgICAtIDxwPgorICAgICAg
ICAgICAgICAiUGFyYWdyYXBoIEJSIHRlc3QiCisgICAgICAgICAgICAgIDxicj48L2JyPgorICAg
ICAgICAgICAgICAiTmV4dCBsaW5lIgorICAgICAgICAgIDwvcD4KKyAgICAgICAgICA8IVtDREFU
QVsgQ0RhdGEgQ29udGVudCBdXT4KKyAgICAgICAgICA8aW1nIGFsdD0iUmFuZG9tIEltYWdlIj48
L2ltZz4KKyAgICAgIDwvYm9keT4KKyAgPC9IVE1MPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwteGh0bWwtc3RydWN0dXJlLnhodG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0
cnVjdHVyZS54aHRtbAppbmRleCBjNzEzMmY0MDdiYjcxYWU5NDgxZTJlYmRlNjVhYzEwMDgwMDVi
ZDczLi44MWY5YTg4YTRlYWRiNjJjNzc4NzBlY2U4NmZjNmQ0ZDg0MmM4NjhiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwteGh0bWwtc3Ry
dWN0dXJlLnhodG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50
cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUueGh0bWwKQEAgLTYsMTEgKzYsMTEgQEAKIDwhW0NEQVRB
WwogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5wdXNoQWxsRE9NKHN0ZXAx
KTsKKyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7CiAKICAgICBm
dW5jdGlvbiBzdGVwMSgpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBMb2FkZWRE
T00oKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKCk7CiAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFw
c2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGI1YWQ5YjQwNGU4YzE0YzAwOTdiNmRmNGUw
NzRlYzU4NWU1MjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CitUZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgaGFzQ2hpbGRyZW4gZmxhZyB1cG9u
IGFkZGluZyBjaGlsZHJlbiB0byBjb2xsYXBzZWQgbm9kZXMuCisKKz09PT09PT09PSBPcmlnaW5h
bCA9PT09PT09PQorICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPT09PT09PT0gQXBwZW5k
ZWQgPT09PT09PT09CisrIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1jb2xsYXBzZWQuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1jb2xsYXBzZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jOGI0YjYyZDM0YWY2YjgxNTJhY2FlZjcwNzk0ZGY2YzQ4NTVjOTg3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2Vy
dC1ub2RlLWNvbGxhcHNlZC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBhcHBlbmRDaGlsZCgpCit7CisgICAg
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAg
ICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBjaGlsZC5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFwcGVuZGVkIik7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KGNoaWxkKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGNvbnRhaW5lck5vZGU7
CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIHRl
c3REdW1wSW5pdGlhbChuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjayhub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnRhaW5lck5vZGUg
PSBub2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09
PT0gT3JpZ2luYWwgPT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElk
KCJjb250YWluZXIiLCBjYWxsYmFjayk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24g
dGVzdEFwcGVuZChuZXh0KSB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09
PT09IEFwcGVuZGVkID09PT09PT09PSIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJhcHBlbmRDaGlsZCgpIiwgY2FsbGJhY2spOworICAgICAgICB9CisgICAgXSk7Cit9CisKKzwv
c2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3Rz
IHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBoYXNDaGlsZHJlbiBmbGFnIHVwb24gYWRkaW5n
IGNoaWxkcmVuIHRvIGNvbGxhcHNlZCBub2Rlcy4KKzwvcD4KKworPGRpdiBpZD0iY29udGFpbmVy
Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYw
NjVmMzU5NTZkZGYxZjUxNTZiODdkYTFjOTExNDIyMWJkMmFmNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzMyBAQAorVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0
cmVlIHN0cnVjdHVyZSB1cG9uIG5vZGUgaW5zZXJ0aW9uLgorCis9PT09PT09PT0gT3JpZ2luYWwg
PT09PT09PT0KKy0gPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMSI+
PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hp
bGQzIj48L2Rpdj4KKyAgPC9kaXY+Cis9PT09PSBJbnNlcnRlZCBiZWZvcmUgPT09PT0KKy0gPGRp
diBpZD0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkLWJlZm9yZSI+PC9kaXY+Cisg
ICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rp
dj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+CisgIDwvZGl2PgorPT09PT0gSW5zZXJ0
ZWQgbWlkZGxlID09PT09CistIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlkPSJj
aGlsZC1iZWZvcmUiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KKyAgICAg
IDxkaXYgaWQ9ImNoaWxkLW1pZGRsZSI+PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwv
ZGl2PgorICAgICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KKyAgPC9kaXY+Cis9PT09PT09PSBB
cHBlbmRlZCA9PT09PT09PT0KKy0gPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgaWQ9
ImNoaWxkLWJlZm9yZSI+PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgorICAg
ICAgPGRpdiBpZD0iY2hpbGQtbWlkZGxlIj48L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+
PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgorICAgICAgPGRpdiBpZD0iY2hp
bGQtYWZ0ZXIiPjwvZGl2PgorICA8L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvaW5zZXJ0LW5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzVmOWI1YjM3ZWIwODA0YWJh
NWNhMzFiYzg5YjFjYTI3MmVmMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBp
bnNlcnRCZWZvcmVGaXJzdCgpCit7CisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoaWxkLWJlZm9y
ZSIpOworICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hpbGQsIGNvbnRhaW5lci5maXJzdENo
aWxkKTsKK30KKworZnVuY3Rpb24gaW5zZXJ0Tm9kZSgpCit7CisgICAgdmFyIGNvbnRhaW5lciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgICB2YXIgY2hpbGQyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMiIpOworICAgIHZhciBjaGlsZCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgiaWQiLCAi
Y2hpbGQtbWlkZGxlIik7CisgICAgY29udGFpbmVyLmluc2VydEJlZm9yZShjaGlsZCwgY2hpbGQy
KTsKK30KKworZnVuY3Rpb24gYXBwZW5kQ2hpbGQoKQoreworICAgIHZhciBjb250YWluZXIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgdmFyIGNoaWxkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgY2hpbGQuc2V0QXR0cmlidXRlKCJpZCIs
ICJjaGlsZC1hZnRlciIpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjaGlsZCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBjb250YWluZXJOb2RlOworCisgICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0RHVtcEluaXRpYWwo
bmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZSkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlID0gSW5zcGVjdG9yVGVz
dC5leHBhbmRlZE5vZGVXaXRoSWQoImNvbnRhaW5lciIpOworCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2Rl
KTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShjYWxsYmFjayk7CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdEluc2VydEJlZm9yZShuZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IEluc2VydGVkIGJlZm9yZSA9PT09PSIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWlu
ZXJOb2RlKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJpbnNlcnRCZWZvcmVGaXJzdCgpIiwg
Y2FsbGJhY2spOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRNaWRk
bGUobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PSBJbnNlcnRlZCBtaWRkbGUgPT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgiaW5zZXJ0Tm9kZSgpIiwgY2FsbGJhY2spOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RBcHBlbmQobmV4dCkgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT09PT09PSBBcHBlbmRlZCA9PT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAgbmV4
dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiYXBwZW5kQ2hpbGQoKSIsIGNhbGxiYWNrKTsKKyAgICAgICAgfQorICAgIF0pOworfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitU
ZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24g
bm9kZSBpbnNlcnRpb24uCis8L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBpZD0iY2hp
bGQxIj48L2Rpdj48ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+
PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL21vZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQ0YjJmOTE2MzY0NWRlYzdiODQ3ZTcwZDZmMzljOWMzMGUwNTdmNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRh
dGVzIGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIGNoYW5nZXMgdG8gY2hhcmFjdGVycy4KKworQmFy
Cis9PT09PT09PT0gT3JpZ2luYWwgPT09PT09PT0KKyAgPGRpdiBpZD0ibm9kZSI+Rm9vPC9kaXY+
Cis9PT09PSBNdXRhdGVkIHRleHQgbm9kZSA9PT09PQorICA8ZGl2IGlkPSJub2RlIj5CYXI8L2Rp
dj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21vZGlmeS1j
aGFyZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21vZGlmeS1jaGFy
ZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZWZlYjU5MjJhZDQ1MTAzY2FmYmZiODYxYzAyNDViMzcw
OTJlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
bW9kaWZ5LWNoYXJkYXRhLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBtb2RpZnlDaGFycygp
Cit7CisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOworICAg
IG5vZGUuZmlyc3RDaGlsZC50ZXh0Q29udGVudCA9ICJCYXIiOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICB2YXIgdGFyZ2V0Tm9kZTsKKworICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1
aXRlKFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdER1bXBJbml0aWFsKG5leHQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG5vZGU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKKyAgICAg
ICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm5vZGUiLCBjYWxsYmFjayk7CisgICAgICAgIH0sCisKKyAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldEF0dHJpYnV0ZShuZXh0KQorICAgICAgICB7CisgICAgICAg
ICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IE11dGF0ZWQgdGV4dCBub2RlID09PT09Iik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRhcmdldE5v
ZGUpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeUNoYXJzKCkiLCBjYWxsYmFjayk7
CisgICAgICAgIH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVz
IGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIGNoYW5nZXMgdG8gY2hhcmFjdGVycy4KKzwvcD4KKwor
PGRpdiBpZD0ibm9kZSI+Rm9vPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1u
b2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmJiOGIzMTBiOTgzOWM4ODk1MzhjZjhiODg4
MTEzNzM5MzU5N2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgZG9lcyBub3QgcmVjZWl2ZSBldmVudHMgdXBvbiBj
aGFuZ2VzIHRvIHRoZSB1bmRpc2NvdmVyZWQgbm9kZXMuCisKKz09PT09PT09PSBPcmlnaW5hbCA9
PT09PT09PQorI2RvY3VtZW50WzFdCisgICAgSFRNTFsyXQorICAgICAgICBIRUFEWzNdCisgICAg
ICAgIEJPRFlbNF0KKyAgICAgICAgICAgIFBbNV0KKyAgICAgICAgICAgICAgICBbNl0KKyAgICAg
ICAgICAgIERJVls3XQorRE9NQWdlbnQgZXZlbnQgZmlyZWQuIFNob3VsZCBvbmx5IGhhcHBlbiBv
bmNlIGZvciBvdXRwdXQgbm9kZTogRE9NTm9kZUluc2VydGVkIERJViN1bmRlZmluZWQKK0FwcGVu
ZGVkCitSZW1vdmVkCitBdHRyaWJ1dGUgbW9kaWZpZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGUyZWE4ODQyMmFiYTlmZTVlYmMxMDY3MzQzODZhNjNlOGRmNmMzNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2Rl
Lmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBhcHBlbmRDaGlsZCgpCit7CisgICAgdmFyIGhp
ZGRlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaWRkZW4iKTsKKyAgICB2YXIgY2hpbGQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBjaGlsZC5zZXRBdHRyaWJ1dGUo
ImlkIiwgImFwcGVuZGVkIik7CisgICAgaGlkZGVuLmFwcGVuZENoaWxkKGNoaWxkKTsKK30KKwor
ZnVuY3Rpb24gcmVtb3ZlQ2hpbGQoKQoreworICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJhcHBlbmRlZCIpOworICAgIGNoaWxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
Y2hpbGQpOworfQorCitmdW5jdGlvbiBtb2RpZnlBdHRyaWJ1dGUoKQoreworICAgIHZhciBoaWRk
ZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGlkZGVuIik7CisgICAgaGlkZGVuLnNldEF0
dHJpYnV0ZSgiZm9vIiwgImJhciIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBmdW5j
dGlvbiBsaXN0ZW5lcih0eXBlLCBldmVudCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJET01BZ2VudCBldmVudCBmaXJlZC4gU2hvdWxkIG9ubHkgaGFwcGVuIG9uY2Ug
Zm9yIG91dHB1dCBub2RlOiAiICsgdHlwZSArICIgIiArIGV2ZW50LnRhcmdldC5ub2RlTmFtZSAr
ICIjIiArIGV2ZW50LnRhcmdldC5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgIH0KKworICAgIFdl
Ykluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01BdHRyTW9k
aWZpZWQiLCBsaXN0ZW5lci5iaW5kKHRoaXMsICJET01BdHRyTW9kaWZpZWQiKSk7CisgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3Rl
ckRhdGFNb2RpZmllZCIsIGxpc3RlbmVyLmJpbmQodGhpcywgIkRPTUNoYXJhY3RlckRhdGFNb2Rp
ZmllZCIpKTsKKyAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgbGlzdGVuZXIuYmluZCh0aGlzLCAiRE9NTm9kZUluc2Vy
dGVkIikpOworICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJET01Ob2RlUmVtb3ZlZCIsIGxpc3RlbmVyLmJpbmQodGhpcywgIkRPTU5vZGVSZW1vdmVk
IikpOworCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9
PT09PT09PSIpOworICAgIEluc3BlY3RvclRlc3QuZHVtcERPTUFnZW50VHJlZSgpOworCisgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiYXBwZW5kQ2hpbGQoKSIsIHN0ZXAxKTsKKwor
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJBcHBlbmRlZCIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJy
ZW1vdmVDaGlsZCgpIiwgc3RlcDIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmVkIik7CisgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeUF0dHJpYnV0ZSgpIiwgc3RlcDMp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBdHRyaWJ1dGUgbW9kaWZpZWQiKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwg
ZG9lcyBub3QgcmVjZWl2ZSBldmVudHMgdXBvbiBjaGFuZ2VzIHRvIHRoZSB1bmRpc2NvdmVyZWQg
bm9kZXMuCis8L3A+CisKKzxkaXY+Cis8ZGl2IGlkPSJoaWRkZW4iPgorPC9kaXY+Cis8L2Rpdj4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL3JlbW92ZS1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9yZW1vdmUtbm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFkODU3ZGFjNDU2
MWRlYjk5NGE5Y2I1MTUxYzk3M2I3YTQyY2U1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZW1vdmUtbm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyOCBAQAorVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0cmVlIHN0cnVj
dHVyZSB1cG9uIG5vZGUgcmVtb3ZhbC4KKworPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Cist
IDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgorICAg
ICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+
CisgICAgICA8ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PgorICA8L2Rpdj4KKz09PT09IFJlbW92ZWQg
Zmlyc3QgPT09PT0KKy0gPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgaWQ9ImNoaWxk
MiI+PC9kaXY+CisgICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgorICAgICAgPGRpdiBpZD0i
Y2hpbGQ0Ij48L2Rpdj4KKyAgPC9kaXY+Cis9PT09PSBSZW1vdmVkIG1pZGRsZSA9PT09PQorLSA8
ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KKyAgICAg
IDxkaXYgaWQ9ImNoaWxkNCI+PC9kaXY+CisgIDwvZGl2PgorPT09PT0gUmVtb3ZlZCBsYXN0ID09
PT09CistIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2
PgorICA8L2Rpdj4KKz09PT09IFJlbW92ZWQgdGhlIG9ubHkgPT09PT0KKy0gPGRpdiBpZD0iY29u
dGFpbmVyIj4KKyAgPC9kaXY+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9yZW1vdmUtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L3JlbW92ZS1ub2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM1NjYzY2FjMjAzNjQwNGFlNTE4M2I4NmRk
OTYzY2I4YjY0ZmU3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9yZW1vdmUtbm9kZS5odG1sCkBAIC0wLDAgKzEsODggQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gcmVtb3ZlTm9k
ZShpZCkKK3sKKyAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7Cisg
ICAgY2hpbGQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjaGlsZCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHZhciBjb250YWluZXJOb2RlOworCisgICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0RHVtcEluaXRpYWwobmV4dCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZSkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5v
ZGVXaXRoSWQoImNvbnRhaW5lciIpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKKyAgICAgICAg
ICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGFuZEVsZW1lbnRzVHJlZShjYWxsYmFjayk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVu
Y3Rpb24gdGVzdFJlbW92ZUZpcnN0KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09PT0gUmVtb3ZlZCBmaXJzdCA9PT09PSIpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKKyAgICAg
ICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVOb2RlKCdjaGlsZDEnKSIsIGNhbGxiYWNrKTsKKyAg
ICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlTWlkZGxlKG5leHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gUmVtb3ZlZCBtaWRk
bGUgPT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1Ry
ZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlTm9kZSgn
Y2hpbGQzJykiLCBjYWxsYmFjayk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVz
dFJlbW92ZUxhc3QobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT09PSBSZW1vdmVkIGxhc3QgPT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7CisgICAgICAgICAgICAgICAg
bmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgicmVtb3ZlTm9kZSgnY2hpbGQ0JykiLCBjYWxsYmFjayk7CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZVRoZU9ubHkobmV4dCkKKyAgICAgICAgeworICAg
ICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBSZW1vdmVkIHRoZSBvbmx5ID09PT09
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRh
aW5lck5vZGUpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJlbW92ZU5vZGUoJ2NoaWxkMicp
IiwgY2FsbGJhY2spOworICAgICAgICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgZWxlbWVudHMg
cGFuZWwgdXBkYXRlcyBkb20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiBub2RlIHJlbW92YWwuCis8L3A+
CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBpZD0iY2hpbGQxIj48L2Rpdj48ZGl2IGlkPSJj
aGlsZDIiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+PGRpdiBpZD0iY2hpbGQ0Ij48L2Rp
dj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9zZXQtYXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgzMzkyY2E1OWU2N2Y5
OWEyNjc2OWUzMDc3ODNmYTUxNzk5ZTRjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSw3MCBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiBzZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCit7CisgICAgdmFyIG5vZGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOworICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQXR0cmlidXRlKG5hbWUpCit7CisgICAgdmFyIG5v
ZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOworICAgIG5vZGUucmVtb3ZlQXR0
cmlidXRlKG5hbWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgdGFyZ2V0Tm9k
ZTsKKworICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKKyAgICAgICAgZnVuY3Rpb24g
dGVzdER1bXBJbml0aWFsKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNh
bGxiYWNrKG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9
IG5vZGU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09
PSBPcmlnaW5hbCA9PT09PT09PSIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm5v
ZGUiLCBjYWxsYmFjayk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldEF0
dHJpYnV0ZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT09IFNldCBhdHRyaWJ1dGUgPT09PT0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0Tm9kZSk7CisgICAgICAgICAgICAgICAgbmV4dCgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgic2V0QXR0cmlidXRlKCduYW1lJywgJ3ZhbHVlJykiLCBjYWxsYmFjayk7CisgICAgICAgIH0s
CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZUF0dHJpYnV0ZShuZXh0KSB7CisgICAgICAg
ICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBSZW1vdmVkIGF0dHJpYnV0ZSA9PT0iKTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0Tm9kZSk7
CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlQXR0cmlidXRlKCduYW1lJykiLCBjYWxs
YmFjayk7CisgICAgICAgIH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1
cGRhdGVzIGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIHNldHRpbmcgYXR0cmlidXRlLgorPC9wPgor
Cis8ZGl2IGlkPSJub2RlIj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV4cGVjdGVkLnR4
dAppbmRleCAwMzNkNjljODZkOTAyOTk0OTAwMGU5Nzg0Njg5NmM1YzVjMmY0ZDQxLi43ODcxMzI1
ZTIwM2ZlMTYzZDJhMGRhYWRkMjhiMGVmMWJiN2MyNDZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV4cGVjdGVkLnR4dApAQCAt
MTcsNyArMTcsNyBAQCBTaWRlYmFyIGNyZWF0ZWQKICAgICBzZXRIZWlnaHQgOiA8ZnVuY3Rpb24+
CiB9CiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXh0ZW5zaW9uV2F0Y2hTaWRlYmFyRXhw
cmVzc2lvbgotU2lkZWJhciBjb250ZW50OiB0aXRsZWYwOiAiZXhwcmVzc2lvbiJmMTogdW5kZWZp
bmVkZjI6IG51bGxmMzogT2JqZWN0ZjQ6IEFycmF5WzBdZjU6IEFycmF5WzNdZjY6IE9iamVjdGY3
OiA0MmY4OiBMb2NhdGlvbmY5OiBIVE1MQ29sbGVjdGlvblsxOF1mMTA6IGZ1bmN0aW9uICgpIHt9
X19wcm90b19fOiBPYmplY3QKK1NpZGViYXIgY29udGVudDogdGl0bGVmMDogImV4cHJlc3Npb24i
ZjE6IHVuZGVmaW5lZGYyOiBudWxsZjM6IE9iamVjdGY0OiBBcnJheVswXWY1OiBBcnJheVszXWY2
OiBPYmplY3RmNzogNDJmODogTG9jYXRpb25mOTogSFRNTENvbGxlY3Rpb25bMl1mMTA6IGZ1bmN0
aW9uICgpIHt9X19wcm90b19fOiBPYmplY3QKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RF
eHRlbnNpb25XYXRjaFNpZGViYXJPYmplY3QKIFdhdGNoIHNpZGViYXIgY3JlYXRlZCwgY2FsbGJh
Y2sgYXJndW1lbnRzIGR1bXAgZm9sbG93czoKIHsK
</data>
<flag name="review"
          id="74138"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>