<?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>129217</bug_id>
          
          <creation_ts>2014-02-22 15:21:20 -0800</creation_ts>
          <short_desc>Web Inspector: convert model tests and inspector-test.js to use Test.html</short_desc>
          <delta_ts>2014-03-12 15:19:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129190</dependson>
    
    <dependson>129642</dependson>
          <blocked>129744</blocked>
    
    <blocked>130145</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>chrisjshull</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>sergio</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>983634</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-22 15:21:20 -0800</bug_when>
    <thetext>Once https://bugs.webkit.org/show_bug.cgi?id=129190 is fixed, we can remove the special file-loading code from the InspectorTest.js.

I would also like to move model/controller tests (those that use a full-blown inspector instead of just listeners for the raw protocol) to LayoutTests/inspector, and use a different inspector-test.js harness there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983635</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-22 15:21:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/16142670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986634</commentid>
    <comment_count>2</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-03 18:25:35 -0800</bug_when>
    <thetext>I am mostly done with this, but it may be blocked by flakiness of inspector/test-harness-trivially-works.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987860</commentid>
    <comment_count>3</comment_count>
      <attachid>226039</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-06 14:27:01 -0800</bug_when>
    <thetext>Created attachment 226039
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988961</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-10 11:12:33 -0700</bug_when>
    <thetext>Ready for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989791</commentid>
    <comment_count>5</comment_count>
      <attachid>226039</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-03-12 12:10:11 -0700</bug_when>
    <thetext>Comment on attachment 226039
the patch

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

&gt; Source/WebInspectorUI/UserInterface/Test.html:87
&gt; +    &lt;script src=&quot;Models/Profile.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/ProfileNode.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/ProfileNodeCall.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/TimelineRecord.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/LayoutTimelineRecord.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/ResourceTimelineRecord.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/ScriptTimelineRecord.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/Timeline.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/NetworkTimeline.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/SourceCodeTimeline.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/TimelineMarker.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;Models/TimelineRecording.js&quot;&gt;&lt;/script&gt;

Should be sorted (and match Main.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989824</commentid>
    <comment_count>6</comment_count>
      <attachid>226039</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 13:55:39 -0700</bug_when>
    <thetext>Comment on attachment 226039
the patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Test.html:87
&gt;&gt; +    &lt;script src=&quot;Models/TimelineRecording.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; Should be sorted (and match Main.html).

The subclassing tripped me up, will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989825</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 13:58:16 -0700</bug_when>
    <thetext>I will land this but the inspector directory is marked as skipped until https://webkit.org/b/129642 is fixed, as that assert could be hit on any test converted in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989840</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 15:19:50 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/165501&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226039</attachid>
            <date>2014-03-06 14:27:01 -0800</date>
            <delta_ts>2014-03-12 13:55:39 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-129217-20140306142742.patch</filename>
            <type>text/plain</type>
            <size>109803</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAx
MWZmNWI4ZGYwODU1MWNjZjY3YmVmNmQyNjI3YmZjZDcwZTI4YWYyLi42MmZmNTg1NDkwNzQ3NzJi
MTkwMDE5ZDcwYWVhYWYwOTYzN2I1MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxNC0wMy0wNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb252ZXJ0IG1vZGVsIHRlc3RzIGFuZCBpbnNwZWN0b3It
dGVzdC5qcyB0byB1c2UgVGVzdC5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNaXNjZWxsYW5lb3VzIGNoYW5nZXMgdG8gbWFrZSB0aGUgaW5zcGVj
dG9yIG1vZGVsIHRlc3QgaGFybmVzcyB3b3JrIHdlbGwgaW4KKyAgICAgICAgc2NlbmFyaW9zIHdo
ZXJlIHRoZSB0ZXN0IHBhZ2UgbXVzdCBuYXZpZ2F0ZSBvciByZWxvYWQuIEFsc28gaW1wcm92ZSBy
ZXBvcnRpbmcKKyAgICAgICAgdGVzdCBmYWlsdXJlcyBzbyB0aGF0IG1lc3NhZ2VzIHdpbGwgYmUg
ZHVtcGVkIGNvcnJlY3RseSBldmVuIHdoZW4gYW4gZXhjZXB0aW9uCisgICAgICAgIGlzIHRocm93
biBpbiB0aGUgSW5zcGVjdG9yIG9yIHRoZSB0ZXN0IHRpbWVzIG91dC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQmFzZS9UZXN0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxvYWRlZCk6
IHJlZ2lzdGVyIG5ldyBtYW5hZ2VycyBhbmQgb2JzZXJ2ZXJzLgorICAgICAgICAoSW5zcGVjdG9y
VGVzdC5sb2cpOiBTdHJpbmdpZnkgdGhlIGFyZ3VtZW50IGlmIGl0J3MgYW4gb2JqZWN0LgorICAg
ICAgICAoSW5zcGVjdG9yVGVzdC5hc3NlcnQpOiBTdHJpbmdpZnkgdGhlIGFyZ3VtZW50IGlmIGl0
J3MgYW4gb2JqZWN0LiBEb24ndCBsb2cKKyAgICAgICAgdW5sZXNzIHRoZSBjb25kaXRpb24gaXMg
ZmFsc2UuCisKKyAgICAgICAgKEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCk6IEFkZGVkLiBMaWtl
IGFzc2VydCgpLCBidXQgYWx3YXlzIGxvZ3MuCisgICAgICAgIChJbnNwZWN0b3JUZXN0LmRlYnVn
TG9nKTogRXNjYXBlIGFuZCB1bmVzY2FwZSB0aGUgc3RyaW5nIHByb3Blcmx5LgorICAgICAgICAo
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QpOiBGaXggdGVhcmRvd24gc28gbWVzc2FnZXMgYXJl
IG5vdCBsb3N0LgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSk6IEFjY2Vw
dCBhIGNhbGxiYWNrIGFyZ3VtZW50LgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQp
OiBEb24ndCByZWJ1aWxkIHJlc3VsdHMgd2hlbiBhZGRpbmcgYSBuZXcgcmVzdWx0LgorICAgICAg
ICAoSW5zcGVjdG9yVGVzdC5fcmVzZW5kUmVzdWx0cy5kZWNyZW1lbnRQZW5kaW5nUmVzcG9uc2VD
b3VudCk6IEFkZGVkLgorCisgICAgICAgIChJbnNwZWN0b3JUZXN0Ll9yZXNlbmRSZXN1bHRzKTog
QWRkZWQuIFRyYWNrIHRoZSBudW1iZXIgb2YgcGVuZGluZworICAgICAgICByZXNwb25zZXMgYW5k
IGludm9rZSBhIGdpdmVuIGNhbGxiYWNrIHdoZW4gZXZlcnl0aGluZyBoYXMgYmVlbiByZXNlbnQu
CisKKyAgICAgICAgKEluc3BlY3RvclRlc3QudGVzdFBhZ2VEaWRMb2FkKTogUmVuYW1lZCBmcm9t
IGBwYWdlTG9hZGVkYC4KKyAgICAgICAgKEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSk6IEFkZGVk
LgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5yZXBvcnRVbmNhdWdodEV4Y2VwdGlvbik6IFByZXZl
bnQgdGhlIGRlZmF1bHQgaGFuZGxlciBmcm9tIHJ1bm5pbmcuCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kLmpzOgorICAgICAgICAoSW5zcGVjdG9yQmFj
a2VuZENsYXNzLnByb3RvdHlwZS5kaXNwYXRjaCk6IFJlcG9ydCB1bmNhdWdodCBleGNlcHRpb25z
IHdoZW4gZGlzcGF0Y2hpbmcKKyAgICAgICAgbWVzc2FnZXMgb24gdGhlIGluc3BlY3RvciBwYWdl
IHdpdGhvdXQgYmxvd2luZyBhd2F5IHRoZSBlbnRpcmUgY2FsbCBzdGFjay4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOiBBZGQgZmlsZXMgdXNlZCBieSBOZXR3b3JrIGFuZCBU
aW1lbGluZSBkb21haW5zLgorCiAyMDE0LTAzLTA0ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIEluc3BlY3RvciBkb2VzIG5vdCByZXN0b3JlIGJyZWFrcG9pbnRzIGFm
dGVyIGEgcGFnZSByZWxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvVGVzdC5qcwppbmRleCAyMzJlZTM0YTVhODdiYzA4ZTAxMTU4NjYzNzQ2YWMyNDc1
NzkxNWEzLi42OTQyZjYwMGRhMTM1YjcyODZjZTNmNjlhZTZkMDUwNDA2YWQ1ZWRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1Rlc3QuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXN0LmpzCkBAIC0z
MCw3ICszMCw5IEBAIFdlYkluc3BlY3Rvci5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3Rlckluc3BlY3RvckRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5J
bnNwZWN0b3JPYnNlcnZlcik7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlclBhZ2VEaXNw
YXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUGFnZU9ic2VydmVyKTsKICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRE9NRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLkRPTU9ic2VydmVyKTsK
KyAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyTmV0d29ya0Rpc3BhdGNoZXIobmV3IFdlYklu
c3BlY3Rvci5OZXR3b3JrT2JzZXJ2ZXIpOwogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJE
ZWJ1Z2dlckRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck9ic2VydmVyKTsKKyAg
ICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyVGltZWxpbmVEaXNwYXRjaGVyKG5ldyBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPYnNlcnZlcik7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNT
U0Rpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5DU1NPYnNlcnZlcik7CiAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlclJ1bnRpbWVEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUnVudGlt
ZU9ic2VydmVyKTsKIApAQCAtMzksNiArNDEsNyBAQCBXZWJJbnNwZWN0b3IubG9hZGVkID0gZnVu
Y3Rpb24oKQogICAgIHRoaXMuZG9tVHJlZU1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVRy
ZWVNYW5hZ2VyOwogICAgIHRoaXMuY3NzU3R5bGVNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1hbmFnZXI7CiAgICAgdGhpcy5ydW50aW1lTWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0
b3IuUnVudGltZU1hbmFnZXI7CisgICAgdGhpcy50aW1lbGluZU1hbmFnZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTWFuYWdlcjsKICAgICB0aGlzLmRlYnVnZ2VyTWFuYWdlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyOwogICAgIHRoaXMucHJvYmVNYW5hZ2VyID0gbmV3
IFdlYkluc3BlY3Rvci5Qcm9iZU1hbmFnZXI7CiAKQEAgLTcyLDYzICs3NSw5MiBAQCBJbnNwZWN0
b3JUZXN0ID0ge307CiAvLyBBcHBlbmRzIGEgbG9nIG1lc3NhZ2UgaW4gdGhlIHRlc3QgZG9jdW1l
bnQuCiBJbnNwZWN0b3JUZXN0LmxvZyA9IGZ1bmN0aW9uKG1lc3NhZ2UpCiB7Ci0gICAgdGhpcy5l
dmFsdWF0ZUluUGFnZSgiSW5zcGVjdG9yVGVzdFByb3h5LmFkZFJlc3VsdCgiICsgSlNPTi5zdHJp
bmdpZnkobWVzc2FnZSkgKyAiKSIpOworICAgIHZhciBzdHJpbmdpZmllZE1lc3NhZ2UgPSB0eXBl
b2YgbWVzc2FnZSAhPT0gIm9iamVjdCIgPyBtZXNzYWdlIDogSlNPTi5zdHJpbmdpZnkobWVzc2Fn
ZSk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3RyaW5naWZpZWRNZXNzYWdlKTsKIH0K
IAotLy8gQXBwZW5kcyBhbiBhc3NlcnQgbWVzc2FnZSBpbiB0aGUgdGVzdCBkb2N1bWVudC4KKy8v
IEFwcGVuZHMgYSBtZXNzYWdlIGluIHRoZSB0ZXN0IGRvY3VtZW50IG9ubHkgaWYgdGhlIGNvbmRp
dGlvbiBpcyBmYWxzZS4KIEluc3BlY3RvclRlc3QuYXNzZXJ0ID0gZnVuY3Rpb24oY29uZGl0aW9u
LCBtZXNzYWdlKQogewotICAgIHZhciBzdGF0dXMgPSBjb25kaXRpb24gPyAiUEFTUyIgOiAiRkFJ
TCI7Ci0gICAgdGhpcy5ldmFsdWF0ZUluUGFnZSgiSW5zcGVjdG9yVGVzdFByb3h5LmFkZFJlc3Vs
dCgiICsgSlNPTi5zdHJpbmdpZnkoc3RhdHVzICsgIjogIiArIG1lc3NhZ2UpICsgIikiKTsKKyAg
ICBpZiAoY29uZGl0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB2YXIgc3RyaW5naWZpZWRN
ZXNzYWdlID0gdHlwZW9mIG1lc3NhZ2UgIT09ICJvYmplY3QiID8gbWVzc2FnZSA6IEpTT04uc3Ry
aW5naWZ5KG1lc3NhZ2UpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBU1NFUlQ6ICIg
KyBzdHJpbmdpZmllZE1lc3NhZ2UpOworfQorCisvLyBBcHBlbmRzIGEgbWVzc2FnZSBpbiB0aGUg
dGVzdCBkb2N1bWVudCB3aGV0aGVyIHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvciBub3QuCitJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQgPSBmdW5jdGlvbihjb25kaXRpb24sIG1lc3NhZ2UpCit7Cisg
ICAgdmFyIHByZWZpeCA9IGNvbmRpdGlvbiA/ICJQQVNTIiA6ICJGQUlMIjsKKyAgICB2YXIgc3Ry
aW5naWZpZWRNZXNzYWdlID0gdHlwZW9mIG1lc3NhZ2UgIT09ICJvYmplY3QiID8gbWVzc2FnZSA6
IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHBy
ZWZpeCArICI6ICIgKyBzdHJpbmdpZmllZE1lc3NhZ2UpOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9u
IHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gZGVidWcgdGVzdHMgYW5kIG5vdCB0byBwcm9kdWNlIG5v
cm1hbCB0ZXN0IG91dHB1dC4KIEluc3BlY3RvclRlc3QuZGVidWdMb2cgPSBmdW5jdGlvbihtZXNz
YWdlKQogewotICAgIHRoaXMuZXZhbHVhdGVJblBhZ2UoIkluc3BlY3RvclRlc3RQcm94eS5kZWJ1
Z0xvZygiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkgKyAiKSIpOworICAgIHRoaXMuZXZhbHVh
dGVJblBhZ2UoIkluc3BlY3RvclRlc3RQcm94eS5kZWJ1Z0xvZyh1bmVzY2FwZSgiICsgZXNjYXBl
KEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKSArICIpKSIpOwogfQogCiBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnJ1bkFmdGVy
UGVuZGluZ0Rpc3BhdGNoZXModGhpcy5ldmFsdWF0ZUluUGFnZS5iaW5kKHRoaXMsICJJbnNwZWN0
b3JUZXN0UHJveHkuY29tcGxldGVUZXN0KCkiKSk7CisgICAgZnVuY3Rpb24gc2lnbmFsQ29tcGxl
dGlvblRvVGVzdFBhZ2UoKSB7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQucnVuQWZ0ZXJQZW5k
aW5nRGlzcGF0Y2hlcyh0aGlzLmV2YWx1YXRlSW5QYWdlLmJpbmQodGhpcywgIkluc3BlY3RvclRl
c3RQcm94eS5jb21wbGV0ZVRlc3QoKSIpKTsKKyAgICB9CisKKyAgICAvLyBXYWl0IGZvciByZXN1
bHRzIHRvIGJlIHJlc2VudCBiZWZvcmUgcmVxdWVzdGluZyBjb21wbGV0ZVRlc3QoKS4gT3RoZXJ3
aXNlLCBtZXNzYWdlcyB3aWxsIGJlCisgICAgLy8gcXVldWVkIGFmdGVyIHBlbmRpbmcgZGlzcGF0
Y2hlcyBydW4gdG8gemVybyBhbmQgdGhlIHRlc3QgcGFnZSB3aWxsIHF1aXQgYmVmb3JlIHByb2Nl
c3NpbmcgdGhlbS4KKyAgICBpZiAodGhpcy5fc2hvdWxkUmVzZW5kUmVzdWx0cykKKyAgICAgICAg
dGhpcy5fcmVzZW5kUmVzdWx0cyhzaWduYWxDb21wbGV0aW9uVG9UZXN0UGFnZS5iaW5kKHRoaXMp
KTsKKyAgICBlbHNlCisgICAgICAgIHNpZ25hbENvbXBsZXRpb25Ub1Rlc3RQYWdlLmNhbGwodGhp
cyk7CiB9CiAKLUluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UgPSBmdW5jdGlvbihjb2RlU3Ry
aW5nKQorSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSA9IGZ1bmN0aW9uKGNvZGVTdHJpbmcs
IGNhbGxiYWNrKQogewogICAgIC8vIElmIHdlIGxvYWQgdGhpcyBwYWdlIG91dHNpZGUgb2YgdGhl
IGluc3BlY3Rvciwgb3IgaGl0IGFuIGVhcmx5IGVycm9yIHdoZW4gbG9hZGluZwogICAgIC8vIHRo
ZSB0ZXN0IGZyb250ZW5kLCB0aGVuIGRlZmVyIGV2YWx1YXRpbmcgdGhlIGNvbW1hbmRzIChpbmRl
ZmluaXRlbHkgaW4gdGhlIGZvcm1lciBjYXNlKS4KICAgICBpZiAoIVJ1bnRpbWVBZ2VudCkgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0Ll9vcmlnaW5hbENvbnNvbGVNZXRob2RzWyJlcnJvciJdKCJU
cmllZCB0byBldmFsdWF0ZSBpbiB0ZXN0IHBhZ2UsIGJ1dCBjb25uZWN0aW9uIG5vdCB5ZXQgZXN0
YWJsaXNoZWQ6IiwgY29kZVN0cmluZyk7CisgICAgICAgIHRoaXMuX29yaWdpbmFsQ29uc29sZU1l
dGhvZHNbImVycm9yIl0oIlRyaWVkIHRvIGV2YWx1YXRlIGluIHRlc3QgcGFnZSwgYnV0IGNvbm5l
Y3Rpb24gbm90IHlldCBlc3RhYmxpc2hlZDoiLCBjb2RlU3RyaW5nKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShjb2RlU3RyaW5nLCAidGVzdCIs
IGZhbHNlKTsKKyAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUuaW52b2tlKHtleHByZXNzaW9uOiBj
b2RlU3RyaW5nLCBvYmplY3RHcm91cDogInRlc3QiLCBpbmNsdWRlQ29tbWFuZExpbmVBUEk6IGZh
bHNlfSwgY2FsbGJhY2spOwogfQogCiBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCA9IGZ1bmN0aW9u
KHRleHQpCiB7CiAgICAgdGhpcy5fcmVzdWx0cy5wdXNoKHRleHQpOwotICAgIC8vIElmIHRoZSB0
ZXN0IHBhZ2UgcmVsb2FkZWQsIHRoZW4gd2UgbmVlZCB0byByZS1hZGQgdGhlIHJlc3VsdHMgZnJv
bSBiZWZvcmUgdGhlIG5hdmlnYXRpb24uCi0gICAgaWYgKHRoaXMuX3Nob3VsZFJlYnVpbGRSZXN1
bHRzKSB7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9zaG91bGRSZWJ1aWxkUmVzdWx0czsKKyAgICB0
aGlzLmV2YWx1YXRlSW5QYWdlKCJJbnNwZWN0b3JUZXN0UHJveHkuYWRkUmVzdWx0KHVuZXNjYXBl
KCciICsgZXNjYXBlKHRleHQpICsgIicpKSIpOworfQogCi0gICAgICAgIHRoaXMuY2xlYXJSZXN1
bHRzKCk7Ci0gICAgICAgIGZvciAodmFyIHJlc3VsdCBvZiB0aGlzLl9yZXN1bHRzKQotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiSW5zcGVjdG9yVGVzdFByb3h5LmFk
ZFJlc3VsdCh1bmVzY2FwZSgnIiArIGVzY2FwZSh0ZXh0KSArICInKSkiKTsKK0luc3BlY3RvclRl
c3QuX3Jlc2VuZFJlc3VsdHMgPSBmdW5jdGlvbihjYWxsYmFjaykKK3sKKyAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9zaG91bGRSZXNlbmRSZXN1bHRzKTsKKyAgICBkZWxldGUgdGhpcy5fc2hvdWxk
UmVzZW5kUmVzdWx0czsKKworICAgIHZhciBwZW5kaW5nUmVzcG9uc2VDb3VudCA9IDEgKyB0aGlz
Ll9yZXN1bHRzLmxlbmd0aDsKKyAgICBmdW5jdGlvbiBkZWNyZW1lbnRQZW5kaW5nUmVzcG9uc2VD
b3VudCgpIHsKKyAgICAgICAgcGVuZGluZ1Jlc3BvbnNlQ291bnQtLTsKKyAgICAgICAgaWYgKCFw
ZW5kaW5nUmVzcG9uc2VDb3VudCAmJiB0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpCisg
ICAgICAgICAgICBjYWxsYmFjaygpOwogICAgIH0KIAotICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoIkluc3BlY3RvclRlc3RQcm94eS5hZGRSZXN1bHQodW5lc2NhcGUoJyIgKyBlc2Nh
cGUodGV4dCkgKyAiJykpIik7CisgICAgdGhpcy5ldmFsdWF0ZUluUGFnZSgiSW5zcGVjdG9yVGVz
dFByb3h5LmNsZWFyUmVzdWx0cygpIiwgZGVjcmVtZW50UGVuZGluZ1Jlc3BvbnNlQ291bnQpOwor
ICAgIGZvciAodmFyIHJlc3VsdCBvZiB0aGlzLl9yZXN1bHRzKQorICAgICAgICB0aGlzLmV2YWx1
YXRlSW5QYWdlKCJJbnNwZWN0b3JUZXN0UHJveHkuYWRkUmVzdWx0KHVuZXNjYXBlKCciICsgZXNj
YXBlKHJlc3VsdCkgKyAiJykpIiwgZGVjcmVtZW50UGVuZGluZ1Jlc3BvbnNlQ291bnQpOwogfQog
Ci1JbnNwZWN0b3JUZXN0LmNsZWFyUmVzdWx0cyA9IGZ1bmN0aW9uKHRleHQpCitJbnNwZWN0b3JU
ZXN0LnRlc3RQYWdlRGlkTG9hZCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJJbnNwZWN0b3JUZXN0UHJveHkuY2xlYXJSZXN1bHRzKCkiKTsKKyAgICB0
aGlzLl9zaG91bGRSZXNlbmRSZXN1bHRzID0gdHJ1ZTsKKyAgICB0aGlzLl9yZXNlbmRSZXN1bHRz
KCk7CiB9CiAKLUluc3BlY3RvclRlc3QucGFnZUxvYWRlZCA9IGZ1bmN0aW9uKCkKK0luc3BlY3Rv
clRlc3QucmVsb2FkUGFnZSA9IGZ1bmN0aW9uKHNob3VsZElnbm9yZUNhY2hlKQogewotICAgIElu
c3BlY3RvclRlc3QuX3Nob3VsZFJlYnVpbGRSZXN1bHRzID0gdHJ1ZTsKLSAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiUGFnZSByZWxvYWRlZC4iKTsKKyAgICBQYWdlQWdlbnQucmVsb2FkLmlu
dm9rZSh7aWdub3JlQ2FjaGU6ICEhc2hvdWxkSWdub3JlQ2FjaGV9KTsKIH0KIAogSW5zcGVjdG9y
VGVzdC5yZXBvcnRVbmNhdWdodEV4Y2VwdGlvbiA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHVybCwgbGlu
ZU51bWJlcikKQEAgLTEzOCwyMSArMTcwLDIzIEBAIEluc3BlY3RvclRlc3QucmVwb3J0VW5jYXVn
aHRFeGNlcHRpb24gPSBmdW5jdGlvbihtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIpCiAgICAgLy8g
SWYgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHRlc3QgcGFnZSBpcyBub3Qgc2V0IHVwLCB0aGVuIGp1
c3QgZHVtcCB0byBjb25zb2xlIGFuZCBnaXZlIHVwLgogICAgIC8vIEVycm9ycyBlbmNvdW50ZXJl
ZCB0aGlzIGVhcmx5IGNhbiBiZSBkZWJ1Z2dlZCBieSBsb2FkaW5nIFRlc3QuaHRtbCBpbiBhIG5v
cm1hbCBicm93c2VyIHBhZ2UuCiAgICAgaWYgKCFJbnNwZWN0b3JGcm9udGVuZEhvc3QgfHwgIUlu
c3BlY3RvckJhY2tlbmQpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5fb3JpZ2luYWxDb25zb2xl
TWV0aG9kc1siZXJyb3IiXShyZXN1bHQpOwotICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMu
X29yaWdpbmFsQ29uc29sZU1ldGhvZHNbImVycm9yIl0ocmVzdWx0KTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3VsdCk7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB0aGlzLmFkZFJlc3VsdChyZXN1
bHQpOworICAgIHRoaXMuY29tcGxldGVUZXN0KCk7CisgICAgLy8gU3RvcCBkZWZhdWx0IGhhbmRs
ZXIgc28gd2UgY2FuIGVtcHR5IEluc3BlY3RvckJhY2tlbmQncyBtZXNzYWdlIHF1ZXVlLgorICAg
IHJldHVybiB0cnVlOwogfQogCiAvLyBJbml0aWFsaXplIHJlcG9ydGluZyBtZWNoYW5pc21zIGJl
Zm9yZSBsb2FkaW5nIHRoZSByZXN0IG9mIHRoZSBpbnNwZWN0b3IgcGFnZS4KIEluc3BlY3RvclRl
c3QuX3Jlc3VsdHMgPSBbXTsKLUluc3BlY3RvclRlc3QuX3Nob3VsZFJlYnVpbGRSZXN1bHRzID0g
dHJ1ZTsKK0luc3BlY3RvclRlc3QuX3Nob3VsZFJlc2VuZFJlc3VsdHMgPSB0cnVlOwogSW5zcGVj
dG9yVGVzdC5fb3JpZ2luYWxDb25zb2xlTWV0aG9kcyA9IHt9OwogCi0vLyBDYXRjaCBzeW50YXgg
ZXJyb3JzLCB0eXBlIGVycm9ycywgYW5kIG90aGVyIGV4Y2VwdGlvbnMuIFJ1biB0aGlzIGJlZm9y
ZSBsb2FkaW5nIG90aGVyIGZpbGVzLgotd2luZG93Lm9uZXJyb3IgPSBJbnNwZWN0b3JUZXN0LnJl
cG9ydFVuY2F1Z2h0RXhjZXB0aW9uOworLy8gQ2F0Y2ggc3ludGF4IGVycm9ycywgdHlwZSBlcnJv
cnMsIGFuZCBvdGhlciBleGNlcHRpb25zLgord2luZG93Lm9uZXJyb3IgPSBJbnNwZWN0b3JUZXN0
LnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uLmJpbmQoSW5zcGVjdG9yVGVzdCk7CiAKIGZvciAodmFy
IGxvZ1R5cGUgb2YgWyJsb2ciLCAiZXJyb3IiLCAiaW5mbyJdKSB7CiAgICAgLy8gUmVkaXJlY3Qg
Y29uc29sZSBtZXRob2RzIHRvIGxvZyBtZXNzYWdlcyBpbnRvIHRoZSB0ZXN0IHBhZ2UncyBET00u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9JbnNwZWN0b3JCYWNrZW5kLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZC5qcwppbmRleCAzYWNhZGRmY2NkNWNmYjA4YTkz
MTBiODg4NmMyMmNmNmVlYmVkODJlLi42YjA1NzUwZmIzM2RjZTg0MTNkOWQ5ODA4MjhmMTQ5YTEy
YjBmNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Q
cm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmQuanMKQEAgLTI1Myw3ICsyNTMs
MTEgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlm
ICh0aGlzLmR1bXBJbnNwZWN0b3JUaW1lU3RhdHMpCiAgICAgICAgICAgICAgICAgcHJvY2Vzc2lu
Z1N0YXJ0VGltZSA9IERhdGUubm93KCk7CiAKLSAgICAgICAgICAgIGRpc3BhdGNoZXJbZnVuY3Rp
b25OYW1lXS5hcHBseShkaXNwYXRjaGVyLCBwYXJhbXMpOworICAgICAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgICAgICBkaXNwYXRjaGVyW2Z1bmN0aW9uTmFtZV0uYXBwbHkoZGlzcGF0Y2hlciwg
cGFyYW1zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmVycm9yKCJVbmNhdWdodCBleGNlcHRpb24gaW4gaW5zcGVjdG9yIHBhZ2U6ICIsIGUpOwor
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAodGhpcy5kdW1wSW5zcGVjdG9yVGltZVN0
YXRzKQogICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ0aW1lLXN0YXRzOiAiICsgbWVzc2Fn
ZU9iamVjdC5tZXRob2QgKyAiID0gIiArIChEYXRlLm5vdygpIC0gcHJvY2Vzc2luZ1N0YXJ0VGlt
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmlu
ZGV4IDBmNTRkYzM5YjQwMGNhYTdjMzI4MGIyNmRiZjNmMzU4NTgxZDBiOGYuLjQzNDA2ZDQwZDY0
YTg4ODUyNzY5MjM1MzU5MjU1ZWY1ZjI0YmFjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKQEAgLTQ4LDEyICs0OCwxNSBAQAogICAgIDxzY3Jp
cHQgc3JjPSJQcm90b2NvbC9ET01PYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlByb3RvY29sL0RPTVN0b3JhZ2VPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlByb3RvY29sL0RlYnVnZ2VyT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJQcm90b2NvbC9OZXR3b3JrT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJQcm90b2NvbC9QYWdlT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJQcm90b2NvbC9SZW1vdGVPYmplY3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJQcm90b2NvbC9SdW50aW1lT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJQcm90b2NvbC9UaW1lbGluZU9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9CcmVha3BvaW50LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0NhbGxGcmFtZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xv
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db250ZW50Rmxvdy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9ET01Ob2RlLmpzIj48L3NjcmlwdD4K
QEAgLTYyLDYgKzY1LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0V4ZWN1dGlvbkNvbnRl
eHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvRXhlY3V0aW9uQ29udGV4
dExpc3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvRnJhbWUuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvR2VvbWV0cnkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5kZXhlZERhdGFiYXNlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3Jl
SW5kZXguanMiPjwvc2NyaXB0PgpAQCAtNjksNiArNzMsMTggQEAKICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL1Byb2JlU2V0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1By
b2JlU2V0RGF0YUZyYW1lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1By
b2JlU2V0RGF0YVRhYmxlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1By
b2ZpbGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvUHJvZmlsZU5vZGUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvUHJvZmlsZU5vZGVDYWxsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Jlc291cmNlVGltZWxpbmVSZWNv
cmQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0VGltZWxpbmVS
ZWNvcmQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvVGltZWxpbmUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTmV0d29ya1RpbWVsaW5lLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGVUaW1lbGluZS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9UaW1lbGluZU1hcmtlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9UaW1lbGluZVJlY29yZGluZy5qcyI+PC9z
Y3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvUmVzb3VyY2UuanMiPjwvc2NyaXB0PgpAQCAtODgs
NiArMTA0LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvUHJvYmVNYW5hZ2VyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvUnVudGltZU1hbmFnZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9TdG9yYWdlTWFuYWdl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1RpbWVsaW5lTWFu
YWdlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CiAgICAgICAgIFdlYkluc3BlY3Rvci5sb2FkZWQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NDM4ZmJhNDM0Nzc0YjUx
MTJkYjlmNzhkZjU0NDk5NTc1YThhMmZlLi44MTRiNGUyY2VmY2QyZTA2MmU5ODM5YWNjNTJiOTI5
Y2YwNGM0MTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTQtMDMtMDYgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogY29udmVydCBtb2Rl
bCB0ZXN0cyBhbmQgaW5zcGVjdG9yLXRlc3QuanMgdG8gdXNlIFRlc3QuaHRtbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MjE3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25z
OiBBZGQgZmxha3kgY29udGVudC1mbG93IGFuZCBmYWlsaW5nIHNoYXBlLW91dHNpZGUgaW5zcGVj
dG9yIHRlc3RzLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9wcm9iZS1tYW5h
Z2VyLWFkZC1yZW1vdmUtYWN0aW9ucy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9yZXNvdXJjZXMvc2hhcGUtaW5mby1oZWxwZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRlc3QuanM6IEFkZGVkLgorICAgICAg
ICAoSW5zcGVjdG9yVGVzdFByb3h5LnJlZ2lzdGVySW5pdGlhbGl6ZXIuKToKKyAgICAgICAgKElu
c3BlY3RvclRlc3RQcm94eS5yZWdpc3RlckluaXRpYWxpemVyKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL3Byb2Jl
LW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50Lmpz
OiBBZGRlZC4gQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sLy4KKyAg
ICAgICAgKGJyZWFrcG9pbnRBY3Rpb25zKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2NvbnRl
bnQtZmxvdy1jb250ZW50LW5vZGVzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LWZsb3ctY29udGVudC1ub2Rlcy1l
eHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ctY29udGVu
dC1ub2Rlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L21vZGVsL2NvbnRlbnQtZmxvdy1jb250ZW50LW5vZGVzLmh0bWwuCisgICAgICAgICogaW5zcGVj
dG9yL2RvbS9jb250ZW50LWZsb3ctY29udGVudC1yZW1vdmFsLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LWZsb3ct
Y29udGVudC1yZW1vdmFsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2Nv
bnRlbnQtZmxvdy1jb250ZW50LXJlbW92YWwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LWZsb3ctY29udGVudC1yZW1vdmFsLmh0
bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ctbGlzdC1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29u
dGVudC1mbG93LWxpc3QtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kb20vY29u
dGVudC1mbG93LWxpc3QuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9tb2RlbC9jb250ZW50LWZsb3ctbGlzdC5odG1sLgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20vY29udGVudC1ub2RlLXJlZ2lvbi1pbmZvLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LW5vZGUtcmVnaW9u
LWluZm8tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kb20vY29udGVudC1ub2Rl
LXJlZ2lvbi1pbmZvLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvbW9kZWwvY29udGVudC1ub2RlLXJlZ2lvbi1pbmZvLmh0bWwuCisgICAgICAgICogaW5z
cGVjdG9yL2RvbS9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBl
LW91dHNpZGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kb20vaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUtbWFyZ2luLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1tYXJn
aW4tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kb20vaGlnaGxpZ2h0LXNoYXBl
LW91dHNpZGUtbWFyZ2luLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtbWFyZ2luLmh0bWwuCisgICAg
ICAgICogaW5zcGVjdG9yL2RvbS9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFw
ZS1vdXRzaWRlLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9zaGFwZXMtdGVzdC5qczog
QWRkZWQuIFJlZmFjdG9yIGV4aXN0aW5nIHNoYXBlIGhlbHBlcnMgdG8gdXNlIG1vZGVsIG9iamVj
dHMKKyAgICAgICAgd2hlcmUgaXQgbWFrZXMgc2Vuc2UsIGFuZCB1c2UgZWFzeS10by1yZWFkIGFz
c2VydGlvbnMuCisgICAgICAgIChJbnNwZWN0b3JUZXN0UHJveHkucmVnaXN0ZXJJbml0aWFsaXpl
ci4pOgorICAgICAgICAqIGluc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qczogSGFuZGxlIHJlbG9h
ZGVkIHRlc3QgcGFnZXMgYmV0dGVyLiBVc2UgYmV0dGVyIG5hbWVzLgorICAgICAgICAoSW5zcGVj
dG9yVGVzdFByb3h5LnJlZ2lzdGVySW5pdGlhbGl6ZXIpOiBSZW5hbWVkIGZyb20gYHJlZ2lzdGVy
YC4KKyAgICAgICAgKHJ1blRlc3QucnVuSW5pdGlhbGl6YXRpb25NZXRob2RzSW5Gcm9udGVuZCk6
CisgICAgICAgIChydW5UZXN0LnJ1blRlc3RNZXRob2RJbkZyb250ZW5kKToKKyAgICAgICAgKHJ1
blRlc3QpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdFByb3h5LmNvbXBsZXRlVGVzdCk6CisgICAg
ICAgICogaW5zcGVjdG9yL3BhZ2UvbWFpbi1mcmFtZS1yZXNvdXJjZS1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvbWFpbi1mcmFt
ZS1yZXNvdXJjZS1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2UvbWFpbi1m
cmFtZS1yZXNvdXJjZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL21vZGVsL21haW4tZnJhbWUtcmVzb3VyY2UuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvcGFnZS9yZXNvdXJjZXMvZHVtbXktcGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczogTW92ZSBmYWlsaW5nIGluc3BlY3RvciB0ZXN0cyB0
byBnZW5lcmljIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczogTW92ZSBmYWlsaW5nIGluc3BlY3RvciB0ZXN0cyB0byBnZW5lcmljIGV4cGVjdGF0
aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczogTW92ZSBmYWls
aW5nIGluc3BlY3RvciB0ZXN0cyB0byBnZW5lcmljIGV4cGVjdGF0aW9ucy4KKwogMjAxNC0wMy0w
NiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEV4cG9zZSB0aGUgY29uc29sZSBvYmplY3QgaW4gSlNDb250ZXh0cyB0byBpbnRl
cmFjdCB3aXRoIFdlYiBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGJjMTY1MzlkOTAx
ZGFhYmZlZmRhMmVmNWVkOGRmM2U3Mzk0ODQ0ODkuLjI2YzAxNDA2NjZmODk3MjZkNWZkMzUyY2U1
NjA4YTJiNDk3NDJiOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjAsNyArNjAsOCBAQCB3ZWJr
aXQub3JnL2IvNTM5OTAgZmFzdC9mb3Jtcy9zZWFyY2gtZXZlbnQtZGVsYXkuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNvbnN0cnVjdC13aXRoLWVu
ZGVkLXRyYWNrcy5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNs
b25lLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzEyNDY2MCBpbnNwZWN0b3ItcHJvdG9j
b2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0
Lm9yZy9iLzEyNDY2MCBpbnNwZWN0b3IvZG9tL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMjY1MTkgaW5zcGVjdG9yL2RvbS9oaWdobGlnaHQt
c2hhcGUtb3V0c2lkZS1tYXJnaW4uaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTI2
MTQyIGNzczMvY2FsYy90cmFuc2l0aW9ucy1kZXBlbmRlbnQuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiAKQEAgLTk5LDMgKzEwMCw1IEBAIHdlYmtpdC5vcmcvYi8xMjkzMzEgaW5zcGVjdG9yLXByb3Rv
Y29sL3BhZ2UvZGVueS1YLUZyYW1lT3B0aW9uLmh0bWwgWyBQYXNzIEZhaWx1CiAKIHdlYmtpdC5v
cmcvYi8xMjk2MzkgaW5zcGVjdG9yLXByb3RvY29sL2RvbS9kb20tc2VhcmNoLWNyYXNoLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMjk2NDIgaW5zcGVjdG9yL3Rlc3QtaGFybmVzcy10cml2
aWFsbHktd29ya3MuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEyOTgxNyBpbnNwZWN0b3Iv
ZG9tL2NvbnRlbnQtZmxvdy1saXN0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
LzEyOTgxNyBpbnNwZWN0b3IvZG9tL2NvbnRlbnQtZmxvdy1jb250ZW50LXJlbW92YWwuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvbW9kZWwvY29udGVudC1mbG93LWNvbnRlbnQtbm9kZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2NvbnRlbnQtZmxvdy1jb250ZW50LW5vZGVz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVkMWM4MTcwZDM5
OTNiMzAyMGU4MDI4NjJhNmRkZTY4NjdmN2UwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwv
Y29udGVudC1mbG93LWNvbnRlbnQtbm9kZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTMgKzAsMCBAQAotVGVzdGluZyB0aGF0IHRoZSBDb250ZW50Rmxvd3MgZXZlbnRzIGFyZSBj
b3JyZWN0bHkgZGlzcGF0Y2hlZCB3aGVuIG5vZGVzIGFyZSBhdHRhY2hlZCB0by9kZXRhY2hlZCBm
cm9tIGEgZmxvdy4KLQotUEFTUzogQ29udGVudEZsb3cgd2FzIGFkZGVkLgotUEFTUzogQ29udGVu
dEZsb3cuY29udGVudE5vZGVzIGhhcyBhIGxlbmd0aCBvZiAyLgotUEFTUzogQ29udGVudEZsb3cu
Y29udGVudE5vZGVzWzBdLmlkIGlzICIjY29udGVudFN0YXRpYyIuCi1QQVNTOiBDb250ZW50Rmxv
dy5jb250ZW50Tm9kZXNbMV0uaWQgaXMgIiNjb250ZW50UmVtb3ZlZCIuCi1QQVNTOiAiI2NvbnRl
bnRBZGRlZEF0VGhlVG9wIiB3YXMgYWRkZWQgYmVmb3JlICIjY29udGVudFN0YXRpYyIuCi1QQVNT
OiAiI2NvbnRlbnRBZGRlZEF0VGhlVG9wIiBpcyBmaXJzdCBpbiB0aGUgY29udGVudE5vZGVzIGxp
c3QuCi1QQVNTOiAiI2NvbnRlbnRBZGRlZEF0VGhlQm90dG9tIiB3YXMgYWRkZWQgbGFzdC4KLVBB
U1M6ICIjY29udGVudEFkZGVkQXRUaGVCb3R0b20iIGlzIGxhc3QgaW4gdGhlIGNvbnRlbnROb2Rl
cyBsaXN0LgotUEFTUzogIiNjb250ZW50UmVtb3ZlZCIgd2FzIHJlbW92ZWQuCi1QQVNTOiAiI2Nv
bnRlbnRSZW1vdmVkIiBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIGNvbnRlbnROb2RlcyBsaXN0Lgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVu
dC1mbG93LWNvbnRlbnQtbm9kZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9tb2RlbC9jb250ZW50LWZsb3ctY29udGVudC1ub2Rlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZjIxODdlNDgzNDc4NDFjOGVmY2NkNzEzY2Q3ZTJmOWMzN2Y4OGRiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LWZsb3ctY29udGVudC1ub2Rlcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHN0eWxlPgotLmNvbnRlbnQKLXsKLSAgICAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzsKLX0KLS5oaWRkZW4KLXsKLSAgICAtd2Via2l0LWZsb3ctaW50bzogbm9uZTsKLX0KLTwvc3R5
bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gY2hhbmdlRmxvd0NvbnRlbnQoKQotewotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250ZW50QWRkZWRBdFRoZVRvcCIpLmNsYXNzTGlzdC5yZW1vdmUo
ImhpZGRlbiIpOwotICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIG1ha2Ugc3VyZSB0aGUgZXZlbnRz
IGFyZSBhbHdheXMgZmlyZWQgaW4gdGhlIGV4cGVjdGVkIG9yZGVyLgotICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50QWRkZWRB
dFRoZUJvdHRvbSIpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwotICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50UmVtb3Zl
ZCIpLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LmluaXRpYWxpemVJbnNwZWN0b3JNb2RlbHMoKTsKLQotICAgIHZhciBj
b250ZW50RmxvdzsKLQotICAgIFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5FdmVudC5NYWlu
RnJhbWVEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBkb21UcmVlID0g
V2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5kb21UcmVlOwotICAg
ICAgICBkb21UcmVlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVRyZWUuRXZlbnQu
Um9vdERPTU5vZGVJbnZhbGlkYXRlZCwgb25Sb290RE9NTm9kZUludmFsaWRhdGVkLCBudWxsKTsK
LSAgICAgICAgZG9tVHJlZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlLkV2
ZW50LkNvbnRlbnRGbG93V2FzQWRkZWQsIG9uQ29udGVudEZsb3dXYXNBZGRlZCwgbnVsbCk7Ci0g
ICAgICAgIGRvbVRyZWUucmVxdWVzdENvbnRlbnRGbG93TGlzdCgpOwotICAgIH0pOwotCi0gICAg
ZnVuY3Rpb24gb25Sb290RE9NTm9kZUludmFsaWRhdGVkKCkKLSAgICB7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5tYWluRnJhbWUuZG9tVHJlZS5yZXF1ZXN0Q29u
dGVudEZsb3dMaXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25Db250ZW50Rmxvd1dhc0Fk
ZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgY29udGVudEZsb3cgPSBldmVudC5kYXRhLmZsb3c7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNvbnRlbnRGbG93Lm5hbWUgPT09ICJmbG93
IiwgIkNvbnRlbnRGbG93IHdhcyBhZGRlZC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoY29udGVudEZsb3cuY29udGVudE5vZGVzLmxlbmd0aCA9PSAyLCAiQ29udGVudEZsb3cuY29u
dGVudE5vZGVzIGhhcyBhIGxlbmd0aCBvZiAyLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChjb250ZW50Rmxvdy5jb250ZW50Tm9kZXNbMF0uZ2V0QXR0cmlidXRlKCJpZCIpID09PSAi
Y29udGVudFN0YXRpYyIsICJDb250ZW50Rmxvdy5jb250ZW50Tm9kZXNbMF0uaWQgaXMgXCIjY29u
dGVudFN0YXRpY1wiLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjb250ZW50Rmxv
dy5jb250ZW50Tm9kZXNbMV0uZ2V0QXR0cmlidXRlKCJpZCIpID09PSAiY29udGVudFJlbW92ZWQi
LCAiQ29udGVudEZsb3cuY29udGVudE5vZGVzWzFdLmlkIGlzIFwiI2NvbnRlbnRSZW1vdmVkXCIu
Iik7Ci0KLSAgICAgICAgY29udGVudEZsb3cuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
Q29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNBZGRlZCwgb25Db250ZW50Tm9kZVdhc0Fk
ZGVkLCBudWxsKTsKLSAgICAgICAgY29udGVudEZsb3cuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNSZW1vdmVkLCBvbkNvbnRlbnRO
b2RlV2FzUmVtb3ZlZCwgbnVsbCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiY2hhbmdlRmxvd0NvbnRlbnQoKSJ9
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkNvbnRlbnROb2RlV2FzQWRkZWQoZXZlbnQpCi0g
ICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEubm9kZS5nZXRBdHRyaWJ1dGUoImlkIikp
IHsKLSAgICAgICAgY2FzZSAiY29udGVudEFkZGVkQXRUaGVUb3AiOgotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5iZWZvcmUuZ2V0QXR0cmlidXRlKCJpZCIpID09
PSAiY29udGVudFN0YXRpYyIsICJcIiNjb250ZW50QWRkZWRBdFRoZVRvcFwiIHdhcyBhZGRlZCBi
ZWZvcmUgXCIjY29udGVudFN0YXRpY1wiLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoY29udGVudEZsb3cuY29udGVudE5vZGVzWzBdID09PSBldmVudC5kYXRhLm5vZGUsICJc
IiNjb250ZW50QWRkZWRBdFRoZVRvcFwiIGlzIGZpcnN0IGluIHRoZSBjb250ZW50Tm9kZXMgbGlz
dC4iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJjb250ZW50QWRkZWRBdFRo
ZUJvdHRvbSI6Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZXZlbnQuZGF0YS5i
ZWZvcmUsICJcIiNjb250ZW50QWRkZWRBdFRoZUJvdHRvbVwiIHdhcyBhZGRlZCBsYXN0LiIpOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY29udGVudEZsb3cuY29udGVudE5vZGVz
Lmxhc3RWYWx1ZSA9PT0gZXZlbnQuZGF0YS5ub2RlLCAiXCIjY29udGVudEFkZGVkQXRUaGVCb3R0
b21cIiBpcyBsYXN0IGluIHRoZSBjb250ZW50Tm9kZXMgbGlzdC4iKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZB
SUw6IE9ubHkgdHdvIGFkZCBldmVudHMgYXJlIGV4cGVjdGVkLiIpOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uQ29udGVudE5vZGVXYXNSZW1vdmVkKGV2ZW50
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5ub2RlLmdl
dEF0dHJpYnV0ZSgiaWQiKSA9PT0gImNvbnRlbnRSZW1vdmVkIiwgIlwiI2NvbnRlbnRSZW1vdmVk
XCIgd2FzIHJlbW92ZWQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNvbnRlbnRG
bG93LmNvbnRlbnROb2Rlcy5pbmRleE9mKGV2ZW50LmRhdGEubm9kZSkgPT09IC0xLCAiXCIjY29u
dGVudFJlbW92ZWRcIiBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIGNvbnRlbnROb2RlcyBsaXN0LiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3Rpbmcg
dGhhdCB0aGUgQ29udGVudEZsb3dzIGV2ZW50cyBhcmUgY29ycmVjdGx5IGRpc3BhdGNoZWQgd2hl
biBub2RlcyBhcmUgYXR0YWNoZWQgdG8vZGV0YWNoZWQgZnJvbSBhIGZsb3cuPC9wPgotICAgIAot
ICAgIDxkaXYgaWQ9ImNvbnRlbnRBZGRlZEF0VGhlVG9wIiBjbGFzcz0iY29udGVudCBoaWRkZW4i
PjwvZGl2PgotICAgIDxkaXYgaWQ9ImNvbnRlbnRTdGF0aWMiIGNsYXNzPSJjb250ZW50Ij48L2Rp
dj4KLSAgICA8ZGl2IGlkPSJjb250ZW50UmVtb3ZlZCIgY2xhc3M9ImNvbnRlbnQiPjwvZGl2Pgot
ICAgIDxkaXYgaWQ9ImNvbnRlbnRBZGRlZEF0VGhlQm90dG9tIiBjbGFzcz0iY29udGVudCBoaWRk
ZW4iPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVudC1mbG93LWNvbnRlbnQtcmVtb3ZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVudC1m
bG93LWNvbnRlbnQtcmVtb3ZhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY3ODdhMDRjMjY2ODNhNGVjOGVlMWFiNzcxZDViZTUyYmM5Y2I0N2QuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL21vZGVsL2NvbnRlbnQtZmxvdy1jb250ZW50LXJlbW92YWwtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0aW5nIHRoYXQgdGhlIENvbnRl
bnRGbG93cyBldmVudHMgYXJlIGNvcnJlY3RseSBkaXNwYXRjaGVkIHdoZW4gY29udGVudCBub2Rl
cyBhcmUgZGV0YWNoZWQgZnJvbSB0aGUgRE9NLgotCi1QQVNTOiBDb250ZW50RmxvdyB3YXMgYWRk
ZWQuCi1QQVNTOiBDb250ZW50Rmxvdy5jb250ZW50Tm9kZXMgaGFzIGEgbGVuZ3RoIG9mIDIuCi1Q
QVNTOiBDb250ZW50Rmxvdy5jb250ZW50Tm9kZXNbMF0uaWQgaXMgIiNjb250ZW50U3RhdGljIi4K
LVBBU1M6IENvbnRlbnRGbG93LmNvbnRlbnROb2Rlc1sxXS5pZCBpcyAiI2NvbnRlbnRSZW1vdmVk
Ii4KLVBBU1M6ICIjY29udGVudFJlbW92ZWQiIHdhcyByZW1vdmVkLgotUEFTUzogIiNjb250ZW50
UmVtb3ZlZCIgY2Fubm90IGJlIGZvdW5kIGluIHRoZSBjb250ZW50Tm9kZXMgbGlzdC4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2NvbnRlbnQtZmxv
dy1jb250ZW50LXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9t
b2RlbC9jb250ZW50LWZsb3ctY29udGVudC1yZW1vdmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDg3NGEwOTZkMjdlNTZmOTA2ZWViZmNjZTNjNDVkZDc5MzFiMmI0YTguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2NvbnRlbnQtZmxvdy1jb250ZW50LXJlbW92YWwuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzdHlsZT4KLS5jb250ZW50Ci17Ci0gICAgLXdlYmtpdC1mbG93LWludG86IGZs
b3c7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGNoYW5nZUZsb3dDb250ZW50KCkKLXsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudFJlbW92ZWQiKS5yZW1vdmUoKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5pbml0aWFsaXplSW5z
cGVjdG9yTW9kZWxzKCk7Ci0KLSAgICB2YXIgY29udGVudEZsb3c7Ci0KLSAgICBXZWJJbnNwZWN0
b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJh
bWVSZXNvdXJjZU1hbmFnZXIuRXZlbnQuTWFpbkZyYW1lRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVu
dCkgewotICAgICAgICB2YXIgZG9tVHJlZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFu
YWdlci5tYWluRnJhbWUuZG9tVHJlZTsKLSAgICAgICAgZG9tVHJlZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5ET01UcmVlLkV2ZW50LlJvb3RET01Ob2RlSW52YWxpZGF0ZWQsIG9uUm9v
dERPTU5vZGVJbnZhbGlkYXRlZCwgbnVsbCk7Ci0gICAgICAgIGRvbVRyZWUuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZS5FdmVudC5Db250ZW50Rmxvd1dhc0FkZGVkLCBvbkNv
bnRlbnRGbG93V2FzQWRkZWQsIG51bGwpOwotICAgICAgICBkb21UcmVlLnJlcXVlc3RDb250ZW50
Rmxvd0xpc3QoKTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIG9uUm9vdERPTU5vZGVJbnZhbGlk
YXRlZCgpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIu
bWFpbkZyYW1lLmRvbVRyZWUucmVxdWVzdENvbnRlbnRGbG93TGlzdCgpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIG9uQ29udGVudEZsb3dXYXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGNv
bnRlbnRGbG93ID0gZXZlbnQuZGF0YS5mbG93OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChjb250ZW50Rmxvdy5uYW1lID09PSAiZmxvdyIsICJDb250ZW50RmxvdyB3YXMgYWRkZWQuIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rlcy5s
ZW5ndGggPT09IDIsICJDb250ZW50Rmxvdy5jb250ZW50Tm9kZXMgaGFzIGEgbGVuZ3RoIG9mIDIu
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rl
c1swXS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJjb250ZW50U3RhdGljIiwgIkNvbnRlbnRGbG93
LmNvbnRlbnROb2Rlc1swXS5pZCBpcyBcIiNjb250ZW50U3RhdGljXCIuIik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rlc1sxXS5nZXRBdHRyaWJ1
dGUoImlkIikgPT09ICJjb250ZW50UmVtb3ZlZCIsICJDb250ZW50Rmxvdy5jb250ZW50Tm9kZXNb
MV0uaWQgaXMgXCIjY29udGVudFJlbW92ZWRcIi4iKTsKLQotICAgICAgICBjb250ZW50Rmxvdy5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvdy5FdmVudC5Db250ZW50Tm9k
ZVdhc1JlbW92ZWQsIG9uQ29udGVudE5vZGVXYXNSZW1vdmVkLCBudWxsKTsKLQotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246
ICJjaGFuZ2VGbG93Q29udGVudCgpIn0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uQ29udGVu
dE5vZGVXYXNSZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoZXZlbnQuZGF0YS5ub2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gImNvbnRlbnRSZW1vdmVk
IiwgIlwiI2NvbnRlbnRSZW1vdmVkXCIgd2FzIHJlbW92ZWQuIik7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rlcy5pbmRleE9mKGV2ZW50LmRhdGEu
bm9kZSkgPT09IC0xLCAiXCIjY29udGVudFJlbW92ZWRcIiBjYW5ub3QgYmUgZm91bmQgaW4gdGhl
IGNvbnRlbnROb2RlcyBsaXN0LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB0aGUgQ29udGVudEZsb3dzIGV2ZW50cyBhcmUgY29y
cmVjdGx5IGRpc3BhdGNoZWQgd2hlbiBjb250ZW50IG5vZGVzIGFyZSBkZXRhY2hlZCBmcm9tIHRo
ZSBET00uPC9wPgotCi0gICAgPGRpdiBpZD0iY29udGVudFN0YXRpYyIgY2xhc3M9ImNvbnRlbnQi
PjwvZGl2PgotICAgIDxkaXYgaWQ9ImNvbnRlbnRSZW1vdmVkIiBjbGFzcz0iY29udGVudCI+PC9k
aXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9jb250ZW50LWZsb3ctbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVudC1mbG93LWxpc3QtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTE1MGMyNTg1N2FiZmZhYzc2ZDEy
ODc0NTMwMTIxNTE5Y2FhM2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LWZs
b3ctbGlzdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3Rp
bmcgdGhhdCB0aGUgQ29udGVudEZsb3dzIGV2ZW50cyBhcmUgY29ycmVjdGx5IGRpc3BhdGNoZWQg
d2hlbiBuZXcgZmxvd3MgYXJlIGNyZWF0ZWQvcmVtb3ZlZC4KLQotUEFTUzogQ29udGVudEZsb3cg
d2FzIGFkZGVkCi1QQVNTOiBGbG93IGNvdW50IGlzIDEKLVBBU1M6IENvbnRlbnRGbG93IHdhcyBy
ZW1vdmVkCi1QQVNTOiBGbG93IGNvdW50IGlzIDAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2NvbnRlbnQtZmxvdy1saXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVudC1mbG93LWxpc3QuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGJjNTZmZTgwYWQ2YmMyMTA5YTYzNjVmM2QwMjRi
MDlhMzEyODI1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVudC1mbG93LWxpc3Qu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNmbG93MQotewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBm
bG93MTsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gcmVtb3ZlRmxvdygpCi17Ci0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZsb3cxIikucmVtb3ZlKCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuaW5pdGlhbGl6ZUluc3BlY3Rvck1vZGVscygp
OwotCi0gICAgV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLkV2ZW50Lk1haW5GcmFtZURpZENo
YW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIGRvbVRyZWUgPSBXZWJJbnNwZWN0
b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLmRvbVRyZWU7Ci0gICAgICAgIGRvbVRy
ZWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZS5FdmVudC5Sb290RE9NTm9k
ZUludmFsaWRhdGVkLCBvblJvb3RET01Ob2RlSW52YWxpZGF0ZWQsIG51bGwpOwotICAgICAgICBk
b21UcmVlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVRyZWUuRXZlbnQuQ29udGVu
dEZsb3dXYXNBZGRlZCwgb25Db250ZW50Rmxvd1dhc0FkZGVkLCBudWxsKTsKLSAgICAgICAgZG9t
VHJlZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlLkV2ZW50LkNvbnRlbnRG
bG93V2FzUmVtb3ZlZCwgb25Db250ZW50Rmxvd1dhc1JlbW92ZWQsIG51bGwpOwotICAgICAgICBk
b21UcmVlLnJlcXVlc3RDb250ZW50Rmxvd0xpc3QoKTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9u
IG9uUm9vdERPTU5vZGVJbnZhbGlkYXRlZCgpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
ZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLmRvbVRyZWUucmVxdWVzdENvbnRlbnRGbG93
TGlzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uQ29udGVudEZsb3dXYXNBZGRlZChldmVu
dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuZmxvdy5u
YW1lID09PSAiZmxvdzEiLCAiQ29udGVudEZsb3cgd2FzIGFkZGVkIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5tYWluRnJh
bWUuZG9tVHJlZS5mbG93c0NvdW50ID09PSAxLCAiRmxvdyBjb3VudCBpcyAxIik7Ci0gICAgICAg
IAotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwg
e2V4cHJlc3Npb246ICJyZW1vdmVGbG93KCkifSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9u
IG9uQ29udGVudEZsb3dXYXNSZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5mbG93Lm5hbWUgPT09ICJmbG93MSIsICJDb250ZW50Rmxv
dyB3YXMgcmVtb3ZlZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0
b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLmRvbVRyZWUuZmxvd3NDb3VudCA9PT0g
MCwgIkZsb3cgY291bnQgaXMgMCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB0aGUgQ29udGVudEZsb3dzIGV2ZW50cyBhcmUgY29y
cmVjdGx5IGRpc3BhdGNoZWQgd2hlbiBuZXcgZmxvd3MgYXJlIGNyZWF0ZWQvcmVtb3ZlZC48L3A+
Ci0gICAgCi0gICAgPGRpdiBpZD0iZmxvdzEiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2NvbnRlbnQtbm9k
ZS1yZWdpb24taW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvbW9kZWwvY29udGVudC1ub2RlLXJlZ2lvbi1pbmZvLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWY1ZDFiYTc0Mjc5YWM0ZWNjZjk1MGY4ZThjNGEyZTFiODJl
NmE5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvY29udGVudC1ub2RlLXJlZ2lvbi1pbmZv
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLVRlc3RpbmcgdGhh
dCB0aGUgRE9NVHJlZU1hbmFnZXIuZ2V0Tm9kZUNvbnRlbnRGbG93SW5mbyByZXR1cm5zIHRoZSBj
b250YWluaW5nIHJlZ2lvbnMuCi0KLQotU2VsZWN0b3I6ICNmbG93Ci1SZWdpb24gZmxvdyBuYW1l
OiBub25lCi1Db250ZW50IGZsb3cgbmFtZTogZmxvdwotUmVnaW9ucyBjb3VudDogMgotUmVnaW9u
czogZGl2I3JlZ2lvbjEucmVnaW9uLCBkaXYjcmVnaW9uMi5yZWdpb24KLQotU2VsZWN0b3I6IC5j
b250ZW50Tm9kZTEKLVJlZ2lvbiBmbG93IG5hbWU6IG5vbmUKLUNvbnRlbnQgZmxvdyBuYW1lOiBm
bG93Ci1SZWdpb25zIGNvdW50OiAxCi1SZWdpb25zOiBkaXYjcmVnaW9uMS5yZWdpb24KLQotU2Vs
ZWN0b3I6IC5jb250ZW50Tm9kZTIKLVJlZ2lvbiBmbG93IG5hbWU6IG5vbmUKLUNvbnRlbnQgZmxv
dyBuYW1lOiBmbG93Ci1SZWdpb25zIGNvdW50OiAyCi1SZWdpb25zOiBkaXYjcmVnaW9uMS5yZWdp
b24sIGRpdiNyZWdpb24yLnJlZ2lvbgotCi1TZWxlY3RvcjogYm9keQotUmVnaW9uIGZsb3cgbmFt
ZTogbm9uZQotQ29udGVudCBmbG93IG5hbWU6IG5vbmUKLVJlZ2lvbnMgY291bnQ6IE4vQQotUmVn
aW9uczogTi9BCi0KLVNlbGVjdG9yOiAjcmVnaW9uMQotUmVnaW9uIGZsb3cgbmFtZTogZmxvdwot
Q29udGVudCBmbG93IG5hbWU6IG5vbmUKLVJlZ2lvbnMgY291bnQ6IE4vQQotUmVnaW9uczogTi9B
Ci0KLVNlbGVjdG9yOiAjcmVnaW9uMgotUmVnaW9uIGZsb3cgbmFtZTogZmxvdwotQ29udGVudCBm
bG93IG5hbWU6IG5vbmUKLVJlZ2lvbnMgY291bnQ6IE4vQQotUmVnaW9uczogTi9BCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9jb250ZW50LW5vZGUt
cmVnaW9uLWluZm8uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9j
b250ZW50LW5vZGUtcmVnaW9uLWluZm8uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmZiYTQ3M2JkOWI2YTQxZWQ5OThhMDllODE4OTk2MzBjZDBhMmRkMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvbW9kZWwvY29udGVudC1ub2RlLXJlZ2lvbi1pbmZvLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw4MyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5
bGU+Ci0jZmxvdwotewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OwotfQotLmNvbnRlbnRO
b2RlMQotewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogNTBweDsKLX0KLS5jb250ZW50
Tm9kZTIKLXsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDE1MHB4OwotfQotLnJlZ2lv
bgotewotICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OwotICAgIHdpZHRoOiAxMDBweDsKLSAg
ICBoZWlnaHQ6IDEwMHB4OwotfQotPC9zdHlsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9w
cm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgcXVlcnlMaXN0ID0gWyIjZmxvdyIsICIuY29udGVudE5vZGUxIiwgIi5jb250ZW50
Tm9kZTIiLCAiYm9keSIsICIjcmVnaW9uMSIsICIjcmVnaW9uMiJdOwotICAgIHZhciBkb2N1bWVu
dE5vZGVJZDsKLQotICAgIEluc3BlY3RvclRlc3QuaW5pdGlhbGl6ZUluc3BlY3Rvck1vZGVscygp
OwotICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoZnVuY3Rp
b24oZG9jdW1lbnROb2RlKSB7Ci0gICAgICAgIGRvY3VtZW50Tm9kZUlkID0gZG9jdW1lbnROb2Rl
LmlkOwotICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuZ2V0TmFtZWRGbG93Q29s
bGVjdGlvbihkb2N1bWVudE5vZGVJZCk7Ci0gICAgICAgIG5leHQoKTsKLSAgICB9KTsKLQotICAg
IGZ1bmN0aW9uIHF1ZXJ5KHNlbGVjdG9yLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJcblNlbGVjdG9yOiAiICsgc2VsZWN0b3IpOwotICAgICAgICBXZWJJbnNw
ZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGVJZCwgc2VsZWN0
b3IsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKLSAgICAgICAgICAgIGlmICghY29udGVudE5v
ZGVJZCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJET00gbm9kZSBub3Qg
Zm91bmQuIik7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHZhciBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVG
b3JJZChjb250ZW50Tm9kZUlkKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFu
YWdlci5nZXROb2RlQ29udGVudEZsb3dJbmZvKGRvbU5vZGUsIGZ1bmN0aW9uKGVycm9yLCByZXN1
bHQpIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IpOwotICAgICAgICAg
ICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlJlZ2lvbiBmbG93IG5hbWU6ICIgKyAocmVzdWx0LnJlZ2lvbkZsb3cgPyByZXN1bHQucmVn
aW9uRmxvdy5uYW1lIDogIm5vbmUiKSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJDb250ZW50IGZsb3cgbmFtZTogIiArIChyZXN1bHQuY29udGVudEZsb3cgPyByZXN1
bHQuY29udGVudEZsb3cubmFtZSA6ICJub25lIikpOwotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUmVnaW9ucyBjb3VudDogIiArIChyZXN1bHQucmVnaW9ucyA/IHJlc3Vs
dC5yZWdpb25zLmxlbmd0aCA6ICJOL0EiKSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJSZWdpb25zOiAiICsgKHJlc3VsdC5yZWdpb25zID8gcmVzdWx0LnJlZ2lvbnMu
bWFwKFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvck5vZGUpLmpvaW4oIiwgIikgOiAiTi9BIikp
OwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiTm8gcmVnaW9uIGZsb3cgaW5mb3JtYXRpb24uIik7Ci0gICAgICAgICAgICAgICAg
Y2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBuZXh0KCkKLSAgICB7Ci0gICAgICAgIGlmICghcXVlcnlMaXN0Lmxlbmd0aCkKLSAg
ICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICBx
dWVyeShxdWVyeUxpc3Quc2hpZnQoKSwgbmV4dCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+VGVzdGluZyB0aGF0IHRoZSBE
T01UcmVlTWFuYWdlci5nZXROb2RlQ29udGVudEZsb3dJbmZvIHJldHVybnMgdGhlIGNvbnRhaW5p
bmcgcmVnaW9ucy48L3A+Ci0KLSAgICA8ZGl2IGlkPSJmbG93Ij4KLSAgICAgICAgPGRpdiBjbGFz
cz0iY29udGVudE5vZGUxIj48L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudE5vZGUy
Ij48L2Rpdj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9InJlZ2lvbjEiIGNsYXNzPSJyZWdp
b24iPjwvZGl2PgotICAgIDxkaXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb24iPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyZmM3YzM5NzAzZGJmNDM2
Y2QwZDE5YTVkNzFjYjNlMTM4NTBlYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hs
aWdodC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLVBBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAg
TCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAg
TCA1MCA1MCBaXQotUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUw
IDEwMCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAgTCA1MCAxMDAgWl0K
LVBBU1M6IEFjdHVhbCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3
NSBaXSBFeHBlY3RlZCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3
NSBaXQotUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBM
IDUwIDUwIFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEwMCBM
IDUwIDUwIFpdCi1QQVNTOiBBY3R1YWwgW00gNTAgNTAgTCA1MCAxMDAgTCAxNTAgMTAwIEwgMTUw
IDUwIEwgNTAgNTAgWl0gRXhwZWN0ZWQgW00gNTAgNTAgTCA1MCAxMDAgTCAxNTAgMTAwIEwgMTUw
IDUwIEwgNTAgNTAgWl0KLVBBU1M6IEFjdHVhbCBbTSAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAw
IEwgNTAgNTAgTCAxNTAgNTAgWl0gRXhwZWN0ZWQgW00gMTUwIDUwIEwgMTUwIDEwMCBMIDUwIDEw
MCBMIDUwIDUwIEwgMTUwIDUwIFpdCi1QQVNTOiBBY3R1YWwgW00gMTc1IDc1IEwgMTc1IDEyNSBM
IDc1IDEyNSBMIDc1IDc1IEwgMTc1IDc1IFpdIEV4cGVjdGVkIFtNIDE3NSA3NSBMIDE3NSAxMjUg
TCA3NSAxMjUgTCA3NSA3NSBMIDE3NSA3NSBaXQotUEFTUzogQWN0dWFsIFtNIDE1MCA1MCBMIDE1
MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBMIDE1MCA1MCBaXSBFeHBlY3RlZCBbTSAxNTAgNTAgTCAx
NTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgTCAxNTAgNTAgWl0KLVBBU1M6IEFjdHVhbCBbTSAyNSAy
NSBMIDEyNSAyNSBMIDEyNSAxMjUgTCAyNSAxMjUgTCAyNSAyNSBaXSBFeHBlY3RlZCBbTSAyNSAy
NSBMIDEyNSAyNSBMIDEyNSAxMjUgTCAyNSAxMjUgTCAyNSAyNSBaXQotUEFTUzogQWN0dWFsIFtN
IDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBM
IDEwMCA1MCBMIDEwMCAxMDAgTCA1MCAxMDAgWl0KLVBBU1M6IEFjdHVhbCBbTSAzNSAzNSBMIDEx
NSAzNSBMIDExNSA2NSBMIDM1IDY1IFogTSAzNSA4NSBMIDExNSA4NSBMIDExNSAxMTUgTCAzNSAx
MTUgWl0gRXhwZWN0ZWQgW00gMzUgMzUgTCAxMTUgMzUgTCAxMTUgNjUgTCAzNSA2NSBaIE0gMzUg
ODUgTCAxMTUgODUgTCAxMTUgMTE1IEwgMzUgMTE1IFpdCi1QQVNTOiBBY3R1YWwgW00gNTAgNTAg
TCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTAwIDUw
IEwgMTAwIDEwMCBMIDUwIDEwMCBaXQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtbWFyZ2luLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hh
cGUtb3V0c2lkZS1tYXJnaW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1ZGFiNjBjMzNlNWNjOGM5YWVhNzFkNTQ1NzNjNGM1N2FkMzlhYmIxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1tYXJnaW4tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1QQVNTOiBTaGFwZSByb3VnaGx5IGVx
dWFscyBbTSA2MCA1MCBMIDkwIDUwIEMgOTUuNTIgNTAgMTAwIDU0LjQ4IDEwMCA2MCBMIDEwMCA5
MCBDIDEwMCA5NS41MiA5NS41MiAxMDAgOTAgMTAwIEwgNjAgMTAwIEMgNTQuNDggMTAwIDUwIDk1
LjUyIDUwIDkwIEwgNTAgNjAgQyA1MCA1NC40OCA1NC40OCA1MCA2MCA1MCBaXQotUEFTUzogTWFy
Z2luIHNoYXBlIHJvdWdobHkgZXF1YWxzIFtNIDYwIDQwIEwgOTAgNDAgQyAxMDEuMDUgNDAgMTEw
IDQ4Ljk1IDExMCA2MCBMIDExMCA5MCBDIDExMCAxMDEuMDUgMTAxLjA1IDExMCA5MCAxMTAgTCA2
MCAxMTAgQyA0OC45NSAxMTAgNDAgMTAxLjA1IDQwIDkwIEwgNDAgNjAgQyA0MCA0OC45NSA0OC45
NSA0MCA2MCA0MCBaXQotUEFTUzogU2hhcGUgcm91Z2hseSBlcXVhbHMgW00gNzUgMjUgTCA3NSAy
NSBDIDEwMi42MSAyNSAxMjUgNDcuMzkgMTI1IDc1IEwgMTI1IDc1IEMgMTI1IDEwMi42MSAxMDIu
NjEgMTI1IDc1IDEyNSBMIDc1IDEyNSBDIDQ3LjM5IDEyNSAyNSAxMDIuNjEgMjUgNzUgTCAyNSA3
NSBDIDI1IDQ3LjM5IDQ3LjM5IDI1IDc1IDI1IFpdCi1QQVNTOiBNYXJnaW4gc2hhcGUgcm91Z2hs
eSBlcXVhbHMgW00gNzUgMTUgTCA3NSAxNSBDIDEwOC4xNCAxNSAxMzUgNDEuODYgMTM1IDc1IEwg
MTM1IDc1IEMgMTM1IDEwOC4xNCAxMDguMTQgMTM1IDc1IDEzNSBMIDc1IDEzNSBDIDQxLjg2IDEz
NSAxNSAxMDguMTQgMTUgNzUgTCAxNSA3NSBDIDE1IDQxLjg2IDQxLjg2IDE1IDc1IDE1IFpdCi1Q
QVNTOiBTaGFwZSByb3VnaGx5IGVxdWFscyBbTSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAgTCA1
MCAxMDAgTCA1MCA1MCBaXQotUEFTUzogTWFyZ2luIHNoYXBlIHJvdWdobHkgZXF1YWxzIFtNIDUw
IDQ5IEwgMTAwIDQ5IEwgMTAwIDUwIEwgNTAgNTAgTCA1MCA0OSBaIE0gNDkgNTAgTCAxMDEgNTAg
TCAxMDEgMTAwIEwgNDkgMTAwIEwgNDkgNTAgWiBNIDUwIDEwMCBMIDEwMCAxMDAgTCAxMDAgMTAx
IEwgNTAgMTAxIEwgNTAgMTAwIFpdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS1tYXJnaW4uaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lk
ZS1tYXJnaW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhiYjhhMThjZjRh
ZDcxYWEyMDU0MDUzMzVmZmY5YjMwNGFmZGI0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwv
aGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtbWFyZ2luLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotYm9k
eSB7Ci0gICAgbWFyZ2luOiAwOwotfQotLnNoYXBlIHsKLSAgICBmbG9hdDogbGVmdDsKLSAgICB3
aWR0aDogMTAwcHg7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAgICBwYWRkaW5nOiAyNXB4IDc1cHgg
NzVweCAyNXB4OwotICAgIG1hcmdpbi1yaWdodDogLTIwMHB4OwotICAgIC13ZWJraXQtc2hhcGUt
bWFyZ2luOiAxMHB4OwotfQotLmluc2V0IHsKLSAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IGlu
c2V0KDI1cHggMjVweCAyNXB4IDI1cHggcm91bmQgMTBweCAxMHB4KSBjb250ZW50LWJveDsKLX0K
LS5jaXJjbGUgewotICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogY2lyY2xlKDUwcHgpIGNvbnRl
bnQtYm94OwotfQotLnN2ZyB7Ci0gICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoImRhdGE6
aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
JyB2aWV3Qm94PScwIDAgMTAwIDEwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZScgd2lkdGg9
JzEwMHB4JyBoZWlnaHQ9JzEwMHB4Jz48cmVjdCB4PScyNScgeT0nMjUnIHdpZHRoPSc1MCcgaGVp
Z2h0PSc1MCcgZmlsbD0nYmx1ZScgLz48L3N2Zz4iKTsKLSAgICAtd2Via2l0LXNoYXBlLW1hcmdp
bjogMXB4OwotfQotPC9zdHlsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
L3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gc2hhcGVUZXN0cygpIHsKLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgewotICAgICAgICAn
c2VsZWN0b3InIDogJy5pbnNldCcsCi0gICAgICAgICdzaGFwZScgOiByb3VuZGVkUmVjdENvbW1h
bmRzKDUwLCA1MCwgNTAsIDUwLCAxMCksCi0gICAgICAgICdtYXJnaW5TaGFwZScgOiByb3VuZGVk
UmVjdENvbW1hbmRzKDQwLCA0MCwgNzAsIDcwLCAyMCkKLSAgICB9LAotICAgIHsKLSAgICAgICAg
J3NlbGVjdG9yJyA6ICcuY2lyY2xlJywKLSAgICAgICAgJ3NoYXBlJyA6IHJvdW5kZWRSZWN0Q29t
bWFuZHMoMjUsIDI1LCAxMDAsIDEwMCwgNTApLAotICAgICAgICAnbWFyZ2luU2hhcGUnIDogcm91
bmRlZFJlY3RDb21tYW5kcygxNSwgMTUsIDEyMCwgMTIwLCA2MCkKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgJ3NlbGVjdG9yJyA6ICcuc3ZnJywKLSAgICAgICAgJ3NoYXBlJyA6IHJvdW5kZWRSZWN0
Q29tbWFuZHMoNTAsIDUwLCA1MCwgNTAsIDApLAotICAgICAgICAnbWFyZ2luU2hhcGUnIDogW10u
Y29uY2F0KHJvdW5kZWRSZWN0Q29tbWFuZHMoNTAsIDQ5LCA1MCwgMSwgMCksCi0gICAgICAgICAg
ICByb3VuZGVkUmVjdENvbW1hbmRzKDQ5LCA1MCwgNTIsIDUwLCAwKSwKLSAgICAgICAgICAgIHJv
dW5kZWRSZWN0Q29tbWFuZHMoNTAsIDEwMCwgNTAsIDEsIDApKQotICAgIH0KLSAgICBdOwotCi0g
ICAgZnVuY3Rpb24gcm91bmRlZFJlY3RDb21tYW5kcyh4LCB5LCB3LCBoLCByKSB7Ci0gICAgICAg
IGlmICghcikKLSAgICAgICAgICAgIHJldHVybiBbJ00nLCB4LCB5LCAnTCcsIHggKyB3LCB5LCAn
TCcsIHggKyB3LCB5ICsgaCwgJ0wnLCB4LCB5ICsgaCwgJ0wnLCB4LCB5LCAnWiddOwotCi0gICAg
ICAgIC8vIEFwcHJveGltYXRlIDEgLSBrYXBwYSwgc2VlIFBhdGguY3BwCi0gICAgICAgIHZhciBj
b250cm9sID0gLjQ0NzcxNTsKLQotICAgICAgICB2YXIgY29tbWFuZHMgPSBbXTsKLQotICAgICAg
ICBjb21tYW5kcy5wdXNoKCdNJywgeCArIHIsIHkpOwotICAgICAgICBjb21tYW5kcy5wdXNoKCdM
JywgeCArIHcgLSByLCB5KTsKLSAgICAgICAgY29tbWFuZHMucHVzaCgnQycsIHggKyB3IC0gY29u
dHJvbCAqIHIsIHksIHggKyB3LCB5ICsgY29udHJvbCAqIHIsIHggKyB3LCB5ICsgcik7Ci0KLSAg
ICAgICAgY29tbWFuZHMucHVzaCgnTCcsIHggKyB3LCB5ICsgaCAtIHIpOwotICAgICAgICBjb21t
YW5kcy5wdXNoKCdDJywgeCArIHcsIHkgKyBoIC0gY29udHJvbCAqIHIsIHggKyB3IC0gY29udHJv
bCAqIHIsIHkgKyBoLCB4ICsgdyAtIHIsIHkgKyBoKTsKLQotICAgICAgICBjb21tYW5kcy5wdXNo
KCdMJywgeCArIHIsIHkgKyBoKTsKLSAgICAgICAgY29tbWFuZHMucHVzaCgnQycsIHggKyBjb250
cm9sICogciwgeSArIGgsIHgsIHkgKyBoIC0gY29udHJvbCAqIHIsIHgsIHkgKyBoIC0gcik7Ci0K
LSAgICAgICAgY29tbWFuZHMucHVzaCgnTCcsIHgsIHkgKyByKTsKLSAgICAgICAgY29tbWFuZHMu
cHVzaCgnQycsIHgsIHkgKyBjb250cm9sICogciwgeCArIGNvbnRyb2wgKiByLCB5LCB4ICsgciwg
eSk7Ci0gICAgICAgIGNvbW1hbmRzLnB1c2goJ1onKTsKLQotICAgICAgICByZXR1cm4gY29tbWFu
ZHM7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdFBhdGgoYWN0dWFsLCBleHBlY3RlZCwgbXNn
KSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBJbnNwZWN0b3JUZXN0LnBhdGhzUm91Z2hseUVxdWFs
KGFjdHVhbCwgZXhwZWN0ZWQpOwotICAgICAgICBleHBlY3RlZFN0cmluZyA9IGV4cGVjdGVkLm1h
cChmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1i
ZXInKQotICAgICAgICAgICAgICAgIHJldHVybiAraXRlbS50b0ZpeGVkKDIpOwotICAgICAgICAg
ICAgcmV0dXJuIGl0ZW07Ci0gICAgICAgIH0pLmpvaW4oJyAnKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQocmVzdWx0LCBtc2cgKyAiIFsiICsgZXhwZWN0ZWRTdHJpbmcgKyAiXSIpOwot
ICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBY3R1
YWwgc2hhcGUgd2FzIFsiICsgYWN0dWFsLmpvaW4oIiAiKSArICJdIik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZG9UZXN0cyh0ZXN0cykgewotICAgICAgICBpZiAoIXRlc3RzLmxlbmd0aCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICB2YXIgdGVzdCA9IHRlc3RzWzBdOwotICAgICAgICB0
ZXN0cyA9IHRlc3RzLnNwbGljZSgxKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zaGFwZU91dHNp
ZGVJbmZvKHRlc3Quc2VsZWN0b3IsIGZ1bmN0aW9uKHNoYXBlT3V0c2lkZSkgewotICAgICAgICAg
ICAgdGVzdFBhdGgoc2hhcGVPdXRzaWRlLnNoYXBlLCB0ZXN0LnNoYXBlLCAiU2hhcGUgcm91Z2hs
eSBlcXVhbHMiKTsKLSAgICAgICAgICAgIHRlc3RQYXRoKHNoYXBlT3V0c2lkZS5tYXJnaW5TaGFw
ZSwgdGVzdC5tYXJnaW5TaGFwZSwgIk1hcmdpbiBzaGFwZSByb3VnaGx5IGVxdWFscyIpOwotCi0g
ICAgICAgICAgICBkb1Rlc3RzKHRlc3RzKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZG9U
ZXN0cyh0ZXN0cyk7Ci19Ci13aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IFNoYXBlSW5mb0hl
bHBlci5ydW5TaGFwZVRlc3Qoc2hhcGVUZXN0cyk7IH0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci0gICAgPGRpdiBjbGFzcz0nc2hhcGUgaW5zZXQnPjwvZGl2PgotICAgIDxkaXYgY2xhc3M9
J3NoYXBlIGNpcmNsZSc+PC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0nc2hhcGUgc3ZnJz48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZWJmMTAzNmM5MzY0YjM4NGJlMTBiZGY1MjQ2ZTg4
MTVjYWE5YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdodC1zaGFwZS1vdXRz
aWRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLWJvZHkgewotICAgIG1hcmdpbjogMDsKLX0KLS5zaGFwZSB7Ci0gICAgZmxvYXQ6
IGxlZnQ7Ci0gICAgd2lkdGg6IDIwMHB4OwotICAgIGhlaWdodDogMjAwcHg7Ci0gICAgbWFyZ2lu
LXJpZ2h0OiAtMjAwcHg7Ci19Ci0ucGFkZGVkIHsKLSAgICB3aWR0aDogMTAwcHg7Ci0gICAgaGVp
Z2h0OiAxMDBweDsKLSAgICBwYWRkaW5nOiAyNXB4IDc1cHggNzVweCAyNXB4OwotfQotLmJvcmRl
ci1ib3ggewotICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci19Ci0udmVydGljYWwtbHIgewot
ICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKLX0KLS52ZXJ0aWNhbC1ybCB7
Ci0gICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwotfQotLnJlY3RhbmdsZSB7
Ci0gICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoNTBweCwgNTBweCwgMTAwcHgs
IDUwcHgpIGNvbnRlbnQtYm94OwotfQotLnJlY3RhbmdsZS5ib3JkZXItYm94IHsKLSAgICAtd2Vi
a2l0LXNoYXBlLW91dHNpZGU6IHJlY3RhbmdsZSg1MHB4LCA1MHB4LCAxMDBweCwgNTBweCkgYm9y
ZGVyLWJveDsKLX0KLS5wb2x5Z29uIHsKLSAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHBvbHln
b24oNTBweCA1MHB4LCAxMDBweCA1MHB4LCAxMDBweCAxMDBweCwgNTBweCAxMDBweCkgY29udGVu
dC1ib3g7Ci19Ci0ucG9seWdvbi5ib3JkZXItYm94IHsKLSAgICAtd2Via2l0LXNoYXBlLW91dHNp
ZGU6IHBvbHlnb24oNTBweCA1MHB4LCAxMDBweCA1MHB4LCAxMDBweCAxMDBweCwgNTBweCAxMDBw
eCkgYm9yZGVyLWJveDsKLX0KLS5jb250ZW50LWJveCB7Ci0gICAgLXdlYmtpdC1zaGFwZS1vdXRz
aWRlOiBjb250ZW50LWJveDsKLX0KLS5yYXN0ZXItc3ZnIHsKLSAgICAtd2Via2l0LXNoYXBlLW91
dHNpZGU6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJyBwcmVzZXJ2ZUFzcGVjdFJh
dGlvPSdub25lJyB3aWR0aD0nMTAwcHgnIGhlaWdodD0nMTAwcHgnPjxyZWN0IHg9JzI1JyB5PScy
NScgd2lkdGg9JzUwJyBoZWlnaHQ9JzUwJyBmaWxsPSdibHVlJyAvPjwvc3ZnPiIpOwotfQotLnJh
c3Rlci1zdmctY29tcGxleCB7Ci0gICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoImRhdGE6
aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
JyB2aWV3Qm94PScwIDAgMTAwIDEwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZScgd2lkdGg9
JzEwMHB4JyBoZWlnaHQ9JzEwMHB4Jz48cmVjdCB4PScxMCcgeT0nMTAnIHdpZHRoPSczMCcgaGVp
Z2h0PSczMCcgZmlsbD0nYmx1ZScgLz48cmVjdCB4PSc2MCcgeT0nMTAnIHdpZHRoPSczMCcgaGVp
Z2h0PSczMCcgZmlsbD0nYmx1ZScgLz48cmVjdCB4PScxMCcgeT0nNjAnIHdpZHRoPSczMCcgaGVp
Z2h0PSczMCcgZmlsbD0nYmx1ZScgLz48cmVjdCB4PSc2MCcgeT0nNjAnIHdpZHRoPSczMCcgaGVp
Z2h0PSczMCcgZmlsbD0nYmx1ZScgLz48L3N2Zz4iKTsKLX0KLS5yYXN0ZXItcG5nIHsKLSAgICAv
KiBwbmcgdmVyc2lvbiBvZiByYXN0ZXItc3ZnICovCi0gICAtd2Via2l0LXNoYXBlLW91dHNpZGU6
IHVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFB
QUJrQ0FNQUFBQkhQR1ZtQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlX
UjVjY2xsUEFBQUFBWlFURlJGQUFELy8vLy9lOXlaTEFBQUFBSjBVazVUL3dEbHR6QktBQUFBU1Vs
RVFWUjQydXpZc1EwQU1BZ0VzV2YvcFRNREJVUkl2Z1hjWDJxaFFDQVFDQVFDZ1VBK0kya0hnVUFn
RUFnRUFvRkFJQkFJQkFLQlFPWVJveE1DZ1VBZ0VBamtIUElFR0FBMmloMU5WbmFER2dBQUFBQkpS
VTVFcmtKZ2dnPT0iKTsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJv
dG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi9yZXNvdXJjZXMvc2hhcGUtaW5mby1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWZ1bmN0aW9uIHNoYXBlVGVzdHMoKSB7Ci0gICAgdmFyIHRlc3RzID0gWwotICAgIHsKLSAg
ICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlJywKLSAgICAgICAgJ3BhdGgnIDogWydNJywg
NTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1
MCwgNTAsICdaJ10KLSAgICB9LAotICAgIHsKLSAgICAgICAgJ3NlbGVjdG9yJyA6ICcucG9seWdv
bicsCi0gICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEw
MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdaJ10KLSAgICB9LAotICAgIHsKLSAgICAgICAgJ3NlbGVj
dG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZCcsCi0gICAgICAgICdwYXRoJyA6IFsnTScsIDc1LCA3
NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3NSwgMTI1LCAnTCcsIDc1LCAxMjUsICdMJywgNzUsIDc1
LCAnWiddCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5w
YWRkZWQuYm9yZGVyLWJveCcsCi0gICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAx
NTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAgICdzZWxlY3RvcicgOiAnLnZlcnRpY2FsLWxyID4gLnJlY3Rh
bmdsZScsCi0gICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCA1MCwgMTAwLCAnTCcs
IDE1MCwgMTAwLCAnTCcsIDE1MCwgNTAsICdMJywgNTAsIDUwLCAnWiddCi0gICAgfSwKLSAgICB7
Ci0gICAgICAgICdzZWxlY3RvcicgOiAnLnZlcnRpY2FsLXJsID4gLnJlY3RhbmdsZScsCi0gICAg
ICAgICdwYXRoJyA6IFsnTScsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwg
J0wnLCA1MCwgNTAsICdMJywgMTUwLCA1MCwgJ1onXQotICAgIH0sCi0gICAgewotICAgICAgICAn
c2VsZWN0b3InIDogJy52ZXJ0aWNhbC1ybCA+IC5yZWN0YW5nbGUucGFkZGVkJywKLSAgICAgICAg
J3BhdGgnIDogWydNJywgMTc1LCA3NSwgJ0wnLCAxNzUsIDEyNSwgJ0wnLCA3NSwgMTI1LCAnTCcs
IDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnWiddCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICdzZWxl
Y3RvcicgOiAnLnZlcnRpY2FsLXJsID4gLnJlY3RhbmdsZS5wYWRkZWQuYm9yZGVyLWJveCcsCi0g
ICAgICAgICdwYXRoJyA6IFsnTScsIDE1MCwgNTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEw
MCwgJ0wnLCA1MCwgNTAsICdMJywgMTUwLCA1MCwgJ1onXQotICAgIH0sCi0gICAgewotICAgICAg
ICAnc2VsZWN0b3InIDogJy5jb250ZW50LWJveC5wYWRkZWQnLAotICAgICAgICAncGF0aCcgOiBb
J00nLCAyNSwgMjUsICdMJywgMTI1LCAyNSwgJ0wnLCAxMjUsIDEyNSwgJ0wnLCAyNSwgMTI1LCAn
TCcsIDI1LCAyNSwgJ1onXQotICAgIH0sCi0gICAgewotICAgICAgICAnc2VsZWN0b3InIDogJy5y
YXN0ZXItc3ZnLnBhZGRlZCcsCi0gICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAx
MDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcsIDUwLCAxMDAsICdaJ10KLSAgICB9LAotICAgIHsK
LSAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmFzdGVyLXN2Zy1jb21wbGV4LnBhZGRlZCcsCi0gICAg
ICAgICdwYXRoJyA6IFsnTScsIDM1LCAzNSwgJ0wnLCAxMTUsIDM1LCAnTCcsIDExNSwgNjUsICdM
JywgMzUsIDY1LCAnWicsICdNJywgMzUsIDg1LCAnTCcsIDExNSwgODUsICdMJywgMTE1LCAxMTUs
ICdMJywgMzUsIDExNSwgJ1onXQotICAgIH0sCi0gICAgewotICAgICAgICAnc2VsZWN0b3InIDog
Jy5yYXN0ZXItcG5nLnBhZGRlZCcsCi0gICAgICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wn
LCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcsIDUwLCAxMDAsICdaJ10KLSAgICB9Ci0gICAg
XTsKLQotICAgIGZ1bmN0aW9uIGRvVGVzdHModGVzdHMpIHsKLSAgICAgICAgaWYgKCF0ZXN0cy5s
ZW5ndGgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c1swXTsK
LSAgICAgICAgdGVzdHMgPSB0ZXN0cy5zcGxpY2UoMSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2hhcGVPdXRzaWRlSW5mbyh0ZXN0LnNlbGVjdG9yLCBmdW5jdGlvbihzaGFwZU91dHNpZGUpIHsK
LSAgICAgICAgICAgIHZhciBhY3R1YWwgPSBzaGFwZU91dHNpZGUuc2hhcGUuam9pbignICcpOwot
ICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gdGVzdC5wYXRoLmpvaW4oJyAnKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFjdHVhbCA9PT0gZXhwZWN0ZWQsICJBY3R1YWwgWyIg
KyBhY3R1YWwgKyAiXSBFeHBlY3RlZCBbIiArIGV4cGVjdGVkICsgIl0iKTsKLSAgICAgICAgICAg
IGRvVGVzdHModGVzdHMpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBkb1Rlc3RzKHRlc3Rz
KTsKLX0KLXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsgU2hhcGVJbmZvSGVscGVyLnJ1blNo
YXBlVGVzdChzaGFwZVRlc3RzKTsgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8
ZGl2IGNsYXNzPSdzaGFwZSByZWN0YW5nbGUnPjwvZGl2PgotICAgIDxkaXYgY2xhc3M9J3NoYXBl
IHBvbHlnb24nPjwvZGl2PgotICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUn
PjwvZGl2PgotICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgYm9yZGVyLWJv
eCc+PC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0ndmVydGljYWwtbHInPgotICAgICAgICA8ZGl2IGNs
YXNzPSdzaGFwZSByZWN0YW5nbGUnPjwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXYgY2xhc3M9
J3ZlcnRpY2FsLXJsJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlJz48L2Rp
dj4KLSAgICAgICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIHJlY3RhbmdsZSc+PC9kaXY+Ci0g
ICAgICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgYm9yZGVyLWJveCc+PC9k
aXY+Ci0gICAgPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIGNvbnRlbnQtYm94
Jz48L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmFzdGVyLXN2Zyc+PC9kaXY+
Ci0gICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIHJhc3Rlci1zdmctY29tcGxleCc+PC9kaXY+
Ci0gICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIHJhc3Rlci1wbmcnPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21v
ZGVsL21haW4tZnJhbWUtcmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL21vZGVsL21haW4tZnJhbWUtcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTEzNGJjMTA2Mzk5NDYwNzBhOGY2YmU3MmRmN2Yz
MmIyMTc4MWQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9tYWluLWZyYW1lLXJlc291cmNl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdGluZyB0aGF0
IHRoZSBpbnNwZWN0b3Igc2NyaXB0cyBhcmUgbG9hZGVkIGFuZCB0aGUgbWFpbiBmcmFtZSBVUkwg
Y2FuIGJlIHJlY2VpdmVkLgotCi1NYWluIGZyYW1lOiBtYWluLWZyYW1lLXJlc291cmNlLmh0bWwK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL21haW4t
ZnJhbWUtcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2Rl
bC9tYWluLWZyYW1lLXJlc291cmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY4M2IwMmRiYjUxYzNiZjljZTJkMmZlY2M2ZjliOWI5MDA1MGE5YjkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL21vZGVsL21haW4tZnJhbWUtcmVzb3VyY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDIxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmluaXRpYWxpemVJbnNwZWN0b3JNb2Rl
bHMoKTsKLQotICAgIFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5FdmVudC5NYWluRnJhbWVE
aWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciB1cmwgPSBXZWJJbnNwZWN0
b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLnVybDsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIk1haW4gZnJhbWU6ICIgKyB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZigi
LyIpICsgMSkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0p
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAg
PHA+VGVzdGluZyB0aGF0IHRoZSBpbnNwZWN0b3Igc2NyaXB0cyBhcmUgbG9hZGVkIGFuZCB0aGUg
bWFpbiBmcmFtZSBVUkwgY2FuIGJlIHJlY2VpdmVkLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9wcm9iZS1tYW5h
Z2VyLWFkZC1yZW1vdmUtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvbW9kZWwvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWI0MWU1Yzk1NzRiNWNhN2M3
MzI4ODAzMjM4MmQ4NDQ2MzVhODA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9wcm9iZS1t
YW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMSArMCwwIEBACi1UZXN0aW5nIHRoYXQgdGhlIHByb2JlIG1hbmFnZXIgcHJvcGVybHkgaGFu
ZGxlcyBhZGRpdGlvbiBhbmQgcmVtb3ZhbCBvZiByZWxhdGVkIHByb2Jlcy4KLQotQnJlYWtwb2lu
dCBhdXRvY29udGludWUgc3RhdGUgY2hhbmdlZDogdHJ1ZQotUHJvYmUgc2V0IHdhcyBhZGRlZC4g
TmV3IGNvdW50OiAxCi1Qcm9iZSB3aXRoIGlkZW50aWZpZXIgMSB3YXMgYWRkZWQgdG8gcHJvYmUg
c2V0LgotUHJvYmUgc2V0J3MgcHJvYmUgY291bnQ6IDEKLUJyZWFrcG9pbnQgYWN0aW9ucyBjaGFu
Z2VkLiBOZXcgY291bnQ6IDEKLVByb2JlIHdpdGggaWRlbnRpZmllciAyIHdhcyBhZGRlZCB0byBw
cm9iZSBzZXQuCi1Qcm9iZSBzZXQncyBwcm9iZSBjb3VudDogMgotQnJlYWtwb2ludCBhY3Rpb25z
IGNoYW5nZWQuIE5ldyBjb3VudDogMgotQnJlYWtwb2ludCByZXNvbHZlZCBzdGF0ZSBjaGFuZ2Vk
OiB0cnVlCi1CcmVha3BvaW50IHJlc29sdmVkIHN0YXRlIGNoYW5nZWQ6IHRydWUKLUJyZWFrcG9p
bnQgcmVzb2x2ZWQgc3RhdGUgY2hhbmdlZDogZmFsc2UKLUJyZWFrcG9pbnQgd2FzIGFkZGVkLgot
UEFTUzogQnJlYWtwb2ludCBzaG91bGQgYmUgcmVzb2x2ZWQuCi1pbnNpZGUgYnJlYWtwb2ludEFj
dGlvbnMgYTooMTIpIGI6KFtvYmplY3QgT2JqZWN0XSkKLUJyZWFrcG9pbnQgcmVzb2x2ZWQgc3Rh
dGUgY2hhbmdlZDogdHJ1ZQotSGl0IHRlc3QgY2hlY2twb2ludCBldmVudCAjMCB3aXRoIHR5cGU6
IHByb2JlLW9iamVjdC1zYW1wbGUtYWRkZWQKLVByb2JlIHdpdGggaWRlbnRpZmllciAxIGFkZGVk
IHNhbXBsZTogW29iamVjdCBPYmplY3RdCi1IaXQgdGVzdCBjaGVja3BvaW50IGV2ZW50ICMxIHdp
dGggdHlwZTogcHJvYmUtb2JqZWN0LXNhbXBsZS1hZGRlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFj
dGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9wcm9iZS1t
YW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlYjM1NjBmOWI3MDk3NzU4Yjk0MzJiZDc0NTk0MjI0YzdjNjI4ZGUyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9wcm9iZS1tYW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0Lmlt
cG9ydFNjcmlwdCgiLi4vLi4vLi4vLi4vaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm9i
ZS1oZWxwZXIuanMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmluaXRpYWxpemVJbnNwZWN0b3JNb2Rl
bHMoKTsKLQotICAgIHZhciBjdXJyZW50VGlja3MgPSAwOwotICAgIGNvbnN0IGV4cGVjdGVkVGlj
a3MgPSAyOwotCi0gICAgZnVuY3Rpb24gaW5jcmVtZW50VGljayhldmVudCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJIaXQgdGVzdCBjaGVja3BvaW50IGV2ZW50ICMiICsgY3Vy
cmVudFRpY2tzICsgIiB3aXRoIHR5cGU6ICIgKyBldmVudC50eXBlKTsKLSAgICAgICAgaWYgKCsr
Y3VycmVudFRpY2tzID09PSBleHBlY3RlZFRpY2tzKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBXZWJJbnNwZWN0b3IuUHJvYmUuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvYmUuRXZlbnQuU2FtcGxlQWRkZWQsIGluY3JlbWVu
dFRpY2spOwotCi0gICAgUHJvYmVIZWxwZXIuaW5zdGFsbFRyYWNpbmdMaXN0ZW5lcnMoKTsKLQot
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkg
ewotCi0gICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLQotICAg
ICAgICBpZiAoIS9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChzY3JpcHRPYmplY3Qu
dXJsKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgbG9jYXRpb24gPSBzY3Jp
cHRPYmplY3QuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKDE4LCAwKTsKLSAgICAgICAgLy8gRm9y
IHRoaXMgdGVzdCwgZmlyc3QgY3JlYXRlIHRoZSBicmVha3BvaW50IGFuZCBpdHMgYWN0aW9ucyBi
ZWZvcmUgc2VuZGluZyBhbnl0aGluZyB0byB0aGUgYmFja2VuZC4KLSAgICAgICAgdmFyIGJyZWFr
cG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQobG9jYXRpb24pOwotICAgICAgICBi
cmVha3BvaW50LmF1dG9Db250aW51ZSA9IHRydWU7Ci0gICAgICAgIC8vIENyZWF0ZSB0d28gcmVs
YXRlZCBhY3Rpb25zLgotICAgICAgICBmb3IgKHZhciBpIG9mIFswLCAxXSkKLSAgICAgICAgICAg
IHZhciBhY3Rpb24gPSBicmVha3BvaW50LmNyZWF0ZUFjdGlvbihXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludEFjdGlvbi5UeXBlLlByb2JlLCBudWxsLCAiYSIpOwotCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsKLQotICAgICAgICBi
cmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQu
UmVzb2x2ZWRTdGF0ZURpZENoYW5nZSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChicmVha3BvaW50LnJlc29sdmVkLCAiQnJlYWtwb2ludCBzaG91bGQgYmUg
cmVzb2x2ZWQuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50
aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50QWN0aW9ucygxMiwge3g6MSx5
OjJ9KSJ9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5UZXN0aW5nIHRoYXQgdGhlIHByb2JlIG1h
bmFnZXIgcHJvcGVybHkgaGFuZGxlcyBhZGRpdGlvbiBhbmQgcmVtb3ZhbCBvZiByZWxhdGVkIHBy
b2Jlcy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVscGVyLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9zaGFwZS1pbmZvLWhlbHBlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTgzNTgzZmI1YThjYTJhZDBhZDlmZmFlN2Q1Y2Fj
MGZiNjYwOWViMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3NoYXBlLWluZm8taGVs
cGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotd2luZG93LlNoYXBlSW5mb0hl
bHBlciA9IChmdW5jdGlvbigpIHsKLSAgICBmdW5jdGlvbiBzaGFwZU91dHNpZGVJbmZvKHNlbGVj
dG9yLCBjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00u
Z2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVudCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gb25H
b3REb2N1bWVudChtc2cpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJv
cihtc2cpOwotICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0LnJvb3Q7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucXVlcnlTZWxlY3RvciIsCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5vZGVJZCI6IG5vZGUubm9kZUlkLAotICAgICAg
ICAgICAgICAgICJzZWxlY3RvciI6IHNlbGVjdG9yCi0gICAgICAgICAgICB9LAotICAgICAgICAg
ICAgb25RdWVyeVNlbGVjdG9yKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIG9uUXVl
cnlTZWxlY3Rvcihtc2cpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJv
cihtc2cpOwotICAgICAgICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0OwotICAgICAgICAgICAg
dmFyIGhpZ2hsaWdodENvbmZpZyA9IHsKLSAgICAgICAgICAgICAgICBzaG93SW5mbzogdHJ1ZSwK
LSAgICAgICAgICAgICAgICBjb250ZW50Q29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSwK
LSAgICAgICAgICAgICAgICBwYWRkaW5nQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSwK
LSAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAot
ICAgICAgICAgICAgICAgIG1hcmdpbkNvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0sCi0g
ICAgICAgICAgICB9OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9N
LmhpZ2hsaWdodE5vZGUiLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJub2RlSWQi
OiBub2RlLm5vZGVJZCwKLSAgICAgICAgICAgICAgICAiaGlnaGxpZ2h0Q29uZmlnIjogaGlnaGxp
Z2h0Q29uZmlnCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgb25IaWdobGlnaHROb2RlKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIG9uSGlnaGxpZ2h0Tm9kZShtc2cpIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtc2cpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAid2luZG93LmludGVybmFscy5pbnNw
ZWN0b3JIaWdobGlnaHRPYmplY3QoKSIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBvblJ1
bnRpbWVFdmFsdWF0ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBvblJ1bnRpbWVF
dmFsdWF0ZShtc2cpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvciht
c2cpOwotICAgICAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShtc2cucmVzdWx0LnJlc3Vs
dC52YWx1ZSk7Ci0gICAgICAgICAgICBjYWxsYmFjayh2YWx1ZS5lbGVtZW50SW5mby5zaGFwZU91
dHNpZGVJbmZvKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhdGhzUm91Z2hs
eUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICAgICAgZnVuY3Rpb24gY29vcmRpbmF0ZXNS
b3VnaGx5RXF1YWwoYWN0dWFsLCBleHBlY3RlZCkgewotICAgICAgICAgICAgLy8gU29tZSBwbGF0
Zm9ybXMgbWF5IG9ubHkgc3RvcmUgaW50ZWdlciBwYXRoIHBvaW50cywgc28gdGhlIHBvdGVudGlh
bAotICAgICAgICAgICAgLy8gZGlmZmVyZW5jZXMgYmV0d2VlbiBjb3JyZWN0IHBhdGhzIGNhbiBi
ZSByb3VnaGx5IGhhbGYgYSB1bml0Ci0gICAgICAgICAgICByZXR1cm4gKHR5cGVvZiBhY3R1YWwg
PT09ICdudW1iZXInCi0gICAgICAgICAgICAgICAgJiYgdHlwZW9mIGV4cGVjdGVkID09PSAnbnVt
YmVyJwotICAgICAgICAgICAgICAgICYmIE1hdGguYWJzKGFjdHVhbCAtIGV4cGVjdGVkKSA8IDAu
NSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgZXhwZWN0ZWRTdWJwYXRoU3RhcnQgPSAwLCBl
aSwgYWk7Ci0gICAgICAgIGZvciAodmFyIGVpID0gMCwgYWkgPSAwOyBhaSA8IGFjdHVhbC5sZW5n
dGggJiYgZWkgPCBleHBlY3RlZC5sZW5ndGg7IGFpKyssIGVpKyspIHsKLSAgICAgICAgICAgIGlm
IChleHBlY3RlZFtlaV0gPT09ICdNJykKLSAgICAgICAgICAgICAgICBleHBlY3RlZFN1YnBhdGhT
dGFydCA9IGVpOwotCi0gICAgICAgICAgICBpZiAoYWN0dWFsW2FpXSA9PT0gZXhwZWN0ZWRbZWld
Ci0gICAgICAgICAgICAgICAgfHwgY29vcmRpbmF0ZXNSb3VnaGx5RXF1YWwoYWN0dWFsW2FpXSwg
ZXhwZWN0ZWRbZWldKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAg
Ly8gRXh0cmFwb2xhdGUgdGhlIG1pc3NpbmcgbGluZSB0byBjb21tYW5kIGlmIGl0IGlzIG1pc3Np
bmcgZnJvbSBhY3R1YWwuCi0gICAgICAgICAgICAvLyBUaGUgY2hvaWNlIHRvIGNsb3NlIHRoZSBw
YXRoIHdpdGggYW4gZXhwbGljaXQgbGluZSB0byBjb21tYW5kIGlzCi0gICAgICAgICAgICAvLyBw
bGF0Zm9ybSBkZXBlbmRlbnQuCi0gICAgICAgICAgICBpZiAoYWN0dWFsW2FpXSA9PT0gJ1onCi0g
ICAgICAgICAgICAgICAgJiYgZXhwZWN0ZWRbZWldID09PSAnTCcKLSAgICAgICAgICAgICAgICAm
JiBjb29yZGluYXRlc1JvdWdobHlFcXVhbChleHBlY3RlZFtleHBlY3RlZFN1YnBhdGhTdGFydCAr
IDFdLCBleHBlY3RlZFtlaSArIDFdKQotICAgICAgICAgICAgICAgICYmIGNvb3JkaW5hdGVzUm91
Z2hseUVxdWFsKGV4cGVjdGVkW2V4cGVjdGVkU3VicGF0aFN0YXJ0ICsgMl0sIGV4cGVjdGVkW2Vp
ICsgMl0pKSB7Ci0gICAgICAgICAgICAgICAgZWkgKz0gMjsKLSAgICAgICAgICAgICAgICBhaS0t
OwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHJ1blNoYXBlVGVzdCh0ZXN0Zm4pIHsKLSAgICAgICAgdmFyIGJvZHkgPSBb
Ci0gICAgICAgICAgICAiSW5zcGVjdG9yVGVzdC5zaGFwZU91dHNpZGVJbmZvID0gIiArIHNoYXBl
T3V0c2lkZUluZm8udG9TdHJpbmcoKSwKLSAgICAgICAgICAgICJJbnNwZWN0b3JUZXN0LnBhdGhz
Um91Z2hseUVxdWFsID0gIiArIHBhdGhzUm91Z2hseUVxdWFsLnRvU3RyaW5nKCksCi0gICAgICAg
ICAgICAiKCIgKyB0ZXN0Zm4udG9TdHJpbmcoKSArICIpKCkiCi0gICAgICAgIF07Ci0gICAgICAg
IHdpbmRvdy50ZXN0ID0gbmV3IEZ1bmN0aW9uKAotICAgICAgICAgICAgYm9keS5qb2luKCc7XG4n
KQotICAgICAgICApOwotICAgICAgICBydW5UZXN0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHsK
LSAgICAgICAgJ3J1blNoYXBlVGVzdCcgOiBydW5TaGFwZVRlc3QKLSAgICB9Ci19KSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItdGVzdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMTAyNTU4NzBhMTk1NjFkNzk2ZWY4OGYyZDg1OTYwMDkwMzRlMjRhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRlc3QuanMK
QEAgLTAsMCArMSwxMTUgQEAKK0luc3BlY3RvclRlc3RQcm94eS5yZWdpc3RlckluaXRpYWxpemVy
KGZ1bmN0aW9uKCkgeworCitJbnNwZWN0b3JUZXN0LnN0YXJ0VHJhY2luZ0JyZWFrcG9pbnRzID0g
ZnVuY3Rpb24oKQoreworICAgIGlmICghV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQnJlYWtwb2ludEFk
ZGVkLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludCB3YXMgYWRkZWQuIik7CisgICAgfSk7CisKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5CcmVha3BvaW50UmVtb3ZlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkJyZWFrcG9pbnQgd2FzIHJlbW92ZWQuIik7CisgICAgfSk7CisKKyAgICBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50LkV2ZW50LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2Vy
dChicmVha3BvaW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQsICJVbmV4cGVj
dGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3Bv
aW50IGRpc2FibGVkIHN0YXRlIGNoYW5nZWQ6ICIgKyBicmVha3BvaW50LmRpc2FibGVkKTsKKyAg
ICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVzb2x2ZWRTdGF0ZURpZENoYW5nZSwgZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC50YXJnZXQ7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludCwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkJyZWFrcG9pbnQgcmVzb2x2ZWQgc3RhdGUgY2hhbmdlZDogIiArIGJyZWFrcG9p
bnQucmVzb2x2ZWQpOworICAgIH0pOworCisgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5BdXRvQ29udGludWVE
aWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBicmVha3BvaW50ID0gZXZl
bnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50IGluc3RhbmNlb2Yg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50IGF1dG9jb250aW51ZSBzdGF0ZSBj
aGFuZ2VkOiAiICsgYnJlYWtwb2ludC5hdXRvQ29udGludWUpOworICAgIH0pOworCisgICAgV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5FdmVudC5Db25kaXRpb25EaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2VydChi
cmVha3BvaW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQsICJVbmV4cGVjdGVk
IG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50
IGNvbmRpdGlvbiBjaGFuZ2VkOiAiICsgYnJlYWtwb2ludC5jb25kaXRpb24pOworICAgIH0pOwor
CisgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5FdmVudC5BY3Rpb25zRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewor
ICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50LnRhcmdldDsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoYnJlYWtwb2ludCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LCAiVW5l
eHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJl
YWtwb2ludCBhY3Rpb25zIGNoYW5nZWQuIE5ldyBjb3VudDogIiArIGJyZWFrcG9pbnQuYWN0aW9u
cy5sZW5ndGgpOworICAgIH0pOworfQorCitJbnNwZWN0b3JUZXN0LnN0YXJ0VHJhY2luZ1Byb2Jl
cyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoIVdlYkluc3BlY3Rvci5wcm9iZU1hbmFnZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIFdlYkluc3BlY3Rvci5wcm9iZU1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvYmVNYW5hZ2VyLkV2ZW50LlByb2JlU2V0QWRkZWQsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBwcm9iZVNldCA9IGV2ZW50LmRhdGEucHJvYmVT
ZXQ7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlU2V0IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlByb2JlU2V0LCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKKworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUHJvYmUgc2V0IHdhcyBhZGRlZC4gTmV3IGNvdW50OiAiICsgV2ViSW5z
cGVjdG9yLnByb2JlTWFuYWdlci5wcm9iZVNldHMubGVuZ3RoKTsKKyAgICB9KTsKKworICAgIFdl
Ykluc3BlY3Rvci5wcm9iZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJv
YmVNYW5hZ2VyLkV2ZW50LlByb2JlU2V0UmVtb3ZlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgdmFyIHByb2JlU2V0ID0gZXZlbnQuZGF0YS5wcm9iZVNldDsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQocHJvYmVTZXQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvYmVTZXQsICJVbmV4cGVj
dGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQcm9iZSBz
ZXQgd2FzIHJlbW92ZWQuIE5ldyBjb3VudDogIiArIFdlYkluc3BlY3Rvci5wcm9iZU1hbmFnZXIu
cHJvYmVTZXRzLmxlbmd0aCk7CisgICAgfSk7CisKKyAgICBXZWJJbnNwZWN0b3IuUHJvYmUuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvYmUuRXZlbnQuRXhwcmVzc2lvbkNoYW5nZWQs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBwcm9iZSA9IGV2ZW50LnRhcmdldDsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQocHJvYmUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvYmUs
ICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQcm9iZSB3aXRoIGlkZW50aWZpZXIgIiArIHByb2JlLmlkICsgIiBjaGFuZ2VkIGV4cHJlc3Np
b246ICIgKyBwcm9iZS5leHByZXNzaW9uKTsKKyAgICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5Q
cm9iZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Qcm9iZS5FdmVudC5TYW1wbGVBZGRl
ZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgdmFyIHByb2JlID0gZXZlbnQudGFyZ2V0Owor
ICAgICAgICB2YXIgc2FtcGxlID0gZXZlbnQuZGF0YTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
cHJvYmUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvYmUsICJVbmV4cGVjdGVkIG9iamVjdCB0
eXBlISIpOworICAgICAgICBjb25zb2xlLmFzc2VydChzYW1wbGUgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuUHJvYmVTYW1wbGUsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJQcm9iZSB3aXRoIGlkZW50aWZpZXIgIiArIHByb2JlLmlkICsg
IiBhZGRlZCBzYW1wbGU6ICIgKyBzYW1wbGUpOworICAgIH0pOworCisgICAgV2ViSW5zcGVjdG9y
LlByb2JlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2JlLkV2ZW50LlNhbXBsZXND
bGVhcmVkLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICB2YXIgcHJvYmUgPSBldmVudC50YXJn
ZXQ7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LlByb2JlLCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKKworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiUHJvYmUgd2l0aCBpZGVudGlmaWVyICIgKyBwcm9iZS5pZCArICIgY2xlYXJlZCBh
bGwgc2FtcGxlcy4iKTsKKyAgICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5Qcm9iZVNldC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Qcm9iZVNldC5FdmVudC5Qcm9iZUFkZGVkLCBmdW5j
dGlvbihldmVudCkgeworICAgICAgICB2YXIgcHJvYmUgPSBldmVudC5kYXRhOworICAgICAgICB2
YXIgcHJvYmVTZXQgPSBldmVudC50YXJnZXQ7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2Jl
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2JlLCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEi
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocHJvYmVTZXQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuUHJvYmVTZXQsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQcm9iZSB3aXRoIGlkZW50aWZpZXIgIiArIHByb2JlLmlkICsgIiB3YXMg
YWRkZWQgdG8gcHJvYmUgc2V0LiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvYmUg
c2V0J3MgcHJvYmUgY291bnQ6ICIgKyBwcm9iZVNldC5wcm9iZXMubGVuZ3RoKTsKKyAgICB9KTsK
KworICAgIFdlYkluc3BlY3Rvci5Qcm9iZVNldC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Qcm9iZVNldC5FdmVudC5Qcm9iZVJlbW92ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IHZhciBwcm9iZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBwcm9iZVNldCA9IGV2ZW50LnRh
cmdldDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocHJvYmUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuUHJvYmUsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworICAgICAgICBjb25zb2xlLmFz
c2VydChwcm9iZVNldCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9iZVNldCwgIlVuZXhwZWN0
ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb2JlIHdp
dGggaWRlbnRpZmllciAiICsgcHJvYmUuaWQgKyAiIHdhcyByZW1vdmVkIGZyb20gcHJvYmUgc2V0
LiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvYmUgc2V0J3MgcHJvYmUgY291bnQ6
ICIgKyBwcm9iZVNldC5wcm9iZXMubGVuZ3RoKTsKKyAgICB9KTsKK30KKworfSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVt
b3ZlLWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45OWMzYzMzN2I1YmE3MjM2ZTQyYTAwYmMxZjRkODNmYmFlMjZhY2M4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJl
bW92ZS1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUZXN0aW5nIHRoYXQg
dGhlIHByb2JlIG1hbmFnZXIgcHJvcGVybHkgaGFuZGxlcyBhZGRpdGlvbiBhbmQgcmVtb3ZhbCBv
ZiByZWxhdGVkIHByb2Jlcy4KKworQnJlYWtwb2ludCBhdXRvY29udGludWUgc3RhdGUgY2hhbmdl
ZDogdHJ1ZQorUHJvYmUgc2V0IHdhcyBhZGRlZC4gTmV3IGNvdW50OiAxCitQcm9iZSB3aXRoIGlk
ZW50aWZpZXIgMSB3YXMgYWRkZWQgdG8gcHJvYmUgc2V0LgorUHJvYmUgc2V0J3MgcHJvYmUgY291
bnQ6IDEKK0JyZWFrcG9pbnQgYWN0aW9ucyBjaGFuZ2VkLiBOZXcgY291bnQ6IDEKK1Byb2JlIHdp
dGggaWRlbnRpZmllciAyIHdhcyBhZGRlZCB0byBwcm9iZSBzZXQuCitQcm9iZSBzZXQncyBwcm9i
ZSBjb3VudDogMgorQnJlYWtwb2ludCBhY3Rpb25zIGNoYW5nZWQuIE5ldyBjb3VudDogMgorQnJl
YWtwb2ludCByZXNvbHZlZCBzdGF0ZSBjaGFuZ2VkOiB0cnVlCitCcmVha3BvaW50IHJlc29sdmVk
IHN0YXRlIGNoYW5nZWQ6IHRydWUKK0JyZWFrcG9pbnQgcmVzb2x2ZWQgc3RhdGUgY2hhbmdlZDog
ZmFsc2UKK0JyZWFrcG9pbnQgd2FzIGFkZGVkLgorUEFTUzogQnJlYWtwb2ludCBzaG91bGQgYmUg
cmVzb2x2ZWQuCitCcmVha3BvaW50IHJlc29sdmVkIHN0YXRlIGNoYW5nZWQ6IHRydWUKK1Byb2Jl
IHdpdGggaWRlbnRpZmllciAxIGFkZGVkIHNhbXBsZTogW29iamVjdCBPYmplY3RdCitIaXQgdGVz
dCBjaGVja3BvaW50IGV2ZW50ICMwIHdpdGggdHlwZTogcHJvYmUtb2JqZWN0LXNhbXBsZS1hZGRl
ZAorUHJvYmUgd2l0aCBpZGVudGlmaWVyIDIgYWRkZWQgc2FtcGxlOiBbb2JqZWN0IE9iamVjdF0K
K0hpdCB0ZXN0IGNoZWNrcG9pbnQgZXZlbnQgIzEgd2l0aCB0eXBlOiBwcm9iZS1vYmplY3Qtc2Ft
cGxlLWFkZGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9w
cm9iZS1tYW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjYzODlhOTgwNTg3ZDY4NjY4ZThiOWFlMWEyMzcxZDkwYWE3NjIxNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9iZS1tYW5hZ2VyLWFk
ZC1yZW1vdmUtYWN0aW9ucy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4vZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuRnJhbWUuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zdGFydFRyYWNpbmdCcmVha3Bv
aW50cygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VHJhY2luZ1Byb2JlcygpOworCisg
ICAgICAgIHZhciBjdXJyZW50VGlja3MgPSAwOworICAgICAgICBjb25zdCBleHBlY3RlZFRpY2tz
ID0gMjsKKworICAgICAgICBmdW5jdGlvbiBpbmNyZW1lbnRUaWNrKGV2ZW50KQorICAgICAgICB7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IHRlc3QgY2hlY2twb2ludCBldmVu
dCAjIiArIGN1cnJlbnRUaWNrcyArICIgd2l0aCB0eXBlOiAiICsgZXZlbnQudHlwZSk7CisgICAg
ICAgICAgICBpZiAoKytjdXJyZW50VGlja3MgPT09IGV4cGVjdGVkVGlja3MpCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAg
IFdlYkluc3BlY3Rvci5Qcm9iZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Qcm9iZS5F
dmVudC5TYW1wbGVBZGRlZCwgaW5jcmVtZW50VGljayk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1h
bmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisKKyAgICAgICAgICAg
IHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKKworICAgICAgICAgICAgaWYg
KCEvYnJlYWtwb2ludFwuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gc2NyaXB0T2JqZWN0LmNy
ZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbig0LCAwKTsKKyAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUg
YnJlYWtwb2ludCBhbmQgaXRzIGFjdGlvbnMgYmVmb3JlIHNlbmRpbmcgYW55dGhpbmcgdG8gdGhl
IGJhY2tlbmQuCisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludChsb2NhdGlvbik7CisgICAgICAgICAgICBicmVha3BvaW50LmF1dG9Db250aW51
ZSA9IHRydWU7CisgICAgICAgICAgICBmb3IgKHZhciBpIG9mIFswLCAxXSkKKyAgICAgICAgICAg
ICAgICBicmVha3BvaW50LmNyZWF0ZUFjdGlvbihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludEFjdGlv
bi5UeXBlLlByb2JlLCBudWxsLCAiYSIpOworCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CisKKyAgICAgICAgICAgIGJy
ZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5S
ZXNvbHZlZFN0YXRlRGlkQ2hhbmdlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoYnJlYWtwb2ludC5yZXNvbHZlZCwgIkJyZWFrcG9pbnQgc2hv
dWxkIGJlIHJlc29sdmVkLiIpOworICAgICAgICAgICAgfSk7CisKKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiYnJlYWtwb2ludEFjdGlvbnMoMTIsIHt4OjEseToy
fSkiKTsKKyAgICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QucmVsb2Fk
UGFnZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
CisgICAgPHA+VGVzdGluZyB0aGF0IHRoZSBwcm9iZSBtYW5hZ2VyIHByb3Blcmx5IGhhbmRsZXMg
YWRkaXRpb24gYW5kIHJlbW92YWwgb2YgcmVsYXRlZCBwcm9iZXMuPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
cy9icmVha3BvaW50LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
cy9icmVha3BvaW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYTA2YTgyOWM4YzFmY2I5ODdhM2JlYjNjZjc0
MTIxZmIxNDlhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQuanMKQEAgLTAsMCArMSw1IEBACitmdW5jdGlvbiBi
cmVha3BvaW50QWN0aW9ucyhhLCBiKQoreworICAgIC8vIE9ubHkgcHJlc2VydmUgdGhpcyBtZXNz
YWdlIG9uIHRoZSBjdXJyZW50IHRlc3QgcGFnZSBsb2FkLgorICAgIEluc3BlY3RvclRlc3RQcm94
eS5hZGRSZXN1bHQoImluc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOigiICsgYSArICIpIGI6KCIg
KyBiICsgIikiKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29u
dGVudC1mbG93LWNvbnRlbnQtbm9kZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS9jb250ZW50LWZsb3ctY29udGVudC1ub2Rlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzVkMWM4MTcwZDM5OTNiMzAyMGU4MDI4NjJhNmRkZTY4NjdmN2UwYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29udGVudC1mbG93LWNvbnRlbnQtbm9k
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RpbmcgdGhhdCB0aGUgQ29udGVu
dEZsb3dzIGV2ZW50cyBhcmUgY29ycmVjdGx5IGRpc3BhdGNoZWQgd2hlbiBub2RlcyBhcmUgYXR0
YWNoZWQgdG8vZGV0YWNoZWQgZnJvbSBhIGZsb3cuCisKK1BBU1M6IENvbnRlbnRGbG93IHdhcyBh
ZGRlZC4KK1BBU1M6IENvbnRlbnRGbG93LmNvbnRlbnROb2RlcyBoYXMgYSBsZW5ndGggb2YgMi4K
K1BBU1M6IENvbnRlbnRGbG93LmNvbnRlbnROb2Rlc1swXS5pZCBpcyAiI2NvbnRlbnRTdGF0aWMi
LgorUEFTUzogQ29udGVudEZsb3cuY29udGVudE5vZGVzWzFdLmlkIGlzICIjY29udGVudFJlbW92
ZWQiLgorUEFTUzogIiNjb250ZW50QWRkZWRBdFRoZVRvcCIgd2FzIGFkZGVkIGJlZm9yZSAiI2Nv
bnRlbnRTdGF0aWMiLgorUEFTUzogIiNjb250ZW50QWRkZWRBdFRoZVRvcCIgaXMgZmlyc3QgaW4g
dGhlIGNvbnRlbnROb2RlcyBsaXN0LgorUEFTUzogIiNjb250ZW50QWRkZWRBdFRoZUJvdHRvbSIg
d2FzIGFkZGVkIGxhc3QuCitQQVNTOiAiI2NvbnRlbnRBZGRlZEF0VGhlQm90dG9tIiBpcyBsYXN0
IGluIHRoZSBjb250ZW50Tm9kZXMgbGlzdC4KK1BBU1M6ICIjY29udGVudFJlbW92ZWQiIHdhcyBy
ZW1vdmVkLgorUEFTUzogIiNjb250ZW50UmVtb3ZlZCIgY2Fubm90IGJlIGZvdW5kIGluIHRoZSBj
b250ZW50Tm9kZXMgbGlzdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9jb250ZW50LWZsb3ctY29udGVudC1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9jb250ZW50LWZsb3ctY29udGVudC1ub2Rlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMjEzNjBj
ZjYxZjc0MmRlNTI5YjNlMTU2ZDFhODhlNDk1NDI4NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NvbnRlbnQtZmxvdy1jb250ZW50LW5vZGVzLmh0bWwKQEAg
LTAsMCArMSw5MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
LmNvbnRlbnQKK3sKKyAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsKK30KKy5oaWRkZW4KK3sK
KyAgICAtd2Via2l0LWZsb3ctaW50bzogbm9uZTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gY2hhbmdlRmxvd0NvbnRlbnQoKQoreworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250ZW50QWRkZWRBdFRoZVRvcCIpLmNsYXNzTGlzdC5yZW1vdmUoImhp
ZGRlbiIpOworICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIG1ha2Ugc3VyZSB0aGUgZXZlbnRzIGFy
ZSBhbHdheXMgZmlyZWQgaW4gdGhlIGV4cGVjdGVkIG9yZGVyLgorICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50QWRkZWRBdFRo
ZUJvdHRvbSIpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOworICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50UmVtb3ZlZCIp
LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2
YXIgY29udGVudEZsb3c7CisKKyAgICBmdW5jdGlvbiBvblJvb3RET01Ob2RlSW52YWxpZGF0ZWQo
KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5G
cmFtZS5kb21UcmVlLnJlcXVlc3RDb250ZW50Rmxvd0xpc3QoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBvbkNvbnRlbnRGbG93V2FzQWRkZWQoZXZlbnQpCisgICAgeworICAgICAgICBjb250ZW50
RmxvdyA9IGV2ZW50LmRhdGEuZmxvdzsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGNvbnRlbnRGbG93Lm5hbWUgPT09ICJmbG93IiwgIkNvbnRlbnRGbG93IHdhcyBhZGRlZC4iKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rl
cy5sZW5ndGggPT0gMiwgIkNvbnRlbnRGbG93LmNvbnRlbnROb2RlcyBoYXMgYSBsZW5ndGggb2Yg
Mi4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbnRlbnRGbG93LmNvbnRl
bnROb2Rlc1swXS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJjb250ZW50U3RhdGljIiwgIkNvbnRl
bnRGbG93LmNvbnRlbnROb2Rlc1swXS5pZCBpcyBcIiNjb250ZW50U3RhdGljXCIuIik7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb250ZW50Rmxvdy5jb250ZW50Tm9kZXNbMV0u
Z2V0QXR0cmlidXRlKCJpZCIpID09PSAiY29udGVudFJlbW92ZWQiLCAiQ29udGVudEZsb3cuY29u
dGVudE5vZGVzWzFdLmlkIGlzIFwiI2NvbnRlbnRSZW1vdmVkXCIuIik7CisKKyAgICAgICAgY29u
dGVudEZsb3cuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQu
Q29udGVudE5vZGVXYXNBZGRlZCwgb25Db250ZW50Tm9kZVdhc0FkZGVkLCBudWxsKTsKKyAgICAg
ICAgY29udGVudEZsb3cuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cu
RXZlbnQuQ29udGVudE5vZGVXYXNSZW1vdmVkLCBvbkNvbnRlbnROb2RlV2FzUmVtb3ZlZCwgbnVs
bCk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY2hhbmdlRmxvd0Nv
bnRlbnQoKSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uQ29udGVudE5vZGVXYXNBZGRlZChl
dmVudCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZlbnQuZGF0YS5ub2RlLmdldEF0dHJpYnV0
ZSgiaWQiKSkgeworICAgICAgICBjYXNlICJjb250ZW50QWRkZWRBdFRoZVRvcCI6CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXZlbnQuZGF0YS5iZWZvcmUuZ2V0QXR0cmli
dXRlKCJpZCIpID09PSAiY29udGVudFN0YXRpYyIsICJcIiNjb250ZW50QWRkZWRBdFRoZVRvcFwi
IHdhcyBhZGRlZCBiZWZvcmUgXCIjY29udGVudFN0YXRpY1wiLiIpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rlc1swXSA9PT0gZXZl
bnQuZGF0YS5ub2RlLCAiXCIjY29udGVudEFkZGVkQXRUaGVUb3BcIiBpcyBmaXJzdCBpbiB0aGUg
Y29udGVudE5vZGVzIGxpc3QuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAi
Y29udGVudEFkZGVkQXRUaGVCb3R0b20iOgorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KCFldmVudC5kYXRhLmJlZm9yZSwgIlwiI2NvbnRlbnRBZGRlZEF0VGhlQm90dG9tXCIg
d2FzIGFkZGVkIGxhc3QuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
Y29udGVudEZsb3cuY29udGVudE5vZGVzLmxhc3RWYWx1ZSA9PT0gZXZlbnQuZGF0YS5ub2RlLCAi
XCIjY29udGVudEFkZGVkQXRUaGVCb3R0b21cIiBpcyBsYXN0IGluIHRoZSBjb250ZW50Tm9kZXMg
bGlzdC4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IE9ubHkgdHdvIGFkZCBldmVudHMgYXJlIGV4cGVj
dGVkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gb25Db250ZW50Tm9kZVdh
c1JlbW92ZWQoZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZXZlbnQuZGF0YS5ub2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gImNvbnRlbnRSZW1vdmVkIiwg
IlwiI2NvbnRlbnRSZW1vdmVkXCIgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChjb250ZW50Rmxvdy5jb250ZW50Tm9kZXMuaW5kZXhPZihldmVudC5kYXRh
Lm5vZGUpID09PSAtMSwgIlwiI2NvbnRlbnRSZW1vdmVkXCIgY2Fubm90IGJlIGZvdW5kIGluIHRo
ZSBjb250ZW50Tm9kZXMgbGlzdC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICB2YXIgZG9tVHJlZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNl
TWFuYWdlci5tYWluRnJhbWUuZG9tVHJlZTsKKyAgICAgICAgZG9tVHJlZS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5ET01UcmVlLkV2ZW50LlJvb3RET01Ob2RlSW52YWxpZGF0ZWQsIG9u
Um9vdERPTU5vZGVJbnZhbGlkYXRlZCwgbnVsbCk7CisgICAgICAgIGRvbVRyZWUuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZS5FdmVudC5Db250ZW50Rmxvd1dhc0FkZGVkLCBv
bkNvbnRlbnRGbG93V2FzQWRkZWQsIG51bGwpOworICAgICAgICBkb21UcmVlLnJlcXVlc3RDb250
ZW50Rmxvd0xpc3QoKTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAg
PHA+VGVzdGluZyB0aGF0IHRoZSBDb250ZW50Rmxvd3MgZXZlbnRzIGFyZSBjb3JyZWN0bHkgZGlz
cGF0Y2hlZCB3aGVuIG5vZGVzIGFyZSBhdHRhY2hlZCB0by9kZXRhY2hlZCBmcm9tIGEgZmxvdy48
L3A+CisKKyAgICA8ZGl2IGlkPSJjb250ZW50QWRkZWRBdFRoZVRvcCIgY2xhc3M9ImNvbnRlbnQg
aGlkZGVuIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb250ZW50U3RhdGljIiBjbGFzcz0iY29udGVu
dCI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29udGVudFJlbW92ZWQiIGNsYXNzPSJjb250ZW50Ij48
L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb250ZW50QWRkZWRBdFRoZUJvdHRvbSIgY2xhc3M9ImNvbnRl
bnQgaGlkZGVuIj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ctY29udGVudC1yZW1vdmFsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29udGVudC1mbG93LWNvbnRlbnQtcmVt
b3ZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4N2EwNGMyNjY4M2E0ZWM4ZWUxYWI3NzFk
NWJlNTJiYzljYjQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vY29udGVudC1mbG93LWNvbnRlbnQtcmVtb3ZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitUZXN0aW5nIHRoYXQgdGhlIENvbnRlbnRGbG93cyBldmVudHMgYXJlIGNvcnJlY3RseSBk
aXNwYXRjaGVkIHdoZW4gY29udGVudCBub2RlcyBhcmUgZGV0YWNoZWQgZnJvbSB0aGUgRE9NLgor
CitQQVNTOiBDb250ZW50RmxvdyB3YXMgYWRkZWQuCitQQVNTOiBDb250ZW50Rmxvdy5jb250ZW50
Tm9kZXMgaGFzIGEgbGVuZ3RoIG9mIDIuCitQQVNTOiBDb250ZW50Rmxvdy5jb250ZW50Tm9kZXNb
MF0uaWQgaXMgIiNjb250ZW50U3RhdGljIi4KK1BBU1M6IENvbnRlbnRGbG93LmNvbnRlbnROb2Rl
c1sxXS5pZCBpcyAiI2NvbnRlbnRSZW1vdmVkIi4KK1BBU1M6ICIjY29udGVudFJlbW92ZWQiIHdh
cyByZW1vdmVkLgorUEFTUzogIiNjb250ZW50UmVtb3ZlZCIgY2Fubm90IGJlIGZvdW5kIGluIHRo
ZSBjb250ZW50Tm9kZXMgbGlzdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9jb250ZW50LWZsb3ctY29udGVudC1yZW1vdmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tL2NvbnRlbnQtZmxvdy1jb250ZW50LXJlbW92YWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NGNlMTMwMmI4YWI3OTFkZWQ1MWI4ZjExODg5OWVlNDVkMmJmNWUxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ctY29udGVudC1yZW1vdmFs
Lmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLmNvbnRlbnQKK3sKKyAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsKK30KKzwv
c3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gY2hhbmdlRmxvd0NvbnRlbnQo
KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50UmVtb3ZlZCIpLnJlbW92
ZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgY29udGVudEZsb3c7CisKKyAg
ICBmdW5jdGlvbiBvblJvb3RET01Ob2RlSW52YWxpZGF0ZWQoKQorICAgIHsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5kb21UcmVlLnJlcXVlc3RD
b250ZW50Rmxvd0xpc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkNvbnRlbnRGbG93V2Fz
QWRkZWQoZXZlbnQpCisgICAgeworICAgICAgICBjb250ZW50RmxvdyA9IGV2ZW50LmRhdGEuZmxv
dzsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbnRlbnRGbG93Lm5hbWUgPT09
ICJmbG93IiwgIkNvbnRlbnRGbG93IHdhcyBhZGRlZC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGNvbnRlbnRGbG93LmNvbnRlbnROb2Rlcy5sZW5ndGggPT09IDIsICJDb250
ZW50Rmxvdy5jb250ZW50Tm9kZXMgaGFzIGEgbGVuZ3RoIG9mIDIuIik7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChjb250ZW50Rmxvdy5jb250ZW50Tm9kZXNbMF0uZ2V0QXR0cmli
dXRlKCJpZCIpID09PSAiY29udGVudFN0YXRpYyIsICJDb250ZW50Rmxvdy5jb250ZW50Tm9kZXNb
MF0uaWQgaXMgXCIjY29udGVudFN0YXRpY1wiLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQoY29udGVudEZsb3cuY29udGVudE5vZGVzWzFdLmdldEF0dHJpYnV0ZSgiaWQiKSA9
PT0gImNvbnRlbnRSZW1vdmVkIiwgIkNvbnRlbnRGbG93LmNvbnRlbnROb2Rlc1sxXS5pZCBpcyBc
IiNjb250ZW50UmVtb3ZlZFwiLiIpOworCisgICAgICAgIGNvbnRlbnRGbG93LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93LkV2ZW50LkNvbnRlbnROb2RlV2FzUmVtb3Zl
ZCwgb25Db250ZW50Tm9kZVdhc1JlbW92ZWQsIG51bGwpOworCisgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImNoYW5nZUZsb3dDb250ZW50KCkiKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBvbkNvbnRlbnROb2RlV2FzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChldmVudC5kYXRhLm5vZGUuZ2V0QXR0cmlidXRlKCJpZCIp
ID09PSAiY29udGVudFJlbW92ZWQiLCAiXCIjY29udGVudFJlbW92ZWRcIiB3YXMgcmVtb3ZlZC4i
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbnRlbnRGbG93LmNvbnRlbnRO
b2Rlcy5pbmRleE9mKGV2ZW50LmRhdGEubm9kZSkgPT09IC0xLCAiXCIjY29udGVudFJlbW92ZWRc
IiBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIGNvbnRlbnROb2RlcyBsaXN0LiIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIFdlYkluc3BlY3Rvci5G
cmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5NYWluUmVzb3Vy
Y2VEaWRDaGFuZ2UsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZG9tVHJlZSA9IFdlYkluc3Bl
Y3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5tYWluRnJhbWUuZG9tVHJlZTsKKyAgICAgICAgZG9t
VHJlZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlLkV2ZW50LlJvb3RET01O
b2RlSW52YWxpZGF0ZWQsIG9uUm9vdERPTU5vZGVJbnZhbGlkYXRlZCwgbnVsbCk7CisgICAgICAg
IGRvbVRyZWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZS5FdmVudC5Db250
ZW50Rmxvd1dhc0FkZGVkLCBvbkNvbnRlbnRGbG93V2FzQWRkZWQsIG51bGwpOworICAgICAgICBk
b21UcmVlLnJlcXVlc3RDb250ZW50Rmxvd0xpc3QoKTsKKyAgICB9KTsKKworICAgIEluc3BlY3Rv
clRlc3QucmVsb2FkUGFnZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyB0aGF0IHRoZSBDb250ZW50Rmxvd3MgZXZlbnRz
IGFyZSBjb3JyZWN0bHkgZGlzcGF0Y2hlZCB3aGVuIGNvbnRlbnQgbm9kZXMgYXJlIGRldGFjaGVk
IGZyb20gdGhlIERPTS48L3A+CisKKyAgICA8ZGl2IGlkPSJjb250ZW50U3RhdGljIiBjbGFzcz0i
Y29udGVudCI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29udGVudFJlbW92ZWQiIGNsYXNzPSJjb250
ZW50Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ctbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZG9tL2NvbnRlbnQtZmxvdy1saXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41YTE1MGMyNTg1N2FiZmZhYzc2ZDEyODc0NTMwMTIxNTE5Y2FhM2NkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ctbGlzdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0aW5nIHRoYXQgdGhlIENvbnRlbnRGbG93cyBldmVu
dHMgYXJlIGNvcnJlY3RseSBkaXNwYXRjaGVkIHdoZW4gbmV3IGZsb3dzIGFyZSBjcmVhdGVkL3Jl
bW92ZWQuCisKK1BBU1M6IENvbnRlbnRGbG93IHdhcyBhZGRlZAorUEFTUzogRmxvdyBjb3VudCBp
cyAxCitQQVNTOiBDb250ZW50RmxvdyB3YXMgcmVtb3ZlZAorUEFTUzogRmxvdyBjb3VudCBpcyAw
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29udGVudC1mbG93LWxp
c3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29udGVudC1mbG93LWxpc3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YjY4N2Y4OGMwYzEwNzU2YTVjMGI2NGI0MDdlN2RjZjdlZmVlNzc0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LWZsb3ct
bGlzdC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KKyNmbG93MQoreworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93MTsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcmVtb3ZlRmxvdygpCit7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZsb3cxIikucmVtb3ZlKCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGZ1bmN0aW9uIG9uUm9vdERPTU5vZGVJbnZhbGlkYXRlZCgp
CisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZy
YW1lLmRvbVRyZWUucmVxdWVzdENvbnRlbnRGbG93TGlzdCgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG9uQ29udGVudEZsb3dXYXNBZGRlZChldmVudCkKKyAgICB7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChldmVudC5kYXRhLmZsb3cubmFtZSA9PT0gImZsb3cxIiwgIkNvbnRl
bnRGbG93IHdhcyBhZGRlZCIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoV2Vi
SW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5kb21UcmVlLmZsb3dzQ291
bnQgPT09IDEsICJGbG93IGNvdW50IGlzIDEiKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJyZW1vdmVGbG93KCkiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkNv
bnRlbnRGbG93V2FzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChldmVudC5kYXRhLmZsb3cubmFtZSA9PT0gImZsb3cxIiwgIkNvbnRlbnRGbG93
IHdhcyByZW1vdmVkIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNw
ZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLmRvbVRyZWUuZmxvd3NDb3VudCA9
PT0gMCwgIkZsb3cgY291bnQgaXMgMCIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgIH0KKworICAgIFdlYkluc3BlY3Rvci5GcmFtZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICB2YXIgZG9tVHJlZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFu
YWdlci5tYWluRnJhbWUuZG9tVHJlZTsKKyAgICAgICAgZG9tVHJlZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5ET01UcmVlLkV2ZW50LlJvb3RET01Ob2RlSW52YWxpZGF0ZWQsIG9uUm9v
dERPTU5vZGVJbnZhbGlkYXRlZCwgbnVsbCk7CisgICAgICAgIGRvbVRyZWUuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZS5FdmVudC5Db250ZW50Rmxvd1dhc0FkZGVkLCBvbkNv
bnRlbnRGbG93V2FzQWRkZWQsIG51bGwpOworICAgICAgICBkb21UcmVlLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRPTVRyZWUuRXZlbnQuQ29udGVudEZsb3dXYXNSZW1vdmVkLCBvbkNv
bnRlbnRGbG93V2FzUmVtb3ZlZCwgbnVsbCk7CisgICAgICAgIGRvbVRyZWUucmVxdWVzdENvbnRl
bnRGbG93TGlzdCgpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8
cD5UZXN0aW5nIHRoYXQgdGhlIENvbnRlbnRGbG93cyBldmVudHMgYXJlIGNvcnJlY3RseSBkaXNw
YXRjaGVkIHdoZW4gbmV3IGZsb3dzIGFyZSBjcmVhdGVkL3JlbW92ZWQuPC9wPgorCisgICAgPGRp
diBpZD0iZmxvdzEiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LW5vZGUtcmVnaW9uLWluZm8tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LW5vZGUtcmVnaW9uLWluZm8tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmNWQxYmE3NDI3OWFjNGVjY2Y5NTBmOGU4YzRhMmUxYjgy
ZTZhOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NvbnRl
bnQtbm9kZS1yZWdpb24taW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVGVzdGlu
ZyB0aGF0IHRoZSBET01UcmVlTWFuYWdlci5nZXROb2RlQ29udGVudEZsb3dJbmZvIHJldHVybnMg
dGhlIGNvbnRhaW5pbmcgcmVnaW9ucy4KKworCitTZWxlY3RvcjogI2Zsb3cKK1JlZ2lvbiBmbG93
IG5hbWU6IG5vbmUKK0NvbnRlbnQgZmxvdyBuYW1lOiBmbG93CitSZWdpb25zIGNvdW50OiAyCitS
ZWdpb25zOiBkaXYjcmVnaW9uMS5yZWdpb24sIGRpdiNyZWdpb24yLnJlZ2lvbgorCitTZWxlY3Rv
cjogLmNvbnRlbnROb2RlMQorUmVnaW9uIGZsb3cgbmFtZTogbm9uZQorQ29udGVudCBmbG93IG5h
bWU6IGZsb3cKK1JlZ2lvbnMgY291bnQ6IDEKK1JlZ2lvbnM6IGRpdiNyZWdpb24xLnJlZ2lvbgor
CitTZWxlY3RvcjogLmNvbnRlbnROb2RlMgorUmVnaW9uIGZsb3cgbmFtZTogbm9uZQorQ29udGVu
dCBmbG93IG5hbWU6IGZsb3cKK1JlZ2lvbnMgY291bnQ6IDIKK1JlZ2lvbnM6IGRpdiNyZWdpb24x
LnJlZ2lvbiwgZGl2I3JlZ2lvbjIucmVnaW9uCisKK1NlbGVjdG9yOiBib2R5CitSZWdpb24gZmxv
dyBuYW1lOiBub25lCitDb250ZW50IGZsb3cgbmFtZTogbm9uZQorUmVnaW9ucyBjb3VudDogTi9B
CitSZWdpb25zOiBOL0EKKworU2VsZWN0b3I6ICNyZWdpb24xCitSZWdpb24gZmxvdyBuYW1lOiBm
bG93CitDb250ZW50IGZsb3cgbmFtZTogbm9uZQorUmVnaW9ucyBjb3VudDogTi9BCitSZWdpb25z
OiBOL0EKKworU2VsZWN0b3I6ICNyZWdpb24yCitSZWdpb24gZmxvdyBuYW1lOiBmbG93CitDb250
ZW50IGZsb3cgbmFtZTogbm9uZQorUmVnaW9ucyBjb3VudDogTi9BCitSZWdpb25zOiBOL0EKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jb250ZW50LW5vZGUtcmVnaW9u
LWluZm8uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29udGVudC1ub2RlLXJlZ2lv
bi1pbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc5NGEyZWMyZGJjOTNkYzA1YzgyZTUyZjJmYzVlN2U2
NjVjYzU5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY29u
dGVudC1ub2RlLXJlZ2lvbi1pbmZvLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorI2Zsb3cKK3sKKyAgICAtd2Via2l0LWZsb3ct
aW50bzogZmxvdzsKK30KKy5jb250ZW50Tm9kZTEKK3sKKyAgICB3aWR0aDogMTAwJTsKKyAgICBo
ZWlnaHQ6IDUwcHg7Cit9CisuY29udGVudE5vZGUyCit7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
aGVpZ2h0OiAxNTBweDsKK30KKy5yZWdpb24KK3sKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogZmxv
dzsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHF1ZXJ5TGlz
dCA9IFsiI2Zsb3ciLCAiLmNvbnRlbnROb2RlMSIsICIuY29udGVudE5vZGUyIiwgImJvZHkiLCAi
I3JlZ2lvbjEiLCAiI3JlZ2lvbjIiXTsKKyAgICB2YXIgZG9jdW1lbnROb2RlSWQ7CisKKyAgICBX
ZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3Vt
ZW50Tm9kZSkgeworICAgICAgICBkb2N1bWVudE5vZGVJZCA9IGRvY3VtZW50Tm9kZS5pZDsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLmdldE5hbWVkRmxvd0NvbGxlY3Rpb24o
ZG9jdW1lbnROb2RlSWQpOworICAgICAgICBuZXh0KCk7CisgICAgfSk7CisKKyAgICBmdW5jdGlv
biBxdWVyeShzZWxlY3RvciwgY2FsbGJhY2spCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiXG5TZWxlY3RvcjogIiArIHNlbGVjdG9yKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRv
bVRyZWVNYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlSWQsIHNlbGVjdG9yLCBmdW5j
dGlvbihjb250ZW50Tm9kZUlkKSB7CisgICAgICAgICAgICBpZiAoIWNvbnRlbnROb2RlSWQpIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRE9NIG5vZGUgbm90IGZvdW5kLiIp
OworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICB2YXIgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQoY29u
dGVudE5vZGVJZCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuZ2V0
Tm9kZUNvbnRlbnRGbG93SW5mbyhkb21Ob2RlLCBmdW5jdGlvbihlcnJvciwgcmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yKTsKKyAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSZWdp
b24gZmxvdyBuYW1lOiAiICsgKHJlc3VsdC5yZWdpb25GbG93ID8gcmVzdWx0LnJlZ2lvbkZsb3cu
bmFtZSA6ICJub25lIikpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
Q29udGVudCBmbG93IG5hbWU6ICIgKyAocmVzdWx0LmNvbnRlbnRGbG93ID8gcmVzdWx0LmNvbnRl
bnRGbG93Lm5hbWUgOiAibm9uZSIpKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJlZ2lvbnMgY291bnQ6ICIgKyAocmVzdWx0LnJlZ2lvbnMgPyByZXN1bHQucmVnaW9u
cy5sZW5ndGggOiAiTi9BIikpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUmVnaW9uczogIiArIChyZXN1bHQucmVnaW9ucyA/IHJlc3VsdC5yZWdpb25zLm1hcChXZWJJ
bnNwZWN0b3IuZGlzcGxheU5hbWVGb3JOb2RlKS5qb2luKCIsICIpIDogIk4vQSIpKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
Ik5vIHJlZ2lvbiBmbG93IGluZm9ybWF0aW9uLiIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bmV4dCgpCisgICAgeworICAgICAgICBpZiAoIXF1ZXJ5TGlzdC5sZW5ndGgpCisgICAgICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgcXVlcnkocXVl
cnlMaXN0LnNoaWZ0KCksIG5leHQpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RpbmcgdGhhdCB0aGUgRE9NVHJlZU1h
bmFnZXIuZ2V0Tm9kZUNvbnRlbnRGbG93SW5mbyByZXR1cm5zIHRoZSBjb250YWluaW5nIHJlZ2lv
bnMuPC9wPgorCisgICAgPGRpdiBpZD0iZmxvdyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRl
bnROb2RlMSI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnROb2RlMiI+PC9kaXY+
CisgICAgPC9kaXY+CisKKyAgICA8ZGl2IGlkPSJyZWdpb24xIiBjbGFzcz0icmVnaW9uIj48L2Rp
dj4KKyAgICA8ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0icmVnaW9uIj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9o
aWdobGlnaHQtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJmYzdjMzk3
MDNkYmY0MzZjZDBkMTlhNWQ3MWNiM2UxMzg1MGViMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1BBU1M6IEFjdHVhbCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAx
MDAgTCA1MCAxMDAgTCA1MCA1MCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDE1MCA1MCBMIDE1MCAx
MDAgTCA1MCAxMDAgTCA1MCA1MCBaXQorUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTAwIDUwIEwg
MTAwIDEwMCBMIDUwIDEwMCBaXSBFeHBlY3RlZCBbTSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAg
TCA1MCAxMDAgWl0KK1BBU1M6IEFjdHVhbCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3
NSAxMjUgTCA3NSA3NSBaXSBFeHBlY3RlZCBbTSA3NSA3NSBMIDE3NSA3NSBMIDE3NSAxMjUgTCA3
NSAxMjUgTCA3NSA3NSBaXQorUEFTUzogQWN0dWFsIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEw
MCBMIDUwIDEwMCBMIDUwIDUwIFpdIEV4cGVjdGVkIFtNIDUwIDUwIEwgMTUwIDUwIEwgMTUwIDEw
MCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBBY3R1YWwgW00gNTAgNTAgTCA1MCAxMDAgTCAx
NTAgMTAwIEwgMTUwIDUwIEwgNTAgNTAgWl0gRXhwZWN0ZWQgW00gNTAgNTAgTCA1MCAxMDAgTCAx
NTAgMTAwIEwgMTUwIDUwIEwgNTAgNTAgWl0KK1BBU1M6IEFjdHVhbCBbTSAxNTAgNTAgTCAxNTAg
MTAwIEwgNTAgMTAwIEwgNTAgNTAgTCAxNTAgNTAgWl0gRXhwZWN0ZWQgW00gMTUwIDUwIEwgMTUw
IDEwMCBMIDUwIDEwMCBMIDUwIDUwIEwgMTUwIDUwIFpdCitQQVNTOiBBY3R1YWwgW00gMTc1IDc1
IEwgMTc1IDEyNSBMIDc1IDEyNSBMIDc1IDc1IEwgMTc1IDc1IFpdIEV4cGVjdGVkIFtNIDE3NSA3
NSBMIDE3NSAxMjUgTCA3NSAxMjUgTCA3NSA3NSBMIDE3NSA3NSBaXQorUEFTUzogQWN0dWFsIFtN
IDE1MCA1MCBMIDE1MCAxMDAgTCA1MCAxMDAgTCA1MCA1MCBMIDE1MCA1MCBaXSBFeHBlY3RlZCBb
TSAxNTAgNTAgTCAxNTAgMTAwIEwgNTAgMTAwIEwgNTAgNTAgTCAxNTAgNTAgWl0KK1BBU1M6IEFj
dHVhbCBbTSAyNSAyNSBMIDEyNSAyNSBMIDEyNSAxMjUgTCAyNSAxMjUgTCAyNSAyNSBaXSBFeHBl
Y3RlZCBbTSAyNSAyNSBMIDEyNSAyNSBMIDEyNSAxMjUgTCAyNSAxMjUgTCAyNSAyNSBaXQorUEFT
UzogQWN0dWFsIFtNIDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBaXSBFeHBlY3Rl
ZCBbTSA1MCA1MCBMIDEwMCA1MCBMIDEwMCAxMDAgTCA1MCAxMDAgWl0KK1BBU1M6IEFjdHVhbCBb
TSAzNSAzNSBMIDExNSAzNSBMIDExNSA2NSBMIDM1IDY1IFogTSAzNSA4NSBMIDExNSA4NSBMIDEx
NSAxMTUgTCAzNSAxMTUgWl0gRXhwZWN0ZWQgW00gMzUgMzUgTCAxMTUgMzUgTCAxMTUgNjUgTCAz
NSA2NSBaIE0gMzUgODUgTCAxMTUgODUgTCAxMTUgMTE1IEwgMzUgMTE1IFpdCitQQVNTOiBBY3R1
YWwgW00gNTAgNTAgTCAxMDAgNTAgTCAxMDAgMTAwIEwgNTAgMTAwIFpdIEV4cGVjdGVkIFtNIDUw
IDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBaXQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLW1hcmdpbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRl
LW1hcmdpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRhYjYwYzMzZTVjYzhjOWFlYTcxZDU0
NTczYzRjNTdhZDM5YWJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtbWFyZ2luLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKK1BBU1M6IFNoYXBlIHJvdWdobHkgZXF1YWxzIFtNIDYwIDUwIEwgOTAgNTAgQyA5
NS41MiA1MCAxMDAgNTQuNDggMTAwIDYwIEwgMTAwIDkwIEMgMTAwIDk1LjUyIDk1LjUyIDEwMCA5
MCAxMDAgTCA2MCAxMDAgQyA1NC40OCAxMDAgNTAgOTUuNTIgNTAgOTAgTCA1MCA2MCBDIDUwIDU0
LjQ4IDU0LjQ4IDUwIDYwIDUwIFpdCitQQVNTOiBNYXJnaW4gc2hhcGUgcm91Z2hseSBlcXVhbHMg
W00gNjAgNDAgTCA5MCA0MCBDIDEwMS4wNSA0MCAxMTAgNDguOTUgMTEwIDYwIEwgMTEwIDkwIEMg
MTEwIDEwMS4wNSAxMDEuMDUgMTEwIDkwIDExMCBMIDYwIDExMCBDIDQ4Ljk1IDExMCA0MCAxMDEu
MDUgNDAgOTAgTCA0MCA2MCBDIDQwIDQ4Ljk1IDQ4Ljk1IDQwIDYwIDQwIFpdCitQQVNTOiBTaGFw
ZSByb3VnaGx5IGVxdWFscyBbTSA3NSAyNSBMIDc1IDI1IEMgMTAyLjYxIDI1IDEyNSA0Ny4zOSAx
MjUgNzUgTCAxMjUgNzUgQyAxMjUgMTAyLjYxIDEwMi42MSAxMjUgNzUgMTI1IEwgNzUgMTI1IEMg
NDcuMzkgMTI1IDI1IDEwMi42MSAyNSA3NSBMIDI1IDc1IEMgMjUgNDcuMzkgNDcuMzkgMjUgNzUg
MjUgWl0KK1BBU1M6IE1hcmdpbiBzaGFwZSByb3VnaGx5IGVxdWFscyBbTSA3NSAxNSBMIDc1IDE1
IEMgMTA4LjE0IDE1IDEzNSA0MS44NiAxMzUgNzUgTCAxMzUgNzUgQyAxMzUgMTA4LjE0IDEwOC4x
NCAxMzUgNzUgMTM1IEwgNzUgMTM1IEMgNDEuODYgMTM1IDE1IDEwOC4xNCAxNSA3NSBMIDE1IDc1
IEMgMTUgNDEuODYgNDEuODYgMTUgNzUgMTUgWl0KK1BBU1M6IFNoYXBlIHJvdWdobHkgZXF1YWxz
IFtNIDUwIDUwIEwgMTAwIDUwIEwgMTAwIDEwMCBMIDUwIDEwMCBMIDUwIDUwIFpdCitQQVNTOiBN
YXJnaW4gc2hhcGUgcm91Z2hseSBlcXVhbHMgW00gNTAgNDkgTCAxMDAgNDkgTCAxMDAgNTAgTCA1
MCA1MCBMIDUwIDQ5IFogTSA0OSA1MCBMIDEwMSA1MCBMIDEwMSAxMDAgTCA0OSAxMDAgTCA0OSA1
MCBaIE0gNTAgMTAwIEwgMTAwIDEwMCBMIDEwMCAxMDEgTCA1MCAxMDEgTCA1MCAxMDAgWl0KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9oaWdobGlnaHQtc2hhcGUtb3V0
c2lkZS1tYXJnaW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vaGlnaGxpZ2h0LXNo
YXBlLW91dHNpZGUtbWFyZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RhNTQxOGFjN2M3OWVjODBlN2Yz
ZmY0NDQ4OTc2YzJhMGM3Mjc2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vaGlnaGxpZ2h0LXNoYXBlLW91dHNpZGUtbWFyZ2luLmh0bWwKQEAgLTAsMCArMSwx
MDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgewor
ICAgIG1hcmdpbjogMDsKK30KKy5zaGFwZSB7CisgICAgZmxvYXQ6IGxlZnQ7CisgICAgd2lkdGg6
IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgcGFkZGluZzogMjVweCA3NXB4IDc1cHgg
MjVweDsKKyAgICBtYXJnaW4tcmlnaHQ6IC0yMDBweDsKKyAgICAtd2Via2l0LXNoYXBlLW1hcmdp
bjogMTBweDsKK30KKy5pbnNldCB7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBpbnNldCgy
NXB4IDI1cHggMjVweCAyNXB4IHJvdW5kIDEwcHggMTBweCkgY29udGVudC1ib3g7Cit9CisuY2ly
Y2xlIHsKKyAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IGNpcmNsZSg1MHB4KSBjb250ZW50LWJv
eDsKK30KKy5zdmcgeworICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogdXJsKCJkYXRhOmltYWdl
L3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmll
d0JveD0nMCAwIDEwMCAxMDAnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnIHdpZHRoPScxMDBw
eCcgaGVpZ2h0PScxMDBweCc+PHJlY3QgeD0nMjUnIHk9JzI1JyB3aWR0aD0nNTAnIGhlaWdodD0n
NTAnIGZpbGw9J2JsdWUnIC8+PC9zdmc+Iik7CisgICAgLXdlYmtpdC1zaGFwZS1tYXJnaW46IDFw
eDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuL3NoYXBlcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0KCkgeworICAgIHZhciB0ZXN0Y2FzZXMgPSBbCisgICAgeworICAgICAgICAnc2VsZWN0b3In
IDogJy5pbnNldCcsCisgICAgICAgICdzaGFwZScgOiByb3VuZGVkUmVjdENvbW1hbmRzKDUwLCA1
MCwgNTAsIDUwLCAxMCksCisgICAgICAgICdtYXJnaW5TaGFwZScgOiByb3VuZGVkUmVjdENvbW1h
bmRzKDQwLCA0MCwgNzAsIDcwLCAyMCkKKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9y
JyA6ICcuY2lyY2xlJywKKyAgICAgICAgJ3NoYXBlJyA6IHJvdW5kZWRSZWN0Q29tbWFuZHMoMjUs
IDI1LCAxMDAsIDEwMCwgNTApLAorICAgICAgICAnbWFyZ2luU2hhcGUnIDogcm91bmRlZFJlY3RD
b21tYW5kcygxNSwgMTUsIDEyMCwgMTIwLCA2MCkKKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3Nl
bGVjdG9yJyA6ICcuc3ZnJywKKyAgICAgICAgJ3NoYXBlJyA6IHJvdW5kZWRSZWN0Q29tbWFuZHMo
NTAsIDUwLCA1MCwgNTAsIDApLAorICAgICAgICAnbWFyZ2luU2hhcGUnIDogW10uY29uY2F0KHJv
dW5kZWRSZWN0Q29tbWFuZHMoNTAsIDQ5LCA1MCwgMSwgMCksCisgICAgICAgICAgICByb3VuZGVk
UmVjdENvbW1hbmRzKDQ5LCA1MCwgNTIsIDUwLCAwKSwKKyAgICAgICAgICAgIHJvdW5kZWRSZWN0
Q29tbWFuZHMoNTAsIDEwMCwgNTAsIDEsIDApKQorICAgIH0KKyAgICBdOworCisgICAgZnVuY3Rp
b24gcm91bmRlZFJlY3RDb21tYW5kcyh4LCB5LCB3LCBoLCByKSB7CisgICAgICAgIGlmICghcikK
KyAgICAgICAgICAgIHJldHVybiBbJ00nLCB4LCB5LCAnTCcsIHggKyB3LCB5LCAnTCcsIHggKyB3
LCB5ICsgaCwgJ0wnLCB4LCB5ICsgaCwgJ0wnLCB4LCB5LCAnWiddOworCisgICAgICAgIC8vIEFw
cHJveGltYXRlIDEgLSBrYXBwYSwgc2VlIFBhdGguY3BwCisgICAgICAgIHZhciBjb250cm9sID0g
LjQ0NzcxNTsKKworICAgICAgICB2YXIgY29tbWFuZHMgPSBbXTsKKworICAgICAgICBjb21tYW5k
cy5wdXNoKCdNJywgeCArIHIsIHkpOworICAgICAgICBjb21tYW5kcy5wdXNoKCdMJywgeCArIHcg
LSByLCB5KTsKKyAgICAgICAgY29tbWFuZHMucHVzaCgnQycsIHggKyB3IC0gY29udHJvbCAqIHIs
IHksIHggKyB3LCB5ICsgY29udHJvbCAqIHIsIHggKyB3LCB5ICsgcik7CisKKyAgICAgICAgY29t
bWFuZHMucHVzaCgnTCcsIHggKyB3LCB5ICsgaCAtIHIpOworICAgICAgICBjb21tYW5kcy5wdXNo
KCdDJywgeCArIHcsIHkgKyBoIC0gY29udHJvbCAqIHIsIHggKyB3IC0gY29udHJvbCAqIHIsIHkg
KyBoLCB4ICsgdyAtIHIsIHkgKyBoKTsKKworICAgICAgICBjb21tYW5kcy5wdXNoKCdMJywgeCAr
IHIsIHkgKyBoKTsKKyAgICAgICAgY29tbWFuZHMucHVzaCgnQycsIHggKyBjb250cm9sICogciwg
eSArIGgsIHgsIHkgKyBoIC0gY29udHJvbCAqIHIsIHgsIHkgKyBoIC0gcik7CisKKyAgICAgICAg
Y29tbWFuZHMucHVzaCgnTCcsIHgsIHkgKyByKTsKKyAgICAgICAgY29tbWFuZHMucHVzaCgnQycs
IHgsIHkgKyBjb250cm9sICogciwgeCArIGNvbnRyb2wgKiByLCB5LCB4ICsgciwgeSk7CisgICAg
ICAgIGNvbW1hbmRzLnB1c2goJ1onKTsKKworICAgICAgICByZXR1cm4gY29tbWFuZHM7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuTmV4dFRlc3QodGVzdHMpIHsKKyAgICAgICAgdmFyIHRlc3Rj
YXNlID0gdGVzdHNbMF07CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5TaGFwZXMuZ2V0U2hhcGVP
dXRzaWRlSW5mb0ZvclNlbGVjdG9yKHRlc3RjYXNlLnNlbGVjdG9yLCBmdW5jdGlvbihwYXlsb2Fk
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ29tcGFyaW5nIHNoYXBlIGluZm9y
bWF0aW9uIGZvciBzZWxlY3RvcjogIiArIHRlc3RjYXNlLnNlbGVjdG9yKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuU2hhcGVzLmFzc2VydFBhdGhzQXJlUm91Z2hseUVxdWFsKHBheWxvYWQu
c2hhcGUsIHRlc3RjYXNlLnNoYXBlLCAiU2hhcGUgaW5mb3JtYXRpb24gd2FzIG5vdCByb3VnaGx5
IGVxdWFsLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5TaGFwZXMuYXNzZXJ0UGF0aHNB
cmVSb3VnaGx5RXF1YWwocGF5bG9hZC5tYXJnaW5TaGFwZSwgdGVzdGNhc2UubWFyZ2luU2hhcGUs
ICJNYXJnaW4gc2hhcGUgaW5mb3JtYXRpb24gd2FzIG5vdCByb3VnaGx5IGVxdWFsLiIpOworCisg
ICAgICAgICAgICBpZiAodGVzdHMubGVuZ3RoID4gMSkKKyAgICAgICAgICAgICAgICBydW5OZXh0
VGVzdCh0ZXN0cy5zcGxpY2UoMSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IHJ1bk5leHRUZXN0KHRlc3RjYXNlcyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBpbnNldCc+PC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0nc2hhcGUgY2lyY2xlJz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFw
ZSBzdmcnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIx
MTY4ZjUxYjIwZDEzNjc2YTVlYzY0MzBlMDkxNTBiYWFjZDhiNDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2hpZ2hsaWdodC1zaGFwZS1vdXRzaWRlLmh0bWwK
QEAgLTAsMCArMSwxNDQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBt
YXJnaW46IDA7Cit9Cisuc2hhcGUgeworICAgIGZsb2F0OiBsZWZ0OworICAgIHdpZHRoOiAyMDBw
eDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIG1hcmdpbi1yaWdodDogLTIwMHB4OworfQorLnBh
ZGRlZCB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgcGFkZGlu
ZzogMjVweCA3NXB4IDc1cHggMjVweDsKK30KKy5ib3JkZXItYm94IHsKKyAgICBib3gtc2l6aW5n
OiBib3JkZXItYm94OworfQorLnZlcnRpY2FsLWxyIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtbHI7Cit9CisudmVydGljYWwtcmwgeworICAgIC13ZWJraXQtd3JpdGluZy1t
b2RlOiB2ZXJ0aWNhbC1ybDsKK30KKy5yZWN0YW5nbGUgeworICAgIC13ZWJraXQtc2hhcGUtb3V0
c2lkZTogcmVjdGFuZ2xlKDUwcHgsIDUwcHgsIDEwMHB4LCA1MHB4KSBjb250ZW50LWJveDsKK30K
Ky5yZWN0YW5nbGUuYm9yZGVyLWJveCB7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0
YW5nbGUoNTBweCwgNTBweCwgMTAwcHgsIDUwcHgpIGJvcmRlci1ib3g7Cit9CisucG9seWdvbiB7
CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBwb2x5Z29uKDUwcHggNTBweCwgMTAwcHggNTBw
eCwgMTAwcHggMTAwcHgsIDUwcHggMTAwcHgpIGNvbnRlbnQtYm94OworfQorLnBvbHlnb24uYm9y
ZGVyLWJveCB7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBwb2x5Z29uKDUwcHggNTBweCwg
MTAwcHggNTBweCwgMTAwcHggMTAwcHgsIDUwcHggMTAwcHgpIGJvcmRlci1ib3g7Cit9CisuY29u
dGVudC1ib3ggeworICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogY29udGVudC1ib3g7Cit9Cisu
cmFzdGVyLXN2ZyB7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoImRhdGE6aW1hZ2Uv
c3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3
Qm94PScwIDAgMTAwIDEwMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZScgd2lkdGg9JzEwMHB4
JyBoZWlnaHQ9JzEwMHB4Jz48cmVjdCB4PScyNScgeT0nMjUnIHdpZHRoPSc1MCcgaGVpZ2h0PSc1
MCcgZmlsbD0nYmx1ZScgLz48L3N2Zz4iKTsKK30KKy5yYXN0ZXItc3ZnLWNvbXBsZXggeworICAg
IC13ZWJraXQtc2hhcGUtb3V0c2lkZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3Zn
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDEwMCAxMDAn
IHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnIHdpZHRoPScxMDBweCcgaGVpZ2h0PScxMDBweCc+
PHJlY3QgeD0nMTAnIHk9JzEwJyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIGZpbGw9J2JsdWUnIC8+
PHJlY3QgeD0nNjAnIHk9JzEwJyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIGZpbGw9J2JsdWUnIC8+
PHJlY3QgeD0nMTAnIHk9JzYwJyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIGZpbGw9J2JsdWUnIC8+
PHJlY3QgeD0nNjAnIHk9JzYwJyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIGZpbGw9J2JsdWUnIC8+
PC9zdmc+Iik7Cit9CisucmFzdGVyLXBuZyB7CisgICAgLyogcG5nIHZlcnNpb24gb2YgcmFzdGVy
LXN2ZyAqLworICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoImRhdGE6aW1hZ2UvcG5nO2Jh
c2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFCa0NBTUFBQUJIUEdWbUFBQUFHWFJG
V0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBQVpRVEZSRkFBRC8v
Ly8vZTl5WkxBQUFBQUowVWs1VC93RGx0ekJLQUFBQVNVbEVRVlI0MnV6WXNRMEFNQWdFc1dmL3BU
TURCVVJJdmdYY1gycWhRQ0FRQ0FRQ2dVQStJMmtIZ1VBZ0VBZ0VBb0ZBSUJBSUJBS0JRT1lSb3hN
Q2dVQWdFQWprSFBJRUdBQTJpaDFOVm5hREdnQUFBQUJKUlU1RXJrSmdnZz09Iik7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9z
aGFwZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICB2YXIgdGVzdGNhc2VzID0gWworICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFu
Z2xlJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgNTAsIDUwLCAnTCcsIDE1MCwgNTAsICdMJywg
MTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdaJ10KKyAgICB9LAorICAgIHsK
KyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucG9seWdvbicsCisgICAgICAgICdwYXRoJyA6IFsnTScs
IDUwLCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcsIDUwLCAxMDAsICdaJ10K
KyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmVjdGFuZ2xlLnBhZGRlZCcs
CisgICAgICAgICdwYXRoJyA6IFsnTScsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnTCcsIDE3NSwg
MTI1LCAnTCcsIDc1LCAxMjUsICdMJywgNzUsIDc1LCAnWiddCisgICAgfSwKKyAgICB7CisgICAg
ICAgICdzZWxlY3RvcicgOiAnLnJlY3RhbmdsZS5wYWRkZWQuYm9yZGVyLWJveCcsCisgICAgICAg
ICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxNTAsIDUwLCAnTCcsIDE1MCwgMTAwLCAnTCcs
IDUwLCAxMDAsICdMJywgNTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxl
Y3RvcicgOiAnLnZlcnRpY2FsLWxyID4gLnJlY3RhbmdsZScsCisgICAgICAgICdwYXRoJyA6IFsn
TScsIDUwLCA1MCwgJ0wnLCA1MCwgMTAwLCAnTCcsIDE1MCwgMTAwLCAnTCcsIDE1MCwgNTAsICdM
JywgNTAsIDUwLCAnWiddCisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnZl
cnRpY2FsLXJsID4gLnJlY3RhbmdsZScsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDE1MCwgNTAs
ICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdMJywgMTUwLCA1MCwg
J1onXQorICAgIH0sCisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy52ZXJ0aWNhbC1ybCA+
IC5yZWN0YW5nbGUucGFkZGVkJywKKyAgICAgICAgJ3BhdGgnIDogWydNJywgMTc1LCA3NSwgJ0wn
LCAxNzUsIDEyNSwgJ0wnLCA3NSwgMTI1LCAnTCcsIDc1LCA3NSwgJ0wnLCAxNzUsIDc1LCAnWidd
CisgICAgfSwKKyAgICB7CisgICAgICAgICdzZWxlY3RvcicgOiAnLnZlcnRpY2FsLXJsID4gLnJl
Y3RhbmdsZS5wYWRkZWQuYm9yZGVyLWJveCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDE1MCwg
NTAsICdMJywgMTUwLCAxMDAsICdMJywgNTAsIDEwMCwgJ0wnLCA1MCwgNTAsICdMJywgMTUwLCA1
MCwgJ1onXQorICAgIH0sCisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5jb250ZW50LWJv
eC5wYWRkZWQnLAorICAgICAgICAncGF0aCcgOiBbJ00nLCAyNSwgMjUsICdMJywgMTI1LCAyNSwg
J0wnLCAxMjUsIDEyNSwgJ0wnLCAyNSwgMTI1LCAnTCcsIDI1LCAyNSwgJ1onXQorICAgIH0sCisg
ICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yYXN0ZXItc3ZnLnBhZGRlZCcsCisgICAgICAg
ICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAnTCcs
IDUwLCAxMDAsICdaJ10KKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3NlbGVjdG9yJyA6ICcucmFz
dGVyLXN2Zy1jb21wbGV4LnBhZGRlZCcsCisgICAgICAgICdwYXRoJyA6IFsnTScsIDM1LCAzNSwg
J0wnLCAxMTUsIDM1LCAnTCcsIDExNSwgNjUsICdMJywgMzUsIDY1LCAnWicsICdNJywgMzUsIDg1
LCAnTCcsIDExNSwgODUsICdMJywgMTE1LCAxMTUsICdMJywgMzUsIDExNSwgJ1onXQorICAgIH0s
CisgICAgeworICAgICAgICAnc2VsZWN0b3InIDogJy5yYXN0ZXItcG5nLnBhZGRlZCcsCisgICAg
ICAgICdwYXRoJyA6IFsnTScsIDUwLCA1MCwgJ0wnLCAxMDAsIDUwLCAnTCcsIDEwMCwgMTAwLCAn
TCcsIDUwLCAxMDAsICdaJ10KKyAgICB9CisgICAgXTsKKworICAgIGZ1bmN0aW9uIHJ1bk5leHRU
ZXN0KHRlc3RzKSB7CisgICAgICAgIHZhciB0ZXN0Y2FzZSA9IHRlc3RzWzBdOworCisgICAgICAg
IEluc3BlY3RvclRlc3QuU2hhcGVzLmdldFNoYXBlT3V0c2lkZUluZm8odGVzdGNhc2Uuc2VsZWN0
b3IsIGZ1bmN0aW9uKHBheWxvYWQpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuU2hhcGVz
LmFzc2VydFBhdGhzQXJlUm91Z2hseUVxdWFsKHBheWxvYWQuc2hhcGUsIHRlc3RjYXNlLnNoYXBl
LCAiU2hhcGUgaW5mb3JtYXRpb24gd2FzIG5vdCByb3VnaGx5IGVxdWFsLiIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5TaGFwZXMuYXNzZXJ0UGF0aHNBcmVSb3VnaGx5RXF1YWwocGF5bG9h
ZC5tYXJnaW5TaGFwZSwgdGVzdGNhc2UubWFyZ2luU2hhcGUsICJNYXJnaW4gc2hhcGUgaW5mb3Jt
YXRpb24gd2FzIG5vdCByb3VnaGx5IGVxdWFsLiIpOworCisgICAgICAgICAgICBpZiAodGVzdHMu
bGVuZ3RoID4gMSkKKyAgICAgICAgICAgICAgICBydW5OZXh0VGVzdCh0ZXN0cy5zcGxpY2UoMSkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHJ1bk5leHRUZXN0KHRlc3RjYXNl
cyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAg
ICA8ZGl2IGNsYXNzPSdzaGFwZSByZWN0YW5nbGUnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3No
YXBlIHBvbHlnb24nPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5n
bGUnPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgYm9yZGVy
LWJveCc+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ndmVydGljYWwtbHInPgorICAgICAgICA8ZGl2
IGNsYXNzPSdzaGFwZSByZWN0YW5nbGUnPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9J3ZlcnRpY2FsLXJsJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nc2hhcGUgcmVjdGFuZ2xlJz48
L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIHJlY3RhbmdsZSc+PC9kaXY+
CisgICAgICAgIDxkaXYgY2xhc3M9J3NoYXBlIHBhZGRlZCByZWN0YW5nbGUgYm9yZGVyLWJveCc+
PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIGNvbnRlbnQt
Ym94Jz48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSdzaGFwZSBwYWRkZWQgcmFzdGVyLXN2Zyc+PC9k
aXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIHJhc3Rlci1zdmctY29tcGxleCc+PC9k
aXY+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUgcGFkZGVkIHJhc3Rlci1wbmcnPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFw
ZXMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2hhcGVzLXRlc3QuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDY1ZWVjYzBjNTY0NmMzMzg5OWYxODQzZjE3MDU4NjNlNTM4NjI3YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2hhcGVzLXRlc3QuanMKQEAg
LTAsMCArMSw5MiBAQAorSW5zcGVjdG9yVGVzdFByb3h5LnJlZ2lzdGVySW5pdGlhbGl6ZXIoZnVu
Y3Rpb24oKSB7CisKK0luc3BlY3RvclRlc3QuU2hhcGVzID0geworICAgIGdldFNoYXBlT3V0c2lk
ZUluZm9Gb3JTZWxlY3RvcjogZnVuY3Rpb24oc2VsZWN0b3IsIGNhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVlc3REb2N1bWVudChyZXF1ZXN0
RG9jdW1lbnRDYWxsYmFjayk7CisKKyAgICAgICAgZnVuY3Rpb24gcmVxdWVzdERvY3VtZW50Q2Fs
bGJhY2sobm9kZSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQobm9kZSBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5ET01Ob2RlLCAiVW5leHBlY3RlZCBhcmd1bWVudCB0byByZXF1
ZXN0RG9jdW1lbnQgY2FsbGJhY2suIikKKworICAgICAgICAgICAgRE9NQWdlbnQucXVlcnlTZWxl
Y3Rvci5pbnZva2Uoe25vZGVJZDogbm9kZS5pZCwgc2VsZWN0b3I6IHNlbGVjdG9yfSwgcXVlcnlT
ZWxlY3RvckNhbGxiYWNrKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHF1ZXJ5U2Vs
ZWN0b3JDYWxsYmFjayhlcnJvciwgbm9kZUlkKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydCghZXJyb3IsICJFcnJvciBpbiBjYWxsYmFjayBmb3IgRE9NQWdlbnQucXVlcnlTZWxl
Y3RvciIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQobm9kZUlkLCAiSW52YWxp
ZCBhcmd1bWVudCB0byBjYWxsYmFjayBmb3IgRE9NQWdlbnQucXVlcnlTZWxlY3RvciIpOworCisg
ICAgICAgICAgICB2YXIgaGlnaGxpZ2h0Q29uZmlnID0geworICAgICAgICAgICAgICAgIHNob3dJ
bmZvOiB0cnVlLAorICAgICAgICAgICAgICAgIGNvbnRlbnRDb2xvcjoge3I6IDI1NSwgZzogMjU1
LCBiOiAyNTV9LAorICAgICAgICAgICAgICAgIHBhZGRpbmdDb2xvcjoge3I6IDI1NSwgZzogMjU1
LCBiOiAyNTV9LAorICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiB7cjogMjU1LCBnOiAyNTUs
IGI6IDI1NX0sCisgICAgICAgICAgICAgICAgbWFyZ2luQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwg
YjogMjU1fSwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBET01BZ2VudC5oaWdobGlnaHRO
b2RlLmludm9rZSh7bm9kZUlkOiBub2RlSWQsIGhpZ2hsaWdodENvbmZpZzogaGlnaGxpZ2h0Q29u
ZmlnfSwgaGlnaGxpZ2h0Tm9kZUNhbGxiYWNrKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGhpZ2hsaWdodE5vZGVDYWxsYmFjayhlcnJvcikgeworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIWVycm9yLCAiRXJyb3IgaW4gY2FsbGJhY2sgZm9yIERPTUFnZW50LmhpZ2hs
aWdodE5vZGUiKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
d2luZG93LmludGVybmFscy5pbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKSIsIHJlY2VpdmVkSGln
aGxpZ2h0T2JqZWN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVkSGln
aGxpZ2h0T2JqZWN0KGVycm9yLCBwYXlsb2FkLCB3YXNUaHJvd24pIHsKKyAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCFlcnJvciwgIldoZW4gZXZhbHVhdGluZyBjb2RlLCByZWNlaXZlZCB1bmV4
cGVjdGVkIGVycm9yOiIgKyBlcnJvcik7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJy
b3IsICJXaGVuIGV2YWx1YXRpbmcgY29kZSwgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd246IiArIHdh
c1Rocm93bik7CisKKyAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShwYXlsb2FkLnZh
bHVlKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEuZWxlbWVudEluZm8uc2hhcGVPdXRzaWRl
SW5mbyk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgYXNzZXJ0UGF0aHNBcmVSb3VnaGx5RXF1
YWw6IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpCisgICAgeworICAgICAgICBm
dW5jdGlvbiBjb29yZGluYXRlc0FyZVJvdWdobHlFcXVhbChhLCBiKSB7CisgICAgICAgICAgICAv
LyBTb21lIHBsYXRmb3JtcyBtYXkgb25seSBzdG9yZSBpbnRlZ2VyIHBhdGggcG9pbnRzLCBzbyB0
aGUgcG90ZW50aWFsCisgICAgICAgICAgICAvLyBkaWZmZXJlbmNlcyBiZXR3ZWVuIGNvcnJlY3Qg
cGF0aHMgY2FuIGJlIHJvdWdobHkgaGFsZiBhIHVuaXQuCisgICAgICAgICAgICByZXR1cm4gdHlw
ZW9mIGEgPT09ICJudW1iZXIiICYmIHR5cGVvZiBiID09PSAibnVtYmVyIiAmJiBNYXRoLmFicyhh
IC0gYikgPCAwLjU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwYXRoc0FyZVJvdWdo
bHlFcXVhbChhY3R1YWxQYXRoLCBleHBlY3RlZFBhdGgpIHsKKyAgICAgICAgICAgIHZhciBleHBl
Y3RlZFN1YnBhdGhTdGFydCA9IDAsIGVpLCBhaTsKKyAgICAgICAgICAgIGZvciAodmFyIGVpID0g
MCwgYWkgPSAwOyBhaSA8IGFjdHVhbFBhdGgubGVuZ3RoICYmIGVpIDwgZXhwZWN0ZWRQYXRoLmxl
bmd0aDsgYWkrKywgZWkrKykgeworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZFBhdGhbZWld
ID09PSAnTScpCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkU3VicGF0aFN0YXJ0ID0gZWk7
CisKKyAgICAgICAgICAgICAgICBpZiAoYWN0dWFsUGF0aFthaV0gPT09IGV4cGVjdGVkUGF0aFtl
aV0KKyAgICAgICAgICAgICAgICAgICAgfHwgY29vcmRpbmF0ZXNBcmVSb3VnaGx5RXF1YWwoYWN0
dWFsUGF0aFthaV0sIGV4cGVjdGVkUGF0aFtlaV0pKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIEV4dHJhcG9sYXRlIHRoZSBtaXNzaW5nIGxpbmUg
dG8gY29tbWFuZCBpZiBpdCBpcyBtaXNzaW5nIGZyb20gYWN0dWFsLgorICAgICAgICAgICAgICAg
IC8vIFRoZSBjaG9pY2UgdG8gY2xvc2UgdGhlIHBhdGggd2l0aCBhbiBleHBsaWNpdCBsaW5lIHRv
IGNvbW1hbmQgaXMKKyAgICAgICAgICAgICAgICAvLyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgICAg
ICAgICAgICAgICAgaWYgKGFjdHVhbFBhdGhbYWldID09PSAnWicKKyAgICAgICAgICAgICAgICAg
ICAgJiYgZXhwZWN0ZWRQYXRoW2VpXSA9PT0gJ0wnCisgICAgICAgICAgICAgICAgICAgICYmIGNv
b3JkaW5hdGVzQXJlUm91Z2hseUVxdWFsKGV4cGVjdGVkUGF0aFtleHBlY3RlZFN1YnBhdGhTdGFy
dCArIDFdLCBleHBlY3RlZFBhdGhbZWkgKyAxXSkKKyAgICAgICAgICAgICAgICAgICAgJiYgY29v
cmRpbmF0ZXNBcmVSb3VnaGx5RXF1YWwoZXhwZWN0ZWRQYXRoW2V4cGVjdGVkU3VicGF0aFN0YXJ0
ICsgMl0sIGV4cGVjdGVkUGF0aFtlaSArIDJdKSkgeworICAgICAgICAgICAgICAgICAgICBlaSAr
PSAyOworICAgICAgICAgICAgICAgICAgICBhaS0tOworICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBtYWtlU3RyaW5nRm9yUGF0aChwYXRoKSB7CisgICAgICAgICAgICByZXR1
cm4gcGF0aC5tYXAoZnVuY3Rpb24oaXRlbSkgeworICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
aXRlbSA9PT0gJ251bWJlcicpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAraXRlbS50b0Zp
eGVkKDIpOworICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAgICAgICAgfSkuam9p
bignICcpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGV4cGVjdGVkUGF0aFN0cmluZyA9IG1h
a2VTdHJpbmdGb3JQYXRoKGV4cGVjdGVkKTsKKyAgICAgICAgdmFyIGFjdHVhbFBhdGhTdHJpbmcg
PSBtYWtlU3RyaW5nRm9yUGF0aChhY3R1YWwpOworICAgICAgICB2YXIgYXNzZXJ0aW9uTWVzc2Fn
ZSA9IG1lc3NhZ2UgKyAiIFxuZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFBhdGhTdHJpbmcgKyAiXG4g
YWN0dWFsOiAiICsgYWN0dWFsUGF0aFN0cmluZzsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQocGF0aHNBcmVSb3VnaGx5RXF1YWwoYWN0dWFsLCBleHBlY3RlZCksIGFzc2VydGlvbk1lc3Nh
Z2UpOworICAgIH0KK30KKworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMKaW5kZXggZDE0ZDRhNjlhNDAwM2U0MTFiYTEzN2QyODIwNmMwZGI2MDUzNTdjNS4uNDM1OWU5
ZjhiMmE3ZWQ1MTI3MDRkMmQ1ZjQyYzM0MGY2NzU4ZGNhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcwpAQCAtMzAsNyArMzAsNyBAQCBJbnNwZWN0b3JUZXN0UHJveHku
X2luaXRpYWxpemVycyA9IFtdOwogCiAvLyBIZWxwZXIgc2NyaXB0cyBsaWtlIGBkZWJ1Z2dlci10
ZXN0LmpzYCBtdXN0IHJlZ2lzdGVyIHRoZWlyIGluaXRpYWxpemF0aW9uCiAvLyBmdW5jdGlvbiB3
aXRoIHRoaXMgbWV0aG9kIHNvIGl0IHdpbGwgYmUgbWFyc2hhbGxlZCB0byB0aGUgaW5zcGVjdG9y
IHBhZ2UuCi1JbnNwZWN0b3JUZXN0UHJveHkucmVnaXN0ZXIgPSBmdW5jdGlvbihpbml0aWFsaXpl
cikKK0luc3BlY3RvclRlc3RQcm94eS5yZWdpc3RlckluaXRpYWxpemVyID0gZnVuY3Rpb24oaW5p
dGlhbGl6ZXIpCiB7CiAgICAgaWYgKHR5cGVvZiBpbml0aWFsaXplciA9PT0gImZ1bmN0aW9uIikK
ICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZXJzLnB1c2goaW5pdGlhbGl6ZXIudG9TdHJpbmcoKSk7
CkBAIC00MiwxNyArNDIsMjYgQEAgSW5zcGVjdG9yVGVzdFByb3h5LnJlZ2lzdGVyID0gZnVuY3Rp
b24oaW5pdGlhbGl6ZXIpCiAvLyBpbnRvIHRoZSBpbnNwZWN0b3IgcGFnZSBjb250ZXh0LgogZnVu
Y3Rpb24gcnVuVGVzdCgpCiB7CisgICAgLy8gRG9uJ3QgdHJ5IHRvIHVzZSB0ZXN0UnVubmVyIGlm
IHJ1bm5pbmcgdGhyb3VnaCB0aGUgYnJvd3Nlci4KKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICByZXR1cm47CisKICAgICAvLyBTZXQgdXAgdGhlIHRlc3QgcGFnZSBiZWZvcmUg
dGhlIGxvYWQgZXZlbnQgZmlyZXMuCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKLSAgICBpZiAod2luZG93LmludGVybmFscykK
LSAgICAgICAgaW50ZXJuYWxzLnNldEluc3BlY3RvcklzVW5kZXJUZXN0KHRydWUpOworICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0SW5zcGVjdG9ySXNVbmRlclRlc3QodHJ1ZSk7CiAgICAgdGVzdFJ1
bm5lci5zaG93V2ViSW5zcGVjdG9yKCk7CiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJ1bnMgdGhl
IGluaXRpYWxpemVyIGZ1bmN0aW9ucyBpbiB0aGUgSW5zcGVjdG9yIHBhZ2UuCi0gICAgZnVuY3Rp
b24gaW5pdGlhbGl6ZUZyb250ZW5kKGluaXRpYWxpemVyc0FycmF5KQorICAgIGZ1bmN0aW9uIHJ1
bkluaXRpYWxpemF0aW9uTWV0aG9kc0luRnJvbnRlbmQoaW5pdGlhbGl6ZXJzQXJyYXkpCiAgICAg
eworICAgICAgICBpZiAoSW5zcGVjdG9yVGVzdC5kaWRJbmplY3RUZXN0Q29kZSkgeworICAgICAg
ICAgICAgLy8gSWYgdGhlIHRlc3QgcGFnZSByZWxvYWRlZCBidXQgd2Ugc3RhcnRlZCBydW5uaW5n
IHRoZSB0ZXN0IGluIGEgcHJldmlvdXMKKyAgICAgICAgICAgIC8vIG5hdmlnYXRpb24sIHRoZW4g
ZG9uJ3QgaW5pdGlhbGl6ZSB0aGUgaW5zcGVjdG9yIGZyb250ZW5kIGFnYWluLgorICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC50ZXN0UGFnZURpZExvYWQoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCiAgICAgICAgIGZvciAodmFyIGluaXRpYWxpemVyIG9mIGluaXRpYWxpemVy
c0FycmF5KSB7CiAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIGluaXRpYWxpemVy
KCk7CkBAIC02Myw5ICs3MiwxMyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgfQogICAg
IH0KIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gcnVucyB0aGUgdGVzdCgpIG1ldGhvZCBpbiB0aGUg
SW5zcGVjdG9yIHBhZ2UuCi0gICAgZnVuY3Rpb24gcnVuVGVzdEluRnJvbnRlbmQodGVzdEZ1bmN0
aW9uKQorICAgIGZ1bmN0aW9uIHJ1blRlc3RNZXRob2RJbkZyb250ZW5kKHRlc3RGdW5jdGlvbikK
ICAgICB7CisgICAgICAgIGlmIChJbnNwZWN0b3JUZXN0LmRpZEluamVjdFRlc3RDb2RlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEluc3BlY3RvclRlc3QuZGlkSW5qZWN0VGVzdENv
ZGUgPSB0cnVlOworCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICB0ZXN0RnVuY3Rpb24oKTsK
ICAgICAgICAgfSBjYXRjaCAoZSkgewpAQCAtNzQsMTYgKzg3LDIwIEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgdmFyIGNvZGVTdHJpbmdUb0V2YWx1YXRlID0g
IigiICsgaW5pdGlhbGl6ZUZyb250ZW5kLnRvU3RyaW5nKCkgKyAiKShbIiArIEluc3BlY3RvclRl
c3RQcm94eS5faW5pdGlhbGl6ZXJzICsgIl0pOyI7CisgICAgdmFyIGNvZGVTdHJpbmdUb0V2YWx1
YXRlID0gIigiICsgcnVuSW5pdGlhbGl6YXRpb25NZXRob2RzSW5Gcm9udGVuZC50b1N0cmluZygp
ICsgIikoWyIgKyBJbnNwZWN0b3JUZXN0UHJveHkuX2luaXRpYWxpemVycyArICJdKTsiOwogICAg
IHRlc3RSdW5uZXIuZXZhbHVhdGVJbldlYkluc3BlY3RvcigwLCBjb2RlU3RyaW5nVG9FdmFsdWF0
ZSk7CiAKICAgICAvLyBgdGVzdGAgcmVmZXJzIHRvIGEgZnVuY3Rpb24gZGVmaW5lZCBpbiBnbG9i
YWwgc2NvcGUgaW4gdGhlIHRlc3QgSFRNTCBwYWdlLgotICAgIGNvZGVTdHJpbmdUb0V2YWx1YXRl
ID0gIigiICsgcnVuVGVzdEluRnJvbnRlbmQudG9TdHJpbmcoKSArICIpKCIgKyB0ZXN0LnRvU3Ry
aW5nKCkgKyAiKTsiOworICAgIGNvZGVTdHJpbmdUb0V2YWx1YXRlID0gIigiICsgcnVuVGVzdE1l
dGhvZEluRnJvbnRlbmQudG9TdHJpbmcoKSArICIpKCIgKyB0ZXN0LnRvU3RyaW5nKCkgKyAiKTsi
OwogICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVJbldlYkluc3BlY3RvcigwLCBjb2RlU3RyaW5nVG9F
dmFsdWF0ZSk7CiB9CiAKIEluc3BlY3RvclRlc3RQcm94eS5jb21wbGV0ZVRlc3QgPSBmdW5jdGlv
bigpCiB7CisgICAgLy8gRG9uJ3QgdHJ5IHRvIHVzZSB0ZXN0UnVubmVyIGlmIHJ1bm5pbmcgdGhy
b3VnaCB0aGUgYnJvd3Nlci4KKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBy
ZXR1cm47CisKICAgICAvLyBDbG9zZSBpbnNwZWN0b3IgYXN5bmNocm91c2x5IGluIGNhc2Ugd2Ug
d2FudCB0byB0ZXN0IHRlYXItZG93biBiZWhhdmlvci4KICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewogICAgICAgICB0ZXN0UnVubmVyLmNsb3NlV2ViSW5zcGVjdG9yKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9tYWluLWZyYW1lLXJlc291cmNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL21haW4tZnJhbWUtcmVzb3VyY2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhMTM0YmMxMDYzOTk0NjA3MGE4ZjZiZTcyZGY3ZjMyYjIx
NzgxZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9tYWlu
LWZyYW1lLXJlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RpbmcgdGhh
dCB0aGUgaW5zcGVjdG9yIHNjcmlwdHMgYXJlIGxvYWRlZCBhbmQgdGhlIG1haW4gZnJhbWUgVVJM
IGNhbiBiZSByZWNlaXZlZC4KKworTWFpbiBmcmFtZTogbWFpbi1mcmFtZS1yZXNvdXJjZS5odG1s
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL21haW4tZnJhbWUtcmVz
b3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL21haW4tZnJhbWUtcmVzb3Vy
Y2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ODFlM2IwMzdlYTA2NjRmNzQ4MjAzN2JmN2MzYzdhM2UwMzA0
ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvbWFpbi1m
cmFtZS1yZXNvdXJjZS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBXZWJJbnNwZWN0b3IuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUu
RXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICB2
YXIgdXJsID0gV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS51cmw7
CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJNYWluIGZyYW1lOiAiICsgdXJsLnN1YnN0cmlu
Zyh1cmwubGFzdEluZGV4T2YoIi8iKSArIDEpKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+
VGVzdGluZyB0aGF0IHRoZSBpbnNwZWN0b3Igc2NyaXB0cyBhcmUgbG9hZGVkIGFuZCB0aGUgbWFp
biBmcmFtZSBVUkwgY2FuIGJlIHJlY2VpdmVkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjE4YWM2MDFmOTMzYzc4
ZGMyYTE2OTJjMzA2NWNkYTBlYmViZTMxYi4uMjI5NjMwMDVhNDVjYTY3OWQyYmVhNDdlNTI4NTg1
NDNkM2EyNDk3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE3MTQsOCArMTcxNCw2IEBAIHdlYmtpdC5vcmcvYi8xMjQ2NTcgZmFzdC9kb20vU2VsZWN0
b3JBUEkvcmVzaWctU2VsZWN0b3JzQVBJLXRlc3QueGh0bWwgWyBGYWlsdXJlCiAKIHdlYmtpdC5v
cmcvYi8xMjQ2NTggZmFzdC90ZXh0L2JyZWFrLXdvcmQtcHJlLXdyYXAuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTI0NjYwIGluc3BlY3Rvci1wcm90b2NvbC9tb2Rl
bC9oaWdobGlnaHQtc2hhcGUtb3V0c2lkZS5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcv
Yi8xMjQ2NjIgbWF0aG1sL3ByZXNlbnRhdGlvbi9tc3BhY2UtdW5pdHMuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTI0NjYzIG1lZGlhL3RyYWNrL3RyYWNrLWxlZ2Fj
eWFwaS13aXRoLWF1dG9tYXRpYy1tb2RlLmh0bWwgWyBTa2lwIF0KQEAgLTE3OTAsOCArMTc4OCw2
IEBAIHdlYmtpdC5vcmcvYi8xMjc0ODIgbWF0aG1sL3ByZXNlbnRhdGlvbi9tby1zdHJldGNoLmh0
bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzEyNzQ4OSBodHRwL3Rlc3RzL21pc2Mvd2ls
bC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwgWyBGYWlsdXJlIF0K
IAotd2Via2l0Lm9yZy9iLzEyNjUxOSBpbnNwZWN0b3ItcHJvdG9jb2wvbW9kZWwvaGlnaGxpZ2h0
LXNoYXBlLW91dHNpZGUtbWFyZ2luLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzEy
NjYxOSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWF1dGguaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJr
aXQub3JnL2IvMTI3NzIzIGFjY2Vzc2liaWxpdHkvbWVudS1saXN0LXNlbmRzLWNoYW5nZS1ub3Rp
ZmljYXRpb24uaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAxOGE0N2U2ZGUwMDdkNmE5MjRkMGI4ZDU3NDcyYThlN2RiNmI0MmFh
Li4wZTE0YTgzMGI0YzBjZWYxMTAzMjEyNzM1MGE3ODQ4ODBjYjVlZmJlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ4Miw4ICsxNDgyLDYgQEAgd2Vi
a2l0Lm9yZy9iLzEyNDUwOSBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUt
aGlkZS1vbi1jbGljay5odG1sIFsKIAogd2Via2l0Lm9yZy9iLzEyNDU2NiBmYXN0L2RvbS9TZWxl
Y3RvckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC54aHRtbCBbIEZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMTI0NTY3IGluc3BlY3Rvci1wcm90b2NvbC9tb2RlbC9oaWdobGlnaHQtc2hhcGUt
b3V0c2lkZS5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xMjQ3NzAgZmFzdC9kb20v
YWNjZXNzLWtleS1pZnJhbWUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEyNDc3MCBm
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTI0NzcwIGZhc3QvZm9ybXMvYWNjZXNzLWtleS1mb3ItYWxsLWVsZW1l
bnRzLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE1MDcsOCArMTUwNSw2IEBAIHdlYmtpdC5vcmcvYi8x
MjU0MDYgZmFzdC9yZWdpb25zL3JlbGF0aXZlLWluLWFic29sdXRlLWJvcmRlcnMtb3ZlcmZsb3cu
aHRtbCBbIEltCiB3ZWJraXQub3JnL2IvMTI2NDI1IGZhc3QvYmxvY2svZmxvYXQvb3Zlcmhhbmdp
bmctdGFsbC1ibG9jay5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTI2NDI1IHNjcm9s
bGJhcnMvc2Nyb2xsYmFyLWxhcmdlLW92ZXJmbG93LXJlY3RhbmdsZS5odG1sIFsgRmFpbHVyZSBd
CiAKLXdlYmtpdC5vcmcvYi8xMjY1MTkgaW5zcGVjdG9yLXByb3RvY29sL21vZGVsL2hpZ2hsaWdo
dC1zaGFwZS1vdXRzaWRlLW1hcmdpbi5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8x
MjY1MjEgYWNjZXNzaWJpbGl0eS9tZW51LWxpc3Qtc2VuZHMtY2hhbmdlLW5vdGlmaWNhdGlvbi5o
dG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMjY2MTkgaHR0cC90ZXN0cy9tZWRpYS92
aWRlby1hdXRoLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMDkxNGQ0ZGI3N2IzNjQ3MmZlNTEzMGI2OTU5MmQwOTBjNjVkNjk2
ZC4uNTlmYzcwMzllNjRhOTA3YzNmMmY4ZDhkOTUwN2FiNzQ2NzhlZDcwZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE5MDAsNyArMTkwMCw3IEBAIHdl
YmtpdC5vcmcvYi8xMjg5NzkgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLW9uLWFz
c2VydC5odG1sIFsgUGFzcyBGYWlsCiB3ZWJraXQub3JnL2IvMTI4OTc5IGluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMjg5NzkgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtZGZnLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMDA4NDYg
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdo
aWxlLXBhdXNlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTI4OTc5IGluc3BlY3Rv
ci1wcm90b2NvbC9tb2RlbC9jb250ZW50LW5vZGUtcmVnaW9uLWluZm8uaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvMTI4OTc5IGluc3BlY3Rvci9kb20vY29udGVudC1ub2RlLXJl
Z2lvbi1pbmZvLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEyODk3OSBbIERl
YnVnIF0gaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zv
ck5vZGUuaHRtbCBbIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xMjg5NzkgWyBSZWxlYXNlIF0gaW5z
cGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiAK
</data>
<flag name="review"
          id="250219"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>