<?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>164112</bug_id>
          
          <creation_ts>2016-10-28 00:08:47 -0700</creation_ts>
          <short_desc>Remove testharness.js/testharnessreport.js unnecessary copies</short_desc>
          <delta_ts>2016-10-29 09:24:22 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>yoav</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1245474</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-28 00:08:47 -0700</bug_when>
    <thetext>This may be buggy to have multiple copies of them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245476</commentid>
    <comment_count>1</comment_count>
      <attachid>293122</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-28 00:29:00 -0700</bug_when>
    <thetext>Created attachment 293122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245513</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-28 03:00:42 -0700</bug_when>
    <thetext>This patch removes legacy http/tests/w3c/webperf tests.
These tests have not been modified since 3 years and are skipped in all bots (except for GTK which mark most of them as failing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245538</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-28 04:19:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch removes legacy http/tests/w3c/webperf tests.
&gt; These tests have not been modified since 3 years and are skipped in all bots
&gt; (except for GTK which mark most of them as failing).

From IRC discussions, it is ok to drop those tests for GTK as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245539</commentid>
    <comment_count>4</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2016-10-28 04:24:53 -0700</bug_when>
    <thetext>I&apos;m fine with the removal of the webperf imported tests. These features are still being worked on, but don&apos;t pass the tests yet AFAIK. We could reintroduce the tests once the features pass them.

Adding Alex, who might be working on said features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245541</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-28 04:34:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I&apos;m fine with the removal of the webperf imported tests. These features are
&gt; still being worked on, but don&apos;t pass the tests yet AFAIK. We could
&gt; reintroduce the tests once the features pass them.

The idea would be to remove these tests now and reintroduce them from W3C WPT repository.
For instance WebKit LayoutTests/http/tests/w3c/webperf/approved/navigation-timing/html is related to WPT navigation-timing directory AFAICT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245544</commentid>
    <comment_count>6</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2016-10-28 04:36:36 -0700</bug_when>
    <thetext>Sounds good!(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; I&apos;m fine with the removal of the webperf imported tests. These features are
&gt; &gt; still being worked on, but don&apos;t pass the tests yet AFAIK. We could
&gt; &gt; reintroduce the tests once the features pass them.
&gt; 
&gt; The idea would be to remove these tests now and reintroduce them from W3C
&gt; WPT repository.
&gt; For instance WebKit
&gt; LayoutTests/http/tests/w3c/webperf/approved/navigation-timing/html is
&gt; related to WPT navigation-timing directory AFAICT.

Sounds good! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246019</commentid>
    <comment_count>7</comment_count>
      <attachid>293122</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-29 06:51:02 -0700</bug_when>
    <thetext>Comment on attachment 293122
Patch

Rejecting attachment 293122 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 293122, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 208099 = 66d8e90babcdac1269132e19769878e18d3f77fa
r208100 = c8973df7bd91af94530296652f8a65d23a7b3167
r208101 = 796025edcfd4a25fa7bbddc44fd67e8acb8df5e3
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Total errors found: 0 in 1 files

Full output: http://webkit-queues.webkit.org/results/2399485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246039</commentid>
    <comment_count>8</comment_count>
      <attachid>293122</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-29 09:24:17 -0700</bug_when>
    <thetext>Comment on attachment 293122
Patch

Clearing flags on attachment: 293122

Committed r208105: &lt;http://trac.webkit.org/changeset/208105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246040</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-29 09:24:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293122</attachid>
            <date>2016-10-28 00:29:00 -0700</date>
            <delta_ts>2016-10-29 09:24:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164112-20161028092458.patch</filename>
            <type>text/plain</type>
            <size>814094</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MDM2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDk4M2UxYzRmNzgxZjRiMzkxNDJk
YzU5MDEwMzQ1MTYwNTA4YzFiNi4uODhlMzMyMTU1MWUxZDI5ZDgxODEzNDExNGY3MWVmZGVlYjBi
MDViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMCBAQAorMjAxNi0xMC0yOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRlc3RoYXJuZXNzLmpzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIHVubmVjZXNzYXJ5IGNvcGllcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgaHR0cC90ZXN0cy93M2MgZGlyZWN0
b3J5LgorICAgICAgICBDb250YWluZWQgdGVzdHMgYXJlIHNraXBwZWQgaW4gTWFjLCBFRkwgYW5k
IG1hcmsgYXMgZmFpbGluZyBpbiBHVEsuCisgICAgICAgIFRoZXNlIHRlc3RzIGhhdmUgbm90IGJl
ZW4gbW9kaWZpZWQgc2luY2UgbW9yZSB0aGFuIDMgeWVhcnMgYW5kIGFyZSBwcm9iYWJseSBvdXQt
b2YtZGF0ZSBjb21wYXJlZCB0byBXM0Mgd3B0LgorCisgICAgICAgIFVwZGF0ZWQgb3RoZXIgaHR0
cC90ZXN0cyB0ZXN0cyB1c2luZyB3M2MvdGVzdHMvcmVzb3VyY2VzIGZpbGVzIHRvIHVzZSBkaXJl
Y3RseSAvcmVzb3VyY2VzLyBVUkxzLgorICAgICAgICBUaGVzZSAvcmVzb3VyY2VzLyBVUkxzIGFy
ZSB1c2luZyBhbiBhbGlhcyB0byByZW1vdmUgdGhlIG5lZWQgdG8gaGF2ZSByZWR1bmRhbnQgY29w
aWVzLgorCisgICAgICAgIFJlbW92ZWQgaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJj
ZXMgdGVzdGhhcm5lc3MgYW5kIHRlc3RoYXJuZXNzcmVwb3J0LmpzIHNpbmNlIHRoZXkgYXJlIG5v
dCB1c2VkLgorICAgICAgICBBIGZldyB0ZXN0IGZpbGVzIGluIGltcG9ydGVkL2JsaW5rL2h0dHAv
dGVzdHMgdXNlIC9yZXNvdXJjZXMvLi4uIFVSTHMgYnV0IHRoZXkgd2lsbCBub3QgcG9pbnQgdG8g
YW55IG9mIHRoZSByZW1vdmVkIGZpbGVzIHNpbmNlIHRoZSB0ZXN0cyBhcmUgcnVuIGFzIGZpbGUg
YmFzZWQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1wbGF5LXRoZW4tc2Vlay1iYWNrLXdpdGgtcmVtb3RlLWNvbnRyb2wuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvZ2VuZXJhdGUtY29u
ZmlnLWNoYW5nZS10ZXN0cy5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWxvYWQvc2luZ2xl
X2Rvd25sb2FkX3ByZWxvYWRfcnVubmVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy9mb3Jt
LXVwZ3JhZGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL2lmcmFtZS11cGdyYWRlLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy9wcm9wZXItdWlyLW9uLW5hdmlnYXRpb24uaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91
cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL3Jlc291cmNlcy9pbnNlY3VyZS1zaXRlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFk
ZS1pbnNlY3VyZS1yZXF1ZXN0cy9yZXNvdXJjZXMvbmVzdGVkLW5lc3RlZC1mcmFtZS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3Jh
ZGUtaW5zZWN1cmUtcmVxdWVzdHMvcmVzb3VyY2VzL25lc3RlZC13aW5kb3cuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMS5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0yLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtNC5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy01Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTYuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtNy5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy04Lmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTkuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTEuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTIuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVp
cmtzLTMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1j
c3MtaW4tcXVpcmtzLTQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi1jc3MtaW4tcXVpcmtzLTUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTYuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTcuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTguaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3Jp
cHQtaW4tZGF0YS1pZnJhbWUtaW4tbWFpbi1mcmFtZS1ibG9ja2VkLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcG9zdC1vcmlnaW4tdG8tcGFyZW50Lmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTIuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0zLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtNC5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTUuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy02Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtNy5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTguaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy1pbi1xdWlya3MuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NldC1kb21haW4tcmVtb3ZlLXN1YmRvbWFpbi1mb3ItaXAt
YWRkcmVzcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL1JFQURNRTogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuY3Nz
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy9jYW52YXMtdGVz
dHMuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL2lkbGhh
cm5lc3MuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL2Jhc2ljLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVk
L0hpZ2hSZXNvbHV0aW9uVGltZS9iYXNpYy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL21vbm90b25pYy1j
bG9jay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvbW9ub3RvbmljLWNsb2NrLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9IaWdoUmVz
b2x1dGlvblRpbWUvcmVzb3VyY2VzL25vd19mcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL3Rlc3Rf
Y3Jvc3NfZnJhbWVfc3RhcnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL3Rlc3RfY3Jvc3Nf
ZnJhbWVfc3RhcnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVudF9vcGVuLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2Fw
cHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVudF9vcGVuLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0
aW9uLXRpbWluZy9odG1sL3Rlc3RfZG9jdW1lbnRfcmVhZGluZXNzX2V4aXN0LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25h
dmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVudF9yZWFkaW5lc3NfZXhpc3QuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmln
YXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0ZV93aXRoaW5fZG9jdW1lbnQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQv
bmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRlX3dpdGhpbl9kb2N1bWVudC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2
aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25fYXR0cmlidXRlc19leGlzdC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHBy
b3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl9hdHRyaWJ1dGVzX2V4
aXN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHBy
b3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl9yZWRpcmVjdENvdW50
X25vbmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25fcmVk
aXJlY3RDb3VudF9ub25lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90
eXBlX2JhY2tmb3J3YXJkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZp
Z2F0aW9uX3R5cGVfYmFja2ZvcndhcmQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZp
Z2F0aW9uX3R5cGVfZW51bXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25h
dmlnYXRpb25fdHlwZV9lbnVtcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRp
b25fdHlwZV9yZWxvYWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmln
YXRpb25fdHlwZV9yZWxvYWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9ub19wcmV2aW91
c19kb2N1bWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3Rfbm9fcHJldmlv
dXNfZG9jdW1lbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9wZXJmb3JtYW5jZV9hdHRy
aWJ1dGVzX2V4aXN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9wZXJmb3Jt
YW5jZV9hdHRyaWJ1dGVzX2V4aXN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9y
bWFuY2VfYXR0cmlidXRlc19leGlzdF9pbl9vYmplY3QtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1p
bmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNlX2F0dHJpYnV0ZXNfZXhpc3RfaW5fb2JqZWN0Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZp
Z2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcmVhZHdyaXRlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGlt
aW5nL2h0bWwvdGVzdF9yZWFkd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1p
bmdfYXR0cmlidXRlc19leGlzdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3Rf
dGltaW5nX2F0dHJpYnV0ZXNfZXhpc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1p
bmdfYXR0cmlidXRlc19vcmRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3Rf
dGltaW5nX2F0dHJpYnV0ZXNfb3JkZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1p
bmdfY2xpZW50X3JlZGlyZWN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90
aW1pbmdfY2xpZW50X3JlZGlyZWN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5n
X3JlbG9hZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3JlbG9h
ZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92
ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3RpbWluZ19zZXJ2ZXJfcmVkaXJlY3QtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBw
cm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3RpbWluZ19zZXJ2ZXJfcmVkaXJlY3Qu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVk
L25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfeHNlcnZlcl9yZWRpcmVjdC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHBy
b3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3hzZXJ2ZXJfcmVkaXJlY3Qu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVk
L25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF91bmlxdWVfcGVyZm9ybWFuY2Vfb2JqZWN0cy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9h
cHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdW5pcXVlX3BlcmZvcm1hbmNlX29i
amVjdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jl
c291cmNlcy9BaGVtLnR0ZjogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9hbGxfcmVzb3VyY2VfdHlwZXMuaHRtOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX2ltYWdlLnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdl
X2dyZWVuLmh0bTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jl
c291cmNlcy9ibGFua19wYWdlX2dyZWVuX3dpdGhfYWxsb3dfdGltaW5nLnBocDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dy
ZWVuX3dpdGhfb251bmxvYWQuaHRtOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfbWV0YV9yZWRpcmVjdC5odG06IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV91
bmxvYWQuaHRtOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL2JsYW5rX3BhZ2VfeWVsbG93Lmh0bTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX3llbGxvd193aXRoX29udW5sb2Fk
Lmh0bTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNl
cy9lbXB0eV9zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dyYXlfYmcuY3NzOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dyZWVuX2ZyYW1lLmh0
bTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9p
bmplY3RfcmVzb3VyY2VfdGVzdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL25lc3RlZC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcGFnZXZpc3Rlc3RoYXJuZXNzLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0
LnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNl
cy93ZWJwZXJmdGVzdGhhcm5lc3MuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUv
cmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9hdHRyaWJ1dGVfb3JkZXItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9hdHRyaWJ1dGVf
b3JkZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY2FjaGVk
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY2Fj
aGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2Nvbm5lY3Rp
b25fcmV1c2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNv
dXJjZV9jb25uZWN0aW9uX3JldXNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0
X3Jlc291cmNlX2R5bmFtaWNfaW5zZXJ0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRp
bWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfZHluYW1pY19pbnNlcnRpb24uaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291
cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfZnJhbWVfaW5pdGlhdG9yX3R5cGUtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9mcmFtZV9pbml0
aWF0b3JfdHlwZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9p
ZnJhbWVfc2VsZl9uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9o
dG1sL3Rlc3RfcmVzb3VyY2VfaWZyYW1lX3NlbGZfbmF2aWdhdGlvbi5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3Vy
Y2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pZ25vcmVfZGF0YV91cmwtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9H
b29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pZ25vcmVfZGF0YV91cmwu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfaWdub3JlX2ZhaWx1
cmVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2Vf
aWdub3JlX2ZhaWx1cmVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291
cmNlX2luaXRpYXRvcl90eXBlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRt
bC90ZXN0X3Jlc291cmNlX2luaXRpYXRvcl90eXBlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5n
L2h0bWwvdGVzdF9yZXNvdXJjZV9yZWRpcmVjdHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2Ut
dGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9yZWRpcmVjdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRp
bWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfcmVwYXJlbnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVz
b3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9yZXBhcmVudGluZy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVz
b3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9zY3JpcHRfdHlwZXMtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9H
b29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9zY3JpcHRfdHlwZXMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3do
ZW5fcG9wdWxhdGVfZW50cmllcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50
ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5f
c2hyaW5rX2J1ZmZlcl9zaXplLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0
cmljdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3Rp
bWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVz
dF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJf
cmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rl
c3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdp
bl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10
aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRfY2xlYXJfZHVy
aW5nX2NhbGxiYWNrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3Vy
Y2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2suaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3Vy
Y2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19vcmlnaW5f
cmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jl
c291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVlc3Qu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19jbGVhck1hcmtzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19jbGVhck1hcmtzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfY2xlYXJNZWFzdXJlcy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfY2xlYXJNZWFzdXJlcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91
c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2VudHJ5X3R5cGUtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91
c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2VudHJ5X3R5cGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1p
bmcvdGVzdF91c2VyX3RpbWluZ19tYXJrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVz
dF91c2VyX3RpbWluZ19tYXJrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdf
bWFya19leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGlt
aW5nX21hcmtfZXhjZXB0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdf
bWVhc3VyZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVh
c3VyZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21lYXN1cmVfYXNzb2Np
YXRlX3dpdGhfbmF2aWdhdGlvbl90aW1pbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90
ZXN0X3VzZXJfdGltaW5nX21lYXN1cmVfYXNzb2NpYXRlX3dpdGhfbmF2aWdhdGlvbl90aW1pbmcu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlX2V4Y2VwdGlvbi1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVhc3VyZV9leGNl
cHRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZXRob2RfZXhpc3Qt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
c3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21ldGhvZF9leGlz
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVh
ZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3Jlc3BvbnNlLWpzb24tYW5kLXJlYWR5c3RhdGUuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW9wZW4tbWV0aG9kLWFsbG93
ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LW9wZW4tbWV0aG9kLWNhc2UtaW5zZW5zaXRpdmUuaHRtbDoKKyAgICAgICAgKiBpbXBvcnRl
ZC9ibGluay9odHRwL3Rlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbXBvcnRlZC9ibGluay9odHRwL3Rlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTYtMTAtMjcgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFjaCBXZWJHTCBjb2RlIGFib3V0
IG5ldyBidWZmZXIgdGFyZ2V0cyBpbiBXZWJHTDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktdGhlbi1zZWVrLWJh
Y2std2l0aC1yZW1vdGUtY29udHJvbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS10aGVuLXNlZWstYmFjay13aXRoLXJlbW90
ZS1jb250cm9sLmh0bWwKaW5kZXggNGE1NmI1YzAzM2RiNGFhZjdjMzdiODY5ZjQ4ZGJkNmZjZTkw
MGY3NS4uZTk2MDljNzgxZWM2NTg3M2UwMWMzYWYxZjViNWRkYzEwOWEyZDdjMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
cGxheS10aGVuLXNlZWstYmFjay13aXRoLXJlbW90ZS1jb250cm9sLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS10aGVu
LXNlZWstYmFjay13aXRoLXJlbW90ZS1jb250cm9sLmh0bWwKQEAgLTEsOCArMSw4IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogICAgIDxoZWFkPgotICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KICAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0Pgog
ICAgIDwvaGVhZD4KICAgICA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9nZW5lcmF0ZS1jb25maWctY2hhbmdlLXRl
c3RzLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291
cmNlL2dlbmVyYXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkKaW5kZXggNGVkYjkyNWI0NDhhZjM2
MDQxYTRjYTNmMDBlZDI4ZjEyYWI3MDY4Yy4uZTg5OTEyMDNhNjllZmZlN2M4OTA3NTliYWYwOTc4
NDQ3MDg1M2Y5MCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNv
dXJjZXMvbWVkaWEtc291cmNlL2dlbmVyYXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL2dlbmVy
YXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkKQEAgLTc5LDExICs3OSwxMSBAQCBDT0RFQ19JTkZP
ID0gewogSFRNTF9URU1QTEFURSA9ICIiIjwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiAgICAgPGhl
YWQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibWVk
aWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+
CiAgICAgPC9oZWFkPgogICAgIDxib2R5PgogICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVsb2FkL3NpbmdsZV9kb3dubG9h
ZF9wcmVsb2FkX3J1bm5lci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVsb2FkL3Np
bmdsZV9kb3dubG9hZF9wcmVsb2FkX3J1bm5lci5odG1sCmluZGV4IGJiNmI3MWMyM2I4Y2UxMjQ4
ZjgzY2IwODJlNWIxMjlkMzNlMTY3YjEuLjE2YWI4OWFhMDU3ZmY4ODJmNzUxY2Y3YWYwZWNkMjFh
NjgxMmEwNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlbG9hZC9zaW5n
bGVfZG93bmxvYWRfcHJlbG9hZF9ydW5uZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfcnVubmVyLmh0bWwKQEAgLTEsNiAr
MSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICAgICAgaW50ZXJuYWxzLnNldExpbmtQcmVsb2FkU3VwcG9ydCh0cnVlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNz
cy0xLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1j
c3MtMS5odG1sCmluZGV4IDE5NDdkYmQ3NzViN2Q3ZjM2ODY0ZDdmZjVhNGZhZThlNmNkNGVjMDku
LmE4MTZlMDY4MDg2ZTFiY2Q0YmU1ODNhOWJiZmExZDI5MWNjNTRmNmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0xLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTEuaHRt
bApAQCAtOCw4ICs4LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNo
b3duIGFuZCB0aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNh
Y2hlVG9TaXplKDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KIAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy94b3JpZ2luY3NzMS5odG1sIj48L2xpbms+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0yLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMi5odG1sCmluZGV4IGRh
Yzg5YWM5ZjIwMWVmZTI0ZWQ0MDU1NzA1M2YyMTE4MjQ1OTliNWUuLjczM2QxNmU1NmJmYmY2ZDIx
NjMwODY0ZjIyNGM5Yzc2OGRkOTg0MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTIuaHRtbApAQCAtOCw4ICs4LDggQEAK
IC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFuZCB0aGUgdGVzdCB3
b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9TaXplKDApOwogPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KIAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL3Jlc291
cmNlcy9yZWRpcmVjdC5waHA/dXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMveG9yaWdpbmNzczIuaHRtbCI+PC9saW5rPgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0zLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMy5odG1sCmlu
ZGV4IGQ2YTNiODUwMGE0MmU4YTViOTZkYTFkMGQzZDA0YTI1Y2M5OTAxYjAuLjljZjQwYWQyYjg1
MmEyYjgzOTZlMzUwNDdmOTNjYWE5MThiNDRmOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0zLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTMuaHRtbApAQCAtOCw4ICs4
LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFuZCB0aGUg
dGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9TaXplKDAp
OwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KIAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgICAgaHJlZj0iL3Jlc291cmNl
cy9yZWRpcmVjdC5waHA/dXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMveG9yaWdpbmNzczEuY3NzIj48L2xpbms+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtNC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTQuaHRtbAppbmRleCAyOTQxZGUyM2Mz
YWQ2MjRmNzhkOTZmYjNmM2MyZDU5NzUxZDY2NjNjLi4wNTY4YThmODkzN2UyNWM2MTlkOWFiY2Yy
ZWE3MzlhOGQ4NGIwZjVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1jc3MtNC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy00Lmh0bWwKQEAgLTgsOCArOCw4IEBACiAvLyB0aGUg
Y29uc29sZSB3YXJuaW5nIHdvdWxkIG5vdCBiZSBzaG93biBhbmQgdGhlIHRlc3Qgd291bGQgYmUg
Zmxha3kuCiBpbnRlcm5hbHMucHJ1bmVNZW1vcnlDYWNoZVRvU2l6ZSgwKTsKIDwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3hvcmlnaW5jc3MzLmh0bWwiPjwv
bGluaz4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tY3NzLTUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLWNzcy01Lmh0bWwKaW5kZXggNTU5ODM3ZjAwOGU4MjBiZmQ4YmExOGZmMDMxZDg5
N2M3ZWRlNDE1Mi4uZTMyMzZkMmJhMzA5M2U2MDljNWEzMjY1NGNmM2YzOWM4NjUyNTRlNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3Nz
LTUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi1jc3MtNS5odG1sCkBAIC04LDggKzgsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3Vs
ZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBy
dW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8c3R5bGU+CiBAaW1wb3J0ICIvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy94b3JpZ2luY3NzNC5odG1sIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy02Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtNi5odG1sCmluZGV4IDFjZjc0YTdhNjc2
M2ZjNjNhYjAwMDdlMzI1OWVjZTZmZWYyMDI3ZWQuLmU3M2JjNTVmNzM1NjM5OTlmMWQ2OWJmN2Y1
NDgxNzE3ZTBjY2FlZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLWNzcy02Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTYuaHRtbApAQCAtOCw4ICs4LDggQEAKIC8vIHRoZSBj
b25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFuZCB0aGUgdGVzdCB3b3VsZCBiZSBm
bGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9TaXplKDApOwogPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIAogPHN0
eWxlPgogQGltcG9ydCAiL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPWh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNzczIuY3NzIjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy03Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtNy5odG1s
CmluZGV4IDk1YjA0YWZjODM3MTU4OTFkZWVjZWI2ZmE0MjU1ZGNiYjg4YjhiNWQuLjI3MDg0MzRk
MDFjZWFjNTc4MjBlNTMxNTk1NjA1ZTdlZGZjNjEzMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy03Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTcuaHRtbApAQCAtOCw4
ICs4LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFuZCB0
aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9TaXpl
KDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KIAogPHN0eWxlPgogQGltcG9ydCAicmVzb3VyY2VzL3hvcmlnaW5jc3M1Lmh0
bWwiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4tY3NzLTguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWNzcy04Lmh0bWwKaW5kZXggYmYzNmI2OGYxMTlmYjMyYjY5MWQ2NGE2NTFlNzk0ODhh
ZWNiMDQzMC4uZTNiMzc3MGEwNDNiN2YxODU5YzQzMTU5NThkYjNjMzE0YmQ0ZGQ5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTgu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1j
c3MtOC5odG1sCkBAIC04LDggKzgsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3VsZCBu
b3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBydW5l
TWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8c3R5bGU+CiAjZGF0YS1iYWNrZ3JvdW5k
LXVybCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi1jc3MtOS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tY3NzLTkuaHRtbAppbmRleCA1YjkwNjFlZmI5MTZkMmE4N2ViODU5MzczMWMxM2My
NzUwNDc0NmZmLi4xZmFiOGJlYWYwYTFiNzRmMmYzMjAwMjAxYjExYWMwZGFlMDY5N2Q1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3Mt
OS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LWNzcy05Lmh0bWwKQEAgLTMsOCArMyw4IEBACiA8aGVhZD4KIDx0aXRsZT5Dcm9zcy1vcmlnaW4g
Q1NTOiBPcmlnaW4gaGVhZGVyIHNob3VsZCBiZSBzZXQgd2hlbiBmZXRjaGluZyBzdHlsZXNoZWV0
IGluIGNvcnMgbW9kZTwvdGl0bGU+CiAKLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8bGluayBpZD0ibGluay1pZDAiIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9zZWN1cml0eS9yZXNvdXJjZXMvZ2V0LWNzcy1pZi1v
cmlnaW4taGVhZGVyLnBocD9pZD1pZDAiPjwvbGluaz4KIDxsaW5rIGlkPSJsaW5rLWlkMSIgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3NlY3VyaXR5L3Jlc291cmNlcy9nZXQtY3NzLWlmLW9yaWdpbi1oZWFkZXIucGhwP2lkPWlkMSI+
PC9saW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tY3NzLWluLXF1aXJrcy0xLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTEuaHRtbAppbmRleCA4ZjI0NzZlODJk
ZWMwNjY0YTRkNDdmMzRiYjQzMjA5NzJiMDhlNmY0Li45MWQwZDhmZjNiYTFhYzY0NjQwZTA3ODFi
OGE2OTUwODI5OGE3MTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTEuaHRtbApAQCAt
MTEsOCArMTEsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3VsZCBub3QgYmUgc2hvd24g
YW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBydW5lTWVtb3J5Q2FjaGVU
b1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogCiA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwP3VybD1odHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3Vy
Y2VzL3hvcmlnaW5jc3MxLmh0bWwiPjwvbGluaz4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0yLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtz
LTIuaHRtbAppbmRleCBhZWEwZGU4N2E4MmNjNzIzYjY3YTFjMWQwMDRkMmQ5NzdhY2M1ZjlkLi5m
YWRiODA0YThjMmNlNzUwY2U2MGYyY2ViOGQxMzYxZDU2ZDAzYjJiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1j
c3MtaW4tcXVpcmtzLTIuaHRtbApAQCAtMTEsOCArMTEsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2Fy
bmluZyB3b3VsZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50
ZXJuYWxzLnBydW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91
cmw9aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94b3JpZ2luY3NzMi5o
dG1sIj48L2xpbms+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0zLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTMuaHRtbApp
bmRleCAyZWEzMjQzZDg4YWI0ZDA4MGNiZTEyOGMzOTI0YzgwNjczYjkwMzQxLi5iNTVjMGExZGE5
NjdhZmQwNzk4M2ZiYTc2YmYzY2VkMzcxMjI3ZTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVp
cmtzLTMuaHRtbApAQCAtMTEsOCArMTEsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3Vs
ZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBy
dW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8bGluayByZWw9InN0eWxlc2hlZXQi
CiAgICAgICBocmVmPSIvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9aHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94b3JpZ2luY3NzMS5jc3MiPjwvbGluaz4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1p
bi1xdWlya3MtNC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4tY3NzLWluLXF1aXJrcy00Lmh0bWwKaW5kZXggY2U3OTc4MzI0NGRjODc1MDAyOTFlYmFl
MzhjMTIzMTk1ODJmNzljOC4uMmVhODQyOGEwZGFhOWMwMTkxNjMzYmQzNzlkOGU2NDdjNWFjZTNi
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4tY3NzLWluLXF1aXJrcy00Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy00Lmh0bWwKQEAgLTExLDggKzExLDggQEAK
IC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFuZCB0aGUgdGVzdCB3
b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9TaXplKDApOwogPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KIAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMveG9yaWdpbmNzczMu
aHRtbCI+PC9saW5rPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtNS5odG1sCmluZGV4IDk1
NjZhYmFlMGJmNWZjMDY3Y2UwZGRjNmY1ZThhOWI2YTU1NGVjM2QuLjlhZDVkN2I5MWZmYWZhNGVh
ZDUyYzgyNjk5Y2I0Y2I2NTg3OTAxNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtNS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtNS5o
dG1sCkBAIC0xMSw4ICsxMSw4IEBACiAvLyB0aGUgY29uc29sZSB3YXJuaW5nIHdvdWxkIG5vdCBi
ZSBzaG93biBhbmQgdGhlIHRlc3Qgd291bGQgYmUgZmxha3kuCiBpbnRlcm5hbHMucHJ1bmVNZW1v
cnlDYWNoZVRvU2l6ZSgwKTsKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKIDxzdHlsZT4KIEBpbXBvcnQgIi9yZXNvdXJjZXMv
cmVkaXJlY3QucGhwP3VybD1odHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L3hvcmlnaW5jc3M0Lmh0bWwiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy02Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTYuaHRtbAppbmRl
eCAzYzMxYWM5YzRiMjBjMDA0MDIyMGM5ZDliNjZlYzJjZTJkOGFkOTc5Li44NzE0NWRiYTNkYTFl
MjI5ZDJmNzg4OWY5YzI4YWNlODFjZmQ4NDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTYuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtz
LTYuaHRtbApAQCAtMTEsOCArMTEsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3VsZCBu
b3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBydW5l
TWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8c3R5bGU+CiBAaW1wb3J0ICIvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocD91cmw9aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291
cmNlcy94b3JpZ2luY3NzMi5jc3MiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy03Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTcuaHRtbApp
bmRleCAwOTNiMzk3MzBlYjAwNWU5NGUyYzk4MmU5ZmMyMmRmZmE2M2YzOGExLi43YmZjNGMyZDRh
MDRiNWJkODU0NTRmNGRiYzFkN2JjODkxZjAwMzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVp
cmtzLTcuaHRtbApAQCAtMTEsOCArMTEsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3Vs
ZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBy
dW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8c3R5bGU+CiBAaW1wb3J0ICJyZXNv
dXJjZXMveG9yaWdpbmNzczUuaHRtbCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTguaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtOC5odG1s
CmluZGV4IGIzOWY0N2ZkYTRiOWFlYzYzZTk2NmUxZDQyOTkyODM0MGNmMTg2ZTYuLjgyYWU3MWQy
NDQ0ZDMzN2UxZjc1MTQwN2M1NjQ4YWMwYThjMWVkMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtOC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1x
dWlya3MtOC5odG1sCkBAIC0xMSw4ICsxMSw4IEBACiAvLyB0aGUgY29uc29sZSB3YXJuaW5nIHdv
dWxkIG5vdCBiZSBzaG93biBhbmQgdGhlIHRlc3Qgd291bGQgYmUgZmxha3kuCiBpbnRlcm5hbHMu
cHJ1bmVNZW1vcnlDYWNoZVRvU2l6ZSgwKTsKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKIDxzdHlsZT4KICNkYXRhLWJhY2tn
cm91bmQtdXJsIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTEuaHRtbAppbmRleCA2NmUxM2Q3MDU0YmNmNGE0OWQxNmMyNzAzZjI5
ZGQyZTMwMTRmODFlLi5iOTFiMjAxY2E3ZjE2NmI5MzU1ODcyYzVjMDVjZmZiYmRmODdhYTIwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNz
cy0xLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdp
bi1jc3MtMS5odG1sCkBAIC04LDggKzgsOCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3Vs
ZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBy
dW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0vc2VjdXJpdHkvcmVzb3VyY2VzL3hv
cmlnaW5jc3MxLmh0bWwiPjwvbGluaz4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMi5odG1sCmluZGV4IGI3NGFmNzY3MGM4NDM2
NjU0YzVkYjYwNGY3OTQxYjJiMjY3NjhkMmYuLmRiYTc4ODUxMDUxZWQ1YWI4YjE5NWY4YjU3Yzcy
MzE4Mjk5NGVhODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3NhbWUtb3JpZ2luLWNzcy0yLmh0bWwKQEAgLTgsOCArOCw4IEBACiAvLyB0aGUgY29uc29s
ZSB3YXJuaW5nIHdvdWxkIG5vdCBiZSBzaG93biBhbmQgdGhlIHRlc3Qgd291bGQgYmUgZmxha3ku
CiBpbnRlcm5hbHMucHJ1bmVNZW1vcnlDYWNoZVRvU2l6ZSgwKTsKIDwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwP3VybD0vc2VjdXJpdHkvcmVzb3VyY2VzL3hvcmlnaW5jc3MyLmh0bWwiPjwvbGluaz4KIDxz
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLWNzcy0zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLWNzcy0zLmh0bWwKaW5kZXggODQ5MjJmOGFmNTQ3OWRlYjAzYWI2OGVhMzU2NTJhMDY3
ZmI5NzY5NC4uYjllMDkxYWQ2OTc1M2M1NzRhMzM1YTM0Y2VhNjc0Mjc3ZDE3ZDM3MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3Nz
LTMuaHRtbApAQCAtOCw4ICs4LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90
IGJlIHNob3duIGFuZCB0aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1l
bW9yeUNhY2hlVG9TaXplKDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAg
ICAgaHJlZj0iL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPS9zZWN1cml0eS9yZXNvdXJjZXMv
eG9yaWdpbmNzczEuY3NzIj48L2xpbms+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy00Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy00Lmh0bWwKaW5kZXggNmFkMzE5MzQ4MDM3YjFk
MDgwM2Y4MDNlZjA5ZWEyMGVlZjBjNjdkMC4uYmFhMmMwZjc1M2Q5NDQyNTYxYWVlNTA1YzUzZTE4
YTcxMGE3Y2RhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
YW1lLW9yaWdpbi1jc3MtNC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvc2FtZS1vcmlnaW4tY3NzLTQuaHRtbApAQCAtNyw4ICs3LDggQEAKIC8vIHRoZSBjb25zb2xl
IHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFuZCB0aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4K
IGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9TaXplKDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIAogPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMveG9yaWdpbmNzczMuaHRtbCI+PC9saW5rPgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2lu
LWNzcy01Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2lu
LWNzcy01Lmh0bWwKaW5kZXggYmM5NmQzZjVjNDMyYzc5MGM2MDBhNTA1MDE0Y2MzNWRkMjViMTEw
Yi4uOTJmZDI5MzI0ZTNlNjljMzhjMmExODlmMWZhM2U4NDllYWFhMmE4MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtNS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTUuaHRt
bApAQCAtOCw4ICs4LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNo
b3duIGFuZCB0aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNh
Y2hlVG9TaXplKDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KIAogPHN0eWxlPgogQGltcG9ydCAiL3Jlc291cmNlcy9yZWRp
cmVjdC5waHA/dXJsPS9zZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNzczQuaHRtbCI7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy02
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy02
Lmh0bWwKaW5kZXggYTQwOTJlMTc2ZDc1OGU0MmE5Mzc4YmEwZjI2OTViZDJmNTNlMjkyNy4uMDFh
ZWQzOGFmMGYxZTRmZWU4OWU2OWI4MjI3ZWE3OGQ2MWRlOTRkYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtNi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTYuaHRtbApAQCAt
OCw4ICs4LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNob3duIGFu
ZCB0aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNhY2hlVG9T
aXplKDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KIAogPHN0eWxlPgogQGltcG9ydCAiL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHA/dXJsPS9zZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNzczIuY3NzIjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTcuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTcuaHRtbApp
bmRleCA3YWE5MWQ5YWJjZDNhZTE1ODk1MWNiMTUzOWRlNDE3ZjE2YTJlYmM1Li5kZDk2MGU1NDNm
NGI2YmY0ODZhYzJhYWZlNmU3NGJiOTE1Y2JhYjQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy03Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtNy5odG1sCkBAIC04LDggKzgs
OCBAQAogLy8gdGhlIGNvbnNvbGUgd2FybmluZyB3b3VsZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0
ZXN0IHdvdWxkIGJlIGZsYWt5LgogaW50ZXJuYWxzLnBydW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7
CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgogCiA8c3R5bGU+CiBAaW1wb3J0ICJyZXNvdXJjZXMveG9yaWdpbmNzczUuaHRtbCI7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2lu
LWNzcy04Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2lu
LWNzcy04Lmh0bWwKaW5kZXggYThkYzMxMzY3NDY5ZmMwNjg1YzUzMDE4MzliZDEwMDJjNWY2NTll
MC4uYjIzMTZlZjZmNWQ0MGVmMDQ2NzNhMzk3N2JkMzlmOWY2MTFjZDk4NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtOC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTguaHRt
bApAQCAtOCw4ICs4LDggQEAKIC8vIHRoZSBjb25zb2xlIHdhcm5pbmcgd291bGQgbm90IGJlIHNo
b3duIGFuZCB0aGUgdGVzdCB3b3VsZCBiZSBmbGFreS4KIGludGVybmFscy5wcnVuZU1lbW9yeUNh
Y2hlVG9TaXplKDApOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KIAogPHN0eWxlPgogI2RhdGEtYmFja2dyb3VuZC11cmwgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1j
c3MtaW4tcXVpcmtzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLWNzcy1pbi1xdWlya3MuaHRtbAppbmRleCAyNmNkOGFiM2NhYWYxNTI2MjM4NWVkMjg5
M2RhNGM4ODM0ZDhkNTY0Li45YTI2MmM1NTk0NzhiZWI3OGFlOTRlMTNkYjg5ZTg5NmU4YWFiZTUy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2lu
LWNzcy1pbi1xdWlya3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3NhbWUtb3JpZ2luLWNzcy1pbi1xdWlya3MuaHRtbApAQCAtMTEsOCArMTEsOCBAQAogLy8gdGhl
IGNvbnNvbGUgd2FybmluZyB3b3VsZCBub3QgYmUgc2hvd24gYW5kIHRoZSB0ZXN0IHdvdWxkIGJl
IGZsYWt5LgogaW50ZXJuYWxzLnBydW5lTWVtb3J5Q2FjaGVUb1NpemUoMCk7CiA8L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCiA8
bGluayByZWw9InN0eWxlc2hlZXQiCiAgICAgICBocmVmPSIvcmVzb3VyY2VzL3JlZGlyZWN0LnBo
cD91cmw9L3NlY3VyaXR5L3Jlc291cmNlcy94b3JpZ2luY3NzMS5odG1sIj48L2xpbms+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9SRUFETUUgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4ODQy
ZGQxMjI4NjQ3ODdmMWVmZGEzYmU3ZDRhOTFjN2UzZGY1OTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvUkVB
RE1FCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGhpcyBkaXJlY3RvcnkgY29udGFp
bnMgZmlsZXMgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDLgotCi1UaGVzZSBmaWxlcyBzaG91bGQgbm90
IGJlIG1vZGlmaWVkIGRpcmVjdGx5IHVubGVzcyBub3RlZCBvdGhlcndpc2UuCi1QbGVhc2Ugc291
cmNlIHRoZSBmaWxlcyBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgotCi1yZXNvdXJjZXMg
LSBodHRwOi8vdzNjLXRlc3Qub3JnL3Jlc291cmNlcy8gKGxhc3QgaW5jbHVkZWQgY2hhbmdlc2V0
IDA2Y2FiMzBiY2VlMikKLSBXZWJJRExQYXJzZXIuanMKLSBpZGxoYXJuZXNzLmpzCi0gdGVzdGhh
cm5lc3MuanMKLSB0ZXN0aGFybmVzcy5jc3MKLSB0ZXN0aGFybmVzc3JlcG9ydC5qcyAtIE1vZGlm
eSBkaXJlY3RseS4KLQotd2VicGVyZi8gLSBodHRwOi8vdzNjLXRlc3Qub3JnL3Jlc291cmNlcy8g
KGxhc3QgaW5jbHVkZWQgY2hhbmdlc2V0IHVua25vd24pCi0gKFVzZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtcGVyZm9ybWFuY2Utd2ctdGVzdHMgZm9yIHVwZGF0aW5nKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1ODVlZDI5MDdiZDZmMWUzYzUxMGM5MjJmNGY0ODEz
NWVjMGE1NDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcworKysg
L2Rldi9udWxsCkBAIC0xLDU5OTAgKzAsMCBAQAotLy8gRnJvbSBodHRwczovL2dpdGh1Yi5jb20v
ZGFyb2Jpbi93ZWJpZGwuanMvdHJlZS8sIHVuZGVyIE1JVCBsaWNlbnNlCi13aW5kb3cuV2ViSURM
UGFyc2VyID0gKGZ1bmN0aW9uKCl7Ci0gIC8qCi0gICAqIEdlbmVyYXRlZCBieSBQRUcuanMgMC43
LjAuCi0gICAqCi0gICAqIGh0dHA6Ly9wZWdqcy5tYWpkYS5jei8KLSAgICovCi0gIAotICBmdW5j
dGlvbiBxdW90ZShzKSB7Ci0gICAgLyoKLSAgICAgKiBFQ01BLTI2MiwgNXRoIGVkLiwgNy44LjQ6
IEFsbCBjaGFyYWN0ZXJzIG1heSBhcHBlYXIgbGl0ZXJhbGx5IGluIGEKLSAgICAgKiBzdHJpbmcg
bGl0ZXJhbCBleGNlcHQgZm9yIHRoZSBjbG9zaW5nIHF1b3RlIGNoYXJhY3RlciwgYmFja3NsYXNo
LAotICAgICAqIGNhcnJpYWdlIHJldHVybiwgbGluZSBzZXBhcmF0b3IsIHBhcmFncmFwaCBzZXBh
cmF0b3IsIGFuZCBsaW5lIGZlZWQuCi0gICAgICogQW55IGNoYXJhY3RlciBtYXkgYXBwZWFyIGlu
IHRoZSBmb3JtIG9mIGFuIGVzY2FwZSBzZXF1ZW5jZS4KLSAgICAgKgotICAgICAqIEZvciBwb3J0
YWJpbGl0eSwgd2UgYWxzbyBlc2NhcGUgZXNjYXBlIGFsbCBjb250cm9sIGFuZCBub24tQVNDSUkK
LSAgICAgKiBjaGFyYWN0ZXJzLiBOb3RlIHRoYXQgIlwwIiBhbmQgIlx2IiBlc2NhcGUgc2VxdWVu
Y2VzIGFyZSBub3QgdXNlZAotICAgICAqIGJlY2F1c2UgSlNIaW50IGRvZXMgbm90IGxpa2UgdGhl
IGZpcnN0IGFuZCBJRSB0aGUgc2Vjb25kLgotICAgICAqLwotICAgICByZXR1cm4gJyInICsgcwot
ICAgICAgLnJlcGxhY2UoL1xcL2csICdcXFxcJykgIC8vIGJhY2tzbGFzaAotICAgICAgLnJlcGxh
Y2UoLyIvZywgJ1xcIicpICAgIC8vIGNsb3NpbmcgcXVvdGUgY2hhcmFjdGVyCi0gICAgICAucmVw
bGFjZSgvXHgwOC9nLCAnXFxiJykgLy8gYmFja3NwYWNlCi0gICAgICAucmVwbGFjZSgvXHQvZywg
J1xcdCcpICAgLy8gaG9yaXpvbnRhbCB0YWIKLSAgICAgIC5yZXBsYWNlKC9cbi9nLCAnXFxuJykg
ICAvLyBsaW5lIGZlZWQKLSAgICAgIC5yZXBsYWNlKC9cZi9nLCAnXFxmJykgICAvLyBmb3JtIGZl
ZWQKLSAgICAgIC5yZXBsYWNlKC9cci9nLCAnXFxyJykgICAvLyBjYXJyaWFnZSByZXR1cm4KLSAg
ICAgIC5yZXBsYWNlKC9bXHgwMC1ceDA3XHgwQlx4MEUtXHgxRlx4ODAtXHVGRkZGXS9nLCBlc2Nh
cGUpCi0gICAgICArICciJzsKLSAgfQotICAKLSAgdmFyIHJlc3VsdCA9IHsKLSAgICAvKgotICAg
ICAqIFBhcnNlcyB0aGUgaW5wdXQgd2l0aCBhIGdlbmVyYXRlZCBwYXJzZXIuIElmIHRoZSBwYXJz
aW5nIGlzIHN1Y2Nlc3NmdWxsLAotICAgICAqIHJldHVybnMgYSB2YWx1ZSBleHBsaWNpdGx5IG9y
IGltcGxpY2l0bHkgc3BlY2lmaWVkIGJ5IHRoZSBncmFtbWFyIGZyb20KLSAgICAgKiB3aGljaCB0
aGUgcGFyc2VyIHdhcyBnZW5lcmF0ZWQgKHNlZSB8UEVHLmJ1aWxkUGFyc2VyfCkuIElmIHRoZSBw
YXJzaW5nIGlzCi0gICAgICogdW5zdWNjZXNzZnVsLCB0aHJvd3MgfFBFRy5wYXJzZXIuU3ludGF4
RXJyb3J8IGRlc2NyaWJpbmcgdGhlIGVycm9yLgotICAgICAqLwotICAgIHBhcnNlOiBmdW5jdGlv
bihpbnB1dCwgc3RhcnRSdWxlKSB7Ci0gICAgICB2YXIgcGFyc2VGdW5jdGlvbnMgPSB7Ci0gICAg
ICAgICJzcGFjZSI6IHBhcnNlX3NwYWNlLAotICAgICAgICAicyI6IHBhcnNlX3MsCi0gICAgICAg
ICJ3IjogcGFyc2VfdywKLSAgICAgICAgImlkZW50aWZpZXIiOiBwYXJzZV9pZGVudGlmaWVyLAot
ICAgICAgICAib2N0YWwiOiBwYXJzZV9vY3RhbCwKLSAgICAgICAgImhleCI6IHBhcnNlX2hleCwK
LSAgICAgICAgImRlY2ltYWwiOiBwYXJzZV9kZWNpbWFsLAotICAgICAgICAiaW50ZWdlciI6IHBh
cnNlX2ludGVnZXIsCi0gICAgICAgICJmbG9hdEVlIjogcGFyc2VfZmxvYXRFZSwKLSAgICAgICAg
ImV4cEZsb2F0IjogcGFyc2VfZXhwRmxvYXQsCi0gICAgICAgICJsZWFkRmxvYXQiOiBwYXJzZV9s
ZWFkRmxvYXQsCi0gICAgICAgICJkb3RGbG9hdCI6IHBhcnNlX2RvdEZsb2F0LAotICAgICAgICAi
ZmxvYXQiOiBwYXJzZV9mbG9hdCwKLSAgICAgICAgInN0cmluZyI6IHBhcnNlX3N0cmluZywKLSAg
ICAgICAgIm90aGVyIjogcGFyc2Vfb3RoZXIsCi0gICAgICAgICJ0eXBlIjogcGFyc2VfdHlwZSwK
LSAgICAgICAgIlR5cGVEZXNjIjogcGFyc2VfVHlwZURlc2MsCi0gICAgICAgICJTZXF1ZW5jZSI6
IHBhcnNlX1NlcXVlbmNlLAotICAgICAgICAiQXJyYXlUeXBlIjogcGFyc2VfQXJyYXlUeXBlLAot
ICAgICAgICAiVW5pb25UeXBlIjogcGFyc2VfVW5pb25UeXBlLAotICAgICAgICAiVHlwZUxpc3Qi
OiBwYXJzZV9UeXBlTGlzdCwKLSAgICAgICAgIlR5cGVMaXN0UmVzdCI6IHBhcnNlX1R5cGVMaXN0
UmVzdCwKLSAgICAgICAgIlNpbXBsZVR5cGUiOiBwYXJzZV9TaW1wbGVUeXBlLAotICAgICAgICAi
UHJpbWl0aXZlVHlwZSI6IHBhcnNlX1ByaW1pdGl2ZVR5cGUsCi0gICAgICAgICJGbG9hdFR5cGUi
OiBwYXJzZV9GbG9hdFR5cGUsCi0gICAgICAgICJVbnNpZ25lZEludGVnZXJUeXBlIjogcGFyc2Vf
VW5zaWduZWRJbnRlZ2VyVHlwZSwKLSAgICAgICAgIlNjb3BlZE5hbWVMaXN0IjogcGFyc2VfU2Nv
cGVkTmFtZUxpc3QsCi0gICAgICAgICJTY29wZWROYW1lTGlzdFJlc3QiOiBwYXJzZV9TY29wZWRO
YW1lTGlzdFJlc3QsCi0gICAgICAgICJTY29wZWROYW1lIjogcGFyc2VfU2NvcGVkTmFtZSwKLSAg
ICAgICAgIkFic29sdXRlU2NvcGVkTmFtZSI6IHBhcnNlX0Fic29sdXRlU2NvcGVkTmFtZSwKLSAg
ICAgICAgIlJlbGF0aXZlU2NvcGVkTmFtZSI6IHBhcnNlX1JlbGF0aXZlU2NvcGVkTmFtZSwKLSAg
ICAgICAgIlNjb3BlZE5hbWVSZXN0IjogcGFyc2VfU2NvcGVkTmFtZVJlc3QsCi0gICAgICAgICJC
b29sZWFuTGl0ZXJhbCI6IHBhcnNlX0Jvb2xlYW5MaXRlcmFsLAotICAgICAgICAiTnVsbGFibGUi
OiBwYXJzZV9OdWxsYWJsZSwKLSAgICAgICAgIlJldHVyblR5cGUiOiBwYXJzZV9SZXR1cm5UeXBl
LAotICAgICAgICAiZGVmaW5pdGlvbnMiOiBwYXJzZV9kZWZpbml0aW9ucywKLSAgICAgICAgImRl
ZmluaXRpb24iOiBwYXJzZV9kZWZpbml0aW9uLAotICAgICAgICAicGFydGlhbGludGVyZmFjZSI6
IHBhcnNlX3BhcnRpYWxpbnRlcmZhY2UsCi0gICAgICAgICJwYXJ0aWFsZGljdGlvbmFyeSI6IHBh
cnNlX3BhcnRpYWxkaWN0aW9uYXJ5LAotICAgICAgICAiY2FsbGJhY2tpbnRlcmZhY2UiOiBwYXJz
ZV9jYWxsYmFja2ludGVyZmFjZSwKLSAgICAgICAgIm1vZHVsZSI6IHBhcnNlX21vZHVsZSwKLSAg
ICAgICAgImltcGxlbWVudHMiOiBwYXJzZV9pbXBsZW1lbnRzLAotICAgICAgICAiaW50ZXJmYWNl
IjogcGFyc2VfaW50ZXJmYWNlLAotICAgICAgICAiZW51bSI6IHBhcnNlX2VudW0sCi0gICAgICAg
ICJjYWxsYmFjayI6IHBhcnNlX2NhbGxiYWNrLAotICAgICAgICAiRW51bVZhbHVlcyI6IHBhcnNl
X0VudW1WYWx1ZXMsCi0gICAgICAgICJFbnVtVmFsdWVzUmVzdCI6IHBhcnNlX0VudW1WYWx1ZXNS
ZXN0LAotICAgICAgICAiSW5oZXJpdGFuY2UiOiBwYXJzZV9Jbmhlcml0YW5jZSwKLSAgICAgICAg
IkluaGVyaXRhbmNlSW5uZXIiOiBwYXJzZV9Jbmhlcml0YW5jZUlubmVyLAotICAgICAgICAiSW50
ZXJmYWNlTWVtYmVyTGlzdCI6IHBhcnNlX0ludGVyZmFjZU1lbWJlckxpc3QsCi0gICAgICAgICJJ
bnRlcmZhY2VNZW1iZXIiOiBwYXJzZV9JbnRlcmZhY2VNZW1iZXIsCi0gICAgICAgICJjb25zdCI6
IHBhcnNlX2NvbnN0LAotICAgICAgICAiY29uc3RFeHByIjogcGFyc2VfY29uc3RFeHByLAotICAg
ICAgICAiYXR0ck9yT3AiOiBwYXJzZV9hdHRyT3JPcCwKLSAgICAgICAgIlN0cmluZ2lmaWVyIjog
cGFyc2VfU3RyaW5naWZpZXIsCi0gICAgICAgICJBdHRyaWJ1dGUiOiBwYXJzZV9BdHRyaWJ1dGUs
Ci0gICAgICAgICJHZXRSYWlzZXMiOiBwYXJzZV9HZXRSYWlzZXMsCi0gICAgICAgICJTZXRSYWlz
ZXMiOiBwYXJzZV9TZXRSYWlzZXMsCi0gICAgICAgICJPcGVyYXRpb24iOiBwYXJzZV9PcGVyYXRp
b24sCi0gICAgICAgICJRdWFsaWZpZXJzIjogcGFyc2VfUXVhbGlmaWVycywKLSAgICAgICAgIlNw
ZWNpYWwiOiBwYXJzZV9TcGVjaWFsLAotICAgICAgICAiT3BlcmF0aW9uUmVzdCI6IHBhcnNlX09w
ZXJhdGlvblJlc3QsCi0gICAgICAgICJBcmd1bWVudHMiOiBwYXJzZV9Bcmd1bWVudHMsCi0gICAg
ICAgICJBcmd1bWVudHNSZXN0IjogcGFyc2VfQXJndW1lbnRzUmVzdCwKLSAgICAgICAgIkFyZ3Vt
ZW50IjogcGFyc2VfQXJndW1lbnQsCi0gICAgICAgICJSYWlzZXMiOiBwYXJzZV9SYWlzZXMsCi0g
ICAgICAgICJkaWN0aW9uYXJ5IjogcGFyc2VfZGljdGlvbmFyeSwKLSAgICAgICAgIkRpY3Rpb25h
cnlNZW1iZXJMaXN0IjogcGFyc2VfRGljdGlvbmFyeU1lbWJlckxpc3QsCi0gICAgICAgICJEaWN0
aW9uYXJ5TWVtYmVyIjogcGFyc2VfRGljdGlvbmFyeU1lbWJlciwKLSAgICAgICAgImRlZmF1bHRW
YWx1ZSI6IHBhcnNlX2RlZmF1bHRWYWx1ZSwKLSAgICAgICAgInR5cGVkZWYiOiBwYXJzZV90eXBl
ZGVmLAotICAgICAgICAiZXhjZXB0aW9uIjogcGFyc2VfZXhjZXB0aW9uLAotICAgICAgICAiRXhj
ZXB0aW9uTWVtYmVycyI6IHBhcnNlX0V4Y2VwdGlvbk1lbWJlcnMsCi0gICAgICAgICJFeGNlcHRp
b25NZW1iZXIiOiBwYXJzZV9FeGNlcHRpb25NZW1iZXIsCi0gICAgICAgICJmaWVsZCI6IHBhcnNl
X2ZpZWxkLAotICAgICAgICAiRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IjogcGFyc2VfRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0LAotICAgICAgICAiRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0SW5uZXIiOiBwYXJz
ZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3RJbm5lciwKLSAgICAgICAgIkV4dEF0dHJzIjogcGFyc2Vf
RXh0QXR0cnMsCi0gICAgICAgICJFeHRBdHRyc1Jlc3QiOiBwYXJzZV9FeHRBdHRyc1Jlc3QsCi0g
ICAgICAgICJFeHRBdHRyIjogcGFyc2VfRXh0QXR0ciwKLSAgICAgICAgIkV4dEF0dHJOb0FyZyI6
IHBhcnNlX0V4dEF0dHJOb0FyZywKLSAgICAgICAgIkV4dEF0dHJOYW1lVmFsdWUiOiBwYXJzZV9F
eHRBdHRyTmFtZVZhbHVlLAotICAgICAgICAiRXh0QXR0ck5hbWVkQXJnTGlzdCI6IHBhcnNlX0V4
dEF0dHJOYW1lZEFyZ0xpc3QsCi0gICAgICAgICJFeHRBdHRyTmFtZWRBcmdMaXN0IjogcGFyc2Vf
RXh0QXR0ck5hbWVkQXJnTGlzdCwKLSAgICAgICAgIkV4dEF0dHJBcmdMaXN0IjogcGFyc2VfRXh0
QXR0ckFyZ0xpc3QKLSAgICAgIH07Ci0gICAgICAKLSAgICAgIGlmIChzdGFydFJ1bGUgIT09IHVu
ZGVmaW5lZCkgewotICAgICAgICBpZiAocGFyc2VGdW5jdGlvbnNbc3RhcnRSdWxlXSA9PT0gdW5k
ZWZpbmVkKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJ1bGUgbmFtZTog
IiArIHF1b3RlKHN0YXJ0UnVsZSkgKyAiLiIpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICBzdGFydFJ1bGUgPSAiZGVmaW5pdGlvbnMiOwotICAgICAgfQotICAgICAgCi0gICAg
ICB2YXIgcG9zID0gMDsKLSAgICAgIHZhciByZXBvcnRGYWlsdXJlcyA9IDA7Ci0gICAgICB2YXIg
cmlnaHRtb3N0RmFpbHVyZXNQb3MgPSAwOwotICAgICAgdmFyIHJpZ2h0bW9zdEZhaWx1cmVzRXhw
ZWN0ZWQgPSBbXTsKLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFkTGVmdChpbnB1dCwgcGFkZGlu
ZywgbGVuZ3RoKSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBpbnB1dDsKLSAgICAgICAgCi0gICAg
ICAgIHZhciBwYWRMZW5ndGggPSBsZW5ndGggLSBpbnB1dC5sZW5ndGg7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcGFkTGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICByZXN1bHQgPSBwYWRk
aW5nICsgcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBlc2NhcGUoY2gpIHsKLSAgICAgICAg
dmFyIGNoYXJDb2RlID0gY2guY2hhckNvZGVBdCgwKTsKLSAgICAgICAgdmFyIGVzY2FwZUNoYXI7
Ci0gICAgICAgIHZhciBsZW5ndGg7Ci0gICAgICAgIAotICAgICAgICBpZiAoY2hhckNvZGUgPD0g
MHhGRikgewotICAgICAgICAgIGVzY2FwZUNoYXIgPSAneCc7Ci0gICAgICAgICAgbGVuZ3RoID0g
MjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBlc2NhcGVDaGFyID0gJ3UnOwotICAgICAg
ICAgIGxlbmd0aCA9IDQ7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiAnXFwn
ICsgZXNjYXBlQ2hhciArIHBhZExlZnQoY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNl
KCksICcwJywgbGVuZ3RoKTsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gbWF0Y2hG
YWlsZWQoZmFpbHVyZSkgewotICAgICAgICBpZiAocG9zIDwgcmlnaHRtb3N0RmFpbHVyZXNQb3Mp
IHsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChw
b3MgPiByaWdodG1vc3RGYWlsdXJlc1BvcykgewotICAgICAgICAgIHJpZ2h0bW9zdEZhaWx1cmVz
UG9zID0gcG9zOwotICAgICAgICAgIHJpZ2h0bW9zdEZhaWx1cmVzRXhwZWN0ZWQgPSBbXTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmlnaHRtb3N0RmFpbHVyZXNFeHBlY3RlZC5wdXNo
KGZhaWx1cmUpOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9zcGFjZSgp
IHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDM7Ci0gICAg
ICAgIHZhciBwb3MwLCBwb3MxLCBwb3MyOwotICAgICAgICAKLSAgICAgICAgaWYgKGlucHV0LmNo
YXJDb2RlQXQocG9zKSA9PT0gMzIpIHsKLSAgICAgICAgICByZXN1bHQwID0gIiAiOwotICAgICAg
ICAgIHBvcysrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hG
YWlsZWQoIlwiIFwiIik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1
bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0g
OSkgewotICAgICAgICAgICAgcmVzdWx0MCA9ICJcdCI7Ci0gICAgICAgICAgICBwb3MrKzsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
ICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQo
IlwiXFx0XCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJl
c3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykg
PT09IDEzKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSAiXHIiOwotICAgICAgICAgICAgICBw
b3MrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAg
ICAgICBtYXRjaEZhaWxlZCgiXCJcXHJcIiIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgICAgICBp
ZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMCkgewotICAgICAgICAgICAgICAgIHJlc3Vs
dDAgPSAiXG4iOwotICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIGlmIChy
ZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwi
XFxuXCIiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hh
ckNvZGVBdChwb3MpID09PSAxMikgewotICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9ICJcZiI7
Ci0gICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwi
XFxmXCIiKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgIHBvczAg
PSBwb3M7Ci0gICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgMikgPT09ICIv
LyIpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9ICIvLyI7Ci0gICAgICAgICAgICAg
ICAgICAgIHBvcyArPSAyOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRG
YWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIi8v
XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MSA9IFtdOwotICAgICAgICAgICAgICAgICAgICBpZiAoL15bXlxuXS8udGVzdChpbnB1
dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyID0gaW5wdXQu
Y2hhckF0KHBvcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiW15cXG5dIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxl
IChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MS5wdXNo
KHJlc3VsdDIpOwotICAgICAgICAgICAgICAgICAgICAgIGlmICgvXlteXG5dLy50ZXN0KGlucHV0
LmNoYXJBdChwb3MpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9IGlucHV0
LmNoYXJBdChwb3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJbXlxcbl0iKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9ICJcbiI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
bWF0Y2hGYWlsZWQoIlwiXFxuXCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVz
dWx0MSwgcmVzdWx0Ml07Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAg
cG9zID0gcG9zMDsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgICAgICAg
ICAgICBwb3MwID0gcG9zOwotICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBv
cywgMikgPT09ICIvKiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gIi8qIjsK
LSAgICAgICAgICAgICAgICAgICAgICBwb3MgKz0gMjsKLSAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAg
ICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG1hdGNoRmFpbGVkKCJcIi8qXCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDAgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxID0gW107Ci0gICAgICAgICAg
ICAgICAgICAgICAgaWYgKC9eW14qXS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXRjaEZhaWxlZCgiW14qXSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MiA9
PT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDQyKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDIgPSAiKiI7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hdGNoRmFpbGVkKCJcIipcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MyID0gcG9zOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRGYWlsdXJlcysrOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0NykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDMgPSAiLyI7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MyA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIvXCIiKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwb3J0RmFpbHVyZXMtLTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDMgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQz
ID0gIiI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0MyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9zID0gcG9zMjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDIgPSBbcmVzdWx0MiwgcmVzdWx0M107Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChyZXN1bHQyICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxLnB1c2gocmVzdWx0Mik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL15bXipdLy50ZXN0KGlucHV0LmNoYXJBdChw
b3MpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyID0gaW5wdXQuY2hhckF0
KHBvcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJbXipdIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQyID09PSBudWxsKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp
bnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDQyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MiA9ICIqIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNo
RmFpbGVkKCJcIipcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczIgPSBwb3M7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0RmFpbHVyZXMrKzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0NykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MyA9ICIvIjsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQzID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIvXCIiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0RmFpbHVyZXMtLTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MyA9PT0gbnVsbCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MyA9ICIiOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQzID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1
bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyID0g
W3Jlc3VsdDIsIHJlc3VsdDNdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChpbnB1dC5zdWJzdHIocG9zLCAyKSA9PT0gIiovIikgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQyID0gIiovIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICs9IDI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9y
dEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWls
ZWQoIlwiKi9cIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVs
bCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3Vs
dDEsIHJlc3VsdDJdOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHBvcyA9IHBvczA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMDsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rp
b24gcGFyc2VfcygpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDE7Ci0gICAgICAgIAot
ICAgICAgICByZXN1bHQxID0gcGFyc2Vfc3BhY2UoKTsKLSAgICAgICAgaWYgKHJlc3VsdDEgIT09
IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gW107Ci0gICAgICAgICAgd2hpbGUgKHJlc3Vs
dDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAucHVzaChyZXN1bHQxKTsKLSAgICAg
ICAgICAgIHJlc3VsdDEgPSBwYXJzZV9zcGFjZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfdygpIHsK
LSAgICAgICAgdmFyIHJlc3VsdDA7Ci0gICAgICAgIAotICAgICAgICByZXN1bHQwID0gcGFyc2Vf
cygpOwotICAgICAgICByZXN1bHQwID0gcmVzdWx0MCAhPT0gbnVsbCA/IHJlc3VsdDAgOiAiIjsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9u
IHBhcnNlX2lkZW50aWZpZXIoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1
bHQyOwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBw
b3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIGlmICgvXltBLVpfYS16XS8udGVzdChp
bnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICByZXN1bHQwID0gaW5wdXQuY2hhckF0KHBv
cyk7Ci0gICAgICAgICAgcG9zKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAg
ICAgICBtYXRjaEZhaWxlZCgiW0EtWl9hLXpdIik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IFtdOwot
ICAgICAgICAgIGlmICgvXlswLTlBLVpfYS16XS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsK
LSAgICAgICAgICAgIHJlc3VsdDIgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAgICAgICAgICAgIHBv
cysrOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAg
ICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRj
aEZhaWxlZCgiWzAtOUEtWl9hLXpdIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHdoaWxlIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQxLnB1
c2gocmVzdWx0Mik7Ci0gICAgICAgICAgICBpZiAoL15bMC05QS1aX2Etel0vLnRlc3QoaW5wdXQu
Y2hhckF0KHBvcykpKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBpbnB1dC5jaGFyQXQocG9z
KTsKLSAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09
PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTlBLVpfYS16XSIpOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChy
ZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3Vs
dDFdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1
bmN0aW9uKG9mZnNldCwgbm1zdGFydCwgbm1jaGFycykgeyByZXR1cm4gbm1zdGFydCArIG5tY2hh
cnMuam9pbigiIik7IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbMV0pOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAg
ICAgZnVuY3Rpb24gcGFyc2Vfb2N0YWwoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQx
LCByZXN1bHQyOwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBv
czAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIGlmIChpbnB1dC5jaGFyQ29k
ZUF0KHBvcykgPT09IDQ4KSB7Ci0gICAgICAgICAgcmVzdWx0MCA9ICIwIjsKLSAgICAgICAgICBw
b3MrKzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAg
ICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgIG1hdGNoRmFpbGVk
KCJcIjBcIiIpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAh
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDEgPSBbXTsKLSAgICAgICAgICBpZiAoL15bMC03
XS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdDIgPSBpbnB1
dC5jaGFyQXQocG9zKTsKLSAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJl
cyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiWzAtN10iKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgd2hpbGUgKHJlc3VsdDIgIT09IG51bGwpIHsK
LSAgICAgICAgICAgIHJlc3VsdDEucHVzaChyZXN1bHQyKTsKLSAgICAgICAgICAgIGlmICgvXlsw
LTddLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkgewotICAgICAgICAgICAgICByZXN1bHQyID0g
aW5wdXQuY2hhckF0KHBvcyk7Ci0gICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChy
ZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJbMC03
XSIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gW3Jlc3Vs
dDAsIHJlc3VsdDFdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0g
bnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1
bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgdmFsdWUpIHsgcmV0dXJuICIwIiArIHZhbHVlLmpvaW4o
IiIpOyB9KShwb3MwLCByZXN1bHQwWzFdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0
MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX2hl
eCgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDM7Ci0g
ICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAg
ICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0g
NDgpIHsKLSAgICAgICAgICByZXN1bHQwID0gIjAiOwotICAgICAgICAgIHBvcysrOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBv
cnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiMFwiIik7Ci0g
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgaWYgKC9eW1h4XS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAg
ICAgIHJlc3VsdDEgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAgICAgICAgICAgIHBvcysrOwotICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gbnVsbDsKLSAgICAgICAgICAg
IGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgi
W1h4XSIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocmVzdWx0
MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKC9eWzAtOUEtRmEtZl0vLnRlc3QoaW5wdXQu
Y2hhckF0KHBvcykpKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBpbnB1dC5jaGFyQXQocG9z
KTsKLSAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICByZXN1bHQzID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09
PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTlBLUZhLWZdIik7Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBbXTsKLSAgICAgICAgICAgICAgd2hpbGUg
KHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQyLnB1c2gocmVzdWx0
Myk7Ci0gICAgICAgICAgICAgICAgaWYgKC9eWzAtOUEtRmEtZl0vLnRlc3QoaW5wdXQuY2hhckF0
KHBvcykpKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQzID0gaW5wdXQuY2hhckF0KHBvcyk7
Ci0gICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgcmVzdWx0MyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlsw
LTlBLUZhLWZdIik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQy
ID0gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxs
KSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0Ml07
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsK
LSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9
PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIHgsIHZhbHVl
KSB7IHJldHVybiAiMCIgKyB4ICsgdmFsdWUuam9pbigiIik7IH0pKHBvczAsIHJlc3VsdDBbMV0s
IHJlc3VsdDBbMl0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7
Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0
MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfZGVjaW1hbCgpIHsKLSAg
ICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDI7Ci0gICAgICAgIHZhciBwb3MwLCBw
b3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsK
LSAgICAgICAgaWYgKC9eWzAtOV0vLnRlc3QoaW5wdXQuY2hhckF0KHBvcykpKSB7Ci0gICAgICAg
ICAgcmVzdWx0MCA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgIHBvcysrOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBv
cnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTldIik7Ci0g
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgcmVzdWx0MSA9IFtdOwotICAgICAgICAgIGlmICgvXlswLTldLy50ZXN0KGlucHV0
LmNoYXJBdChwb3MpKSkgewotICAgICAgICAgICAgcmVzdWx0MiA9IGlucHV0LmNoYXJBdChwb3Mp
OwotICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJl
c3VsdDIgPSBudWxsOwotICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0g
ICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJbMC05XSIpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgIH0KLSAgICAgICAgICB3aGlsZSAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAg
cmVzdWx0MS5wdXNoKHJlc3VsdDIpOwotICAgICAgICAgICAgaWYgKC9eWzAtOV0vLnRlc3QoaW5w
dXQuY2hhckF0KHBvcykpKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBpbnB1dC5jaGFyQXQo
cG9zKTsKLSAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVz
ID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTldIik7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3Vs
dDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MV07
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rp
b24ob2Zmc2V0LCBudW1TdGFydCwgbnVtUmVzdCkgeyByZXR1cm4gbnVtU3RhcnQgKyBudW1SZXN0
LmpvaW4oIiIpOyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzFdKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAg
IGZ1bmN0aW9uIHBhcnNlX2ludGVnZXIoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQx
OwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7
Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykg
PT09IDQ1KSB7Ci0gICAgICAgICAgcmVzdWx0MCA9ICItIjsKLSAgICAgICAgICBwb3MrKzsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBpZiAo
cmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIi1cIiIp
OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXN1bHQwID0gcmVzdWx0MCAhPT0g
bnVsbCA/IHJlc3VsdDAgOiAiIjsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAg
ICAgICAgICByZXN1bHQxID0gcGFyc2VfaGV4KCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgPT09
IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV9vY3RhbCgpOwotICAgICAgICAg
ICAgaWYgKHJlc3VsdDEgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MSA9IHBhcnNl
X2RlY2ltYWwoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJl
c3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0
MV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVu
Y3Rpb24ob2Zmc2V0LCBuZWcsIG51bSkgeyByZXR1cm4gbmVnICsgbnVtOyB9KShwb3MwLCByZXN1
bHQwWzBdLCByZXN1bHQwWzFdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0g
bnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX2Zsb2F0RWUo
KSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzOwotICAg
ICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAg
ICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIGlmICgvXltFZV0vLnRlc3QoaW5wdXQuY2hhckF0KHBv
cykpKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAg
IHBvcysrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWls
ZWQoIltFZV0iKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICBpZiAoL15bK1wtXS8udGVzdChpbnB1dC5jaGFyQXQocG9z
KSkpIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAgICAgICAg
ICAgIHBvcysrOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gbnVs
bDsKLSAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAg
ICBtYXRjaEZhaWxlZCgiWytcXC1dIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJlc3VsdDEgPSByZXN1bHQxICE9PSBudWxsID8gcmVzdWx0MSA6ICIiOwotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAoL15bMC05XS8udGVz
dChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IGlucHV0LmNo
YXJBdChwb3MpOwotICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgIHJlc3VsdDMgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVwb3J0RmFp
bHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiWzAtOV0iKTsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IFtdOwotICAgICAgICAgICAgICB3aGls
ZSAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDIucHVzaChyZXN1
bHQzKTsKLSAgICAgICAgICAgICAgICBpZiAoL15bMC05XS8udGVzdChpbnB1dC5jaGFyQXQocG9z
KSkpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDMgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAg
ICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQzID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRG
YWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiWzAtOV0i
KTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyXTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAg
fQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsK
LSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZSwgc2lnbiwgZXhwKSB7IHJl
dHVybiBlICsgc2lnbiArIGV4cC5qb2luKCIiKTsgfSkocG9zMCwgcmVzdWx0MFswXSwgcmVzdWx0
MFsxXSwgcmVzdWx0MFsyXSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51
bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9leHBGbG9hdCgp
IHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDE7Ci0gICAgICAgIHZhciBwb3MwLCBwb3Mx
OwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAg
ICAgICAgaWYgKC9eWzAtOV0vLnRlc3QoaW5wdXQuY2hhckF0KHBvcykpKSB7Ci0gICAgICAgICAg
cmVzdWx0MSA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgIHBvcysrOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBvcnRG
YWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTldIik7Ci0gICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgcmVzdWx0MCA9IFtdOwotICAgICAgICAgIHdoaWxlIChyZXN1bHQxICE9PSBudWxsKSB7
Ci0gICAgICAgICAgICByZXN1bHQwLnB1c2gocmVzdWx0MSk7Ci0gICAgICAgICAgICBpZiAoL15b
MC05XS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MSA9
IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgICAgICBpZiAo
cmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiWzAt
OV0iKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV9mbG9h
dEVlKCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJl
c3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
cG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewot
ICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBudW0sIGZlZSkgeyByZXR1cm4g
bnVtLmpvaW4oIiIpICsgZmVlOyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzFdKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9
IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAg
ICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX2xlYWRGbG9hdCgpIHsKLSAgICAgICAgdmFyIHJlc3Vs
dDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDM7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwot
ICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAg
ICAgaWYgKC9eWzAtOV0vLnRlc3QoaW5wdXQuY2hhckF0KHBvcykpKSB7Ci0gICAgICAgICAgcmVz
dWx0MSA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgIHBvcysrOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTldIik7Ci0gICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgcmVzdWx0MCA9IFtdOwotICAgICAgICAgIHdoaWxlIChyZXN1bHQxICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICByZXN1bHQwLnB1c2gocmVzdWx0MSk7Ci0gICAgICAgICAgICBpZiAoL15bMC05
XS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MSA9IGlu
cHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiWzAtOV0i
KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBv
cykgPT09IDQ2KSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gIi4iOwotICAgICAgICAgICAgcG9z
Kys7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAg
ICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgIG1hdGNo
RmFpbGVkKCJcIi5cIiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBp
ZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9IFtdOwotICAgICAg
ICAgICAgaWYgKC9eWzAtOV0vLnRlc3QoaW5wdXQuY2hhckF0KHBvcykpKSB7Ci0gICAgICAgICAg
ICAgIHJlc3VsdDMgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAgICAgICAgICAgICAgcG9zKys7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQzID0gbnVsbDsKLSAgICAg
ICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0
Y2hGYWlsZWQoIlswLTldIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHdoaWxlIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIu
cHVzaChyZXN1bHQzKTsKLSAgICAgICAgICAgICAgaWYgKC9eWzAtOV0vLnRlc3QoaW5wdXQuY2hh
ckF0KHBvcykpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MyA9IGlucHV0LmNoYXJBdChwb3Mp
OwotICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHJlc3VsdDMgPSBudWxsOwotICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlswLTldIik7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQzID0gcGFy
c2VfZmxvYXRFZSgpOwotICAgICAgICAgICAgICByZXN1bHQzID0gcmVzdWx0MyAhPT0gbnVsbCA/
IHJlc3VsdDMgOiAiIjsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAg
ICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3Vs
dDNdOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwp
IHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgbnVtLCBkZWMsIGZlZSkg
eyByZXR1cm4gbnVtLmpvaW4oIiIpICsgIi4iICsgZGVjLmpvaW4oIiIpICsgZmVlOyB9KShwb3Mw
LCByZXN1bHQwWzBdLCByZXN1bHQwWzJdLCByZXN1bHQwWzNdKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0
aW9uIHBhcnNlX2RvdEZsb2F0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVz
dWx0MiwgcmVzdWx0MzsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAg
ICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gW107
Ci0gICAgICAgIGlmICgvXlswLTldLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkgewotICAgICAg
ICAgIHJlc3VsdDEgPSBpbnB1dC5jaGFyQXQocG9zKTsKLSAgICAgICAgICBwb3MrKzsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQxID0gbnVsbDsKLSAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJbMC05XSIpOwot
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB3aGlsZSAocmVzdWx0MSAhPT0gbnVsbCkg
ewotICAgICAgICAgIHJlc3VsdDAucHVzaChyZXN1bHQxKTsKLSAgICAgICAgICBpZiAoL15bMC05
XS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBpbnB1
dC5jaGFyQXQocG9zKTsKLSAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICByZXN1bHQxID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJl
cyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiWzAtOV0iKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51
bGwpIHsKLSAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0NikgewotICAg
ICAgICAgICAgcmVzdWx0MSA9ICIuIjsKLSAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChyZXBv
cnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIuXCIiKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51
bGwpIHsKLSAgICAgICAgICAgIGlmICgvXlswLTldLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkg
ewotICAgICAgICAgICAgICByZXN1bHQzID0gaW5wdXQuY2hhckF0KHBvcyk7Ci0gICAgICAgICAg
ICAgIHBvcysrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9
IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAg
ICAgICAgICAgIG1hdGNoRmFpbGVkKCJbMC05XSIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICByZXN1bHQyID0gW107Ci0gICAgICAgICAgICAgIHdoaWxlIChyZXN1bHQzICE9PSBudWxsKSB7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHJlc3VsdDMpOwotICAgICAgICAgICAgICAg
IGlmICgvXlswLTldLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkgewotICAgICAgICAgICAgICAg
ICAgcmVzdWx0MyA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgICAgICAgICAgcG9zKys7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDMgPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJbMC05XSIpOwotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQzID0gcGFy
c2VfZmxvYXRFZSgpOwotICAgICAgICAgICAgICByZXN1bHQzID0gcmVzdWx0MyAhPT0gbnVsbCA/
IHJlc3VsdDMgOiAiIjsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAg
ICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3Vs
dDNdOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwp
IHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgbnVtLCBkZWMsIGZlZSkg
eyByZXR1cm4gbnVtLmpvaW4oIiIpICsgIi4iICsgZGVjLmpvaW4oIiIpICsgZmVlOyB9KShwb3Mw
LCByZXN1bHQwWzBdLCByZXN1bHQwWzJdLCByZXN1bHQwWzNdKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0
aW9uIHBhcnNlX2Zsb2F0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MTsKLSAgICAg
ICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAg
ICBwb3MxID0gcG9zOwotICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0NSkg
ewotICAgICAgICAgIHJlc3VsdDAgPSAiLSI7Ci0gICAgICAgICAgcG9zKys7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgaWYgKHJlcG9ydEZh
aWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCItXCIiKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0MCA9IHJlc3VsdDAgIT09IG51bGwgPyBy
ZXN1bHQwIDogIiI7Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAg
cmVzdWx0MSA9IHBhcnNlX2xlYWRGbG9hdCgpOwotICAgICAgICAgIGlmIChyZXN1bHQxID09PSBu
dWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gcGFyc2VfZG90RmxvYXQoKTsKLSAgICAgICAg
ICAgIGlmIChyZXN1bHQxID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDEgPSBwYXJz
ZV9leHBGbG9hdCgpOwotICAgICAgICAgICAgICBpZiAocmVzdWx0MSA9PT0gbnVsbCkgewotICAg
ICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA4KSA9PT0gIkluZmluaXR5Iikgewot
ICAgICAgICAgICAgICAgICAgcmVzdWx0MSA9ICJJbmZpbml0eSI7Ci0gICAgICAgICAgICAgICAg
ICBwb3MgKz0gODsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
cmVzdWx0MSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09
IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiSW5maW5pdHlcIiIpOwot
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVs
bCkgewotICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxXTsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3Mg
PSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChy
ZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQs
IG5lZywgbnVtKSB7IHJldHVybiBuZWcgKyBudW07IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3Vs
dDBbMV0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAg
ICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAg
ICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2Vfc3RyaW5nKCkgewotICAgICAgICB2
YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MjsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0g
ICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAg
ICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAzNCkgewotICAgICAgICAgIHJlc3VsdDAg
PSAiXCIiOwotICAgICAgICAgIHBvcysrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAg
ICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiXFxcIlwiIik7Ci0gICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IFtd
OwotICAgICAgICAgIGlmICgvXlteIiJdLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkgewotICAg
ICAgICAgICAgcmVzdWx0MiA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgICAgcG9zKys7
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAg
ICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgIG1hdGNoRmFp
bGVkKCJbXlwiXCJdIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHdo
aWxlIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQxLnB1c2gocmVzdWx0
Mik7Ci0gICAgICAgICAgICBpZiAoL15bXiIiXS8udGVzdChpbnB1dC5jaGFyQXQocG9zKSkpIHsK
LSAgICAgICAgICAgICAgcmVzdWx0MiA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgICAg
ICBwb3MrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBu
dWxsOwotICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAg
ICAgICAgICBtYXRjaEZhaWxlZCgiW15cIlwiXSIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAzNCkgewotICAgICAgICAg
ICAgICByZXN1bHQyID0gIlwiIjsKLSAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYg
KHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwi
XFxcIlwiIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwg
cmVzdWx0MSwgcmVzdWx0Ml07Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlv
bihvZmZzZXQsIHN0cikgeyByZXR1cm4gc3RyLmpvaW4oIiIpOyB9KShwb3MwLCByZXN1bHQwWzFd
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAg
IHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9
Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX290aGVyKCkgewotICAgICAgICB2YXIgcmVz
dWx0MCwgcmVzdWx0MTsKLSAgICAgICAgdmFyIHBvczA7Ci0gICAgICAgIAotICAgICAgICBwb3Mw
ID0gcG9zOwotICAgICAgICBpZiAoL15bXlx0XG5cciAwLTlBLVpfYS16XS8udGVzdChpbnB1dC5j
aGFyQXQocG9zKSkpIHsKLSAgICAgICAgICByZXN1bHQxID0gaW5wdXQuY2hhckF0KHBvcyk7Ci0g
ICAgICAgICAgcG9zKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IG51
bGw7Ci0gICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBt
YXRjaEZhaWxlZCgiW15cXHRcXG5cXHIgMC05QS1aX2Etel0iKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQw
ID0gW107Ci0gICAgICAgICAgd2hpbGUgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAg
IHJlc3VsdDAucHVzaChyZXN1bHQxKTsKLSAgICAgICAgICAgIGlmICgvXlteXHRcblxyIDAtOUEt
Wl9hLXpdLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkgewotICAgICAgICAgICAgICByZXN1bHQx
ID0gaW5wdXQuY2hhckF0KHBvcyk7Ci0gICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MSA9IG51bGw7Ci0gICAgICAgICAgICAgIGlm
IChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJb
XlxcdFxcblxcciAwLTlBLVpfYS16XSIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAg
cmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIG90aGVyKSB7IHJldHVybiBvdGhlci5qb2luKCIi
KTsgfSkocG9zMCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09
IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV90eXBlKCkg
ewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MTsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7
Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAg
ICAgICByZXN1bHQwID0gcGFyc2VfVHlwZURlc2MoKTsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09
IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfTnVsbGFibGUoKTsKLSAgICAgICAg
ICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQw
LCByZXN1bHQxXTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0
MCA9IChmdW5jdGlvbihvZmZzZXQsIHR5cGUsIG51bGxhYmxlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmICghdHlwZS5zZXF1ZW5jZSkgdHlwZS5zZXF1ZW5jZSA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgICAgICB0eXBlLm51bGxhYmxlID0gbnVsbGFibGU7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiB0eXBlOyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzFdKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAg
ICAgIGZ1bmN0aW9uIHBhcnNlX1R5cGVEZXNjKCkgewotICAgICAgICB2YXIgcmVzdWx0MDsKLSAg
ICAgICAgdmFyIHBvczA7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBy
ZXN1bHQwID0gcGFyc2VfU2VxdWVuY2UoKTsKLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwp
IHsKLSAgICAgICAgICByZXN1bHQwID0gcGFyc2VfQXJyYXlUeXBlKCk7Ci0gICAgICAgICAgaWYg
KHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBwYXJzZV9TaW1wbGVU
eXBlKCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgICAg
ICByZXN1bHQwID0gcGFyc2VfVW5pb25UeXBlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAg
cmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIHR5cGUpIHsgcmV0dXJuIHR5cGU7IH0pKHBvczAs
IHJlc3VsdDApOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsK
LSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfU2VxdWVuY2UoKSB7Ci0gICAg
ICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyOwotICAgICAgICB2YXIgcG9zMCwgcG9z
MTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0g
ICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA5KSA9PT0gInNlcXVlbmNlPCIpIHsKLSAgICAg
ICAgICByZXN1bHQwID0gInNlcXVlbmNlPCI7Ci0gICAgICAgICAgcG9zICs9IDk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgaWYgKHJlcG9y
dEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJzZXF1ZW5jZTxc
IiIpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVs
bCkgewotICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV90eXBlKCk7Ci0gICAgICAgICAgaWYgKHJl
c3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykg
PT09IDYyKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSAiPiI7Ci0gICAgICAgICAgICAgIHBv
cysrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7
Ci0gICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAg
ICAgIG1hdGNoRmFpbGVkKCJcIj5cIiIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1
bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDJdOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJl
c3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCB0eXBlKSB7IHJldHVybiB7IHNlcXVlbmNlOiB0cnVl
LCBhcnJheTogZmFsc2UsIGlkbFR5cGU6IHR5cGUsIG1lbWJlcnM6IFtdIH07IH0pKHBvczAsIHJl
c3VsdDBbMV0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsK
LSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfQXJyYXlUeXBlKCkgewotICAg
ICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MTsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAg
ICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBy
ZXN1bHQwID0gcGFyc2VfU2ltcGxlVHlwZSgpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVs
bCkgewotICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCAyKSA9PT0gIltdIikgewotICAg
ICAgICAgICAgcmVzdWx0MSA9ICJbXSI7Ci0gICAgICAgICAgICBwb3MgKz0gMjsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MSA9IG51bGw7Ci0gICAgICAgICAgICBpZiAo
cmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiW11c
IiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocmVzdWx0MSAh
PT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxXTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
ICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihv
ZmZzZXQsIHR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZS5hcnJheSA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlOwotICAgICAgICAgICAgICAgIH0pKHBvczAs
IHJlc3VsdDBbMF0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7
Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0
MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfVW5pb25UeXBlKCkgewot
ICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NDsK
LSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwot
ICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09
PSA0MCkgewotICAgICAgICAgIHJlc3VsdDAgPSAiKCI7Ci0gICAgICAgICAgcG9zKys7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgaWYgKHJl
cG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIoXCIiKTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsK
LSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfdygpOwotICAgICAgICAgIGlmIChyZXN1bHQxICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfVHlwZUxpc3QoKTsKLSAgICAg
ICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBw
YXJzZV93KCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDEpIHsKLSAgICAgICAgICAg
ICAgICAgIHJlc3VsdDQgPSAiKSI7Ci0gICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NCA9IG51bGw7Ci0gICAg
ICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAg
ICAgICAgbWF0Y2hGYWlsZWQoIlwiKVwiIik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3Vs
dDMsIHJlc3VsdDRdOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09
IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgbWVtYmVycykg
eyByZXR1cm4geyBpZGxUeXBlOiAidW5pb24iLCBtZW1iZXJzOiBtZW1iZXJzLCBzZXF1ZW5jZTog
ZmFsc2UsIGFycmF5OiBmYWxzZSB9OyB9KShwb3MwLCByZXN1bHQwWzJdKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAg
IGZ1bmN0aW9uIHBhcnNlX1R5cGVMaXN0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0
MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NjsKLSAgICAgICAg
dmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBw
b3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfdHlwZSgpOwotICAgICAgICBpZiAo
cmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV9zKCk7Ci0gICAg
ICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5zdWJz
dHIocG9zLCAyKSA9PT0gIm9yIikgewotICAgICAgICAgICAgICByZXN1bHQyID0gIm9yIjsKLSAg
ICAgICAgICAgICAgcG9zICs9IDI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAw
KSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwib3JcIiIpOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewot
ICAgICAgICAgICAgICByZXN1bHQzID0gcGFyc2VfcygpOwotICAgICAgICAgICAgICBpZiAocmVz
dWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBwYXJzZV90eXBlKCk7
Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAg
ICAgIHJlc3VsdDUgPSBbXTsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDYgPSBwYXJzZV9UeXBl
TGlzdFJlc3QoKTsKLSAgICAgICAgICAgICAgICAgIHdoaWxlIChyZXN1bHQ2ICE9PSBudWxsKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdDUucHVzaChyZXN1bHQ2KTsKLSAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0NiA9IHBhcnNlX1R5cGVMaXN0UmVzdCgpOwotICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQz
LCByZXN1bHQ0LCByZXN1bHQ1XTsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBv
cyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNl
dCwgZmlyc3QsIHNlY29uZCwgb3RoZXJzKSB7ICAgdmFyIHJldCA9IFtmaXJzdCwgc2Vjb25kXTsK
LSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSBvdGhlcnMubGVuZ3RoOyBp
IDwgbjsgaSsrKSB7IHJldC5wdXNoKG90aGVyc1tpXSk7IH0KLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJldDsgfSkocG9zMCwgcmVzdWx0MFswXSwgcmVzdWx0MFs0XSwgcmVzdWx0MFs1XSk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBw
b3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQot
ICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9UeXBlTGlzdFJlc3QoKSB7Ci0gICAgICAgIHZh
ciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzOwotICAgICAgICB2YXIgcG9zMCwg
cG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7
Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9zKCk7Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDIpID09PSAib3IiKSB7Ci0g
ICAgICAgICAgICByZXN1bHQxID0gIm9yIjsKLSAgICAgICAgICAgIHBvcyArPSAyOwotICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gbnVsbDsKLSAgICAgICAgICAgIGlm
IChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJv
clwiIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChyZXN1bHQx
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfcygpOwotICAgICAgICAg
ICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNl
X3R5cGUoKTsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDNdOwot
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBv
cyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAg
ICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgcmVzdCkgeyByZXR1cm4gcmVzdDsg
fSkocG9zMCwgcmVzdWx0MFszXSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09
IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9TaW1wbGVU
eXBlKCkgewotICAgICAgICB2YXIgcmVzdWx0MDsKLSAgICAgICAgdmFyIHBvczA7Ci0gICAgICAg
IAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfUHJpbWl0aXZl
VHlwZSgpOwotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHJlc3Vs
dDAgPSBwYXJzZV9VbnNpZ25lZEludGVnZXJUeXBlKCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDAg
PT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBwYXJzZV9GbG9hdFR5cGUoKTsKLSAg
ICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAg
PSBwYXJzZV9TY29wZWROYW1lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9
IChmdW5jdGlvbihvZmZzZXQsIHR5cGUpIHsgcmV0dXJuIHsgc2VxdWVuY2U6IGZhbHNlLCBhcnJh
eTogZmFsc2UsIGlkbFR5cGU6IHR5cGUsIG1lbWJlcnM6IFtdIH07IH0pKHBvczAsIHJlc3VsdDAp
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAg
cG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0K
LSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfUHJpbWl0aXZlVHlwZSgpIHsKLSAgICAgICAg
dmFyIHJlc3VsdDAsIHJlc3VsdDE7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxLCBwb3MyOwotICAg
ICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAg
aWYgKGlucHV0LnN1YnN0cihwb3MsIDMpID09PSAiYW55IikgewotICAgICAgICAgIHJlc3VsdDAg
PSAiYW55IjsKLSAgICAgICAgICBwb3MgKz0gMzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsK
LSAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImFueVwiIik7Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0
LnN1YnN0cihwb3MsIDYpID09PSAib2JqZWN0IikgewotICAgICAgICAgICAgcmVzdWx0MCA9ICJv
YmplY3QiOwotICAgICAgICAgICAgcG9zICs9IDY7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09
PSAwKSB7Ci0gICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIm9iamVjdFwiIik7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgNykgPT09ICJib29sZWFuIikgewotICAg
ICAgICAgICAgICByZXN1bHQwID0gImJvb2xlYW4iOwotICAgICAgICAgICAgICBwb3MgKz0gNzsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBt
YXRjaEZhaWxlZCgiXCJib29sZWFuXCIiKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgaWYg
KGlucHV0LnN1YnN0cihwb3MsIDUpID09PSAib2N0ZXQiKSB7Ci0gICAgICAgICAgICAgICAgcmVz
dWx0MCA9ICJvY3RldCI7Ci0gICAgICAgICAgICAgICAgcG9zICs9IDU7Ci0gICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICBtYXRjaEZh
aWxlZCgiXCJvY3RldFwiIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGlucHV0LnN1YnN0cihwb3MsIDkpID09PSAiRE9NU3RyaW5nIikgewotICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9ICJET01TdHJpbmciOwotICAgICAgICAgICAgICAgICAgcG9zICs9IDk7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIkRPTVN0cmluZ1wiIik7Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7
Ci0gICAgICAgICAgcG9zMiA9IHBvczsKLSAgICAgICAgICByZXBvcnRGYWlsdXJlcysrOwotICAg
ICAgICAgIGlmICgvXltBLVphLXowLTldLy50ZXN0KGlucHV0LmNoYXJBdChwb3MpKSkgewotICAg
ICAgICAgICAgcmVzdWx0MSA9IGlucHV0LmNoYXJBdChwb3MpOwotICAgICAgICAgICAgcG9zKys7
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAg
ICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgIG1hdGNoRmFp
bGVkKCJbQS1aYS16MC05XSIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
ICByZXBvcnRGYWlsdXJlcy0tOwotICAgICAgICAgIGlmIChyZXN1bHQxID09PSBudWxsKSB7Ci0g
ICAgICAgICAgICByZXN1bHQxID0gIiI7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMjsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBb
cmVzdWx0MCwgcmVzdWx0MV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAg
IHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCB0eXBlKSB7IHJldHVybiB0eXBlOyB9KShwb3Mw
LCByZXN1bHQwWzBdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkg
ewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX0Zsb2F0VHlwZSgpIHsK
LSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDI7Ci0gICAgICAgIHZhciBwb3Mw
LCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBv
czsKLSAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDEyKSA9PT0gInVucmVzdHJpY3RlZCIp
IHsKLSAgICAgICAgICByZXN1bHQwID0gInVucmVzdHJpY3RlZCI7Ci0gICAgICAgICAgcG9zICs9
IDEyOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQo
IlwidW5yZXN0cmljdGVkXCIiKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmVz
dWx0MCA9IHJlc3VsdDAgIT09IG51bGwgPyByZXN1bHQwIDogIiI7Ci0gICAgICAgIGlmIChyZXN1
bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3MoKTsKLSAgICAgICAg
ICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihw
b3MsIDUpID09PSAiZmxvYXQiKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSAiZmxvYXQiOwot
ICAgICAgICAgICAgICBwb3MgKz0gNTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09
IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJmbG9hdFwiIik7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQyID09PSBudWxs
KSB7Ci0gICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA2KSA9PT0gImRvdWJsZSIp
IHsKLSAgICAgICAgICAgICAgICByZXN1bHQyID0gImRvdWJsZSI7Ci0gICAgICAgICAgICAgICAg
cG9zICs9IDY7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0
MiA9IG51bGw7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0g
ICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJkb3VibGVcIiIpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJl
c3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1
bHQxLCByZXN1bHQyXTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9m
ZnNldCwgdW5yLCBraW5kKSB7IHJldHVybiAodW5yID8gInVucmVzdHJpY3RlZCAiIDogIiIpICsg
KGtpbmQpOyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzJdKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1
bmN0aW9uIHBhcnNlX1Vuc2lnbmVkSW50ZWdlclR5cGUoKSB7Ci0gICAgICAgIHZhciByZXN1bHQw
LCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0OwotICAgICAgICB2YXIgcG9zMCwg
cG9zMSwgcG9zMjsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEg
PSBwb3M7Ci0gICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA4KSA9PT0gInVuc2lnbmVkIikg
ewotICAgICAgICAgIHJlc3VsdDAgPSAidW5zaWduZWQiOwotICAgICAgICAgIHBvcyArPSA4Owot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIGlm
IChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwidW5z
aWduZWRcIiIpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXN1bHQwID0gcmVz
dWx0MCAhPT0gbnVsbCA/IHJlc3VsdDAgOiAiIjsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51
bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfcygpOwotICAgICAgICAgIGlmIChyZXN1
bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBwb3MyID0gcG9zOwotICAgICAgICAgICAgaWYg
KGlucHV0LnN1YnN0cihwb3MsIDQpID09PSAibG9uZyIpIHsKLSAgICAgICAgICAgICAgcmVzdWx0
MiA9ICJsb25nIjsKLSAgICAgICAgICAgICAgcG9zICs9IDQ7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9y
dEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwibG9uZ1wi
Iik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1
bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBwYXJzZV9zKCk7Ci0gICAg
ICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlu
cHV0LnN1YnN0cihwb3MsIDQpID09PSAibG9uZyIpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3Vs
dDQgPSAibG9uZyI7Ci0gICAgICAgICAgICAgICAgICBwb3MgKz0gNDsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NCA9IG51bGw7Ci0gICAgICAgICAg
ICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAg
bWF0Y2hGYWlsZWQoIlwibG9uZ1wiIik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQyID0gW3Jlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDRdOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAg
ICAgICAgICAgICAgICAgIHBvcyA9IHBvczI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAg
ICAgICAgIHBvcyA9IHBvczI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3My
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdDIgPT09IG51bGwpIHsKLSAg
ICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDQpID09PSAibG9uZyIpIHsKLSAgICAg
ICAgICAgICAgICByZXN1bHQyID0gImxvbmciOwotICAgICAgICAgICAgICAgIHBvcyArPSA0Owot
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwot
ICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAg
ICAgICAgbWF0Y2hGYWlsZWQoIlwibG9uZ1wiIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQyID09PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDUpID09PSAic2hvcnQiKSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQyID0gInNob3J0IjsKLSAgICAgICAgICAgICAgICAgIHBvcyArPSA1
OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQyID0g
bnVsbDsKLSAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAg
ICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJzaG9ydFwiIik7Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQyID09
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgNCkgPT09
ICJieXRlIikgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQyID0gImJ5dGUiOwotICAgICAg
ICAgICAgICAgICAgICBwb3MgKz0gNDsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAo
cmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxl
ZCgiXCJieXRlXCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9
IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyXTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQw
ID0gKGZ1bmN0aW9uKG9mZnNldCwgdW5zLCBraW5kKSB7IHJldHVybiAodW5zID8gInVuc2lnbmVk
ICIgOiAiIikgKyAoa2luZC5qb2luID8ga2luZC5qb2luKCIiKSA6IGtpbmQpOyB9KShwb3MwLCBy
ZXN1bHQwWzBdLCByZXN1bHQwWzJdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9
PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX1Njb3Bl
ZE5hbWVMaXN0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MjsKLSAg
ICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAg
ICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfU2NvcGVkTmFtZSgpOwot
ICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDEgPSBbXTsK
LSAgICAgICAgICByZXN1bHQyID0gcGFyc2VfU2NvcGVkTmFtZUxpc3RSZXN0KCk7Ci0gICAgICAg
ICAgd2hpbGUgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDEucHVzaChy
ZXN1bHQyKTsKLSAgICAgICAgICAgIHJlc3VsdDIgPSBwYXJzZV9TY29wZWROYW1lTGlzdFJlc3Qo
KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MV07Ci0gICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0g
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0g
bnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBmaXJzdCwgb3Ro
ZXJzKSB7ICAgdmFyIHJldCA9IFtmaXJzdF07Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwLCBuID0gb3RoZXJzLmxlbmd0aDsgaSA8IG47IGkrKykgeyByZXQucHVzaChvdGhlcnNb
aV0pOyB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7IH0pKHBvczAsIHJlc3VsdDBb
MF0sIHJlc3VsdDBbMV0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxs
KSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVz
dWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfU2NvcGVkTmFtZUxp
c3RSZXN0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0
MzsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9z
OwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfdygpOwotICAg
ICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29k
ZUF0KHBvcykgPT09IDQ0KSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gIiwiOwotICAgICAgICAg
ICAgcG9zKys7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBudWxs
OwotICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAg
IG1hdGNoRmFpbGVkKCJcIixcIiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9IHBhcnNl
X3coKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAg
IHJlc3VsdDMgPSBwYXJzZV9TY29wZWROYW1lKCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQz
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQx
LCByZXN1bHQyLCByZXN1bHQzXTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0g
bnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3Mg
PSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChy
ZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQs
IHJlc3QpIHsgcmV0dXJuIHJlc3Q7IH0pKHBvczAsIHJlc3VsdDBbM10pOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAg
ZnVuY3Rpb24gcGFyc2VfU2NvcGVkTmFtZSgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDA7Ci0gICAg
ICAgIHZhciBwb3MwOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcmVz
dWx0MCA9IHBhcnNlX0Fic29sdXRlU2NvcGVkTmFtZSgpOwotICAgICAgICBpZiAocmVzdWx0MCA9
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSBwYXJzZV9SZWxhdGl2ZVNjb3BlZE5hbWUo
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAg
IHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBuYW1lKSB7IHJldHVybiBuYW1lOyB9KShwb3Mw
LCByZXN1bHQwKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewot
ICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7
Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX0Fic29sdXRlU2NvcGVkTmFt
ZSgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDE7Ci0gICAgICAgIHZhciBwb3MwLCBw
b3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsK
LSAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDIpID09PSAiOjoiKSB7Ci0gICAgICAgICAg
cmVzdWx0MCA9ICI6OiI7Ci0gICAgICAgICAgcG9zICs9IDI7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09
PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCI6OlwiIik7Ci0gICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVz
dWx0MSA9IHBhcnNlX1JlbGF0aXZlU2NvcGVkTmFtZSgpOwotICAgICAgICAgIGlmIChyZXN1bHQx
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDFdOwot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
IHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9u
KG9mZnNldCwgcmVsKSB7IHJldHVybiAiOjoiICsgcmVsOyB9KShwb3MwLCByZXN1bHQwWzFdKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBv
cyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0g
ICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX1JlbGF0aXZlU2NvcGVkTmFtZSgpIHsKLSAgICAg
ICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDI7Ci0gICAgICAgIHZhciBwb3MwLCBwb3Mx
OwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAg
ICAgICAgcmVzdWx0MCA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gW107Ci0gICAgICAgICAgcmVzdWx0MiA9
IHBhcnNlX1Njb3BlZE5hbWVSZXN0KCk7Ci0gICAgICAgICAgd2hpbGUgKHJlc3VsdDIgIT09IG51
bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDEucHVzaChyZXN1bHQyKTsKLSAgICAgICAgICAgIHJl
c3VsdDIgPSBwYXJzZV9TY29wZWROYW1lUmVzdCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBp
ZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCBy
ZXN1bHQxXTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9
IChmdW5jdGlvbihvZmZzZXQsIG5hbWUsIHJlc3QpIHsgcmV0dXJuIG5hbWUgKyByZXN0LmpvaW4o
IiIpOyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzFdKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0
aW9uIHBhcnNlX1Njb3BlZE5hbWVSZXN0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0
MTsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9z
OwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgMikg
PT09ICI6OiIpIHsKLSAgICAgICAgICByZXN1bHQwID0gIjo6IjsKLSAgICAgICAgICBwb3MgKz0g
MjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJc
Ijo6XCIiKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09
IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfaWRlbnRpZmllcigpOwotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gW3Jlc3Vs
dDAsIHJlc3VsdDFdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0g
bnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1
bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgbmFtZSkgeyByZXR1cm4gbmFtZS5qb2luKCIiKTsgfSko
cG9zMCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwp
IHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1
bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9Cb29sZWFuTGl0ZXJh
bCgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDA7Ci0gICAgICAgIHZhciBwb3MwOwotICAgICAgICAK
LSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDQpID09
PSAidHJ1ZSIpIHsKLSAgICAgICAgICByZXN1bHQwID0gInRydWUiOwotICAgICAgICAgIHBvcyAr
PSA0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQo
IlwidHJ1ZVwiIik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQw
ID09PSBudWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDUpID09PSAiZmFs
c2UiKSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gImZhbHNlIjsKLSAgICAgICAgICAgIHBvcyAr
PSA1OwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICBtYXRj
aEZhaWxlZCgiXCJmYWxzZVwiIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9
IChmdW5jdGlvbihvZmZzZXQsIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfSkocG9zMCwgcmVzdWx0
MCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAg
ICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAg
fQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9OdWxsYWJsZSgpIHsKLSAgICAgICAgdmFy
IHJlc3VsdDA7Ci0gICAgICAgIHZhciBwb3MwOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBv
czsKLSAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNjMpIHsKLSAgICAgICAg
ICByZXN1bHQwID0gIj8iOwotICAgICAgICAgIHBvcysrOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0g
MCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiP1wiIik7Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIHJlc3VsdDAgPSByZXN1bHQwICE9PSBudWxsID8gcmVzdWx0MCA6ICIi
OwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAo
ZnVuY3Rpb24ob2Zmc2V0LCBudWxsYWJsZSkgeyByZXR1cm4gbnVsbGFibGUgPyB0cnVlIDogZmFs
c2U7IH0pKHBvczAsIHJlc3VsdDApOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09
PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfUmV0dXJu
VHlwZSgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDA7Ci0gICAgICAgIHZhciBwb3MwOwotICAgICAg
ICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDQp
ID09PSAidm9pZCIpIHsKLSAgICAgICAgICByZXN1bHQwID0gInZvaWQiOwotICAgICAgICAgIHBv
cyArPSA0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWls
ZWQoIlwidm9pZFwiIik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1
bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX3R5cGUoKTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAg
PSAoZnVuY3Rpb24ob2Zmc2V0LCByZXQpIHsgcmV0dXJuIHJldDsgfSkocG9zMCwgcmVzdWx0MCk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBw
b3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQot
ICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9kZWZpbml0aW9ucygpIHsKLSAgICAgICAgdmFy
IHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDI7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAg
ICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAg
cmVzdWx0MCA9IHBhcnNlX3coKTsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAg
ICAgICAgICByZXN1bHQxID0gW107Ci0gICAgICAgICAgcmVzdWx0MiA9IHBhcnNlX2RlZmluaXRp
b24oKTsKLSAgICAgICAgICB3aGlsZSAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAg
cmVzdWx0MS5wdXNoKHJlc3VsdDIpOwotICAgICAgICAgICAgcmVzdWx0MiA9IHBhcnNlX2RlZmlu
aXRpb24oKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsK
LSAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MV07Ci0gICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0
MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBkZWZz
KSB7IHJldHVybiBkZWZzOyB9KShwb3MwLCByZXN1bHQwWzFdKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0
aW9uIHBhcnNlX2RlZmluaXRpb24oKSB7Ci0gICAgICAgIHZhciByZXN1bHQwOwotICAgICAgICB2
YXIgcG9zMDsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAg
PSBwYXJzZV9wYXJ0aWFsZGljdGlvbmFyeSgpOwotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVs
bCkgewotICAgICAgICAgIHJlc3VsdDAgPSBwYXJzZV9wYXJ0aWFsaW50ZXJmYWNlKCk7Ci0gICAg
ICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBwYXJz
ZV9jYWxsYmFja2ludGVyZmFjZSgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX21vZHVsZSgpOwotICAgICAgICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBwYXJz
ZV9pbnRlcmZhY2UoKTsKLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewot
ICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX2RpY3Rpb25hcnkoKTsKLSAgICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJl
c3VsdDAgPSBwYXJzZV90eXBlZGVmKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQw
ID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX2V4Y2Vw
dGlvbigpOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gcGFyc2VfaW1wbGVtZW50cygpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX2VudW0oKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQwID0gcGFyc2VfY2FsbGJhY2soKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAg
PSAoZnVuY3Rpb24ob2Zmc2V0LCBkZWYpIHsgcmV0dXJuIGRlZjsgfSkocG9zMCwgcmVzdWx0MCk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBw
b3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQot
ICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9wYXJ0aWFsaW50ZXJmYWNlKCkgewotICAgICAg
ICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0
NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTAsIHJlc3VsdDEx
LCByZXN1bHQxMiwgcmVzdWx0MTMsIHJlc3VsdDE0LCByZXN1bHQxNTsKLSAgICAgICAgdmFyIHBv
czAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0g
cG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7Ci0g
ICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNl
X3MoKTsKLSAgICAgICAgICByZXN1bHQxID0gcmVzdWx0MSAhPT0gbnVsbCA/IHJlc3VsdDEgOiAi
IjsKLSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKGlu
cHV0LnN1YnN0cihwb3MsIDcpID09PSAicGFydGlhbCIpIHsKLSAgICAgICAgICAgICAgcmVzdWx0
MiA9ICJwYXJ0aWFsIjsKLSAgICAgICAgICAgICAgcG9zICs9IDc7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJl
cG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwicGFy
dGlhbFwiIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBwYXJzZV9zKCk7
Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGlucHV0LnN1YnN0cihwb3MsIDkpID09PSAiaW50ZXJmYWNlIikgewotICAgICAgICAgICAg
ICAgICAgcmVzdWx0NCA9ICJpbnRlcmZhY2UiOwotICAgICAgICAgICAgICAgICAgcG9zICs9IDk7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImludGVyZmFjZVwiIik7Ci0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfcygpOwotICAg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0NiA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDYgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFy
c2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjMp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OCA9ICJ7IjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ4ID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwie1wiIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHQ4ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dDkgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ5ICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSBwYXJzZV9J
bnRlcmZhY2VNZW1iZXJMaXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdDEwICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQx
MSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQx
MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQu
Y2hhckNvZGVBdChwb3MpID09PSAxMjUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQxMiA9ICJ9IjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMiA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJ9XCIiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEyICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTMgPSBw
YXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEz
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5w
dXQuY2hhckNvZGVBdChwb3MpID09PSA1OSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQxNCA9ICI7IjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxNCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoRmFpbGVkKCJcIjtcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MTQgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTUgPSBwYXJzZV93KCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxNSAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVz
dWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0
NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTAsIHJlc3VsdDExLCByZXN1bHQx
MiwgcmVzdWx0MTMsIHJlc3VsdDE0LCByZXN1bHQxNV07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9
IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVz
dWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0g
ICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAh
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBleHRBdHRy
cywgbmFtZSwgbWVtKSB7IHJldHVybiB7IHR5cGU6ICJwYXJ0aWFsaW50ZXJmYWNlIiwgbmFtZTog
bmFtZSwgbWVtYmVyczogbWVtLCBleHRBdHRyczogZXh0QXR0cnMgfTsgfSkocG9zMCwgcmVzdWx0
MFswXSwgcmVzdWx0MFs2XSwgcmVzdWx0MFsxMF0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChy
ZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFy
c2VfcGFydGlhbGRpY3Rpb25hcnkoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCBy
ZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1
bHQ4LCByZXN1bHQ5LCByZXN1bHQxMCwgcmVzdWx0MTEsIHJlc3VsdDEyLCByZXN1bHQxMzsKLSAg
ICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAg
ICAgICBwb3MxID0gcG9zOwotICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgNykgPT09ICJw
YXJ0aWFsIikgewotICAgICAgICAgIHJlc3VsdDAgPSAicGFydGlhbCI7Ci0gICAgICAgICAgcG9z
ICs9IDc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxl
ZCgiXCJwYXJ0aWFsXCIiKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJl
c3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfcygpOwotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3Ry
KHBvcywgMTApID09PSAiZGljdGlvbmFyeSIpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9ICJk
aWN0aW9uYXJ5IjsKLSAgICAgICAgICAgICAgcG9zICs9IDEwOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChyZXBv
cnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImRpY3Rp
b25hcnlcIiIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQzID0gcGFyc2Vfcygp
OwotICAgICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAg
IHJlc3VsdDQgPSBwYXJzZV9pZGVudGlmaWVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dDQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDUgPSBwYXJzZV93KCk7Ci0g
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjMpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQ2ID0gInsiOwotICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDYg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwie1wiIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChyZXN1bHQ2ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
NyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NyAhPT0gbnVs
bCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OCA9IHBhcnNlX0RpY3Rpb25hcnlN
ZW1iZXJMaXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OCAhPT0gbnVs
bCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ5ID0gcGFyc2VfdygpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OSAhPT0gbnVsbCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDEyNSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSAifSI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIn1cIiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MTAgIT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDExID0gcGFyc2VfdygpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDExICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykg
PT09IDU5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTIgPSAi
OyI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MTIgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiO1wiIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMiAhPT0gbnVsbCkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEzID0gcGFyc2VfdygpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMyAhPT0gbnVsbCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1
bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3
LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1bHQxMCwgcmVzdWx0MTEsIHJlc3VsdDEyLCByZXN1bHQx
M107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgcG9z
ID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAg
IHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBuYW1lLCBtZW1iZXJzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAicGFydGlh
bGRpY3Rpb25hcnkiLAotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1lbWJlcnM6IG1lbWJlcnMKLSAgICAgICAgICAgICAgICAgICAg
fTsKLSAgICAgICAgICAgICAgICB9KShwb3MwLCByZXN1bHQwWzRdLCByZXN1bHQwWzhdKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9
IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAg
ICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX2NhbGxiYWNraW50ZXJmYWNlKCkgewotICAgICAgICB2
YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwg
cmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTAsIHJlc3VsdDExLCBy
ZXN1bHQxMiwgcmVzdWx0MTMsIHJlc3VsdDE0LCByZXN1bHQxNTsKLSAgICAgICAgdmFyIHBvczAs
IHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9z
OwotICAgICAgICByZXN1bHQwID0gcGFyc2VfRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7Ci0gICAg
ICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3Mo
KTsKLSAgICAgICAgICByZXN1bHQxID0gcmVzdWx0MSAhPT0gbnVsbCA/IHJlc3VsdDEgOiAiIjsK
LSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKGlucHV0
LnN1YnN0cihwb3MsIDgpID09PSAiY2FsbGJhY2siKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIg
PSAiY2FsbGJhY2siOwotICAgICAgICAgICAgICBwb3MgKz0gODsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJjYWxs
YmFja1wiIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBwYXJzZV9zKCk7
Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGlucHV0LnN1YnN0cihwb3MsIDkpID09PSAiaW50ZXJmYWNlIikgewotICAgICAgICAgICAg
ICAgICAgcmVzdWx0NCA9ICJpbnRlcmZhY2UiOwotICAgICAgICAgICAgICAgICAgcG9zICs9IDk7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImludGVyZmFjZVwiIik7Ci0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfcygpOwotICAg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0NiA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDYgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFy
c2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjMp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OCA9ICJ7IjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ4ID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwie1wiIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHQ4ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dDkgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ5ICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSBwYXJzZV9J
bnRlcmZhY2VNZW1iZXJMaXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdDEwICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQx
MSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQx
MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQu
Y2hhckNvZGVBdChwb3MpID09PSAxMjUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQxMiA9ICJ9IjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMiA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJ9XCIiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEyICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTMgPSBw
YXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEz
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5w
dXQuY2hhckNvZGVBdChwb3MpID09PSA1OSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQxNCA9ICI7IjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxNCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoRmFpbGVkKCJcIjtcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MTQgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTUgPSBwYXJzZV93KCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxNSAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVz
dWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0
NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTAsIHJlc3VsdDExLCByZXN1bHQx
MiwgcmVzdWx0MTMsIHJlc3VsdDE0LCByZXN1bHQxNV07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9
IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVz
dWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0g
ICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAh
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBleHRBdHRy
cywgbmFtZSwgbWVtKSB7IHJldHVybiB7IHR5cGU6ICJjYWxsYmFja2ludGVyZmFjZSIsIG5hbWU6
IG5hbWUsIG1lbWJlcnM6IG1lbSwgZXh0QXR0cnM6IGV4dEF0dHJzIH07IH0pKHBvczAsIHJlc3Vs
dDBbMF0sIHJlc3VsdDBbNl0sIHJlc3VsdDBbMTBdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBh
cnNlX21vZHVsZSgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJl
c3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3VsdDgsIHJlc3Vs
dDksIHJlc3VsdDEwLCByZXN1bHQxMSwgcmVzdWx0MTIsIHJlc3VsdDEzOwotICAgICAgICB2YXIg
cG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEg
PSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsK
LSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFy
c2VfcygpOwotICAgICAgICAgIHJlc3VsdDEgPSByZXN1bHQxICE9PSBudWxsID8gcmVzdWx0MSA6
ICIiOwotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAo
aW5wdXQuc3Vic3RyKHBvcywgNikgPT09ICJtb2R1bGUiKSB7Ci0gICAgICAgICAgICAgIHJlc3Vs
dDIgPSAibW9kdWxlIjsKLSAgICAgICAgICAgICAgcG9zICs9IDY7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJl
cG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwibW9k
dWxlXCIiKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3MoKTsK
LSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQ0ID0gcGFyc2VfaWRlbnRpZmllcigpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfdygpOwotICAg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gMTIzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0NiA9ICJ7IjsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0g
bnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIntcIiIpOwotICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0NiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDcg
PSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDcgIT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDggPSBwYXJzZV9kZWZpbml0aW9ucygp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDggIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDkgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDEwID0gIn0iOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEwID0gbnVsbDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJ9XCIiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEwICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMSAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA1OSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEyID0gIjsiOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdDEyID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hdGNoRmFpbGVkKCJcIjtcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0MTIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQxMyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MTMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0
MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwg
cmVzdWx0OSwgcmVzdWx0MTAsIHJlc3VsdDExLCByZXN1bHQxMiwgcmVzdWx0MTNdOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBv
cyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsK
LSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0g
KGZ1bmN0aW9uKG9mZnNldCwgZXh0QXR0cnMsIG5hbWUsIGRlZnMpIHsgcmV0dXJuIHsgdHlwZTog
Im1vZHVsZSIsIG5hbWU6IG5hbWUsIGRlZmluaXRpb25zOiBkZWZzLCBleHRBdHRyczogZXh0QXR0
cnMgfTsgfSkocG9zMCwgcmVzdWx0MFswXSwgcmVzdWx0MFs0XSwgcmVzdWx0MFs4XSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBw
b3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAg
Ci0gICAgICBmdW5jdGlvbiBwYXJzZV9pbXBsZW1lbnRzKCkgewotICAgICAgICB2YXIgcmVzdWx0
MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0Niwg
cmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OTsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAg
ICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBy
ZXN1bHQwID0gcGFyc2VfRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7Ci0gICAgICAgIGlmIChyZXN1
bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3MoKTsKLSAgICAgICAg
ICByZXN1bHQxID0gcmVzdWx0MSAhPT0gbnVsbCA/IHJlc3VsdDEgOiAiIjsKLSAgICAgICAgICBp
ZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9IHBhcnNlX1Njb3Bl
ZE5hbWUoKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgIHJlc3VsdDMgPSBwYXJzZV9zKCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDEwKSA9PT0gImlt
cGxlbWVudHMiKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQ0ID0gImltcGxlbWVudHMiOwot
ICAgICAgICAgICAgICAgICAgcG9zICs9IDEwOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICByZXN1bHQ0ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIGlmIChy
ZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgi
XCJpbXBsZW1lbnRzXCIiKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAg
ICAgIHJlc3VsdDUgPSBwYXJzZV9zKCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NSAh
PT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gcGFyc2VfU2NvcGVkTmFt
ZSgpOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NiAhPT0gbnVsbCkgewotICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDcgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdDcgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp
bnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDU5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDggPSAiOyI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0OCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJl
cyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIjtc
IiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OCAhPT0gbnVsbCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ5ID0gcGFyc2VfdygpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0OSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0Mywg
cmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OV07Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3Vs
dDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBleHRBdHRycywgdGFyZ2V0LCBpbXBsKSB7IHJldHVybiB7
IHR5cGU6ICdpbXBsZW1lbnRzJywgdGFyZ2V0OiB0YXJnZXQsICdpbXBsZW1lbnRzJzogaW1wbCwg
ZXh0QXR0cnM6IGV4dEF0dHJzIH07IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbMl0sIHJl
c3VsdDBbNl0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsK
LSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfaW50ZXJmYWNlKCkgewotICAg
ICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVz
dWx0NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTAsIHJlc3Vs
dDExLCByZXN1bHQxMiwgcmVzdWx0MTMsIHJlc3VsdDE0LCByZXN1bHQxNTsKLSAgICAgICAgdmFy
IHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3Mx
ID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7
Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBh
cnNlX3MoKTsKLSAgICAgICAgICByZXN1bHQxID0gcmVzdWx0MSAhPT0gbnVsbCA/IHJlc3VsdDEg
OiAiIjsKLSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgaWYg
KGlucHV0LnN1YnN0cihwb3MsIDkpID09PSAiaW50ZXJmYWNlIikgewotICAgICAgICAgICAgICBy
ZXN1bHQyID0gImludGVyZmFjZSI7Ci0gICAgICAgICAgICAgIHBvcyArPSA5OwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAg
IGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVk
KCJcImludGVyZmFjZVwiIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBw
YXJzZV9zKCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0NCA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0NCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NSA9IHBhcnNl
X3coKTsKLSAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ1ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlc3VsdDYgPSBwYXJzZV9Jbmhlcml0YW5jZSgpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0NiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdDcgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDcgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBv
cykgPT09IDEyMykgewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ4ID0gInsiOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDggPSBudWxsOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJ7XCIiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDggIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0OSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDkgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQx
MCA9IHBhcnNlX0ludGVyZmFjZU1lbWJlckxpc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0MTAgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdDExID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHJlc3VsdDExICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDEyNSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDEyID0gIn0iOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEyID0gbnVsbDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDAp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIn1c
IiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0MTIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQxMyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0MTMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDU5KSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDE0ID0gIjsiOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdDE0ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiO1wiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxNCAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxNSA9IHBhcnNl
X3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDE1
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1
bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1bHQxMCwgcmVzdWx0
MTEsIHJlc3VsdDEyLCByZXN1bHQxMywgcmVzdWx0MTQsIHJlc3VsdDE1XTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZz
ZXQsIGV4dEF0dHJzLCBuYW1lLCBoZXJpdCwgbWVtKSB7IHJldHVybiB7IHR5cGU6ICJpbnRlcmZh
Y2UiLCBuYW1lOiBuYW1lLCBpbmhlcml0YW5jZTogaGVyaXQsIG1lbWJlcnM6IG1lbSwgZXh0QXR0
cnM6IGV4dEF0dHJzIH07IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbNF0sIHJlc3VsdDBb
Nl0sIHJlc3VsdDBbMTBdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVs
bCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJl
c3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX2VudW0oKSB7Ci0g
ICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCBy
ZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1bHQxMCwgcmVz
dWx0MTEsIHJlc3VsdDEyLCByZXN1bHQxMywgcmVzdWx0MTQsIHJlc3VsdDE1OwotICAgICAgICB2
YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBv
czEgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3Qo
KTsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0g
cGFyc2VfcygpOwotICAgICAgICAgIHJlc3VsdDEgPSByZXN1bHQxICE9PSBudWxsID8gcmVzdWx0
MSA6ICIiOwotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBp
ZiAoaW5wdXQuc3Vic3RyKHBvcywgNCkgPT09ICJlbnVtIikgewotICAgICAgICAgICAgICByZXN1
bHQyID0gImVudW0iOwotICAgICAgICAgICAgICBwb3MgKz0gNDsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJlbnVt
XCIiKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJl
c3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3MoKTsKLSAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1
bHQ0ID0gcGFyc2VfaWRlbnRpZmllcigpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfdygpOwotICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gMTIzKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0NiA9ICJ7IjsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIntcIiIpOwotICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0NiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDcgPSBw
YXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDcgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDggPSBwYXJzZV9FbnVtVmFsdWVzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OCAhPT0gbnVsbCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQ5ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQ5ID0gcmVzdWx0OSAhPT0gbnVsbCA/IHJlc3VsdDkgOiAiIjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDkgIT09IG51bGwpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0NCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSAiLCI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSBudWxsOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIixcIiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMCA9IHJlc3VsdDEwICE9PSBu
dWxsID8gcmVzdWx0MTAgOiAiIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0MTAgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEx
ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEx
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5j
aGFyQ29kZUF0KHBvcykgPT09IDEyNSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdDEyID0gIn0iOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cysrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEyID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIn1cIiIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MTIgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMyA9IHBh
cnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0MTMg
IT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1
dC5jaGFyQ29kZUF0KHBvcykgPT09IDU5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDE0ID0gIjsiOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDE0ID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1
cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0
Y2hGYWlsZWQoIlwiO1wiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxNCAhPT0gbnVsbCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxNSA9IHBhcnNlX3coKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDE1ICE9PSBudWxsKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1
bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2
LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1bHQxMCwgcmVzdWx0MTEsIHJlc3VsdDEy
LCByZXN1bHQxMywgcmVzdWx0MTQsIHJlc3VsdDE1XTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsK
LSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9
PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIGV4dEF0dHJz
LCBuYW1lLCB2YWx1ZXMpIHsgcmV0dXJuIHsgdHlwZTogImVudW0iLCBuYW1lOiBuYW1lLCB2YWx1
ZXM6IHZhbHVlcywgZXh0QXR0cnM6IGV4dEF0dHJzIH07IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJl
c3VsdDBbNF0sIHJlc3VsdDBbOF0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09
PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfY2FsbGJh
Y2soKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCBy
ZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1
bHQxMCwgcmVzdWx0MTEsIHJlc3VsdDEyLCByZXN1bHQxMywgcmVzdWx0MTQsIHJlc3VsdDE1LCBy
ZXN1bHQxNiwgcmVzdWx0MTc7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAg
ICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9
IHBhcnNlX0V4dGVuZGVkQXR0cmlidXRlTGlzdCgpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0g
bnVsbCkgewotICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV9zKCk7Ci0gICAgICAgICAgcmVzdWx0
MSA9IHJlc3VsdDEgIT09IG51bGwgPyByZXN1bHQxIDogIiI7Ci0gICAgICAgICAgaWYgKHJlc3Vs
dDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA4KSA9PT0g
ImNhbGxiYWNrIikgewotICAgICAgICAgICAgICByZXN1bHQyID0gImNhbGxiYWNrIjsKLSAgICAg
ICAgICAgICAgcG9zICs9IDg7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBy
ZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7
Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiY2FsbGJhY2tcIiIpOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICByZXN1bHQzID0gcGFyc2VfcygpOwotICAgICAgICAgICAgICBpZiAo
cmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBwYXJzZV9pZGVu
dGlmaWVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgICAgIHJlc3VsdDUgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0NSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNv
ZGVBdChwb3MpID09PSA2MSkgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDYgPSAiPSI7
Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0NiA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBtYXRjaEZhaWxlZCgiXCI9XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDYgIT09IG51
bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFyc2VfdygpOwotICAgICAg
ICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQ4ID0gcGFyc2VfUmV0dXJuVHlwZSgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdDggIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0OSA9IHBhcnNlX3MoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dDkgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hh
ckNvZGVBdChwb3MpID09PSA0MCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0MTAgPSAiKCI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0MTAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hdGNoRmFpbGVkKCJcIihcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0MTAgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDExID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDExICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdDEyID0gcGFyc2VfQXJndW1lbnRzKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChyZXN1bHQxMiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdDEzID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChyZXN1bHQxMyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDEpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTQgPSAiKSI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0MTQgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIpXCIiKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDE0ICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDE1
ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0MTUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA1OSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTYgPSAiOyI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0MTYgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIjtcIiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0MTYgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDE3ID0gcGFyc2VfdygpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDE3ICE9PSBudWxsKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBb
cmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVz
dWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTAsIHJlc3VsdDExLCByZXN1
bHQxMiwgcmVzdWx0MTMsIHJlc3VsdDE0LCByZXN1bHQxNSwgcmVzdWx0MTYsIHJlc3VsdDE3XTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAg
fQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsK
LSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZXh0QXR0cnMsIG5hbWUsIHJl
dCwgYXJncykgeyByZXR1cm4geyB0eXBlOiAiY2FsbGJhY2siLCBpZGxUeXBlOiByZXQsIG5hbWU6
IG5hbWUsIGFyZ3M6IGFyZ3MsIGV4dEF0dHJzOiBleHRBdHRycyB9OyB9KShwb3MwLCByZXN1bHQw
WzBdLCByZXN1bHQwWzRdLCByZXN1bHQwWzhdLCByZXN1bHQwWzEyXSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBm
dW5jdGlvbiBwYXJzZV9FbnVtVmFsdWVzKCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0
MSwgcmVzdWx0MjsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBw
b3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2Vf
c3RyaW5nKCk7Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVz
dWx0MSA9IFtdOwotICAgICAgICAgIHJlc3VsdDIgPSBwYXJzZV9FbnVtVmFsdWVzUmVzdCgpOwot
ICAgICAgICAgIHdoaWxlIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQx
LnB1c2gocmVzdWx0Mik7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfRW51bVZhbHVlc1Jl
c3QoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAg
ICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MV07Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAh
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBmaXJzdCwg
b3RoZXJzKSB7ICAgdmFyIHJldCA9IFtmaXJzdF07Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwLCBuID0gb3RoZXJzLmxlbmd0aDsgaSA8IG47IGkrKykgeyByZXQucHVzaChvdGhl
cnNbaV0pOyB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7IH0pKHBvczAsIHJlc3Vs
dDBbMF0sIHJlc3VsdDBbMV0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBu
dWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfRW51bVZhbHVl
c1Jlc3QoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQz
OwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7
Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV93KCk7Ci0gICAg
ICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2Rl
QXQocG9zKSA9PT0gNDQpIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSAiLCI7Ci0gICAgICAgICAg
ICBwb3MrKzsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MSA9IG51bGw7
Ci0gICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAg
bWF0Y2hGYWlsZWQoIlwiLFwiIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2Vf
dygpOwotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAg
cmVzdWx0MyA9IHBhcnNlX3N0cmluZygpOwotICAgICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0g
bnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVz
dWx0MiwgcmVzdWx0M107Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0
MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCByZXN0
KSB7IHJldHVybiByZXN0OyB9KShwb3MwLCByZXN1bHQwWzNdKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0
aW9uIHBhcnNlX0luaGVyaXRhbmNlKCkgewotICAgICAgICB2YXIgcmVzdWx0MDsKLSAgICAgICAg
dmFyIHBvczA7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICByZXN1bHQw
ID0gcGFyc2VfSW5oZXJpdGFuY2VJbm5lcigpOwotICAgICAgICByZXN1bHQwID0gcmVzdWx0MCAh
PT0gbnVsbCA/IHJlc3VsdDAgOiAiIjsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsK
LSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgaGVyaXQpIHsgcmV0dXJuIGhl
cml0ID8gaGVyaXQgOiBbXTsgfSkocG9zMCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlv
biBwYXJzZV9Jbmhlcml0YW5jZUlubmVyKCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0
MSwgcmVzdWx0MjsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBw
b3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBpZiAoaW5wdXQuY2hhckNv
ZGVBdChwb3MpID09PSA1OCkgewotICAgICAgICAgIHJlc3VsdDAgPSAiOiI7Ci0gICAgICAgICAg
cG9zKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxl
ZCgiXCI6XCIiKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfdygpOwotICAgICAgICAgIGlm
IChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfU2NvcGVk
TmFtZUxpc3QoKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0Ml07Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAg
cG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0K
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIGhlcml0KSB7IHJldHVybiBoZXJp
dDsgfSkocG9zMCwgcmVzdWx0MFsyXSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAg
PT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9JbnRl
cmZhY2VNZW1iZXJMaXN0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MTsKLSAgICAg
ICAgdmFyIHBvczA7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICByZXN1
bHQwID0gW107Ci0gICAgICAgIHJlc3VsdDEgPSBwYXJzZV9JbnRlcmZhY2VNZW1iZXIoKTsKLSAg
ICAgICAgd2hpbGUgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwLnB1c2go
cmVzdWx0MSk7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX0ludGVyZmFjZU1lbWJlcigpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVz
dWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIG1lbSkgeyByZXR1cm4gbWVtID8gbWVtIDogW107IH0p
KHBvczAsIHJlc3VsdDApOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxs
KSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVz
dWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfSW50ZXJmYWNlTWVt
YmVyKCkgewotICAgICAgICB2YXIgcmVzdWx0MDsKLSAgICAgICAgdmFyIHBvczA7Ci0gICAgICAg
IAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfY29uc3QoKTsK
LSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gcGFy
c2VfYXR0ck9yT3AoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkg
ewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBtZW0pIHsgcmV0dXJuIG1l
bTsgfSkocG9zMCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09
IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9jb25zdCgp
IHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3Vs
dDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3VsdDgsIHJlc3VsdDksIHJlc3VsdDEw
LCByZXN1bHQxMSwgcmVzdWx0MTIsIHJlc3VsdDEzOwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsK
LSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAg
ICAgIHJlc3VsdDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKLSAgICAgICAgaWYg
KHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfcygpOwotICAg
ICAgICAgIHJlc3VsdDEgPSByZXN1bHQxICE9PSBudWxsID8gcmVzdWx0MSA6ICIiOwotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3Ry
KHBvcywgNSkgPT09ICJjb25zdCIpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9ICJjb25zdCI7
Ci0gICAgICAgICAgICAgIHBvcyArPSA1OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9
PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImNvbnN0XCIiKTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51
bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3MoKTsKLSAgICAgICAgICAgICAg
aWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcGFyc2Vf
dHlwZSgpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfcygpOwotICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0NiA9IHBhcnNlX2lk
ZW50aWZpZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDYgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFyc2VfdygpOwotICAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA2MSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQ4ID0gIj0iOwotICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdDggPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0
RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxl
ZCgiXCI9XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDggIT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OSA9IHBhcnNlX3coKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDkgIT09IG51bGwpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQxMCA9IHBhcnNlX2NvbnN0RXhwcigpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMCAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MTEgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0MTEgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNTkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMiA9ICI7IjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQx
MiA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZh
aWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRj
aEZhaWxlZCgiXCI7XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdDEyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MTMgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDEzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJl
c3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3VsdDgsIHJlc3Vs
dDksIHJlc3VsdDEwLCByZXN1bHQxMSwgcmVzdWx0MTIsIHJlc3VsdDEzXTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICBwb3Mg
PSBwb3MxOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAg
ICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5j
dGlvbihvZmZzZXQsIGV4dEF0dHJzLCB0eXBlLCBuYW1lLCB2YWx1ZSkgeyByZXR1cm4geyB0eXBl
OiAiY29uc3QiLCBleHRBdHRyczogZXh0QXR0cnMsIGlkbFR5cGU6IHR5cGUsIG5hbWU6IG5hbWUs
IHZhbHVlOiB2YWx1ZSB9OyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzRdLCByZXN1bHQw
WzZdLCByZXN1bHQwWzEwXSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51
bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9jb25zdEV4cHIo
KSB7Ci0gICAgICAgIHZhciByZXN1bHQwOwotICAgICAgICB2YXIgcG9zMDsKLSAgICAgICAgCi0g
ICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9Cb29sZWFuTGl0ZXJh
bCgpOwotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAg
PSBwYXJzZV9mbG9hdCgpOwotICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAg
ICAgICAgICByZXN1bHQwID0gcGFyc2VfaW50ZWdlcigpOwotICAgICAgICAgICAgaWYgKHJlc3Vs
dDAgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDMpID09
PSAiTmFOIikgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSAiTmFOIjsKLSAgICAgICAgICAg
ICAgICBwb3MgKz0gMzsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDAp
IHsKLSAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIk5hTlwiIik7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQwID09PSBu
dWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDQpID09PSAibnVs
bCIpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSAibnVsbCI7Ci0gICAgICAgICAgICAg
ICAgICBwb3MgKz0gNDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMg
PT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwibnVsbFwiIik7Ci0g
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNv
ZGVBdChwb3MpID09PSAzOSkgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gIiciOwot
ICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBp
ZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZh
aWxlZCgiXCInXCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAg
ICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7
IH0pKHBvczAsIHJlc3VsdDApOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBu
dWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfYXR0ck9yT3Ao
KSB7Ci0gICAgICAgIHZhciByZXN1bHQwOwotICAgICAgICB2YXIgcG9zMDsKLSAgICAgICAgCi0g
ICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9TdHJpbmdpZmllcigp
OwotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSBw
YXJzZV9BdHRyaWJ1dGUoKTsKLSAgICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAg
ICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX09wZXJhdGlvbigpOwotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAg
PSAoZnVuY3Rpb24ob2Zmc2V0LCBhbykgeyByZXR1cm4gYW87IH0pKHBvczAsIHJlc3VsdDApOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9z
ID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAg
ICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfU3RyaW5naWZpZXIoKSB7Ci0gICAgICAgIHZhciBy
ZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyOwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAg
ICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIGlm
IChpbnB1dC5zdWJzdHIocG9zLCAxMSkgPT09ICJzdHJpbmdpZmllciIpIHsKLSAgICAgICAgICBy
ZXN1bHQwID0gInN0cmluZ2lmaWVyIjsKLSAgICAgICAgICBwb3MgKz0gMTE7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgaWYgKHJlcG9ydEZh
aWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJzdHJpbmdpZmllclwi
Iik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxs
KSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3coKTsKLSAgICAgICAgICBpZiAocmVzdWx0
MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9IHBhcnNlX0F0dHJpYnV0ZSgpOwot
ICAgICAgICAgICAgaWYgKHJlc3VsdDIgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0
MiA9IHBhcnNlX09wZXJhdGlvblJlc3QoKTsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDIgPT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA1
OSkgewotICAgICAgICAgICAgICAgICAgcmVzdWx0MiA9ICI7IjsKLSAgICAgICAgICAgICAgICAg
IHBvcysrOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1
bHQyID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkg
ewotICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCI7XCIiKTsKLSAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJl
c3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0Ml07Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3Mx
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAg
cmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIHJlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHJlc3QgPT09ICI7IikgcmV0dXJuIHsgdHlwZTogInN0cmluZ2lmaWVyIiwgc3RyaW5naWZp
ZXI6IHRydWUgfTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXN0LnN0cmluZ2lmaWVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiByZXN0OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSko
cG9zMCwgcmVzdWx0MFsyXSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51
bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9BdHRyaWJ1dGUo
KSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1
bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1bHQx
MCwgcmVzdWx0MTEsIHJlc3VsdDEyLCByZXN1bHQxMywgcmVzdWx0MTQ7Ci0gICAgICAgIHZhciBw
b3MwLCBwb3MxLCBwb3MyOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAg
cG9zMSA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBhcnNlX0V4dGVuZGVkQXR0cmlidXRlTGlz
dCgpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDEg
PSBwYXJzZV93KCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgIHBvczIgPSBwb3M7Ci0gICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgOCkgPT09
ICJyZWFkb25seSIpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9ICJyZWFkb25seSI7Ci0gICAg
ICAgICAgICAgIHBvcyArPSA4OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
cmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkg
ewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcInJlYWRvbmx5XCIiKTsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3MoKTsKLSAgICAgICAgICAgICAgaWYg
KHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQyID0gW3Jlc3VsdDIs
IHJlc3VsdDNdOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3Vs
dDIgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczI7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAg
ICAgICAgICAgICBwb3MgPSBwb3MyOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVzdWx0
MiA9IHJlc3VsdDIgIT09IG51bGwgPyByZXN1bHQyIDogIiI7Ci0gICAgICAgICAgICBpZiAocmVz
dWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgOSkg
PT09ICJhdHRyaWJ1dGUiKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MyA9ICJhdHRyaWJ1dGUi
OwotICAgICAgICAgICAgICAgIHBvcyArPSA5OwotICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHJlc3VsdDMgPSBudWxsOwotICAgICAgICAgICAgICAgIGlmIChyZXBvcnRG
YWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiYXR0cmli
dXRlXCIiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcGFy
c2VfcygpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfdHlwZSgpOwotICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0NiA9IHBhcnNl
X3MoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDYgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFyc2VfaWRlbnRpZmllcigpOwotICAgICAgICAg
ICAgICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQ4ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdDggIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OSA9IHBh
cnNlX0dldFJhaXNlcygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ5ID0gcmVz
dWx0OSAhPT0gbnVsbCA/IHJlc3VsdDkgOiAiIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHJlc3VsdDkgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQxMCA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
MTAgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDExID0g
cGFyc2VfU2V0UmFpc2VzKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQx
MSA9IHJlc3VsdDExICE9PSBudWxsID8gcmVzdWx0MTEgOiAiIjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChyZXN1bHQxMSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQxMiA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDEyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNTkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEzID0gIjsiOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDEzID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXRjaEZhaWxlZCgiXCI7XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEzICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxNCA9IHBhcnNlX3coKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxNCAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3Vs
dDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYs
IHJlc3VsdDcsIHJlc3VsdDgsIHJlc3VsdDksIHJlc3VsdDEwLCByZXN1bHQxMSwgcmVzdWx0MTIs
IHJlc3VsdDEzLCByZXN1bHQxNF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQw
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
cG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3Mx
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlv
bihvZmZzZXQsIGV4dEF0dHJzLCBybywgdHlwZSwgbmFtZSwgZ3IsIHNyKSB7IHJldHVybiB7IHR5
cGU6ICJhdHRyaWJ1dGUiLCBleHRBdHRyczogZXh0QXR0cnMsIGlkbFR5cGU6IHR5cGUsIG5hbWU6
IG5hbWUsIHJlYWRvbmx5OiAocm8gPyB0cnVlIDogZmFsc2UpLCBnZXRyYWlzZXM6IGdyLCBzZXRy
YWlzZXM6IHNyIH07IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbMl0sIHJlc3VsdDBbNV0s
IHJlc3VsdDBbN10sIHJlc3VsdDBbOV0sIHJlc3VsdDBbMTFdKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0
aW9uIHBhcnNlX0dldFJhaXNlcygpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJl
c3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQ7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAg
ICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAgaWYg
KGlucHV0LnN1YnN0cihwb3MsIDkpID09PSAiZ2V0cmFpc2VzIikgewotICAgICAgICAgIHJlc3Vs
dDAgPSAiZ2V0cmFpc2VzIjsKLSAgICAgICAgICBwb3MgKz0gOTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMg
PT09IDApIHsKLSAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImdldHJhaXNlc1wiIik7Ci0gICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgcmVzdWx0MSA9IHBhcnNlX3coKTsKLSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVs
bCkgewotICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDApIHsKLSAg
ICAgICAgICAgICAgcmVzdWx0MiA9ICIoIjsKLSAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQyID0gbnVsbDsKLSAgICAgICAgICAg
ICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWls
ZWQoIlwiKFwiIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBwYXJzZV9T
Y29wZWROYW1lTGlzdCgpOwotICAgICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewot
ICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDQxKSB7Ci0gICAg
ICAgICAgICAgICAgICByZXN1bHQ0ID0gIikiOwotICAgICAgICAgICAgICAgICAgcG9zKys7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBudWxs
OwotICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIilcIiIpOwotICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0NCAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQy
LCByZXN1bHQzLCByZXN1bHQ0XTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0g
bnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1
bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIGxp
c3QpIHsgcmV0dXJuIGxpc3Q7IH0pKHBvczAsIHJlc3VsdDBbM10pOwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVu
Y3Rpb24gcGFyc2VfU2V0UmFpc2VzKCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwg
cmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NDsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAg
ICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBp
ZiAoaW5wdXQuc3Vic3RyKHBvcywgOSkgPT09ICJzZXRyYWlzZXMiKSB7Ci0gICAgICAgICAgcmVz
dWx0MCA9ICJzZXRyYWlzZXMiOwotICAgICAgICAgIHBvcyArPSA5OwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJl
cyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwic2V0cmFpc2VzXCIiKTsKLSAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAg
ICAgICAgICByZXN1bHQxID0gcGFyc2VfdygpOwotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0MCkgewot
ICAgICAgICAgICAgICByZXN1bHQyID0gIigiOwotICAgICAgICAgICAgICBwb3MrKzsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAg
ICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZh
aWxlZCgiXCIoXCIiKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNl
X1Njb3BlZE5hbWVMaXN0KCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDEpIHsKLSAg
ICAgICAgICAgICAgICAgIHJlc3VsdDQgPSAiKSI7Ci0gICAgICAgICAgICAgICAgICBwb3MrKzsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAg
ICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiKVwiIik7Ci0gICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxs
KSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3Vs
dDIsIHJlc3VsdDMsIHJlc3VsdDRdOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9
IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJl
c3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwg
bGlzdCkgeyByZXR1cm4gbGlzdDsgfSkocG9zMCwgcmVzdWx0MFszXSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBm
dW5jdGlvbiBwYXJzZV9PcGVyYXRpb24oKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQx
LCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0OwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAg
ICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAg
IHJlc3VsdDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKLSAgICAgICAgaWYgKHJl
c3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfdygpOwotICAgICAg
ICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2Vf
UXVhbGlmaWVycygpOwotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMg
IT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcGFyc2VfT3BlcmF0aW9uUmVz
dCgpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJl
c3VsdDRdOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwp
IHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZXh0QXR0cnMsIHF1YWxz
LCByZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGsgaW4gcXVhbHMpIHJlc3Rb
a10gPSBxdWFsc1trXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGV4dEF0dHJzKSByZXN0LmV4
dEF0dHJzID0gZXh0QXR0cnM7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN0OwotICAg
ICAgICAgICAgICAgIH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbMl0sIHJlc3VsdDBbNF0p
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAg
cG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0K
LSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfUXVhbGlmaWVycygpIHsKLSAgICAgICAgdmFy
IHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDI7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAg
ICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAg
cmVzdWx0MCA9IHBhcnNlX3coKTsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAg
ICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgNikgPT09ICJzdGF0aWMiKSB7Ci0gICAgICAg
ICAgICByZXN1bHQxID0gInN0YXRpYyI7Ci0gICAgICAgICAgICBwb3MgKz0gNjsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MSA9IG51bGw7Ci0gICAgICAgICAgICBpZiAo
cmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwic3Rh
dGljXCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3Vs
dDEgPT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBbXTsKLSAgICAgICAgICAgIHJl
c3VsdDIgPSBwYXJzZV9TcGVjaWFsKCk7Ci0gICAgICAgICAgICB3aGlsZSAocmVzdWx0MiAhPT0g
bnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQxLnB1c2gocmVzdWx0Mik7Ci0gICAgICAgICAg
ICAgIHJlc3VsdDIgPSBwYXJzZV9TcGVjaWFsKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
fQotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQw
ID0gW3Jlc3VsdDAsIHJlc3VsdDFdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9
IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAg
ICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgcXVhbHMpIHsgICBpZiAodHlwZW9mIHF1
YWxzID09ICJzdHJpbmciKSByZXR1cm4gW3F1YWxzXTsKLSAgICAgICAgCQkgICAgcmV0dXJuIHF1
YWxzOyB9KShwb3MwLCByZXN1bHQwWzFdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0
MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX1Nw
ZWNpYWwoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyOwotICAgICAg
ICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAg
IHBvczEgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV93KCk7Ci0gICAgICAgIGlmIChy
ZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDYpID09
PSAiZ2V0dGVyIikgewotICAgICAgICAgICAgcmVzdWx0MSA9ICJnZXR0ZXIiOwotICAgICAgICAg
ICAgcG9zICs9IDY7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBu
dWxsOwotICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAg
ICAgIG1hdGNoRmFpbGVkKCJcImdldHRlclwiIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
fQotICAgICAgICAgIGlmIChyZXN1bHQxID09PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAoaW5w
dXQuc3Vic3RyKHBvcywgNikgPT09ICJzZXR0ZXIiKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDEg
PSAic2V0dGVyIjsKLSAgICAgICAgICAgICAgcG9zICs9IDY7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICByZXN1bHQxID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9y
dEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwic2V0dGVy
XCIiKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJl
c3VsdDEgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDcp
ID09PSAiY3JlYXRvciIpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQxID0gImNyZWF0b3IiOwot
ICAgICAgICAgICAgICAgIHBvcyArPSA3OwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiY3JlYXRvclwi
Iik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlm
IChyZXN1bHQxID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihw
b3MsIDcpID09PSAiZGVsZXRlciIpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDEgPSAiZGVs
ZXRlciI7Ci0gICAgICAgICAgICAgICAgICBwb3MgKz0gNzsKLSAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0MSA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWF0Y2hG
YWlsZWQoIlwiZGVsZXRlclwiIik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxID09PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgMTIpID09PSAibGVnYWN5Y2FsbGVyIikgewot
ICAgICAgICAgICAgICAgICAgICByZXN1bHQxID0gImxlZ2FjeWNhbGxlciI7Ci0gICAgICAgICAg
ICAgICAgICAgIHBvcyArPSAxMjsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgi
XCJsZWdhY3ljYWxsZXJcIiIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICByZXN1bHQyID0gcGFyc2VfdygpOwotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51
bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQy
XTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgc3BlKSB7
IHJldHVybiBzcGU7IH0pKHBvczAsIHJlc3VsdDBbMV0pOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24g
cGFyc2VfT3BlcmF0aW9uUmVzdCgpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJl
c3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3Vs
dDgsIHJlc3VsdDksIHJlc3VsdDEwLCByZXN1bHQxMSwgcmVzdWx0MTIsIHJlc3VsdDEzOwotICAg
ICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAg
ICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9SZXR1cm5UeXBlKCk7Ci0g
ICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNl
X3MoKTsKLSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVz
dWx0MiA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAgICAgICAgICAgIHJlc3VsdDIgPSByZXN1bHQy
ICE9PSBudWxsID8gcmVzdWx0MiA6ICIiOwotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51
bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAg
aWYgKHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNv
ZGVBdChwb3MpID09PSA0MCkgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NCA9ICIoIjsKLSAg
ICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICByZXN1bHQ0ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRG
YWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIoXCIi
KTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDUgPSBw
YXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NSAhPT0gbnVsbCkgewotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gcGFyc2VfQXJndW1lbnRzKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDYgPSByZXN1bHQ2ICE9PSBudWxsID8gcmVzdWx0NiA6ICIiOwotICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdDcgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdDcgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFy
Q29kZUF0KHBvcykgPT09IDQxKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDgg
PSAiKSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIilcIiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OCAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQ5ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0OSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDEwID0gcGFyc2VfUmFpc2VzKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MTAgPSByZXN1bHQxMCAhPT0gbnVsbCA/IHJlc3VsdDEwIDogIiI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEwICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQxMSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChyZXN1bHQxMSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA1OSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEyID0gIjsiOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEy
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFp
bHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNo
RmFpbGVkKCJcIjtcIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0MTIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQxMyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0MTMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVz
dWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0
OSwgcmVzdWx0MTAsIHJlc3VsdDExLCByZXN1bHQxMiwgcmVzdWx0MTNdOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIHBvcyA9
IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
IHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0
aW9uKG9mZnNldCwgcmV0LCBuYW1lLCBhcmdzLCBleGMpIHsgcmV0dXJuIHsgdHlwZTogIm9wZXJh
dGlvbiIsIGlkbFR5cGU6IHJldCwgbmFtZTogbmFtZSwgYXJndW1lbnRzOiAoYXJncyA/IGFyZ3Mg
OiBbXSksIHJhaXNlczogZXhjIH07IH0pKHBvczAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbMl0sIHJl
c3VsdDBbNl0sIHJlc3VsdDBbMTBdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9
PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX0FyZ3Vt
ZW50cygpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDI7Ci0gICAgICAg
IHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAg
cG9zMSA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBhcnNlX0FyZ3VtZW50KCk7Ci0gICAgICAg
IGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IFtdOwotICAgICAg
ICAgIHJlc3VsdDIgPSBwYXJzZV9Bcmd1bWVudHNSZXN0KCk7Ci0gICAgICAgICAgd2hpbGUgKHJl
c3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDEucHVzaChyZXN1bHQyKTsKLSAg
ICAgICAgICAgIHJlc3VsdDIgPSBwYXJzZV9Bcmd1bWVudHNSZXN0KCk7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQwID0g
W3Jlc3VsdDAsIHJlc3VsdDFdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAg
ICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZmlyc3QsIG90aGVycykgeyAgIHZhciByZXQg
PSBbZmlyc3RdOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbiA9IG90aGVy
cy5sZW5ndGg7IGkgPCBuOyBpKyspIHsgcmV0LnB1c2gob3RoZXJzW2ldKTsgfQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmV0OyB9KShwb3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzFdKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBv
cyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0g
ICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX0FyZ3VtZW50c1Jlc3QoKSB7Ci0gICAgICAgIHZh
ciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzOwotICAgICAgICB2YXIgcG9zMCwg
cG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7
Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV93KCk7Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDQpIHsKLSAg
ICAgICAgICAgIHJlc3VsdDEgPSAiLCI7Ci0gICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MSA9IG51bGw7Ci0gICAgICAgICAgICBpZiAocmVw
b3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiLFwiIik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfdygpOwotICAgICAgICAgICAgaWYg
KHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX0FyZ3Vt
ZW50KCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzXTsKLSAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAg
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9z
ID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3Mg
PSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIHJlc3QpIHsgcmV0dXJuIHJlc3Q7IH0p
KHBvczAsIHJlc3VsdDBbM10pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBu
dWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfQXJndW1lbnQo
KSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1
bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5OwotICAgICAg
ICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAg
IHBvczEgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxp
c3QoKTsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQx
ID0gcGFyc2VfdygpOwotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICBpZiAoaW5wdXQuc3Vic3RyKHBvcywgMikgPT09ICJpbiIpIHsKLSAgICAgICAgICAgICAg
cmVzdWx0MiA9ICJpbiI7Ci0gICAgICAgICAgICAgIHBvcyArPSAyOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChy
ZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcImlu
XCIiKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVzdWx0
MiA9IHJlc3VsdDIgIT09IG51bGwgPyByZXN1bHQyIDogIiI7Ci0gICAgICAgICAgICBpZiAocmVz
dWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQzID0gcGFyc2VfdygpOwotICAg
ICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGlmIChp
bnB1dC5zdWJzdHIocG9zLCA4KSA9PT0gIm9wdGlvbmFsIikgewotICAgICAgICAgICAgICAgICAg
cmVzdWx0NCA9ICJvcHRpb25hbCI7Ci0gICAgICAgICAgICAgICAgICBwb3MgKz0gODsKLSAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NCA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAg
ICAgICAgICAgbWF0Y2hGYWlsZWQoIlwib3B0aW9uYWxcIiIpOwotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcmVzdWx0NCAh
PT0gbnVsbCA/IHJlc3VsdDQgOiAiIjsKLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0NCAhPT0g
bnVsbCkgewotICAgICAgICAgICAgICAgICAgcmVzdWx0NSA9IHBhcnNlX3coKTsKLSAgICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQ1ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJl
c3VsdDYgPSBwYXJzZV90eXBlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ2ICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDMp
ID09PSAiLi4uIikgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0NyA9ICIuLi4iOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcG9zICs9IDM7Ci0gICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDcgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIi4uLlwiIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDcgPSByZXN1bHQ3ICE9PSBudWxsID8gcmVzdWx0NyA6ICIiOwotICAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQ4ID0gcGFyc2VfcygpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dDggIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OSA9IHBhcnNl
X2lkZW50aWZpZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDkgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAs
IHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJl
c3VsdDcsIHJlc3VsdDgsIHJlc3VsdDldOwotICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Mg
PSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZXh0QXR0
cnMsIG9wdCwgdHlwZSwgZWxsLCBuYW1lKSB7IHJldHVybiB7IG5hbWU6IG5hbWUsIHR5cGU6IHR5
cGUsIHZhcmlhZGljOiAoZWxsID8gdHJ1ZSA6IGZhbHNlKSwgb3B0aW9uYWw6IChvcHQgPyB0cnVl
IDogZmFsc2UpLCBleHRBdHRyczogZXh0QXR0cnMgfTsgfSkocG9zMCwgcmVzdWx0MFswXSwgcmVz
dWx0MFs0XSwgcmVzdWx0MFs2XSwgcmVzdWx0MFs3XSwgcmVzdWx0MFs5XSk7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAg
ICBmdW5jdGlvbiBwYXJzZV9SYWlzZXMoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQx
LCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2OwotICAgICAgICB2
YXIgcG9zMCwgcG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBv
czEgPSBwb3M7Ci0gICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA2KSA9PT0gInJhaXNlcyIp
IHsKLSAgICAgICAgICByZXN1bHQwID0gInJhaXNlcyI7Ci0gICAgICAgICAgcG9zICs9IDY7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgaWYg
KHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJyYWlz
ZXNcIiIpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0g
bnVsbCkgewotICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV9zKCk7Ci0gICAgICAgICAgaWYgKHJl
c3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykg
PT09IDQwKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSAiKCI7Ci0gICAgICAgICAgICAgIHBv
cysrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7
Ci0gICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAg
ICAgIG1hdGNoRmFpbGVkKCJcIihcIiIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1
bHQzID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewot
ICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBwYXJzZV9TY29wZWROYW1lTGlzdCgpOwotICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1
bHQ1ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDEp
IHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gIikiOwotICAgICAgICAgICAgICAg
ICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDYgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBv
cnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQo
IlwiKVwiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ2ICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQz
LCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2XTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAg
ICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVz
dWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIGxpc3QpIHsgcmV0dXJuIGxpc3Q7IH0pKHBvczAsIHJl
c3VsdDBbNF0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsK
LSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfZGljdGlvbmFyeSgpIHsKLSAg
ICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJl
c3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3VsdDgsIHJlc3VsdDksIHJlc3VsdDEwLCByZXN1
bHQxMSwgcmVzdWx0MTIsIHJlc3VsdDEzOwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAg
ICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIGlm
IChpbnB1dC5zdWJzdHIocG9zLCAxMCkgPT09ICJkaWN0aW9uYXJ5IikgewotICAgICAgICAgIHJl
c3VsdDAgPSAiZGljdGlvbmFyeSI7Ci0gICAgICAgICAgcG9zICs9IDEwOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiZGljdGlvbmFyeVwiIik7
Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7
Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3MoKTsKLSAgICAgICAgICBpZiAocmVzdWx0MSAh
PT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAg
ICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMg
PSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgICAgcmVzdWx0NCA9IHBhcnNlX0luaGVyaXRhbmNlKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDUgPSBw
YXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NSAhPT0gbnVsbCkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjMpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gInsiOwotICAgICAgICAgICAgICAgICAgICAg
IHBvcysrOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdDYgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWls
dXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwie1wi
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ2ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0NyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0NyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OCA9IHBhcnNl
X0RpY3Rpb25hcnlNZW1iZXJMaXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0OCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ5ID0gcGFy
c2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OSAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykg
PT09IDEyNSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSAifSI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
MTAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1
cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVk
KCJcIn1cIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
MTAgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDExID0g
cGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDExICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFy
Q29kZUF0KHBvcykgPT09IDU5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MTIgPSAiOyI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTIgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiO1wiIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMiAhPT0gbnVs
bCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEzID0gcGFyc2Vf
dygpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMyAhPT0g
bnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IFty
ZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1
bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCByZXN1bHQxMCwgcmVzdWx0MTEsIHJlc3Vs
dDEyLCByZXN1bHQxM107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3Vs
dDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkg
ewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBuYW1lLCBzdXBlcmNsYXNz
LCBtZW1iZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU6ICJkaWN0aW9uYXJ5IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVy
aXRhbmNlOiBzdXBlcmNsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlcnM6
IG1lbWJlcnMKLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgICAg
IH0pKHBvczAsIHJlc3VsdDBbMl0sIHJlc3VsdDBbNF0sIHJlc3VsdDBbOF0pOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAg
ICAgZnVuY3Rpb24gcGFyc2VfRGljdGlvbmFyeU1lbWJlckxpc3QoKSB7Ci0gICAgICAgIHZhciBy
ZXN1bHQwLCByZXN1bHQxOwotICAgICAgICB2YXIgcG9zMDsKLSAgICAgICAgCi0gICAgICAgIHBv
czAgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBbXTsKLSAgICAgICAgcmVzdWx0MSA9IHBhcnNl
X0RpY3Rpb25hcnlNZW1iZXIoKTsKLSAgICAgICAgd2hpbGUgKHJlc3VsdDEgIT09IG51bGwpIHsK
LSAgICAgICAgICByZXN1bHQwLnB1c2gocmVzdWx0MSk7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBh
cnNlX0RpY3Rpb25hcnlNZW1iZXIoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAh
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBtZW0pIHsg
cmV0dXJuIG1lbSA/IG1lbSA6IFtdOyB9KShwb3MwLCByZXN1bHQwKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1
bmN0aW9uIHBhcnNlX0RpY3Rpb25hcnlNZW1iZXIoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCBy
ZXN1bHQxLCByZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1
bHQ3LCByZXN1bHQ4LCByZXN1bHQ5OwotICAgICAgICB2YXIgcG9zMCwgcG9zMTsKLSAgICAgICAg
Ci0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7Ci0gICAgICAgIHJlc3Vs
dDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfdygpOwotICAgICAgICAgIGlm
IChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfdHlwZSgp
OwotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgcmVz
dWx0MyA9IHBhcnNlX3MoKTsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcGFyc2VfaWRlbnRpZmllcigpOwotICAgICAgICAg
ICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQ1
ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0NiA9IHBhcnNlX2RlZmF1bHRWYWx1ZSgpOwotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gcmVzdWx0NiAhPT0gbnVsbCA/IHJlc3VsdDYgOiAi
IjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDYgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5w
dXQuY2hhckNvZGVBdChwb3MpID09PSA1OSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQ4ID0gIjsiOwotICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dDggPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMg
PT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCI7XCIi
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDggIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDkgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJl
c3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3VsdDgsIHJlc3VsdDldOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAg
ICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAg
IHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQw
ID0gKGZ1bmN0aW9uKG9mZnNldCwgZXh0QXR0cnMsIHR5cGUsIG5hbWUsIGRlZmF1bHRWYWx1ZSkg
ewotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlOiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWUKLSAgICAgICAg
ICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgIH0pKHBvczAsIHJlc3VsdDBbMF0sIHJl
c3VsdDBbMl0sIHJlc3VsdDBbNF0sIHJlc3VsdDBbNl0pOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24g
cGFyc2VfZGVmYXVsdFZhbHVlKCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVz
dWx0MjsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0g
cG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChw
b3MpID09PSA2MSkgewotICAgICAgICAgIHJlc3VsdDAgPSAiPSI7Ci0gICAgICAgICAgcG9zKys7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
aWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCI9
XCIiKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51
bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2VfdygpOwotICAgICAgICAgIGlmIChyZXN1
bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXN1bHQyID0gcGFyc2VfY29uc3RFeHByKCk7
Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiA9PT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1
bHQyID0gcGFyc2Vfc3RyaW5nKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVz
dWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3VsdDAsIHJlc3Vs
dDEsIHJlc3VsdDJdOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
cG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVz
dWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zm
c2V0LCB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0pKHBvczAsIHJlc3VsdDBbMl0pOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9z
MDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAot
ICAgICAgZnVuY3Rpb24gcGFyc2VfdHlwZWRlZigpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJl
c3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3Vs
dDc7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBv
czsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwb3MsIDcp
ID09PSAidHlwZWRlZiIpIHsKLSAgICAgICAgICByZXN1bHQwID0gInR5cGVkZWYiOwotICAgICAg
ICAgIHBvcyArPSA3OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgbWF0
Y2hGYWlsZWQoIlwidHlwZWRlZlwiIik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3MoKTsK
LSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9
IHBhcnNlX3R5cGUoKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgIHJlc3VsdDMgPSBwYXJzZV9zKCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQz
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0NCA9IHBhcnNlX2lkZW50aWZpZXIo
KTsKLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0NCAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICAgICAgcmVzdWx0NSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ1
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBv
cykgPT09IDU5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0NiA9ICI7IjsKLSAgICAg
ICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
ICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoRmFpbGVkKCJcIjtcIiIpOwotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NiAhPT0gbnVsbCkgewot
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDcgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdDcgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwg
cmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0N107Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVz
dWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVs
bCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCB0eXBlLCBuYW1lKSB7
IHJldHVybiB7IHR5cGU6ICd0eXBlZGVmJywgbmFtZTogbmFtZSwgaWRsVHlwZTogdHlwZSB9OyB9
KShwb3MwLCByZXN1bHQwWzJdLCByZXN1bHQwWzRdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBh
cnNlX2V4Y2VwdGlvbigpIHsKLSAgICAgICAgdmFyIHJlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIs
IHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYsIHJlc3VsdDcsIHJlc3VsdDgsIHJl
c3VsdDksIHJlc3VsdDEwLCByZXN1bHQxMSwgcmVzdWx0MTIsIHJlc3VsdDEzLCByZXN1bHQxNCwg
cmVzdWx0MTU7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9z
MCA9IHBvczsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBhcnNlX0V4
dGVuZGVkQXR0cmlidXRlTGlzdCgpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewot
ICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09
IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocG9zLCA5KSA9PT0gImV4Y2Vw
dGlvbiIpIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9ICJleGNlcHRpb24iOwotICAgICAgICAg
ICAgICBwb3MgKz0gOTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlc3Vs
dDIgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAg
ICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCJleGNlcHRpb25cIiIpOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewot
ICAgICAgICAgICAgICByZXN1bHQzID0gcGFyc2VfcygpOwotICAgICAgICAgICAgICBpZiAocmVz
dWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDQgPSBwYXJzZV9pZGVudGlm
aWVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICAgIHJlc3VsdDUgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0NSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gcGFyc2VfSW5o
ZXJpdGFuY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDYgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ3ID0gcGFyc2VfdygpOwotICAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQ3ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjMpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0OCA9ICJ7IjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQ4ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9y
dEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hGYWls
ZWQoIlwie1wiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ4ICE9PSBudWxs
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDkgPSBwYXJzZV93KCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ5ICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MTAgPSBwYXJzZV9FeGNlcHRpb25NZW1iZXJzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEwICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMSA9IHBhcnNlX3coKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQxMSAhPT0gbnVsbCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSAxMjUp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxMiA9ICJ9IjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQxMiA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXRjaEZhaWxlZCgiXCJ9XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MTMgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEzICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA1
OSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxNCA9ICI7
IjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQxNCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIjtcIiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0MTQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0MTUgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQxNSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0Miwg
cmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVz
dWx0OSwgcmVzdWx0MTAsIHJlc3VsdDExLCByZXN1bHQxMiwgcmVzdWx0MTMsIHJlc3VsdDE0LCBy
ZXN1bHQxNV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z
ID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAg
ICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAg
ICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAg
PSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJl
c3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBleHRBdHRycywgbmFtZSwgaGVyaXQsIG1lbSkgewot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZTogJ2V4Y2VwdGlvbicsCi0gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdGFuY2U6IGhlcml0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgbWVtYmVyczogbWVtLAotICAgICAgICAgICAgICAgICAgICAgICAgZXh0QXR0cnM6
IGV4dEF0dHJzLAotICAgICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIH0pKHBv
czAsIHJlc3VsdDBbMF0sIHJlc3VsdDBbNF0sIHJlc3VsdDBbNl0sIHJlc3VsdDBbMTBdKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9
IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAg
ICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX0V4Y2VwdGlvbk1lbWJlcnMoKSB7Ci0gICAgICAgIHZh
ciByZXN1bHQwLCByZXN1bHQxOwotICAgICAgICB2YXIgcG9zMDsKLSAgICAgICAgCi0gICAgICAg
IHBvczAgPSBwb3M7Ci0gICAgICAgIHJlc3VsdDAgPSBbXTsKLSAgICAgICAgcmVzdWx0MSA9IHBh
cnNlX0V4Y2VwdGlvbk1lbWJlcigpOwotICAgICAgICB3aGlsZSAocmVzdWx0MSAhPT0gbnVsbCkg
ewotICAgICAgICAgIHJlc3VsdDAucHVzaChyZXN1bHQxKTsKLSAgICAgICAgICByZXN1bHQxID0g
cGFyc2VfRXhjZXB0aW9uTWVtYmVyKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgbWVtKSB7
IHJldHVybiBtZW0gPyBtZW0gOiBbXTsgfSkocG9zMCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBm
dW5jdGlvbiBwYXJzZV9FeGNlcHRpb25NZW1iZXIoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwOwot
ICAgICAgICB2YXIgcG9zMDsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAg
IHJlc3VsdDAgPSBwYXJzZV9jb25zdCgpOwotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkg
ewotICAgICAgICAgIHJlc3VsdDAgPSBwYXJzZV9maWVsZCgpOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihv
ZmZzZXQsIG1lbSkgeyByZXR1cm4gbWVtOyB9KShwb3MwLCByZXN1bHQwKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAg
IGZ1bmN0aW9uIHBhcnNlX2ZpZWxkKCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwg
cmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0NzsKLSAg
ICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwotICAg
ICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfRXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KCk7Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVz
dWx0MSA9IHBhcnNlX3MoKTsKLSAgICAgICAgICByZXN1bHQxID0gcmVzdWx0MSAhPT0gbnVsbCA/
IHJlc3VsdDEgOiAiIjsKLSAgICAgICAgICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAg
ICAgICAgcmVzdWx0MiA9IHBhcnNlX3R5cGUoKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDMgPSBwYXJzZV9zKCk7Ci0gICAgICAgICAg
ICAgIGlmIChyZXN1bHQzICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0NCA9IHBh
cnNlX2lkZW50aWZpZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0NCAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgICAgcmVzdWx0NSA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAg
ICAgIGlmIChyZXN1bHQ1ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1
dC5jaGFyQ29kZUF0KHBvcykgPT09IDU5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
NiA9ICI7IjsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIjtcIiIpOwotICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
NiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDcgPSBwYXJzZV93KCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDcgIT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVz
dWx0MywgcmVzdWx0NCwgcmVzdWx0NSwgcmVzdWx0NiwgcmVzdWx0N107Ci0gICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxs
OwotICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9z
ID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0
LCBleHRBdHRycywgdHlwZSwgbmFtZSkgeyByZXR1cm4geyB0eXBlOiAiZmllbGQiLCBleHRBdHRy
czogZXh0QXR0cnMsIGlkbFR5cGU6IHR5cGUsIG5hbWU6IG5hbWUgfTsgfSkocG9zMCwgcmVzdWx0
MFswXSwgcmVzdWx0MFsyXSwgcmVzdWx0MFs0XSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJl
c3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJz
ZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwOwotICAgICAg
ICB2YXIgcG9zMDsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHJlc3Vs
dDAgPSBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3RJbm5lcigpOwotICAgICAgICByZXN1bHQw
ID0gcmVzdWx0MCAhPT0gbnVsbCA/IHJlc3VsdDAgOiAiIjsKLSAgICAgICAgaWYgKHJlc3VsdDAg
IT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZWEpIHsg
cmV0dXJuIGVhID8gZWEgOiBbXTsgfSkocG9zMCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5j
dGlvbiBwYXJzZV9FeHRlbmRlZEF0dHJpYnV0ZUxpc3RJbm5lcigpIHsKLSAgICAgICAgdmFyIHJl
c3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3Vs
dDY7Ci0gICAgICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBv
czsKLSAgICAgICAgcG9zMSA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBhcnNlX3coKTsKLSAg
ICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICBpZiAoaW5wdXQuY2hhckNv
ZGVBdChwb3MpID09PSA5MSkgewotICAgICAgICAgICAgcmVzdWx0MSA9ICJbIjsKLSAgICAgICAg
ICAgIHBvcysrOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gbnVs
bDsKLSAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAg
ICBtYXRjaEZhaWxlZCgiXCJbXCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAg
ICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3VsdDIgPSBwYXJz
ZV93KCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICByZXN1bHQzID0gcGFyc2VfRXh0QXR0cnMoKTsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdDMg
IT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcGFyc2VfdygpOwotICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAo
aW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA5MykgewotICAgICAgICAgICAgICAgICAgICByZXN1
bHQ1ID0gIl0iOwotICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdDUgPSBudWxsOwotICAgICAgICAg
ICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAg
ICAgICBtYXRjaEZhaWxlZCgiXCJdXCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09IG51bGwpIHsK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0NiA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdDYgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQwID0gW3Jlc3VsdDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3Vs
dDUsIHJlc3VsdDZdOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBv
czE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBw
b3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgIHBv
cyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJl
c3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgfQot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
IHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9u
KG9mZnNldCwgZWEpIHsgcmV0dXJuIGVhOyB9KShwb3MwLCByZXN1bHQwWzNdKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAg
ICAgIGZ1bmN0aW9uIHBhcnNlX0V4dEF0dHJzKCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVz
dWx0MSwgcmVzdWx0MjsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAg
ICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFy
c2VfRXh0QXR0cigpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAg
IHJlc3VsdDEgPSBbXTsKLSAgICAgICAgICByZXN1bHQyID0gcGFyc2VfRXh0QXR0cnNSZXN0KCk7
Ci0gICAgICAgICAgd2hpbGUgKHJlc3VsdDIgIT09IG51bGwpIHsKLSAgICAgICAgICAgIHJlc3Vs
dDEucHVzaChyZXN1bHQyKTsKLSAgICAgICAgICAgIHJlc3VsdDIgPSBwYXJzZV9FeHRBdHRyc1Jl
c3QoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAg
ICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MV07Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAh
PT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBmaXJzdCwg
b3RoZXJzKSB7ICAgdmFyIHJldCA9IFtmaXJzdF07Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwLCBuID0gb3RoZXJzLmxlbmd0aDsgaSA8IG47IGkrKykgeyByZXQucHVzaChvdGhl
cnNbaV0pOyB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7IH0pKHBvczAsIHJlc3Vs
dDBbMF0sIHJlc3VsdDBbMV0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBu
dWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2VfRXh0QXR0cnNS
ZXN0KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MzsK
LSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0gcG9zOwot
ICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfdygpOwotICAgICAg
ICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0
KHBvcykgPT09IDQ0KSB7Ci0gICAgICAgICAgICByZXN1bHQxID0gIiwiOwotICAgICAgICAgICAg
cG9zKys7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDEgPSBudWxsOwot
ICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAgICAgICAgICAgIG1h
dGNoRmFpbGVkKCJcIixcIiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
ICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MiA9IHBhcnNlX3co
KTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgIHJl
c3VsdDMgPSBwYXJzZV9FeHRBdHRyKCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1
bHQyLCByZXN1bHQzXTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsK
LSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3Mx
OwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQw
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIHJlc3Qp
IHsgcmV0dXJuIHJlc3Q7IH0pKHBvczAsIHJlc3VsdDBbM10pOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rp
b24gcGFyc2VfRXh0QXR0cigpIHsKLSAgICAgICAgdmFyIHJlc3VsdDA7Ci0gICAgICAgIHZhciBw
b3MwOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBh
cnNlX0V4dEF0dHJBcmdMaXN0KCk7Ci0gICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX0V4dEF0dHJOYW1lZEFyZ0xpc3QoKTsKLSAgICAgICAg
ICBpZiAocmVzdWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgICAgcmVzdWx0MCA9IHBhcnNlX0V4
dEF0dHJOYW1lVmFsdWUoKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQwID09PSBudWxsKSB7Ci0g
ICAgICAgICAgICAgIHJlc3VsdDAgPSBwYXJzZV9FeHRBdHRyTm9BcmcoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwp
IHsKLSAgICAgICAgICByZXN1bHQwID0gKGZ1bmN0aW9uKG9mZnNldCwgZWEpIHsgcmV0dXJuIGVh
OyB9KShwb3MwLCByZXN1bHQwKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCA9PT0g
bnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNlX0V4dEF0dHJO
b0FyZygpIHsKLSAgICAgICAgdmFyIHJlc3VsdDA7Ci0gICAgICAgIHZhciBwb3MwOwotICAgICAg
ICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBhcnNlX2lkZW50aWZp
ZXIoKTsKLSAgICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQw
ID0gKGZ1bmN0aW9uKG9mZnNldCwgbmFtZSkge3JldHVybiB7IG5hbWU6IG5hbWUgfTsgfSkocG9z
MCwgcmVzdWx0MCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsK
LSAgICAgICAgICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQw
OwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9FeHRBdHRyTmFtZVZhbHVl
KCkgewotICAgICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVz
dWx0NDsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAgIAotICAgICAgICBwb3MwID0g
cG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1bHQwID0gcGFyc2VfaWRlbnRp
ZmllcigpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3Vs
dDEgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDEgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDYxKSB7Ci0gICAgICAgICAgICAg
IHJlc3VsdDIgPSAiPSI7Ci0gICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAgICAgICAgICAgIGlmIChyZXBv
cnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1hdGNoRmFpbGVkKCJcIj1cIiIp
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0
MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQzID0gcGFyc2VfdygpOwotICAgICAg
ICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdDQg
PSBwYXJzZV9TY29wZWROYW1lKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdDQgIT09IG51
bGwpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBbcmVzdWx0MCwgcmVzdWx0MSwgcmVz
dWx0MiwgcmVzdWx0MywgcmVzdWx0NF07Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MCA9
IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgcG9z
ID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3VsdDAgPSAoZnVuY3Rpb24ob2Zmc2V0
LCBuYW1lLCB2YWx1ZSkge3JldHVybiB7IG5hbWU6IG5hbWUsIHZhbHVlOiB2YWx1ZSB9OyB9KShw
b3MwLCByZXN1bHQwWzBdLCByZXN1bHQwWzRdKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVz
dWx0MCA9PT0gbnVsbCkgewotICAgICAgICAgIHBvcyA9IHBvczA7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDA7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGZ1bmN0aW9uIHBhcnNl
X0V4dEF0dHJOYW1lZEFyZ0xpc3QoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCBy
ZXN1bHQyLCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1
bHQ4LCByZXN1bHQ5LCByZXN1bHQxMDsKLSAgICAgICAgdmFyIHBvczAsIHBvczE7Ci0gICAgICAg
IAotICAgICAgICBwb3MwID0gcG9zOwotICAgICAgICBwb3MxID0gcG9zOwotICAgICAgICByZXN1
bHQwID0gcGFyc2VfaWRlbnRpZmllcigpOwotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkg
ewotICAgICAgICAgIHJlc3VsdDEgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgaWYgKHJlc3VsdDEg
IT09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDYx
KSB7Ci0gICAgICAgICAgICAgIHJlc3VsdDIgPSAiPSI7Ci0gICAgICAgICAgICAgIHBvcysrOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9IG51bGw7Ci0gICAg
ICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgIG1h
dGNoRmFpbGVkKCJcIj1cIiIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAocmVzdWx0MiAhPT0gbnVsbCkgewotICAgICAgICAgICAgICByZXN1bHQzID0g
cGFyc2VfdygpOwotICAgICAgICAgICAgICBpZiAocmVzdWx0MyAhPT0gbnVsbCkgewotICAgICAg
ICAgICAgICAgIHJlc3VsdDQgPSBwYXJzZV9pZGVudGlmaWVyKCk7Ci0gICAgICAgICAgICAgICAg
aWYgKHJlc3VsdDQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDUgPSBwYXJz
ZV93KCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NSAhPT0gbnVsbCkgewotICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA0MCkgewotICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDYgPSAiKCI7Ci0gICAgICAgICAgICAgICAgICAgICAgcG9z
Kys7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0NiA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVz
ID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIoXCIiKTsK
LSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdDYgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQ3ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ3
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ4ID0gcGFyc2VfQXJn
dW1lbnRzKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ4ID0gcmVzdWx0OCAhPT0g
bnVsbCA/IHJlc3VsdDggOiAiIjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ4
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDkgPSBwYXJzZV93
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ5ICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0g
NDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEwID0gIikiOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDEwID0g
bnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9
PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCIp
XCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDEwICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gW3Jlc3Vs
dDAsIHJlc3VsdDEsIHJlc3VsdDIsIHJlc3VsdDMsIHJlc3VsdDQsIHJlc3VsdDUsIHJlc3VsdDYs
IHJlc3VsdDcsIHJlc3VsdDgsIHJlc3VsdDksIHJlc3VsdDEwXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z
ID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsK
LSAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3Mx
OwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVs
bDsKLSAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQw
ICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIG5hbWUs
IHZhbHVlLCBhcmdzKSB7cmV0dXJuIHsgbmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlLCBhcmd1bWVu
dHM6IGFyZ3MgfTsgfSkocG9zMCwgcmVzdWx0MFswXSwgcmVzdWx0MFs0XSwgcmVzdWx0MFs4XSk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAgICBw
b3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAgfQot
ICAgICAgCi0gICAgICBmdW5jdGlvbiBwYXJzZV9FeHRBdHRyTmFtZWRBcmdMaXN0KCkgewotICAg
ICAgICB2YXIgcmVzdWx0MCwgcmVzdWx0MSwgcmVzdWx0MiwgcmVzdWx0MywgcmVzdWx0NCwgcmVz
dWx0NSwgcmVzdWx0NiwgcmVzdWx0NywgcmVzdWx0OCwgcmVzdWx0OSwgcmVzdWx0MTA7Ci0gICAg
ICAgIHZhciBwb3MwLCBwb3MxOwotICAgICAgICAKLSAgICAgICAgcG9zMCA9IHBvczsKLSAgICAg
ICAgcG9zMSA9IHBvczsKLSAgICAgICAgcmVzdWx0MCA9IHBhcnNlX2lkZW50aWZpZXIoKTsKLSAg
ICAgICAgaWYgKHJlc3VsdDAgIT09IG51bGwpIHsKLSAgICAgICAgICByZXN1bHQxID0gcGFyc2Vf
dygpOwotICAgICAgICAgIGlmIChyZXN1bHQxICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAo
aW5wdXQuY2hhckNvZGVBdChwb3MpID09PSA2MSkgewotICAgICAgICAgICAgICByZXN1bHQyID0g
Ij0iOwotICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgIHJlc3VsdDIgPSBudWxsOwotICAgICAgICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMg
PT09IDApIHsKLSAgICAgICAgICAgICAgICBtYXRjaEZhaWxlZCgiXCI9XCIiKTsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdDIgIT09IG51bGwp
IHsKLSAgICAgICAgICAgICAgcmVzdWx0MyA9IHBhcnNlX3coKTsKLSAgICAgICAgICAgICAgaWYg
KHJlc3VsdDMgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQ0ID0gcGFyc2VfaWRl
bnRpZmllcigpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgICAgICByZXN1bHQ1ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdDUgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJD
b2RlQXQocG9zKSA9PT0gNDApIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gIigi
OwotICAgICAgICAgICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDYgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgbWF0Y2hGYWlsZWQoIlwiKFwiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ2ICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0NyA9IHBhcnNlX3coKTsKLSAgICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0NyAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0OCA9IHBhcnNlX0FyZ3VtZW50cygpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0OCA9IHJlc3VsdDggIT09IG51bGwgPyByZXN1bHQ4IDogIiI7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0OCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQ5ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0OSAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChpbnB1dC5jaGFyQ29kZUF0KHBvcykgPT09IDQxKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQxMCA9ICIpIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cysrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQxMCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocmVwb3J0RmFpbHVyZXMgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiKVwiIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChyZXN1bHQxMCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCByZXN1bHQz
LCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2LCByZXN1bHQ3LCByZXN1bHQ4LCByZXN1bHQ5LCBy
ZXN1bHQxMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9z
MTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAg
ICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdDAgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgICAgIHBvcyA9IHBvczE7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdDAgPSBu
dWxsOwotICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgcmVzdWx0MCA9IG51bGw7Ci0gICAgICAgICAgcG9zID0gcG9zMTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAocmVzdWx0MCAhPT0gbnVsbCkgewotICAgICAgICAgIHJlc3Vs
dDAgPSAoZnVuY3Rpb24ob2Zmc2V0LCBuYW1lLCB2YWx1ZSwgYXJncykge3JldHVybiB7IG5hbWU6
IG5hbWUsIHZhbHVlOiB2YWx1ZSwgYXJndW1lbnRzOiBhcmdzIH07IH0pKHBvczAsIHJlc3VsdDBb
MF0sIHJlc3VsdDBbNF0sIHJlc3VsdDBbOF0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1
bHQwID09PSBudWxsKSB7Ci0gICAgICAgICAgcG9zID0gcG9zMDsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcmVzdWx0MDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgZnVuY3Rpb24gcGFyc2Vf
RXh0QXR0ckFyZ0xpc3QoKSB7Ci0gICAgICAgIHZhciByZXN1bHQwLCByZXN1bHQxLCByZXN1bHQy
LCByZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2OwotICAgICAgICB2YXIgcG9zMCwg
cG9zMTsKLSAgICAgICAgCi0gICAgICAgIHBvczAgPSBwb3M7Ci0gICAgICAgIHBvczEgPSBwb3M7
Ci0gICAgICAgIHJlc3VsdDAgPSBwYXJzZV9pZGVudGlmaWVyKCk7Ci0gICAgICAgIGlmIChyZXN1
bHQwICE9PSBudWxsKSB7Ci0gICAgICAgICAgcmVzdWx0MSA9IHBhcnNlX3coKTsKLSAgICAgICAg
ICBpZiAocmVzdWx0MSAhPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2Rl
QXQocG9zKSA9PT0gNDApIHsKLSAgICAgICAgICAgICAgcmVzdWx0MiA9ICIoIjsKLSAgICAgICAg
ICAgICAgcG9zKys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXN1bHQy
ID0gbnVsbDsKLSAgICAgICAgICAgICAgaWYgKHJlcG9ydEZhaWx1cmVzID09PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgbWF0Y2hGYWlsZWQoIlwiKFwiIik7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQyICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgIHJlc3VsdDMgPSBwYXJzZV93KCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQzICE9PSBu
dWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0NCA9IHBhcnNlX0FyZ3VtZW50cygpOwotICAg
ICAgICAgICAgICAgIHJlc3VsdDQgPSByZXN1bHQ0ICE9PSBudWxsID8gcmVzdWx0NCA6ICIiOwot
ICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAg
ICByZXN1bHQ1ID0gcGFyc2VfdygpOwotICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDUgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9
PT0gNDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ2ID0gIikiOwotICAgICAgICAg
ICAgICAgICAgICAgIHBvcysrOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdDYgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgIGlm
IChyZXBvcnRGYWlsdXJlcyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hG
YWlsZWQoIlwiKVwiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ2ICE9PSBudWxsKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IFtyZXN1bHQwLCByZXN1bHQxLCByZXN1bHQyLCBy
ZXN1bHQzLCByZXN1bHQ0LCByZXN1bHQ1LCByZXN1bHQ2XTsKLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAg
ICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsK
LSAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zMTsKLSAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmVzdWx0MCA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICAgICAgcG9zID0g
cG9zMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVz
dWx0MCA9IG51bGw7Ci0gICAgICAgICAgICBwb3MgPSBwb3MxOwotICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICByZXN1bHQwID0gbnVsbDsKLSAgICAgICAgICBwb3MgPSBw
b3MxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQwICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgcmVzdWx0MCA9IChmdW5jdGlvbihvZmZzZXQsIG5hbWUsIGFyZ3MpIHtyZXR1cm4geyBuYW1l
OiBuYW1lLCBhcmd1bWVudHM6IGFyZ3MgfTsgfSkocG9zMCwgcmVzdWx0MFswXSwgcmVzdWx0MFs0
XSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdDAgPT09IG51bGwpIHsKLSAgICAgICAg
ICBwb3MgPSBwb3MwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQwOwotICAgICAg
fQotICAgICAgCi0gICAgICAKLSAgICAgIGZ1bmN0aW9uIGNsZWFudXBFeHBlY3RlZChleHBlY3Rl
ZCkgewotICAgICAgICBleHBlY3RlZC5zb3J0KCk7Ci0gICAgICAgIAotICAgICAgICB2YXIgbGFz
dEV4cGVjdGVkID0gbnVsbDsKLSAgICAgICAgdmFyIGNsZWFuRXhwZWN0ZWQgPSBbXTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykgewotICAgICAgICAg
IGlmIChleHBlY3RlZFtpXSAhPT0gbGFzdEV4cGVjdGVkKSB7Ci0gICAgICAgICAgICBjbGVhbkV4
cGVjdGVkLnB1c2goZXhwZWN0ZWRbaV0pOwotICAgICAgICAgICAgbGFzdEV4cGVjdGVkID0gZXhw
ZWN0ZWRbaV07Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjbGVhbkV4
cGVjdGVkOwotICAgICAgfQotICAgICAgCi0gICAgICBmdW5jdGlvbiBjb21wdXRlRXJyb3JQb3Np
dGlvbigpIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGhlIGZpcnN0IGlkZWEgd2FzIHRvIHVz
ZSB8U3RyaW5nLnNwbGl0fCB0byBicmVhayB0aGUgaW5wdXQgdXAgdG8gdGhlCi0gICAgICAgICAq
IGVycm9yIHBvc2l0aW9uIGFsb25nIG5ld2xpbmVzIGFuZCBkZXJpdmUgdGhlIGxpbmUgYW5kIGNv
bHVtbiBmcm9tCi0gICAgICAgICAqIHRoZXJlLiBIb3dldmVyIElFJ3MgfHNwbGl0fCBpbXBsZW1l
bnRhdGlvbiBpcyBzbyBicm9rZW4gdGhhdCBpdCB3YXMKLSAgICAgICAgICogZW5vdWdoIHRvIHBy
ZXZlbnQgaXQuCi0gICAgICAgICAqLwotICAgICAgICAKLSAgICAgICAgdmFyIGxpbmUgPSAxOwot
ICAgICAgICB2YXIgY29sdW1uID0gMTsKLSAgICAgICAgdmFyIHNlZW5DUiA9IGZhbHNlOwotICAg
ICAgICAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBNYXRoLm1heChwb3MsIHJpZ2h0bW9z
dEZhaWx1cmVzUG9zKTsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGNoID0gaW5wdXQuY2hhckF0KGkp
OwotICAgICAgICAgIGlmIChjaCA9PT0gIlxuIikgewotICAgICAgICAgICAgaWYgKCFzZWVuQ1Ip
IHsgbGluZSsrOyB9Ci0gICAgICAgICAgICBjb2x1bW4gPSAxOwotICAgICAgICAgICAgc2VlbkNS
ID0gZmFsc2U7Ci0gICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gIlxyIiB8fCBjaCA9PT0gIlx1
MjAyOCIgfHwgY2ggPT09ICJcdTIwMjkiKSB7Ci0gICAgICAgICAgICBsaW5lKys7Ci0gICAgICAg
ICAgICBjb2x1bW4gPSAxOwotICAgICAgICAgICAgc2VlbkNSID0gdHJ1ZTsKLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgY29sdW1uKys7Ci0gICAgICAgICAgICBzZWVuQ1IgPSBmYWxz
ZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiB7IGxp
bmU6IGxpbmUsIGNvbHVtbjogY29sdW1uIH07Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIAotICAg
ICAgdmFyIHJlc3VsdCA9IHBhcnNlRnVuY3Rpb25zW3N0YXJ0UnVsZV0oKTsKLSAgICAgIAotICAg
ICAgLyoKLSAgICAgICAqIFRoZSBwYXJzZXIgaXMgbm93IGluIG9uZSBvZiB0aGUgZm9sbG93aW5n
IHRocmVlIHN0YXRlczoKLSAgICAgICAqCi0gICAgICAgKiAxLiBUaGUgcGFyc2VyIHN1Y2Nlc3Nm
dWxseSBwYXJzZWQgdGhlIHdob2xlIGlucHV0LgotICAgICAgICoKLSAgICAgICAqICAgIC0gfHJl
c3VsdCAhPT0gbnVsbHwKLSAgICAgICAqICAgIC0gfHBvcyA9PT0gaW5wdXQubGVuZ3RofAotICAg
ICAgICogICAgLSB8cmlnaHRtb3N0RmFpbHVyZXNFeHBlY3RlZHwgbWF5IG9yIG1heSBub3QgY29u
dGFpbiBzb21ldGhpbmcKLSAgICAgICAqCi0gICAgICAgKiAyLiBUaGUgcGFyc2VyIHN1Y2Nlc3Nm
dWxseSBwYXJzZWQgb25seSBhIHBhcnQgb2YgdGhlIGlucHV0LgotICAgICAgICoKLSAgICAgICAq
ICAgIC0gfHJlc3VsdCAhPT0gbnVsbHwKLSAgICAgICAqICAgIC0gfHBvcyA8IGlucHV0Lmxlbmd0
aHwKLSAgICAgICAqICAgIC0gfHJpZ2h0bW9zdEZhaWx1cmVzRXhwZWN0ZWR8IG1heSBvciBtYXkg
bm90IGNvbnRhaW4gc29tZXRoaW5nCi0gICAgICAgKgotICAgICAgICogMy4gVGhlIHBhcnNlciBk
aWQgbm90IHN1Y2Nlc3NmdWxseSBwYXJzZSBhbnkgcGFydCBvZiB0aGUgaW5wdXQuCi0gICAgICAg
KgotICAgICAgICogICAtIHxyZXN1bHQgPT09IG51bGx8Ci0gICAgICAgKiAgIC0gfHBvcyA9PT0g
MHwKLSAgICAgICAqICAgLSB8cmlnaHRtb3N0RmFpbHVyZXNFeHBlY3RlZHwgY29udGFpbnMgYXQg
bGVhc3Qgb25lIGZhaWx1cmUKLSAgICAgICAqCi0gICAgICAgKiBBbGwgY29kZSBmb2xsb3dpbmcg
dGhpcyBjb21tZW50IChpbmNsdWRpbmcgY2FsbGVkIGZ1bmN0aW9ucykgbXVzdAotICAgICAgICog
aGFuZGxlIHRoZXNlIHN0YXRlcy4KLSAgICAgICAqLwotICAgICAgaWYgKHJlc3VsdCA9PT0gbnVs
bCB8fCBwb3MgIT09IGlucHV0Lmxlbmd0aCkgewotICAgICAgICB2YXIgb2Zmc2V0ID0gTWF0aC5t
YXgocG9zLCByaWdodG1vc3RGYWlsdXJlc1Bvcyk7Ci0gICAgICAgIHZhciBmb3VuZCA9IG9mZnNl
dCA8IGlucHV0Lmxlbmd0aCA/IGlucHV0LmNoYXJBdChvZmZzZXQpIDogbnVsbDsKLSAgICAgICAg
dmFyIGVycm9yUG9zaXRpb24gPSBjb21wdXRlRXJyb3JQb3NpdGlvbigpOwotICAgICAgICAKLSAg
ICAgICAgdGhyb3cgbmV3IHRoaXMuU3ludGF4RXJyb3IoCi0gICAgICAgICAgY2xlYW51cEV4cGVj
dGVkKHJpZ2h0bW9zdEZhaWx1cmVzRXhwZWN0ZWQpLAotICAgICAgICAgIGZvdW5kLAotICAgICAg
ICAgIG9mZnNldCwKLSAgICAgICAgICBlcnJvclBvc2l0aW9uLmxpbmUsCi0gICAgICAgICAgZXJy
b3JQb3NpdGlvbi5jb2x1bW4KLSAgICAgICAgKTsKLSAgICAgIH0KLSAgICAgIAotICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9LAotICAgIAotICAgIC8qIFJldHVybnMgdGhlIHBhcnNlciBzb3Vy
Y2UgY29kZS4gKi8KLSAgICB0b1NvdXJjZTogZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLl9zb3Vy
Y2U7IH0KLSAgfTsKLSAgCi0gIC8qIFRocm93biB3aGVuIGEgcGFyc2VyIGVuY291bnRlcnMgYSBz
eW50YXggZXJyb3IuICovCi0gIAotICByZXN1bHQuU3ludGF4RXJyb3IgPSBmdW5jdGlvbihleHBl
Y3RlZCwgZm91bmQsIG9mZnNldCwgbGluZSwgY29sdW1uKSB7Ci0gICAgZnVuY3Rpb24gYnVpbGRN
ZXNzYWdlKGV4cGVjdGVkLCBmb3VuZCkgewotICAgICAgdmFyIGV4cGVjdGVkSHVtYW5pemVkLCBm
b3VuZEh1bWFuaXplZDsKLSAgICAgIAotICAgICAgc3dpdGNoIChleHBlY3RlZC5sZW5ndGgpIHsK
LSAgICAgICAgY2FzZSAwOgotICAgICAgICAgIGV4cGVjdGVkSHVtYW5pemVkID0gImVuZCBvZiBp
bnB1dCI7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICBleHBl
Y3RlZEh1bWFuaXplZCA9IGV4cGVjdGVkWzBdOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgIGV4cGVjdGVkSHVtYW5pemVkID0gZXhwZWN0ZWQuc2xpY2UoMCwg
ZXhwZWN0ZWQubGVuZ3RoIC0gMSkuam9pbigiLCAiKQotICAgICAgICAgICAgKyAiIG9yICIKLSAg
ICAgICAgICAgICsgZXhwZWN0ZWRbZXhwZWN0ZWQubGVuZ3RoIC0gMV07Ci0gICAgICB9Ci0gICAg
ICAKLSAgICAgIGZvdW5kSHVtYW5pemVkID0gZm91bmQgPyBxdW90ZShmb3VuZCkgOiAiZW5kIG9m
IGlucHV0IjsKLSAgICAgIAotICAgICAgcmV0dXJuICJFeHBlY3RlZCAiICsgZXhwZWN0ZWRIdW1h
bml6ZWQgKyAiIGJ1dCAiICsgZm91bmRIdW1hbml6ZWQgKyAiIGZvdW5kLiI7Ci0gICAgfQotICAg
IAotICAgIHRoaXMubmFtZSA9ICJTeW50YXhFcnJvciI7Ci0gICAgdGhpcy5leHBlY3RlZCA9IGV4
cGVjdGVkOwotICAgIHRoaXMuZm91bmQgPSBmb3VuZDsKLSAgICB0aGlzLm1lc3NhZ2UgPSBidWls
ZE1lc3NhZ2UoZXhwZWN0ZWQsIGZvdW5kKTsKLSAgICB0aGlzLm9mZnNldCA9IG9mZnNldDsKLSAg
ICB0aGlzLmxpbmUgPSBsaW5lOwotICAgIHRoaXMuY29sdW1uID0gY29sdW1uOwotICB9OwotICAK
LSAgcmVzdWx0LlN5bnRheEVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTsKLSAgCi0g
IHJldHVybiByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2MvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5jc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTAwNmU4MTJkZTRkZmIzZjEwMjQ3ODhlMTQ3M2E3MTM2ZDk1ODM5NS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDEz
NCArMCwwIEBACi1odG1sLmZhaWwgewotICAgIGJhY2tncm91bmQ6ICNmNjY7Ci19Ci1odG1sLnBh
c3MgewotICAgIGJhY2tncm91bmQ6ICM2ZjY7Ci19Ci1odG1sLm5lZWRzX2NoZWNrIHsKLSAgICBi
YWNrZ3JvdW5kOiAjOTlmOwotfQotCi1ib2R5IHsKLSAgICBmb250LXNpemU6IHNtYWxsOwotICAg
IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwotICAgIGNvbG9yOiBibGFjazsKLX0KLQotYTpsaW5r
IHsKLSAgICBjb2xvcjogIzAwYzsKLX0KLWE6dmlzaXRlZCB7Ci0gICAgY29sb3I6ICM4MDg7Ci19
Ci0KLWJvZHkuZnJhbWVkIHsKLSAgICBmb250LXNpemU6IHgtc21hbGw7Ci19Ci0KLWgxIHsKLSAg
ICBmb250LXNpemU6IGxhcmdlcjsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZy1sZWZ0OiAw
LjVlbTsKLSAgICB0ZXh0LWluZGVudDogLTAuNWVtOwotfQotCi1wIHsKLSAgICBtYXJnaW46IDA7
Ci19Ci0KLXAubm90ZXMgewotICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgIGZvbnQtc3R5
bGU6IGl0YWxpYzsKLX0KLQotdWwgewotICAgIG1hcmdpbjogMDsKLSAgICBtYXJnaW4tYm90dG9t
OiAwLjVlbTsKLSAgICBwYWRkaW5nOiAwOwotICAgIHBhZGRpbmctbGVmdDogMWVtOwotfQotCi0u
cmVmcyB7Ci0gICAgZm9udC1zdHlsZTogaXRhbGljOwotICAgIG1hcmdpbi1ib3R0b206IDAuNWVt
OwotfQotCi0ucmVmcyB1bCB7Ci0gICAgZGlzcGxheTogaW5saW5lOwotICAgIG1hcmdpbjogMDsK
LSAgICBwYWRkaW5nOiAwOwotfQotCi0ucmVmcyBsaSB7Ci0gICAgZGlzcGxheTogaW5saW5lOwot
ICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzog
MDsKLX0KLQotY2FudmFzIHsKLSAgICBkaXNwbGF5OiBub25lOwotICAgIHZpc2liaWxpdHk6IGhp
ZGRlbjsKLSAgICBib3JkZXI6IDJweCAjZjBmIHNvbGlkOwotICAgIGJhY2tncm91bmQ6IHVybCgu
Li9pbWFnZXMvYmFja2dyb3VuZC5wbmcpOwotfQotCi1pbWcuZXhwZWN0ZWQgewotICAgIGRpc3Bs
YXk6IG5vbmU7Ci0gICAgYm9yZGVyOiAycHggI2YwZiBzb2xpZDsKLSAgICBiYWNrZ3JvdW5kOiB1
cmwoLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nKTsKLX0KLQotaWZyYW1lIHsKLSAgICBib3JkZXI6
IDJweCAjZjBmIHNvbGlkOwotfQotCi0ub3V0cHV0IHsKLSAgICBkaXNwbGF5OiBub25lOwotfQot
Ci0uc2hvd19vdXRwdXQgLm91dHB1dCwgLm5lZWRzX2NoZWNrIC5vdXRwdXQgIHsKLSAgICBkaXNw
bGF5OiBibG9jayAhaW1wb3J0YW50OwotICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFu
dDsKLX0KLQotLnNob3dfb3V0cHV0ICNzaG93X291dHB1dCB7Ci0gICAgZGlzcGxheTogbm9uZTsK
LX0KLQotLnJlc291cmNlIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0gICAgaGVpZ2h0OiAw
OwotfQotCi0uZmFsbGJhY2sgewotICAgIGZvbnQtc2l6ZTogMmVtOwotICAgIGZvbnQtd2VpZ2h0
OiBib2xkOwotICAgIGNvbG9yOiAjYTAwOwotfQotCi0KLWh0bWwubWluaW1hbCBib2R5IHsKLSAg
ICBjb2xvcjogd2hpdGU7Ci19Ci1odG1sLmZhaWwubWluaW1hbCB7Ci0gICAgYmFja2dyb3VuZDog
I2YwMDsKLX0KLWh0bWwucGFzcy5taW5pbWFsIHsKLSAgICBiYWNrZ3JvdW5kOiAjMDgwOwotfQot
aHRtbC5uZWVkc19jaGVjay5taW5pbWFsIHsKLSAgICBiYWNrZ3JvdW5kOiAjMDA4OwotfQotLm1p
bmltYWwgI2QgewotICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKLX0KLS5taW5pbWFsIC5l
eHBlY3RlZHRleHQgewotICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OwotfQotI3Bh
c3N0ZXh0LCAjZmFpbHRleHQgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0ubWluaW1hbC5wYXNz
ICNwYXNzdGV4dCwgLm1pbmltYWwuZmFpbCAjZmFpbHRleHQgewotICAgIGRpc3BsYXk6IGJsb2Nr
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL2Nh
bnZhcy10ZXN0cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy9jYW52
YXMtdGVzdHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YjMxNzAzZDA4MDI5
ZTI4ZjQ4MDY1ZDkwMGYyZWNjNDMzZDUxY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL2Nh
bnZhcy10ZXN0cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLWZ1bmN0aW9uIF92
YWxUb1N0cmluZyh2YWwpCi17Ci0gICAgaWYgKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0g
bnVsbCkKLSAgICAgICAgcmV0dXJuICdbJyArIHR5cGVvZih2YWwpICsgJ10nOwotICAgIHJldHVy
biB2YWwudG9TdHJpbmcoKSArICdbJyArIHR5cGVvZih2YWwpICsgJ10nOwotfQotCi1mdW5jdGlv
biBfYXNzZXJ0KGNvbmQsIHRleHQpCi17Ci0gICAgYXNzZXJ0X3RydWUoISFjb25kLCB0ZXh0KTsK
LX0KLQotZnVuY3Rpb24gX2Fzc2VydFNhbWUoYSwgYiwgdGV4dF9hLCB0ZXh0X2IpCi17Ci0gICAg
dmFyIG1zZyA9IHRleHRfYSArICcgPT09ICcgKyB0ZXh0X2IgKyAnIChnb3QgJyArIF92YWxUb1N0
cmluZyhhKSArCi0gICAgICAgICAgICAgICcsIGV4cGVjdGVkICcgKyBfdmFsVG9TdHJpbmcoYikg
KyAnKSc7Ci0gICAgYXNzZXJ0X2VxdWFscyhhLCBiLCBtc2cpOwotfQotCi1mdW5jdGlvbiBfYXNz
ZXJ0RGlmZmVyZW50KGEsIGIsIHRleHRfYSwgdGV4dF9iKQotewotICAgIHZhciBtc2cgPSB0ZXh0
X2EgKyAnICE9PSAnICsgdGV4dF9iICsgJyAoZ290ICcgKyBfdmFsVG9TdHJpbmcoYSkgKwotICAg
ICAgICAgICAgICAnLCBleHBlY3RlZCBub3QgJyArIF92YWxUb1N0cmluZyhiKSArICcpJzsKLSAg
ICBhc3NlcnRfbm90X2VxdWFscyhhLCBiLCBtc2cpOwotfQotCi0KLWZ1bmN0aW9uIF9nZXRQaXhl
bChjYW52YXMsIHgseSkKLXsKLSAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7
Ci0gICAgdmFyIGltZ2RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKHgsIHksIDEsIDEpOwotICAgIHJl
dHVybiBbIGltZ2RhdGEuZGF0YVswXSwgaW1nZGF0YS5kYXRhWzFdLCBpbWdkYXRhLmRhdGFbMl0s
IGltZ2RhdGEuZGF0YVszXSBdOwotfQotCi1mdW5jdGlvbiBfYXNzZXJ0UGl4ZWwoY2FudmFzLCB4
LHksIHIsZyxiLGEsIHBvcywgY29sb3VyKQotewotICAgIHZhciBjID0gX2dldFBpeGVsKGNhbnZh
cywgeCx5KTsKLSAgICBhc3NlcnRfZXF1YWxzKGNbMF0sIHIsICdSZWQgY2hhbm5lbCBvZiB0aGUg
cGl4ZWwgYXQgKCcgKyB4ICsgJywgJyArIHkgKyAnKScpOwotICAgIGFzc2VydF9lcXVhbHMoY1sx
XSwgZywgJ0dyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICgnICsgeCArICcsICcgKyB5ICsg
JyknKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNbMl0sIGIsICdCbHVlIGNoYW5uZWwgb2YgdGhlIHBp
eGVsIGF0ICgnICsgeCArICcsICcgKyB5ICsgJyknKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNbM10s
IGEsICdBbHBoYSBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoJyArIHggKyAnLCAnICsgeSArICcp
Jyk7Ci19Ci0KLWZ1bmN0aW9uIF9hc3NlcnRQaXhlbEFwcHJveChjYW52YXMsIHgseSwgcixnLGIs
YSwgcG9zLCBjb2xvdXIsIHRvbGVyYW5jZSkKLXsKLSAgICB2YXIgYyA9IF9nZXRQaXhlbChjYW52
YXMsIHgseSk7Ci0gICAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoY1swXSwgciwgdG9sZXJhbmNlLCAn
UmVkIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICgnICsgeCArICcsICcgKyB5ICsgJyknKTsKLSAg
ICBhc3NlcnRfYXBwcm94X2VxdWFscyhjWzFdLCBnLCB0b2xlcmFuY2UsICdHcmVlbiBjaGFubmVs
IG9mIHRoZSBwaXhlbCBhdCAoJyArIHggKyAnLCAnICsgeSArICcpJyk7Ci0gICAgYXNzZXJ0X2Fw
cHJveF9lcXVhbHMoY1syXSwgYiwgdG9sZXJhbmNlLCAnQmx1ZSBjaGFubmVsIG9mIHRoZSBwaXhl
bCBhdCAoJyArIHggKyAnLCAnICsgeSArICcpJyk7Ci0gICAgYXNzZXJ0X2FwcHJveF9lcXVhbHMo
Y1szXSwgYSwgdG9sZXJhbmNlLCAnQWxwaGEgY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKCcgKyB4
ICsgJywgJyArIHkgKyAnKScpOwotfQotCi1mdW5jdGlvbiBfYWRkVGVzdCh0ZXN0Rm4pCi17Ci0g
ICAgdmFyIGRlZmVycmVkID0gZmFsc2U7Ci0gICAgd2luZG93LmRlZmVyVGVzdCA9IGZ1bmN0aW9u
ICgpIHsgZGVmZXJyZWQgPSB0cnVlOyB9OwotICAgIG9uX2V2ZW50KHdpbmRvdywgImxvYWQiLCBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICAgICAgICAg
IHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgICAgICAgIHQuc3RlcCh0
ZXN0Rm4sIHdpbmRvdywgY2FudmFzLCBjdHgpOwotICAgICAgICB9KTsKLQotICAgICAgICBpZiAo
IWRlZmVycmVkKSB7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfQotICAgIH0pOwot
fQotCi1mdW5jdGlvbiBfYXNzZXJ0R3JlZW4oY3R4LCBjYW52YXNXaWR0aCwgY2FudmFzSGVpZ2h0
KQotewotICAgIHZhciB0ZXN0Q29sb3IgPSBmdW5jdGlvbihkLCBpZHgsIGV4cGVjdGVkKSB7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMoZFtpZHhdLCBleHBlY3RlZCwgImRbIiArIGlkeCArICJdIiwg
U3RyaW5nKGV4cGVjdGVkKSk7Ci0gICAgfTsKLSAgICB2YXIgaW1hZ2VkYXRhID0gY3R4LmdldElt
YWdlRGF0YSgwLCAwLCBjYW52YXNXaWR0aCwgY2FudmFzSGVpZ2h0KTsKLSAgICB2YXIgdyA9IGlt
YWdlZGF0YS53aWR0aCwgaCA9IGltYWdlZGF0YS5oZWlnaHQsIGQgPSBpbWFnZWRhdGEuZGF0YTsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGg7ICsraSkgewotICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IHc7ICsraikgewotICAgICAgICAgICAgdGVzdENvbG9yKGQsIDQgKiAodyAqIGkgKyBq
KSArIDAsIDApOwotICAgICAgICAgICAgdGVzdENvbG9yKGQsIDQgKiAodyAqIGkgKyBqKSArIDEs
IDI1NSk7Ci0gICAgICAgICAgICB0ZXN0Q29sb3IoZCwgNCAqICh3ICogaSArIGopICsgMiwgMCk7
Ci0gICAgICAgICAgICB0ZXN0Q29sb3IoZCwgNCAqICh3ICogaSArIGopICsgMywgMjU1KTsKLSAg
ICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxMmQz
NWE4OGFmMDBlZTE3YzA4NjM2ZDA3Njk1OTgyN2I3OTc1ZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkwICswLDAgQEAKLS8q
Ci1EaXN0cmlidXRlZCB1bmRlciBib3RoIHRoZSBXM0MgVGVzdCBTdWl0ZSBMaWNlbnNlIFsxXSBh
bmQgdGhlIFczQwotMy1jbGF1c2UgQlNEIExpY2Vuc2UgWzJdLiBUbyBjb250cmlidXRlIHRvIGEg
VzNDIFRlc3QgU3VpdGUsIHNlZSB0aGUKLXBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMg
WzNdLgotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzA0LXRl
c3RzdWl0ZS1saWNlbnNlCi1bMl0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDA4LzAzLWJzZC1saWNlbnNlCi1bM10gaHR0cDovL3d3dy53My5vcmcvMjAwNC8xMC8yNy10ZXN0
Y2FzZXMKLSovCi0KLS8qCi0gKiBUaGlzIGZpbGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgYnJv
d3NlciB0ZXN0cyBmb3IgV2ViSURMIGludGVyZmFjZXMsIHVzaW5nCi0gKiB0aGUgdGVzdGhhcm5l
c3MuanMgZnJhbWV3b3JrLiAgVG8gdXNlLCBmaXJzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmc6Ci0g
KgotICogICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgot
ICogICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgotICogICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4K
LSAqICAgPHNjcmlwdCBzcmM9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzPjwvc2NyaXB0PgotICoK
LSAqIFRoZW4geW91J2xsIG5lZWQgc29tZSB0eXBlIG9mIElETHMuICBIZXJlJ3Mgc29tZSBzY3Jp
cHQgdGhhdCBjYW4gYmUgcnVuIG9uIGEKLSAqIHNwZWMgd3JpdHRlbiBpbiBIVE1MLCB3aGljaCB3
aWxsIGdyYWIgYWxsIHRoZSBlbGVtZW50cyB3aXRoIGNsYXNzPSJpZGwiLAotICogY29uY2F0ZW5h
dGUgdGhlbSwgYW5kIHJlcGxhY2UgdGhlIGJvZHkgc28geW91IGNhbiBjb3B5LXBhc3RlOgotICoK
LSAgICAgdmFyIHMgPSAiIjsKLSAgICAgW10uZm9yRWFjaC5jYWxsKGRvY3VtZW50LmdldEVsZW1l
bnRzQnlDbGFzc05hbWUoImlkbCIpLCBmdW5jdGlvbihpZGwpIHsKLSAgICAgICAvL2h0dHBzOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTQKLSAgICAgICBpZiAo
IWlkbC5jbGFzc0xpc3QuY29udGFpbnMoImV4dHJhY3QiKSkKLSAgICAgICB7Ci0gICAgICAgICBz
ICs9IGlkbC50ZXh0Q29udGVudCArICJcblxuIjsKLSAgICAgICB9Ci0gICAgIH0pOwotICAgICBk
b2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICc8cHJlPjwvcHJlPic7Ci0gICAgIGRvY3VtZW50LmJv
ZHkuZmlyc3RDaGlsZC50ZXh0Q29udGVudCA9IHM7Ci0gKgotICogKFRPRE86IHdyaXRlIHRoaXMg
aW4gUHl0aG9uIG9yIHNvbWV0aGluZyBzbyB0aGF0IGl0IGNhbiBiZSBkb25lIGZyb20gdGhlCi0g
KiBjb21tYW5kIGxpbmUgaW5zdGVhZC4pCi0gKgotICogT25jZSB5b3UgaGF2ZSB0aGF0LCBwdXQg
aXQgaW4geW91ciBzY3JpcHQgc29tZWhvdy4gIFRoZSBlYXNpZXN0IHdheSBpcyB0bwotICogZW1i
ZWQgaXQgbGl0ZXJhbGx5IGluIGFuIEhUTUwgZmlsZSB3aXRoIDxzY3JpcHQgdHlwZT10ZXh0L3Bs
YWluPiBvciBzaW1pbGFyLAotICogc28gdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBkbyBhbnkgZXNj
YXBpbmcuICBBbm90aGVyIHBvc3NpYmlsaXR5IGlzIHRvIHB1dCBpdAotICogaW4gYSBzZXBhcmF0
ZSAuaWRsIGZpbGUgdGhhdCdzIGZldGNoZWQgdmlhIFhIUiBvciBzaW1pbGFyLiAgU2FtcGxlIHVz
YWdlOgotICoKLSAqICAgdmFyIGlkbF9hcnJheSA9IG5ldyBJZGxBcnJheSgpOwotICogICBpZGxf
YXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBOb2RlIHsgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBub2RlTmFtZTsgfTsiKTsKLSAqICAgaWRsX2FycmF5LmFkZF9pZGxzKCJp
bnRlcmZhY2UgRG9jdW1lbnQgOiBOb2RlIHsgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBV
Ukw7IH07Iik7Ci0gKiAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7RG9jdW1lbnQ6IFsiZG9jdW1l
bnQiXX0pOwotICogICBpZGxfYXJyYXkudGVzdCgpOwotICoKLSAqIFRoaXMgdGVzdHMgdGhhdCB3
aW5kb3cuRG9jdW1lbnQgZXhpc3RzIGFuZCBtZWV0cyBhbGwgdGhlIHJlcXVpcmVtZW50cyBvZgot
ICogV2ViSURMLiAgSXQgYWxzbyB0ZXN0cyB0aGF0IHdpbmRvdy5kb2N1bWVudCAodGhlIHJlc3Vs
dCBvZiBldmFsdWF0aW5nIHRoZQotICogc3RyaW5nICJkb2N1bWVudCIpIGhhcyBVUkwgYW5kIG5v
ZGVOYW1lIHByb3BlcnRpZXMgdGhhdCBiZWhhdmUgYXMgdGhleQotICogc2hvdWxkLCBhbmQgb3Ro
ZXJ3aXNlIG1lZXRzIFdlYklETCdzIHJlcXVpcmVtZW50cyBmb3IgYW4gb2JqZWN0IHdob3NlCi0g
KiBwcmltYXJ5IGludGVyZmFjZSBpcyBEb2N1bWVudC4gIEl0IGRvZXMgbm90IHRlc3QgdGhhdCB3
aW5kb3cuTm9kZSBleGlzdHMsCi0gKiB3aGljaCBpcyB3aGF0IHlvdSB3YW50IGlmIHRoZSBOb2Rl
IGludGVyZmFjZSBpcyBhbHJlYWR5IHRlc3RlZCBpbiBzb21lIG90aGVyCi0gKiBzcGVjaWZpY2F0
aW9uJ3Mgc3VpdGUgYW5kIHlvdXIgc3BlY2lmaWNhdGlvbiBvbmx5IGV4dGVuZHMgb3IgcmVmZXJz
IHRvIGl0LgotICogT2YgY291cnNlLCBlYWNoIElETCBzdHJpbmcgY2FuIGRlZmluZSBtYW55IGRp
ZmZlcmVudCB0aGluZ3MsIGFuZCBjYWxscyB0bwotICogYWRkX29iamVjdHMoKSBjYW4gcmVnaXN0
ZXIgbWFueSBkaWZmZXJlbnQgb2JqZWN0cyBmb3IgZGlmZmVyZW50IGludGVyZmFjZXM6Ci0gKiB0
aGlzIGlzIGEgdmVyeSBzaW1wbGUgZXhhbXBsZS4KLSAqCi0gKiBUT0RPOiBXcml0ZSBhc3NlcnRf
d3JpdGFibGUsIGFzc2VydF9lbnVtZXJhYmxlLCBhc3NlcnRfY29uZmlndXJhYmxlIGFuZAotICog
dGhlaXIgaW52ZXJzZXMsIGFuZCB1c2UgdGhvc2UgaW5zdGVhZCBvZiBqdXN0IGNoZWNraW5nCi0g
KiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuCi0gKgotICogPT0gUHVibGljIG1ldGhvZHMgb2Yg
SWRsQXJyYXkgPT0KLSAqCi0gKiBJZGxBcnJheSBvYmplY3RzIGNhbiBiZSBvYnRhaW5lZCB3aXRo
IG5ldyBJZGxBcnJheSgpLiAgQW55dGhpbmcgbm90Ci0gKiBkb2N1bWVudGVkIGluIHRoaXMgc2Vj
dGlvbiBzaG91bGQgYmUgY29uc2lkZXJlZCBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsCi0gKiBh
bmQgb3V0c2lkZSBjYWxsZXJzIHNob3VsZCBub3QgdXNlIGl0LgotICoKLSAqIGFkZF9pZGxzKGlk
bF9zdHJpbmcpOgotICogICBQYXJzZXMgaWRsX3N0cmluZyAodGhyb3dpbmcgb24gcGFyc2UgZXJy
b3IpIGFuZCBhZGRzIHRoZSByZXN1bHRzIHRvIHRoZQotICogICBJZGxBcnJheS4gIEFsbCB0aGUg
ZGVmaW5pdGlvbnMgd2lsbCBiZSB0ZXN0ZWQgd2hlbiB5b3UgcnVuIHRlc3QoKS4gIElmCi0gKiAg
IHNvbWUgb2YgdGhlIGRlZmluaXRpb25zIHJlZmVyIHRvIG90aGVyIGRlZmluaXRpb25zLCB0aG9z
ZSBtdXN0IGJlIHByZXNlbnQKLSAqICAgdG9vLiAgRm9yIGluc3RhbmNlLCBpZiBpZGxfc3RyaW5n
IHNheXMgdGhhdCBEb2N1bWVudCBpbmhlcml0cyBmcm9tIE5vZGUsCi0gKiAgIHRoZSBOb2RlIGlu
dGVyZmFjZSBtdXN0IGFsc28gaGF2ZSBiZWVuIHByb3ZpZGVkIGluIHNvbWUgY2FsbCB0byBhZGRf
aWRscygpCi0gKiAgIG9yIGFkZF91bnRlc3RlZF9pZGxzKCkuCi0gKgotICogYWRkX3VudGVzdGVk
X2lkbHMoaWRsX3N0cmluZyk6Ci0gKiAgIExpa2UgYWRkX2lkbHMoKSwgYnV0IHRoZSBkZWZpbml0
aW9ucyB3aWxsIG5vdCBiZSB0ZXN0ZWQuICBJZiBhbiB1bnRlc3RlZAotICogICBpbnRlcmZhY2Ug
aXMgYWRkZWQgYW5kIHRoZW4gZXh0ZW5kZWQgd2l0aCBhIHRlc3RlZCBwYXJ0aWFsIGludGVyZmFj
ZSwgdGhlCi0gKiAgIG1lbWJlcnMgb2YgdGhlIHBhcnRpYWwgaW50ZXJmYWNlIHdpbGwgc3RpbGwg
YmUgdGVzdGVkLiAgQWxzbywgYWxsIHRoZQotICogICBtZW1iZXJzIHdpbGwgc3RpbGwgYmUgdGVz
dGVkIGZvciBvYmplY3RzIGFkZGVkIHdpdGggYWRkX29iamVjdHMoKSwgYmVjYXVzZQotICogICB5
b3UgcHJvYmFibHkgd2FudCB0byB0ZXN0IHRoYXQgKGZvciBpbnN0YW5jZSkgd2luZG93LmRvY3Vt
ZW50IGhhcyBhbGwgdGhlCi0gKiAgIHByb3BlcnRpZXMgZnJvbSBOb2RlLCBub3QganVzdCBEb2N1
bWVudCwgZXZlbiBpZiB0aGUgTm9kZSBpbnRlcmZhY2UgaXRzZWxmCi0gKiAgIGlzIHRlc3RlZCBp
biBhIGRpZmZlcmVudCB0ZXN0IHN1aXRlLgotICoKLSAqIGFkZF9vYmplY3RzKGRpY3QpOgotICog
ICBkaWN0IHNob3VsZCBiZSBhbiBvYmplY3Qgd2hvc2Uga2V5cyBhcmUgdGhlIG5hbWVzIG9mIGlu
dGVyZmFjZXMgb3IKLSAqICAgZXhjZXB0aW9ucywgYW5kIHdob3NlIHZhbHVlcyBhcmUgYXJyYXlz
IG9mIHN0cmluZ3MuICBXaGVuIGFuIGludGVyZmFjZSBvcgotICogICBleGNlcHRpb24gaXMgdGVz
dGVkLCBldmVyeSBzdHJpbmcgcmVnaXN0ZXJlZCBmb3IgaXQgd2l0aCBhZGRfb2JqZWN0cygpCi0g
KiAgIHdpbGwgYmUgZXZhbHVhdGVkLCBhbmQgdGVzdHMgd2lsbCBiZSBydW4gb24gdGhlIHJlc3Vs
dCB0byB2ZXJpZnkgdGhhdCBpdAotICogICBjb3JyZWN0bHkgaW1wbGVtZW50cyB0aGF0IGludGVy
ZmFjZSBvciBleGNlcHRpb24uICBUaGlzIGlzIHRoZSBvbmx5IHdheSB0bwotICogICB0ZXN0IGFu
eXRoaW5nIGFib3V0IFtOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlcywgYW5kIHRoZXJlIGFy
ZSBtYW55Ci0gKiAgIHRlc3RzIHRoYXQgY2FuJ3QgYmUgcnVuIG9uIGFueSBpbnRlcmZhY2Ugd2l0
aG91dCBhbiBvYmplY3QgdG8gZmlkZGxlIHdpdGguCi0gKgotICogICBUaGUgaW50ZXJmYWNlIGhh
cyB0byBiZSB0aGUgKnByaW1hcnkqIGludGVyZmFjZSBvZiBhbGwgdGhlIG9iamVjdHMKLSAqICAg
cHJvdmlkZWQuICBGb3IgZXhhbXBsZSwgZG9uJ3QgcGFzcyB7Tm9kZTogWyJkb2N1bWVudCJdfSwg
YnV0IHJhdGhlcgotICogICB7RG9jdW1lbnQ6IFsiZG9jdW1lbnQiXX0uICBBc3N1bWluZyB0aGUg
RG9jdW1lbnQgaW50ZXJmYWNlIHdhcyBkZWNsYXJlZCB0bwotICogICBpbmhlcml0IGZyb20gTm9k
ZSwgdGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgdGVzdCB0aGF0IGRvY3VtZW50IGltcGxlbWVudHMK
LSAqICAgdGhlIE5vZGUgaW50ZXJmYWNlIHRvby4KLSAqCi0gKiAgIFdhcm5pbmc6IG1ldGhvZHMg
d2lsbCBiZSBjYWxsZWQgb24gYW55IHByb3ZpZGVkIG9iamVjdHMsIGluIGEgbWFubmVyIHRoYXQK
LSAqICAgV2ViSURMIHJlcXVpcmVzIGJlIHNhZmUuICBGb3IgaW5zdGFuY2UsIGlmIGEgbWV0aG9k
IGhhcyBtYW5kYXRvcnkKLSAqICAgYXJndW1lbnRzLCB0aGUgdGVzdCBzdWl0ZSB3aWxsIHRyeSBj
YWxsaW5nIGl0IHdpdGggdG9vIGZldyBhcmd1bWVudHMgdG8KLSAqICAgc2VlIGlmIGl0IHRocm93
cyBhbiBleGNlcHRpb24uICBJZiBhbiBpbXBsZW1lbnRhdGlvbiBpbmNvcnJlY3RseSBydW5zIHRo
ZQotICogICBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRocm93aW5nLCB0aGlzIG1pZ2h0IGhhdmUgc2lk
ZSBlZmZlY3RzLCBwb3NzaWJseSBldmVuCi0gKiAgIHByZXZlbnRpbmcgdGhlIHRlc3Qgc3VpdGUg
ZnJvbSBydW5uaW5nIGNvcnJlY3RseS4KLSAqCi0gKiBwcmV2ZW50X211bHRpcGxlX3Rlc3Rpbmco
bmFtZSk6Ci0gKiAgIFRoaXMgaXMgYSBuaWNoZSBtZXRob2QgZm9yIHVzZSBpbiBjYXNlIHlvdSdy
ZSB0ZXN0aW5nIG1hbnkgb2JqZWN0cyB0aGF0Ci0gKiAgIGltcGxlbWVudCB0aGUgc2FtZSBpbnRl
cmZhY2VzLCBhbmQgZG9uJ3Qgd2FudCB0byByZXRlc3QgdGhlIHNhbWUKLSAqICAgaW50ZXJmYWNl
cyBldmVyeSBzaW5nbGUgdGltZS4gIEZvciBpbnN0YW5jZSwgSFRNTCBkZWZpbmVzIG1hbnkgaW50
ZXJmYWNlcwotICogICB0aGF0IGFsbCBpbmhlcml0IGZyb20gSFRNTEVsZW1lbnQsIHNvIHRoZSBI
VE1MIHRlc3Qgc3VpdGUgaGFzIHNvbWV0aGluZwotICogICBsaWtlCi0gKiAgICAgLmFkZF9vYmpl
Y3RzKHsKLSAqICAgICAgICAgSFRNTEh0bWxFbGVtZW50OiBbJ2RvY3VtZW50LmRvY3VtZW50RWxl
bWVudCddLAotICogICAgICAgICBIVE1MSGVhZEVsZW1lbnQ6IFsnZG9jdW1lbnQuaGVhZCddLAot
ICogICAgICAgICBIVE1MQm9keUVsZW1lbnQ6IFsnZG9jdW1lbnQuYm9keSddLAotICogICAgICAg
ICAuLi4KLSAqICAgICB9KQotICogICBhbmQgc28gb24gZm9yIGRvemVucyBvZiBlbGVtZW50IHR5
cGVzLiAgVGhpcyB3b3VsZCBtZWFuIHRoYXQgaXQgd291bGQKLSAqICAgcmV0ZXN0IHRoYXQgZWFj
aCBhbmQgZXZlcnkgb25lIG9mIHRob3NlIGVsZW1lbnRzIGltcGxlbWVudHMgSFRNTEVsZW1lbnQs
Ci0gKiAgIEVsZW1lbnQsIGFuZCBOb2RlLCB3aGljaCB3b3VsZCBiZSB0aG91c2FuZHMgb2YgYmFz
aWNhbGx5IHJlZHVuZGFudCB0ZXN0cy4KLSAqICAgVGhlIHRlc3Qgc3VpdGUgdGhlcmVmb3JlIGNh
bGxzIHByZXZlbnRfbXVsdGlwbGVfdGVzdGluZygiSFRNTEVsZW1lbnQiKS4KLSAqICAgVGhpcyBt
ZWFucyB0aGF0IG9uY2Ugb25lIG9iamVjdCBoYXMgYmVlbiB0ZXN0ZWQgdG8gaW1wbGVtZW50IEhU
TUxFbGVtZW50Ci0gKiAgIGFuZCBpdHMgYW5jZXN0b3JzLCBubyBvdGhlciBvYmplY3Qgd2lsbCBi
ZS4gIFRodXMgaW4gdGhlIGV4YW1wbGUgY29kZQotICogICBhYm92ZSwgdGhlIGhhcm5lc3Mgd291
bGQgdGVzdCB0aGF0IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBjb3JyZWN0bHkKLSAqICAgaW1w
bGVtZW50cyBIVE1MSHRtbEVsZW1lbnQsIEhUTUxFbGVtZW50LCBFbGVtZW50LCBhbmQgTm9kZTsg
YnV0Ci0gKiAgIGRvY3VtZW50LmhlYWQgd291bGQgb25seSBiZSB0ZXN0ZWQgZm9yIEhUTUxIZWFk
RWxlbWVudCwgYW5kIHNvIG9uIGZvcgotICogICBmdXJ0aGVyIG9iamVjdHMuCi0gKgotICogdGVz
dCgpOgotICogICBSdW4gYWxsIHRlc3RzLiAgVGhpcyBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIHlv
dSd2ZSBjYWxsZWQgYWxsIG90aGVyCi0gKiAgIG1ldGhvZHMgdG8gYWRkIElETHMgYW5kIG9iamVj
dHMuCi0gKi8KLQotLyoqCi0gKiBOb3RlcyBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGVkaXQgdGhp
cyBmaWxlIChub3QganVzdCB1c2UgaXQgYXMgYSBsaWJyYXJ5KToKLSAqCi0gKiBNb3N0IG9mIHRo
ZSBpbnRlcmVzdGluZyBzdHVmZiBoYXBwZW5zIGluIHRoZSBkZXJpdmVkIGNsYXNzZXMgb2YgSWRs
T2JqZWN0LAotICogZXNwZWNpYWxseSBJZGxJbnRlcmZhY2UuICBUaGUgZW50cnkgcG9pbnQgZm9y
IGFsbCBJZGxPYmplY3RzIGlzIC50ZXN0KCksCi0gKiB3aGljaCBpcyBjYWxsZWQgYnkgSWRsQXJy
YXkudGVzdCgpLiAgQW4gSWRsT2JqZWN0IGlzIGNvbmNlcHR1YWxseSBqdXN0Ci0gKiAidGhpbmcg
d2Ugd2FudCB0byBydW4gdGVzdHMgb24iLCBhbmQgYW4gSWRsQXJyYXkgaXMgYW4gYXJyYXkgb2Yg
SWRsT2JqZWN0cwotICogd2l0aCBzb21lIGFkZGl0aW9uYWwgZGF0YSB0aHJvd24gaW4uCi0gKgot
ICogVGhlIG9iamVjdCBtb2RlbCBpcyBiYXNlZCBvbiB3aGF0IFdlYklETFBhcnNlci5qcyBwcm9k
dWNlcywgd2hpY2ggaXMgaW4gdHVybgotICogYmFzZWQgb24gaXRzIHBlZ2pzIGdyYW1tYXIuICBJ
ZiB5b3Ugd2FudCB0byBmaWd1cmUgb3V0IHdoYXQgcHJvcGVydGllcyBhbgotICogb2JqZWN0IHdp
bGwgaGF2ZSBmcm9tIFdlYklETFBhcnNlci5qcywgdGhlIGJlc3Qgd2F5IGlzIHRvIGxvb2sgYXQg
dGhlCi0gKiBncmFtbWFyOgotICoKLSAqICAgaHR0cHM6Ly9naXRodWIuY29tL2Rhcm9iaW4vd2Vi
aWRsLmpzL2Jsb2IvbWFzdGVyL2xpYi9ncmFtbWFyLnBlZwotICoKLSAqIFNvIGZvciBpbnN0YW5j
ZToKLSAqCi0gKiAgIC8vIGludGVyZmFjZSBkZWZpbml0aW9uCi0gKiAgIGludGVyZmFjZQotICog
ICAgICAgPSAgIGV4dEF0dHJzOmV4dGVuZGVkQXR0cmlidXRlTGlzdD8gUz8gImludGVyZmFjZSIg
UyBuYW1lOmlkZW50aWZpZXIgdyBoZXJpdDppZkluaGVyaXRhbmNlPyB3ICJ7IiB3IG1lbTppZk1l
bWJlciogdyAifSIgdyAiOyIgdwotICogICAgICAgICAgIHsgcmV0dXJuIHsgdHlwZTogImludGVy
ZmFjZSIsIG5hbWU6IG5hbWUsIGluaGVyaXRhbmNlOiBoZXJpdCwgbWVtYmVyczogbWVtLCBleHRB
dHRyczogZXh0QXR0cnMgfTsgfQotICoKLSAqIFRoaXMgbWVhbnMgdGhhdCBhbiAiaW50ZXJmYWNl
IiBvYmplY3Qgd2lsbCBoYXZlIGEgLnR5cGUgcHJvcGVydHkgZXF1YWwgdG8KLSAqIHRoZSBzdHJp
bmcgImludGVyZmFjZSIsIGEgLm5hbWUgcHJvcGVydHkgZXF1YWwgdG8gdGhlIGlkZW50aWZpZXIg
dGhhdCB0aGUKLSAqIHBhcnNlciBmb3VuZCwgYW4gLmluaGVyaXRhbmNlIHByb3BlcnR5IGVxdWFs
IHRvIGVpdGhlciBudWxsIG9yIHRoZSByZXN1bHQgb2YKLSAqIHRoZSAiaWZJbmhlcml0YW5jZSIg
cHJvZHVjdGlvbiBmb3VuZCBlbHNld2hlcmUgaW4gdGhlIGdyYW1tYXIsIGFuZCBzbyBvbi4KLSAq
IEFmdGVyIGVhY2ggZ3JhbW1hdGljYWwgcHJvZHVjdGlvbiBpcyBhIEphdmFTY3JpcHQgZnVuY3Rp
b24gaW4gY3VybHkgYnJhY2VzCi0gKiB0aGF0IGdldHMgY2FsbGVkIHdpdGggc3VpdGFibGUgYXJn
dW1lbnRzIGFuZCByZXR1cm5zIHNvbWUgSmF2YVNjcmlwdCB2YWx1ZS4KLSAqCi0gKiAoTm90ZSB0
aGF0IHRoZSB2ZXJzaW9uIG9mIFdlYklETFBhcnNlci5qcyB3ZSB1c2UgbWlnaHQgc29tZXRpbWVz
IGJlCi0gKiBvdXQtb2YtZGF0ZSBvciBmb3JrZWQuKQotICoKLSAqIFRoZSBtZW1iZXJzIGFuZCBt
ZXRob2RzIG9mIHRoZSBjbGFzc2VzIGRlZmluZWQgYnkgdGhpcyBmaWxlIGFyZSBhbGwgYXQgbGVh
c3QKLSAqIGJyaWVmbHkgZG9jdW1lbnRlZCwgaG9wZWZ1bGx5LgotICovCi0idXNlIHN0cmljdCI7
Ci0oZnVuY3Rpb24oKXsKLS8vLyBJZGxBcnJheSAvLy8KLS8vIEVudHJ5IHBvaW50Ci13aW5kb3cu
SWRsQXJyYXkgPSBmdW5jdGlvbigpCi0vL0B7Ci17Ci0gICAgLyoqCi0gICAgICogQSBtYXAgZnJv
bSBzdHJpbmdzIHRvIHRoZSBjb3JyZXNwb25kaW5nIG5hbWVkIElkbE9iamVjdCwgc3VjaCBhcwot
ICAgICAqIElkbEludGVyZmFjZSBvciBJZGxFeGNlcHRpb24uICBUaGVzZSBhcmUgdGhlIHRoaW5n
cyB0aGF0IHRlc3QoKSB3aWxsIHJ1bgotICAgICAqIHRlc3RzIG9uLgotICAgICAqLwotICAgIHRo
aXMubWVtYmVycyA9IHt9OwotCi0gICAgLyoqCi0gICAgICogQSBtYXAgZnJvbSBzdHJpbmdzIHRv
IGFycmF5cyBvZiBzdHJpbmdzLiAgVGhlIGtleXMgYXJlIGludGVyZmFjZSBvcgotICAgICAqIGV4
Y2VwdGlvbiBuYW1lcywgYW5kIGFyZSBleHBlY3RlZCB0byBhbHNvIGV4aXN0IGFzIGtleXMgaW4g
dGhpcy5tZW1iZXJzCi0gICAgICogKG90aGVyd2lzZSB0aGV5J2xsIGJlIGlnbm9yZWQpLiAgVGhp
cyBpcyBwb3B1bGF0ZWQgYnkgYWRkX29iamVjdHMoKSAtLQotICAgICAqIHNlZSBkb2N1bWVudGF0
aW9uIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZS4gIFRoZSBhY3R1YWwgdGVzdHMgd2lsbCBiZQot
ICAgICAqIHJ1biBieSBjYWxsaW5nIHRoaXMubWVtYmVyc1tuYW1lXS50ZXN0X29iamVjdChvYmop
IGZvciBlYWNoIG9iaiBpbgotICAgICAqIHRoaXMub2JqZWN0c1tuYW1lXS4gIG9iaiBpcyBhIHN0
cmluZyB0aGF0IHdpbGwgYmUgZXZhbCdkIHRvIHByb2R1Y2UgYQotICAgICAqIEphdmFTY3JpcHQg
dmFsdWUsIHdoaWNoIGlzIHN1cHBvc2VkIHRvIGJlIGFuIG9iamVjdCBpbXBsZW1lbnRpbmcgdGhl
Ci0gICAgICogZ2l2ZW4gSWRsT2JqZWN0IChpbnRlcmZhY2UsIGV4Y2VwdGlvbiwgZXRjLikuCi0g
ICAgICovCi0gICAgdGhpcy5vYmplY3RzID0ge307Ci0KLSAgICAvKioKLSAgICAgKiBXaGVuIGFk
ZGluZyBtdWx0aXBsZSBjb2xsZWN0aW9ucyBvZiBJRExzIG9uZSBhdCBhIHRpbWUsIGFuIGVhcmxp
ZXIgb25lCi0gICAgICogbWlnaHQgY29udGFpbiBhIHBhcnRpYWwgaW50ZXJmYWNlIG9yIGltcGxl
bWVudHMgc3RhdGVtZW50IHRoYXQgZGVwZW5kcwotICAgICAqIG9uIGEgbGF0ZXIgb25lLiAgU2F2
ZSB0aGVzZSB1cCBhbmQgaGFuZGxlIHRoZW0gcmlnaHQgYmVmb3JlIHdlIHJ1bgotICAgICAqIHRl
c3RzLgotICAgICAqCi0gICAgICogLnBhcnRpYWxzIGlzIHNpbXBseSBhbiBhcnJheSBvZiBvYmpl
Y3RzIGZyb20gV2ViSURMUGFyc2VyLmpzJwotICAgICAqICJwYXJ0aWFsaW50ZXJmYWNlIiBwcm9k
dWN0aW9uLiAgLmltcGxlbWVudHMgbWFwcyBzdHJpbmdzIHRvIGFycmF5cyBvZgotICAgICAqIHN0
cmluZ3MsIHN1Y2ggdGhhdAotICAgICAqCi0gICAgICogICBBIGltcGxlbWVudHMgQjsKLSAgICAg
KiAgIEEgaW1wbGVtZW50cyBDOwotICAgICAqICAgRCBpbXBsZW1lbnRzIEU7Ci0gICAgICoKLSAg
ICAgKiByZXN1bHRzIGluIHsgQTogWyJCIiwgIkMiXSwgRDogWyJFIl0gfS4KLSAgICAgKi8KLSAg
ICB0aGlzLnBhcnRpYWxzID0gW107Ci0gICAgdGhpcy5pbXBsZW1lbnRzID0ge307Ci19Ci0KLS8v
QH0KLUlkbEFycmF5LnByb3RvdHlwZS5hZGRfaWRscyA9IGZ1bmN0aW9uKHJhd19pZGxzKQotLy9A
ewotewotICAgIC8qKiBFbnRyeSBwb2ludC4gIFNlZSBkb2N1bWVudGF0aW9uIGF0IGJlZ2lubmlu
ZyBvZiBmaWxlLiAqLwotICAgIHRoaXMuaW50ZXJuYWxfYWRkX2lkbHMoV2ViSURMUGFyc2VyLnBh
cnNlKHJhd19pZGxzKSk7Ci19OwotCi0vL0B9Ci1JZGxBcnJheS5wcm90b3R5cGUuYWRkX3VudGVz
dGVkX2lkbHMgPSBmdW5jdGlvbihyYXdfaWRscykKLS8vQHsKLXsKLSAgICAvKiogRW50cnkgcG9p
bnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KLSAgICB2YXIg
cGFyc2VkX2lkbHMgPSBXZWJJRExQYXJzZXIucGFyc2UocmF3X2lkbHMpOwotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcGFyc2VkX2lkbHMubGVuZ3RoOyBpKyspCi0gICAgewotICAgICAgICBwYXJz
ZWRfaWRsc1tpXS51bnRlc3RlZCA9IHRydWU7Ci0gICAgICAgIGlmICgibWVtYmVycyIgaW4gcGFy
c2VkX2lkbHNbaV0pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
cGFyc2VkX2lkbHNbaV0ubWVtYmVycy5sZW5ndGg7IGorKykKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBwYXJzZWRfaWRsc1tpXS5tZW1iZXJzW2pdLnVudGVzdGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICB0aGlzLmludGVybmFsX2FkZF9pZGxz
KHBhcnNlZF9pZGxzKTsKLX0KLQotLy9AfQotSWRsQXJyYXkucHJvdG90eXBlLmludGVybmFsX2Fk
ZF9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMpCi0vL0B7Ci17Ci0gICAgLyoqCi0gICAgICog
SW50ZXJuYWwgaGVscGVyIGNhbGxlZCBieSBhZGRfaWRscygpIGFuZCBhZGRfdW50ZXN0ZWRfaWRs
cygpLgotICAgICAqIHBhcnNlZF9pZGxzIGlzIGFuIGFycmF5IG9mIG9iamVjdHMgdGhhdCBjb21l
IGZyb20gV2ViSURMUGFyc2VyLmpzJ3MKLSAgICAgKiAiZGVmaW5pdGlvbnMiIHByb2R1Y3Rpb24u
ICBUaGUgYWRkX3VudGVzdGVkX2lkbHMoKSBlbnRyeSBwb2ludAotICAgICAqIGFkZGl0aW9uYWxs
eSBzZXRzIGFuIC51bnRlc3RlZCBwcm9wZXJ0eSBvbiBlYWNoIG9iamVjdCAoYW5kIGl0cwotICAg
ICAqIC5tZW1iZXJzKSBzbyB0aGF0IHRoZXknbGwgYmUgc2tpcHBlZCBieSB0ZXN0KCkgLS0gdGhl
eSdsbCBvbmx5IGJlCi0gICAgICogdXNlZCBmb3IgYmFzZSBpbnRlcmZhY2VzIG9mIHRlc3RlZCBp
bnRlcmZhY2VzLCByZXR1cm4gdHlwZXMsIGV0Yy4KLSAgICAgKi8KLSAgICBwYXJzZWRfaWRscy5m
b3JFYWNoKGZ1bmN0aW9uKHBhcnNlZF9pZGwpCi0gICAgewotICAgICAgICBpZiAocGFyc2VkX2lk
bC50eXBlID09ICJwYXJ0aWFsaW50ZXJmYWNlIikKLSAgICAgICAgewotICAgICAgICAgICAgdGhp
cy5wYXJ0aWFscy5wdXNoKHBhcnNlZF9pZGwpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHBhcnNlZF9pZGwudHlwZSA9PSAiaW1wbGVtZW50cyIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmICghKHBhcnNlZF9pZGwudGFyZ2V0IGluIHRoaXMuaW1wbGVt
ZW50cykpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpcy5pbXBsZW1lbnRzW3Bh
cnNlZF9pZGwudGFyZ2V0XSA9IFtdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5p
bXBsZW1lbnRzW3BhcnNlZF9pZGwudGFyZ2V0XS5wdXNoKHBhcnNlZF9pZGwuaW1wbGVtZW50cyk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBwYXJzZWRfaWRsLmFy
cmF5ID0gdGhpczsKLSAgICAgICAgaWYgKHBhcnNlZF9pZGwubmFtZSBpbiB0aGlzLm1lbWJlcnMp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93ICJEdXBsaWNhdGUgaWRlbnRpZmllciAiICsg
cGFyc2VkX2lkbC5uYW1lOwotICAgICAgICB9Ci0gICAgICAgIHN3aXRjaChwYXJzZWRfaWRsLnR5
cGUpCi0gICAgICAgIHsKLSAgICAgICAgY2FzZSAiaW50ZXJmYWNlIjoKLSAgICAgICAgICAgIHRo
aXMubWVtYmVyc1twYXJzZWRfaWRsLm5hbWVdID0gbmV3IElkbEludGVyZmFjZShwYXJzZWRfaWRs
KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgImV4Y2VwdGlvbiI6Ci0gICAg
ICAgICAgICB0aGlzLm1lbWJlcnNbcGFyc2VkX2lkbC5uYW1lXSA9IG5ldyBJZGxFeGNlcHRpb24o
cGFyc2VkX2lkbCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlICJkaWN0aW9u
YXJ5IjoKLSAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8gdGVzdCwgYnV0IHdlIG5lZWQgdGhlIGRp
Y3Rpb25hcnkgaW5mbyBhcm91bmQgZm9yIHR5cGUKLSAgICAgICAgICAgIC8vIGNoZWNrcwotICAg
ICAgICAgICAgdGhpcy5tZW1iZXJzW3BhcnNlZF9pZGwubmFtZV0gPSBuZXcgSWRsRGljdGlvbmFy
eShwYXJzZWRfaWRsKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgInR5cGVk
ZWYiOgotICAgICAgICAgICAgLy8gVE9ETwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAg
Y2FzZSAiZW51bSI6Ci0gICAgICAgICAgICAvLyBUT0RPCi0gICAgICAgICAgICBicmVhazsKLQot
ICAgICAgICBjYXNlICJjYWxsYmFjayI6Ci0gICAgICAgICAgICAvLyBUT0RPCi0gICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgcGFyc2VkX2lk
bC5uYW1lICsgIjogIiArIHBhcnNlZF9pZGwudHlwZSArICIgbm90IHlldCBzdXBwb3J0ZWQiOwot
ICAgICAgICB9Ci0gICAgfS5iaW5kKHRoaXMpKTsKLX0KLQotLy9AfQotSWRsQXJyYXkucHJvdG90
eXBlLmFkZF9vYmplY3RzID0gZnVuY3Rpb24oZGljdCkKLS8vQHsKLXsKLSAgICAvKiogRW50cnkg
cG9pbnQuICBTZWUgZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KLSAgICBm
b3IgKHZhciBrIGluIGRpY3QpCi0gICAgewotICAgICAgICBpZiAoayBpbiB0aGlzLm9iamVjdHMp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMub2JqZWN0c1trXSA9IHRoaXMub2JqZWN0c1tr
XS5jb25jYXQoZGljdFtrXSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0g
ICAgICAgICAgICB0aGlzLm9iamVjdHNba10gPSBkaWN0W2tdOwotICAgICAgICB9Ci0gICAgfQot
fQotCi0vL0B9Ci1JZGxBcnJheS5wcm90b3R5cGUucHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0g
ZnVuY3Rpb24obmFtZSkKLS8vQHsKLXsKLSAgICAvKiogRW50cnkgcG9pbnQuICBTZWUgZG9jdW1l
bnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KLSAgICB0aGlzLm1lbWJlcnNbbmFtZV0u
cHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0gdHJ1ZTsKLX0KLQotLy9AfQotSWRsQXJyYXkucHJv
dG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzID0gZnVuY3Rpb24oaW50ZXJmYWNlX25h
bWUpCi0vL0B7Ci17Ci0gICAgLyoqCi0gICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciB0ZXN0KCku
ICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVudAotICAgICAqIGludGVy
ZmFjZV9uYW1lLCBzbyBpZiB0aGUgSURMIGNvbnRhaW5zCi0gICAgICoKLSAgICAgKiAgIEEgaW1w
bGVtZW50cyBCOwotICAgICAqICAgQiBpbXBsZW1lbnRzIEM7Ci0gICAgICogICBCIGltcGxlbWVu
dHMgRDsKLSAgICAgKgotICAgICAqIHRoZW4gcmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMoIkEi
KSBzaG91bGQgcmV0dXJuIFsiQiIsICJDIiwgIkQiXS4KLSAgICAgKi8KLSAgICB2YXIgcmV0ID0g
dGhpcy5pbXBsZW1lbnRzW2ludGVyZmFjZV9uYW1lXTsKLSAgICBpZiAocmV0ID09PSB1bmRlZmlu
ZWQpCi0gICAgewotICAgICAgICByZXR1cm4gW107Ci0gICAgfQotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5pbXBsZW1lbnRzW2ludGVyZmFjZV9uYW1lXS5sZW5ndGg7IGkrKykKLSAgICB7
Ci0gICAgICAgIHJldCA9IHJldC5jb25jYXQodGhpcy5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50
cyhyZXRbaV0pKTsKLSAgICAgICAgaWYgKHJldC5pbmRleE9mKHJldFtpXSkgIT0gcmV0Lmxhc3RJ
bmRleE9mKHJldFtpXSkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93ICJDaXJjdWxhciBp
bXBsZW1lbnRzIHN0YXRlbWVudHMgaW52b2x2aW5nICIgKyByZXRbaV07Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotLy9AfQotSWRsQXJyYXkucHJvdG90eXBlLnRlc3Qg
PSBmdW5jdGlvbigpCi0vL0B7Ci17Ci0gICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50
YXRpb24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCi0KLSAgICAvLyBGaXJzdCBtZXJnZSBpbiBh
bGwgdGhlIHBhcnRpYWwgaW50ZXJmYWNlcyBhbmQgaW1wbGVtZW50cyBzdGF0ZW1lbnRzIHdlCi0g
ICAgLy8gZW5jb3VudGVyZWQuCi0gICAgdGhpcy5wYXJ0aWFscy5mb3JFYWNoKGZ1bmN0aW9uKHBh
cnNlZF9pZGwpCi0gICAgewotICAgICAgICBpZiAoIShwYXJzZWRfaWRsLm5hbWUgaW4gdGhpcy5t
ZW1iZXJzKQotICAgICAgICB8fCAhKHRoaXMubWVtYmVyc1twYXJzZWRfaWRsLm5hbWVdIGluc3Rh
bmNlb2YgSWRsSW50ZXJmYWNlKSkKLSAgICAgICAgewotICAgICAgICAgICAgdGhyb3cgIlBhcnRp
YWwgaW50ZXJmYWNlICIgKyBwYXJzZWRfaWRsLm5hbWUgKyAiIHdpdGggbm8gb3JpZ2luYWwgaW50
ZXJmYWNlIjsKLSAgICAgICAgfQotICAgICAgICBpZiAocGFyc2VkX2lkbC5leHRBdHRycykKLSAg
ICAgICAgewotICAgICAgICAgICAgcGFyc2VkX2lkbC5leHRBdHRycy5mb3JFYWNoKGZ1bmN0aW9u
KGV4dEF0dHIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW3Bh
cnNlZF9pZGwubmFtZV0uZXh0QXR0cnMucHVzaChleHRBdHRyKTsKLSAgICAgICAgICAgIH0uYmlu
ZCh0aGlzKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyc2VkX2lkbC5tZW1iZXJzLmZvckVhY2go
ZnVuY3Rpb24obWVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aGlzLm1lbWJlcnNbcGFy
c2VkX2lkbC5uYW1lXS5tZW1iZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1lbWJlcihtZW1iZXIp
KTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LmJpbmQodGhpcykpOwotICAgIHRoaXMu
cGFydGlhbHMgPSBbXTsKLQotICAgIGZvciAodmFyIGxocyBpbiB0aGlzLmltcGxlbWVudHMpCi0g
ICAgewotICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzKGxocykuZm9yRWFj
aChmdW5jdGlvbihyaHMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghKGxocyBpbiB0aGlz
Lm1lbWJlcnMpCi0gICAgICAgICAgICB8fCAhKHRoaXMubWVtYmVyc1tsaHNdIGluc3RhbmNlb2Yg
SWRsSW50ZXJmYWNlKQotICAgICAgICAgICAgfHwgIShyaHMgaW4gdGhpcy5tZW1iZXJzKQotICAg
ICAgICAgICAgfHwgISh0aGlzLm1lbWJlcnNbcmhzXSBpbnN0YW5jZW9mIElkbEludGVyZmFjZSkp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbGhzICsgIiBpbXBsZW1lbnRz
ICIgKyByaHMgKyAiLCBidXQgb25lIGlzIHVuZGVmaW5lZCBvciBub3QgYW4gaW50ZXJmYWNlIjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9y
RWFjaChmdW5jdGlvbihtZW1iZXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhp
cy5tZW1iZXJzW2xoc10ubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVy
KSk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICB9LmJpbmQodGhpcykpOwot
ICAgIH0KLSAgICB0aGlzLmltcGxlbWVudHMgPSB7fTsKLQotICAgIC8vIE5vdyBydW4gdGVzdCgp
IG9uIGV2ZXJ5IG1lbWJlciwgYW5kIHRlc3Rfb2JqZWN0KCkgZm9yIGV2ZXJ5IG9iamVjdC4KLSAg
ICBmb3IgKHZhciBuYW1lIGluIHRoaXMubWVtYmVycykKLSAgICB7Ci0gICAgICAgIHRoaXMubWVt
YmVyc1tuYW1lXS50ZXN0KCk7Ci0gICAgICAgIGlmIChuYW1lIGluIHRoaXMub2JqZWN0cykKLSAg
ICAgICAgewotICAgICAgICAgICAgdGhpcy5vYmplY3RzW25hbWVdLmZvckVhY2goZnVuY3Rpb24o
c3RyKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tuYW1lXS50
ZXN0X29iamVjdChzdHIpOwotICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgfQot
ICAgIH0KLX07Ci0KLS8vQH0KLUlkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1
bmN0aW9uKHZhbHVlLCB0eXBlKQotLy9AewotewotICAgIC8qKgotICAgICAqIEhlbHBlciBmdW5j
dGlvbiB0aGF0IHRlc3RzIHRoYXQgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgdHlwZSBhY2NvcmRp
bmcKLSAgICAgKiB0byB0aGUgcnVsZXMgb2YgV2ViSURMLiAgdmFsdWUgaXMgYW55IEphdmFTY3Jp
cHQgdmFsdWUsIGFuZCB0eXBlIGlzIGFuCi0gICAgICogb2JqZWN0IHByb2R1Y2VkIGJ5IFdlYklE
TFBhcnNlci5qcycgInR5cGUiIHByb2R1Y3Rpb24uICBUaGF0IHByb2R1Y3Rpb24KLSAgICAgKiBp
cyBmYWlybHkgZWxhYm9yYXRlIGR1ZSB0byB0aGUgY29tcGxleGl0eSBvZiBXZWJJREwncyB0eXBl
cywgc28gaXQncwotICAgICAqIGJlc3QgdG8gbG9vayBhdCB0aGUgZ3JhbW1hciB0byBmaWd1cmUg
b3V0IHdoYXQgcHJvcGVydGllcyBpdCBtaWdodCBoYXZlLgotICAgICAqLwotICAgIGlmICh0eXBl
LmlkbFR5cGUgPT0gImFueSIpCi0gICAgewotICAgICAgICAvLyBObyBhc3NlcnRpb25zIHRvIG1h
a2UKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0eXBlLm51bGxhYmxlICYmIHZh
bHVlID09PSBudWxsKQotICAgIHsKLSAgICAgICAgLy8gVGhpcyBpcyBmaW5lCi0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAodHlwZS5hcnJheSkKLSAgICB7Ci0gICAgICAgIC8vIFRP
RE86IG5vdCBzdXBwb3J0ZWQgeWV0Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
dHlwZS5zZXF1ZW5jZSkKLSAgICB7Ci0gICAgICAgIGFzc2VydF90cnVlKEFycmF5LmlzQXJyYXko
dmFsdWUpLCAiaXMgbm90IGFycmF5Iik7Ci0gICAgICAgIGlmICghdmFsdWUubGVuZ3RoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICAvLyBOb3RoaW5nIHdlIGNhbiBkby4KLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLmFzc2VydF90eXBlX2lzKHZhbHVlWzBdLCB0
eXBlLmlkbFR5cGUuaWRsVHlwZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0eXBl
ID0gdHlwZS5pZGxUeXBlOwotCi0gICAgc3dpdGNoKHR5cGUpCi0gICAgewotICAgICAgICBjYXNl
ICJ2b2lkIjoKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIHVuZGVmaW5lZCk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY2FzZSAiYm9vbGVhbiI6Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgImJvb2xlYW4iKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBjYXNlICJieXRlIjoKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
dHlwZW9mIHZhbHVlLCAibnVtYmVyIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVl
LCBNYXRoLmZsb29yKHZhbHVlKSwgIm5vdCBhbiBpbnRlZ2VyIik7Ci0gICAgICAgICAgICBhc3Nl
cnRfdHJ1ZSgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDw9IDEyNywgImJ5dGUgIiArIHZhbHVlICsg
IiBub3QgaW4gcmFuZ2UgWy0xMjgsIDEyN10iKTsKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBjYXNlICJvY3RldCI6Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1
ZSwgIm51bWJlciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgTWF0aC5mbG9v
cih2YWx1ZSksICJub3QgYW4gaW50ZWdlciIpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoMCA8
PSB2YWx1ZSAmJiB2YWx1ZSA8PSAyNTUsICJvY3RldCAiICsgdmFsdWUgKyAiIG5vdCBpbiByYW5n
ZSBbMCwgMjU1XSIpOwotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNhc2UgInNob3J0
IjoKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAibnVtYmVyIik7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBNYXRoLmZsb29yKHZhbHVlKSwgIm5vdCBh
biBpbnRlZ2VyIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZSgtMzI3NjggPD0gdmFsdWUgJiYg
dmFsdWUgPD0gMzI3NjcsICJzaG9ydCAiICsgdmFsdWUgKyAiIG5vdCBpbiByYW5nZSBbLTMyNzY4
LCAzMjc2N10iKTsKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjYXNlICJ1bnNpZ25l
ZCBzaG9ydCI6Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgIm51bWJl
ciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgTWF0aC5mbG9vcih2YWx1ZSks
ICJub3QgYW4gaW50ZWdlciIpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoMCA8PSB2YWx1ZSAm
JiB2YWx1ZSA8PSA2NTUzNSwgInVuc2lnbmVkIHNob3J0ICIgKyB2YWx1ZSArICIgbm90IGluIHJh
bmdlIFswLCA2NTUzNV0iKTsKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjYXNlICJs
b25nIjoKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAibnVtYmVyIik7
Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBNYXRoLmZsb29yKHZhbHVlKSwgIm5v
dCBhbiBpbnRlZ2VyIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZSgtMjE0NzQ4MzY0OCA8PSB2
YWx1ZSAmJiB2YWx1ZSA8PSAyMTQ3NDgzNjQ3LCAibG9uZyAiICsgdmFsdWUgKyAiIG5vdCBpbiBy
YW5nZSBbLTIxNDc0ODM2NDgsIDIxNDc0ODM2NDddIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgY2FzZSAidW5zaWduZWQgbG9uZyI6Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHR5cGVvZiB2YWx1ZSwgIm51bWJlciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1
ZSwgTWF0aC5mbG9vcih2YWx1ZSksICJub3QgYW4gaW50ZWdlciIpOwotICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoMCA8PSB2YWx1ZSAmJiB2YWx1ZSA8PSA0Mjk0OTY3Mjk1LCAidW5zaWduZWQgbG9u
ZyAiICsgdmFsdWUgKyAiIG5vdCBpbiByYW5nZSBbMCwgNDI5NDk2NzI5NV0iKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBjYXNlICJsb25nIGxvbmciOgotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2YgdmFsdWUsICJudW1iZXIiKTsKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBjYXNlICJ1bnNpZ25lZCBsb25nIGxvbmciOgotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh0eXBlb2YgdmFsdWUsICJudW1iZXIiKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVl
KDAgPD0gdmFsdWUsICJ1bnNpZ25lZCBsb25nIGxvbmcgaXMgbmVnYXRpdmUiKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBjYXNlICJmbG9hdCI6Ci0gICAgICAgIGNhc2UgImRvdWJs
ZSI6Ci0gICAgICAgICAgICAvLyBUT0RPOiBkaXN0aW5ndWlzaCB0aGVzZSBjYXNlcwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdmFsdWUsICJudW1iZXIiKTsKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBjYXNlICJET01TdHJpbmciOgotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh0eXBlb2YgdmFsdWUsICJzdHJpbmciKTsKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBjYXNlICJvYmplY3QiOgotICAgICAgICAgICAgYXNzZXJ0X3RydWUodHlwZW9mIHZh
bHVlID09ICJvYmplY3QiIHx8IHR5cGVvZiB2YWx1ZSA9PSAiZnVuY3Rpb24iLCAid3JvbmcgdHlw
ZTogbm90IG9iamVjdCBvciBmdW5jdGlvbiIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmICghKHR5cGUgaW4gdGhpcy5tZW1iZXJzKSkKLSAgICB7Ci0gICAgICAgIHRocm93
ICJVbnJlY29nbml6ZWQgdHlwZSAiICsgdHlwZTsKLSAgICB9Ci0KLSAgICBpZiAodGhpcy5tZW1i
ZXJzW3R5cGVdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKQotICAgIHsKLSAgICAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBydW4gdGhlIGZ1bGwKLSAgICAgICAgLy8gSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X2luc3RhbmNlX29mLCBiZWNhdXNlIHRoYXQgY291bGQgcmVzdWx0Ci0gICAgICAg
IC8vIGluIGFuIGluZmluaXRlIGxvb3AuICBUT0RPOiBUaGlzIG1lYW5zIHdlIGRvbid0IGhhdmUg
dGVzdHMgZm9yCi0gICAgICAgIC8vIE5vSW50ZXJmYWNlT2JqZWN0IGludGVyZmFjZXMsIGFuZCB3
ZSBhbHNvIGNhbid0IHRlc3Qgb2JqZWN0cyB0aGF0Ci0gICAgICAgIC8vIGNvbWUgZnJvbSBhbm90
aGVyIHdpbmRvdy4KLSAgICAgICAgYXNzZXJ0X3RydWUodHlwZW9mIHZhbHVlID09ICJvYmplY3Qi
IHx8IHR5cGVvZiB2YWx1ZSA9PSAiZnVuY3Rpb24iLCAid3JvbmcgdHlwZTogbm90IG9iamVjdCBv
ciBmdW5jdGlvbiIpOwotICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QKLSAgICAg
ICAgJiYgIXRoaXMubWVtYmVyc1t0eXBlXS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVy
ZmFjZU9iamVjdCIpCi0gICAgICAgICYmIHR5cGUgaW4gd2luZG93KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBhc3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIHdpbmRvd1t0eXBlXSwgIm5vdCBp
bnN0YW5jZW9mICIgKyB0eXBlKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlIGlmICh0aGlz
Lm1lbWJlcnNbdHlwZV0gaW5zdGFuY2VvZiBJZGxEaWN0aW9uYXJ5KQotICAgIHsKLSAgICAgICAg
Ly8gVE9ETzogVGVzdCB3aGVuIHdlIGFjdHVhbGx5IGhhdmUgc29tZXRoaW5nIHRvIHRlc3QgdGhp
cyBvbgotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICB0aHJvdyAiVHlwZSAiICsgdHlw
ZSArICIgaXNuJ3QgYW4gaW50ZXJmYWNlIG9yIGRpY3Rpb25hcnkiOwotICAgIH0KLX07Ci0vL0B9
Ci0KLS8vLyBJZGxPYmplY3QgLy8vCi1mdW5jdGlvbiBJZGxPYmplY3QoKSB7fQotSWRsT2JqZWN0
LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQotLy9AewotewotICAgIC8qKgotICAgICAqIEJ5
IGRlZmF1bHQsIHRoaXMgZG9lcyBub3RoaW5nLCBzbyBubyBhY3R1YWwgdGVzdHMgYXJlIHJ1biBm
b3IgSWRsT2JqZWN0cwotICAgICAqIHRoYXQgZG9uJ3QgZGVmaW5lIGFueSAoZS5nLiwgSWRsRGlj
dGlvbmFyeSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcpLgotICAgICAqLwotfTsKLQotLy9A
fQotSWRsT2JqZWN0LnByb3RvdHlwZS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlID0gZnVuY3Rpb24o
bmFtZSkKLS8vQHsKLXsKLSAgICAvKioKLSAgICAgKiBUaGlzIGlzIG9ubHkgbWVhbmluZ2Z1bCBm
b3IgdGhpbmdzIHRoYXQgc3VwcG9ydCBleHRlbmRlZCBhdHRyaWJ1dGVzLAotICAgICAqIHN1Y2gg
YXMgaW50ZXJmYWNlcywgZXhjZXB0aW9ucywgYW5kIG1lbWJlcnMuCi0gICAgICovCi0gICAgcmV0
dXJuIHRoaXMuZXh0QXR0cnMuc29tZShmdW5jdGlvbihvKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IG8ubmFtZSA9PSBuYW1lOwotICAgIH0pOwotfTsKLQotLy9AfQotCi0vLy8gSWRsRGljdGlvbmFy
eSAvLy8KLS8vIFVzZWQgZm9yIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcwotZnVu
Y3Rpb24gSWRsRGljdGlvbmFyeShvYmopCi0vL0B7Ci17Ci0gICAgLyoqCi0gICAgICogb2JqIGlz
IGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJkaWN0aW9uYXJ5Igot
ICAgICAqIHByb2R1Y3Rpb24uCi0gICAgICovCi0KLSAgICAvKiogU2VsZi1leHBsYW5hdG9yeS4g
Ki8KLSAgICB0aGlzLm5hbWUgPSBvYmoubmFtZTsKLQotICAgIC8qKiBBbiBhcnJheSBvZiBvYmpl
Y3RzIHByb2R1Y2VkIGJ5IHRoZSAiZGljdGlvbmFyeU1lbWJlciIgcHJvZHVjdGlvbi4gKi8KLSAg
ICB0aGlzLm1lbWJlcnMgPSBvYmoubWVtYmVyczsKLQotICAgIC8qKgotICAgICAqIFRoZSBuYW1l
IChhcyBhIHN0cmluZykgb2YgdGhlIGRpY3Rpb25hcnkgdHlwZSB3ZSBpbmhlcml0IGZyb20sIG9y
IG51bGwKLSAgICAgKiBpZiB0aGVyZSBpcyBub25lLgotICAgICAqLwotICAgIGlmIChvYmouaW5o
ZXJpdGFuY2UubGVuZ3RoID4gMSkgewotICAgICAgICB0aHJvdyAiTXVsdGlwbGUgaW5oZXJpdGFu
Y2UgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiBXZWJJREwiOwotICAgIH0KLSAgICB0aGlzLmJh
c2UgPSBvYmouaW5oZXJpdGFuY2UubGVuZ3RoID8gb2JqLmluaGVyaXRhbmNlWzBdIDogbnVsbDsK
LX0KLQotLy9AfQotSWRsRGljdGlvbmFyeS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9i
amVjdC5wcm90b3R5cGUpOwotCi0vLy8gSWRsRXhjZXB0aW9uT3JJbnRlcmZhY2UgLy8vCi0vLyBD
b2RlIHNoYXJpbmchCi1mdW5jdGlvbiBJZGxFeGNlcHRpb25PckludGVyZmFjZShvYmopCi0vL0B7
Ci17Ci0gICAgLyoqCi0gICAgICogb2JqIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2Vi
SURMUGFyc2VyLmpzICJleGNlcHRpb24iIG9yCi0gICAgICogImludGVyZmFjZSIgcHJvZHVjdGlv
biwgYXMgYXBwcm9wcmlhdGUuCi0gICAgICovCi0KLSAgICAvKiogU2VsZi1leHBsYW5hdG9yeS4g
Ki8KLSAgICB0aGlzLm5hbWUgPSBvYmoubmFtZTsKLQotICAgIC8qKiBBIGJhY2stcmVmZXJlbmNl
IHRvIG91ciBJZGxBcnJheS4gKi8KLSAgICB0aGlzLmFycmF5ID0gb2JqLmFycmF5OwotCi0gICAg
LyoqCi0gICAgICogQW4gaW5kaWNhdG9yIG9mIHdoZXRoZXIgd2Ugc2hvdWxkIHJ1biB0ZXN0cyBv
biB0aGUgKGV4Y2VwdGlvbikgaW50ZXJmYWNlCi0gICAgICogb2JqZWN0IGFuZCAoZXhjZXB0aW9u
KSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4gIFRlc3RzIG9uIG1lbWJlcnMgYXJlCi0gICAg
ICogY29udHJvbGxlZCBieSAudW50ZXN0ZWQgb24gZWFjaCBtZW1iZXIsIG5vdCB0aGlzLgotICAg
ICAqLwotICAgIHRoaXMudW50ZXN0ZWQgPSBvYmoudW50ZXN0ZWQ7Ci0KLSAgICAvKiogQW4gYXJy
YXkgb2Ygb2JqZWN0cyBwcm9kdWNlZCBieSB0aGUgIkV4dEF0dHIiIHByb2R1Y3Rpb24uICovCi0g
ICAgdGhpcy5leHRBdHRycyA9IG9iai5leHRBdHRyczsKLQotICAgIC8qKiBBbiBhcnJheSBvZiBJ
ZGxJbnRlcmZhY2VNZW1iZXJzLiAqLwotICAgIHRoaXMubWVtYmVycyA9IG9iai5tZW1iZXJzLm1h
cChmdW5jdGlvbihtKXtyZXR1cm4gbmV3IElkbEludGVyZmFjZU1lbWJlcihtKX0pOwotCi0gICAg
LyoqCi0gICAgICogVGhlIG5hbWUgKGFzIGEgc3RyaW5nKSBvZiB0aGUgdHlwZSB3ZSBpbmhlcml0
IGZyb20sIG9yIG51bGwgaWYgdGhlcmUgaXMKLSAgICAgKiBub25lLgotICAgICAqLwotICAgIGlm
IChvYmouaW5oZXJpdGFuY2UubGVuZ3RoID4gMSkgewotICAgICAgICB0aHJvdyAiTXVsdGlwbGUg
aW5oZXJpdGFuY2UgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiBXZWJJREwiOwotICAgIH0KLSAg
ICB0aGlzLmJhc2UgPSBvYmouaW5oZXJpdGFuY2UubGVuZ3RoID8gb2JqLmluaGVyaXRhbmNlWzBd
IDogbnVsbDsKLX0KLSAKLS8vQH0KLUlkbEV4Y2VwdGlvbk9ySW50ZXJmYWNlLnByb3RvdHlwZSA9
IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7Ci1JZGxFeGNlcHRpb25PckludGVy
ZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKLS8vQHsKLXsKLSAgICBpZiAodGhpcy5o
YXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpKQotICAgIHsKLSAgICAg
ICAgLy8gTm8gdGVzdHMgdG8gZG8gd2l0aG91dCBhbiBpbnN0YW5jZS4gIFRPRE86IFdlIHNob3Vs
ZCBzdGlsbCBiZSBhYmxlCi0gICAgICAgIC8vIHRvIHJ1biB0ZXN0cyBvbiB0aGUgcHJvdG90eXBl
IG9iamVjdCwgaWYgd2Ugb2J0YWluIG9uZSB0aHJvdWdoIHNvbWUKLSAgICAgICAgLy8gb3RoZXIg
bWVhbnMuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIXRoaXMudW50ZXN0ZWQp
Ci0gICAgewotICAgICAgICAvLyBGaXJzdCB0ZXN0IHRoaW5ncyB0byBkbyB3aXRoIHRoZSBleGNl
cHRpb24vaW50ZXJmYWNlIG9iamVjdCBhbmQKLSAgICAgICAgLy8gZXhjZXB0aW9uL2ludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0LgotICAgICAgICB0aGlzLnRlc3Rfc2VsZigpOwotICAgIH0KLSAg
ICAvLyBUaGVuIHRlc3QgdGhpbmdzIHRvIGRvIHdpdGggaXRzIG1lbWJlcnMgKGNvbnN0YW50cywg
ZmllbGRzLCBhdHRyaWJ1dGVzLAotICAgIC8vIG9wZXJhdGlvbnMsIC4gLiAuKS4gIFRoZXNlIGFy
ZSBydW4gZXZlbiBpZiAudW50ZXN0ZWQgaXMgdHJ1ZSwgYmVjYXVzZQotICAgIC8vIG1lbWJlcnMg
bWlnaHQgdGhlbXNlbHZlcyBiZSBtYXJrZWQgYXMgLnVudGVzdGVkLiAgVGhpcyBtaWdodCBoYXBw
ZW4gdG8KLSAgICAvLyBpbnRlcmZhY2VzIGlmIHRoZSBpbnRlcmZhY2UgaXRzZWxmIGlzIHVudGVz
dGVkIGJ1dCBhIHBhcnRpYWwgaW50ZXJmYWNlCi0gICAgLy8gdGhhdCBleHRlbmRzIGl0IGlzIHRl
c3RlZCAtLSB0aGVuIHRoZSBpbnRlcmZhY2UgaXRzZWxmIGFuZCBpdHMgaW5pdGlhbAotICAgIC8v
IG1lbWJlcnMgd2lsbCBiZSBtYXJrZWQgYXMgdW50ZXN0ZWQsIGJ1dCB0aGUgbWVtYmVycyBhZGRl
ZCBieSB0aGUgcGFydGlhbAotICAgIC8vIGludGVyZmFjZSBhcmUgc3RpbGwgdGVzdGVkLgotICAg
IHRoaXMudGVzdF9tZW1iZXJzKCk7Ci19Ci0KLS8vQH0KLQotLy8vIElkbEV4Y2VwdGlvbiAvLy8K
LWZ1bmN0aW9uIElkbEV4Y2VwdGlvbihvYmopIHsgSWRsRXhjZXB0aW9uT3JJbnRlcmZhY2UuY2Fs
bCh0aGlzLCBvYmopOyB9Ci1JZGxFeGNlcHRpb24ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJ
ZGxFeGNlcHRpb25PckludGVyZmFjZS5wcm90b3R5cGUpOwotSWRsRXhjZXB0aW9uLnByb3RvdHlw
ZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCi0vL0B7Ci17Ci0gICAgdGVzdChmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICAvLyAiRm9yIGV2ZXJ5IGV4Y2VwdGlvbiB0aGF0IGlzIG5vdCBkZWNsYXJl
ZCB3aXRoIHRoZQotICAgICAgICAvLyBbTm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJp
YnV0ZSwgYSBjb3JyZXNwb25kaW5nIHByb3BlcnR5Ci0gICAgICAgIC8vIG11c3QgZXhpc3Qgb24g
dGhlIGV4Y2VwdGlvbuKAmXMgcmVsZXZhbnQgbmFtZXNwYWNlIG9iamVjdC4gVGhlIG5hbWUgb2YK
LSAgICAgICAgLy8gdGhlIHByb3BlcnR5IGlzIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBleGNlcHRp
b24sIGFuZCBpdHMgdmFsdWUgaXMgYW4KLSAgICAgICAgLy8gb2JqZWN0IGNhbGxlZCB0aGUgZXhj
ZXB0aW9uIGludGVyZmFjZSBvYmplY3QsIHdoaWNoIHByb3ZpZGVzIGFjY2VzcwotICAgICAgICAv
LyB0byBhbnkgY29uc3RhbnRzIHRoYXQgaGF2ZSBiZWVuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhj
ZXB0aW9uLiBUaGUKLSAgICAgICAgLy8gcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgW1tX
cml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXToKLSAgICAgICAgLy8gZmFsc2UsIFtbQ29u
ZmlndXJhYmxlXV06IHRydWUgfS4iCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93
LCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbmRvdyBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAgICAg
ICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCB0aGlz
Lm5hbWUpOwotICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgIndpbmRvdydzIHBy
b3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaGFzIGdldHRlciIpOwotICAg
ICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVzYywgIndpbmRvdydzIHByb3BlcnR5ICIgKyBm
b3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaGFzIHNldHRlciIpOwotICAgICAgICBhc3NlcnRf
dHJ1ZShkZXNjLndyaXRhYmxlLCAid2luZG93J3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0
aGlzLm5hbWUpICsgIiBpcyBub3Qgd3JpdGFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGRl
c2MuZW51bWVyYWJsZSwgIndpbmRvdydzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5u
YW1lKSArICIgaXMgZW51bWVyYWJsZSIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZp
Z3VyYWJsZSwgIndpbmRvdydzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSAr
ICIgaXMgbm90IGNvbmZpZ3VyYWJsZSIpOwotCi0gICAgICAgIC8vICJUaGUgZXhjZXB0aW9uIGlu
dGVyZmFjZSBvYmplY3QgZm9yIGEgZ2l2ZW4gZXhjZXB0aW9uIG11c3QgYmUgYQotICAgICAgICAv
LyBmdW5jdGlvbiBvYmplY3QuIgotICAgICAgICAvLyAiSWYgYW4gb2JqZWN0IGlzIGRlZmluZWQg
dG8gYmUgYSBmdW5jdGlvbiBvYmplY3QsIHRoZW4gaXQgaGFzCi0gICAgICAgIC8vIGNoYXJhY3Rl
cmlzdGljcyBhcyBmb2xsb3dzOiIKLSAgICAgICAgLy8gIkl0cyBbW1Byb3RvdHlwZV1dIGludGVy
bmFsIHByb3BlcnR5IGlzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUKLSAgICAgICAgLy8gb2JqZWN0
LiIKLSAgICAgICAgLy8gTm90ZTogVGhpcyBkb2Vzbid0IG1hdGNoIGJyb3dzZXJzIGFzIG9mIERl
Y2VtYmVyIDIwMTEsIHNlZQotICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MTMKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0
UHJvdG90eXBlT2Yod2luZG93W3RoaXMubmFtZV0pLCBGdW5jdGlvbi5wcm90b3R5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgInByb3RvdHlwZSBvZiB3aW5kb3cncyBwcm9wZXJ0eSAiICsgZm9y
bWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlzIG5vdCBGdW5jdGlvbi5wcm90b3R5cGUiKTsKLSAg
ICAgICAgLy8gIkl0cyBbW0dldF1dIGludGVybmFsIHByb3BlcnR5IGlzIHNldCBhcyBkZXNjcmli
ZWQgaW4gRUNNQS0yNjIKLSAgICAgICAgLy8gc2VjdGlvbiAxNS4zLjUuNC4iCi0gICAgICAgIC8v
IE5vdCBtdWNoIHRvIHRlc3QgZm9yIHRoaXMuCi0gICAgICAgIC8vICJJdHMgW1tDb25zdHJ1Y3Rd
XSBpbnRlcm5hbCBwcm9wZXJ0eSBpcyBzZXQgYXMgZGVzY3JpYmVkIGluIEVDTUEtMjYyCi0gICAg
ICAgIC8vIHNlY3Rpb24gMTMuMi4yLiIKLSAgICAgICAgLy8gVGVzdGVkIGJlbG93LgotICAgICAg
ICAvLyAiSXRzIFtbSGFzSW5zdGFuY2VdXSBpbnRlcm5hbCBwcm9wZXJ0eSBpcyBzZXQgYXMgZGVz
Y3JpYmVkIGluCi0gICAgICAgIC8vIEVDTUEtMjYyIHNlY3Rpb24gMTUuMy41LjMsIHVubGVzcyBv
dGhlcndpc2Ugc3BlY2lmaWVkLiIKLSAgICAgICAgLy8gVE9ETwotICAgICAgICAvLyAiSXRzIFtb
Q2xhc3NdXSBpbnRlcm5hbCBwcm9wZXJ0eSBpcyDigJxGdW5jdGlvbuKAnS4iCi0gICAgICAgIC8v
IFN0cmluZygpIHJldHVybnMgc29tZXRoaW5nIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCwgYmVj
YXVzZSBpdAotICAgICAgICAvLyBjYWxscyBGdW5jdGlvbiN0b1N0cmluZy4KLSAgICAgICAgYXNz
ZXJ0X2NsYXNzX3N0cmluZyh3aW5kb3dbdGhpcy5uYW1lXSwgIkZ1bmN0aW9uIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY2xhc3Mgc3RyaW5nIG9mICIgKyB0aGlzLm5hbWUpOwotCi0g
ICAgICAgIC8vIFRPRE86IFRlc3QgNC45LjEuMS4gRXhjZXB0aW9uIGludGVyZmFjZSBvYmplY3Qg
W1tDYWxsXV0gbWV0aG9kCi0gICAgICAgIC8vICh3aGljaCBkb2VzIG5vdCBtYXRjaCBicm93c2Vy
czoKLSAgICAgICAgLy8gaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dp
P2lkPTE0ODg1KQotICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBleGNlcHRpb246IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBleGNlcHRpb24gaW50ZXJmYWNlIG9iamVjdCIpOwot
Ci0gICAgdGVzdChmdW5jdGlvbigpCi0gICAgewotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5
KHdpbmRvdywgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3cg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsK
LQotICAgICAgICAvLyAiVGhlIGV4Y2VwdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IG11c3QgYWxzbyBo
YXZlIGEgcHJvcGVydHkgbmFtZWQKLSAgICAgICAgLy8g4oCccHJvdG90eXBl4oCdIHdpdGggYXR0
cmlidXRlcyB7IFtbV3JpdGFibGVdXTogZmFsc2UsIFtbRW51bWVyYWJsZV1dOgotICAgICAgICAv
LyBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogZmFsc2UgfSB3aG9zZSB2YWx1ZSBpcyBhbiBvYmpl
Y3QgY2FsbGVkIHRoZQotICAgICAgICAvLyBleGNlcHRpb24gaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QuIFRoaXMgb2JqZWN0IGFsc28gcHJvdmlkZXMKLSAgICAgICAgLy8gYWNjZXNzIHRvIHRo
ZSBjb25zdGFudHMgdGhhdCBhcmUgZGVjbGFyZWQgb24gdGhlIGV4Y2VwdGlvbi4iCi0gICAgICAg
IGFzc2VydF9vd25fcHJvcGVydHkod2luZG93W3RoaXMubmFtZV0sICJwcm90b3R5cGUiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdleGNlcHRpb24gIicgKyB0aGlzLm5hbWUgKyAnIiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwotICAgICAgICB2YXIgZGVz
YyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93W3RoaXMubmFtZV0sICJw
cm90b3R5cGUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsIHRoaXMubmFt
ZSArICIucHJvdG90eXBlIGhhcyBnZXR0ZXIiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQi
IGluIGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90eXBlIGhhcyBzZXR0ZXIiKTsKLSAgICAgICAg
YXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsIHRoaXMubmFtZSArICIucHJvdG90eXBlIGlzIHdy
aXRhYmxlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIHRoaXMubmFt
ZSArICIucHJvdG90eXBlIGlzIGVudW1lcmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGRl
c2MuY29uZmlndXJhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBpcyBjb25maWd1cmFibGUi
KTsKLQotICAgICAgICAvLyAiVGhlIGV4Y2VwdGlvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBmb3IgYSBnaXZlbiBleGNlcHRpb24gbXVzdAotICAgICAgICAvLyBoYXZlIGFuIGludGVybmFs
IFtbUHJvdG90eXBlXV0gcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgYXMgZm9sbG93czoKLSAgICAg
ICAgLy8KLSAgICAgICAgLy8gIklmIHRoZSBleGNlcHRpb24gaXMgZGVjbGFyZWQgdG8gaW5oZXJp
dCBmcm9tIGFub3RoZXIgZXhjZXB0aW9uLAotICAgICAgICAvLyB0aGVuIHRoZSB2YWx1ZSBvZiB0
aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBpcyB0aGUKLSAgICAgICAgLy8gZXhj
ZXB0aW9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGZvciB0aGUgaW5oZXJpdGVkIGV4Y2Vw
dGlvbi4KLSAgICAgICAgLy8gIk90aGVyd2lzZSwgdGhlIGV4Y2VwdGlvbiBpcyBub3QgZGVjbGFy
ZWQgdG8gaW5oZXJpdCBmcm9tIGFub3RoZXIKLSAgICAgICAgLy8gZXhjZXB0aW9uLiBUaGUgdmFs
dWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgaXMgdGhlCi0gICAgICAg
IC8vIEVycm9yIHByb3RvdHlwZSBvYmplY3QgKFtFQ01BLTI2Ml0sIHNlY3Rpb24gMTUuMTEuMy4x
KS4iCi0gICAgICAgIC8vCi0gICAgICAgIC8vIE5vdGU6IFRoaXMgZG9lc24ndCBtYXRjaCBicm93
c2VycyBhcyBvZiBEZWNlbWJlciAyMDExLCBzZWUKLSAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0xNDg4Ny4KLSAgICAgICAgdmFyIGluaGVy
aXRfZXhjZXB0aW9uID0gdGhpcy5iYXNlID8gdGhpcy5iYXNlIDogIkVycm9yIjsKLSAgICAgICAg
YXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3csIGluaGVyaXRfZXhjZXB0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdzaG91bGQgaW5oZXJpdCBmcm9tICcgKyBpbmhlcml0X2V4Y2Vw
dGlvbiArICcsIGJ1dCB3aW5kb3cgaGFzIG5vIHN1Y2ggcHJvcGVydHknKTsKLSAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbaW5oZXJpdF9leGNlcHRpb25dLCAicHJvdG90eXBlIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvdWxkIGluaGVyaXQgZnJvbSAnICsgaW5o
ZXJpdF9leGNlcHRpb24gKyAnLCBidXQgdGhhdCBvYmplY3QgaGFzIG5vICJwcm90b3R5cGUiIHBy
b3BlcnR5Jyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHdp
bmRvd1t0aGlzLm5hbWVdLnByb3RvdHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgd2luZG93
W2luaGVyaXRfZXhjZXB0aW9uXS5wcm90b3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgJ3By
b3RvdHlwZSBvZiAnICsgdGhpcy5uYW1lICsgJy5wcm90b3R5cGUgaXMgbm90ICcgKyBpbmhlcml0
X2V4Y2VwdGlvbiArICcucHJvdG90eXBlJyk7Ci0KLSAgICAgICAgLy8gIlRoZSBjbGFzcyBzdHJp
bmcgb2YgYW4gZXhjZXB0aW9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGlzIHRoZQotICAg
ICAgICAvLyBjb25jYXRlbmF0aW9uIG9mIHRoZSBleGNlcHRpb27igJlzIGlkZW50aWZpZXIgYW5k
IHRoZSBzdHJpbmcKLSAgICAgICAgLy8g4oCcUHJvdG90eXBl4oCdLiIKLSAgICAgICAgYXNzZXJ0
X2NsYXNzX3N0cmluZyh3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUsIHRoaXMubmFtZSArICJQ
cm90b3R5cGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjbGFzcyBzdHJpbmcgb2Yg
IiArIHRoaXMubmFtZSArICIucHJvdG90eXBlIik7Ci0gICAgICAgIC8vIFRPRE86IFRlc3QgU3Ry
aW5nKCksIGJhc2VkIG9uIEVTIGRlZmluaXRpb24gb2YKLSAgICAgICAgLy8gRXJyb3IucHJvdG90
eXBlLnRvU3RyaW5nPwotICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBleGNlcHRpb246
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBleGNlcHRpb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgYXNzZXJ0
X293bl9wcm9wZXJ0eSh3aW5kb3csIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2luZG93IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUo
dGhpcy5uYW1lKSk7Ci0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93W3RoaXMubmFt
ZV0sICJwcm90b3R5cGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2Ug
IicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBl
IicpOwotCi0gICAgICAgIC8vICJUaGVyZSBtdXN0IGJlIGEgcHJvcGVydHkgbmFtZWQg4oCcbmFt
ZeKAnSBvbiB0aGUgZXhjZXB0aW9uIGludGVyZmFjZQotICAgICAgICAvLyBwcm90b3R5cGUgb2Jq
ZWN0IHdpdGggYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogdHJ1ZSwKLSAgICAgICAgLy8gW1tF
bnVtZXJhYmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0gYW5kIHdob3NlIHZh
bHVlIGlzCi0gICAgICAgIC8vIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBleGNlcHRpb24uIgotICAg
ICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvd1t0aGlzLm5hbWVdLnByb3RvdHlwZSwgIm5h
bWUiLAotICAgICAgICAgICAgICAgICdwcm90b3R5cGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJuYW1lIicpOwotICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93W3RoaXMubmFtZV0ucHJvdG90eXBlLCAibmFtZSIpOwotICAg
ICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUu
bmFtZSBoYXMgZ2V0dGVyIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCB0
aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5uYW1lIGhhcyBzZXR0ZXIiKTsKLSAgICAgICAgYXNzZXJ0
X3RydWUoZGVzYy53cml0YWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUubmFtZSBpcyBub3Qg
d3JpdGFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuZW51bWVyYWJsZSwgdGhpcy5u
YW1lICsgIi5wcm90b3R5cGUubmFtZSBpcyBlbnVtZXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF90
cnVlKGRlc2MuY29uZmlndXJhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZS5uYW1lIGlzIG5v
dCBjb25maWd1cmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCB0aGlz
Lm5hbWUsIHRoaXMubmFtZSArICIucHJvdG90eXBlLm5hbWUgaGFzIGluY29ycmVjdCB2YWx1ZSIp
OwotICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBleGNlcHRpb246IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBleGNlcHRpb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBc
Im5hbWVcIiBwcm9wZXJ0eSIpOwotCi0gICAgdGVzdChmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvdywgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3aW5kb3cgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1h
dF92YWx1ZSh0aGlzLm5hbWUpKTsKLSAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3db
dGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lu
dGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJw
cm90b3R5cGUiJyk7Ci0KLSAgICAgICAgLy8gIklmIHRoZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4
dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZCBvbgotICAgICAgICAvLyB0aGUgZXhj
ZXB0aW9uLCB0aGVuIHRoZXJlIG11c3QgYWxzbyBiZSBhIHByb3BlcnR5IG5hbWVkCi0gICAgICAg
IC8vIOKAnGNvbnN0cnVjdG9y4oCdIG9uIHRoZSBleGNlcHRpb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3Qgd2l0aAotICAgICAgICAvLyBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiB0cnVl
LCBbW0VudW1lcmFibGVdXTogZmFsc2UsCi0gICAgICAgIC8vIFtbQ29uZmlndXJhYmxlXV06IHRy
dWUgfSBhbmQgd2hvc2UgdmFsdWUgaXMgYSByZWZlcmVuY2UgdG8gdGhlCi0gICAgICAgIC8vIGV4
Y2VwdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGZvciB0aGUgZXhjZXB0aW9uLiIKLSAgICAgICAgYXNz
ZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUsICJjb25zdHJ1Y3Rv
ciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90b3R5cGUg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgImNvbnN0cnVjdG9yIicpOwotICAgICAgICB2YXIg
ZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93W3RoaXMubmFtZV0u
cHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGlu
IGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIGhhcyBnZXR0ZXIiKTsK
LSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90
eXBlLmNvbnN0cnVjdG9yIGhhcyBzZXR0ZXIiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy53
cml0YWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90IHdyaXRh
YmxlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIHRoaXMubmFtZSAr
ICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlzIGVudW1lcmFibGUiKTsKLSAgICAgICAgYXNzZXJ0
X3RydWUoZGVzYy5jb25maWd1cmFibGUsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVj
dG9yIGluIG5vdCBjb25maWd1cmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3db
dGhpcy5uYW1lXS5wcm90b3R5cGUuY29uc3RydWN0b3IsIHdpbmRvd1t0aGlzLm5hbWVdLAotICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlz
IG5vdCB0aGUgc2FtZSBvYmplY3QgYXMgJyArIHRoaXMubmFtZSk7Ci0gICAgfS5iaW5kKHRoaXMp
LCB0aGlzLm5hbWUgKyAiIGV4Y2VwdGlvbjogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGV4
Y2VwdGlvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIFwiY29uc3RydWN0b3JcIiBwcm9w
ZXJ0eSIpOwotfQotCi0vL0B9Ci1JZGxFeGNlcHRpb24ucHJvdG90eXBlLnRlc3RfbWVtYmVycyA9
IGZ1bmN0aW9uKCkKLS8vQHsKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVtYmVy
cy5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAgIHZhciBtZW1iZXIgPSB0aGlzLm1lbWJlcnNb
aV07Ci0gICAgICAgIGlmIChtZW1iZXIudW50ZXN0ZWQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChtZW1iZXIudHlwZSA9PSAiY29uc3Qi
ICYmIG1lbWJlci5uYW1lICE9ICJwcm90b3R5cGUiKQotICAgICAgICB7Ci0gICAgICAgICAgICB0
ZXN0KGZ1bmN0aW9uKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfb3du
X3Byb3BlcnR5KHdpbmRvdywgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIndpbmRvdyBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3Zh
bHVlKHRoaXMubmFtZSkpOwotCi0gICAgICAgICAgICAgICAgLy8gIkZvciBlYWNoIGNvbnN0YW50
IGRlZmluZWQgb24gdGhlIGV4Y2VwdGlvbiwgdGhlcmUgbXVzdCBiZSBhCi0gICAgICAgICAgICAg
ICAgLy8gY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBvbiB0aGUgZXhjZXB0aW9uIGludGVyZmFjZSBv
YmplY3QsIGlmCi0gICAgICAgICAgICAgICAgLy8gaXQgZXhpc3RzLCBpZiB0aGUgaWRlbnRpZmll
ciBvZiB0aGUgY29uc3RhbnQgaXMgbm90Ci0gICAgICAgICAgICAgICAgLy8g4oCccHJvdG90eXBl
4oCdLiIKLSAgICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvd1t0aGlzLm5h
bWVdLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICAgICAgLy8gIlRoZSB2YWx1ZSBvZiB0aGUg
cHJvcGVydHkgaXMgdGhlIEVDTUFTY3JpcHQgdmFsdWUgdGhhdCBpcwotICAgICAgICAgICAgICAg
IC8vIGVxdWl2YWxlbnQgdG8gdGhlIGNvbnN0YW504oCZcyBJREwgdmFsdWUsIGFjY29yZGluZyB0
byB0aGUKLSAgICAgICAgICAgICAgICAvLyBydWxlcyBpbiBzZWN0aW9uIDQuMiBhYm92ZS4iCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbdGhpcy5uYW1lXVttZW1iZXIubmFt
ZV0sIGV2YWwobWVtYmVyLnZhbHVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
cm9wZXJ0eSBoYXMgd3JvbmcgdmFsdWUiKTsKLSAgICAgICAgICAgICAgICAvLyAiVGhlIHByb3Bl
cnR5IGhhcyBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwKLSAgICAgICAgICAgICAg
ICAvLyBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogZmFsc2UgfS4iCi0g
ICAgICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvd1t0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBoYXMgZ2V0dGVyIik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBoYXMgc2V0dGVyIik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJwcm9wZXJ0eSBp
cyB3cml0YWJsZSIpOwotICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuZW51bWVyYWJs
ZSwgInByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKGRlc2MuY29uZmlndXJhYmxlLCAicHJvcGVydHkgaXMgY29uZmlndXJhYmxlIik7Ci0g
ICAgICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgZXhjZXB0aW9uOiBjb25zdGFu
dCAiICsgbWVtYmVyLm5hbWUgKyAiIG9uIGV4Y2VwdGlvbiBpbnRlcmZhY2Ugb2JqZWN0Iik7Ci0g
ICAgICAgICAgICAvLyAiSW4gYWRkaXRpb24sIGEgcHJvcGVydHkgd2l0aCB0aGUgc2FtZSBjaGFy
YWN0ZXJpc3RpY3MgbXVzdAotICAgICAgICAgICAgLy8gZXhpc3Qgb24gdGhlIGV4Y2VwdGlvbiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4iCi0gICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRv
dywgdGhpcy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbmRv
dyBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkp
OwotICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93W3RoaXMubmFtZV0s
ICJwcm90b3R5cGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2Vw
dGlvbiAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90
b3R5cGUiJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvd1t0
aGlzLm5hbWVdLnByb3RvdHlwZSwgbWVtYmVyLm5hbWUpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMod2luZG93W3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJlci5uYW1lXSwgZXZhbCht
ZW1iZXIudmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3BlcnR5IGhh
cyB3cm9uZyB2YWx1ZSIpOwotICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlci5u
YW1lKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInByb3Bl
cnR5IGhhcyBnZXR0ZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4g
ZGVzYywgInByb3BlcnR5IGhhcyBzZXR0ZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFs
c2UoZGVzYy53cml0YWJsZSwgInByb3BlcnR5IGlzIHdyaXRhYmxlIik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlLCAicHJvcGVydHkgaXMgbm90IGVudW1lcmFi
bGUiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5jb25maWd1cmFibGUsICJw
cm9wZXJ0eSBpcyBjb25maWd1cmFibGUiKTsKLSAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhp
cy5uYW1lICsgIiBleGNlcHRpb246IGNvbnN0YW50ICIgKyBtZW1iZXIubmFtZSArICIgb24gZXhj
ZXB0aW9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Iik7Ci0gICAgICAgIH0KLSAgICAgICAg
ZWxzZSBpZiAobWVtYmVyLnR5cGUgPT0gImZpZWxkIikKLSAgICAgICAgewotICAgICAgICAgICAg
dGVzdChmdW5jdGlvbigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eSh3aW5kb3csIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ3aW5kb3cgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92
YWx1ZSh0aGlzLm5hbWUpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdp
bmRvd1t0aGlzLm5hbWVdLCAicHJvdG90eXBlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdleGNlcHRpb24gIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwotCi0gICAgICAgICAgICAgICAgLy8gIkZvciBlYWNo
IGV4Y2VwdGlvbiBmaWVsZCwgdGhlcmUgbXVzdCBiZSBhIGNvcnJlc3BvbmRpbmcKLSAgICAgICAg
ICAgICAgICAvLyBwcm9wZXJ0eSBvbiB0aGUgZXhjZXB0aW9uIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0LCB3aG9zZQotICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcmlzdGljcyBhcmUgYXMg
Zm9sbG93czoKLSAgICAgICAgICAgICAgICAvLyAiVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGlz
IHRoZSBpZGVudGlmaWVyIG9mIHRoZSBleGNlcHRpb24KLSAgICAgICAgICAgICAgICAvLyBmaWVs
ZC4iCi0gICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1l
XS5wcm90b3R5cGUsIG1lbWJlci5uYW1lKTsKLSAgICAgICAgICAgICAgICAvLyAiVGhlIHByb3Bl
cnR5IGhhcyBhdHRyaWJ1dGVzIHsgW1tHZXRdXTogRywgW1tFbnVtZXJhYmxlXV06Ci0gICAgICAg
ICAgICAgICAgLy8gdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9LCB3aGVyZSBHIGlzIHRo
ZSBleGNlcHRpb24KLSAgICAgICAgICAgICAgICAvLyBmaWVsZCBnZXR0ZXIsIGRlZmluZWQgYmVs
b3cuIgotICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlci5uYW1lKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UoInZhbHVlIiBpbiBkZXNjLCAicHJvcGVydHkgZGVzY3Jp
cHRvciBoYXMgdmFsdWUgYnV0IGlzIHN1cHBvc2VkIHRvIGJlIGFjY2Vzc29yIik7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJ3cml0YWJsZSIgaW4gZGVzYywgJ3Byb3BlcnR5IGRlc2Ny
aXB0b3IgaGFzICJ3cml0YWJsZSIgZmllbGQgYnV0IGlzIHN1cHBvc2VkIHRvIGJlIGFjY2Vzc29y
Jyk7Ci0gICAgICAgICAgICAgICAgLy8gVE9ETzogRVM1IGRvZXNuJ3Qgc2VlbSB0byBzYXkgd2hl
dGhlciBkZXNjIHNob3VsZCBoYXZlIGEKLSAgICAgICAgICAgICAgICAvLyAuc2V0IHByb3BlcnR5
LgotICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2MuZW51bWVyYWJsZSwgInByb3BlcnR5
IGlzIG5vdCBlbnVtZXJhYmxlIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5j
b25maWd1cmFibGUsICJwcm9wZXJ0eSBpcyBub3QgY29uZmlndXJhYmxlIik7Ci0gICAgICAgICAg
ICAgICAgLy8gIlRoZSBleGNlcHRpb24gZmllbGQgZ2V0dGVyIGlzIGEgRnVuY3Rpb24gb2JqZWN0
IHdob3NlCi0gICAgICAgICAgICAgICAgLy8gYmVoYXZpb3Igd2hlbiBpbnZva2VkIGlzIGFzIGZv
bGxvd3M6IgotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2MuZ2V0LCAi
ZnVuY3Rpb24iLCAidHlwZW9mIGdldHRlciIpOwotICAgICAgICAgICAgICAgIC8vICJUaGUgdmFs
dWUgb2YgdGhlIEZ1bmN0aW9uIG9iamVjdOKAmXMg4oCcbGVuZ3Ro4oCdIHByb3BlcnR5IGlzIHRo
ZQotICAgICAgICAgICAgICAgIC8vIE51bWJlciB2YWx1ZSAwLiIKLSAgICAgICAgICAgICAgICAv
LyBUaGlzIHRlc3QgaXMgYmVmb3JlIHRoZSBUeXBlRXJyb3IgdGVzdHMgc28gdGhhdCBpdCdzIGVh
c2llc3QKLSAgICAgICAgICAgICAgICAvLyB0byBzZWUgdGhhdCBGaXJlZm94IDExYTEgb25seSBm
YWlscyBvbmUgYXNzZXJ0IGluIHRoaXMgdGVzdC4KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGRlc2MuZ2V0Lmxlbmd0aCwgMCwgImdldHRlciBsZW5ndGgiKTsKLSAgICAgICAgICAgICAg
ICAvLyAiTGV0IE8gYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIFRvT2JqZWN0IG9uIHRoZSB0aGlz
IHZhbHVlLgotICAgICAgICAgICAgICAgIC8vICJJZiBPIGlzIG5vdCBhIHBsYXRmb3JtIG9iamVj
dCByZXByZXNlbnRpbmcgYW4gZXhjZXB0aW9uIGZvcgotICAgICAgICAgICAgICAgIC8vIHRoZSBl
eGNlcHRpb24gb24gd2hpY2ggdGhlIGV4Y2VwdGlvbiBmaWVsZCB3YXMgZGVjbGFyZWQsCi0gICAg
ICAgICAgICAgICAgLy8gdGhlbiB0aHJvdyBhIFR5cGVFcnJvci4iCi0gICAgICAgICAgICAgICAg
Ly8gVE9ETzogVGVzdCBvbiBhIHBsYXRmb3JtIG9iamVjdCByZXByZXNlbnRpbmcgYW4gZXhjZXB0
aW9uLgotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5j
dGlvbigpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB3aW5kb3dbdGhp
cy5uYW1lXS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdOwotICAgICAgICAgICAgICAgIH0uYmluZCh0
aGlzKSwgImdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBtdXN0IHRocm93IFR5
cGVFcnJvciIpOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCBmdW5jdGlvbigpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkZXNj
LmdldC5jYWxsKHt9KTsKLSAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksICJjYWxsaW5nIGdl
dHRlciBvbiB3cm9uZyBvYmplY3QgdHlwZSBtdXN0IHRocm93IFR5cGVFcnJvciIpOwotICAgICAg
ICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGV4Y2VwdGlvbjogZmllbGQgIiArIG1l
bWJlci5uYW1lICsgIiBvbiBleGNlcHRpb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QiKTsK
LSAgICAgICAgfQotICAgIH0KLX0KLQotLy9AfQotSWRsRXhjZXB0aW9uLnByb3RvdHlwZS50ZXN0
X29iamVjdCA9IGZ1bmN0aW9uKGRlc2MpCi0vL0B7Ci17Ci0gICAgdmFyIG9iaiwgZXhjZXB0aW9u
ID0gbnVsbDsKLSAgICB0cnkKLSAgICB7Ci0gICAgICAgIG9iaiA9IGV2YWwoZGVzYyk7Ci0gICAg
fQotICAgIGNhdGNoKGUpCi0gICAgewotICAgICAgICBleGNlcHRpb24gPSBlOwotICAgIH0KLQot
ICAgIHRlc3QoZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRp
b24sIG51bGwsICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwgIm9iamVjdCIsICJ3cm9uZyB0eXBl
b2Ygb2JqZWN0Iik7Ci0KLSAgICAgICAgLy8gV2UgY2FuJ3QgZWFzaWx5IHRlc3QgdGhhdCBpdHMg
cHJvdG90eXBlIGlzIGNvcnJlY3QgaWYgdGhlcmUncyBubwotICAgICAgICAvLyBpbnRlcmZhY2Ug
b2JqZWN0LCBvciB0aGUgb2JqZWN0IGlzIGZyb20gYSBkaWZmZXJlbnQgZ2xvYmFsCi0gICAgICAg
IC8vIGVudmlyb25tZW50IChub3QgaW5zdGFuY2VvZiBPYmplY3QpLiAgVE9ETzogdGVzdCBpbiB0
aGlzIGNhc2UgdGhhdAotICAgICAgICAvLyBpdHMgcHJvdG90eXBlIGF0IGxlYXN0IGxvb2tzIGNv
cnJlY3QsIGV2ZW4gaWYgd2UgY2FuJ3QgdGVzdCB0aGF0Ci0gICAgICAgIC8vIGl0J3MgYWN0dWFs
bHkgY29ycmVjdC4KLSAgICAgICAgaWYgKCF0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5v
SW50ZXJmYWNlT2JqZWN0IikKLSAgICAgICAgJiYgKHR5cGVvZiBvYmogIT0gIm9iamVjdCIgfHwg
b2JqIGluc3RhbmNlb2YgT2JqZWN0KSkKLSAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0X293
bl9wcm9wZXJ0eSh3aW5kb3csIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndpbmRvdyBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVl
KHRoaXMubmFtZSkpOwotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhp
cy5uYW1lXSwgInByb3RvdHlwZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdl
eGNlcHRpb24gIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
cHJvdG90eXBlIicpOwotCi0gICAgICAgICAgICAvLyAiVGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5h
bCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZQotICAgICAgICAgICAgLy8gZXhjZXB0aW9u
IG9iamVjdCBtdXN0IGJlIHRoZSBleGNlcHRpb24gaW50ZXJmYWNlIHByb3RvdHlwZQotICAgICAg
ICAgICAgLy8gb2JqZWN0IGZyb20gdGhlIGdsb2JhbCBlbnZpcm9ubWVudCB0aGUgZXhjZXB0aW9u
IG9iamVjdCBpcwotICAgICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoLiIKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd1t0aGlzLm5hbWVdLnByb3RvdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVzYyArICIncyBwcm90b3R5cGUgaXMgbm90ICIgKyB0aGlzLm5hbWUgKyAi
LnByb3RvdHlwZSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gIlRoZSBjbGFzcyBzdHJpbmcg
b2YgdGhlIGV4Y2VwdGlvbiBvYmplY3QgbXVzdCBiZSB0aGUgaWRlbnRpZmllciBvZgotICAgICAg
ICAvLyB0aGUgZXhjZXB0aW9uLiIKLSAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmosIHRo
aXMubmFtZSwgImNsYXNzIHN0cmluZyBvZiAiICsgZGVzYyk7Ci0gICAgICAgIC8vIFN0cmluZ2lm
aWVyIGlzIG5vdCBkZWZpbmVkIGZvciBET01FeGNlcHRpb25zLCBiZWNhdXNlIG1lc3NhZ2UgaXNu
J3QKLSAgICAgICAgLy8gZGVmaW5lZC4KLSAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIg
bXVzdCBiZSByZXByZXNlbnRlZCBieSAiICsgZGVzYyk7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMubWVtYmVycy5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAgIHZhciBtZW1iZXIg
PSB0aGlzLm1lbWJlcnNbaV07Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHModHlwZW9mIG9iaiwgIm9iamVjdCIsICJ3cm9uZyB0eXBlb2Ygb2JqZWN0Iik7Ci0gICAgICAg
ICAgICBhc3NlcnRfaW5oZXJpdHMob2JqLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICBpZiAo
bWVtYmVyLnR5cGUgPT0gImNvbnN0IikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG9ialttZW1iZXIubmFtZV0sIGV2YWwobWVtYmVyLnZhbHVlKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWVtYmVyLnR5cGUgPT0gImZpZWxkIikKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLmFycmF5LmFzc2VydF90eXBlX2lzKG9ialtt
ZW1iZXIubmFtZV0sIG1lbWJlci5pZGxUeXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfS5i
aW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGV4Y2VwdGlvbjogIiArIGRlc2MgKyAnIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiJyArIG1lbWJlci5uYW1lICsgJyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUn
KTsKLSAgICB9Ci19Ci0vL0B9Ci0KLS8vLyBJZGxJbnRlcmZhY2UgLy8vCi1mdW5jdGlvbiBJZGxJ
bnRlcmZhY2Uob2JqKSB7IElkbEV4Y2VwdGlvbk9ySW50ZXJmYWNlLmNhbGwodGhpcywgb2JqKTsg
fQotSWRsSW50ZXJmYWNlLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsRXhjZXB0aW9uT3JJ
bnRlcmZhY2UucHJvdG90eXBlKTsKLUlkbEludGVyZmFjZS5wcm90b3R5cGUuaXNfY2FsbGJhY2sg
PSBmdW5jdGlvbigpCi0vL0B7Ci17Ci0gICAgcmV0dXJuIHRoaXMuaGFzX2V4dGVuZGVkX2F0dHJp
YnV0ZSgiQ2FsbGJhY2siKTsKLX0KLS8vQH0KLQotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5oYXNf
Y29uc3RhbnRzID0gZnVuY3Rpb24oKQotLy9AewotewotICAgIHJldHVybiB0aGlzLm1lbWJlcnMu
c29tZShmdW5jdGlvbihtZW1iZXIpIHsKLSAgICAgICAgcmV0dXJuIG1lbWJlci50eXBlID09PSAi
Y29uc3QiOwotICAgIH0pOwotfQotLy9AfQotCi1JZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rf
c2VsZiA9IGZ1bmN0aW9uKCkKLS8vQHsKLXsKLSAgICB0ZXN0KGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGVzdHMgV2ViSURMIGFzIG9mIDIwMTItMTEtMjguCi0K
LSAgICAgICAgLy8gIkZvciBldmVyeSBpbnRlcmZhY2UgdGhhdDoKLSAgICAgICAgLy8gKiBpcyBh
IGNhbGxiYWNrIGludGVyZmFjZSB0aGF0IGhhcyBjb25zdGFudHMgZGVjbGFyZWQgb24gaXQsIG9y
Ci0gICAgICAgIC8vICogaXMgYSBub24tY2FsbGJhY2sgaW50ZXJmYWNlIHRoYXQgaXMgbm90IGRl
Y2xhcmVkIHdpdGggdGhlCi0gICAgICAgIC8vICAgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRl
ZCBhdHRyaWJ1dGUsCi0gICAgICAgIC8vIGEgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBNVVNUIGV4
aXN0IG9uIHRoZSBFQ01BU2NyaXB0IGdsb2JhbCBvYmplY3QuCi0gICAgICAgIC8vIFRoZSBuYW1l
IG9mIHRoZSBwcm9wZXJ0eSBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlLCBhbmQg
aXRzCi0gICAgICAgIC8vIHZhbHVlIGlzIGFuIG9iamVjdCBjYWxsZWQgdGhlIGludGVyZmFjZSBv
YmplY3QuCi0gICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBbW1dy
aXRhYmxlXV06IHRydWUsCi0gICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25m
aWd1cmFibGVdXTogdHJ1ZSB9LiIKLSAgICAgICAgaWYgKHRoaXMuaXNfY2FsbGJhY2soKSAmJiAh
dGhpcy5oYXNfY29uc3RhbnRzKCkpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIC8vIFRPRE86IFNob3VsZCB3ZSB0ZXN0IGhlcmUgdGhhdCB0aGUgcHJvcGVydHkg
aXMgYWN0dWFsbHkgd3JpdGFibGUKLSAgICAgICAgLy8gZXRjLiwgb3IgdHJ1c3QgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yPwotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvdywgdGhp
cy5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3cgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKLSAgICAgICAgdmFy
IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgdGhpcy5uYW1l
KTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJ3aW5kb3cncyBwcm9wZXJ0
eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGhhcyBnZXR0ZXIiKTsKLSAgICAgICAg
YXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJ3aW5kb3cncyBwcm9wZXJ0eSAiICsgZm9ybWF0
X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGhhcyBzZXR0ZXIiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUo
ZGVzYy53cml0YWJsZSwgIndpbmRvdydzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5u
YW1lKSArICIgaXMgbm90IHdyaXRhYmxlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVu
dW1lcmFibGUsICJ3aW5kb3cncyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkg
KyAiIGlzIGVudW1lcmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFi
bGUsICJ3aW5kb3cncyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlz
IG5vdCBjb25maWd1cmFibGUiKTsKLQotICAgICAgICBpZiAodGhpcy5pc19jYWxsYmFjaygpKSB7
Ci0gICAgICAgICAgICAvLyAiVGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2Yg
YW4gaW50ZXJmYWNlIG9iamVjdCBmb3IKLSAgICAgICAgICAgIC8vIGEgY2FsbGJhY2sgaW50ZXJm
YWNlIE1VU1QgYmUgdGhlIE9iamVjdC5wcm90b3R5cGUgb2JqZWN0LiIKLSAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHdpbmRvd1t0aGlzLm5hbWVdKSwgT2Jq
ZWN0LnByb3RvdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3RvdHlwZSBvZiB3
aW5kb3cncyBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkgKyAiIGlzIG5vdCBP
YmplY3QucHJvdG90eXBlIik7Ci0KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0g
ICAgICAgIC8vICJUaGUgaW50ZXJmYWNlIG9iamVjdCBmb3IgYSBnaXZlbiBub24tY2FsbGJhY2sg
aW50ZXJmYWNlIGlzIGEKLSAgICAgICAgLy8gZnVuY3Rpb24gb2JqZWN0LiIKLSAgICAgICAgLy8g
IklmIGFuIG9iamVjdCBpcyBkZWZpbmVkIHRvIGJlIGEgZnVuY3Rpb24gb2JqZWN0LCB0aGVuIGl0
IGhhcwotICAgICAgICAvLyBjaGFyYWN0ZXJpc3RpY3MgYXMgZm9sbG93czoiCi0KLSAgICAgICAg
Ly8gIiogSXRzIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwgcHJvcGVydHkgaXMgdGhlIEZ1bmN0aW9u
IHByb3RvdHlwZQotICAgICAgICAvLyAgICBvYmplY3QuIgotICAgICAgICBhc3NlcnRfZXF1YWxz
KE9iamVjdC5nZXRQcm90b3R5cGVPZih3aW5kb3dbdGhpcy5uYW1lXSksIEZ1bmN0aW9uLnByb3Rv
dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAicHJvdG90eXBlIG9mIHdpbmRvdydzIHByb3Bl
cnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaXMgbm90IEZ1bmN0aW9uLnByb3Rv
dHlwZSIpOwotCi0gICAgICAgIC8vICIqIEl0cyBbW0dldF1dIGludGVybmFsIHByb3BlcnR5IGlz
IHNldCBhcyBkZXNjcmliZWQgaW4gRUNNQS0yNjIKLSAgICAgICAgLy8gICAgc2VjdGlvbiAxNS4z
LjUuNC4iCi0gICAgICAgIC8vIE5vdCBtdWNoIHRvIHRlc3QgZm9yIHRoaXMuCi0KLSAgICAgICAg
Ly8gIiogSXRzIFtbQ29uc3RydWN0XV0gaW50ZXJuYWwgcHJvcGVydHkgaXMgc2V0IGFzIGRlc2Ny
aWJlZCBpbgotICAgICAgICAvLyAgICBFQ01BLTI2MiBzZWN0aW9uIDEzLjIuMi4iCi0gICAgICAg
IC8vIFRlc3RlZCBiZWxvdyBpZiBubyBjb25zdHJ1Y3RvciBpcyBkZWZpbmVkLiAgVE9ETzogdGVz
dCBjb25zdHJ1Y3RvcnMKLSAgICAgICAgLy8gaWYgZGVmaW5lZC4KLQotICAgICAgICAvLyAiKiBJ
dHMgW1tIYXNJbnN0YW5jZV1dIGludGVybmFsIHByb3BlcnR5IGlzIHNldCBhcyBkZXNjcmliZWQg
aW4KLSAgICAgICAgLy8gICAgRUNNQS0yNjIgc2VjdGlvbiAxNS4zLjUuMywgdW5sZXNzIG90aGVy
d2lzZSBzcGVjaWZpZWQuIgotICAgICAgICAvLyBUT0RPCi0KLSAgICAgICAgLy8gIiogSXRzIFtb
TmF0aXZlQnJhbmRdXSBpbnRlcm5hbCBwcm9wZXJ0eSBpcyDigJxGdW5jdGlvbuKAnS4iCi0gICAg
ICAgIC8vIFN0cmluZygpIHJldHVybnMgc29tZXRoaW5nIGltcGxlbWVudGF0aW9uLWRlcGVuZGVu
dCwgYmVjYXVzZSBpdCBjYWxscwotICAgICAgICAvLyBGdW5jdGlvbiN0b1N0cmluZy4KLSAgICAg
ICAgYXNzZXJ0X2NsYXNzX3N0cmluZyh3aW5kb3dbdGhpcy5uYW1lXSwgIkZ1bmN0aW9uIiwgImNs
YXNzIHN0cmluZyBvZiAiICsgdGhpcy5uYW1lKTsKLQotICAgICAgICBpZiAoIXRoaXMuaGFzX2V4
dGVuZGVkX2F0dHJpYnV0ZSgiQ29uc3RydWN0b3IiKSkgewotICAgICAgICAgICAgLy8gIlRoZSBp
bnRlcm5hbCBbW0NhbGxdXSBtZXRob2Qgb2YgdGhlIGludGVyZmFjZSBvYmplY3QgYmVoYXZlcyBh
cwotICAgICAgICAgICAgLy8gZm9sbG93cyAuIC4gLgotICAgICAgICAgICAgLy8KLSAgICAgICAg
ICAgIC8vICJJZiBJIHdhcyBub3QgZGVjbGFyZWQgd2l0aCBhIFtDb25zdHJ1Y3Rvcl0gZXh0ZW5k
ZWQgYXR0cmlidXRlLAotICAgICAgICAgICAgLy8gdGhlbiB0aHJvdyBhIFR5cGVFcnJvci4iCi0g
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgd2luZG93W3RoaXMubmFtZV0oKTsKLSAgICAgICAgICAgIH0uYmluZCh0
aGlzKSwgImludGVyZmFjZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxl
ZCBhcyBhIGZ1bmN0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJy
b3IoKSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgbmV3IHdpbmRvd1t0aGlzLm5hbWVd
KCk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcyksICJpbnRlcmZhY2Ugb2JqZWN0IGRpZG4ndCB0
aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgYXMgYSBjb25zdHJ1Y3RvciIpOwotICAgICAgICB9
Ci0gICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QiKTsKLQotICAgIGlmICh0aGlzLmhhc19l
eHRlbmRlZF9hdHRyaWJ1dGUoIkNvbnN0cnVjdG9yIikpCi0gICAgewotICAgICAgICB0ZXN0KGZ1
bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5k
b3csIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbmRvdyBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwot
Ci0gICAgICAgICAgICAvLyAiSW50ZXJmYWNlIG9iamVjdHMgZm9yIGludGVyZmFjZXMgZGVjbGFy
ZWQgd2l0aCBhIFtDb25zdHJ1Y3Rvcl0KLSAgICAgICAgICAgIC8vIGV4dGVuZGVkIGF0dHJpYnV0
ZSBtdXN0IGhhdmUgYSBwcm9wZXJ0eSBuYW1lZCDigJxsZW5ndGjigJ0gd2l0aAotICAgICAgICAg
ICAgLy8gYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogZmFsc2UsIFtbRW51bWVyYWJsZV1dOiBm
YWxzZSwKLSAgICAgICAgICAgIC8vIFtbQ29uZmlndXJhYmxlXV06IGZhbHNlIH0gd2hvc2UgdmFs
dWUgaXMgYSBOdW1iZXIgZGV0ZXJtaW5lZCBhcwotICAgICAgICAgICAgLy8gZm9sbG93czogLiAu
IC4KLSAgICAgICAgICAgIC8vICJSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgc2hvcnRlc3QgYXJn
dW1lbnQgbGlzdCBvZiB0aGUgZW50cmllcwotICAgICAgICAgICAgLy8gaW4gUy4iCi0gICAgICAg
ICAgICAvLyBUT0RPOiBWYXJpYWRpYyBjb25zdHJ1Y3RvcnMuICBTaG91bGQgZ2VuZXJhbGl6ZSB0
aGlzIHNvIHRoYXQgaXQKLSAgICAgICAgICAgIC8vIHdvcmtzIGZvciB0ZXN0aW5nIG9wZXJhdGlv
biBsZW5ndGggdG9vIChjdXJyZW50bHkgd2UganVzdCBkb24ndAotICAgICAgICAgICAgLy8gc3Vw
cG9ydCBtdWx0aXBsZSBvcGVyYXRpb25zIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllcikuCi0gICAg
ICAgICAgICB2YXIgZXhwZWN0ZWRfbGVuZ3RoID0gdGhpcy5leHRBdHRycwotICAgICAgICAgICAg
ICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0ci5uYW1lID09ICJDb25zdHJ1
Y3RvciIgfSkKLSAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uKGF0dHIpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGF0dHIuYXJndW1lbnRzID8gYXR0ci5hcmd1bWVudHMuZmlsdGVy
KAotICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oYXJnKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICFhcmcub3B0aW9uYWw7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9KS5sZW5ndGggOiAwCi0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAu
cmVkdWNlKGZ1bmN0aW9uKG0sIG4pIHsgcmV0dXJuIE1hdGgubWluKG0sIG4pIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXSwgImxlbmd0aCIpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbdGhpcy5uYW1lXS5sZW5ndGgsIGV4cGVj
dGVkX2xlbmd0aCwgIndyb25nIHZhbHVlIGZvciAiICsgdGhpcy5uYW1lICsgIi5sZW5ndGgiKTsK
LSAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3dbdGhpcy5uYW1lXSwgImxlbmd0aCIpOwotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJn
ZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIubGVuZ3RoIGhhcyBnZXR0ZXIiKTsKLSAgICAgICAg
ICAgIGFzc2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLmxlbmd0aCBoYXMg
c2V0dGVyIik7Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSwgdGhpcy5u
YW1lICsgIi5sZW5ndGggaXMgd3JpdGFibGUiKTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShk
ZXNjLmVudW1lcmFibGUsIHRoaXMubmFtZSArICIubGVuZ3RoIGlzIGVudW1lcmFibGUiKTsKLSAg
ICAgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmNvbmZpZ3VyYWJsZSwgdGhpcy5uYW1lICsgIi5s
ZW5ndGggaXMgY29uZmlndXJhYmxlIik7Ci0gICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1l
ICsgIiBpbnRlcmZhY2UgY29uc3RydWN0b3IiKTsKLSAgICB9Ci0KLSAgICAvLyBUT0RPOiBUZXN0
IG5hbWVkIGNvbnN0cnVjdG9ycyBpZiBJIGZpbmQgYW55IGludGVyZmFjZXMgdGhhdCBoYXZlIHRo
ZW0uCi0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGFzc2VydF9vd25fcHJv
cGVydHkod2luZG93LCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIndp
bmRvdyBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFt
ZSkpOwotCi0gICAgICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkNhbGxiYWNr
IikpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZSgicHJvdG90eXBlIiBpbiB3aW5kb3dbdGhp
cy5uYW1lXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgKyAnIHNob3VsZCBu
b3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5Jyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyAiVGhlIGludGVyZmFjZSBvYmplY3QgbXVzdCBhbHNvIGhh
dmUgYSBwcm9wZXJ0eSBuYW1lZCDigJxwcm90b3R5cGXigJ0KLSAgICAgICAgLy8gd2l0aCBhdHRy
aWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IGZhbHNlLAotICAg
ICAgICAvLyBbW0NvbmZpZ3VyYWJsZV1dOiBmYWxzZSB9IHdob3NlIHZhbHVlIGlzIGFuIG9iamVj
dCBjYWxsZWQgdGhlCi0gICAgICAgIC8vIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LiBUaGlz
IG9iamVjdCBoYXMgcHJvcGVydGllcyB0aGF0Ci0gICAgICAgIC8vIGNvcnJlc3BvbmQgdG8gdGhl
IGF0dHJpYnV0ZXMgYW5kIG9wZXJhdGlvbnMgZGVmaW5lZCBvbiB0aGUKLSAgICAgICAgLy8gaW50
ZXJmYWNlLCBhbmQgaXMgZGVzY3JpYmVkIGluIG1vcmUgZGV0YWlsIGluIHNlY3Rpb24gNC41LjMg
YmVsb3cuIgotICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvd1t0aGlzLm5hbWVdLCAi
cHJvdG90eXBlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsg
dGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsK
LSAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
d1t0aGlzLm5hbWVdLCAicHJvdG90eXBlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZSgiZ2V0IiBp
biBkZXNjLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBoYXMgZ2V0dGVyIik7Ci0gICAgICAgIGFz
c2VydF9mYWxzZSgic2V0IiBpbiBkZXNjLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBoYXMgc2V0
dGVyIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShkZXNjLndyaXRhYmxlLCB0aGlzLm5hbWUgKyAi
LnByb3RvdHlwZSBpcyB3cml0YWJsZSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy5lbnVt
ZXJhYmxlLCB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSBpcyBlbnVtZXJhYmxlIik7Ci0gICAgICAg
IGFzc2VydF9mYWxzZShkZXNjLmNvbmZpZ3VyYWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUg
aXMgY29uZmlndXJhYmxlIik7Ci0KLSAgICAgICAgLy8gTmV4dCwgdGVzdCB0aGF0IHRoZSBbW1By
b3RvdHlwZV1dIG9mIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAotICAgICAgICAvLyBp
cyBjb3JyZWN0LiAoVGhpcyBpcyBtYWRlIHNvbWV3aGF0IGRpZmZpY3VsdCBieSB0aGUgZXhpc3Rl
bmNlIG9mCi0gICAgICAgIC8vIFtOb0ludGVyZmFjZU9iamVjdF0uKQotICAgICAgICAvLyBUT0RP
OiBBcnllaCB0aGlua3MgdGhlcmUncyBhdCBsZWFzdCBvdGhlciBwbGFjZSBpbiB0aGlzIGZpbGUg
d2hlcmUKLSAgICAgICAgLy8gICAgICAgd2UgdHJ5IHRvIGZpZ3VyZSBvdXQgaWYgYW4gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgaXMKLSAgICAgICAgLy8gICAgICAgY29ycmVjdC4gQ29uc29s
aWRhdGUgdGhhdCBjb2RlLgotCi0gICAgICAgIC8vICJUaGUgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgZm9yIGEgZ2l2ZW4gaW50ZXJmYWNlIEEgbXVzdCBoYXZlIGFuCi0gICAgICAgIC8vIGlu
dGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgYXMgZm9sbG93czoK
LSAgICAgICAgLy8gIklmIEEgaXMgbm90IGRlY2xhcmVkIHRvIGluaGVyaXQgZnJvbSBhbm90aGVy
IGludGVyZmFjZSwgdGhlbiB0aGUKLSAgICAgICAgLy8gdmFsdWUgb2YgdGhlIGludGVybmFsIFtb
UHJvdG90eXBlXV0gcHJvcGVydHkgb2YgQSBpcyB0aGUgQXJyYXkKLSAgICAgICAgLy8gcHJvdG90
eXBlIG9iamVjdCAoW0VDTUEtMjYyXSwgc2VjdGlvbiAxNS40LjQpIGlmIHRoZSBpbnRlcmZhY2Ug
d2FzCi0gICAgICAgIC8vIGRlY2xhcmVkIHdpdGggQXJyYXlDbGFzcywgb3IgdGhlIE9iamVjdCBw
cm90b3R5cGUgb2JqZWN0IG90aGVyd2lzZQotICAgICAgICAvLyAoW0VDTUEtMjYyXSwgc2VjdGlv
biAxNS4yLjQpLgotICAgICAgICAvLyAiT3RoZXJ3aXNlLCBBIGRvZXMgaW5oZXJpdCBmcm9tIGFu
b3RoZXIgaW50ZXJmYWNlLiBUaGUgdmFsdWUgb2YgdGhlCi0gICAgICAgIC8vIGludGVybmFsIFtb
UHJvdG90eXBlXV0gcHJvcGVydHkgb2YgQSBpcyB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZQotICAg
ICAgICAvLyBvYmplY3QgZm9yIHRoZSBpbmhlcml0ZWQgaW50ZXJmYWNlLiIKLSAgICAgICAgdmFy
IGluaGVyaXRfaW50ZXJmYWNlLCBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVj
dDsKLSAgICAgICAgaWYgKHRoaXMuYmFzZSkgewotICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZh
Y2UgPSB0aGlzLmJhc2U7Ci0gICAgICAgICAgICBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJm
YWNlX29iamVjdCA9Ci0gICAgICAgICAgICAgICAgIXRoaXMuYXJyYXkKLSAgICAgICAgICAgICAg
ICAgICAgIC5tZW1iZXJzW2luaGVyaXRfaW50ZXJmYWNlXQotICAgICAgICAgICAgICAgICAgICAg
Lmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0Iik7Ci0gICAgICAgIH0g
ZWxzZSBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCdBcnJheUNsYXNzJykpIHsKLSAg
ICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gJ0FycmF5JzsKLSAgICAgICAgICAgIGluaGVy
aXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vfb2JqZWN0ID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gJ09iamVjdCc7Ci0gICAgICAgICAg
ICBpbmhlcml0X2ludGVyZmFjZV9oYXNfaW50ZXJmYWNlX29iamVjdCA9IHRydWU7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKGluaGVyaXRfaW50ZXJmYWNlX2hhc19pbnRlcmZhY2Vfb2JqZWN0KSB7
Ci0gICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvdywgaW5oZXJpdF9pbnRlcmZh
Y2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG91bGQgaW5oZXJpdCBmcm9t
ICcgKyBpbmhlcml0X2ludGVyZmFjZSArICcsIGJ1dCB3aW5kb3cgaGFzIG5vIHN1Y2ggcHJvcGVy
dHknKTsKLSAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93W2luaGVyaXRfaW50
ZXJmYWNlXSwgJ3Byb3RvdHlwZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdz
aG91bGQgaW5oZXJpdCBmcm9tICcgKyBpbmhlcml0X2ludGVyZmFjZSArICcsIGJ1dCB0aGF0IG9i
amVjdCBoYXMgbm8gInByb3RvdHlwZSIgcHJvcGVydHknKTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHdpbmRvd1t0aGlzLm5hbWVdLnByb3RvdHlwZSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1tpbmhlcml0X2ludGVyZmFjZV0ucHJv
dG90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvdG90eXBlIG9mICcgKyB0aGlz
Lm5hbWUgKyAnLnByb3RvdHlwZSBpcyBub3QgJyArIGluaGVyaXRfaW50ZXJmYWNlICsgJy5wcm90
b3R5cGUnKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFdlIGNhbid0IHRlc3Qg
dGhhdCB3ZSBnZXQgdGhlIGNvcnJlY3Qgb2JqZWN0LCBiZWNhdXNlIHRoaXMgaXMgdGhlCi0gICAg
ICAgICAgICAvLyBvbmx5IHdheSB0byBnZXQgb3VyIGhhbmRzIG9uIGl0LiBXZSBvbmx5IHRlc3Qg
dGhhdCBpdHMgY2xhc3MKLSAgICAgICAgICAgIC8vIHN0cmluZywgYXQgbGVhc3QsIGlzIGNvcnJl
Y3QuCi0gICAgICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKE9iamVjdC5nZXRQcm90b3R5cGVP
Zih3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmhlcml0X2ludGVyZmFjZSArICdQcm90b3R5cGUnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnQ2xhc3MgbmFtZSBmb3IgcHJvdG90eXBlIG9mICcgKyB0aGlzLm5h
bWUgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLnByb3RvdHlwZSBpcyBub3Qg
IicgKyBpbmhlcml0X2ludGVyZmFjZSArICdQcm90b3R5cGUiJyk7Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyAiVGhlIGNsYXNzIHN0cmluZyBvZiBhbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBpcyB0aGUKLSAgICAgICAgLy8gY29uY2F0ZW5hdGlvbiBvZiB0aGUgaW50ZXJmYWNl4oCZcyBp
ZGVudGlmaWVyIGFuZCB0aGUgc3RyaW5nCi0gICAgICAgIC8vIOKAnFByb3RvdHlwZeKAnS4iCi0g
ICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcod2luZG93W3RoaXMubmFtZV0ucHJvdG90eXBlLCB0
aGlzLm5hbWUgKyAiUHJvdG90eXBlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2xh
c3Mgc3RyaW5nIG9mICIgKyB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSIpOwotICAgICAgICAvLyBT
dHJpbmcoKSBzaG91bGQgZW5kIHVwIGNhbGxpbmcge30udG9TdHJpbmcgaWYgbm90aGluZyBkZWZp
bmVzIGEKLSAgICAgICAgLy8gc3RyaW5naWZpZXIuCi0gICAgICAgIGlmICghdGhpcy5oYXNfc3Ry
aW5naWZpZXIoKSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhTdHJpbmcod2luZG93W3Ro
aXMubmFtZV0ucHJvdG90eXBlKSwgIltvYmplY3QgIiArIHRoaXMubmFtZSArICJQcm90b3R5cGVd
IiwKLSAgICAgICAgICAgICAgICAgICAgIlN0cmluZygiICsgdGhpcy5uYW1lICsgIi5wcm90b3R5
cGUpIik7Ci0gICAgICAgIH0KLSAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgYXNzZXJ0X293bl9w
cm9wZXJ0eSh3aW5kb3csIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2luZG93IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5u
YW1lKSk7Ci0KLSAgICAgICAgaWYgKHRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiQ2FsbGJh
Y2siKSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGluIHdpbmRvd1t0
aGlzLm5hbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcgc2hvdWxk
IG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHknKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93W3RoaXMubmFt
ZV0sICJwcm90b3R5cGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2Ug
IicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBl
IicpOwotCi0gICAgICAgIC8vICJJZiB0aGUgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBh
dHRyaWJ1dGUgd2FzIG5vdCBzcGVjaWZpZWQgb24KLSAgICAgICAgLy8gdGhlIGludGVyZmFjZSwg
dGhlbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBhbHNvIGhhdmUgYQotICAg
ICAgICAvLyBwcm9wZXJ0eSBuYW1lZCDigJxjb25zdHJ1Y3RvcuKAnSB3aXRoIGF0dHJpYnV0ZXMg
eyBbW1dyaXRhYmxlXV06IHRydWUsCi0gICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwg
W1tDb25maWd1cmFibGVdXTogdHJ1ZSB9IHdob3NlIHZhbHVlIGlzIGEKLSAgICAgICAgLy8gcmVm
ZXJlbmNlIHRvIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGZvciB0aGUgaW50ZXJmYWNlLiIKLSAgICAg
ICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUsICJjb25z
dHJ1Y3RvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsgJy5wcm90
b3R5cGUgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgImNvbnN0cnVjdG9yIicpOwotICAgICAg
ICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93W3RoaXMu
bmFtZV0ucHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJn
ZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIGhhcyBnZXR0
ZXIiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsIHRoaXMubmFtZSArICIu
cHJvdG90eXBlLmNvbnN0cnVjdG9yIGhhcyBzZXR0ZXIiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUo
ZGVzYy53cml0YWJsZSwgdGhpcy5uYW1lICsgIi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90
IHdyaXRhYmxlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmVudW1lcmFibGUsIHRoaXMu
bmFtZSArICIucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlzIGVudW1lcmFibGUiKTsKLSAgICAgICAg
YXNzZXJ0X3RydWUoZGVzYy5jb25maWd1cmFibGUsIHRoaXMubmFtZSArICIucHJvdG90eXBlLmNv
bnN0cnVjdG9yIGluIG5vdCBjb25maWd1cmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh3
aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUuY29uc3RydWN0b3IsIHdpbmRvd1t0aGlzLm5hbWVd
LAotICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSArICcucHJvdG90eXBlLmNvbnN0cnVj
dG9yIGlzIG5vdCB0aGUgc2FtZSBvYmplY3QgYXMgJyArIHRoaXMubmFtZSk7Ci0gICAgfS5iaW5k
KHRoaXMpLCB0aGlzLm5hbWUgKyAnIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0XCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkn
KTsKLX0KLQotLy9AfQotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X21lbWJlcnMgPSBmdW5j
dGlvbigpCi0vL0B7Ci17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1lbWJlcnMubGVu
Z3RoOyBpKyspCi0gICAgewotICAgICAgICB2YXIgbWVtYmVyID0gdGhpcy5tZW1iZXJzW2ldOwot
ICAgICAgICBpZiAobWVtYmVyLnVudGVzdGVkKQotICAgICAgICB7Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobWVtYmVyLnR5cGUgPT0gImNvbnN0IikKLSAg
ICAgICAgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbigpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3csIHRoaXMubmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3cgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsKLQotICAgICAgICAgICAgICAg
IC8vICJGb3IgZWFjaCBjb25zdGFudCBkZWZpbmVkIG9uIGFuIGludGVyZmFjZSBBLCB0aGVyZSBt
dXN0IGJlCi0gICAgICAgICAgICAgICAgLy8gYSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IG9uIHRo
ZSBpbnRlcmZhY2Ugb2JqZWN0LCBpZiBpdAotICAgICAgICAgICAgICAgIC8vIGV4aXN0cy4iCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXSwgbWVt
YmVyLm5hbWUpOwotICAgICAgICAgICAgICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5
IGlzIHRoYXQgd2hpY2ggaXMgb2J0YWluZWQgYnkKLSAgICAgICAgICAgICAgICAvLyBjb252ZXJ0
aW5nIHRoZSBjb25zdGFudOKAmXMgSURMIHZhbHVlIHRvIGFuIEVDTUFTY3JpcHQKLSAgICAgICAg
ICAgICAgICAvLyB2YWx1ZS4iCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3db
dGhpcy5uYW1lXVttZW1iZXIubmFtZV0sIGV2YWwobWVtYmVyLnZhbHVlKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0eSBoYXMgd3JvbmcgdmFsdWUiKTsKLSAgICAgICAg
ICAgICAgICAvLyAiVGhlIHByb3BlcnR5IGhhcyBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBm
YWxzZSwKLSAgICAgICAgICAgICAgICAvLyBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1
cmFibGVdXTogZmFsc2UgfS4iCi0gICAgICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvd1t0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBoYXMg
Z2V0dGVyIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJw
cm9wZXJ0eSBoYXMgc2V0dGVyIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mu
d3JpdGFibGUsICJwcm9wZXJ0eSBpcyB3cml0YWJsZSIpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGRlc2MuZW51bWVyYWJsZSwgInByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlIik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuY29uZmlndXJhYmxlLCAicHJvcGVydHkg
aXMgY29uZmlndXJhYmxlIik7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSAr
ICIgaW50ZXJmYWNlOiBjb25zdGFudCAiICsgbWVtYmVyLm5hbWUgKyAiIG9uIGludGVyZmFjZSBv
YmplY3QiKTsKLSAgICAgICAgICAgIC8vICJJbiBhZGRpdGlvbiwgYSBwcm9wZXJ0eSB3aXRoIHRo
ZSBzYW1lIGNoYXJhY3RlcmlzdGljcyBtdXN0Ci0gICAgICAgICAgICAvLyBleGlzdCBvbiB0aGUg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuIgotICAgICAgICAgICAgdGVzdChmdW5jdGlvbigp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5k
b3csIHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5k
b3cgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUp
KTsKLQotICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkNh
bGxiYWNrIikpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUi
IGluIHdpbmRvd1t0aGlzLm5hbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXSwgInByb3RvdHlw
ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsg
dGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsK
LQotICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkod2luZG93W3RoaXMubmFtZV0u
cHJvdG90eXBlLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3
aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGVbbWVtYmVyLm5hbWVdLCBldmFsKG1lbWJlci52YWx1
ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvcGVydHkgaGFzIHdyb25nIHZh
bHVlIik7Ci0gICAgICAgICAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvd1t0aGlzLm5hbWVdLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKCJnZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBoYXMgZ2V0dGVyIik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJzZXQiIGluIGRlc2MsICJwcm9wZXJ0eSBoYXMg
c2V0dGVyIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2Mud3JpdGFibGUsICJw
cm9wZXJ0eSBpcyB3cml0YWJsZSIpOwotICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGRlc2Mu
ZW51bWVyYWJsZSwgInByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlIik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGRlc2MuY29uZmlndXJhYmxlLCAicHJvcGVydHkgaXMgY29uZmlndXJh
YmxlIik7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNl
OiBjb25zdGFudCAiICsgbWVtYmVyLm5hbWUgKyAiIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0Iik7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAobWVtYmVyLnR5cGUgPT0gImF0dHJp
YnV0ZSIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtZW1iZXIuaGFzX2V4dGVuZGVkX2F0
dHJpYnV0ZSgiVW5mb3JnZWFibGUiKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAv
LyBXZSBkbyB0aGUgY2hlY2tzIGluIHRlc3RfaW50ZXJmYWNlX29mIGluc3RlYWQKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRlc3QoZnVuY3Rp
b24oKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
d2luZG93LCB0aGlzLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2luZG93IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5u
YW1lKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5u
YW1lXSwgInByb3RvdHlwZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
aW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
InByb3RvdHlwZSInKTsKLQotICAgICAgICAgICAgICAgIC8vIFRPRE86IE5lZWRzIHRvIHRlc3Qg
Zm9yIExlbmllbnRUaGlzLgotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93W3RoaXMubmFt
ZV0ucHJvdG90eXBlW21lbWJlci5uYW1lXTsKLSAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyks
ICJnZXR0aW5nIHByb3BlcnR5IG9uIHByb3RvdHlwZSBvYmplY3QgbXVzdCB0aHJvdyBUeXBlRXJy
b3IiKTsKLQotICAgICAgICAgICAgICAgIGRvX2ludGVyZmFjZV9hdHRyaWJ1dGVfYXNzZXJ0cyh3
aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5cGUsIG1lbWJlcik7Ci0gICAgICAgICAgICB9LmJpbmQo
dGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgIiArIG1lbWJlci5uYW1l
KTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChtZW1iZXIudHlwZSA9PSAib3BlcmF0aW9u
IikKLSAgICAgICAgewotICAgICAgICAgICAgLy8gVE9ETzogTmVlZCB0byBjb3JyZWN0bHkgaGFu
ZGxlIG11bHRpcGxlIG9wZXJhdGlvbnMgd2l0aCB0aGUgc2FtZQotICAgICAgICAgICAgLy8gaWRl
bnRpZmllci4KLSAgICAgICAgICAgIGlmICghbWVtYmVyLm5hbWUpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgLy8gVW5uYW1lZCBnZXR0ZXIgb3Igc3VjaAotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGVzdChmdW5jdGlvbigpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3cs
IHRoaXMubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3cg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlzLm5hbWUpKTsK
LQotICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkNhbGxi
YWNrIikpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCJwcm90b3R5cGUiIGlu
IHdpbmRvd1t0aGlzLm5hbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5uYW1lICsgJyBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eScpOwotICAg
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhp
cy5uYW1lICsgJyIgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKLQot
ICAgICAgICAgICAgICAgIC8vICJGb3IgZWFjaCB1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBvcGVy
YXRpb24gZGVmaW5lZCBvbiB0aGUKLSAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2UsIHRoZXJl
IG11c3QgYmUgYSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IG9uIHRoZQotICAgICAgICAgICAgICAg
IC8vIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IChpZiBpdCBpcyBhIHJlZ3VsYXIgb3BlcmF0
aW9uKSBvcgotICAgICAgICAgICAgICAgIC8vIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IChpZiBpdCBp
cyBhIHN0YXRpYyBvcGVyYXRpb24pLCB1bmxlc3MKLSAgICAgICAgICAgICAgICAvLyB0aGUgZWZm
ZWN0aXZlIG92ZXJsb2FkIHNldCBmb3IgdGhhdCBpZGVudGlmaWVyIGFuZCBvcGVyYXRpb24KLSAg
ICAgICAgICAgICAgICAvLyBhbmQgd2l0aCBhbiBhcmd1bWVudCBjb3VudCBvZiAwIChmb3IgdGhl
IEVDTUFTY3JpcHQgbGFuZ3VhZ2UKLSAgICAgICAgICAgICAgICAvLyBiaW5kaW5nKSBoYXMgbm8g
ZW50cmllcy4iCi0gICAgICAgICAgICAgICAgLy8KLSAgICAgICAgICAgICAgICAvLyBUT0RPOiBU
aGUgbGlicmFyeSBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCBzdGF0aWMgb3BlcmF0aW9ucy4KLSAg
ICAgICAgICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHdpbmRvd1t0aGlzLm5hbWVdLnByb3Rv
dHlwZSwgbWVtYmVyLm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIik7Ci0KLSAgICAgICAgICAg
ICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93W3Ro
aXMubmFtZV0ucHJvdG90eXBlLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICAgICAgLy8gIlRo
ZSBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogdHJ1ZSwKLSAgICAgICAg
ICAgICAgICAvLyBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9
LiIKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoImdldCIgaW4gZGVzYywgInByb3BlcnR5
IGhhcyBnZXR0ZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoInNldCIgaW4gZGVz
YywgInByb3BlcnR5IGhhcyBzZXR0ZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShk
ZXNjLndyaXRhYmxlLCAicHJvcGVydHkgaXMgbm90IHdyaXRhYmxlIik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlLCAicHJvcGVydHkgaXMgbm90IGVudW1lcmFi
bGUiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjLmNvbmZpZ3VyYWJsZSwgInBy
b3BlcnR5IGlzIG5vdCBjb25maWd1cmFibGUiKTsKLSAgICAgICAgICAgICAgICAvLyAiVGhlIHZh
bHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyBhIEZ1bmN0aW9uIG9iamVjdCB3aG9zZQotICAgICAgICAg
ICAgICAgIC8vIGJlaGF2aW9yIGlzIGFzIGZvbGxvd3MgLiAuIC4iCi0gICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh0eXBlb2Ygd2luZG93W3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJlci5u
YW1lXSwgImZ1bmN0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0
eSBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLSAgICAgICAgICAgICAgICAvLyAiVGhlIHZhbHVlIG9m
IHRoZSBGdW5jdGlvbiBvYmplY3TigJlzIOKAnGxlbmd0aOKAnSBwcm9wZXJ0eSBpcwotICAgICAg
ICAgICAgICAgIC8vIGEgTnVtYmVyIGRldGVybWluZWQgYXMgZm9sbG93czoKLSAgICAgICAgICAg
ICAgICAvLyAiLiAuIC4KLSAgICAgICAgICAgICAgICAvLyAiUmV0dXJuIHRoZSBsZW5ndGggb2Yg
dGhlIHNob3J0ZXN0IGFyZ3VtZW50IGxpc3Qgb2YgdGhlCi0gICAgICAgICAgICAgICAgLy8gZW50
cmllcyBpbiBTLiIKLSAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAgIC8vIFRPRE86
IERvZXNuJ3QgaGFuZGxlIG92ZXJsb2FkaW5nIG9yIHZhcmlhZGljIGFyZ3VtZW50cy4KLSAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvd1t0aGlzLm5hbWVdLnByb3RvdHlwZVttZW1i
ZXIubmFtZV0ubGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICBtZW1iZXIuYXJndW1lbnRzLmZp
bHRlcihmdW5jdGlvbihhcmcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhYXJn
Lm9wdGlvbmFsOwotICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGgsCi0gICAgICAgICAgICAg
ICAgICAgICJwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCIpOwotCi0gICAgICAgICAgICAgICAg
Ly8gTWFrZSBzb21lIHN1aXRhYmxlIGFyZ3VtZW50cwotICAgICAgICAgICAgICAgIHZhciBhcmdz
ID0gbWVtYmVyLmFyZ3VtZW50cy5tYXAoZnVuY3Rpb24oYXJnKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVfc3VpdGFibGVfb2JqZWN0KGFyZy50eXBlKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLQotICAgICAgICAgICAgICAgIC8vICJMZXQgTyBiZSBhIHZhbHVlIGRldGVybWlu
ZWQgYXMgZm9sbG93czoKLSAgICAgICAgICAgICAgICAvLyAiLiAuIC4KLSAgICAgICAgICAgICAg
ICAvLyAiT3RoZXJ3aXNlLCB0aHJvdyBhIFR5cGVFcnJvci4iCi0gICAgICAgICAgICAgICAgLy8g
VGhpcyBzaG91bGQgYmUgaGl0IGlmIHRoZSBvcGVyYXRpb24gaXMgbm90IHN0YXRpYywgdGhlcmUg
aXMKLSAgICAgICAgICAgICAgICAvLyBubyBbSW1wbGljaXRUaGlzXSBhdHRyaWJ1dGUsIGFuZCB0
aGUgdGhpcyB2YWx1ZSBpcyBudWxsLgotICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAg
ICAgLy8gVE9ETzogV2UgY3VycmVudGx5IGlnbm9yZSB0aGUgc3RhdGljIGFuZCBbSW1wbGljaXRU
aGlzXQotICAgICAgICAgICAgICAgIC8vIGNhc2VzLgotICAgICAgICAgICAgICAgIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAg
d2luZG93W3RoaXMubmFtZV0ucHJvdG90eXBlW21lbWJlci5uYW1lXS5hcHBseShudWxsLCBhcmdz
KTsKLSAgICAgICAgICAgICAgICB9LCAiY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVs
bCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIik7Ci0KLSAgICAgICAgICAgICAgICAvLyAiLiAuIC4g
SWYgTyBpcyBub3QgbnVsbCBhbmQgaXMgYWxzbyBub3QgYSBwbGF0Zm9ybSBvYmplY3QKLSAgICAg
ICAgICAgICAgICAvLyB0aGF0IGltcGxlbWVudHMgaW50ZXJmYWNlIEksIHRocm93IGEgVHlwZUVy
cm9yLiIKLSAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAgIC8vIFRPRE86IFRlc3Qg
YSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHNvbWUgb3RoZXIKLSAgICAgICAgICAg
ICAgICAvLyBpbnRlcmZhY2UuICAoSGF2ZSB0byBiZSBzdXJlIHRvIGdldCBpbmhlcml0YW5jZSBy
aWdodC4pCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB3aW5kb3dbdGhpcy5uYW1lXS5wcm90b3R5
cGVbbWVtYmVyLm5hbWVdLmFwcGx5KHt9LCBhcmdzKTsKLSAgICAgICAgICAgICAgICB9LCAiY2Fs
bGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0ge30gZGlkbid0IHRocm93IFR5cGVFcnJvciIpOwot
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogb3BlcmF0
aW9uICIgKyBtZW1iZXIubmFtZSArCi0gICAgICAgICAgICAiKCIgKyBtZW1iZXIuYXJndW1lbnRz
Lm1hcChmdW5jdGlvbihtKSB7IHJldHVybiBtLnR5cGUuaWRsVHlwZTsgfSkgKwotICAgICAgICAg
ICAgIikiKTsKLSAgICAgICAgfQotICAgICAgICAvLyBUT0RPOiBjaGVjayBtb3JlIG1lbWJlciB0
eXBlcywgbGlrZSBzdHJpbmdpZmllcgotICAgIH0KLX0KLQotLy9AfQotSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X29iamVjdCA9IGZ1bmN0aW9uKGRlc2MpCi0vL0B7Ci17Ci0gICAgdmFyIG9i
aiwgZXhjZXB0aW9uID0gbnVsbDsKLSAgICB0cnkKLSAgICB7Ci0gICAgICAgIG9iaiA9IGV2YWwo
ZGVzYyk7Ci0gICAgfQotICAgIGNhdGNoKGUpCi0gICAgewotICAgICAgICBleGNlcHRpb24gPSBl
OwotICAgIH0KLQotICAgIC8vIFRPRE86IFdlYklETFBhcnNlciBkb2Vzbid0IGN1cnJlbnRseSBz
dXBwb3J0IG5hbWVkIGxlZ2FjeWNhbGxlcnMsIHNvIEknbQotICAgIC8vIG5vdCBzdXJlIHdoYXQg
dGhvc2Ugd291bGQgbG9vayBsaWtlIGluIHRoZSBBU1QKLSAgICB2YXIgZXhwZWN0ZWRfdHlwZW9m
ID0gdGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24obWVtYmVyKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIG1lbWJlci5sZWdhY3ljYWxsZXIKLSAgICAgICAgICAgIHx8ICgiaWRsVHlwZSIgaW4gbWVt
YmVyICYmIG1lbWJlci5pZGxUeXBlLmxlZ2FjeWNhbGxlcikKLSAgICAgICAgICAgIHx8ICgiaWRs
VHlwZSIgaW4gbWVtYmVyICYmIHR5cGVvZiBtZW1iZXIuaWRsVHlwZSA9PSAib2JqZWN0IgotICAg
ICAgICAgICAgJiYgImlkbFR5cGUiIGluIG1lbWJlci5pZGxUeXBlICYmIG1lbWJlci5pZGxUeXBl
LmlkbFR5cGUgPT0gImxlZ2FjeWNhbGxlciIpOwotICAgIH0pID8gImZ1bmN0aW9uIiA6ICJvYmpl
Y3QiOwotCi0gICAgdGhpcy50ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mKGRlc2MsIG9iaiwgZXhj
ZXB0aW9uLCBleHBlY3RlZF90eXBlb2YpOwotICAgIHZhciBjdXJyZW50X2ludGVyZmFjZSA9IHRo
aXM7Ci0gICAgd2hpbGUgKGN1cnJlbnRfaW50ZXJmYWNlKQotICAgIHsKLSAgICAgICAgaWYgKCEo
Y3VycmVudF9pbnRlcmZhY2UubmFtZSBpbiB0aGlzLmFycmF5Lm1lbWJlcnMpKQotICAgICAgICB7
Ci0gICAgICAgICAgICB0aHJvdyAiSW50ZXJmYWNlICIgKyBjdXJyZW50X2ludGVyZmFjZS5uYW1l
ICsgIiBub3QgZm91bmQgKGluaGVyaXRlZCBieSAiICsgdGhpcy5uYW1lICsgIikiOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChjdXJyZW50X2ludGVyZmFjZS5wcmV2ZW50X211bHRpcGxlX3Rlc3Rp
bmcgJiYgY3VycmVudF9pbnRlcmZhY2UuYWxyZWFkeV90ZXN0ZWQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBjdXJyZW50X2ludGVyZmFjZS50ZXN0
X2ludGVyZmFjZV9vZihkZXNjLCBvYmosIGV4Y2VwdGlvbiwgZXhwZWN0ZWRfdHlwZW9mKTsKLSAg
ICAgICAgY3VycmVudF9pbnRlcmZhY2UgPSB0aGlzLmFycmF5Lm1lbWJlcnNbY3VycmVudF9pbnRl
cmZhY2UuYmFzZV07Ci0gICAgfQotfQotCi0vL0B9Ci1JZGxJbnRlcmZhY2UucHJvdG90eXBlLnRl
c3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbiwg
ZXhwZWN0ZWRfdHlwZW9mKQotLy9AewotewotICAgIC8vIFdlIGNhbid0IGVhc2lseSB0ZXN0IHRo
YXQgaXRzIHByb3RvdHlwZSBpcyBjb3JyZWN0IGlmIHRoZXJlJ3Mgbm8KLSAgICAvLyBpbnRlcmZh
Y2Ugb2JqZWN0LCBvciB0aGUgb2JqZWN0IGlzIGZyb20gYSBkaWZmZXJlbnQgZ2xvYmFsIGVudmly
b25tZW50Ci0gICAgLy8gKG5vdCBpbnN0YW5jZW9mIE9iamVjdCkuICBUT0RPOiB0ZXN0IGluIHRo
aXMgY2FzZSB0aGF0IGl0cyBwcm90b3R5cGUgYXQKLSAgICAvLyBsZWFzdCBsb29rcyBjb3JyZWN0
LCBldmVuIGlmIHdlIGNhbid0IHRlc3QgdGhhdCBpdCdzIGFjdHVhbGx5IGNvcnJlY3QuCi0gICAg
aWYgKCF0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikKLSAg
ICAmJiAodHlwZW9mIG9iaiAhPSBleHBlY3RlZF90eXBlb2YgfHwgb2JqIGluc3RhbmNlb2YgT2Jq
ZWN0KSkKLSAgICB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlvbiwgbnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9u
IHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlw
ZW9mIG9iaiwgZXhwZWN0ZWRfdHlwZW9mLCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwotICAgICAg
ICAgICAgYXNzZXJ0X293bl9wcm9wZXJ0eSh3aW5kb3csIHRoaXMubmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIndpbmRvdyBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
ICsgZm9ybWF0X3ZhbHVlKHRoaXMubmFtZSkpOwotICAgICAgICAgICAgYXNzZXJ0X293bl9wcm9w
ZXJ0eSh3aW5kb3dbdGhpcy5uYW1lXSwgInByb3RvdHlwZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdpbnRlcmZhY2UgIicgKyB0aGlzLm5hbWUgKyAnIiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwotCi0gICAgICAgICAgICAvLyAiVGhlIHZhbHVl
IG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZQotICAgICAgICAg
ICAgLy8gcGxhdGZvcm0gb2JqZWN0IGlzIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBv
ZiB0aGUgcHJpbWFyeQotICAgICAgICAgICAgLy8gaW50ZXJmYWNlIGZyb20gdGhlIHBsYXRmb3Jt
IG9iamVjdOKAmXMgYXNzb2NpYXRlZCBnbG9iYWwKLSAgICAgICAgICAgIC8vIGVudmlyb25tZW50
LiIKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1t0aGlzLm5hbWVdLnByb3RvdHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYyArICIncyBwcm90b3R5cGUgaXMgbm90ICIg
KyB0aGlzLm5hbWUgKyAiLnByb3RvdHlwZSIpOwotICAgICAgICB9LmJpbmQodGhpcyksIHRoaXMu
bmFtZSArICIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiAiICsgZGVzYyk7Ci0gICAgfQot
Ci0gICAgLy8gIlRoZSBjbGFzcyBzdHJpbmcgb2YgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBs
ZW1lbnRzIG9uZSBvciBtb3JlCi0gICAgLy8gaW50ZXJmYWNlcyBtdXN0IGJlIHRoZSBpZGVudGlm
aWVyIG9mIHRoZSBwcmltYXJ5IGludGVyZmFjZSBvZiB0aGUKLSAgICAvLyBwbGF0Zm9ybSBvYmpl
Y3QuIgotICAgIHRlc3QoZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhl
eGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2Jq
ZWN0Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG9iaiwgZXhwZWN0ZWRfdHlwZW9m
LCAid3JvbmcgdHlwZW9mIG9iamVjdCIpOwotICAgICAgICBhc3NlcnRfY2xhc3Nfc3RyaW5nKG9i
aiwgdGhpcy5uYW1lLCAiY2xhc3Mgc3RyaW5nIG9mICIgKyBkZXNjKTsKLSAgICAgICAgaWYgKCF0
aGlzLmhhc19zdHJpbmdpZmllcigpKQotICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKFN0cmluZyhvYmopLCAiW29iamVjdCAiICsgdGhpcy5uYW1lICsgIl0iLCAiU3RyaW5nKCIg
KyBkZXNjICsgIikiKTsKLSAgICAgICAgfQotICAgIH0uYmluZCh0aGlzKSwgIlN0cmluZ2lmaWNh
dGlvbiBvZiAiICsgZGVzYyk7Ci19Ci0KLS8vQH0KLUlkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9pbnRlcmZhY2Vfb2YgPSBmdW5jdGlvbihkZXNjLCBvYmosIGV4Y2VwdGlvbiwgZXhwZWN0ZWRf
dHlwZW9mKQotLy9AewotewotICAgIC8vIFRPRE86IEluZGV4ZWQgYW5kIG5hbWVkIHByb3BlcnRp
ZXMsIG1vcmUgY2hlY2tzIG9uIGludGVyZmFjZSBtZW1iZXJzCi0gICAgdGhpcy5hbHJlYWR5X3Rl
c3RlZCA9IHRydWU7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVtYmVycy5sZW5n
dGg7IGkrKykKLSAgICB7Ci0gICAgICAgIHZhciBtZW1iZXIgPSB0aGlzLm1lbWJlcnNbaV07Ci0g
ICAgICAgIGlmIChtZW1iZXIuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiVW5mb3JnZWFibGUiKSkK
LSAgICAgICAgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbigpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2Ygb2JqLCBleHBlY3RlZF90eXBlb2YsICJ3cm9uZyB0eXBlb2Ygb2Jq
ZWN0Iik7Ci0gICAgICAgICAgICAgICAgZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzKG9i
aiwgbWVtYmVyKTsKLSAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRl
cmZhY2U6ICIgKyBkZXNjICsgJyBtdXN0IGhhdmUgb3duIHByb3BlcnR5ICInICsgbWVtYmVyLm5h
bWUgKyAnIicpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKChtZW1iZXIudHlwZSA9PSAi
Y29uc3QiCi0gICAgICAgIHx8IG1lbWJlci50eXBlID09ICJhdHRyaWJ1dGUiCi0gICAgICAgIHx8
IG1lbWJlci50eXBlID09ICJvcGVyYXRpb24iKQotICAgICAgICAmJiBtZW1iZXIubmFtZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbigpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleGNlcHRpb24sIG51bGwsICJVbmV4cGVjdGVkIGV4
Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0Iik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh0eXBlb2Ygb2JqLCBleHBlY3RlZF90eXBlb2YsICJ3cm9uZyB0eXBlb2Ygb2JqZWN0
Iik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2luaGVyaXRzKG9iaiwgbWVtYmVyLm5hbWUpOwot
ICAgICAgICAgICAgICAgIGlmIChtZW1iZXIudHlwZSA9PSAiY29uc3QiKQotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpbbWVtYmVyLm5hbWVd
LCBldmFsKG1lbWJlci52YWx1ZSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBpZiAobWVtYmVyLnR5cGUgPT0gImF0dHJpYnV0ZSIpCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAvLyBBdHRyaWJ1dGVzIGFyZSBhY2Nlc3NvciBwcm9wZXJ0aWVzLCBz
byB0aGV5IG1pZ2h0Ci0gICAgICAgICAgICAgICAgICAgIC8vIGxlZ2l0aW1hdGVseSB0aHJvdyBh
biBleGNlcHRpb24gcmF0aGVyIHRoYW4gcmV0dXJuaW5nCi0gICAgICAgICAgICAgICAgICAgIC8v
IGFueXRoaW5nLgotICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHksIHRocm93biA9IGZh
bHNlOwotICAgICAgICAgICAgICAgICAgICB0cnkKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgPSBvYmpbbWVtYmVyLm5hbWVdOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKQotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd24gPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmICghdGhyb3duKQotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFycmF5LmFz
c2VydF90eXBlX2lzKHByb3BlcnR5LCBtZW1iZXIuaWRsVHlwZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1lbWJlci50eXBl
ID09ICJvcGVyYXRpb24iKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh0eXBlb2Ygb2JqW21lbWJlci5uYW1lXSwgImZ1bmN0aW9uIik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGlu
dGVyZmFjZTogIiArIGRlc2MgKyAnIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiJyArIG1lbWJlci5u
YW1lICsgJyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKCcgKyBpICsgJyknKTsKLSAgICAgICAgfQot
ICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIHdyb25nIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBvcGVy
YXRpb25zIHdpdGggdGhlIHNhbWUKLSAgICAgICAgLy8gaWRlbnRpZmllci4KLSAgICAgICAgLy8g
VE9ETzogVGVzdCBwYXNzaW5nIGFyZ3VtZW50cyBvZiB0aGUgd3JvbmcgdHlwZS4KLSAgICAgICAg
aWYgKG1lbWJlci50eXBlID09ICJvcGVyYXRpb24iICYmIG1lbWJlci5uYW1lICYmIG1lbWJlci5h
cmd1bWVudHMubGVuZ3RoKQotICAgICAgICB7Ci0gICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV4Y2VwdGlvbiwg
bnVsbCwgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QiKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBvYmosIGV4cGVjdGVkX3R5cGVvZiwg
Indyb25nIHR5cGVvZiBvYmplY3QiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfaW5oZXJpdHMo
b2JqLCBtZW1iZXIubmFtZSk7Ci0gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTsKLSAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lbWJlci5hcmd1bWVudHMubGVuZ3RoOyBp
KyspCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAobWVtYmVyLmFy
Z3VtZW50c1tpXS5vcHRpb25hbCkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgb2JqW21lbWJlci5uYW1lXS5h
cHBseShvYmosIGFyZ3MpOwotICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksICJDYWxs
ZWQgd2l0aCAiICsgaSArICIgYXJndW1lbnRzIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgYXJn
cy5wdXNoKGNyZWF0ZV9zdWl0YWJsZV9vYmplY3QobWVtYmVyLmFyZ3VtZW50c1tpXS50eXBlKSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUg
KyAiIGludGVyZmFjZTogY2FsbGluZyAiICsgbWVtYmVyLm5hbWUgKwotICAgICAgICAgICAgIigi
ICsgbWVtYmVyLmFyZ3VtZW50cy5tYXAoZnVuY3Rpb24obSkgeyByZXR1cm4gbS50eXBlLmlkbFR5
cGU7IH0pICsKLSAgICAgICAgICAgICIpIG9uICIgKyBkZXNjICsgIiB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLS8v
QH0KLUlkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX3N0cmluZ2lmaWVyID0gZnVuY3Rpb24oKQot
Ly9AewotewotICAgIGlmICh0aGlzLm1lbWJlcnMuc29tZShmdW5jdGlvbihtZW1iZXIpIHsgcmV0
dXJuIG1lbWJlci5zdHJpbmdpZmllciB9KSkgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0gICAgaWYgKHRoaXMuYmFzZSAmJgotICAgICAgICB0aGlzLmFycmF5Lm1lbWJlcnNbdGhpcy5i
YXNlXS5oYXNfc3RyaW5naWZpZXIoKSkgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi0vL0B9Ci1mdW5jdGlvbiBkb19pbnRlcmZhY2VfYXR0cmli
dXRlX2Fzc2VydHMob2JqLCBtZW1iZXIpCi0vL0B7Ci17Ci0gICAgLy8gIkZvciBlYWNoIGF0dHJp
YnV0ZSBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2UsIHRoZXJlIG11c3QgZXhpc3QgYQotICAgIC8v
IGNvcnJlc3BvbmRpbmcgcHJvcGVydHkuIElmIHRoZSBhdHRyaWJ1dGUgd2FzIGRlY2xhcmVkIHdp
dGggdGhlCi0gICAgLy8gW1VuZm9yZ2VhYmxlXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4gdGhl
IHByb3BlcnR5IGV4aXN0cyBvbiBldmVyeQotICAgIC8vIG9iamVjdCB0aGF0IGltcGxlbWVudHMg
dGhlIGludGVyZmFjZS4gIE90aGVyd2lzZSwgaXQgZXhpc3RzIG9uIHRoZQotICAgIC8vIGludGVy
ZmFjZeKAmXMgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuIgotICAgIC8vCi0gICAgLy8gVGhp
cyBpcyBjYWxsZWQgYnkgdGVzdF9zZWxmKCkgd2l0aCB0aGUgcHJvdG90eXBlIGFzIG9iaiwgYW5k
IGJ5Ci0gICAgLy8gdGVzdF9pbnRlcmZhY2Vfb2YoKSB3aXRoIHRoZSBvYmplY3QgYXMgb2JqLgot
ICAgIGFzc2VydF9vd25fcHJvcGVydHkob2JqLCBtZW1iZXIubmFtZSk7Ci0KLSAgICAvLyAiVGhl
IHByb3BlcnR5IGhhcyBhdHRyaWJ1dGVzIHsgW1tHZXRdXTogRywgW1tTZXRdXTogUywgW1tFbnVt
ZXJhYmxlXV06Ci0gICAgLy8gdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogY29uZmlndXJhYmxlIH0s
IHdoZXJlOgotICAgIC8vICJjb25maWd1cmFibGUgaXMgZmFsc2UgaWYgdGhlIGF0dHJpYnV0ZSB3
YXMgZGVjbGFyZWQgd2l0aCB0aGUKLSAgICAvLyBbVW5mb3JnZWFibGVdIGV4dGVuZGVkIGF0dHJp
YnV0ZSBhbmQgdHJ1ZSBvdGhlcndpc2U7Ci0gICAgLy8gIkcgaXMgdGhlIGF0dHJpYnV0ZSBnZXR0
ZXIsIGRlZmluZWQgYmVsb3c7IGFuZAotICAgIC8vICJTIGlzIHRoZSBhdHRyaWJ1dGUgc2V0dGVy
LCBhbHNvIGRlZmluZWQgYmVsb3cuIgotICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihvYmosIG1lbWJlci5uYW1lKTsKLSAgICBhc3NlcnRfZmFsc2UoInZhbHVl
IiBpbiBkZXNjLCAncHJvcGVydHkgZGVzY3JpcHRvciBoYXMgdmFsdWUgYnV0IGlzIHN1cHBvc2Vk
IHRvIGJlIGFjY2Vzc29yJyk7Ci0gICAgYXNzZXJ0X2ZhbHNlKCJ3cml0YWJsZSIgaW4gZGVzYywg
J3Byb3BlcnR5IGRlc2NyaXB0b3IgaGFzICJ3cml0YWJsZSIgZmllbGQgYnV0IGlzIHN1cHBvc2Vk
IHRvIGJlIGFjY2Vzc29yJyk7Ci0gICAgYXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlLCAicHJv
cGVydHkgaXMgbm90IGVudW1lcmFibGUiKTsKLSAgICBpZiAobWVtYmVyLmhhc19leHRlbmRlZF9h
dHRyaWJ1dGUoIlVuZm9yZ2VhYmxlIikpCi0gICAgewotICAgICAgICBhc3NlcnRfZmFsc2UoZGVz
Yy5jb25maWd1cmFibGUsICJbVW5mb3JnZWFibGVdIHByb3BlcnR5IG11c3Qgbm90IGJlIGNvbmZp
Z3VyYWJsZSIpOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICBhc3NlcnRfdHJ1ZShk
ZXNjLmNvbmZpZ3VyYWJsZSwgInByb3BlcnR5IG11c3QgYmUgY29uZmlndXJhYmxlIik7Ci0gICAg
fQotCi0gICAgLy8gIlRoZSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGEgRnVuY3Rpb24gb2JqZWN0IHdo
b3NlIGJlaGF2aW9yIHdoZW4gaW52b2tlZAotICAgIC8vIGlzIGFzIGZvbGxvd3M6Ci0gICAgLy8g
Ii4uLgotICAgIC8vICJUaGUgdmFsdWUgb2YgdGhlIEZ1bmN0aW9uIG9iamVjdOKAmXMg4oCcbGVu
Z3Ro4oCdIHByb3BlcnR5IGlzIHRoZSBOdW1iZXIKLSAgICAvLyB2YWx1ZSAwLiIKLSAgICBhc3Nl
cnRfZXF1YWxzKHR5cGVvZiBkZXNjLmdldCwgImZ1bmN0aW9uIiwgImdldHRlciBtdXN0IGJlIEZ1
bmN0aW9uIik7Ci0gICAgYXNzZXJ0X2VxdWFscyhkZXNjLmdldC5sZW5ndGgsIDAsICJnZXR0ZXIg
bGVuZ3RoIG11c3QgYmUgMCIpOwotICAgIC8vIFRPRE86IEFjY291bnQgZm9yIExlbmllbnRUaGlz
Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIGRlc2MuZ2V0LmNhbGwoe30pOwotICAgIH0uYmluZCh0aGlzKSwgImNhbGxpbmcgZ2V0
dGVyIG9uIHdyb25nIG9iamVjdCB0eXBlIG11c3QgdGhyb3cgVHlwZUVycm9yIik7Ci0KLSAgICAv
LyBUT0RPOiBUZXN0IGNhbGxpbmcgc2V0dGVyIG9uIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIChz
aG91bGQgdGhyb3cKLSAgICAvLyBUeXBlRXJyb3IgaW4gbW9zdCBjYXNlcykuCi0gICAgLy8KLSAg
ICAvLyAiVGhlIGF0dHJpYnV0ZSBzZXR0ZXIgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdHRyaWJ1dGUg
aXMgZGVjbGFyZWQgcmVhZG9ubHkKLSAgICAvLyBhbmQgaGFzIG5laXRoZXIgYSBbUHV0Rm9yd2Fy
ZHNdIG5vciBhIFtSZXBsYWNlYWJsZV0gZXh0ZW5kZWQgYXR0cmlidXRlCi0gICAgLy8gZGVjbGFy
ZWQgb24gaXQuICBPdGhlcndpc2UsIGl0IGlzIGEgRnVuY3Rpb24gb2JqZWN0IHdob3NlIGJlaGF2
aW9yIHdoZW4KLSAgICAvLyBpbnZva2VkIGlzIGFzIGZvbGxvd3M6Ci0gICAgLy8gIi4uLgotICAg
IC8vICJUaGUgdmFsdWUgb2YgdGhlIEZ1bmN0aW9uIG9iamVjdOKAmXMg4oCcbGVuZ3Ro4oCdIHBy
b3BlcnR5IGlzIHRoZSBOdW1iZXIKLSAgICAvLyB2YWx1ZSAxLiIKLSAgICBpZiAobWVtYmVyLnJl
YWRvbmx5Ci0gICAgJiYgIW1lbWJlci5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJQdXRGb3J3YXJk
cyIpCi0gICAgJiYgIW1lbWJlci5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJSZXBsYWNlYWJsZSIp
KQotICAgIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnNldCwgdW5kZWZpbmVkLCAic2V0
dGVyIG11c3QgYmUgdW5kZWZpbmVkIGZvciByZWFkb25seSBhdHRyaWJ1dGVzIik7Ci0gICAgfQot
ICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2Muc2V0LCAi
ZnVuY3Rpb24iLCAic2V0dGVyIG11c3QgYmUgZnVuY3Rpb24gZm9yIFB1dEZvcndhcmRzLCBSZXBs
YWNlYWJsZSwgb3Igbm9uLXJlYWRvbmx5IGF0dHJpYnV0ZXMiKTsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkZXNjLnNldC5sZW5ndGgsIDEsICJzZXR0ZXIgbGVuZ3RoIG11c3QgYmUgMSIpOwotICAg
IH0KLX0KLS8vQH0KLQotLy8vIElkbEludGVyZmFjZU1lbWJlciAvLy8KLWZ1bmN0aW9uIElkbElu
dGVyZmFjZU1lbWJlcihvYmopCi0vL0B7Ci17Ci0gICAgLyoqCi0gICAgICogb2JqIGlzIGFuIG9i
amVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJpZk1lbWJlciIgcHJvZHVjdGlv
bi4KLSAgICAgKiBXZSBqdXN0IGZvcndhcmQgYWxsIHByb3BlcnRpZXMgdG8gdGhpcyBvYmplY3Qg
d2l0aG91dCBtb2RpZmljYXRpb24sCi0gICAgICogZXhjZXB0IGZvciBzcGVjaWFsIGV4dEF0dHJz
IGhhbmRsaW5nLgotICAgICAqLwotICAgIGZvciAodmFyIGsgaW4gb2JqKQotICAgIHsKLSAgICAg
ICAgdGhpc1trXSA9IG9ialtrXTsKLSAgICB9Ci0gICAgaWYgKCEoImV4dEF0dHJzIiBpbiB0aGlz
KSkKLSAgICB7Ci0gICAgICAgIHRoaXMuZXh0QXR0cnMgPSBbXTsKLSAgICB9Ci19Ci0KLS8vQH0K
LUlkbEludGVyZmFjZU1lbWJlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKElkbE9iamVjdC5w
cm90b3R5cGUpOwotCi0vLy8gSW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9ucyAvLy8KLWZ1bmN0aW9u
IGNyZWF0ZV9zdWl0YWJsZV9vYmplY3QodHlwZSkKLS8vQHsKLXsKLSAgICAvKioKLSAgICAgKiB0
eXBlIGlzIGFuIG9iamVjdCBwcm9kdWNlZCBieSB0aGUgV2ViSURMUGFyc2VyLmpzICJ0eXBlIiBw
cm9kdWN0aW9uLiAgV2UKLSAgICAgKiByZXR1cm4gYSBKYXZhU2NyaXB0IHZhbHVlIHRoYXQgbWF0
Y2hlcyB0aGUgdHlwZSwgaWYgd2UgY2FuIGZpZ3VyZSBvdXQKLSAgICAgKiBob3cuCi0gICAgICov
Ci0gICAgaWYgKHR5cGUubnVsbGFibGUpCi0gICAgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICB9Ci0gICAgc3dpdGNoICh0eXBlLmlkbFR5cGUpCi0gICAgewotICAgICAgICBjYXNlICJhbnki
OgotICAgICAgICBjYXNlICJib29sZWFuIjoKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgICAgIGNhc2UgImJ5dGUiOiBjYXNlICJvY3RldCI6IGNhc2UgInNob3J0IjogY2FzZSAidW5z
aWduZWQgc2hvcnQiOgotICAgICAgICBjYXNlICJsb25nIjogY2FzZSAidW5zaWduZWQgbG9uZyI6
IGNhc2UgImxvbmcgbG9uZyI6Ci0gICAgICAgIGNhc2UgInVuc2lnbmVkIGxvbmcgbG9uZyI6IGNh
c2UgImZsb2F0IjogY2FzZSAiZG91YmxlIjoKLSAgICAgICAgICAgIHJldHVybiA3OwotCi0gICAg
ICAgIGNhc2UgIkRPTVN0cmluZyI6Ci0gICAgICAgICAgICByZXR1cm4gImZvbyI7Ci0KLSAgICAg
ICAgY2FzZSAib2JqZWN0IjoKLSAgICAgICAgICAgIHJldHVybiB7YTogImIifTsKLQotICAgICAg
ICBjYXNlICJOb2RlIjoKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiYWJjIik7Ci0gICAgfQotICAgIHJldHVybiBudWxsOwotfQotLy9AfQotfSkoKTsKLS8vIHZp
bTogc2V0IGV4cGFuZHRhYiBzaGlmdHdpZHRoPTQgdGFic3RvcD00IGZvbGRtYXJrZXI9QHssQH0g
Zm9sZG1ldGhvZD1tYXJrZXI6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzY1MDg0ZjNmODIxMTZmODVmMGE1ZWNjNWFkNzg4YmY4Y2RhNDcxMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBA
QAotaHRtbCB7Ci0gICAgZm9udC1mYW1pbHk6RGVqYVZ1IFNhbnMsIEJpdHN0cmVhbSBWZXJhIFNh
bnMsIEFyaWFsLCBTYW5zOwotfQotCi0jbG9nIC53YXJuaW5nLAotI2xvZyAud2FybmluZyBhIHsK
LSAgY29sb3I6IGJsYWNrOwotICBiYWNrZ3JvdW5kOiB5ZWxsb3c7Ci19Ci0KLSNsb2cgLmVycm9y
LAotI2xvZyAuZXJyb3IgYSB7Ci0gIGNvbG9yOiB3aGl0ZTsKLSAgYmFja2dyb3VuZDogcmVkOwot
fQotCi0jbG9nIHByZSB7Ci0gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwotICBwYWRkaW5nOiAx
ZW07Ci19Ci0KLXNlY3Rpb24jc3VtbWFyeSB7Ci0gICAgbWFyZ2luLWJvdHRvbToxZW07Ci19Ci0K
LXRhYmxlI3Jlc3VsdHMgewotICAgIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsKLSAgICB0YWJs
ZS1sYXlvdXQ6Zml4ZWQ7Ci0gICAgd2lkdGg6MTAwJTsKLX0KLQotdGFibGUjcmVzdWx0cyB0aDpm
aXJzdC1jaGlsZCwKLXRhYmxlI3Jlc3VsdHMgdGQ6Zmlyc3QtY2hpbGQgewotICAgIHdpZHRoOjRl
bTsKLX0KLQotdGFibGUjcmVzdWx0cyB0aDpsYXN0LWNoaWxkLAotdGFibGUjcmVzdWx0cyB0ZDps
YXN0LWNoaWxkIHsKLSAgICB3aWR0aDo1MCU7Ci19Ci0KLXRhYmxlI3Jlc3VsdHMuYXNzZXJ0aW9u
cyB0aDpsYXN0LWNoaWxkLAotdGFibGUjcmVzdWx0cy5hc3NlcnRpb25zIHRkOmxhc3QtY2hpbGQg
ewotICAgIHdpZHRoOjM1JTsKLX0KLQotdGFibGUjcmVzdWx0cyB0aCB7Ci0gICAgcGFkZGluZzow
OwotICAgIHBhZGRpbmctYm90dG9tOjAuNWVtOwotICAgIGJvcmRlci1ib3R0b206bWVkaXVtIHNv
bGlkIGJsYWNrOwotfQotCi10YWJsZSNyZXN1bHRzIHRkIHsKLSAgICBwYWRkaW5nOjFlbTsKLSAg
ICBwYWRkaW5nLWJvdHRvbTowLjVlbTsKLSAgICBib3JkZXItYm90dG9tOnRoaW4gc29saWQgYmxh
Y2s7Ci19Ci0KLXRyLnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCB7Ci0gICAgY29sb3I6Z3JlZW47Ci19
Ci0KLXRyLmZhaWwgPiB0ZDpmaXJzdC1jaGlsZCB7Ci0gICAgY29sb3I6cmVkOwotfQotCi10ci50
aW1lb3V0ID4gdGQ6Zmlyc3QtY2hpbGQgewotICAgIGNvbG9yOnJlZDsKLX0KLQotdHIubm90cnVu
ID4gdGQ6Zmlyc3QtY2hpbGQgewotICAgIGNvbG9yOmJsdWU7Ci19Ci0KLS5wYXNzID4gdGQ6Zmly
c3QtY2hpbGQsIC5mYWlsID4gdGQ6Zmlyc3QtY2hpbGQsIC50aW1lb3V0ID4gdGQ6Zmlyc3QtY2hp
bGQsIC5ub3RydW4gPiB0ZDpmaXJzdC1jaGlsZCB7Ci0gICAgZm9udC12YXJpYW50OnNtYWxsLWNh
cHM7Ci19Ci0KLXRhYmxlI3Jlc3VsdHMgc3BhbiB7Ci0gICAgZGlzcGxheTpibG9jazsKLX0KLQot
dGFibGUjcmVzdWx0cyBzcGFuLmV4cGVjdGVkIHsKLSAgICBmb250LWZhbWlseTpEZWphVnUgU2Fu
cyBNb25vLCBCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8sIE1vbm9zcGFjZTsKLSAgICB3aGl0ZS1z
cGFjZTpwcmU7Ci19Ci0KLXRhYmxlI3Jlc3VsdHMgc3Bhbi5hY3R1YWwgewotICAgIGZvbnQtZmFt
aWx5OkRlamFWdSBTYW5zIE1vbm8sIEJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubywgTW9ub3NwYWNl
OwotICAgIHdoaXRlLXNwYWNlOnByZTsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyNzI4ZTIyZjdhYzZkZmEzOGExMjc4ODA4OWU5OWJiMzg0Yzk5OTViLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDIy
NDcgKzAsMCBAQAotLyoKLURpc3RyaWJ1dGVkIHVuZGVyIGJvdGggdGhlIFczQyBUZXN0IFN1aXRl
IExpY2Vuc2UgWzFdIGFuZCB0aGUgVzNDCi0zLWNsYXVzZSBCU0QgTGljZW5zZSBbMl0uIFRvIGNv
bnRyaWJ1dGUgdG8gYSBXM0MgVGVzdCBTdWl0ZSwgc2VlIHRoZQotcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDgvMDQtdGVzdHN1aXRlLWxpY2Vuc2UKLVsyXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDgvMDMtYnNkLWxpY2Vuc2UKLVszXSBodHRwOi8vd3d3LnczLm9yZy8y
MDA0LzEwLzI3LXRlc3RjYXNlcwotKi8KLQotLyoKLSAqID09IEludHJvZHVjdGlvbiA9PQotICoK
LSAqIFRoaXMgZmlsZSBwcm92aWRlcyBhIGZyYW1ld29yayBmb3Igd3JpdGluZyB0ZXN0Y2FzZXMu
IEl0IGlzIGludGVuZGVkIHRvCi0gKiBwcm92aWRlIGEgY29udmVuaWVudCBBUEkgZm9yIG1ha2lu
ZyBjb21tb24gYXNzZXJ0aW9ucywgYW5kIHRvIHdvcmsgYm90aAotICogZm9yIHRlc3Rpbmcgc3lu
Y2hyb25vdXMgYW5kIGFzeW5jaHJvbm91cyBET00gZmVhdHVyZXMgaW4gYSB3YXkgdGhhdAotICog
cHJvbW90ZXMgY2xlYXIsIHJvYnVzdCwgdGVzdHMuCi0gKgotICogPT0gQmFzaWMgVXNhZ2UgPT0K
LSAqCi0gKiBUbyB1c2UgdGhpcyBmaWxlLCBpbXBvcnQgdGhlIHNjcmlwdCBhbmQgdGhlIHRlc3Ro
YXJuZXNzcmVwb3J0IHNjcmlwdCBpbnRvCi0gKiB0aGUgdGVzdCBkb2N1bWVudDoKLSAqIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAqIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAqCi0gKiBX
aXRoaW4gZWFjaCBmaWxlIG9uZSBtYXkgZGVmaW5lIG9uZSBvciBtb3JlIHRlc3RzLiBFYWNoIHRl
c3QgaXMgYXRvbWljCi0gKiBpbiB0aGUgc2Vuc2UgdGhhdCBhIHNpbmdsZSB0ZXN0IGhhcyBhIHNp
bmdsZSByZXN1bHQgKHBhc3MvZmFpbC90aW1lb3V0KS4KLSAqIFdpdGhpbiBlYWNoIHRlc3Qgb25l
IG1heSBoYXZlIGEgbnVtYmVyIG9mIGFzc2VydHMuIFRoZSB0ZXN0IGZhaWxzIGF0IHRoZQotICog
Zmlyc3QgZmFpbGluZyBhc3NlcnQsIGFuZCB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXN0IGlzICh0
eXBpY2FsbHkpIG5vdCBydW4uCi0gKgotICogSWYgdGhlIGZpbGUgY29udGFpbmluZyB0aGUgdGVz
dHMgaXMgYSBIVE1MIGZpbGUgd2l0aCBhbiBlbGVtZW50IG9mIGlkICJsb2ciCi0gKiB0aGlzIHdp
bGwgYmUgcG9wdWxhdGVkIHdpdGggYSB0YWJsZSBjb250YWluaW5nIHRoZSB0ZXN0IHJlc3VsdHMg
YWZ0ZXIgYWxsCi0gKiB0aGUgdGVzdHMgaGF2ZSBydW4uCi0gKgotICogTk9URTogQnkgZGVmYXVs
dCB0ZXN0cyBtdXN0IGJlIGNyZWF0ZWQgYmVmb3JlIHRoZSBsb2FkIGV2ZW50IGZpcmVzLiBGb3Ig
d2F5cwotICogICAgICAgdG8gY3JlYXRlIHRlc3RzIGFmdGVyIHRoZSBsb2FkIGV2ZW50LCBzZWUg
IkRldGVybWluaW5nIHdoZW4gYWxsIHRlc3RzCi0gKiAgICAgICBhcmUgY29tcGxldGUiLCBiZWxv
dwotICoKLSAqID09IFN5bmNocm9ub3VzIFRlc3RzID09Ci0gKgotICogVG8gY3JlYXRlIGEgc3lu
Y2hyb25vdXMgdGVzdCB1c2UgdGhlIHRlc3QoKSBmdW5jdGlvbjoKLSAqCi0gKiB0ZXN0KHRlc3Rf
ZnVuY3Rpb24sIG5hbWUsIHByb3BlcnRpZXMpCi0gKgotICogdGVzdF9mdW5jdGlvbiBpcyBhIGZ1
bmN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGNvZGUgdG8gdGVzdC4gRm9yIGV4YW1wbGUgYQotICog
dHJpdmlhbCBwYXNzaW5nIHRlc3Qgd291bGQgYmU6Ci0gKgotICogdGVzdChmdW5jdGlvbigpIHth
c3NlcnRfdHJ1ZSh0cnVlKX0sICJhc3NlcnRfdHJ1ZSB3aXRoIHRydWUiKQotICoKLSAqIFRoZSBm
dW5jdGlvbiBwYXNzZWQgaW4gaXMgcnVuIGluIHRoZSB0ZXN0KCkgY2FsbC4KLSAqCi0gKiBwcm9w
ZXJ0aWVzIGlzIGFuIG9iamVjdCB0aGF0IG92ZXJyaWRlcyBkZWZhdWx0IHRlc3QgcHJvcGVydGll
cy4gVGhlCi0gKiByZWNvZ25pc2VkIHByb3BlcnRpZXMgYXJlOgotICogICAgdGltZW91dCAtIHRo
ZSB0ZXN0IHRpbWVvdXQgaW4gbXMKLSAqCi0gKiBlLmcuCi0gKiB0ZXN0KHRlc3RfZnVuY3Rpb24s
ICJTYW1wbGUgdGVzdCIsIHt0aW1lb3V0OjEwMDB9KQotICoKLSAqIHdvdWxkIHJ1biB0ZXN0X2Z1
bmN0aW9uIHdpdGggYSB0aW1lb3V0IG9mIDFzLgotICoKLSAqIEFkZGl0aW9uYWxseSwgdGVzdC1z
cGVjaWZpYyBtZXRhZGF0YSBjYW4gYmUgcGFzc2VkIGluIHRoZSBwcm9wZXJ0aWVzLiBUaGVzZQot
ICogYXJlIHVzZWQgd2hlbiB0aGUgaW5kaXZpZHVhbCB0ZXN0IGhhcyBkaWZmZXJlbnQgbWV0YWRh
dGEgZnJvbSB0aGF0IHN0b3JlZAotICogaW4gdGhlIDxoZWFkPi4KLSAqIFRoZSByZWNvZ25pemVk
IG1ldGFkYXRhIHByb3BlcnRpZXMgYXJlOgotICoKLSAqICAgIGhlbHAgLSBUaGUgdXJsIG9yIGFu
IGFycmF5IG9mIHVybHMgb2YgdGhlIHBhcnQocykgb2YgdGhlIHNwZWNpZmljYXRpb24ocykKLSAq
ICAgICAgICAgICBiZWluZyB0ZXN0ZWQKLSAqCi0gKiAgICBhc3NlcnQgLSBBIGh1bWFuIHJlYWRh
YmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIHRlc3QgaXMgYXR0ZW1wdGluZwotICogICAgICAg
ICAgICAgdG8gcHJvdmUKLSAqCi0gKiAgICBhdXRob3IgLSBOYW1lIGFuZCBjb250YWN0IGluZm9y
bWF0aW9uIGZvciB0aGUgYXV0aG9yIG9mIHRoZSB0ZXN0IGluIHRoZQotICogICAgICAgICAgICAg
Zm9ybWF0OiAiTmFtZSA8ZW1haWxfYWRkcj4iIG9yICJOYW1lIGh0dHA6Ly9jb250YWN0L3VybCIK
LSAqCi0gKiA9PSBBc3luY2hyb25vdXMgVGVzdHMgPT0KLSAqCi0gKiBUZXN0aW5nIGFzeW5jaHJv
bm91cyBmZWF0dXJlcyBpcyBzb21ld2hhdCBtb3JlIGNvbXBsZXggc2luY2UgdGhlIHJlc3VsdCBv
ZgotICogYSB0ZXN0IG1heSBkZXBlbmQgb24gb25lIG9yIG1vcmUgZXZlbnRzIG9yIG90aGVyIGNh
bGxiYWNrcy4gVGhlIEFQSSBwcm92aWRlZAotICogZm9yIHRlc3RpbmcgdGhlc2UgZmVhdHVyZXMg
aXMgaW5kZW5kZWQgdG8gYmUgcmF0aGVyIGxvdy1sZXZlbCBidXQgaG9wZWZ1bGx5Ci0gKiBhcHBs
aWNhYmxlIHRvIG1hbnkgc2l0dWF0aW9ucy4KLSAqCi0gKiBUbyBjcmVhdGUgYSB0ZXN0LCBvbmUg
c3RhcnRzIGJ5IGdldHRpbmcgYSBUZXN0IG9iamVjdCB1c2luZyBhc3luY190ZXN0OgotICoKLSAq
IGFzeW5jX3Rlc3QobmFtZSwgcHJvcGVydGllcykKLSAqCi0gKiBlLmcuCi0gKiB2YXIgdCA9IGFz
eW5jX3Rlc3QoIlNpbXBsZSBhc3luYyB0ZXN0IikKLSAqCi0gKiBBc3NlcnRpb25zIGNhbiBiZSBh
ZGRlZCB0byB0aGUgdGVzdCBieSBjYWxsaW5nIHRoZSBzdGVwIG1ldGhvZCBvZiB0aGUgdGVzdAot
ICogb2JqZWN0IHdpdGggYSBmdW5jdGlvbiBjb250YWluaW5nIHRoZSB0ZXN0IGFzc2VydGlvbnM6
Ci0gKgotICogdC5zdGVwKGZ1bmN0aW9uKCkge2Fzc2VydF90cnVlKHRydWUpfSk7Ci0gKgotICog
V2hlbiBhbGwgdGhlIHN0ZXBzIGFyZSBjb21wbGV0ZSwgdGhlIGRvbmUoKSBtZXRob2QgbXVzdCBi
ZSBjYWxsZWQ6Ci0gKgotICogdC5kb25lKCk7Ci0gKgotICogQXMgYSBjb252ZW5pZW5jZSwgYXN5
bmNfdGVzdCBjYW4gYWxzbyB0YWtlcyBhIGZ1bmN0aW9uIGFzIGZpcnN0IGFyZ3VtZW50LgotICog
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgdGVzdCBvYmplY3QgYXMgYm90aCBpdHMg
YHRoaXNgIG9iamVjdCBhbmQKLSAqIGZpcnN0IGFyZ3VtZW50LiBUaGUgYWJvdmUgZXhhbXBsZSBj
YW4gYmUgcmV3cml0dGVuIGFzOgotICoKLSAqIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICog
ICAgIG9iamVjdC5zb21lX2V2ZW50ID0gZnVuY3Rpb24oKSB7Ci0gKiAgICAgICAgIHQuc3RlcChm
dW5jdGlvbiAoKXthc3NlcnRfdHJ1ZSh0cnVlKTsgdC5kb25lKCk7fSk7Ci0gKiAgICAgfTsKLSAq
IH0sICJTaW1wbGUgYXN5bmMgdGVzdCIpOwotICoKLSAqIHdoaWNoIGF2b2lkcyBjbHV0dGVyaW5n
IHRoZSBnbG9iYWwgc2NvcGUgd2l0aCByZWZlcmVuY2VzIHRvIGFzeW5jCi0gKiB0ZXN0cyBpbnN0
YW5jZXMuCi0gKgotICogVGhlIHByb3BlcnRpZXMgYXJndW1lbnQgaXMgaWRlbnRpY2FsIHRvIHRo
YXQgZm9yIHRlc3QoKS4KLSAqCi0gKiBJbiBtYW55IGNhc2VzIGl0IGlzIGNvbnZlbmllbnQgdG8g
cnVuIGEgc3RlcCBpbiByZXNwb25zZSB0byBhbiBldmVudCBvciBhCi0gKiBjYWxsYmFjay4gQSBj
b252ZW5pZW50IG1ldGhvZCBvZiBkb2luZyB0aGlzIGlzIHRocm91Z2ggdGhlIHN0ZXBfZnVuYyBt
ZXRob2QKLSAqIHdoaWNoIHJldHVybnMgYSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCBydW5z
IGEgdGVzdCBzdGVwLiBGb3IgZXhhbXBsZQotICoKLSAqIG9iamVjdC5zb21lX2V2ZW50ID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkge2Fzc2VydF90cnVlKGUuYSl9KTsKLSAqCi0gKiA9PSBNYWtp
bmcgYXNzZXJ0aW9ucyA9PQotICoKLSAqIEZ1bmN0aW9ucyBmb3IgbWFraW5nIGFzc2VydGlvbnMg
c3RhcnQgYXNzZXJ0XwotICogVGhlIGJlc3Qgd2F5IHRvIGdldCBhIGxpc3QgaXMgdG8gbG9vayBp
biB0aGlzIGZpbGUgZm9yIGZ1bmN0aW9ucyBuYW1lcwotICogbWF0Y2hpbmcgdGhhdCBwYXR0ZXJu
LiBUaGUgZ2VuZXJhbCBzaWduYXR1cmUgaXMKLSAqCi0gKiBhc3NlcnRfc29tZXRoaW5nKGFjdHVh
bCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQotICoKLSAqIGFsdGhvdWdoIG5vdCBhbGwgYXNzZXJ0
aW9ucyBwcmVjaXNlbHkgbWF0Y2ggdGhpcyBwYXR0ZXJuIGUuZy4gYXNzZXJ0X3RydWUKLSAqIG9u
bHkgdGFrZXMgYWN0dWFsIGFuZCBkZXNjcmlwdGlvbiBhcyBhcmd1bWVudHMuCi0gKgotICogVGhl
IGRlc2NyaXB0aW9uIHBhcmFtZXRlciBpcyB1c2VkIHRvIHByZXNlbnQgbW9yZSB1c2VmdWwgZXJy
b3IgbWVzc2FnZXMgd2hlbgotICogYSB0ZXN0IGZhaWxzCi0gKgotICogTk9URTogQWxsIGFzc2Vy
dHMgbXVzdCBiZSBsb2NhdGVkIGluIGEgdGVzdCgpIG9yIGEgc3RlcCBvZiBhbiBhc3luY190ZXN0
KCkuCi0gKiAgICAgICBhc3NlcnRzIG91dHNpZGUgdGhlc2UgcGxhY2VzIHdvbid0IGJlIGRldGVj
dGVkIGNvcnJlY3RseSBieSB0aGUgaGFybmVzcwotICogICAgICAgYW5kIG1heSBjYXVzZSBhIGZp
bGUgdG8gc3RvcCB0ZXN0aW5nLgotICoKLSAqID09IENsZWFudXAgPT0KLSAqCi0gKiBPY2Nhc2lv
bmFsbHkgdGVzdHMgbWF5IGNyZWF0ZSBzdGF0ZSB0aGF0IHdpbGwgcGVyc2lzdCBiZXlvbmQgdGhl
IHRlc3QgaXRzZWxmLgotICogSW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGVzdHMgYXJlIGluZGVw
ZW5kZW50LCBzdWNoIHN0YXRlIHNob3VsZCBiZSBjbGVhbmVkCi0gKiB1cCBvbmNlIHRoZSB0ZXN0
IGhhcyBhIHJlc3VsdC4gVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgYWRkaW5nIGNsZWFudXAKLSAq
IGNhbGxiYWNrcyB0byB0aGUgdGVzdC4gU3VjaCBjYWxsYmFja3MgYXJlIHJlZ2lzdGVyZWQgdXNp
bmcgdGhlIGFkZF9jbGVhbnVwCi0gKiBmdW5jdGlvbiBvbiB0aGUgdGVzdCBvYmplY3QuIEFsbCBy
ZWdpc3RlcmVkIGNhbGxiYWNrcyB3aWxsIGJlIHJ1biBhcyBzb29uIGFzCi0gKiB0aGUgdGVzdCBy
ZXN1bHQgaXMga25vd24uIEZvciBleGFtcGxlCi0gKiB0ZXN0KGZ1bmN0aW9uKCkgewotICogICAg
ICAgICAgd2luZG93LnNvbWVfZ2xvYmFsID0gImV4YW1wbGUiOwotICogICAgICAgICAgdGhpcy5h
ZGRfY2xlYW51cChmdW5jdGlvbigpIHtkZWxldGUgd2luZG93LnNvbWVfZ2xvYmFsfSk7Ci0gKiAg
ICAgICAgICBhc3NlcnRfdHJ1ZShmYWxzZSk7Ci0gKiAgICAgIH0pOwotICoKLSAqID09IEhhcm5l
c3MgVGltZW91dCA9PQotICoKLSAqIFRoZSBvdmVyYWxsIGhhcm5lc3MgYWRtaXRzIHR3byB0aW1l
b3V0IHZhbHVlcyAibm9ybWFsIiAodGhlCi0gKiBkZWZhdWx0KSBhbmQgImxvbmciLCB1c2VkIGZv
ciB0ZXN0cyB3aGljaCBoYXZlIGFuIHVudXN1YWxseSBsb25nCi0gKiBydW50aW1lLiBBZnRlciB0
aGUgdGltZW91dCBpcyByZWFjaGVkLCB0aGUgaGFybmVzcyB3aWxsIHN0b3AKLSAqIHdhaXRpbmcg
Zm9yIGZ1cnRoZXIgYXN5bmMgdGVzdHMgdG8gY29tcGxldGUuIEJ5IGRlZmF1bHQgdGhlCi0gKiB0
aW1lb3V0cyBhcmUgc2V0IHRvIDEwcyBhbmQgNjBzLCByZXNwZWN0aXZlbHksIGJ1dCBtYXkgYmUg
Y2hhbmdlZAotICogd2hlbiB0aGUgdGVzdCBpcyBydW4gb24gaGFyZHdhcmUgd2l0aCBkaWZmZXJl
bnQgcGVyZm9ybWFuY2UKLSAqIGNoYXJhY3RlcmlzdGljcyB0byBhIGNvbW1vbiBkZXNrdG9wIGNv
bXB1dGVyLiAgSW4gb3JkZXIgdG8gb3B0LWluCi0gKiB0byB0aGUgbG9uZ2VyIHRlc3QgdGltZW91
dCwgdGhlIHRlc3QgbXVzdCBzcGVjaWZ5IGEgbWV0YSBlbGVtZW50OgotICogPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Ci0gKgotICogPT0gU2V0dXAgPT0KLSAqCi0gKiBTb21l
dGltZXMgdGVzdHMgcmVxdWlyZSBub24tdHJpdmlhbCBzZXR1cCB0aGF0IG1heSBmYWlsLiBGb3Ig
dGhpcyBwdXJwb3NlCi0gKiB0aGVyZSBpcyBhIHNldHVwKCkgZnVuY3Rpb24sIHRoYXQgbWF5IGJl
IGNhbGxlZCB3aXRoIG9uZSBvciB0d28gYXJndW1lbnRzLgotICogVGhlIHR3byBhcmd1bWVudCB2
ZXJzaW9uIGlzOgotICoKLSAqIHNldHVwKGZ1bmMsIHByb3BlcnRpZXMpCi0gKgotICogVGhlIG9u
ZSBhcmd1bWVudCB2ZXJzaW9ucyBtYXkgb21pdCBlaXRoZXIgYXJndW1lbnQuCi0gKiBmdW5jIGlz
IGEgZnVuY3Rpb24gdG8gYmUgcnVuIHN5bmNocm9ub3VzbHkuIHNldHVwKCkgYmVjb21lcyBhIG5v
LW9wIG9uY2UKLSAqIGFueSB0ZXN0cyBoYXZlIHJldHVybmVkIHJlc3VsdHMuIFByb3BlcnRpZXMg
YXJlIGdsb2JhbCBwcm9wZXJ0aWVzIG9mIHRoZSB0ZXN0Ci0gKiBoYXJuZXNzLiBDdXJyZW50bHkg
cmVjb2duaXNlZCBwcm9wZXJ0aWVzIGFyZToKLSAqCi0gKgotICogZXhwbGljaXRfZG9uZSAtIFdh
aXQgZm9yIGFuIGV4cGxpY2l0IGNhbGwgdG8gZG9uZSgpIGJlZm9yZSBkZWNsYXJpbmcgYWxsCi0g
KiAgICAgICAgICAgICAgICAgdGVzdHMgY29tcGxldGUgKHNlZSBiZWxvdykKLSAqCi0gKiBvdXRw
dXRfZG9jdW1lbnQgLSBUaGUgZG9jdW1lbnQgdG8gd2hpY2ggcmVzdWx0cyBzaG91bGQgYmUgbG9n
Z2VkLiBCeSBkZWZhdWx0Ci0gKiAgICAgICAgICAgICAgICAgICB0aGlzIGlzIHRoZSBjdXJyZW50
IGRvY3VtZW50IGJ1dCBjb3VsZCBiZSBhbiBhbmNlc3RvcgotICogICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQgaW4gc29tZSBjYXNlcyBlLmcuIGEgU1ZHIHRlc3QgbG9hZGVkIGluIGFuIEhUTUwK
LSAqICAgICAgICAgICAgICAgICAgIHdyYXBwZXIKLSAqCi0gKiBleHBsaWNpdF90aW1lb3V0IC0g
ZGlzYWJsZSBmaWxlIHRpbWVvdXQ7IG9ubHkgc3RvcCB3YWl0aW5nIGZvciByZXN1bHRzCi0gKiAg
ICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgdGltZW91dCgpIGZ1bmN0aW9uIGlzIGNhbGxlZCAo
dHlwaWNhbGx5IGZvcgotICogICAgICAgICAgICAgICAgICAgIHVzZSB3aGVuIGludGVncmF0aW5n
IHdpdGggc29tZSBleGlzdGluZyB0ZXN0IGZyYW1ld29yawotICogICAgICAgICAgICAgICAgICAg
IHRoYXQgaGFzIGl0cyBvd24gdGltZW91dCBtZWNoYW5pc20pLgotICoKLSAqIGFsbG93X3VuY2F1
Z2h0X2V4Y2VwdGlvbiAtIGRvbid0IHRyZWF0IGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBhcyBhbiBl
cnJvcjsKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRlZCB3aGVuIGUuZy4gdGVz
dGluZyB0aGUgd2luZG93Lm9uZXJyb3IKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh
bmRsZXIuCi0gKgotICogdGltZW91dF9tdWx0aXBsaWVyIC0gTXVsdGlwbGllciB0byBhcHBseSB0
byBwZXItdGVzdCB0aW1lb3V0cy4KLSAqCi0gKiA9PSBEZXRlcm1pbmluZyB3aGVuIGFsbCB0ZXN0
cyBhcmUgY29tcGxldGUgPT0KLSAqCi0gKiBCeSBkZWZhdWx0IHRoZSB0ZXN0IGhhcm5lc3Mgd2ls
bCBhc3N1bWUgdGhlcmUgYXJlIG5vIG1vcmUgcmVzdWx0cyB0byBjb21lCi0gKiB3aGVuOgotICog
MSkgVGhlcmUgYXJlIG5vIFRlc3Qgb2JqZWN0cyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGJ1dCBu
b3QgY29tcGxldGVkCi0gKiAyKSBUaGUgbG9hZCBldmVudCBvbiB0aGUgZG9jdW1lbnQgaGFzIGZp
cmVkCi0gKgotICogVGhpcyBiZWhhdmlvdXIgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc2V0dGluZyB0
aGUgZXhwbGljaXRfZG9uZSBwcm9wZXJ0eSB0bwotICogdHJ1ZSBpbiBhIGNhbGwgdG8gc2V0dXAo
KS4gSWYgZXhwbGljaXRfZG9uZSBpcyB0cnVlLCB0aGUgdGVzdCBoYXJuZXNzIHdpbGwKLSAqIG5v
dCBhc3N1bWUgaXQgaXMgZG9uZSB1bnRpbCB0aGUgZ2xvYmFsIGRvbmUoKSBmdW5jdGlvbiBpcyBj
YWxsZWQuIE9uY2UgZG9uZSgpCi0gKiBpcyBjYWxsZWQsIHRoZSB0d28gY29uZGl0aW9ucyBhYm92
ZSBhcHBseSBsaWtlIG5vcm1hbC4KLSAqCi0gKiA9PSBHZW5lcmF0aW5nIHRlc3RzID09Ci0gKgot
ICogTk9URTogdGhpcyBmdW5jdGlvbmFsaXR5IG1heSBiZSByZW1vdmVkCi0gKgotICogVGhlcmUg
YXJlIHNjZW5hcmlvcyBpbiB3aGljaCBpcyBpcyBkZXNpcmFibGUgdG8gY3JlYXRlIGEgbGFyZ2Ug
bnVtYmVyIG9mCi0gKiAoc3luY2hyb25vdXMpIHRlc3RzIHRoYXQgYXJlIGludGVybmFsbHkgc2lt
aWxhciBidXQgdmFyeSBpbiB0aGUgcGFyYW1ldGVycwotICogdXNlZC4gVG8gbWFrZSB0aGlzIGVh
c2llciwgdGhlIGdlbmVyYXRlX3Rlc3RzIGZ1bmN0aW9uIGFsbG93cyBhIHNpbmdsZQotICogZnVu
Y3Rpb24gdG8gYmUgY2FsbGVkIHdpdGggZWFjaCBzZXQgb2YgcGFyYW1ldGVycyBpbiBhIGxpc3Q6
Ci0gKgotICogZ2VuZXJhdGVfdGVzdHModGVzdF9mdW5jdGlvbiwgcGFyYW1ldGVyX2xpc3RzLCBw
cm9wZXJ0aWVzKQotICoKLSAqIEZvciBleGFtcGxlOgotICoKLSAqIGdlbmVyYXRlX3Rlc3RzKGFz
c2VydF9lcXVhbHMsIFsKLSAqICAgICBbIlN1bSBvbmUgYW5kIG9uZSIsIDErMSwgMl0sCi0gKiAg
ICAgWyJTdW0gb25lIGFuZCB6ZXJvIiwgMSswLCAxXQotICogICAgIF0pCi0gKgotICogSXMgZXF1
aXZhbGVudCB0bzoKLSAqCi0gKiB0ZXN0KGZ1bmN0aW9uKCkge2Fzc2VydF9lcXVhbHMoMSsxLCAy
KX0sICJTdW0gb25lIGFuZCBvbmUiKQotICogdGVzdChmdW5jdGlvbigpIHthc3NlcnRfZXF1YWxz
KDErMCwgMSl9LCAiU3VtIG9uZSBhbmQgemVybyIpCi0gKgotICogTm90ZSB0aGF0IHRoZSBmaXJz
dCBpdGVtIGluIGVhY2ggcGFyYW1ldGVyIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIG5hbWUgb2YK
LSAqIHRoZSB0ZXN0LgotICoKLSAqIFRoZSBwcm9wZXJ0aWVzIGFyZ3VtZW50IGlzIGlkZW50aWNh
bCB0byB0aGF0IGZvciB0ZXN0KCkuIFRoaXMgbWF5IGJlIGEKLSAqIHNpbmdsZSBvYmplY3QgKHVz
ZWQgZm9yIGFsbCBnZW5lcmF0ZWQgdGVzdHMpIG9yIGFuIGFycmF5LgotICoKLSAqID09IENhbGxi
YWNrIEFQSSA9PQotICoKLSAqIFRoZSBmcmFtZXdvcmsgcHJvdmlkZXMgY2FsbGJhY2tzIGNvcnJl
c3BvbmRpbmcgdG8gMyBldmVudHM6Ci0gKgotICogc3RhcnQgLSBoYXBwZW5zIHdoZW4gdGhlIGZp
cnN0IFRlc3QgaXMgY3JlYXRlZAotICogcmVzdWx0IC0gaGFwcGVucyB3aGVuIGEgdGVzdCByZXN1
bHQgaXMgcmVjaWV2ZWQKLSAqIGNvbXBsZXRlIC0gaGFwcGVucyB3aGVuIGFsbCByZXN1bHRzIGFy
ZSByZWNpZXZlZAotICoKLSAqIFRoZSBwYWdlIGRlZmluaW5nIHRoZSB0ZXN0cyBtYXkgYWRkIGNh
bGxiYWNrcyBmb3IgdGhlc2UgZXZlbnRzIGJ5IGNhbGxpbmcKLSAqIHRoZSBmb2xsb3dpbmcgbWV0
aG9kczoKLSAqCi0gKiAgIGFkZF9zdGFydF9jYWxsYmFjayhjYWxsYmFjaykgLSBjYWxsYmFjayBj
YWxsZWQgd2l0aCBubyBhcmd1bWVudHMKLSAqICAgYWRkX3Jlc3VsdF9jYWxsYmFjayhjYWxsYmFj
aykgLSBjYWxsYmFjayBjYWxsZWQgd2l0aCBhIHRlc3QgYXJndW1lbnQKLSAqICAgYWRkX2NvbXBs
ZXRpb25fY2FsbGJhY2soY2FsbGJhY2spIC0gY2FsbGJhY2sgY2FsbGVkIHdpdGggYW4gYXJyYXkg
b2YgdGVzdHMKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGFu
IHN0YXR1cyBvYmplY3QKLSAqCi0gKiB0ZXN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgcHJvcGVydGll
czoKLSAqICAgc3RhdHVzOiBBIHN0YXR1cyBjb2RlLiBUaGlzIGNhbiBiZSBjb21wYXJlZCB0byB0
aGUgUEFTUywgRkFJTCwgVElNRU9VVCBhbmQKLSAqICAgICAgICAgICBOT1RSVU4gcHJvcGVydGll
cyBvbiB0aGUgdGVzdCBvYmplY3QKLSAqICAgbWVzc2FnZTogQSBtZXNzYWdlIGluZGljYXRpbmcg
dGhlIHJlYXNvbiBmb3IgZmFpbHVyZS4gSW4gdGhlIGZ1dHVyZSB0aGlzCi0gKiAgICAgICAgICAg
IHdpbGwgYWx3YXlzIGJlIGEgc3RyaW5nCi0gKgotICogIFRoZSBzdGF0dXMgb2JqZWN0IGdpdmVz
IHRoZSBvdmVyYWxsIHN0YXR1cyBvZiB0aGUgaGFybmVzcy4gSXQgaGFzIHRoZQotICogIGZvbGxv
d2luZyBwcm9wZXJ0aWVzOgotICogICAgc3RhdHVzOiBDYW4gYmUgY29tcGFyZWQgdG8gdGhlIE9L
LCBFUlJPUiBhbmQgVElNRU9VVCBwcm9wZXJ0aWVzCi0gKiAgICBtZXNzYWdlOiBBbiBlcnJvciBt
ZXNzYWdlIHNldCB3aGVuIHRoZSBzdGF0dXMgaXMgRVJST1IKLSAqCi0gKiA9PSBFeHRlcm5hbCBB
UEkgPT0KLSAqCi0gKiBJbiBvcmRlciB0byBjb2xsZWN0IHRoZSByZXN1bHRzIG9mIG11bHRpcGxl
IHBhZ2VzIGNvbnRhaW5pbmcgdGVzdHMsIHRoZSB0ZXN0Ci0gKiBoYXJuZXNzIHdpbGwsIHdoZW4g
bG9hZGVkIGluIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQsIGF0dGVtcHQgdG8gY2FsbAotICog
Y2VydGFpbiBmdW5jdGlvbnMgaW4gZWFjaCBhbmNlc3RvciBhbmQgb3BlbmVyIGJyb3dzaW5nIGNv
bnRleHQ6Ci0gKgotICogc3RhcnQgLSBzdGFydF9jYWxsYmFjawotICogcmVzdWx0IC0gcmVzdWx0
X2NhbGxiYWNrCi0gKiBjb21wbGV0ZSAtIGNvbXBsZXRpb25fY2FsbGJhY2sKLSAqCi0gKiBUaGVz
ZSBhcmUgZ2l2ZW4gdGhlIHNhbWUgYXJndW1lbnRzIGFzIHRoZSBjb3JyZXNwb25kaW5nIGludGVy
bmFsIGNhbGxiYWNrcwotICogZGVzY3JpYmVkIGFib3ZlLgotICoKLSAqID09IEV4dGVybmFsIEFQ
SSB0aHJvdWdoIGNyb3NzLWRvY3VtZW50IG1lc3NhZ2luZyA9PQotICoKLSAqIFdoZXJlIHN1cHBv
cnRlZCwgdGhlIHRlc3QgaGFybmVzcyB3aWxsIGFsc28gc2VuZCBtZXNzYWdlcyB1c2luZwotICog
Y3Jvc3MtZG9jdW1lbnQgbWVzc2FnaW5nIHRvIGVhY2ggYW5jZXN0b3IgYW5kIG9wZW5lciBicm93
c2luZyBjb250ZXh0LiBTaW5jZQotICogaXQgdXNlcyB0aGUgd2lsZGNhcmQga2V5d29yZCAoKiks
IGNyb3NzLW9yaWdpbiBjb21tdW5pY2F0aW9uIGlzIGVuYWJsZWQgYW5kCi0gKiBzY3JpcHQgb24g
ZGlmZmVyZW50IG9yaWdpbnMgY2FuIGNvbGxlY3QgdGhlIHJlc3VsdHMuCi0gKgotICogVGhpcyBB
UEkgZm9sbG93cyBzaW1pbGFyIGNvbnZlbnRpb25zIGFzIHRob3NlIGRlc2NyaWJlZCBhYm92ZSBv
bmx5IHNsaWdodGx5Ci0gKiBtb2RpZmllZCB0byBhY2NvbW1vZGF0ZSBtZXNzYWdlIGV2ZW50IEFQ
SS4gRWFjaCBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIGhhcm5lc3MKLSAqIGlzIHBhc3NlZCBhIHNp
bmdsZSB2YW5pbGxhIG9iamVjdCwgYXZhaWxhYmxlIGFzIHRoZSBgZGF0YWAgcHJvcGVydHkgb2Yg
dGhlCi0gKiBldmVudCBvYmplY3QuIFRoZXNlIG9iamVjdHMgYXJlIHN0cnVjdHVyZXMgYXMgZm9s
bG93czoKLSAqCi0gKiBzdGFydCAtIHsgdHlwZTogInN0YXJ0IiB9Ci0gKiByZXN1bHQgLSB7IHR5
cGU6ICJyZXN1bHQiLCB0ZXN0OiBUZXN0IH0KLSAqIGNvbXBsZXRlIC0geyB0eXBlOiAiY29tcGxl
dGUiLCB0ZXN0czogW1Rlc3QsIC4uLl0sIHN0YXR1czogVGVzdHNTdGF0dXMgfQotICoKLSAqID09
IExpc3Qgb2YgYXNzZXJ0aW9ucyA9PQotICoKLSAqIGFzc2VydF90cnVlKGFjdHVhbCwgZGVzY3Jp
cHRpb24pCi0gKiAgIGFzc2VydHMgdGhhdCAvYWN0dWFsLyBpcyBzdHJpY3RseSB0cnVlCi0gKgot
ICogYXNzZXJ0X2ZhbHNlKGFjdHVhbCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhhdCAv
YWN0dWFsLyBpcyBzdHJpY3RseSBmYWxzZQotICoKLSAqIGFzc2VydF9lcXVhbHMoYWN0dWFsLCBl
eHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhhdCAvYWN0dWFsLyBpcyB0aGUg
c2FtZSB2YWx1ZSBhcyAvZXhwZWN0ZWQvCi0gKgotICogYXNzZXJ0X25vdF9lcXVhbHMoYWN0dWFs
LCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhhdCAvYWN0dWFsLyBpcyBh
IGRpZmZlcmVudCB2YWx1ZSB0byAvZXhwZWN0ZWQvLiBZZXMsIHRoaXMgbWVhbnMKLSAqICAgdGhh
dCAiZXhwZWN0ZWQiIGlzIGEgbWlzbm9tZXIKLSAqCi0gKiBhc3NlcnRfaW5fYXJyYXkoYWN0dWFs
LCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhhdCAvZXhwZWN0ZWQvIGlz
IGFuIEFycmF5LCBhbmQgL2FjdHVhbC8gaXMgZXF1YWwgdG8gb25lIG9mIHRoZQotICogICBtZW1i
ZXJzIC0tIGV4cGVjdGVkLmluZGV4T2YoYWN0dWFsKSAhPSAtMQotICoKLSAqIGFzc2VydF9hcnJh
eV9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhh
dCAvYWN0dWFsLyBhbmQgL2V4cGVjdGVkLyBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhbmQgdGhlIHZh
bHVlIG9mCi0gKiAgIGVhY2ggaW5kZXhlZCBwcm9wZXJ0eSBpbiAvYWN0dWFsLyBpcyB0aGUgc3Ry
aWN0bHkgZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcKLSAqICAgcHJvcGVydHkgdmFsdWUgaW4g
L2V4cGVjdGVkLwotICoKLSAqIGFzc2VydF9hcHByb3hfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQs
IGVwc2lsb24sIGRlc2NyaXB0aW9uKQotICogICBhc3NlcnRzIHRoYXQgL2FjdHVhbC8gaXMgYSBu
dW1iZXIgd2l0aGluICsvLSAvZXBzaWxvbi8gb2YgL2V4cGVjdGVkLwotICoKLSAqIGFzc2VydF9s
ZXNzX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhh
dCAvYWN0dWFsLyBpcyBhIG51bWJlciBsZXNzIHRoYW4gL2V4cGVjdGVkLwotICoKLSAqIGFzc2Vy
dF9ncmVhdGVyX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2Vy
dHMgdGhhdCAvYWN0dWFsLyBpcyBhIG51bWJlciBncmVhdGVyIHRoYW4gL2V4cGVjdGVkLwotICoK
LSAqIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24p
Ci0gKiAgIGFzc2VydHMgdGhhdCAvYWN0dWFsLyBpcyBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1
YWwgdG8gL2V4cGVjdGVkLwotICoKLSAqIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoYWN0dWFs
LCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2VydHMgdGhhdCAvYWN0dWFsLyBpcyBh
IG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gL2V4cGVjdGVkLwotICoKLSAqIGFzc2Vy
dF9yZWdleHBfbWF0Y2goYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gKiAgIGFzc2Vy
dHMgdGhhdCAvYWN0dWFsLyBtYXRjaGVzIHRoZSByZWdleHAgL2V4cGVjdGVkLwotICoKLSAqIGFz
c2VydF9jbGFzc19zdHJpbmcob2JqZWN0LCBjbGFzc19uYW1lLCBkZXNjcmlwdGlvbikKLSAqICAg
YXNzZXJ0cyB0aGF0IHRoZSBjbGFzcyBzdHJpbmcgb2YgL29iamVjdC8gYXMgcmV0dXJuZWQgaW4K
LSAqICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBpcyBlcXVhbCB0byAvY2xhc3NfbmFtZS8u
Ci0gKgotICogYXNzZXJ0X293bl9wcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2Ny
aXB0aW9uKQotICogICBhc3NlcnQgdGhhdCBvYmplY3QgaGFzIG93biBwcm9wZXJ0eSBwcm9wZXJ0
eV9uYW1lCi0gKgotICogYXNzZXJ0X2luaGVyaXRzKG9iamVjdCwgcHJvcGVydHlfbmFtZSwgZGVz
Y3JpcHRpb24pCi0gKiAgIGFzc2VydCB0aGF0IG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIG93biBw
cm9wZXJ0eSBuYW1lZCBwcm9wZXJ0eV9uYW1lCi0gKiAgIGJ1dCB0aGF0IHByb3BlcnR5X25hbWUg
aXMgcHJlc2VudCBpbiB0aGUgcHJvdG90eXBlIGNoYWluIGZvciBvYmplY3QKLSAqCi0gKiBhc3Nl
cnRfaWRsX2F0dHJpYnV0ZShvYmplY3QsIGF0dHJpYnV0ZV9uYW1lLCBkZXNjcmlwdGlvbikKLSAq
ICAgYXNzZXJ0IHRoYXQgYW4gb2JqZWN0IHRoYXQgaXMgYW4gaW5zdGFuY2Ugb2Ygc29tZSBpbnRl
cmZhY2UgaGFzIHRoZQotICogICBhdHRyaWJ1dGUgYXR0cmlidXRlX25hbWUgZm9sbG93aW5nIHRo
ZSBjb25kaXRpb25zIHNwZWNpZmllZCBieSBXZWJJREwKLSAqCi0gKiBhc3NlcnRfcmVhZG9ubHko
b2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikKLSAqICAgYXNzZXJ0IHRoYXQgcHJv
cGVydHkgcHJvcGVydHlfbmFtZSBvbiBvYmplY3QgaXMgcmVhZG9ubHkKLSAqCi0gKiBhc3NlcnRf
dGhyb3dzKGNvZGUsIGZ1bmMsIGRlc2NyaXB0aW9uKQotICogICBjb2RlIC0gdGhlIGV4cGVjdGVk
IGV4Y2VwdGlvbjoKLSAqICAgICBvIHN0cmluZzogdGhlIHRocm93biBleGNlcHRpb24gbXVzdCBi
ZSBhIERPTUV4Y2VwdGlvbiB3aXRoIHRoZSBnaXZlbgotICogICAgICAgICAgICAgICBuYW1lLCBl
LmcuLCAiVGltZW91dEVycm9yIiAoZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZwotICog
ICAgICAgICAgICAgICB0ZXN0cywgYSBjb25zdGFudCBpcyBhbHNvIHN1cHBvcnRlZCwgZS5nLiwg
IlRJTUVPVVRfRVJSIikKLSAqICAgICBvIG9iamVjdDogdGhlIHRocm93biBleGNlcHRpb24gbXVz
dCBoYXZlIGEgcHJvcGVydHkgY2FsbGVkICJuYW1lIiB0aGF0Ci0gKiAgICAgICAgICAgICAgIG1h
dGNoZXMgY29kZS5uYW1lCi0gKiAgICAgbyBudWxsOiAgIGFsbG93IGFueSBleGNlcHRpb24gKGlu
IGdlbmVyYWwsIG9uZSBvZiB0aGUgb3B0aW9ucyBhYm92ZQotICogICAgICAgICAgICAgICBzaG91
bGQgYmUgdXNlZCkKLSAqICAgZnVuYyAtIGEgZnVuY3Rpb24gdGhhdCBzaG91bGQgdGhyb3cKLSAq
Ci0gKiBhc3NlcnRfdW5yZWFjaGVkKGRlc2NyaXB0aW9uKQotICogICBhc3NlcnRzIGlmIGNhbGxl
ZC4gVXNlZCB0byBlbnN1cmUgdGhhdCBzb21lIGNvZGVwYXRoIGlzICpub3QqIHRha2VuIGUuZy4K
LSAqICAgYW4gZXZlbnQgZG9lcyBub3QgZmlyZS4KLSAqCi0gKiBhc3NlcnRfYW55KGFzc2VydF9m
dW5jLCBhY3R1YWwsIGV4cGVjdGVkX2FycmF5LCBleHRyYV9hcmdfMSwgLi4uIGV4dHJhX2FyZ19O
KQotICogICBhc3NlcnRzIHRoYXQgb25lIGFzc2VydF9mdW5jKGFjdHVhbCwgZXhwZWN0ZWRfYXJy
YXlfTiwgZXh0cmFfYXJnMSwgLi4uLCBleHRyYV9hcmdfTikKLSAqICAgaXMgdHJ1ZSBmb3Igc29t
ZSBleHBlY3RlZF9hcnJheV9OIGluIGV4cGVjdGVkX2FycmF5LiBUaGlzIG9ubHkgd29ya3MgZm9y
IGFzc2VydF9mdW5jCi0gKiAgIHdpdGggc2lnbmF0dXJlIGFzc2VydF9mdW5jKGFjdHVhbCwgZXhw
ZWN0ZWQsIGFyZ3NfMSwgLi4uLCBhcmdzX04pLiBOb3RlIHRoYXQgdGVzdHMKLSAqICAgd2l0aCBt
dWx0aXBsZSBhbGxvd2VkIHBhc3MgY29uZGl0aW9ucyBhcmUgYmFkIHByYWN0aWNlIHVubGVzcyB0
aGUgc3BlYyBzcGVjaWZpY2FsbHkKLSAqICAgYWxsb3dzIG11bHRpcGxlIGJlaGF2aW91cnMuIFRl
c3QgYXV0aG9ycyBzaG91bGQgbm90IHVzZSB0aGlzIG1ldGhvZCBzaW1wbHkgdG8gaGlkZQotICog
ICBVQSBidWdzLgotICoKLSAqIGFzc2VydF9leGlzdHMob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBk
ZXNjcmlwdGlvbikKLSAqICAgKioqIGRlcHJlY2F0ZWQgKioqCi0gKiAgIGFzc2VydHMgdGhhdCBv
YmplY3QgaGFzIGFuIG93biBwcm9wZXJ0eSBwcm9wZXJ0eV9uYW1lCi0gKgotICogYXNzZXJ0X25v
dF9leGlzdHMob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikKLSAqICAgKioqIGRl
cHJlY2F0ZWQgKioqCi0gKiAgIGFzc2VydCB0aGF0IG9iamVjdCBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSBwcm9wZXJ0eV9uYW1lCi0gKi8KLQotKGZ1bmN0aW9uICgpCi17Ci0gICAgdmFyIGRl
YnVnID0gZmFsc2U7Ci0gICAgLy8gRm9yIFdlYktpdCwgd2Ugc2V0IGhhcm5lc3MgdGltZW91dCB0
byBhIHZlcnkgbGFyZ2UgdmFsdWUsIGV4cGVjdGluZyBydW4td2Via2l0LXRlc3RzCi0gICAgLy8g
dG8gZW5mb3JjZSB0aGUgcmlnaHQgb25lLgotICAgIHZhciBzZXR0aW5ncyA9IHsKLSAgICAgICAg
b3V0cHV0OnRydWUsCi0gICAgICAgIGhhcm5lc3NfdGltZW91dDp7Ci0gICAgICAgICAgICAibm9y
bWFsIjoxMDAwMDAwLAotICAgICAgICAgICAgImxvbmciOjEwMDAwMDAKLSAgICAgICAgfSwKLSAg
ICAgICAgdGVzdF90aW1lb3V0Om51bGwKLSAgICB9OwotCi0gICAgdmFyIHhodG1sX25zID0gImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwotCi0gICAgLy8gc2NyaXB0X3ByZWZpeCBpcyB1
c2VkIGJ5IE91dHB1dC5wcm90b3R5cGUuc2hvd19yZXN1bHRzKCkgdG8gZmlndXJlIG91dAotICAg
IC8vIHdoZXJlIHRvIGdldCB0ZXN0aGFybmVzcy5jc3MgZnJvbS4gIEl0J3MgZW5jbG9zZWQgaW4g
YW4gZXh0cmEgY2xvc3VyZSB0bwotICAgIC8vIG5vdCBwb2xsdXRlIHRoZSBsaWJyYXJ5J3MgbmFt
ZXNwYWNlIHdpdGggdmFyaWFibGVzIGxpa2UgInNyYyIuCi0gICAgdmFyIHNjcmlwdF9wcmVmaXgg
PSBudWxsOwotICAgIChmdW5jdGlvbiAoKQotICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaWYgKHNjcmlw
dHNbaV0uc3JjKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHNyYyA9IHNjcmlwdHNbaV0uc3JjOwot
ICAgICAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRzW2ldLmhyZWYpIHsKLSAgICAgICAgICAgICAg
ICAvL1NWRyBjYXNlCi0gICAgICAgICAgICAgICAgdmFyIHNyYyA9IHNjcmlwdHNbaV0uaHJlZi5i
YXNlVmFsOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoc3JjICYmIHNyYy5zbGlj
ZShzcmMubGVuZ3RoIC0gInRlc3RoYXJuZXNzLmpzIi5sZW5ndGgpID09PSAidGVzdGhhcm5lc3Mu
anMiKSB7Ci0gICAgICAgICAgICAgICAgc2NyaXB0X3ByZWZpeCA9IHNyYy5zbGljZSgwLCBzcmMu
bGVuZ3RoIC0gInRlc3RoYXJuZXNzLmpzIi5sZW5ndGgpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSkoKTsKLQotICAgIC8qCi0gICAgICog
QVBJIGZ1bmN0aW9ucwotICAgICAqLwotCi0gICAgdmFyIG5hbWVfY291bnRlciA9IDA7Ci0gICAg
ZnVuY3Rpb24gbmV4dF9kZWZhdWx0X25hbWUoKQotICAgIHsKLSAgICAgICAgLy9Eb24ndCB1c2Ug
ZG9jdW1lbnQudGl0bGUgdG8gd29yayBhcm91bmQgYW4gT3BlcmEgYnVnIGluIFhIVE1MIGRvY3Vt
ZW50cwotICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
dGl0bGUiKVswXTsKLSAgICAgICAgdmFyIHByZWZpeCA9ICh0aXRsZSAmJiB0aXRsZS5maXJzdENo
aWxkICYmIHRpdGxlLmZpcnN0Q2hpbGQuZGF0YSkgfHwgIlVudGl0bGVkIjsKLSAgICAgICAgdmFy
IHN1ZmZpeCA9IG5hbWVfY291bnRlciA+IDAgPyAiICIgKyBuYW1lX2NvdW50ZXIgOiAiIjsKLSAg
ICAgICAgbmFtZV9jb3VudGVyKys7Ci0gICAgICAgIHJldHVybiBwcmVmaXggKyBzdWZmaXg7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdChmdW5jLCBuYW1lLCBwcm9wZXJ0aWVzKQotICAgIHsK
LSAgICAgICAgdmFyIHRlc3RfbmFtZSA9IG5hbWUgPyBuYW1lIDogbmV4dF9kZWZhdWx0X25hbWUo
KTsKLSAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgPyBwcm9wZXJ0aWVzIDoge307Ci0g
ICAgICAgIHZhciB0ZXN0X29iaiA9IG5ldyBUZXN0KHRlc3RfbmFtZSwgcHJvcGVydGllcyk7Ci0g
ICAgICAgIHRlc3Rfb2JqLnN0ZXAoZnVuYywgdGVzdF9vYmosIHRlc3Rfb2JqKTsKLSAgICAgICAg
aWYgKHRlc3Rfb2JqLnBoYXNlID09PSB0ZXN0X29iai5waGFzZXMuU1RBUlRFRCkgewotICAgICAg
ICAgICAgdGVzdF9vYmouZG9uZSgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
YXN5bmNfdGVzdChmdW5jLCBuYW1lLCBwcm9wZXJ0aWVzKQotICAgIHsKLSAgICAgICAgaWYgKHR5
cGVvZiBmdW5jICE9PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgICAgICBwcm9wZXJ0aWVzID0gbmFt
ZTsKLSAgICAgICAgICAgIG5hbWUgPSBmdW5jOwotICAgICAgICAgICAgZnVuYyA9IG51bGw7Ci0g
ICAgICAgIH0KLSAgICAgICAgdmFyIHRlc3RfbmFtZSA9IG5hbWUgPyBuYW1lIDogbmV4dF9kZWZh
dWx0X25hbWUoKTsKLSAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgPyBwcm9wZXJ0aWVz
IDoge307Ci0gICAgICAgIHZhciB0ZXN0X29iaiA9IG5ldyBUZXN0KHRlc3RfbmFtZSwgcHJvcGVy
dGllcyk7Ci0gICAgICAgIGlmIChmdW5jKSB7Ci0gICAgICAgICAgICB0ZXN0X29iai5zdGVwKGZ1
bmMsIHRlc3Rfb2JqLCB0ZXN0X29iaik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRlc3Rf
b2JqOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldHVwKGZ1bmNfb3JfcHJvcGVydGllcywgbWF5
YmVfcHJvcGVydGllcykKLSAgICB7Ci0gICAgICAgIHZhciBmdW5jID0gbnVsbDsKLSAgICAgICAg
dmFyIHByb3BlcnRpZXMgPSB7fTsKLSAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIp
IHsKLSAgICAgICAgICAgIGZ1bmMgPSBmdW5jX29yX3Byb3BlcnRpZXM7Ci0gICAgICAgICAgICBw
cm9wZXJ0aWVzID0gbWF5YmVfcHJvcGVydGllczsKLSAgICAgICAgfSBlbHNlIGlmIChmdW5jX29y
X3Byb3BlcnRpZXMgaW5zdGFuY2VvZiBGdW5jdGlvbikgewotICAgICAgICAgICAgZnVuYyA9IGZ1
bmNfb3JfcHJvcGVydGllczsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByb3BlcnRp
ZXMgPSBmdW5jX29yX3Byb3BlcnRpZXM7Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdHMuc2V0dXAo
ZnVuYywgcHJvcGVydGllcyk7Ci0gICAgICAgIG91dHB1dC5zZXR1cChwcm9wZXJ0aWVzKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBkb25lKCkgewotICAgICAgICB0ZXN0cy5lbmRfd2FpdCgpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGdlbmVyYXRlX3Rlc3RzKGZ1bmMsIGFyZ3MsIHByb3BlcnRp
ZXMpIHsKLSAgICAgICAgZm9yRWFjaChhcmdzLCBmdW5jdGlvbih4LCBpKQotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSB4WzBdOwotICAgICAgICAgICAg
ICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuYXBwbHkodGhpcywgeC5zbGljZSgxKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
LAotICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocHJvcGVydGllcykgPyBw
cm9wZXJ0aWVzW2ldIDogcHJvcGVydGllcyk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gb25fZXZlbnQob2JqZWN0LCBldmVudCwgY2FsbGJhY2spCi0gICAgewot
ICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgY2FsbGJhY2ssIGZhbHNlKTsK
LSAgICB9Ci0KLSAgICBleHBvc2UodGVzdCwgJ3Rlc3QnKTsKLSAgICBleHBvc2UoYXN5bmNfdGVz
dCwgJ2FzeW5jX3Rlc3QnKTsKLSAgICBleHBvc2UoZ2VuZXJhdGVfdGVzdHMsICdnZW5lcmF0ZV90
ZXN0cycpOwotICAgIGV4cG9zZShzZXR1cCwgJ3NldHVwJyk7Ci0gICAgZXhwb3NlKGRvbmUsICdk
b25lJyk7Ci0gICAgZXhwb3NlKG9uX2V2ZW50LCAnb25fZXZlbnQnKTsKLQotICAgIC8qCi0gICAg
ICogUmV0dXJuIGEgc3RyaW5nIHRydW5jYXRlZCB0byB0aGUgZ2l2ZW4gbGVuZ3RoLCB3aXRoIC4u
LiBhZGRlZCBhdCB0aGUgZW5kCi0gICAgICogaWYgaXQgd2FzIGxvbmdlci4KLSAgICAgKi8KLSAg
ICBmdW5jdGlvbiB0cnVuY2F0ZShzLCBsZW4pCi0gICAgewotICAgICAgICBpZiAocy5sZW5ndGgg
PiBsZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBzLnN1YnN0cmluZygwLCBsZW4gLSAzKSArICIu
Li4iOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzOwotICAgIH0KLQotICAgIC8qCi0gICAg
ICogUmV0dXJuIHRydWUgaWYgb2JqZWN0IGlzIHByb2JhYmx5IGEgTm9kZSBvYmplY3QuCi0gICAg
ICovCi0gICAgZnVuY3Rpb24gaXNfbm9kZShvYmplY3QpCi0gICAgewotICAgICAgICAvLyBJIHVz
ZSBkdWNrLXR5cGluZyBpbnN0ZWFkIG9mIGluc3RhbmNlb2YsIGJlY2F1c2UKLSAgICAgICAgLy8g
aW5zdGFuY2VvZiBkb2Vzbid0IHdvcmsgaWYgdGhlIG5vZGUgaXMgZnJvbSBhbm90aGVyIHdpbmRv
dyAobGlrZSBhbgotICAgICAgICAvLyBpZnJhbWUncyBjb250ZW50V2luZG93KToKLSAgICAgICAg
Ly8gaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEyMjk1Ci0g
ICAgICAgIGlmICgibm9kZVR5cGUiIGluIG9iamVjdAotICAgICAgICAmJiAibm9kZU5hbWUiIGlu
IG9iamVjdAotICAgICAgICAmJiAibm9kZVZhbHVlIiBpbiBvYmplY3QKLSAgICAgICAgJiYgImNo
aWxkTm9kZXMiIGluIG9iamVjdCkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICBvYmplY3Qubm9kZVR5cGU7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gVGhlIG9iamVjdCBpcyBwcm9iYWJseSBOb2RlLnByb3RvdHlwZSBvciBhbm90aGVy
IHByb3RvdHlwZQotICAgICAgICAgICAgICAgIC8vIG9iamVjdCB0aGF0IGluaGVyaXRzIGZyb20g
aXQsIGFuZCBub3QgYSBOb2RlIGluc3RhbmNlLgotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIENvbnZlcnQgYSB2
YWx1ZSB0byBhIG5pY2UsIGh1bWFuLXJlYWRhYmxlIHN0cmluZwotICAgICAqLwotICAgIGZ1bmN0
aW9uIGZvcm1hdF92YWx1ZSh2YWwsIHNlZW4pCi0gICAgewotICAgICAgICBpZiAoIXNlZW4pIHsK
LSAgICAgICAgICAgIHNlZW4gPSBbXTsKLSAgICAgICAgfQotICAgICAgICBpZiAodHlwZW9mIHZh
bCA9PT0gIm9iamVjdCIgJiYgdmFsICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAoc2Vlbi5p
bmRleE9mKHZhbCkgPj0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiAiWy4uLl0iOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgc2Vlbi5wdXNoKHZhbCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkgewotICAgICAgICAgICAgcmV0dXJuICJbIiArIHZh
bC5tYXAoZnVuY3Rpb24oeCkge3JldHVybiBmb3JtYXRfdmFsdWUoeCwgc2Vlbil9KS5qb2luKCIs
ICIpICsgIl0iOwotICAgICAgICB9Ci0KLSAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsKSB7Ci0g
ICAgICAgIGNhc2UgInN0cmluZyI6Ci0gICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgiXFwi
LCAiXFxcXCIpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIHJlcGxhY2UgPSAiXFwiOwotICAgICAgICAgICAgICAgIHN3aXRj
aCAoaSkgewotICAgICAgICAgICAgICAgIGNhc2UgMDogcmVwbGFjZSArPSAiMCI7IGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgMTogcmVwbGFjZSArPSAieDAxIjsgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgY2FzZSAyOiByZXBsYWNlICs9ICJ4MDIiOyBicmVhazsKLSAgICAgICAgICAgICAg
ICBjYXNlIDM6IHJlcGxhY2UgKz0gIngwMyI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2Ug
NDogcmVwbGFjZSArPSAieDA0IjsgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSA1OiByZXBs
YWNlICs9ICJ4MDUiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDY6IHJlcGxhY2UgKz0g
IngwNiI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgNzogcmVwbGFjZSArPSAieDA3Ijsg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSA4OiByZXBsYWNlICs9ICJiIjsgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgY2FzZSA5OiByZXBsYWNlICs9ICJ0IjsgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgY2FzZSAxMDogcmVwbGFjZSArPSAibiI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNh
c2UgMTE6IHJlcGxhY2UgKz0gInYiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDEyOiBy
ZXBsYWNlICs9ICJmIjsgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSAxMzogcmVwbGFjZSAr
PSAiciI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMTQ6IHJlcGxhY2UgKz0gIngwZSI7
IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMTU6IHJlcGxhY2UgKz0gIngwZiI7IGJyZWFr
OwotICAgICAgICAgICAgICAgIGNhc2UgMTY6IHJlcGxhY2UgKz0gIngxMCI7IGJyZWFrOwotICAg
ICAgICAgICAgICAgIGNhc2UgMTc6IHJlcGxhY2UgKz0gIngxMSI7IGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgMTg6IHJlcGxhY2UgKz0gIngxMiI7IGJyZWFrOwotICAgICAgICAgICAgICAg
IGNhc2UgMTk6IHJlcGxhY2UgKz0gIngxMyI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2Ug
MjA6IHJlcGxhY2UgKz0gIngxNCI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjE6IHJl
cGxhY2UgKz0gIngxNSI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjI6IHJlcGxhY2Ug
Kz0gIngxNiI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjM6IHJlcGxhY2UgKz0gIngx
NyI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjQ6IHJlcGxhY2UgKz0gIngxOCI7IGJy
ZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjU6IHJlcGxhY2UgKz0gIngxOSI7IGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgMjY6IHJlcGxhY2UgKz0gIngxYSI7IGJyZWFrOwotICAgICAg
ICAgICAgICAgIGNhc2UgMjc6IHJlcGxhY2UgKz0gIngxYiI7IGJyZWFrOwotICAgICAgICAgICAg
ICAgIGNhc2UgMjg6IHJlcGxhY2UgKz0gIngxYyI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNh
c2UgMjk6IHJlcGxhY2UgKz0gIngxZCI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMzA6
IHJlcGxhY2UgKz0gIngxZSI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMzE6IHJlcGxh
Y2UgKz0gIngxZiI7IGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2
YWwgPSB2YWwucmVwbGFjZShSZWdFeHAoU3RyaW5nLmZyb21DaGFyQ29kZShpKSwgImciKSwgcmVw
bGFjZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gJyInICsgdmFsLnJlcGxh
Y2UoLyIvZywgJ1xcIicpICsgJyInOwotICAgICAgICBjYXNlICJib29sZWFuIjoKLSAgICAgICAg
Y2FzZSAidW5kZWZpbmVkIjoKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsKTsKLSAgICAg
ICAgY2FzZSAibnVtYmVyIjoKLSAgICAgICAgICAgIC8vIEluIEphdmFTY3JpcHQsIC0wID09PSAw
IGFuZCBTdHJpbmcoLTApID09ICIwIiwgc28gd2UgaGF2ZSB0bwotICAgICAgICAgICAgLy8gc3Bl
Y2lhbC1jYXNlLgotICAgICAgICAgICAgaWYgKHZhbCA9PT0gLTAgJiYgMS92YWwgPT09IC1JbmZp
bml0eSkgewotICAgICAgICAgICAgICAgIHJldHVybiAiLTAiOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpOwotICAgICAgICBjYXNlICJvYmplY3QiOgotICAg
ICAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiAibnVs
bCI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIFNwZWNpYWwtY2FzZSBOb2RlIG9i
amVjdHMsIHNpbmNlIHRob3NlIGNvbWUgdXAgYSBsb3QgaW4gbXkgdGVzdHMuICBJCi0gICAgICAg
ICAgICAvLyBpZ25vcmUgbmFtZXNwYWNlcy4KLSAgICAgICAgICAgIGlmIChpc19ub2RlKHZhbCkp
IHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbC5ub2RlVHlwZSkgewotICAgICAgICAgICAg
ICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgICAgIHZhciByZXQg
PSAiPCIgKyB2YWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpOwotICAgICAgICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHZhbC5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICByZXQgKz0gIiAiICsgdmFsLmF0dHJpYnV0ZXNbaV0ubmFtZSArICc9
IicgKyB2YWwuYXR0cmlidXRlc1tpXS52YWx1ZSArICciJzsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICByZXQgKz0gIj4iICsgdmFsLmlubmVySFRNTCArICI8LyIg
KyB2YWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpICsgIj4iOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gIkVsZW1lbnQgbm9kZSAiICsgdHJ1bmNhdGUocmV0LCA2MCk7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBOb2RlLlRFWFRfTk9ERToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdUZXh0
IG5vZGUgIicgKyB0cnVuY2F0ZSh2YWwuZGF0YSwgNjApICsgJyInOwotICAgICAgICAgICAgICAg
IGNhc2UgTm9kZS5QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIG5vZGUgd2l0aCB0YXJnZXQgIiArIGZv
cm1hdF92YWx1ZSh0cnVuY2F0ZSh2YWwudGFyZ2V0LCA2MCkpICsgIiBhbmQgZGF0YSAiICsgZm9y
bWF0X3ZhbHVlKHRydW5jYXRlKHZhbC5kYXRhLCA2MCkpOwotICAgICAgICAgICAgICAgIGNhc2Ug
Tm9kZS5DT01NRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiQ29tbWVudCBu
b2RlIDwhLS0iICsgdHJ1bmNhdGUodmFsLmRhdGEsIDYwKSArICItLT4iOwotICAgICAgICAgICAg
ICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkRvY3VtZW50IG5vZGUgd2l0aCAiICsgdmFsLmNoaWxkTm9kZXMubGVuZ3RoICsgKHZhbC5jaGls
ZE5vZGVzLmxlbmd0aCA9PSAxID8gIiBjaGlsZCIgOiAiIGNoaWxkcmVuIik7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJEb2N1bWVudFR5cGUgbm9kZSI7Ci0gICAgICAgICAgICAgICAgY2FzZSBOb2RlLkRP
Q1VNRU5UX0ZSQUdNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiRG9jdW1l
bnRGcmFnbWVudCBub2RlIHdpdGggIiArIHZhbC5jaGlsZE5vZGVzLmxlbmd0aCArICh2YWwuY2hp
bGROb2Rlcy5sZW5ndGggPT0gMSA/ICIgY2hpbGQiIDogIiBjaGlsZHJlbiIpOwotICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiTm9kZSBvYmplY3Qg
b2YgdW5rbm93biB0eXBlIjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBkZWZhdWx0Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCArICcgIicgKyB0cnVuY2F0ZShTdHJpbmcodmFs
KSwgNjApICsgJyInOwotICAgICAgICB9Ci0gICAgfQotICAgIGV4cG9zZShmb3JtYXRfdmFsdWUs
ICJmb3JtYXRfdmFsdWUiKTsKLQotICAgIC8qCi0gICAgICogQXNzZXJ0aW9ucwotICAgICAqLwot
Ci0gICAgZnVuY3Rpb24gYXNzZXJ0X3RydWUoYWN0dWFsLCBkZXNjcmlwdGlvbikKLSAgICB7Ci0g
ICAgICAgIGFzc2VydChhY3R1YWwgPT09IHRydWUsICJhc3NlcnRfdHJ1ZSIsIGRlc2NyaXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgdHJ1ZSBnb3QgJHth
Y3R1YWx9Iiwge2FjdHVhbDphY3R1YWx9KTsKLSAgICB9OwotICAgIGV4cG9zZShhc3NlcnRfdHJ1
ZSwgImFzc2VydF90cnVlIik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfZmFsc2UoYWN0dWFsLCBk
ZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgIGFzc2VydChhY3R1YWwgPT09IGZhbHNlLCAiYXNz
ZXJ0X2ZhbHNlIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQgZmFsc2UgZ290ICR7YWN0dWFsfSIsIHthY3R1YWw6YWN0dWFsfSk7Ci0gICAg
fTsKLSAgICBleHBvc2UoYXNzZXJ0X2ZhbHNlLCAiYXNzZXJ0X2ZhbHNlIik7Ci0KLSAgICBmdW5j
dGlvbiBzYW1lX3ZhbHVlKHgsIHkpIHsKLSAgICAgICAgaWYgKHkgIT09IHkpIHsKLSAgICAgICAg
ICAgIC8vTmFOIGNhc2UKLSAgICAgICAgICAgIHJldHVybiB4ICE9PSB4OwotICAgICAgICB9Ci0g
ICAgICAgIGlmICh4ID09PSAwICYmIHkgPT09IDApIHsKLSAgICAgICAgICAgIC8vRGlzdGluZ3Vp
c2ggKzAgYW5kIC0wCi0gICAgICAgICAgICByZXR1cm4gMS94ID09PSAxL3k7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHggPT09IHk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXNzZXJ0X2Vx
dWFscyhhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgICAvKgot
ICAgICAgICAgICogVGVzdCBpZiB0d28gcHJpbWl0aXZlcyBhcmUgZXF1YWwgb3IgdHdvIG9iamVj
dHMKLSAgICAgICAgICAqIGFyZSB0aGUgc2FtZSBvYmplY3QKLSAgICAgICAgICAqLwotICAgICAg
ICBpZiAodHlwZW9mIGFjdHVhbCAhPSB0eXBlb2YgZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgImFzc2VydF9lcXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkICgiICsgdHlwZW9mIGV4cGVjdGVkICsgIikgJHtleHBlY3Rl
ZH0gYnV0IGdvdCAoIiArIHR5cGVvZiBhY3R1YWwgKyAiKSAke2FjdHVhbH0iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQoc2FtZV92YWx1ZShh
Y3R1YWwsIGV4cGVjdGVkKSwgImFzc2VydF9lcXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAke2V4cGVjdGVk
fSBidXQgZ290ICR7YWN0dWFsfSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKLSAgICB9Owot
ICAgIGV4cG9zZShhc3NlcnRfZXF1YWxzLCAiYXNzZXJ0X2VxdWFscyIpOwotCi0gICAgZnVuY3Rp
b24gYXNzZXJ0X25vdF9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gICAg
ewotICAgICAgICAgLyoKLSAgICAgICAgICAqIFRlc3QgaWYgdHdvIHByaW1pdGl2ZXMgYXJlIHVu
ZXF1YWwgb3IgdHdvIG9iamVjdHMKLSAgICAgICAgICAqIGFyZSBkaWZmZXJlbnQgb2JqZWN0cwot
ICAgICAgICAgICovCi0gICAgICAgIGFzc2VydCghc2FtZV92YWx1ZShhY3R1YWwsIGV4cGVjdGVk
KSwgImFzc2VydF9ub3RfZXF1YWxzIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImdvdCBkaXNhbGxvd2VkIHZhbHVlICR7YWN0dWFs
fSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjdHVh
bDphY3R1YWx9KTsKLSAgICB9OwotICAgIGV4cG9zZShhc3NlcnRfbm90X2VxdWFscywgImFzc2Vy
dF9ub3RfZXF1YWxzIik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfaW5fYXJyYXkoYWN0dWFsLCBl
eHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICBhc3NlcnQoZXhwZWN0ZWQuaW5k
ZXhPZihhY3R1YWwpICE9IC0xLCAiYXNzZXJ0X2luX2FycmF5IiwgZGVzY3JpcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSAke2FjdHVh
bH0gbm90IGluIGFycmF5ICR7ZXhwZWN0ZWR9IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAge2FjdHVhbDphY3R1YWwsIGV4cGVjdGVkOmV4cGVjdGVkfSk7
Ci0gICAgfQotICAgIGV4cG9zZShhc3NlcnRfaW5fYXJyYXksICJhc3NlcnRfaW5fYXJyYXkiKTsK
LQotICAgIGZ1bmN0aW9uIGFzc2VydF9vYmplY3RfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRl
c2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgIC8vVGhpcyBuZWVkcyB0byBiZSBpbXByb3ZlZCBh
IGdyZWF0IGRlYWwKLSAgICAgICAgIGZ1bmN0aW9uIGNoZWNrX2VxdWFsKGFjdHVhbCwgZXhwZWN0
ZWQsIHN0YWNrKQotICAgICAgICAgewotICAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0dWFsKTsK
LQotICAgICAgICAgICAgIHZhciBwOwotICAgICAgICAgICAgIGZvciAocCBpbiBhY3R1YWwpIHsK
LSAgICAgICAgICAgICAgICAgYXNzZXJ0KGV4cGVjdGVkLmhhc093blByb3BlcnR5KHApLCAiYXNz
ZXJ0X29iamVjdF9lcXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5leHBlY3RlZCBwcm9wZXJ0eSAke3B9Iiwg
e3A6cH0pOwotCi0gICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsW3BdID09PSAib2Jq
ZWN0IiAmJiBhY3R1YWxbcF0gIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChz
dGFjay5pbmRleE9mKGFjdHVhbFtwXSkgPT09IC0xKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgY2hlY2tfZXF1YWwoYWN0dWFsW3BdLCBleHBlY3RlZFtwXSwgc3RhY2spOwotICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHNhbWVfdmFsdWUoYWN0dWFsW3BdLCBleHBlY3RlZFtwXSksICJhc3NlcnRf
b2JqZWN0X2VxdWFscyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0eSAke3B9IGV4cGVjdGVkICR7ZXhw
ZWN0ZWR9IGdvdCAke2FjdHVhbH0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHtwOnAsIGV4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0
dWFsfSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
Zm9yIChwIGluIGV4cGVjdGVkKSB7Ci0gICAgICAgICAgICAgICAgIGFzc2VydChhY3R1YWwuaGFz
T3duUHJvcGVydHkocCksCi0gICAgICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0X29iamVjdF9l
cXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBw
cm9wZXJ0eSAke3B9IG1pc3NpbmciLCB7cDpwfSk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAg
ICAgIHN0YWNrLnBvcCgpOwotICAgICAgICAgfQotICAgICAgICAgY2hlY2tfZXF1YWwoYWN0dWFs
LCBleHBlY3RlZCwgW10pOwotICAgIH07Ci0gICAgZXhwb3NlKGFzc2VydF9vYmplY3RfZXF1YWxz
LCAiYXNzZXJ0X29iamVjdF9lcXVhbHMiKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9hcnJheV9l
cXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICBhc3Nl
cnQoYWN0dWFsLmxlbmd0aCA9PT0gZXhwZWN0ZWQubGVuZ3RoLAotICAgICAgICAgICAgICAgImFz
c2VydF9hcnJheV9lcXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICJsZW5ndGhz
IGRpZmZlciwgZXhwZWN0ZWQgJHtleHBlY3RlZH0gZ290ICR7YWN0dWFsfSIsCi0gICAgICAgICAg
ICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQubGVuZ3RoLCBhY3R1YWw6YWN0dWFsLmxlbmd0aH0pOwot
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0dWFsLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgICBhc3NlcnQoYWN0dWFsLmhhc093blByb3BlcnR5KGkpID09PSBleHBlY3RlZC5oYXNP
d25Qcm9wZXJ0eShpKSwKLSAgICAgICAgICAgICAgICAgICAiYXNzZXJ0X2FycmF5X2VxdWFscyIs
IGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0eSAke2l9LCBwcm9wZXJ0
eSBleHBlY3RlZCB0byBiZSAkZXhwZWN0ZWQgYnV0IHdhcyAkYWN0dWFsIiwKLSAgICAgICAgICAg
ICAgICAgICB7aTppLCBleHBlY3RlZDpleHBlY3RlZC5oYXNPd25Qcm9wZXJ0eShpKSA/ICJwcmVz
ZW50IiA6ICJtaXNzaW5nIiwKLSAgICAgICAgICAgICAgICAgICBhY3R1YWw6YWN0dWFsLmhhc093
blByb3BlcnR5KGkpID8gInByZXNlbnQiIDogIm1pc3NpbmcifSk7Ci0gICAgICAgICAgICBhc3Nl
cnQoc2FtZV92YWx1ZShleHBlY3RlZFtpXSwgYWN0dWFsW2ldKSwKLSAgICAgICAgICAgICAgICAg
ICAiYXNzZXJ0X2FycmF5X2VxdWFscyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICJwcm9wZXJ0eSAke2l9LCBleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIs
Ci0gICAgICAgICAgICAgICAgICAge2k6aSwgZXhwZWN0ZWQ6ZXhwZWN0ZWRbaV0sIGFjdHVhbDph
Y3R1YWxbaV19KTsKLSAgICAgICAgfQotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FycmF5X2Vx
dWFscywgImFzc2VydF9hcnJheV9lcXVhbHMiKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9hcHBy
b3hfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGVwc2lsb24sIGRlc2NyaXB0aW9uKQotICAgIHsK
LSAgICAgICAgLyoKLSAgICAgICAgICogVGVzdCBpZiB0d28gcHJpbWl0aXZlIG51bWJlcnMgYXJl
IGVxdWFsIHdpdGhpbmcgKy8tIGVwc2lsb24KLSAgICAgICAgICovCi0gICAgICAgIGFzc2VydCh0
eXBlb2YgYWN0dWFsID09PSAibnVtYmVyIiwKLSAgICAgICAgICAgICAgICJhc3NlcnRfYXBwcm94
X2VxdWFscyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVkIGEgbnVtYmVy
IGJ1dCBnb3QgYSAke3R5cGVfYWN0dWFsfSIsCi0gICAgICAgICAgICAgICB7dHlwZV9hY3R1YWw6
dHlwZW9mIGFjdHVhbH0pOwotCi0gICAgICAgIGFzc2VydChNYXRoLmFicyhhY3R1YWwgLSBleHBl
Y3RlZCkgPD0gZXBzaWxvbiwKLSAgICAgICAgICAgICAgICJhc3NlcnRfYXBwcm94X2VxdWFscyIs
IGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVkICR7ZXhwZWN0ZWR9ICsvLSAk
e2Vwc2lsb259IGJ1dCBnb3QgJHthY3R1YWx9IiwKLSAgICAgICAgICAgICAgIHtleHBlY3RlZDpl
eHBlY3RlZCwgYWN0dWFsOmFjdHVhbCwgZXBzaWxvbjplcHNpbG9ufSk7Ci0gICAgfTsKLSAgICBl
eHBvc2UoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRfYXBwcm94X2VxdWFscyIpOwotCi0g
ICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhhbihhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlv
bikKLSAgICB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIFRlc3QgaWYgYSBwcmltaXRpdmUgbnVt
YmVyIGlzIGxlc3MgdGhhbiBhbm90aGVyCi0gICAgICAgICAqLwotICAgICAgICBhc3NlcnQodHlw
ZW9mIGFjdHVhbCA9PT0gIm51bWJlciIsCi0gICAgICAgICAgICAgICAiYXNzZXJ0X2xlc3NfdGhh
biIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBn
b3QgYSAke3R5cGVfYWN0dWFsfSIsCi0gICAgICAgICAgICAgICB7dHlwZV9hY3R1YWw6dHlwZW9m
IGFjdHVhbH0pOwotCi0gICAgICAgIGFzc2VydChhY3R1YWwgPCBleHBlY3RlZCwKLSAgICAgICAg
ICAgICAgICJhc3NlcnRfbGVzc190aGFuIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAi
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9
IiwKLSAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwot
ICAgIH07Ci0gICAgZXhwb3NlKGFzc2VydF9sZXNzX3RoYW4sICJhc3NlcnRfbGVzc190aGFuIik7
Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfZ3JlYXRlcl90aGFuKGFjdHVhbCwgZXhwZWN0ZWQsIGRl
c2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGVzdCBpZiBhIHByaW1p
dGl2ZSBudW1iZXIgaXMgZ3JlYXRlciB0aGFuIGFub3RoZXIKLSAgICAgICAgICovCi0gICAgICAg
IGFzc2VydCh0eXBlb2YgYWN0dWFsID09PSAibnVtYmVyIiwKLSAgICAgICAgICAgICAgICJhc3Nl
cnRfZ3JlYXRlcl90aGFuIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAiZXhwZWN0ZWQg
YSBudW1iZXIgYnV0IGdvdCBhICR7dHlwZV9hY3R1YWx9IiwKLSAgICAgICAgICAgICAgIHt0eXBl
X2FjdHVhbDp0eXBlb2YgYWN0dWFsfSk7Ci0KLSAgICAgICAgYXNzZXJ0KGFjdHVhbCA+IGV4cGVj
dGVkLAotICAgICAgICAgICAgICAgImFzc2VydF9ncmVhdGVyX3RoYW4iLCBkZXNjcmlwdGlvbiwK
LSAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBncmVhdGVyIHRoYW4gJHtleHBlY3Rl
ZH0gYnV0IGdvdCAke2FjdHVhbH0iLAotICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVk
LCBhY3R1YWw6YWN0dWFsfSk7Ci0gICAgfTsKLSAgICBleHBvc2UoYXNzZXJ0X2dyZWF0ZXJfdGhh
biwgImFzc2VydF9ncmVhdGVyX3RoYW4iKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICAv
KgotICAgICAgICAgKiBUZXN0IGlmIGEgcHJpbWl0aXZlIG51bWJlciBpcyBsZXNzIHRoYW4gb3Ig
ZXF1YWwgdG8gYW5vdGhlcgotICAgICAgICAgKi8KLSAgICAgICAgYXNzZXJ0KHR5cGVvZiBhY3R1
YWwgPT09ICJudW1iZXIiLAotICAgICAgICAgICAgICAgImFzc2VydF9sZXNzX3RoYW5fZXF1YWwi
LCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBidXQgZ290
IGEgJHt0eXBlX2FjdHVhbH0iLAotICAgICAgICAgICAgICAge3R5cGVfYWN0dWFsOnR5cGVvZiBh
Y3R1YWx9KTsKLQotICAgICAgICBhc3NlcnQoYWN0dWFsIDw9IGV4cGVjdGVkLAotICAgICAgICAg
ICAgICAgImFzc2VydF9sZXNzX3RoYW4iLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICJl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHtleHBlY3RlZH0gYnV0IGdv
dCAke2FjdHVhbH0iLAotICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6
YWN0dWFsfSk7Ci0gICAgfTsKLSAgICBleHBvc2UoYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbCwgImFz
c2VydF9sZXNzX3RoYW5fZXF1YWwiKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9ncmVhdGVyX3Ro
YW5fZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICAv
KgotICAgICAgICAgKiBUZXN0IGlmIGEgcHJpbWl0aXZlIG51bWJlciBpcyBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gYW5vdGhlcgotICAgICAgICAgKi8KLSAgICAgICAgYXNzZXJ0KHR5cGVvZiBh
Y3R1YWwgPT09ICJudW1iZXIiLAotICAgICAgICAgICAgICAgImFzc2VydF9ncmVhdGVyX3RoYW5f
ZXF1YWwiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBi
dXQgZ290IGEgJHt0eXBlX2FjdHVhbH0iLAotICAgICAgICAgICAgICAge3R5cGVfYWN0dWFsOnR5
cGVvZiBhY3R1YWx9KTsKLQotICAgICAgICBhc3NlcnQoYWN0dWFsID49IGV4cGVjdGVkLAotICAg
ICAgICAgICAgICAgImFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwiLCBkZXNjcmlwdGlvbiwKLSAg
ICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g
JHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAotICAgICAgICAgICAgICAge2V4cGVjdGVk
OmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7Ci0gICAgfTsKLSAgICBleHBvc2UoYXNzZXJ0X2dy
ZWF0ZXJfdGhhbl9lcXVhbCwgImFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwiKTsKLQotICAgIGZ1
bmN0aW9uIGFzc2VydF9yZWdleHBfbWF0Y2goYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24p
IHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGVzdCBpZiBhIHN0cmluZyAoYWN0dWFsKSBtYXRj
aGVzIGEgcmVnZXhwIChleHBlY3RlZCkKLSAgICAgICAgICovCi0gICAgICAgIGFzc2VydChleHBl
Y3RlZC50ZXN0KGFjdHVhbCksCi0gICAgICAgICAgICAgICAiYXNzZXJ0X3JlZ2V4cF9tYXRjaCIs
IGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBn
b3QgJHthY3R1YWx9IiwKLSAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFs
OmFjdHVhbH0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X3JlZ2V4cF9tYXRjaCwgImFzc2Vy
dF9yZWdleHBfbWF0Y2giKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9jbGFzc19zdHJpbmcob2Jq
ZWN0LCBjbGFzc19zdHJpbmcsIGRlc2NyaXB0aW9uKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
e30udG9TdHJpbmcuY2FsbChvYmplY3QpLCAiW29iamVjdCAiICsgY2xhc3Nfc3RyaW5nICsgIl0i
LAotICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKTsKLSAgICB9Ci0gICAgZXhwb3Nl
KGFzc2VydF9jbGFzc19zdHJpbmcsICJhc3NlcnRfY2xhc3Nfc3RyaW5nIik7Ci0KLQotICAgIGZ1
bmN0aW9uIF9hc3NlcnRfb3duX3Byb3BlcnR5KG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKG9iamVjdCwgcHJvcGVydHlfbmFtZSwgZGVzY3JpcHRpb24pCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGFzc2VydChvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCi0gICAg
ICAgICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIHByb3BlcnR5ICR7cH0gbWlzc2luZyIsIHtwOnByb3BlcnR5X25hbWV9KTsKLSAgICAg
ICAgfTsKLSAgICB9Ci0gICAgZXhwb3NlKF9hc3NlcnRfb3duX3Byb3BlcnR5KCJhc3NlcnRfZXhp
c3RzIiksICJhc3NlcnRfZXhpc3RzIik7Ci0gICAgZXhwb3NlKF9hc3NlcnRfb3duX3Byb3BlcnR5
KCJhc3NlcnRfb3duX3Byb3BlcnR5IiksICJhc3NlcnRfb3duX3Byb3BlcnR5Iik7Ci0KLSAgICBm
dW5jdGlvbiBhc3NlcnRfbm90X2V4aXN0cyhvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0
aW9uKQotICAgIHsKLSAgICAgICAgYXNzZXJ0KCFvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVy
dHlfbmFtZSksCi0gICAgICAgICAgICAgICAiYXNzZXJ0X25vdF9leGlzdHMiLCBkZXNjcmlwdGlv
biwKLSAgICAgICAgICAgICAgICJ1bmV4cGVjdGVkIHByb3BlcnR5ICR7cH0gZm91bmQiLCB7cDpw
cm9wZXJ0eV9uYW1lfSk7Ci0gICAgfTsKLSAgICBleHBvc2UoYXNzZXJ0X25vdF9leGlzdHMsICJh
c3NlcnRfbm90X2V4aXN0cyIpOwotCi0gICAgZnVuY3Rpb24gX2Fzc2VydF9pbmhlcml0cyhuYW1l
KSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbiAob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNj
cmlwdGlvbikKLSAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiBvYmplY3QgPT09
ICJvYmplY3QiLAotICAgICAgICAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICJwcm92aWRlZCB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0Iik7Ci0KLSAgICAg
ICAgICAgIGFzc2VydCgiaGFzT3duUHJvcGVydHkiIGluIG9iamVjdCwKLSAgICAgICAgICAgICAg
ICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAicHJvdmlkZWQgdmFs
dWUgaXMgYW4gb2JqZWN0IGJ1dCBoYXMgbm8gaGFzT3duUHJvcGVydHkgbWV0aG9kIik7Ci0KLSAg
ICAgICAgICAgIGFzc2VydCghb2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BlcnR5X25hbWUpLAot
ICAgICAgICAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICJwcm9wZXJ0eSAke3B9IGZvdW5kIG9uIG9iamVjdCBleHBlY3RlZCBpbiBwcm90b3R5cGUgY2hh
aW4iLAotICAgICAgICAgICAgICAgICAgIHtwOnByb3BlcnR5X25hbWV9KTsKLQotICAgICAgICAg
ICAgYXNzZXJ0KHByb3BlcnR5X25hbWUgaW4gb2JqZWN0LAotICAgICAgICAgICAgICAgICAgIG5h
bWUsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0eSAke3B9IG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4iLAotICAgICAgICAgICAgICAgICAgIHtwOnByb3BlcnR5
X25hbWV9KTsKLSAgICAgICAgfTsKLSAgICB9Ci0gICAgZXhwb3NlKF9hc3NlcnRfaW5oZXJpdHMo
ImFzc2VydF9pbmhlcml0cyIpLCAiYXNzZXJ0X2luaGVyaXRzIik7Ci0gICAgZXhwb3NlKF9hc3Nl
cnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiksICJhc3NlcnRfaWRsX2F0dHJpYnV0
ZSIpOwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0X3JlYWRvbmx5KG9iamVjdCwgcHJvcGVydHlfbmFt
ZSwgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICAgdmFyIGluaXRpYWxfdmFsdWUgPSBvYmpl
Y3RbcHJvcGVydHlfbmFtZV07Ci0gICAgICAgICB0cnkgewotICAgICAgICAgICAgIC8vTm90ZSB0
aGF0IHRoaXMgY2FuIGhhdmUgc2lkZSBlZmZlY3RzIGluIHRoZSBjYXNlIHdoZXJlCi0gICAgICAg
ICAgICAgLy90aGUgcHJvcGVydHkgaGFzIFB1dEZvcndhcmRzCi0gICAgICAgICAgICAgb2JqZWN0
W3Byb3BlcnR5X25hbWVdID0gaW5pdGlhbF92YWx1ZSArICJhIjsgLy9YWFggdXNlIHNvbWUgb3Ro
ZXIgdmFsdWUgaGVyZT8KLSAgICAgICAgICAgICBhc3NlcnQoc2FtZV92YWx1ZShvYmplY3RbcHJv
cGVydHlfbmFtZV0sIGluaXRpYWxfdmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0
X3JlYWRvbmx5IiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICJjaGFuZ2luZyBw
cm9wZXJ0eSAke3B9IHN1Y2NlZWRlZCIsCi0gICAgICAgICAgICAgICAgICAgIHtwOnByb3BlcnR5
X25hbWV9KTsKLSAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgb2JqZWN0W3Byb3Bl
cnR5X25hbWVdID0gaW5pdGlhbF92YWx1ZTsKLSAgICAgICAgIH0KLSAgICB9OwotICAgIGV4cG9z
ZShhc3NlcnRfcmVhZG9ubHksICJhc3NlcnRfcmVhZG9ubHkiKTsKLQotICAgIGZ1bmN0aW9uIGFz
c2VydF90aHJvd3MoY29kZSwgZnVuYywgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICB0cnkg
ewotICAgICAgICAgICAgZnVuYy5jYWxsKHRoaXMpOwotICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAiYXNzZXJ0X3Rocm93cyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICIke2Z1
bmN9IGRpZCBub3QgdGhyb3ciLCB7ZnVuYzpmdW5jfSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgQXNzZXJ0aW9uRXJyb3IpIHsKLSAgICAgICAg
ICAgICAgICB0aHJvdyBlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGNvZGUgPT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAodHlwZW9mIGNvZGUgPT09ICJvYmplY3QiKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0KHR5cGVvZiBlID09ICJvYmplY3QiICYmICJuYW1lIiBpbiBlICYmIGUubmFtZSA9PSBjb2Rl
Lm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICJhc3NlcnRfdGhyb3dzIiwgZGVzY3JpcHRp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICIke2Z1bmN9IHRocmV3ICR7YWN0dWFsfSAoJHth
Y3R1YWxfbmFtZX0pIGV4cGVjdGVkICR7ZXhwZWN0ZWR9ICgke2V4cGVjdGVkX25hbWV9KSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZnVuYzpmdW5jLCBhY3R1YWw6ZSwg
YWN0dWFsX25hbWU6ZS5uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkOmNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0ZWRfbmFtZTpjb2RlLm5hbWV9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2RlX25hbWVfbWFwID0gewotICAgICAgICAgICAg
ICAgIElOREVYX1NJWkVfRVJSOiAnSW5kZXhTaXplRXJyb3InLAotICAgICAgICAgICAgICAgIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjogJ0hpZXJhcmNoeVJlcXVlc3RFcnJvcicsCi0gICAgICAgICAg
ICAgICAgV1JPTkdfRE9DVU1FTlRfRVJSOiAnV3JvbmdEb2N1bWVudEVycm9yJywKLSAgICAgICAg
ICAgICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlI6ICdJbnZhbGlkQ2hhcmFjdGVyRXJyb3InLAot
ICAgICAgICAgICAgICAgIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogJ05vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yJywKLSAgICAgICAgICAgICAgICBOT1RfRk9VTkRfRVJSOiAnTm90Rm91
bmRFcnJvcicsCi0gICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRF9FUlI6ICdOb3RTdXBwb3J0
ZWRFcnJvcicsCi0gICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURV9FUlI6ICdJbnZhbGlkU3Rh
dGVFcnJvcicsCi0gICAgICAgICAgICAgICAgU1lOVEFYX0VSUjogJ1N5bnRheEVycm9yJywKLSAg
ICAgICAgICAgICAgICBJTlZBTElEX01PRElGSUNBVElPTl9FUlI6ICdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLAotICAgICAgICAgICAgICAgIE5BTUVTUEFDRV9FUlI6ICdOYW1lc3BhY2VFcnJv
cicsCi0gICAgICAgICAgICAgICAgSU5WQUxJRF9BQ0NFU1NfRVJSOiAnSW52YWxpZEFjY2Vzc0Vy
cm9yJywKLSAgICAgICAgICAgICAgICBUWVBFX01JU01BVENIX0VSUjogJ1R5cGVNaXNtYXRjaEVy
cm9yJywKLSAgICAgICAgICAgICAgICBTRUNVUklUWV9FUlI6ICdTZWN1cml0eUVycm9yJywKLSAg
ICAgICAgICAgICAgICBORVRXT1JLX0VSUjogJ05ldHdvcmtFcnJvcicsCi0gICAgICAgICAgICAg
ICAgQUJPUlRfRVJSOiAnQWJvcnRFcnJvcicsCi0gICAgICAgICAgICAgICAgVVJMX01JU01BVENI
X0VSUjogJ1VSTE1pc21hdGNoRXJyb3InLAotICAgICAgICAgICAgICAgIFFVT1RBX0VYQ0VFREVE
X0VSUjogJ1F1b3RhRXhjZWVkZWRFcnJvcicsCi0gICAgICAgICAgICAgICAgVElNRU9VVF9FUlI6
ICdUaW1lb3V0RXJyb3InLAotICAgICAgICAgICAgICAgIElOVkFMSURfTk9ERV9UWVBFX0VSUjog
J0ludmFsaWROb2RlVHlwZUVycm9yJywKLSAgICAgICAgICAgICAgICBEQVRBX0NMT05FX0VSUjog
J0RhdGFDbG9uZUVycm9yJwotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgdmFyIG5hbWUg
PSBjb2RlIGluIGNvZGVfbmFtZV9tYXAgPyBjb2RlX25hbWVfbWFwW2NvZGVdIDogY29kZTsKLQot
ICAgICAgICAgICAgdmFyIG5hbWVfY29kZV9tYXAgPSB7Ci0gICAgICAgICAgICAgICAgSW5kZXhT
aXplRXJyb3I6IDEsCi0gICAgICAgICAgICAgICAgSGllcmFyY2h5UmVxdWVzdEVycm9yOiAzLAot
ICAgICAgICAgICAgICAgIFdyb25nRG9jdW1lbnRFcnJvcjogNCwKLSAgICAgICAgICAgICAgICBJ
bnZhbGlkQ2hhcmFjdGVyRXJyb3I6IDUsCi0gICAgICAgICAgICAgICAgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3I6IDcsCi0gICAgICAgICAgICAgICAgTm90Rm91bmRFcnJvcjogOCwKLSAgICAg
ICAgICAgICAgICBOb3RTdXBwb3J0ZWRFcnJvcjogOSwKLSAgICAgICAgICAgICAgICBJbnZhbGlk
U3RhdGVFcnJvcjogMTEsCi0gICAgICAgICAgICAgICAgU3ludGF4RXJyb3I6IDEyLAotICAgICAg
ICAgICAgICAgIEludmFsaWRNb2RpZmljYXRpb25FcnJvcjogMTMsCi0gICAgICAgICAgICAgICAg
TmFtZXNwYWNlRXJyb3I6IDE0LAotICAgICAgICAgICAgICAgIEludmFsaWRBY2Nlc3NFcnJvcjog
MTUsCi0gICAgICAgICAgICAgICAgVHlwZU1pc21hdGNoRXJyb3I6IDE3LAotICAgICAgICAgICAg
ICAgIFNlY3VyaXR5RXJyb3I6IDE4LAotICAgICAgICAgICAgICAgIE5ldHdvcmtFcnJvcjogMTks
Ci0gICAgICAgICAgICAgICAgQWJvcnRFcnJvcjogMjAsCi0gICAgICAgICAgICAgICAgVVJMTWlz
bWF0Y2hFcnJvcjogMjEsCi0gICAgICAgICAgICAgICAgUXVvdGFFeGNlZWRlZEVycm9yOiAyMiwK
LSAgICAgICAgICAgICAgICBUaW1lb3V0RXJyb3I6IDIzLAotICAgICAgICAgICAgICAgIEludmFs
aWROb2RlVHlwZUVycm9yOiAyNCwKLSAgICAgICAgICAgICAgICBEYXRhQ2xvbmVFcnJvcjogMjUs
Ci0KLSAgICAgICAgICAgICAgICBVbmtub3duRXJyb3I6IDAsCi0gICAgICAgICAgICAgICAgQ29u
c3RyYWludEVycm9yOiAwLAotICAgICAgICAgICAgICAgIERhdGFFcnJvcjogMCwKLSAgICAgICAg
ICAgICAgICBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I6IDAsCi0gICAgICAgICAgICAgICAgUmVh
ZE9ubHlFcnJvcjogMCwKLSAgICAgICAgICAgICAgICBWZXJzaW9uRXJyb3I6IDAKLSAgICAgICAg
ICAgIH07Ci0KLSAgICAgICAgICAgIGlmICghKG5hbWUgaW4gbmFtZV9jb2RlX21hcCkpIHsKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3IoJ1Rlc3QgYnVnOiB1bnJlY29n
bml6ZWQgRE9NRXhjZXB0aW9uIGNvZGUgIicgKyBjb2RlICsgJyIgcGFzc2VkIHRvIGFzc2VydF90
aHJvd3MoKScpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgcmVxdWlyZWRfcHJv
cHMgPSB7IGNvZGU6IG5hbWVfY29kZV9tYXBbbmFtZV0gfTsKLQotICAgICAgICAgICAgaWYgKHJl
cXVpcmVkX3Byb3BzLmNvZGUgPT09IDAKLSAgICAgICAgICAgIHx8ICgibmFtZSIgaW4gZSAmJiBl
Lm5hbWUgIT09IGUubmFtZS50b1VwcGVyQ2FzZSgpICYmIGUubmFtZSAhPT0gIkRPTUV4Y2VwdGlv
biIpKSB7Ci0gICAgICAgICAgICAgICAgLy8gTmV3IHN0eWxlIGV4Y2VwdGlvbjogYWxzbyB0ZXN0
IHRoZSBuYW1lIHByb3BlcnR5LgotICAgICAgICAgICAgICAgIHJlcXVpcmVkX3Byb3BzLm5hbWUg
PSBuYW1lOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvL1dlJ2QgbGlrZSB0byB0ZXN0
IHRoYXQgZSBpbnN0YW5jZW9mIHRoZSBhcHByb3ByaWF0ZSBpbnRlcmZhY2UsCi0gICAgICAgICAg
ICAvL2J1dCB3ZSBjYW4ndCwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IHdoYXQgd2luZG93IGl0IHdh
cyBjcmVhdGVkCi0gICAgICAgICAgICAvL2luLiAgSXQgbWlnaHQgYmUgYW4gaW5zdGFuY2VvZiB0
aGUgYXBwcm9wcmlhdGUgaW50ZXJmYWNlIG9uIHNvbWUKLSAgICAgICAgICAgIC8vdW5rbm93biBv
dGhlciB3aW5kb3cuICBUT0RPOiBXb3JrIGFyb3VuZCB0aGlzIHNvbWVob3c/Ci0KLSAgICAgICAg
ICAgIGFzc2VydCh0eXBlb2YgZSA9PSAib2JqZWN0IiwKLSAgICAgICAgICAgICAgICAgICAiYXNz
ZXJ0X3Rocm93cyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICIke2Z1bmN9IHRo
cmV3ICR7ZX0gd2l0aCB0eXBlICR7dHlwZX0sIG5vdCBhbiBvYmplY3QiLAotICAgICAgICAgICAg
ICAgICAgIHtmdW5jOmZ1bmMsIGU6ZSwgdHlwZTp0eXBlb2YgZX0pOwotCi0gICAgICAgICAgICBm
b3IgKHZhciBwcm9wIGluIHJlcXVpcmVkX3Byb3BzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
KHR5cGVvZiBlID09ICJvYmplY3QiICYmIHByb3AgaW4gZSAmJiBlW3Byb3BdID09IHJlcXVpcmVk
X3Byb3BzW3Byb3BdLAotICAgICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0X3Rocm93cyIsIGRl
c2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAiJHtmdW5jfSB0aHJldyAke2V9IHRo
YXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uICIgKyBjb2RlICsgIjogcHJvcGVydHkgJHtwcm9wfSBp
cyBlcXVhbCB0byAke2FjdHVhbH0sIGV4cGVjdGVkICR7ZXhwZWN0ZWR9IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAge2Z1bmM6ZnVuYywgZTplLCBwcm9wOnByb3AsIGFjdHVhbDplW3Byb3BdLCBl
eHBlY3RlZDpyZXF1aXJlZF9wcm9wc1twcm9wXX0pOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIGV4cG9zZShhc3NlcnRfdGhyb3dzLCAiYXNzZXJ0X3Rocm93cyIpOwotCi0g
ICAgZnVuY3Rpb24gYXNzZXJ0X3VucmVhY2hlZChkZXNjcmlwdGlvbikgewotICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAiYXNzZXJ0X3VucmVhY2hlZCIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAg
ICAgICJSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUiKTsKLSAgICB9Ci0gICAgZXhwb3NlKGFzc2Vy
dF91bnJlYWNoZWQsICJhc3NlcnRfdW5yZWFjaGVkIik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRf
YW55KGFzc2VydF9mdW5jLCBhY3R1YWwsIGV4cGVjdGVkX2FycmF5KQotICAgIHsKLSAgICAgICAg
dmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMykKLSAgICAgICAgdmFyIGVycm9y
cyA9IFtdCi0gICAgICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKLSAgICAgICAgZm9yRWFjaChleHBl
Y3RlZF9hcnJheSwKLSAgICAgICAgICAgICAgICBmdW5jdGlvbihleHBlY3RlZCkKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZnVuYy5hcHBseSh0aGlzLCBbYWN0dWFsLCBleHBlY3RlZF0uY29uY2F0KGFy
Z3MpKQotICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLnB1
c2goZS5tZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICBpZiAoIXBhc3NlZCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlv
bkVycm9yKGVycm9ycy5qb2luKCJcblxuIikpOwotICAgICAgICB9Ci0gICAgfQotICAgIGV4cG9z
ZShhc3NlcnRfYW55LCAiYXNzZXJ0X2FueSIpOwotCi0gICAgZnVuY3Rpb24gVGVzdChuYW1lLCBw
cm9wZXJ0aWVzKQotICAgIHsKLSAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKLQotICAgICAgICB0
aGlzLnBoYXNlcyA9IHsKLSAgICAgICAgICAgIElOSVRJQUw6MCwKLSAgICAgICAgICAgIFNUQVJU
RUQ6MSwKLSAgICAgICAgICAgIEhBU19SRVNVTFQ6MiwKLSAgICAgICAgICAgIENPTVBMRVRFOjMK
LSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLklOSVRJQUw7Ci0K
LSAgICAgICAgdGhpcy5zdGF0dXMgPSB0aGlzLk5PVFJVTjsKLSAgICAgICAgdGhpcy50aW1lb3V0
X2lkID0gbnVsbDsKLQotICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzOwotICAg
ICAgICB2YXIgdGltZW91dCA9IHByb3BlcnRpZXMudGltZW91dCA/IHByb3BlcnRpZXMudGltZW91
dCA6IHNldHRpbmdzLnRlc3RfdGltZW91dAotICAgICAgICBpZiAodGltZW91dCAhPSBudWxsKSB7
Ci0gICAgICAgICAgICB0aGlzLnRpbWVvdXRfbGVuZ3RoID0gdGltZW91dCAqIHRlc3RzLnRpbWVv
dXRfbXVsdGlwbGllcjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMudGltZW91
dF9sZW5ndGggPSBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5tZXNzYWdlID0gbnVs
bDsKLQotICAgICAgICB2YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICB0aGlzLnN0ZXBzID0g
W107Ci0KLSAgICAgICAgdGhpcy5jbGVhbnVwX2NhbGxiYWNrcyA9IFtdOwotCi0gICAgICAgIHRl
c3RzLnB1c2godGhpcyk7Ci0gICAgfQotCi0gICAgVGVzdC5zdGF0dXNlcyA9IHsKLSAgICAgICAg
UEFTUzowLAotICAgICAgICBGQUlMOjEsCi0gICAgICAgIFRJTUVPVVQ6MiwKLSAgICAgICAgTk9U
UlVOOjMKLSAgICB9OwotCi0gICAgVGVzdC5wcm90b3R5cGUgPSBtZXJnZSh7fSwgVGVzdC5zdGF0
dXNlcyk7Ci0KLSAgICBUZXN0LnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7Ci0gICAgICAg
ICAgICB2YXIgbXNnID0gdGhpcy5tZXNzYWdlOwotICAgICAgICAgICAgbXNnID0gbXNnID8gU3Ry
aW5nKG1zZykgOiBtc2c7Ci0gICAgICAgICAgICB0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lID0gbWVy
Z2UoewotICAgICAgICAgICAgICAgIG5hbWU6U3RyaW5nKHRoaXMubmFtZSksCi0gICAgICAgICAg
ICAgICAgc3RhdHVzOnRoaXMuc3RhdHVzLAotICAgICAgICAgICAgICAgIG1lc3NhZ2U6bXNnCi0g
ICAgICAgICAgICB9LCBUZXN0LnN0YXR1c2VzKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
dGhpcy5fc3RydWN0dXJlZF9jbG9uZTsKLSAgICB9OwotCi0gICAgVGVzdC5wcm90b3R5cGUuc3Rl
cCA9IGZ1bmN0aW9uKGZ1bmMsIHRoaXNfb2JqKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMucGhh
c2UgPiB0aGlzLnBoYXNlcy5TVEFSVEVEKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLlNUQVJURUQ7Ci0gICAgICAgIC8v
SWYgd2UgZG9uJ3QgZ2V0IGEgcmVzdWx0IGJlZm9yZSB0aGUgaGFybmVzcyB0aW1lcyBvdXQgdGhh
dCB3aWxsIGJlIGEgdGVzdCB0aW1vdXQKLSAgICAgICAgdGhpcy5zZXRfc3RhdHVzKHRoaXMuVElN
RU9VVCwgIlRlc3QgdGltZWQgb3V0Iik7Ci0KLSAgICAgICAgdGVzdHMuc3RhcnRlZCA9IHRydWU7
Ci0KLSAgICAgICAgaWYgKHRoaXMudGltZW91dF9pZCA9PT0gbnVsbCkgewotICAgICAgICAgICAg
dGhpcy5zZXRfdGltZW91dCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5zdGVwcy5wdXNo
KGZ1bmMpOwotCi0gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7Ci0gICAgICAg
ICAgICB0aGlzX29iaiA9IHRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICB0cnkgewotICAgICAg
ICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc19vYmosIEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cywgMikpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBp
ZiAodGhpcy5waGFzZSA+PSB0aGlzLnBoYXNlcy5IQVNfUkVTVUxUKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAodHlw
ZW9mIGUgPT09ICJvYmplY3QiICYmIGUgIT09IG51bGwpID8gZS5tZXNzYWdlIDogZTsKLSAgICAg
ICAgICAgIGlmICh0eXBlb2YgZS5zdGFjayAhPSAidW5kZWZpbmVkIiAmJiB0eXBlb2YgZS5tZXNz
YWdlID09ICJzdHJpbmciKSB7Ci0gICAgICAgICAgICAgICAgLy9UcnkgdG8gbWFrZSBpdCBtb3Jl
IGluZm9ybWF0aXZlIGZvciBzb21lIGV4Y2VwdGlvbnMsIGF0IGxlYXN0Ci0gICAgICAgICAgICAg
ICAgLy9pbiBHZWNrbyBhbmQgV2ViS2l0LiAgVGhpcyByZXN1bHRzIGluIGEgc3RhY2sgZHVtcCBp
bnN0ZWFkIG9mCi0gICAgICAgICAgICAgICAgLy9qdXN0IGVycm9ycyBsaWtlICJDYW5ub3QgcmVh
ZCBwcm9wZXJ0eSAncGFyZW50Tm9kZScgb2YgbnVsbCIKLSAgICAgICAgICAgICAgICAvL29yICJy
b290IGlzIG51bGwiLiAgTWFrZXMgaXQgYSBsb3QgbG9uZ2VyLCBvZiBjb3Vyc2UuCi0gICAgICAg
ICAgICAgICAgbWVzc2FnZSArPSAiKHN0YWNrOiAiICsgZS5zdGFjayArICIpIjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHRoaXMuc2V0X3N0YXR1cyh0aGlzLkZBSUwsIG1lc3NhZ2UpOwot
ICAgICAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLkhBU19SRVNVTFQ7Ci0gICAgICAg
ICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBUZXN0LnByb3RvdHlw
ZS5zdGVwX2Z1bmMgPSBmdW5jdGlvbihmdW5jLCB0aGlzX29iaikKLSAgICB7Ci0gICAgICAgIHZh
ciB0ZXN0X3RoaXMgPSB0aGlzOwotCi0gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAx
KSB7Ci0gICAgICAgICAgICB0aGlzX29iaiA9IHRlc3RfdGhpczsKLSAgICAgICAgfQotCi0gICAg
ICAgIHJldHVybiBmdW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRlc3RfdGhpcy5z
dGVwLmFwcGx5KHRlc3RfdGhpcywgW2Z1bmMsIHRoaXNfb2JqXS5jb25jYXQoCi0gICAgICAgICAg
ICAgICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSkpOwotICAgICAgICB9
OwotICAgIH07Ci0KLSAgICBUZXN0LnByb3RvdHlwZS5zdGVwX2Z1bmNfZG9uZSA9IGZ1bmN0aW9u
KGZ1bmMsIHRoaXNfb2JqKQotICAgIHsKLSAgICAgICAgdmFyIHRlc3RfdGhpcyA9IHRoaXM7Ci0K
LSAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKLSAgICAgICAgICAgIHRoaXNf
b2JqID0gdGVzdF90aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkK
LSAgICAgICAgewotICAgICAgICAgICAgaWYgKGZ1bmMpIHsKLSAgICAgICAgICAgICAgICB0ZXN0
X3RoaXMuc3RlcC5hcHBseSh0ZXN0X3RoaXMsIFtmdW5jLCB0aGlzX29ial0uY29uY2F0KAotICAg
ICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0ZXN0X3RoaXMuZG9uZSgpOwotICAgICAgICB9
OwotICAgIH0KLQotICAgIFRlc3QucHJvdG90eXBlLmFkZF9jbGVhbnVwID0gZnVuY3Rpb24oY2Fs
bGJhY2spIHsKLSAgICAgICAgdGhpcy5jbGVhbnVwX2NhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTsK
LSAgICB9Ci0KLSAgICBUZXN0LnByb3RvdHlwZS5zZXRfdGltZW91dCA9IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLnRpbWVvdXRfbGVuZ3RoICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICB2YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICAgICAgdGhpcy50aW1lb3V0X2lkID0g
c2V0VGltZW91dChmdW5jdGlvbigpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXNfb2JqLnRpbWVvdXQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwgdGhpcy50aW1lb3V0X2xlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBUZXN0
LnByb3RvdHlwZS5zZXRfc3RhdHVzID0gZnVuY3Rpb24oc3RhdHVzLCBtZXNzYWdlKQotICAgIHsK
LSAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7Ci0gICAgICAgIHRoaXMubWVzc2FnZSA9IG1l
c3NhZ2U7Ci0gICAgfQotCi0gICAgVGVzdC5wcm90b3R5cGUudGltZW91dCA9IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMudGltZW91dF9pZCA9IG51bGw7Ci0gICAgICAgIHRoaXMuc2V0
X3N0YXR1cyh0aGlzLlRJTUVPVVQsICJUZXN0IHRpbWVkIG91dCIpCi0gICAgICAgIHRoaXMucGhh
c2UgPSB0aGlzLnBoYXNlcy5IQVNfUkVTVUxUOwotICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICB9
OwotCi0gICAgVGVzdC5wcm90b3R5cGUuZG9uZSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IGlmICh0aGlzLnBoYXNlID09IHRoaXMucGhhc2VzLkNPTVBMRVRFKSB7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy5waGFzZSA8PSB0aGlzLnBoYXNl
cy5TVEFSVEVEKSB7Ci0gICAgICAgICAgICB0aGlzLnNldF9zdGF0dXModGhpcy5QQVNTLCBudWxs
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PSB0aGlzLk5PVFJVTikg
ewotICAgICAgICAgICAgYWxlcnQodGhpcy5waGFzZSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0
aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuQ09NUExFVEU7Ci0KLSAgICAgICAgY2xlYXJUaW1lb3V0
KHRoaXMudGltZW91dF9pZCk7Ci0gICAgICAgIHRlc3RzLnJlc3VsdCh0aGlzKTsKLSAgICAgICAg
dGhpcy5jbGVhbnVwKCk7Ci0gICAgfTsKLQotICAgIFRlc3QucHJvdG90eXBlLmNsZWFudXAgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgZm9yRWFjaCh0aGlzLmNsZWFudXBfY2FsbGJhY2tzLAotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKGNsZWFudXBfY2FsbGJhY2spIHsKLSAgICAgICAgICAgICAg
ICAgICAgY2xlYW51cF9jYWxsYmFjaygpCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgfQotCi0g
ICAgLyoKLSAgICAgKiBIYXJuZXNzCi0gICAgICovCi0KLSAgICBmdW5jdGlvbiBUZXN0c1N0YXR1
cygpCi0gICAgewotICAgICAgICB0aGlzLnN0YXR1cyA9IG51bGw7Ci0gICAgICAgIHRoaXMubWVz
c2FnZSA9IG51bGw7Ci0gICAgfQotCi0gICAgVGVzdHNTdGF0dXMuc3RhdHVzZXMgPSB7Ci0gICAg
ICAgIE9LOjAsCi0gICAgICAgIEVSUk9SOjEsCi0gICAgICAgIFRJTUVPVVQ6MgotICAgIH07Ci0K
LSAgICBUZXN0c1N0YXR1cy5wcm90b3R5cGUgPSBtZXJnZSh7fSwgVGVzdHNTdGF0dXMuc3RhdHVz
ZXMpOwotCi0gICAgVGVzdHNTdGF0dXMucHJvdG90eXBlLnN0cnVjdHVyZWRfY2xvbmUgPSBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZWRfY2xvbmUpIHsKLSAg
ICAgICAgICAgIHZhciBtc2cgPSB0aGlzLm1lc3NhZ2U7Ci0gICAgICAgICAgICBtc2cgPSBtc2cg
PyBTdHJpbmcobXNnKSA6IG1zZzsKLSAgICAgICAgICAgIHRoaXMuX3N0cnVjdHVyZWRfY2xvbmUg
PSBtZXJnZSh7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOnRoaXMuc3RhdHVzLAotICAgICAgICAg
ICAgICAgIG1lc3NhZ2U6bXNnCi0gICAgICAgICAgICB9LCBUZXN0c1N0YXR1cy5zdGF0dXNlcyk7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3N0cnVjdHVyZWRfY2xvbmU7Ci0gICAg
fTsKLQotICAgIGZ1bmN0aW9uIFRlc3RzKCkKLSAgICB7Ci0gICAgICAgIHRoaXMudGVzdHMgPSBb
XTsKLSAgICAgICAgdGhpcy5udW1fcGVuZGluZyA9IDA7Ci0KLSAgICAgICAgdGhpcy5waGFzZXMg
PSB7Ci0gICAgICAgICAgICBJTklUSUFMOjAsCi0gICAgICAgICAgICBTRVRVUDoxLAotICAgICAg
ICAgICAgSEFWRV9URVNUUzoyLAotICAgICAgICAgICAgSEFWRV9SRVNVTFRTOjMsCi0gICAgICAg
ICAgICBDT01QTEVURTo0Ci0gICAgICAgIH07Ci0gICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBo
YXNlcy5JTklUSUFMOwotCi0gICAgICAgIHRoaXMucHJvcGVydGllcyA9IHt9OwotCi0gICAgICAg
IC8vQWxsIHRlc3RzIGNhbid0IGJlIGRvbmUgdW50aWwgdGhlIGxvYWQgZXZlbnQgZmlyZXMKLSAg
ICAgICAgdGhpcy5hbGxfbG9hZGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMud2FpdF9mb3JfZmlu
aXNoID0gZmFsc2U7Ci0gICAgICAgIHRoaXMucHJvY2Vzc2luZ19jYWxsYmFja3MgPSBmYWxzZTsK
LQotICAgICAgICB0aGlzLmFsbG93X3VuY2F1Z2h0X2V4Y2VwdGlvbiA9IGZhbHNlOwotCi0gICAg
ICAgIHRoaXMudGltZW91dF9tdWx0aXBsaWVyID0gMTsKLSAgICAgICAgdGhpcy50aW1lb3V0X2xl
bmd0aCA9IHRoaXMuZ2V0X3RpbWVvdXQoKTsKLSAgICAgICAgdGhpcy50aW1lb3V0X2lkID0gbnVs
bDsKLQotICAgICAgICB0aGlzLnN0YXJ0X2NhbGxiYWNrcyA9IFtdOwotICAgICAgICB0aGlzLnRl
c3RfZG9uZV9jYWxsYmFja3MgPSBbXTsKLSAgICAgICAgdGhpcy5hbGxfZG9uZV9jYWxsYmFja3Mg
PSBbXTsKLQotICAgICAgICB0aGlzLnN0YXR1cyA9IG5ldyBUZXN0c1N0YXR1cygpOwotCi0gICAg
ICAgIHZhciB0aGlzX29iaiA9IHRoaXM7Ci0KLSAgICAgICAgb25fZXZlbnQod2luZG93LCAibG9h
ZCIsCi0gICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgdGhpc19vYmouYWxsX2xvYWRlZCA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgICAgICBpZiAodGhpc19vYmouYWxsX2RvbmUoKSkKLSAgICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5jb21wbGV0ZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLnNl
dF90aW1lb3V0KCk7Ci0gICAgfQotCi0gICAgVGVzdHMucHJvdG90eXBlLnNldHVwID0gZnVuY3Rp
b24oZnVuYywgcHJvcGVydGllcykKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLnBoYXNlID49IHRo
aXMucGhhc2VzLkhBVkVfUkVTVUxUUykgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKHRoaXMucGhhc2UgPCB0aGlzLnBoYXNlcy5TRVRVUCkgewotICAgICAg
ICAgICAgdGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLlNFVFVQOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllczsKLQotICAgICAgICBmb3IgKHZhciBwIGlu
IHByb3BlcnRpZXMpIHsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5
KHApKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gcHJvcGVydGllc1twXQotICAgICAg
ICAgICAgICAgIGlmIChwID09ICJhbGxvd191bmNhdWdodF9leGNlcHRpb24iKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHRoaXMuYWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uID0gdmFsdWU7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChwID09ICJleHBsaWNpdF9kb25lIiAmJiB2YWx1ZSkgewot
ICAgICAgICAgICAgICAgICAgICB0aGlzLndhaXRfZm9yX2ZpbmlzaCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChwID09ICJleHBsaWNpdF90aW1lb3V0IiAmJiB2YWx1ZSkgewot
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVvdXRfbGVuZ3RoID0gbnVsbDsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHRoaXMudGltZW91dF9pZCkKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dF9pZCk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT0gInRp
bWVvdXRfbXVsdGlwbGllciIpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lb3V0X211
bHRpcGxpZXIgPSB2YWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoZnVuYykgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICBmdW5jKCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5zdGF0dXMuc3RhdHVzID0gdGhpcy5zdGF0dXMuRVJST1I7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5zdGF0dXMubWVzc2FnZSA9IFN0cmluZyhlKTsKLSAgICAgICAgICAgIH07Ci0gICAg
ICAgIH0KLSAgICAgICAgdGhpcy5zZXRfdGltZW91dCgpOwotICAgIH07Ci0KLSAgICBUZXN0cy5w
cm90b3R5cGUuZ2V0X3RpbWVvdXQgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgbWV0
YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0YSIpOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG1ldGFzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAobWV0
YXNbaV0ubmFtZSA9PSAidGltZW91dCIpIHsKLSAgICAgICAgICAgICAgICBpZiAobWV0YXNbaV0u
Y29udGVudCA9PSAibG9uZyIpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdz
Lmhhcm5lc3NfdGltZW91dC5sb25nOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc2V0dGlu
Z3MuaGFybmVzc190aW1lb3V0Lm5vcm1hbDsKLSAgICB9Ci0KLSAgICBUZXN0cy5wcm90b3R5cGUu
c2V0X3RpbWVvdXQgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgdGhpc19vYmogPSB0
aGlzOwotICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0X2lkKTsKLSAgICAgICAgaWYg
KHRoaXMudGltZW91dF9sZW5ndGggIT09IG51bGwpIHsKLSAgICAgICAgICAgIHRoaXMudGltZW91
dF9pZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzX29iai50aW1lb3V0KCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMudGltZW91dF9sZW5ndGgpOwotICAgICAg
ICB9Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3RvdHlwZS50aW1lb3V0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgIHRoaXMuc3RhdHVzLnN0YXR1cyA9IHRoaXMuc3RhdHVzLlRJTUVPVVQ7Ci0gICAg
ICAgIHRoaXMuY29tcGxldGUoKTsKLSAgICB9OwotCi0gICAgVGVzdHMucHJvdG90eXBlLmVuZF93
YWl0ID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy53YWl0X2Zvcl9maW5pc2ggPSBm
YWxzZTsKLSAgICAgICAgaWYgKHRoaXMuYWxsX2RvbmUoKSkgewotICAgICAgICAgICAgdGhpcy5j
b21wbGV0ZSgpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3RvdHlwZS5wdXNo
ID0gZnVuY3Rpb24odGVzdCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLnBoYXNlIDwgdGhpcy5w
aGFzZXMuSEFWRV9URVNUUykgewotICAgICAgICAgICAgdGhpcy5zdGFydCgpOwotICAgICAgICB9
Ci0gICAgICAgIHRoaXMubnVtX3BlbmRpbmcrKzsKLSAgICAgICAgdGhpcy50ZXN0cy5wdXNoKHRl
c3QpOwotICAgIH07Ci0KLSAgICBUZXN0cy5wcm90b3R5cGUuYWxsX2RvbmUgPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgcmV0dXJuICh0aGlzLmFsbF9sb2FkZWQgJiYgdGhpcy5udW1fcGVuZGluZyA9
PT0gMCAmJgotICAgICAgICAgICAgICAgICF0aGlzLndhaXRfZm9yX2ZpbmlzaCAmJiAhdGhpcy5w
cm9jZXNzaW5nX2NhbGxiYWNrcyk7Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3RvdHlwZS5zdGFy
dCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuSEFWRV9U
RVNUUzsKLSAgICAgICAgdGhpcy5ub3RpZnlfc3RhcnQoKTsKLSAgICB9OwotCi0gICAgVGVzdHMu
cHJvdG90eXBlLm5vdGlmeV9zdGFydCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgdGhpc19v
YmogPSB0aGlzOwotICAgICAgICBmb3JFYWNoICh0aGlzLnN0YXJ0X2NhbGxiYWNrcywKLSAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXNfb2JqLnByb3BlcnRpZXMpOwotICAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgZm9yRWFjaF93aW5kb3dzKAotICAgICAgICAgICAgICAgIGZ1
bmN0aW9uKHcsIGlzX3NhbWVfb3JpZ2luKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzX3NhbWVfb3JpZ2luICYmIHcuc3RhcnRfY2FsbGJhY2spIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5z
dGFydF9jYWxsYmFjayh0aGlzX29iai5wcm9wZXJ0aWVzKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzX3Bvc3RfbWVzc2Fn
ZSh3KSAmJiB3ICE9PSBzZWxmKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3LnBvc3RNZXNz
YWdlKHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAic3RhcnQiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHRoaXNfb2JqLnByb3BlcnRpZXMKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0sICIqIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgVGVzdHMucHJvdG90eXBlLnJlc3VsdCA9
IGZ1bmN0aW9uKHRlc3QpCi0gICAgewotICAgICAgICBpZiAodGhpcy5waGFzZSA+IHRoaXMucGhh
c2VzLkhBVkVfUkVTVUxUUykgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5IQVZFX1JFU1VMVFM7Ci0gICAgICAgIHRoaXMu
bnVtX3BlbmRpbmctLTsKLSAgICAgICAgdGhpcy5ub3RpZnlfcmVzdWx0KHRlc3QpOwotICAgIH07
Ci0KLSAgICBUZXN0cy5wcm90b3R5cGUubm90aWZ5X3Jlc3VsdCA9IGZ1bmN0aW9uKHRlc3QpIHsK
LSAgICAgICAgdmFyIHRoaXNfb2JqID0gdGhpczsKLSAgICAgICAgdGhpcy5wcm9jZXNzaW5nX2Nh
bGxiYWNrcyA9IHRydWU7Ci0gICAgICAgIGZvckVhY2godGhpcy50ZXN0X2RvbmVfY2FsbGJhY2tz
LAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGVzdCwgdGhpc19vYmopOwotICAgICAgICAg
ICAgICAgIH0pOwotCi0gICAgICAgIGZvckVhY2hfd2luZG93cygKLSAgICAgICAgICAgICAgICBm
dW5jdGlvbih3LCBpc19zYW1lX29yaWdpbikKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChpc19zYW1lX29yaWdpbiAmJiB3LnJlc3VsdF9jYWxsYmFjaykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
LnJlc3VsdF9jYWxsYmFjayh0ZXN0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzX3Bvc3RfbWVzc2FnZSh3KSAmJiB3ICE9
PSBzZWxmKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3LnBvc3RNZXNzYWdlKHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAicmVzdWx0IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0OiB0ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKQotICAgICAgICAgICAgICAg
ICAgICAgICAgfSwgIioiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICB0aGlzLnByb2Nlc3NpbmdfY2FsbGJhY2tzID0gZmFsc2U7Ci0gICAgICAg
IGlmICh0aGlzX29iai5hbGxfZG9uZSgpKSB7Ci0gICAgICAgICAgICB0aGlzX29iai5jb21wbGV0
ZSgpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3RvdHlwZS5jb21wbGV0ZSA9
IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAodGhpcy5waGFzZSA9PT0gdGhpcy5waGFzZXMuQ09N
UExFVEUpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLnBo
YXNlID0gdGhpcy5waGFzZXMuQ09NUExFVEU7Ci0gICAgICAgIHZhciB0aGlzX29iaiA9IHRoaXM7
Ci0gICAgICAgIHRoaXMudGVzdHMuZm9yRWFjaCgKLSAgICAgICAgICAgIGZ1bmN0aW9uKHgpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHguc3RhdHVzID09PSB4Lk5PVFJVTikg
ewotICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5ub3RpZnlfcmVzdWx0KHgpOwotICAgICAg
ICAgICAgICAgICAgICB4LmNsZWFudXAoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICk7Ci0gICAgICAgIHRoaXMubm90aWZ5X2NvbXBsZXRlKCk7Ci0gICAgfTsK
LQotICAgIFRlc3RzLnByb3RvdHlwZS5ub3RpZnlfY29tcGxldGUgPSBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0X2lkKTsKLSAgICAgICAgdmFyIHRo
aXNfb2JqID0gdGhpczsKLSAgICAgICAgdmFyIHRlc3RzID0gbWFwKHRoaXNfb2JqLnRlc3RzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24odGVzdCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVzdC5zdHJ1Y3R1
cmVkX2Nsb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgaWYgKHRo
aXMuc3RhdHVzLnN0YXR1cyA9PT0gbnVsbCkgewotICAgICAgICAgICAgdGhpcy5zdGF0dXMuc3Rh
dHVzID0gdGhpcy5zdGF0dXMuT0s7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3JFYWNoICh0aGlz
LmFsbF9kb25lX2NhbGxiYWNrcywKLSAgICAgICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2sp
Ci0gICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXNf
b2JqLnRlc3RzLCB0aGlzX29iai5zdGF0dXMpOwotICAgICAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICBmb3JFYWNoX3dpbmRvd3MoCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24odywgaXNfc2Ft
ZV9vcmlnaW4pCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAoaXNf
c2FtZV9vcmlnaW4gJiYgdy5jb21wbGV0aW9uX2NhbGxiYWNrKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcuY29tcGxldGlvbl9j
YWxsYmFjayh0aGlzX29iai50ZXN0cywgdGhpc19vYmouc3RhdHVzKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
ZGVidWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRzX3Bvc3Rf
bWVzc2FnZSh3KSAmJiB3ICE9PSBzZWxmKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3LnBv
c3RNZXNzYWdlKHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiY29tcGxldGUi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzOiB0ZXN0cywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM6IHRoaXNfb2JqLnN0YXR1cy5zdHJ1Y3R1cmVkX2Nsb25l
KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0sICIqIik7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgdmFyIHRlc3RzID0gbmV3IFRl
c3RzKCk7Ci0KLSAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZykgewotICAgICAgICBp
ZiAoIXRlc3RzLmFsbG93X3VuY2F1Z2h0X2V4Y2VwdGlvbikgewotICAgICAgICAgICAgdGVzdHMu
c3RhdHVzLnN0YXR1cyA9IHRlc3RzLnN0YXR1cy5FUlJPUjsKLSAgICAgICAgICAgIHRlc3RzLnN0
YXR1cy5tZXNzYWdlID0gbXNnOwotICAgICAgICAgICAgdGVzdHMuY29tcGxldGUoKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRpbWVvdXQoKSB7Ci0gICAgICAgIGlmICh0ZXN0
cy50aW1lb3V0X2xlbmd0aCA9PT0gbnVsbCkgewotICAgICAgICAgICAgdGVzdHMudGltZW91dCgp
OwotICAgICAgICB9Ci0gICAgfQotICAgIGV4cG9zZSh0aW1lb3V0LCAndGltZW91dCcpOwotCi0g
ICAgZnVuY3Rpb24gYWRkX3N0YXJ0X2NhbGxiYWNrKGNhbGxiYWNrKSB7Ci0gICAgICAgIHRlc3Rz
LnN0YXJ0X2NhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBh
ZGRfcmVzdWx0X2NhbGxiYWNrKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdGVzdHMudGVzdF9k
b25lX2NhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhZGRf
Y29tcGxldGlvbl9jYWxsYmFjayhjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgdGVzdHMuYWxsX2Rv
bmVfY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOwotICAgIH0KLQotICAgIGV4cG9zZShhZGRfc3Rh
cnRfY2FsbGJhY2ssICdhZGRfc3RhcnRfY2FsbGJhY2snKTsKLSAgICBleHBvc2UoYWRkX3Jlc3Vs
dF9jYWxsYmFjaywgJ2FkZF9yZXN1bHRfY2FsbGJhY2snKTsKLSAgICBleHBvc2UoYWRkX2NvbXBs
ZXRpb25fY2FsbGJhY2ssICdhZGRfY29tcGxldGlvbl9jYWxsYmFjaycpOwotCi0gICAgLyoKLSAg
ICAgKiBPdXRwdXQgbGlzdGVuZXIKLSAgICAqLwotCi0gICAgZnVuY3Rpb24gT3V0cHV0KCkgewot
ICAgICAgICB0aGlzLm91dHB1dF9kb2N1bWVudCA9IGRvY3VtZW50OwotICAgICAgICB0aGlzLm91
dHB1dF9ub2RlID0gbnVsbDsKLSAgICAgICAgdGhpcy5kb25lX2NvdW50ID0gMDsKLSAgICAgICAg
dGhpcy5lbmFibGVkID0gc2V0dGluZ3Mub3V0cHV0OwotICAgICAgICB0aGlzLnBoYXNlID0gdGhp
cy5JTklUSUFMOwotICAgIH0KLQotICAgIE91dHB1dC5wcm90b3R5cGUuSU5JVElBTCA9IDA7Ci0g
ICAgT3V0cHV0LnByb3RvdHlwZS5TVEFSVEVEID0gMTsKLSAgICBPdXRwdXQucHJvdG90eXBlLkhB
VkVfUkVTVUxUUyA9IDI7Ci0gICAgT3V0cHV0LnByb3RvdHlwZS5DT01QTEVURSA9IDM7Ci0KLSAg
ICBPdXRwdXQucHJvdG90eXBlLnNldHVwID0gZnVuY3Rpb24ocHJvcGVydGllcykgewotICAgICAg
ICBpZiAodGhpcy5waGFzZSA+IHRoaXMuSU5JVElBTCkgewotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0KLSAgICAgICAgLy9JZiBvdXRwdXQgaXMgZGlzYWJsZWQgaW4gdGVzdGhhcm5l
c3NyZXBvcnQuanMgdGhlIHRlc3Qgc2hvdWxkbid0IGJlCi0gICAgICAgIC8vYWJsZSB0byBvdmVy
cmlkZSB0aGF0Ci0gICAgICAgIHRoaXMuZW5hYmxlZCA9IHRoaXMuZW5hYmxlZCAmJiAocHJvcGVy
dGllcy5oYXNPd25Qcm9wZXJ0eSgib3V0cHV0IikgPwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb3BlcnRpZXMub3V0cHV0IDogc2V0dGluZ3Mub3V0cHV0KTsKLSAg
ICB9OwotCi0gICAgT3V0cHV0LnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24ocHJvcGVydGllcykK
LSAgICB7Ci0gICAgICAgIGlmICh0aGlzLnBoYXNlID49IHRoaXMuU1RBUlRFRCkgewotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9wZXJ0aWVzLm91dHB1dF9k
b2N1bWVudCkgewotICAgICAgICAgICAgdGhpcy5vdXRwdXRfZG9jdW1lbnQgPSBwcm9wZXJ0aWVz
Lm91dHB1dF9kb2N1bWVudDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMub3V0
cHV0X2RvY3VtZW50ID0gZG9jdW1lbnQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5waGFzZSA9
IHRoaXMuU1RBUlRFRDsKLSAgICB9OwotCi0gICAgT3V0cHV0LnByb3RvdHlwZS5yZXNvbHZlX2xv
ZyA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBvdXRwdXRfZG9jdW1lbnQ7Ci0gICAg
ICAgIGlmICh0eXBlb2YgdGhpcy5vdXRwdXRfZG9jdW1lbnQgPT09ICJmdW5jdGlvbiIpIHsKLSAg
ICAgICAgICAgIG91dHB1dF9kb2N1bWVudCA9IHRoaXMub3V0cHV0X2RvY3VtZW50LmFwcGx5KHVu
ZGVmaW5lZCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBvdXRwdXRfZG9jdW1lbnQg
PSB0aGlzLm91dHB1dF9kb2N1bWVudDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW91dHB1dF9k
b2N1bWVudCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHZhciBu
b2RlID0gb3V0cHV0X2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKTsKLSAgICAgICAgaWYg
KG5vZGUpIHsKLSAgICAgICAgICAgIHRoaXMub3V0cHV0X2RvY3VtZW50ID0gb3V0cHV0X2RvY3Vt
ZW50OwotICAgICAgICAgICAgdGhpcy5vdXRwdXRfbm9kZSA9IG5vZGU7Ci0gICAgICAgIH0KLSAg
ICB9OwotCi0gICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3N0YXR1cyA9IGZ1bmN0aW9uKHRlc3Qp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5waGFzZSA8IHRoaXMuU1RBUlRFRCkgewotICAgICAg
ICAgICAgdGhpcy5pbml0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQp
IHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAodGhpcy5waGFz
ZSA8IHRoaXMuSEFWRV9SRVNVTFRTKSB7Ci0gICAgICAgICAgICB0aGlzLnJlc29sdmVfbG9nKCk7
Ci0gICAgICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5IQVZFX1JFU1VMVFM7Ci0gICAgICAgIH0K
LSAgICAgICAgdGhpcy5kb25lX2NvdW50Kys7Ci0gICAgICAgIGlmICh0aGlzLm91dHB1dF9ub2Rl
KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5kb25lX2NvdW50IDwgMTAwCi0gICAgICAgICAgICB8
fCAodGhpcy5kb25lX2NvdW50IDwgMTAwMCAmJiB0aGlzLmRvbmVfY291bnQgJSAxMDAgPT0gMCkK
LSAgICAgICAgICAgIHx8IHRoaXMuZG9uZV9jb3VudCAlIDEwMDAgPT0gMCkgewotICAgICAgICAg
ICAgICAgIHRoaXMub3V0cHV0X25vZGUudGV4dENvbnRlbnQgPSAiUnVubmluZywgIgotICAgICAg
ICAgICAgICAgICAgICArIHRoaXMuZG9uZV9jb3VudCArICIgY29tcGxldGUsICIKLSAgICAgICAg
ICAgICAgICAgICAgKyB0ZXN0cy5udW1fcGVuZGluZyArICIgcmVtYWluIjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBPdXRwdXQucHJvdG90eXBlLnNob3dfcmVzdWx0
cyA9IGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMpCi0gICAgewotICAgICAgICBpZiAo
dGhpcy5waGFzZSA+PSB0aGlzLkNPTVBMRVRFKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpIHsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAoIXRoaXMub3V0cHV0X25vZGUpIHsKLSAgICAgICAgICAg
IHRoaXMucmVzb2x2ZV9sb2coKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLnBoYXNlID0gdGhp
cy5DT01QTEVURTsKLQotICAgICAgICB2YXIgbG9nID0gdGhpcy5vdXRwdXRfbm9kZTsKLSAgICAg
ICAgaWYgKCFsb2cpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB2
YXIgb3V0cHV0X2RvY3VtZW50ID0gdGhpcy5vdXRwdXRfZG9jdW1lbnQ7Ci0KLSAgICAgICAgd2hp
bGUgKGxvZy5sYXN0Q2hpbGQpIHsKLSAgICAgICAgICAgIGxvZy5yZW1vdmVDaGlsZChsb2cubGFz
dENoaWxkKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzY3JpcHRfcHJlZml4ICE9IG51bGwp
IHsKLSAgICAgICAgICAgIHZhciBzdHlsZXNoZWV0ID0gb3V0cHV0X2RvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUyh4aHRtbF9ucywgImxpbmsiKTsKLSAgICAgICAgICAgIHN0eWxlc2hlZXQuc2V0QXR0
cmlidXRlKCJyZWwiLCAic3R5bGVzaGVldCIpOwotICAgICAgICAgICAgc3R5bGVzaGVldC5zZXRB
dHRyaWJ1dGUoImhyZWYiLCBzY3JpcHRfcHJlZml4ICsgInRlc3RoYXJuZXNzLmNzcyIpOwotICAg
ICAgICAgICAgdmFyIGhlYWRzID0gb3V0cHV0X2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJoZWFkIik7Ci0gICAgICAgICAgICBpZiAoaGVhZHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAg
ICAgaGVhZHNbMF0uYXBwZW5kQ2hpbGQoc3R5bGVzaGVldCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLQotICAgICAgICB2YXIgc3RhdHVzX3RleHRfaGFybmVzcyA9IHt9OwotICAgICAgICBz
dGF0dXNfdGV4dF9oYXJuZXNzW2hhcm5lc3Nfc3RhdHVzLk9LXSA9ICJPSyI7Ci0gICAgICAgIHN0
YXR1c190ZXh0X2hhcm5lc3NbaGFybmVzc19zdGF0dXMuRVJST1JdID0gIkVycm9yIjsKLSAgICAg
ICAgc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNzX3N0YXR1cy5USU1FT1VUXSA9ICJUaW1lb3V0
IjsKLQotICAgICAgICB2YXIgc3RhdHVzX3RleHQgPSB7fTsKLSAgICAgICAgc3RhdHVzX3RleHRb
VGVzdC5wcm90b3R5cGUuUEFTU10gPSAiUGFzcyI7Ci0gICAgICAgIHN0YXR1c190ZXh0W1Rlc3Qu
cHJvdG90eXBlLkZBSUxdID0gIkZhaWwiOwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3Rv
dHlwZS5USU1FT1VUXSA9ICJUaW1lb3V0IjsKLSAgICAgICAgc3RhdHVzX3RleHRbVGVzdC5wcm90
b3R5cGUuTk9UUlVOXSA9ICJOb3QgUnVuIjsKLQotICAgICAgICB2YXIgc3RhdHVzX251bWJlciA9
IHt9OwotICAgICAgICBmb3JFYWNoKHRlc3RzLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHRl
c3QpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHN0YXR1c190ZXh0W3Rlc3Qu
c3RhdHVzXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1c19udW1iZXIuaGFzT3duUHJv
cGVydHkoc3RhdHVzKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX251bWJlcltz
dGF0dXNdICs9IDE7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0dXNfbnVtYmVyW3N0YXR1c10gPSAxOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RhdHVzX2NsYXNz
KHN0YXR1cykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHN0YXR1cy5yZXBsYWNlKC9c
cy9nLCAnJykudG9Mb3dlckNhc2UoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBzdW1tYXJ5
X3RlbXBsYXRlID0gWyJzZWN0aW9uIiwgeyJpZCI6InN1bW1hcnkifSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWyJoMiIsIHt9LCAiU3VtbWFyeSJdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jdGlvbih2YXJzKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFybmVz
c19zdGF0dXMuc3RhdHVzID09PSBoYXJuZXNzX3N0YXR1cy5PSykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgc3RhdHVzID0gc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNzX3N0YXR1cy5zdGF0dXNd
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJ2ID0gW1sicCIsIHsi
Y2xhc3MiOnN0YXR1c19jbGFzcyhzdGF0dXMpfV1dOwotCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaGFybmVzc19zdGF0dXMuc3RhdHVzID09PSBoYXJuZXNzX3N0YXR1
cy5FUlJPUikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ2WzBd
LnB1c2goIkhhcm5lc3MgZW5jb3VudGVyZWQgYW4gZXJyb3I6Iik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnYucHVzaChbInByZSIsIHt9LCBoYXJuZXNzX3N0YXR1
cy5tZXNzYWdlXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGhhcm5lc3Nfc3RhdHVzLnN0YXR1cyA9PT0gaGFybmVzc19zdGF0dXMuVElNRU9VVCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ2WzBdLnB1c2goIkhhcm5l
c3MgdGltZWQgb3V0LiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydlswXS5wdXNo
KCJIYXJuZXNzIGdvdCBhbiB1bmV4cGVjdGVkIHN0YXR1cy4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJ2OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbInAiLCB7fSwgIkZvdW5kICR7bnVtX3Rlc3RzfSB0
ZXN0cyJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih2YXJzKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcnYgPSBbWyJkaXYiLCB7
fV1dOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSAwOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHN0YXR1c190ZXh0Lmhhc093
blByb3BlcnR5KGkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHN0YXR1c19udW1iZXIuaGFzT3duUHJvcGVydHkoc3RhdHVzX3RleHRbaV0pKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBzdGF0
dXNfdGV4dFtpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnZbMF0ucHVzaChbImRpdiIsIHsiY2xhc3MiOnN0YXR1c19jbGFzcyhzdGF0dXMpfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJsYWJl
bCIsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWyJpbnB1dCIsIHt0eXBlOiJjaGVja2JveCIsIGNoZWNrZWQ6ImNoZWNrZWQifV0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0dXNfbnVtYmVyW3N0YXR1c10gKyAiICIgKyBzdGF0dXNdXSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGkrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBydjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfV07Ci0KLSAgICAgICAgbG9nLmFwcGVuZENoaWxkKHJl
bmRlcihzdW1tYXJ5X3RlbXBsYXRlLCB7bnVtX3Rlc3RzOnRlc3RzLmxlbmd0aH0sIG91dHB1dF9k
b2N1bWVudCkpOwotCi0gICAgICAgIGZvckVhY2gob3V0cHV0X2RvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoInNlY3Rpb24jc3VtbWFyeSBsYWJlbCIpLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KGVsZW1lbnQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBvbl9ldmVu
dChlbGVtZW50LCAiY2xpY2siLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlv
bihlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAob3V0cHV0X2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRz
IikgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnBy
ZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdF9jbGFzcyA9IGVsZW1lbnQucGFyZW50Tm9kZS5n
ZXRBdHRyaWJ1dGUoImNsYXNzIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgc3R5bGVfZWxlbWVudCA9IG91dHB1dF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzdHlsZSNo
aWRlLSIgKyByZXN1bHRfY2xhc3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGlucHV0X2VsZW1lbnQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0eWxlX2VsZW1lbnQgJiYgIWlucHV0
X2VsZW1lbnQuY2hlY2tlZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0eWxlX2VsZW1lbnQgPSBvdXRwdXRfZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhodG1sX25z
LCAic3R5bGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9l
bGVtZW50LmlkID0gImhpZGUtIiArIHJlc3VsdF9jbGFzczsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LnRleHRDb250ZW50ID0gInRhYmxlI3Jlc3Vs
dHMgPiB0Ym9keSA+IHRyLiIrcmVzdWx0X2NsYXNzKyJ7ZGlzcGxheTpub25lfSI7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2RvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoc3R5bGVfZWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKHN0eWxlX2VsZW1lbnQgJiYgaW5wdXRfZWxlbWVudC5jaGVja2VkKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVfZWxlbWVudC5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKHN0eWxlX2VsZW1lbnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICB9KTsKLQotICAgICAgICAvLyBUaGlzIHVzZSBvZiBpbm5lckhUTUwgcGx1cyBtYW51YWwgZXNj
YXBpbmcgaXMgbm90IHJlY29tbWVuZGVkIGluCi0gICAgICAgIC8vIGdlbmVyYWwsIGJ1dCBpcyBu
ZWNlc3NhcnkgaGVyZSBmb3IgcGVyZm9ybWFuY2UuICBVc2luZyB0ZXh0Q29udGVudAotICAgICAg
ICAvLyBvbiBlYWNoIGluZGl2aWR1YWwgPHRkPiBhZGRzIHRlbnMgb2Ygc2Vjb25kcyBvZiBleGVj
dXRpb24gdGltZSBmb3IKLSAgICAgICAgLy8gbGFyZ2UgdGVzdCBzdWl0ZXMgKHRlbnMgb2YgdGhv
dXNhbmRzIG9mIHRlc3RzKS4KLSAgICAgICAgZnVuY3Rpb24gZXNjYXBlX2h0bWwocykKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvXCYvZywgIiZhbXA7IikKLSAgICAg
ICAgICAgICAgICAucmVwbGFjZSgvPC9nLCAiJmx0OyIpCi0gICAgICAgICAgICAgICAgLnJlcGxh
Y2UoLyIvZywgIiZxdW90OyIpCi0gICAgICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgIiYjMzk7
Iik7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBoYXNfYXNzZXJ0aW9ucygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICAgICAgICBpZiAodGVzdHNbaV0ucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0
eSgiYXNzZXJ0IikpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gZ2V0X2Fzc2VydGlvbih0ZXN0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAodGVzdC5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCJhc3NlcnQi
KSkgewotICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRlc3QucHJvcGVydGllcy5h
c3NlcnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0LnByb3BlcnRpZXMuYXNz
ZXJ0LmpvaW4oJyAnKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHRlc3QucHJvcGVydGllcy5hc3NlcnQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm4gJyc7Ci0gICAgICAgIH0KLQotICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudE5TKHhodG1sX25zLCAic2VjdGlvbiIpKTsKLSAgICAgICAgdmFyIGFzc2VydGlv
bnMgPSBoYXNfYXNzZXJ0aW9ucygpOwotICAgICAgICB2YXIgaHRtbCA9ICI8aDI+RGV0YWlsczwv
aDI+PHRhYmxlIGlkPSdyZXN1bHRzJyAiICsgKGFzc2VydGlvbnMgPyAiY2xhc3M9J2Fzc2VydGlv
bnMnIiA6ICIiICkgKyAiPiIKLSAgICAgICAgICAgICsgIjx0aGVhZD48dHI+PHRoPlJlc3VsdDwv
dGg+PHRoPlRlc3QgTmFtZTwvdGg+IgotICAgICAgICAgICAgKyAoYXNzZXJ0aW9ucyA/ICI8dGg+
QXNzZXJ0aW9uPC90aD4iIDogIiIpCi0gICAgICAgICAgICArICI8dGg+TWVzc2FnZTwvdGg+PC90
cj48L3RoZWFkPiIKLSAgICAgICAgICAgICsgIjx0Ym9keT4iOwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBodG1sICs9ICc8dHIg
Y2xhc3M9IicKLSAgICAgICAgICAgICAgICArIGVzY2FwZV9odG1sKHN0YXR1c19jbGFzcyhzdGF0
dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSkKLSAgICAgICAgICAgICAgICArICciPjx0ZD4nCi0g
ICAgICAgICAgICAgICAgKyBlc2NhcGVfaHRtbChzdGF0dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNd
KQotICAgICAgICAgICAgICAgICsgIjwvdGQ+PHRkPiIKLSAgICAgICAgICAgICAgICArIGVzY2Fw
ZV9odG1sKHRlc3RzW2ldLm5hbWUpCi0gICAgICAgICAgICAgICAgKyAiPC90ZD48dGQ+IgotICAg
ICAgICAgICAgICAgICsgKGFzc2VydGlvbnMgPyBlc2NhcGVfaHRtbChnZXRfYXNzZXJ0aW9uKHRl
c3RzW2ldKSkgKyAiPC90ZD48dGQ+IiA6ICIiKQotICAgICAgICAgICAgICAgICsgZXNjYXBlX2h0
bWwodGVzdHNbaV0ubWVzc2FnZSA/IHRlc3RzW2ldLm1lc3NhZ2UgOiAiICIpCi0gICAgICAgICAg
ICAgICAgKyAiPC90ZD48L3RyPiI7Ci0gICAgICAgIH0KLSAgICAgICAgaHRtbCArPSAiPC90Ym9k
eT48L3RhYmxlPiI7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsb2cubGFzdENoaWxkLmlu
bmVySFRNTCA9IGh0bWw7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIGxvZy5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeGh0bWxfbnMsICJwIikpCi0gICAg
ICAgICAgICAgICAudGV4dENvbnRlbnQgPSAiU2V0dGluZyBpbm5lckhUTUwgZm9yIHRoZSBsb2cg
dGhyZXcgYW4gZXhjZXB0aW9uLiI7Ci0gICAgICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKHhodG1sX25zLCAicHJlIikpCi0gICAgICAgICAgICAgICAudGV4
dENvbnRlbnQgPSBodG1sOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHZhciBvdXRwdXQgPSBu
ZXcgT3V0cHV0KCk7Ci0gICAgYWRkX3N0YXJ0X2NhbGxiYWNrKGZ1bmN0aW9uIChwcm9wZXJ0aWVz
KSB7b3V0cHV0LmluaXQocHJvcGVydGllcyk7fSk7Ci0gICAgYWRkX3Jlc3VsdF9jYWxsYmFjayhm
dW5jdGlvbiAodGVzdCkge291dHB1dC5zaG93X3N0YXR1cyh0ZXN0cyk7fSk7Ci0gICAgYWRkX2Nv
bXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykge291dHB1
dC5zaG93X3Jlc3VsdHModGVzdHMsIGhhcm5lc3Nfc3RhdHVzKTt9KTsKLQotICAgIC8qCi0gICAg
ICogVGVtcGxhdGUgY29kZQotICAgICAqCi0gICAgICogQSB0ZW1wbGF0ZSBpcyBqdXN0IGEgamF2
YXNjcmlwdCBzdHJ1Y3R1cmUuIEFuIGVsZW1lbnQgaXMgcmVwcmVzZW50ZWQgYXM6Ci0gICAgICoK
LSAgICAgKiBbdGFnX25hbWUsIHthdHRyX25hbWU6YXR0cl92YWx1ZX0sIGNoaWxkMSwgY2hpbGQy
XQotICAgICAqCi0gICAgICogdGhlIGNoaWxkcmVuIGNhbiBlaXRoZXIgYmUgc3RyaW5ncyAod2hp
Y2ggYWN0IGxpa2UgdGV4dCBub2RlcyksIG90aGVyIHRlbXBsYXRlcyBvcgotICAgICAqIGZ1bmN0
aW9ucyAoc2VlIGJlbG93KQotICAgICAqCi0gICAgICogQSB0ZXh0IG5vZGUgaXMgcmVwcmVzZW50
ZWQgYXMKLSAgICAgKgotICAgICAqIFsie3RleHR9IiwgdmFsdWVdCi0gICAgICoKLSAgICAgKiBT
dHJpbmcgdmFsdWVzIGhhdmUgYSBzaW1wbGUgc3Vic3RpdHV0aW9uIHN5bnRheDsgJHtmb299IHJl
cHJlc2VudHMgYSB2YXJpYWJsZSBmb28uCi0gICAgICoKLSAgICAgKiBJdCBpcyBwb3NzaWJsZSB0
byBlbWJlZCBsb2dpYyBpbiB0ZW1wbGF0ZXMgYnkgdXNpbmcgYSBmdW5jdGlvbiBpbiBhIHBsYWNl
IHdoZXJlIGEKLSAgICAgKiBub2RlIHdvdWxkIHVzdWFsbHkgZ28uIFRoZSBmdW5jdGlvbiBtdXN0
IGVpdGhlciByZXR1cm4gcGFydCBvZiBhIHRlbXBsYXRlIG9yIG51bGwuCi0gICAgICoKLSAgICAg
KiBJbiBjYXNlcyB3aGVyZSBhIHNldCBvZiBub2RlcyBhcmUgcmVxdWlyZWQgYXMgb3V0cHV0IHJh
dGhlciB0aGFuIGEgc2luZ2xlIG5vZGUKLSAgICAgKiB3aXRoIGNoaWxkcmVuIGl0IGlzIHBvc3Np
YmxlIHRvIGp1c3QgdXNlIGEgbGlzdAotICAgICAqIFtub2RlMSwgbm9kZTIsIG5vZGUzXQotICAg
ICAqCi0gICAgICogVXNhZ2U6Ci0gICAgICoKLSAgICAgKiByZW5kZXIodGVtcGxhdGUsIHN1YnN0
aXR1dGlvbnMpIC0gdGFrZSBhIHRlbXBsYXRlIGFuZCBhbiBvYmplY3QgbWFwcGluZwotICAgICAq
IHZhcmlhYmxlIG5hbWVzIHRvIHBhcmFtZXRlcnMgYW5kIHJldHVybiBlaXRoZXIgYSBET00gbm9k
ZSBvciBhIGxpc3Qgb2YgRE9NIG5vZGVzCi0gICAgICoKLSAgICAgKiBzdWJzdGl0dXRlKHRlbXBs
YXRlLCBzdWJzdGl0dXRpb25zKSAtIHRha2UgYSB0ZW1wbGF0ZSBhbmQgdmFyaWFibGUgbWFwcGlu
ZyBvYmplY3QsCi0gICAgICogbWFrZSB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9ucyBhbmQgcmV0
dXJuIHRoZSBzdWJzdGl0dXRlZCB0ZW1wbGF0ZQotICAgICAqCi0gICAgICovCi0KLSAgICBmdW5j
dGlvbiBpc19zaW5nbGVfbm9kZSh0ZW1wbGF0ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0eXBl
b2YgdGVtcGxhdGVbMF0gPT09ICJzdHJpbmciOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN1YnN0
aXR1dGUodGVtcGxhdGUsIHN1YnN0aXR1dGlvbnMpCi0gICAgewotICAgICAgICBpZiAodHlwZW9m
IHRlbXBsYXRlID09PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQg
PSB0ZW1wbGF0ZShzdWJzdGl0dXRpb25zKTsKLSAgICAgICAgICAgIGlmICghcmVwbGFjZW1lbnQp
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgcmV0dXJuIHN1YnN0aXR1dGUocmVwbGFjZW1lbnQsIHN1YnN0aXR1dGlvbnMpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKGlzX3NpbmdsZV9ub2RlKHRlbXBsYXRlKSkgewotICAgICAg
ICAgICAgcmV0dXJuIHN1YnN0aXR1dGVfc2luZ2xlKHRlbXBsYXRlLCBzdWJzdGl0dXRpb25zKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmaWx0ZXIobWFwKHRlbXBsYXRlLCBmdW5jdGlv
bih4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZSh4
LCBzdWJzdGl0dXRpb25zKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIGZ1bmN0aW9u
KHgpIHtyZXR1cm4geCAhPT0gbnVsbDt9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdWJzdGl0
dXRlX3NpbmdsZSh0ZW1wbGF0ZSwgc3Vic3RpdHV0aW9ucykKLSAgICB7Ci0gICAgICAgIHZhciBz
dWJzdGl0dXRpb25fcmUgPSAvXCR7KFteIH1dKil9L2c7Ci0KLSAgICAgICAgZnVuY3Rpb24gZG9f
c3Vic3RpdHV0aW9uKGlucHV0KSB7Ci0gICAgICAgICAgICB2YXIgY29tcG9uZW50cyA9IGlucHV0
LnNwbGl0KHN1YnN0aXR1dGlvbl9yZSk7Ci0gICAgICAgICAgICB2YXIgcnYgPSBbXTsKLSAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7IGkgKz0gMikgewot
ICAgICAgICAgICAgICAgIHJ2LnB1c2goY29tcG9uZW50c1tpXSk7Ci0gICAgICAgICAgICAgICAg
aWYgKGNvbXBvbmVudHNbaSArIDFdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJ2LnB1c2goU3Ry
aW5nKHN1YnN0aXR1dGlvbnNbY29tcG9uZW50c1tpICsgMV1dKSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJ2OwotICAgICAgICB9Ci0KLSAg
ICAgICAgdmFyIHJ2ID0gW107Ci0gICAgICAgIHJ2LnB1c2goZG9fc3Vic3RpdHV0aW9uKFN0cmlu
Zyh0ZW1wbGF0ZVswXSkpLmpvaW4oIiIpKTsKLQotICAgICAgICBpZiAodGVtcGxhdGVbMF0gPT09
ICJ7dGV4dH0iKSB7Ci0gICAgICAgICAgICBzdWJzdGl0dXRlX2NoaWxkcmVuKHRlbXBsYXRlLnNs
aWNlKDEpLCBydik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdWJzdGl0dXRlX2F0
dHJzKHRlbXBsYXRlWzFdLCBydik7Ci0gICAgICAgICAgICBzdWJzdGl0dXRlX2NoaWxkcmVuKHRl
bXBsYXRlLnNsaWNlKDIpLCBydik7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdWJz
dGl0dXRlX2F0dHJzKGF0dHJzLCBydikKLSAgICAgICAgewotICAgICAgICAgICAgcnZbMV0gPSB7
fTsKLSAgICAgICAgICAgIGZvciAodmFyIG5hbWUgaW4gdGVtcGxhdGVbMV0pIHsKLSAgICAgICAg
ICAgICAgICBpZiAoYXR0cnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgdmFyIG5ld19uYW1lID0gZG9fc3Vic3RpdHV0aW9uKG5hbWUpLmpvaW4oIiIpOwotICAg
ICAgICAgICAgICAgICAgICB2YXIgbmV3X3ZhbHVlID0gZG9fc3Vic3RpdHV0aW9uKGF0dHJzW25h
bWVdKS5qb2luKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgcnZbMV1bbmV3X25hbWVdID0gbmV3
X3ZhbHVlOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBzdWJzdGl0dXRlX2NoaWxkcmVuKGNoaWxkcmVuLCBydikKLSAgICAg
ICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXSBpbnN0YW5jZW9mIE9iamVjdCkg
ewotICAgICAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBzdWJzdGl0dXRlKGNoaWxk
cmVuW2ldLCBzdWJzdGl0dXRpb25zKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfc2luZ2xlX25v
ZGUocmVwbGFjZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnYucHVzaChy
ZXBsYWNlbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4dGVuZChydiwgcmVwbGFjZW1lbnQpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJ2LCBkb19zdWJzdGl0dXRpb24oU3Ry
aW5nKGNoaWxkcmVuW2ldKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybiBydjsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBydjsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBtYWtlX2RvbV9zaW5nbGUodGVtcGxhdGUsIGRvYykKLSAgICB7
Ci0gICAgICAgIHZhciBvdXRwdXRfZG9jdW1lbnQgPSBkb2MgfHwgZG9jdW1lbnQ7Ci0gICAgICAg
IGlmICh0ZW1wbGF0ZVswXSA9PT0gInt0ZXh0fSIpIHsKLSAgICAgICAgICAgIHZhciBlbGVtZW50
ID0gb3V0cHV0X2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKTsKLSAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAxOyBpIDwgdGVtcGxhdGUubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBl
bGVtZW50LmRhdGEgKz0gdGVtcGxhdGVbaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICB2YXIgZWxlbWVudCA9IG91dHB1dF9kb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoeGh0bWxfbnMsIHRlbXBsYXRlWzBdKTsKLSAgICAgICAgICAgIGZvciAodmFyIG5hbWUg
aW4gdGVtcGxhdGVbMV0pIHsKLSAgICAgICAgICAgICAgICBpZiAodGVtcGxhdGVbMV0uaGFzT3du
UHJvcGVydHkobmFtZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1
dGUobmFtZSwgdGVtcGxhdGVbMV1bbmFtZV0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAyOyBpIDwgdGVtcGxhdGUubGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICAgICAgICBpZiAodGVtcGxhdGVbaV0gaW5zdGFuY2VvZiBPYmplY3Qp
IHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN1Yl9lbGVtZW50ID0gbWFrZV9kb20odGVtcGxh
dGVbaV0pOwotICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHN1Yl9lbGVt
ZW50KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB2YXIg
dGV4dF9ub2RlID0gb3V0cHV0X2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRlbXBsYXRlW2ldKTsK
LSAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0X25vZGUpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVy
biBlbGVtZW50OwotICAgIH0KLQotCi0KLSAgICBmdW5jdGlvbiBtYWtlX2RvbSh0ZW1wbGF0ZSwg
c3Vic3RpdHV0aW9ucywgb3V0cHV0X2RvY3VtZW50KQotICAgIHsKLSAgICAgICAgaWYgKGlzX3Np
bmdsZV9ub2RlKHRlbXBsYXRlKSkgewotICAgICAgICAgICAgcmV0dXJuIG1ha2VfZG9tX3Npbmds
ZSh0ZW1wbGF0ZSwgb3V0cHV0X2RvY3VtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVy
biBtYXAodGVtcGxhdGUsIGZ1bmN0aW9uKHgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1ha2VfZG9tX3NpbmdsZSh4LCBvdXRwdXRfZG9jdW1lbnQpOwotICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlbmRlcih0ZW1wbGF0ZSwgc3Vic3RpdHV0
aW9ucywgb3V0cHV0X2RvY3VtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1ha2VfZG9tKHN1
YnN0aXR1dGUodGVtcGxhdGUsIHN1YnN0aXR1dGlvbnMpLCBvdXRwdXRfZG9jdW1lbnQpOwotICAg
IH0KLQotICAgIC8qCi0gICAgICogVXRpbGl0eSBmdW5jaW9ucwotICAgICAqLwotICAgIGZ1bmN0
aW9uIGFzc2VydChleHBlY3RlZF90cnVlLCBmdW5jdGlvbl9uYW1lLCBkZXNjcmlwdGlvbiwgZXJy
b3IsIHN1YnN0aXR1dGlvbnMpCi0gICAgewotICAgICAgICBpZiAoZXhwZWN0ZWRfdHJ1ZSAhPT0g
dHJ1ZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKG1ha2VfbWVzc2Fn
ZShmdW5jdGlvbl9uYW1lLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IsIHN1YnN0aXR1dGlvbnMpKTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGZ1bmN0aW9uIEFzc2VydGlvbkVycm9yKG1lc3NhZ2UpCi0gICAgewot
ICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcigpOwotICAgICAgICB0aGlzLnN0YWNrID0gZS5zdGFj
ay5zdWJzdHJpbmcoZS5zdGFjay5pbmRleE9mKCdcbicpKzEsIGUuc3RhY2subGVuZ3RoKTsKLSAg
ICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBtYWtl
X21lc3NhZ2UoZnVuY3Rpb25fbmFtZSwgZGVzY3JpcHRpb24sIGVycm9yLCBzdWJzdGl0dXRpb25z
KQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgcCBpbiBzdWJzdGl0dXRpb25zKSB7Ci0gICAgICAg
ICAgICBpZiAoc3Vic3RpdHV0aW9ucy5oYXNPd25Qcm9wZXJ0eShwKSkgewotICAgICAgICAgICAg
ICAgIHN1YnN0aXR1dGlvbnNbcF0gPSBmb3JtYXRfdmFsdWUoc3Vic3RpdHV0aW9uc1twXSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGVfZm9ybSA9IHN1YnN0aXR1
dGUoWyJ7dGV4dH0iLCAiJHtmdW5jdGlvbl9uYW1lfTogJHtkZXNjcmlwdGlvbn0iICsgZXJyb3Jd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZSh7ZnVuY3Rpb25fbmFt
ZTpmdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb246KGRlc2NyaXB0aW9uP2Rlc2NyaXB0aW9uICsgIiAiOiIiKX0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25zKSk7Ci0g
ICAgICAgIHJldHVybiBub2RlX2Zvcm0uc2xpY2UoMSkuam9pbigiIik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZmlsdGVyKGFycmF5LCBjYWxsYWJsZSwgdGhpc09iaikgewotICAgICAgICB2YXIg
cnYgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykg
ewotICAgICAgICAgICAgaWYgKGFycmF5Lmhhc093blByb3BlcnR5KGkpKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHBhc3MgPSBjYWxsYWJsZS5jYWxsKHRoaXNPYmosIGFycmF5W2ldLCBpLCBhcnJh
eSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBhc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgcnYu
cHVzaChhcnJheVtpXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBydjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBtYXAoYXJyYXks
IGNhbGxhYmxlLCB0aGlzT2JqKQotICAgIHsKLSAgICAgICAgdmFyIHJ2ID0gW107Ci0gICAgICAg
IHJ2Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBh
cnJheS5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaWYgKGFycmF5Lmhhc093blByb3BlcnR5
KGkpKSB7Ci0gICAgICAgICAgICAgICAgcnZbaV0gPSBjYWxsYWJsZS5jYWxsKHRoaXNPYmosIGFy
cmF5W2ldLCBpLCBhcnJheSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJ2OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGV4dGVuZChhcnJheSwgaXRlbXMpCi0gICAg
ewotICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShhcnJheSwgaXRlbXMpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGZvckVhY2ggKGFycmF5LCBjYWxsYmFjaywgdGhpc09iaikKLSAg
ICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgICAgIGlmIChhcnJheS5oYXNPd25Qcm9wZXJ0eShpKSkgewotICAgICAgICAgICAgICAg
IGNhbGxiYWNrLmNhbGwodGhpc09iaiwgYXJyYXlbaV0sIGksIGFycmF5KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIG1lcmdlKGEsYikKLSAgICB7Ci0g
ICAgICAgIHZhciBydiA9IHt9OwotICAgICAgICB2YXIgcDsKLSAgICAgICAgZm9yIChwIGluIGEp
IHsKLSAgICAgICAgICAgIHJ2W3BdID0gYVtwXTsKLSAgICAgICAgfQotICAgICAgICBmb3IgKHAg
aW4gYikgewotICAgICAgICAgICAgcnZbcF0gPSBiW3BdOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBydjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBleHBvc2Uob2JqZWN0LCBuYW1lKQotICAg
IHsKLSAgICAgICAgdmFyIGNvbXBvbmVudHMgPSBuYW1lLnNwbGl0KCIuIik7Ci0gICAgICAgIHZh
ciB0YXJnZXQgPSB3aW5kb3c7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcG9uZW50
cy5sZW5ndGggLSAxOyBpKyspIHsKLSAgICAgICAgICAgIGlmICghKGNvbXBvbmVudHNbaV0gaW4g
dGFyZ2V0KSkgewotICAgICAgICAgICAgICAgIHRhcmdldFtjb21wb25lbnRzW2ldXSA9IHt9Owot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0W2NvbXBvbmVudHNbaV1d
OwotICAgICAgICB9Ci0gICAgICAgIHRhcmdldFtjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3Ro
IC0gMV1dID0gb2JqZWN0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZvckVhY2hfd2luZG93cyhj
YWxsYmFjaykgewotICAgICAgICAvLyBJdGVyYXRlIG9mIHRoZSB0aGUgd2luZG93cyBbc2VsZiAu
Li4gdG9wLCBvcGVuZXJdLiBUaGUgY2FsbGJhY2sgaXMgcGFzc2VkCi0gICAgICAgIC8vIHR3byBv
YmplY3RzLCB0aGUgZmlyc3Qgb25lIGlzIHRoZSB3aW5kb3dzIG9iamVjdCBpdHNlbGYsIHRoZSBz
ZWNvbmQgb25lCi0gICAgICAgIC8vIGlzIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgb3Ig
bm90IGl0cyBvbiB0aGUgc2FtZSBvcmlnaW4gYXMgdGhlCi0gICAgICAgIC8vIGN1cnJlbnQgd2lu
ZG93LgotICAgICAgICB2YXIgY2FjaGUgPSBmb3JFYWNoX3dpbmRvd3MucmVzdWx0X2NhY2hlOwot
ICAgICAgICBpZiAoIWNhY2hlKSB7Ci0gICAgICAgICAgICBjYWNoZSA9IFtbc2VsZiwgdHJ1ZV1d
OwotICAgICAgICAgICAgdmFyIHcgPSBzZWxmOwotICAgICAgICAgICAgdmFyIGkgPSAwOwotICAg
ICAgICAgICAgdmFyIHNvOwotICAgICAgICAgICAgdmFyIG9yaWdpbnMgPSBsb2NhdGlvbi5hbmNl
c3Rvck9yaWdpbnM7Ci0gICAgICAgICAgICB3aGlsZSAodyAhPSB3LnBhcmVudCkgewotICAgICAg
ICAgICAgICAgIHcgPSB3LnBhcmVudDsKLSAgICAgICAgICAgICAgICAvLyBJbiBXZWJLaXQsIGNh
bGxzIHRvIHBhcmVudCB3aW5kb3dzJyBwcm9wZXJ0aWVzIHRoYXQgYXJlbid0IG9uIHRoZSBzYW1l
Ci0gICAgICAgICAgICAgICAgLy8gb3JpZ2luIGNhdXNlIGFuIGVycm9yIG1lc3NhZ2UgdG8gYmUg
ZGlzcGxheWVkIGluIHRoZSBlcnJvciBjb25zb2xlIGJ1dAotICAgICAgICAgICAgICAgIC8vIGRv
bid0IHRocm93IGFuIGV4Y2VwdGlvbi4gVGhpcyBpcyBhIGRldmlhdGlvbiBmcm9tIHRoZSBjdXJy
ZW50IEhUTUw1Ci0gICAgICAgICAgICAgICAgLy8gc3BlYy4gU2VlOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM1MDQKLSAgICAgICAgICAgICAgICAvLyBUaGUgcHJv
YmxlbSB3aXRoIFdlYktpdCdzIGJlaGF2aW9yIGlzIHRoYXQgaXQgcG9sbHV0ZXMgdGhlIGVycm9y
IGNvbnNvbGUKLSAgICAgICAgICAgICAgICAvLyB3aXRoIGVycm9yIG1lc3NhZ2VzIHRoYXQgY2Fu
J3QgYmUgY2F1Z2h0LgotICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgLy8gVGhp
cyBpc3N1ZSBjYW4gYmUgbWl0aWdhdGVkIGJ5IHJlbHlpbmcgb24gdGhlIChmb3Igbm93KSBwcm9w
cmlldGFyeQotICAgICAgICAgICAgICAgIC8vIGBsb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNgIHBy
b3BlcnR5IHdoaWNoIHJldHVybnMgYW4gb3JkZXJlZCBsaXN0IG9mCi0gICAgICAgICAgICAgICAg
Ly8gdGhlIG9yaWdpbnMgb2YgZW5jbG9zaW5nIHdpbmRvd3MuIFNlZToKLSAgICAgICAgICAgICAg
ICAvLyBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTM5NDUuCi0gICAgICAgICAg
ICAgICAgaWYgKG9yaWdpbnMpIHsKLSAgICAgICAgICAgICAgICAgICAgc28gPSAobG9jYXRpb24u
b3JpZ2luID09IG9yaWdpbnNbaV0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHNvID0gaXNfc2FtZV9vcmlnaW4odyk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGNhY2hlLnB1c2goW3csIHNvXSk7Ci0gICAgICAgICAgICAgICAgaSsr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdyA9IHdpbmRvdy5vcGVuZXI7Ci0gICAgICAg
ICAgICBpZiAodykgewotICAgICAgICAgICAgICAgIC8vIHdpbmRvdy5vcGVuZXIgaXNuJ3QgaW5j
bHVkZWQgaW4gdGhlIGBsb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNgIHByb3AuCi0gICAgICAgICAg
ICAgICAgLy8gV2UnbGwganVzdCBoYXZlIHRvIGRlYWwgd2l0aCBhIHNpbXBsZSBjaGVjayBhbmQg
YW4gZXJyb3IgbXNnIG9uIFdlYktpdAotICAgICAgICAgICAgICAgIC8vIGJyb3dzZXJzIGluIHRo
aXMgY2FzZS4KLSAgICAgICAgICAgICAgICBjYWNoZS5wdXNoKFt3LCBpc19zYW1lX29yaWdpbih3
KV0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yRWFjaF93aW5kb3dzLnJlc3VsdF9j
YWNoZSA9IGNhY2hlOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yRWFjaChjYWNoZSwKLSAgICAg
ICAgICAgICAgICBmdW5jdGlvbihhKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgY2FsbGJhY2suYXBwbHkobnVsbCwgYSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gaXNfc2FtZV9vcmlnaW4odykgewotICAgICAgICB0cnkgewotICAg
ICAgICAgICAgJ3JhbmRvbV9wcm9wJyBpbiB3OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN1cHBvcnRzX3Bvc3RfbWVzc2FnZSh3KQotICAgIHsK
LSAgICAgICAgdmFyIHN1cHBvcnRzOwotICAgICAgICB2YXIgdHlwZTsKLSAgICAgICAgLy8gR2l2
ZW4gSUUgIGltcGxlbWVudHMgcG9zdE1lc3NhZ2UgYWNyb3NzIG5lc3RlZCBpZnJhbWVzIGJ1dCBu
b3QgYWNyb3NzCi0gICAgICAgIC8vIHdpbmRvd3Mgb3IgdGFicywgeW91IGNhbid0IGluZmVyIGNy
b3NzLW9yaWdpbiBjb21tdW5pY2F0aW9uIGZyb20gdGhlIHByZXNlbmNlCi0gICAgICAgIC8vIG9m
IHBvc3RNZXNzYWdlIG9uIHRoZSBjdXJyZW50IHdpbmRvdyBvYmplY3Qgb25seS4KLSAgICAgICAg
Ly8KLSAgICAgICAgLy8gVG91Y2hpbmcgdGhlIHBvc3RNZXNzYWdlIHByb3Agb24gYSB3aW5kb3cg
Y2FuIHRocm93IGlmIHRoZSB3aW5kb3cgaXMKLSAgICAgICAgLy8gbm90IGZyb20gdGhlIHNhbWUg
b3JpZ2luIEFORCBwb3N0IG1lc3NhZ2UgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGF0Ci0gICAgICAg
IC8vIGJyb3dzZXIuIFNvIGp1c3QgZG9pbmcgYW4gZXhpc3RlbmNlIHRlc3QgaGVyZSB3b24ndCBk
bywgeW91IGFsc28gbmVlZAotICAgICAgICAvLyB0byB3cmFwIGl0IGluIGEgdHJ5Li5jYWN0aCBi
bG9jay4KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHR5cGUgPSB0eXBlb2Ygdy5wb3N0TWVz
c2FnZTsKLSAgICAgICAgICAgIGlmICh0eXBlID09PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgICAg
ICAgICAgc3VwcG9ydHMgPSB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBJ
RTggc3VwcG9ydHMgcG9zdE1lc3NhZ2UsIGJ1dCBpbXBsZW1lbnRzIGl0IGFzIGEgaG9zdCBvYmpl
Y3Qgd2hpY2gKLSAgICAgICAgICAgIC8vIHJldHVybnMgIm9iamVjdCIgYXMgaXRzIGB0eXBlb2Zg
LgotICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gIm9iamVjdCIpIHsKLSAgICAgICAgICAg
ICAgICBzdXBwb3J0cyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIFRo
aXMgaXMgdGhlIGNhc2Ugd2hlcmUgcG9zdE1lc3NhZ2UgaXNuJ3Qgc3VwcG9ydGVkIEFORCBhY2Nl
c3NpbmcgYQotICAgICAgICAgICAgLy8gd2luZG93IHByb3BlcnR5IGFjcm9zcyBvcmlnaW5zIGRv
ZXMgTk9UIHRocm93IChlLmcuIG9sZCBTYWZhcmkgYnJvd3NlcikuCi0gICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBzdXBwb3J0cyA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAg
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYXNlIHdoZXJl
IHBvc3RNZXNzYWdlIGlzbid0IHN1cHBvcnRlZCBBTkQgYWNjZXNzaW5nIGEKLSAgICAgICAgICAg
IC8vIHdpbmRvdyBwcm9wZXJ0eSBhY3Jvc3Mgb3JpZ2lucyB0aHJvd3MgKGUuZy4gb2xkIEZpcmVm
b3ggYnJvd3NlcikuCi0gICAgICAgICAgICBzdXBwb3J0cyA9IGZhbHNlOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBzdXBwb3J0czsKLSAgICB9Ci19KSgpOwotLy8gdmltOiBzZXQgZXhwYW5k
dGFiIHNoaWZ0d2lkdGg9NCB0YWJzdG9wPTQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGMyMzllNGYxODU3NDI3YzQ5MjQ1YTZlNTc3NTk3ZjFmMTljYmZi
ZTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoNCi0gKiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQg
Zm9yIHZlbmRvcnMgdG8gaW1wbGVtZW50DQotICogY29kZSBuZWVkZWQgdG8gaW50ZWdyYXRlIHRl
c3RoYXJuZXNzLmpzIHRlc3RzIHdpdGggdGhlaXIgb3duIHRlc3Qgc3lzdGVtcy4NCi0gKg0KLSAq
IFR5cGljYWxseSBzdWNoIGludGVncmF0aW9uIHdpbGwgYXR0YWNoIGNhbGxiYWNrcyB3aGVuIGVh
Y2ggdGVzdCBpcw0KLSAqIGhhcyBydW4sIHVzaW5nIGFkZF9yZXN1bHRfY2FsbGJhY2soY2FsbGJh
Y2sodGVzdCkpLCBvciB3aGVuIHRoZSB3aG9sZSB0ZXN0IGZpbGUgaGFzDQotICogY29tcGxldGVk
LCB1c2luZyBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhjYWxsYmFjayh0ZXN0cywgaGFybmVzc19z
dGF0dXMpKS4NCi0gKg0KLSAqIEZvciBtb3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIGNhbGxi
YWNrIGZ1bmN0aW9ucyBhbmQgdGhlDQotICogcGFyYW1ldGVycyB0aGV5IGFyZSBjYWxsZWQgd2l0
aCBzZWUgdGVzdGhhcm5lc3MuanMNCi0gKi8NCi0NCi0vLyBTZXR1cCBmb3IgV2ViS2l0IEphdmFT
Y3JpcHQgdGVzdHMNCi1pZiAoc2VsZi50ZXN0UnVubmVyKSB7DQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOw0KLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsNCi0gICAgdGVzdFJ1
bm5lci5zZXRDYW5PcGVuV2luZG93cygpOw0KLSAgICAvLyBMZXQncyByZXN0cmljdCBjYWxsaW5n
IHRlc3RoYXJuZXNzIHRpbWVvdXQoKSB0byB3cHRzZXJ2ZSB0ZXN0cyBmb3IgdGhlIG1vbWVudC4N
Ci0gICAgLy8gVGhhdCB3aWxsIGxpbWl0IHRoZSBpbXBhY3QgdG8gYSBzbWFsbCBudW1iZXIgb2Yg
dGVzdHMuDQotICAgIC8vIFRoZSByaXNrIGlzIHRoYXQgdGVzdGhhcm5lc3MgdGltZW91dCgpIG1p
Z2h0IGJlIGNhbGxlZCB0byBsYXRlIG9uIHNsb3cgYm90cyB0byBmaW5pc2ggcHJvcGVybHkuDQot
ICAgIGlmICh0ZXN0UnVubmVyLnRpbWVvdXQgJiYgbG9jYXRpb24ucG9ydCA9PSA4ODAwKQ0KLSAg
ICAgICAgc2V0VGltZW91dCh0aW1lb3V0LCB0ZXN0UnVubmVyLnRpbWVvdXQgKiAwLjkpOw0KLX0N
Ci0NCi0vLyBGdW5jdGlvbiB1c2VkIHRvIGNvbnZlcnQgdGhlIHRlc3Qgc3RhdHVzIGNvZGUgaW50
bw0KLS8vIHRoZSBjb3JyZXNwb25kaW5nIHN0cmluZw0KLWZ1bmN0aW9uIGNvbnZlcnRSZXN1bHQo
cmVzdWx0U3RhdHVzKQ0KLXsNCi0gICAgaWYocmVzdWx0U3RhdHVzID09IDApDQotICAgICAgICBy
ZXR1cm4oIlBBU1MiKTsNCi0gICAgZWxzZSBpZihyZXN1bHRTdGF0dXMgPT0gMSkNCi0gICAgICAg
IHJldHVybigiRkFJTCIpOw0KLSAgICBlbHNlIGlmKHJlc3VsdFN0YXR1cyA9PSAyKQ0KLSAgICAg
ICAgcmV0dXJuKCJUSU1FT1VUIik7DQotICAgIGVsc2UNCi0gICAgICAgIHJldHVybigiTk9UUlVO
Iik7DQotfQ0KLQ0KLWlmIChzZWxmLnRlc3RSdW5uZXIpIHsNCi0gICAgLyogRGlzYWJsZSB0aGUg
ZGVmYXVsdCBvdXRwdXQgb2YgdGVzdGhhcm5lc3MuanMuICBUaGUgZGVmYXVsdCBvdXRwdXQgZm9y
bWF0cw0KLSAgICAqICB0ZXN0IHJlc3VsdHMgaW50byBhbiBIVE1MIHRhYmxlLiAgV2hlbiB0aGF0
IHRhYmxlIGlzIGR1bXBlZCBhcyB0ZXh0LCBubw0KLSAgICAqICBzcGFjaW5nIGJldHdlZW4gY2Vs
bHMgaXMgcHJlc2VydmVkLCBhbmQgaXQgaXMgdGhlcmVmb3JlIG5vdCByZWFkYWJsZS4gQnkNCi0g
ICAgKiAgc2V0dGluZyBvdXRwdXQgdG8gZmFsc2UsIHRoZSBIVE1MIHRhYmxlIHdpbGwgbm90IGJl
IGNyZWF0ZWQNCi0gICAgKi8NCi0gICAgc2V0dXAoeyJvdXRwdXQiOiBmYWxzZSwgImV4cGxpY2l0
X3RpbWVvdXQiOiB0cnVlfSk7DQotDQotICAgIC8qICBVc2luZyBhIGNhbGxiYWNrIGZ1bmN0aW9u
LCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgcGFnZSBpbiBhIA0KLSAgICAqICAg
bWFubmVyIHRoYXQgYWxsb3dzIGR1bXBBc1RleHQgdG8gcHJvZHVjZSByZWFkYWJsZSB0ZXN0IHJl
c3VsdHMNCi0gICAgKi8NCi0gICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24gKHRl
c3RzLCBoYXJuZXNzX3N0YXR1cykgew0KLSAgICAgICAgLy8gV2FpdCBmb3IgYW55IG90aGVyIGNv
bXBsZXRpb24gY2FsbGJhY2tzDQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KLSAg
ICAgICAgICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7DQot
ICAgICAgICAgICAgdmFyIHJlc3VsdFN0ciA9ICJcbiI7DQotDQotICAgICAgICAgICAgLy8gU2Fu
aXRpemVzIHRoZSBnaXZlbiB0ZXh0IGZvciBkaXNwbGF5IGluIHRlc3QgcmVzdWx0cy4NCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzYW5pdGl6ZSh0ZXh0KSB7DQotICAgICAgICAgICAgICAgIGlmICgh
dGV4dCkgew0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOw0KLSAgICAgICAgICAgICAg
ICB9DQotICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1wwL2csICJcXDAiKTsN
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvXHIvZywgIlxcciIpOw0KLSAg
ICAgICAgICAgIH0NCi0NCi0gICAgICAgICAgICBpZihoYXJuZXNzX3N0YXR1cy5zdGF0dXMgIT0g
MCkNCi0gICAgICAgICAgICAgICAgcmVzdWx0U3RyICs9ICJIYXJuZXNzIEVycm9yICgiICsgY29u
dmVydFJlc3VsdChoYXJuZXNzX3N0YXR1cy5zdGF0dXMpICsgIiksIG1lc3NhZ2UgPSAiICsgaGFy
bmVzc19zdGF0dXMubWVzc2FnZSArICJcblxuIjsNCi0NCi0gICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7DQotICAgICAgICAgICAgICAgIHZhciBtZXNz
YWdlID0gc2FuaXRpemUodGVzdHNbaV0ubWVzc2FnZSk7DQotICAgICAgICAgICAgICAgIGlmICh0
ZXN0c1tpXS5zdGF0dXMgPT0gMSAmJiAhdGVzdHNbaV0uZHVtcFN0YWNrKSB7DQotICAgICAgICAg
ICAgICAgICAgICAvLyBSZW1vdmUgc3RhY2sgZm9yIGZhaWxlZCB0ZXN0cyBmb3IgcHJvcGVyIHN0
cmluZyBjb21wYXJpc29uIHdpdGhvdXQgZmlsZSBwYXRocy4NCi0gICAgICAgICAgICAgICAgICAg
IC8vIEZvciBhIHRlc3QgdG8gZHVtcCB0aGUgc3RhY2sgc2V0IGl0cyBkdW1wU3RhY2sgYXR0cmli
dXRlIHRvIHRydWUuDQotICAgICAgICAgICAgICAgICAgICB2YXIgc3RhY2tJbmRleCA9IG1lc3Nh
Z2UuaW5kZXhPZigiKHN0YWNrOiIpOw0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrSW5k
ZXggPiAwKQ0KLSAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnN1YnN0
cigwLCBzdGFja0luZGV4KTsNCi0gICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgICBy
ZXN1bHRTdHIgKz0gY29udmVydFJlc3VsdCh0ZXN0c1tpXS5zdGF0dXMpICsgIiAiICsgc2FuaXRp
emUodGVzdHNbaV0ubmFtZSkgKyAiICIgKyBtZXNzYWdlICsgIlxuIjsNCi0gICAgICAgICAgICB9
DQotDQotICAgICAgICAgICAgcmVzdWx0cy5pbm5lclRleHQgPSByZXN1bHRTdHI7DQotICAgICAg
ICAgICAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKTsNCi0gICAgICAg
ICAgICBpZiAobG9nKQ0KLSAgICAgICAgICAgICAgICBsb2cuYXBwZW5kQ2hpbGQocmVzdWx0cyk7
DQotICAgICAgICAgICAgZWxzZQ0KLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHJlc3VsdHMpOw0KLQ0KLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
Ow0KLSAgICAgICAgfSwgMCk7DQotICAgIH0pOw0KLQ0KLSAgICBpZiAod2luZG93LmludGVybmFs
cykNCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UmVzb3VyY2VUaW1pbmdTdXBwb3J0KHRy
dWUpOw0KLX0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJm
L2FwcHJvdmVkL0hpZ2hSZXNvbHV0aW9uVGltZS9iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL0hpZ2hSZXNvbHV0aW9uVGltZS9i
YXNpYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjN2FjZjQ5
OWVkMzA3OTEwY2Y0MWM5ZjYwNzljZDVjNjhlM2RhZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvYmFzaWMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRl
cyB0aGF0IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSBleGlzdCBhbmQgaXMgYSBmdW5jdGlvbi4K
LQotCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIAotUEFTUyBIaWdoIFJlc29s
dXRpb24gVGltZSBleHRlbnNpb24gdG8gdGhlIFBlcmZvcm1hbmNlIGludGVyZmFjZSAKLVBBU1Mg
d2luZG93LnBlcmZvcm1hbmNlLm5vdygpIGZ1bmN0aW9uIAotUEFTUyB3aW5kb3cucGVyZm9ybWFu
Y2Uubm93KCkgcmV0dXJucyBhIG51bWJlciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvYmFzaWMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29s
dXRpb25UaW1lL2Jhc2ljLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1NWNi
YzI2YTU3Y2U2NDUxNmYxNWE2ZDgyMjg5Yjk4ZGIzNjI1MmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvYmFzaWMuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPgotPHRpdGxlPndpbmRvdy5wZXJmb3JtYW5jZS5ub3cgZXhpc3Rz
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iVzNDIiBocmVmPSJodHRwOi8vd3d3
LnczLm9yZy8iIC8+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS
L2hyLXRpbWUvI3NlYy1leHRlbnN0aW9ucy1wZXJmb3JtYW5jZS1pbnRlcmZhY2UiLz4KLTxzY3Jp
cHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mi
IC8+Ci08c2NyaXB0PgotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
d2luZG93LnBlcmZvcm1hbmNlLCAib2JqZWN0Iik7Ci19LCAid2luZG93LnBlcmZvcm1hbmNlIGlz
IGRlZmluZWQiLCB7YXNzZXJ0OiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJv
dmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4i
fSk7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wZXJm
b3JtYW5jZS5ub3csIHVuZGVmaW5lZCwgJ3dpbmRvdy5wZXJmb3JtYW5jZS5ub3cgaXMgZGVmaW5l
ZCcpOyAKLX0sICJIaWdoIFJlc29sdXRpb24gVGltZSBleHRlbnNpb24gdG8gdGhlIFBlcmZvcm1h
bmNlIGludGVyZmFjZSIsIHthc3NlcnQ6ICJ3aW5kb3cucGVyZm9ybWFuY2Uubm93IGV4aXN0cyJ9
KTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygd2luZG93LnBl
cmZvcm1hbmNlLm5vdywgImZ1bmN0aW9uIiwgIndpbmRvdy5wZXJmb3JtYW5jZS5ub3cgaXMgYSBm
dW5jdGlvbiIpOwotfSwgIndpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSBmdW5jdGlvbiIsIHthc3Nl
cnQ6ICJ3aW5kb3cucGVyZm9ybWFuY2Uubm93IGlzIGEgZnVuY3Rpb24ifSk7Ci0KLXRlc3QoZnVu
Y3Rpb24oKSB7Ci0gIGFzc2VydF9lcXVhbHModHlwZW9mIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3co
KSwgIm51bWJlciIsICJ3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgcmV0dXJucyBhIG51bWJlciIp
OwotfSwgIndpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSByZXR1cm5zIGEgbnVtYmVyIiwge2Fzc2Vy
dDogIlRoZSBub3cgbWV0aG9kIE1VU1QgcmV0dXJuIGEgRE9NSGlnaFJlc1RpbWVTdGFtcCJ9KTsK
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aDE+RGVzY3JpcHRpb248L2gxPgotPHA+VGhp
cyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSBleGlzdCBhbmQg
aXMgYSBmdW5jdGlvbi48L3A+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBw
cm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL21vbm90b25pYy1jbG9jay1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL0hpZ2hSZXNvbHV0aW9u
VGltZS9tb25vdG9uaWMtY2xvY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkNDE2YjJkZDNjZmRjNGM1ODhmMTAyMDkxZGMyZDEzMGZhMjRiMDM2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL21vbm90b25pYy1j
bG9jay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLURlc2NyaXB0
aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkg
Zm9sbG93cyB0aGUgbW9ub3RvbmljIGNsb2NrIHJlcXVpcmVtZW50cy4KLQotCi1QQVNTIHdpbmRv
dy5wZXJmb3JtYW5jZS5ub3coKSByZXR1cm5zIGEgcG9zaXRpdmUgbnVtYmVyIAotUEFTUyB3aW5k
b3cucGVyZm9ybWFuY2Uubm93KCkgZGlmZmVyZW5jZSBpcyBub3QgbmVnYXRpdmUgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJl
c29sdXRpb25UaW1lL21vbm90b25pYy1jbG9jay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvbW9ub3RvbmljLWNsb2Nr
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlZDVhNWYyNzY1YzdiYzkzYzc4
ODMzZjNmNmExYzQyOWI2NWQ5ZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9I
aWdoUmVzb2x1dGlvblRpbWUvbW9ub3RvbmljLWNsb2NrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCIgLz4KLTx0aXRsZT53aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgY2hyb25vbG9n
eTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlczQyIgaHJlZj0iaHR0cDovL3d3
dy53My5vcmcvIiAvPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9U
Ui9oci10aW1lLyNzZWMtbW9ub3RvbmljLWNsb2NrIi8+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIiAvPgotPHNjcmlwdD4KLXRl
c3QoZnVuY3Rpb24oKSB7Ci0gIGFzc2VydF90cnVlKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA+
IDAsICJ3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgcmV0dXJucyBwb3NpdGl2ZSBudW1iZXJzIik7
Ci19LCAid2luZG93LnBlcmZvcm1hbmNlLm5vdygpIHJldHVybnMgYSBwb3NpdGl2ZSBudW1iZXIi
LCB7YXNzZXJ0OiAiVGhlIHRpbWUgdmFsdWVzIHJldHVybmVkIHdoZW4gY2FsbGluZyB0aGUgbm93
IG1ldGhvZCBNVVNUIGJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBhbmQgbm90IHN1YmplY3Qg
dG8gc3lzdGVtIGNsb2NrIGFkanVzdG1lbnRzIG9yIHN5c3RlbSBjbG9jayBza2V3LiJ9KTsKLQot
dGVzdChmdW5jdGlvbigpIHsKLSAgICB2YXIgbm93MSA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3co
KTsKLSAgICB2YXIgbm93MiA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTsKLSAgICBhc3NlcnRf
dHJ1ZSgobm93Mi1ub3cxKSA+PSAwLCAid2luZG93LnBlcmZvcm1hbmNlLm5vdygpIGRpZmZlcmVu
Y2UgaXMgbm90IG5lZ2F0aXZlIik7Ci0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkg
ZGlmZmVyZW5jZSBpcyBub3QgbmVnYXRpdmUiLAotICB7Ci0gICAgYXNzZXJ0OiAiVGhlIGRpZmZl
cmVuY2UgYmV0d2VlbiBhbnkgdHdvIGNocm9ub2xvZ2ljYWxseSByZWNvcmRlZCB0aW1lIHZhbHVl
cyByZXR1cm5lZCBmcm9tIHRoZSBub3cgbWV0aG9kIE1VU1QgbmV2ZXIgYmUgbmVnYXRpdmUuIgot
ICB9Ci0pOwotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGgxPkRlc2NyaXB0aW9uPC9o
MT4KLTxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkg
Zm9sbG93cyB0aGUgbW9ub3RvbmljIGNsb2NrIHJlcXVpcmVtZW50cy48L3A+Ci0KLTxkaXYgaWQ9
ImxvZyI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL3Jlc291
cmNlcy9ub3dfZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
YXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1lL3Jlc291cmNlcy9ub3dfZnJhbWUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY2MzJmOWJjOGRiN2QwMTgyMGM0Mzk3N2RkYzIy
M2JkZDA1OGVkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL0hpZ2hSZXNvbHV0
aW9uVGltZS9yZXNvdXJjZXMvbm93X2ZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi3vu788IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8
bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgLz4KLSAgICAgICAgPHRpdGxlPndpbmRvdy5wZXJmb3JtYW5jZS5ub3cgZnJhbWU8
L3RpdGxlPgotICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ikdvb2dsZSIgaHJlZj0i
aHR0cDovL3d3dy5nb29nbGUuY29tLyIgLz4KLQotICAgICAgICA8c2NyaXB0PgotICAgICAgICAg
ICAgdmFyIHBlcmZvcm1hbmNlTmFtZXNwYWNlID0gd2luZG93LnBlcmZvcm1hbmNlOwotICAgICAg
ICAgICAgcGVyZm9ybWFuY2VOYW1lc3BhY2Uubm93ID0gKGZ1bmN0aW9uKCkgIHsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlTmFtZXNwYWNlLm5vdyB8fAotICAgICAgICAgICAgICAg
ICAgICAgcGVyZm9ybWFuY2VOYW1lc3BhY2UubW96Tm93IHx8Ci0gICAgICAgICAgICAgICAgICAg
ICBwZXJmb3JtYW5jZU5hbWVzcGFjZS5tc05vdyB8fAotICAgICAgICAgICAgICAgICAgICAgcGVy
Zm9ybWFuY2VOYW1lc3BhY2Uub05vdyB8fAotICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFu
Y2VOYW1lc3BhY2Uud2Via2l0Tm93OwotICAgICAgICAgICAgfSkoKTsKLSAgICAgICAgPC9zY3Jp
cHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PjwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRp
b25UaW1lL3Rlc3RfY3Jvc3NfZnJhbWVfc3RhcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvdGVzdF9j
cm9zc19mcmFtZV9zdGFydC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDEzMzQ3ZGUxZWU5N2Q0MWRjZjIxMGZkYjA4MThmNWY2ZDM5ZGM1NjEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvdGVzdF9jcm9zc19mcmFt
ZV9zdGFydC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1EZXNj
cmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHdpbmRvdy5w
ZXJmb3JtYW5jZS5ub3coKSBhcmUgYmFzZWQgb24gdGhlIGN1cnJlbnQgZG9jdW1lbnQncyBuYXZp
Z2F0aW9uU3RhcnQuCi0KLQotCi1QQVNTIHBhcmVudCBwZXJmb3JtYW5jZS5ub3coKSA+IDAgCi1Q
QVNTIGNoaWxkIHBlcmZvcm1hbmNlLm5vdygpID4gMCAKLVBBU1MgQ2hpbGQgY3JlYXRlZCBhdCBs
ZWFzdCAxIHNlY29uZCBhZnRlciBwYXJlbnQgCi1QQVNTIENoaWxkIGFuZCBwYXJlbnQgdGltZSBi
YXNlcyBhcmUgY29ycmVjdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9IaWdoUmVzb2x1dGlvblRpbWUvdGVzdF9jcm9zc19mcmFtZV9z
dGFydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9I
aWdoUmVzb2x1dGlvblRpbWUvdGVzdF9jcm9zc19mcmFtZV9zdGFydC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5NWEzYjVmYjQ5ZDY2YTkzNWMzYmZjYjAzZmVjMGJlZTJmOGZh
MWE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvSGlnaFJlc29sdXRpb25UaW1l
L3Rlc3RfY3Jvc3NfZnJhbWVfc3RhcnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAg
QEAKLe+7vzwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgICAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCIgPgotCTx0aXRsZT53aW5kb3cucGVyZm9ybWFuY2Uubm93IGFjcm9zcyBm
cmFtZXM8L3RpdGxlPgotCTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iR29vZ2xlIiBocmVmPSJo
dHRwOi8vd3d3Lmdvb2dsZS5jb20vIj4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9oci10aW1lLyNzZWMtZXh0ZW5zdGlvbnMtcGVyZm9ybWFuY2Ut
aW50ZXJmYWNlIj4KLSAgICAKLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLQk8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLSAgICAgICAgICAgIHNldHVwKHtleHBsaWNpdF9kb25lOiB0cnVlfSk7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0X3Rlc3QoKSB7Ci0gICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgICAgICAgICAgICAgIGlmcmFtZS5pZCA9
ICdmcmFtZUNvbnRleHQnOwotICAgICAgICAgICAgICAgIGlmcmFtZS5vbmxvYWQgPSBmaW5pc2hf
dGVzdDsKLSAgICAgICAgICAgICAgICBpZnJhbWUuc3JjID0gInJlc291cmNlcy9ub3dfZnJhbWUu
aHRtbCI7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUp
OwotICAgICAgICAgICAgICB9LCAxMDAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gZmluaXNoX3Rlc3QoKSB7Ci0gICAgICAgICAgICAgIHZhciBjaGlsZFdpbmRvdyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZUNvbnRleHQnKS5jb250ZW50V2luZG93Owot
CSAgICAKLSAgICAgICAgICAgICAgLy8gVmVyaWZ5IGEgcG9zaXRpdmUgbnVtYmVyIGlzIHJldHVy
bmVkIGZvciBib3RoIHRoZSBmcmFtZSBhbmQgcGFyZW50LgotICAgICAgICAgICAgICB0ZXN0KGZ1
bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZSh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgPiAwKTsgfSwg
J3BhcmVudCBwZXJmb3JtYW5jZS5ub3coKSA+IDAnKTsKLSAgICAgICAgICAgICAgdGVzdChmdW5j
dGlvbigpIHsgYXNzZXJ0X3RydWUoY2hpbGRXaW5kb3cucGVyZm9ybWFuY2Uubm93KCkgPiAwKTsg
fSwgJ2NoaWxkIHBlcmZvcm1hbmNlLm5vdygpID4gMCcpOwotCi0gICAgICAgICAgICAgIC8vIFZl
cmlmeSB0aGF0IHRoZSB0ZXN0IHByb3Blcmx5IGNyZWF0ZWQgdGhlIGNoaWxkIGF0IGxlYXN0IGEg
c2Vjb25kIGFmdGVyIHRoZSBwYXJlbnQuCi0gICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkg
eyBhc3NlcnRfdHJ1ZShjaGlsZFdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0
YXJ0ID4gKHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0ICsgMTAwMCkp
OyB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2hpbGQgY3JlYXRlZCBhdCBs
ZWFzdCAxIHNlY29uZCBhZnRlciBwYXJlbnQnKTsKLQotCSAgICAgIHRlc3QoZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb3cgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93
KCk7Ci0gICAgICAgICAgICAgICAgdmFyIGNoaWxkTm93ID0gY2hpbGRXaW5kb3cucGVyZm9ybWFu
Y2Uubm93KCk7Ci0gICAgICAgICAgICAgICAgdmFyIGNoaWxkUGFyZW50U2tldyA9IE1hdGguYWJz
KGNoaWxkTm93IC0gcGFyZW50Tm93KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjaGls
ZFBhcmVudFNrZXcgPiAxMDAwLCAnQ2hpbGQgYW5kIHBhcmVudFwncyBub3coKXMgaGF2ZSBkaWZm
ZXJlbnQgYmFzZXMgKHNrZXdlZCBtb3JlIHRoYW4gMSBzZWNvbmQpJyk7Ci0KLSAgICAgICAgICAg
ICAgICB2YXIgY2hpbGRMb2FkVGltZSA9IGNoaWxkV2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5s
b2FkRXZlbnRTdGFydCAtIGNoaWxkV2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9u
U3RhcnQ7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoMTAwMCA+IChjaGlsZE5vdyAtIGNo
aWxkTG9hZFRpbWUpLCAnQ2hpbGRcJ3Mgbm93KCkgaXMgYmFzZWQgb24gaXRzIGRvY3VtZW50XCdz
IG5hdmlnYXRpb25TdGFydCcpOwotICAgICAgICAgICAgICB9LCAnQ2hpbGQgYW5kIHBhcmVudCB0
aW1lIGJhc2VzIGFyZSBjb3JyZWN0Jyk7Ci0KLSAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAg
ICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLQotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxv
YWQ9InN0YXJ0X3Rlc3QoKSI+Ci0gICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Ci0gICAgICAg
IDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgd2luZG93LnBlcmZvcm1h
bmNlLm5vdygpIGFyZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkb2N1bWVudCdzIG5hdmlnYXRpb25T
dGFydC48L3A+Ci0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHBy
b3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfZG9jdW1lbnRfb3Blbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRp
b24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVudF9vcGVuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTI0NTNkMzFiMGY4OGYzNWY5YWIzNTJlNWMyNTZlODJlMjA1
OTU1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5n
L2h0bWwvdGVzdF9kb2N1bWVudF9vcGVuLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLURlc2NyaXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgd2luZG93LnBl
cmZvcm1hbmNlLnRpbWluZyByZW1haW5zIGNvbnN0YW50IHdoZW4gYSBkb2N1bWVudCBpcyByZXBs
YWNlZCB1c2luZyBkb2N1bWVudC5vcGVuLgotCi1UaGlzIHBhZ2Ugc2hvdWxkIGJlIGxvYWRlZCB3
aXRoIGEgeWVsbG93IGZyYW1lIGJlbG93LiBJdCB0aGVuIHJlcGxhY2VzIHRoZSBkb2N1bWVudCBp
biB0aGF0IGZyYW1lIHdpdGggYSBncmVlbiBkb2N1bWVudC4KLQotVGhlIHRlc3QgcGFzc2VzIGlm
IGFsbCBvZiB0aGUgY2hlY2tzIHRvIHBlcmZvcm1hbmNlLnRpbWluZyBhcmUgY29ycmVjdCBhbmQg
dGhlIGZyYW1lIGJlbG93IGVuZHMgd2l0aCBhIGdyZWVuIGJhY2tncm91bmQuCi0KLQotCi0KLVBB
U1Mgd2luZG93LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQgCi1QQVNTIGNvbm5lY3RFbmQgaXMgdGhl
IHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Blbi4gCi1QQVNTIGNvbm5lY3RTdGFydCBpcyB0aGUgc2Ft
ZSBhZnRlciBkb2N1bWVudCBvcGVuLiAKLVBBU1MgZG9tQ29tcGxldGUgaXMgdGhlIHNhbWUgYWZ0
ZXIgZG9jdW1lbnQgb3Blbi4gCi1QQVNTIGRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCBpcyB0aGUg
c2FtZSBhZnRlciBkb2N1bWVudCBvcGVuLiAKLVBBU1MgZG9tQ29udGVudExvYWRlZEV2ZW50U3Rh
cnQgaXMgdGhlIHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Blbi4gCi1QQVNTIGRvbUludGVyYWN0aXZl
IGlzIHRoZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIAotUEFTUyBkb21Mb2FkaW5nIGlzIHRo
ZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIAotUEFTUyBkb21haW5Mb29rdXBFbmQgaXMgdGhl
IHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Blbi4gCi1QQVNTIGRvbWFpbkxvb2t1cFN0YXJ0IGlzIHRo
ZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIAotUEFTUyBmZXRjaFN0YXJ0IGlzIHRoZSBzYW1l
IGFmdGVyIGRvY3VtZW50IG9wZW4uIAotUEFTUyBsb2FkRXZlbnRFbmQgaXMgdGhlIHNhbWUgYWZ0
ZXIgZG9jdW1lbnQgb3Blbi4gCi1QQVNTIGxvYWRFdmVudFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVy
IGRvY3VtZW50IG9wZW4uIAotUEFTUyBuYXZpZ2F0aW9uU3RhcnQgaXMgdGhlIHNhbWUgYWZ0ZXIg
ZG9jdW1lbnQgb3Blbi4gCi1QQVNTIHJlZGlyZWN0RW5kIGlzIHRoZSBzYW1lIGFmdGVyIGRvY3Vt
ZW50IG9wZW4uIAotUEFTUyByZWRpcmVjdFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGRvY3VtZW50
IG9wZW4uIAotUEFTUyByZXF1ZXN0U3RhcnQgaXMgdGhlIHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Bl
bi4gCi1QQVNTIHJlc3BvbnNlRW5kIGlzIHRoZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIAot
UEFTUyByZXNwb25zZVN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIAotUEFT
UyB1bmxvYWRFdmVudEVuZCBpcyB0aGUgc2FtZSBhZnRlciBkb2N1bWVudCBvcGVuLiAKLVBBU1Mg
dW5sb2FkRXZlbnRTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBkb2N1bWVudCBvcGVuLiAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZp
Z2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfZG9jdW1lbnRfb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rl
c3RfZG9jdW1lbnRfb3Blbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDAy
ZTFmMWIxN2VmYWJhOTViMDA2MGFiZmM2Mjc5MzE5MDM0MjIxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X2RvY3VtZW50X29wZW4u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KLTx0aXRsZT53aW5kb3cucGVy
Zm9ybWFuY2UudGltaW5nIGZvciBkeW5hbWljYWxseSBjcmVhdGVkIGRvY3VtZW50czwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tLyIgLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5v
cmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLXRpbWluZy1pbnRlcmZhY2Ui
Lz4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuY3NzIiAvPgotPHNjcmlwdCBpZD0ibWV0YWRhdGFfY2FjaGUiPi8q
Ci17Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVscCI6ICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJmb3Jt
YW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBh
dHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQg
YXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9yZy8iCi0g
IH0sCi0gICJjb25uZWN0RW5kIGlzIHRoZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIjoge30s
Ci0gICJjb25uZWN0U3RhcnQgaXMgdGhlIHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Blbi4iOiB7fSwK
LSAgImRvbUNvbXBsZXRlIGlzIHRoZSBzYW1lIGFmdGVyIGRvY3VtZW50IG9wZW4uIjoge30sCi0g
ICJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQgaXMgdGhlIHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Bl
bi4iOiB7fSwKLSAgImRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVy
IGRvY3VtZW50IG9wZW4uIjoge30sCi0gICJkb21JbnRlcmFjdGl2ZSBpcyB0aGUgc2FtZSBhZnRl
ciBkb2N1bWVudCBvcGVuLiI6IHt9LAotICAiZG9tTG9hZGluZyBpcyB0aGUgc2FtZSBhZnRlciBk
b2N1bWVudCBvcGVuLiI6IHt9LAotICAiZG9tYWluTG9va3VwRW5kIGlzIHRoZSBzYW1lIGFmdGVy
IGRvY3VtZW50IG9wZW4uIjoge30sCi0gICJkb21haW5Mb29rdXBTdGFydCBpcyB0aGUgc2FtZSBh
ZnRlciBkb2N1bWVudCBvcGVuLiI6IHt9LAotICAiZmV0Y2hTdGFydCBpcyB0aGUgc2FtZSBhZnRl
ciBkb2N1bWVudCBvcGVuLiI6IHt9LAotICAibG9hZEV2ZW50RW5kIGlzIHRoZSBzYW1lIGFmdGVy
IGRvY3VtZW50IG9wZW4uIjoge30sCi0gICJsb2FkRXZlbnRTdGFydCBpcyB0aGUgc2FtZSBhZnRl
ciBkb2N1bWVudCBvcGVuLiI6IHt9LAotICAibmF2aWdhdGlvblN0YXJ0IGlzIHRoZSBzYW1lIGFm
dGVyIGRvY3VtZW50IG9wZW4uIjoge30sCi0gICJyZWRpcmVjdEVuZCBpcyB0aGUgc2FtZSBhZnRl
ciBkb2N1bWVudCBvcGVuLiI6IHt9LAotICAicmVkaXJlY3RTdGFydCBpcyB0aGUgc2FtZSBhZnRl
ciBkb2N1bWVudCBvcGVuLiI6IHt9LAotICAicmVxdWVzdFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVy
IGRvY3VtZW50IG9wZW4uIjoge30sCi0gICJyZXNwb25zZUVuZCBpcyB0aGUgc2FtZSBhZnRlciBk
b2N1bWVudCBvcGVuLiI6IHt9LAotICAicmVzcG9uc2VTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBk
b2N1bWVudCBvcGVuLiI6IHt9LAotICAidW5sb2FkRXZlbnRFbmQgaXMgdGhlIHNhbWUgYWZ0ZXIg
ZG9jdW1lbnQgb3Blbi4iOiB7fSwKLSAgInVubG9hZEV2ZW50U3RhcnQgaXMgdGhlIHNhbWUgYWZ0
ZXIgZG9jdW1lbnQgb3Blbi4iOiB7fQotfQotKi88L3NjcmlwdD4KLTxzY3JpcHQ+Ci1zZXR1cCh7
ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOwotCi0vLyBleHBsaWNpdGx5IHRlc3QgdGhlIG5hbWVzcGFj
ZSBiZWZvcmUgd2Ugc3RhcnQgdGVzdGluZwotdGVzdF9uYW1lc3BhY2UoKTsKLQotdmFyIG9yaWdp
bmFsVGltaW5nID0ge307Ci12YXIgZGlkT3BlbiA9IGZhbHNlOwotCi1mdW5jdGlvbiBvbmxvYWRf
dGVzdCgpIHsKLSAgaWYgKCFkaWRPcGVuKSB7Ci0gICAgc2V0VGltZW91dCh0ZXN0VGltaW5nV2l0
aERvY3VtZW50T3BlbiwgMCk7Ci0gICAgZGlkT3BlbiA9IHRydWU7Ci0gIH0KLX0KLQotZnVuY3Rp
b24gdGVzdFRpbWluZ1dpdGhEb2N1bWVudE9wZW4oKSB7Ci0gIHZhciBzdWJjb250ZW50V2luZG93
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4dCIpLmNvbnRlbnRXaW5kb3c7
Ci0KLSAgaWYgKHN1YmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2UgPT09IHVuZGVmaW5lZCkKLSAg
ewotICAgIC8vIGF2b2lkIHNjcmlwdCBlcnJvcnMKLSAgICBkb25lKCk7Ci0gICAgcmV0dXJuOwot
ICB9Ci0gIAotICB2YXIgdGltaW5nID0gc3ViY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZS50aW1p
bmc7Ci0gIGZvciAoaSBpbiB0aW1pbmdBdHRyaWJ1dGVzKSB7Ci0gICAgb3JpZ2luYWxUaW1pbmdb
dGltaW5nQXR0cmlidXRlc1tpXV0gPSB0aW1pbmdbdGltaW5nQXR0cmlidXRlc1tpXV07Ci0gIH0K
LQotICB2YXIgc3ViZG9jdW1lbnQgPSBzdWJjb250ZW50V2luZG93LmRvY3VtZW50OwotICBzdWJk
b2N1bWVudC5vcGVuKCk7Ci0gIHN1YmRvY3VtZW50LndyaXRlKCc8IURPQ1RZUEUgSFRNTD4nKTsK
LSAgc3ViZG9jdW1lbnQud3JpdGUoJzxodG1sPicpOwotICBzdWJkb2N1bWVudC53cml0ZSgnPGhl
YWQ+Jyk7Ci0gIHN1YmRvY3VtZW50LndyaXRlKCc8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4nKTsK
LSAgc3ViZG9jdW1lbnQud3JpdGUoJzx0aXRsZT48R3JlZW4gVGVzdCBQYWdlPC90aXRsZT4nKTsK
LSAgc3ViZG9jdW1lbnQud3JpdGUoJzwvaGVhZD4nKTsKLSAgc3ViZG9jdW1lbnQud3JpdGUoJzxi
b2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMwMEZGMDA7Ij4nKTsKLSAgc3ViZG9jdW1lbnQu
d3JpdGUoJzwvYm9keT4nKTsKLSAgc3ViZG9jdW1lbnQud3JpdGUoJzwvaHRtbD4nKTsKLSAgc3Vi
ZG9jdW1lbnQuY2xvc2UoKTsKLQotICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIHZhciB0
aW1pbmcgPSBzdWJjb250ZW50V2luZG93LnBlcmZvcm1hbmNlLnRpbWluZzsKLSAgICBmb3IgKHZh
ciBpIGluIHRpbWluZ0F0dHJpYnV0ZXMpIHsKLSAgICAgIHRlc3RfZXF1YWxzKHRpbWluZ1t0aW1p
bmdBdHRyaWJ1dGVzW2ldXSwKLSAgICAgICAgICAgICAgICAgIG9yaWdpbmFsVGltaW5nW3RpbWlu
Z0F0dHJpYnV0ZXNbaV1dLAotICAgICAgICAgICAgICAgICAgdGltaW5nQXR0cmlidXRlc1tpXSAr
ICIgaXMgdGhlIHNhbWUgYWZ0ZXIgZG9jdW1lbnQgb3Blbi4iKTsKLSAgICB9Ci0gICAgZG9uZSgp
OwotICB9LCAwKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aDE+RGVzY3JpcHRp
b248L2gxPgotPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5n
IHJlbWFpbnMgY29uc3RhbnQgd2hlbiBhCi1kb2N1bWVudCBpcyByZXBsYWNlZCB1c2luZyBkb2N1
bWVudC5vcGVuLjwvcD4KLQotPHA+VGhpcyBwYWdlIHNob3VsZCBiZSBsb2FkZWQgd2l0aCBhIHll
bGxvdyBmcmFtZSBiZWxvdy4gSXQgdGhlbiByZXBsYWNlcyB0aGUKLWRvY3VtZW50IGluIHRoYXQg
ZnJhbWUgd2l0aCBhIGdyZWVuIGRvY3VtZW50LjwvcD4KLQotPHA+VGhlIHRlc3QgcGFzc2VzIGlm
IGFsbCBvZiB0aGUgY2hlY2tzIHRvIHBlcmZvcm1hbmNlLnRpbWluZyBhcmUgY29ycmVjdCBhbmQK
LXRoZSBmcmFtZSBiZWxvdyBlbmRzIHdpdGggYSBncmVlbiBiYWNrZ3JvdW5kLjwvcD4KLQotPGRp
diBpZD0ibG9nIj48L2Rpdj4KLTxiciAvPgotPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBvbmxv
YWQ9Im9ubG9hZF90ZXN0KCk7IiBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFn
ZV95ZWxsb3cuaHRtIiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9pZnJh
bWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVu
dF9yZWFkaW5lc3NfZXhpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfZG9jdW1lbnRf
cmVhZGluZXNzX2V4aXN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzRhMzM3MWE4MWUxOTUxMzI1NzRiYzVlNDcwOGM5NzE0MWIyN2MyOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVu
dF9yZWFkaW5lc3NfZXhpc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAs
MCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSAibG9hZGlu
ZyIsICJpbnRlcmFjdGl2ZSIgYW5kICJjb21wbGV0ZSIgZG9jdW1lbnQucmVhZHlTdGF0ZSBzdGF0
ZXMgYXJlIGF2YWlsYWJsZSBkdXJpbmcgYSBuYXZpZ2F0aW9uLgotCi1SZWZyZXNoIHRoaXMgcGFn
ZSB0byBndWFyYW50ZWUgYWxsIHJlYWR5U3RhdGUgcGhhc2VzLgotCi0KLVBBU1MgRG9jdW1lbnQg
cmVhZGluZXNzIGhhcyBsb2FkaW5nIHN0YXRlLiAKLVBBU1MgRG9jdW1lbnQgcmVhZGluZXNzIGhh
cyBpbnRlcmFjdGl2ZSBzdGF0ZS4gCi1QQVNTIERvY3VtZW50IHJlYWRpbmVzcyBoYXMgY29tcGxl
dGUgc3RhdGUuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9kb2N1bWVudF9yZWFkaW5l
c3NfZXhpc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92
ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X2RvY3VtZW50X3JlYWRpbmVzc19leGlzdC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzczYmJkMzU1YTM2MjY1YmZiYmRi
MzYxZGZkOTgwNWI2NzFjYmM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2
aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X2RvY3VtZW50X3JlYWRpbmVzc19leGlzdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAot77u/PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgotICAgIDx0aXRsZT5kb2N1bWVu
dC5yZWFkeVN0YXRlIHZhbHVlcyBleGlzdCBkdXJpbmcgYSBuYXZpZ2F0aW9uPC90aXRsZT4KLSAg
ICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tLyIgLz4KLSAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw1L2RvbS5odG1sI3Jlc291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiLz4K
LSAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVy
ZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KLSA8c2NyaXB0IGlkPSJtZXRh
ZGF0YV9jYWNoZSI+LyoKLXsKLSAgIkRvY3VtZW50IHJlYWRpbmVzcyBoYXMgbG9hZGluZyBzdGF0
ZS4iOiB7fSwKLSAgIkRvY3VtZW50IHJlYWRpbmVzcyBoYXMgaW50ZXJhY3RpdmUgc3RhdGUuIjog
e30sCi0gICJEb2N1bWVudCByZWFkaW5lc3MgaGFzIGNvbXBsZXRlIHN0YXRlLiI6IHt9Ci19Ci0q
Lzwvc2NyaXB0PiAgIAotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9u
ZTogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIGhhc19sb2FkaW5nID0gKGRvY3VtZW50LnJlYWR5U3Rh
dGUgPT0gImxvYWRpbmciKTsKLSAgICAgICAgdmFyIGhhc19pbnRlcmFjdGl2ZSA9IChkb2N1bWVu
dC5yZWFkeVN0YXRlID09ICJpbnRlcmFjdGl2ZSIpOwotICAgICAgICB2YXIgaGFzX2NvbXBsZXRl
ID0gKGRvY3VtZW50LnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIik7Ci0KLSAgICAgICAgZG9jdW1l
bnQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PSAibG9hZGluZyIpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgaGFzX2xvYWRpbmcgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT0gImludGVyYWN0aXZlIikKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBoYXNfaW50ZXJhY3RpdmUgPSB0cnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPSAiY29tcGxldGUiKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGhhc19jb21wbGV0ZSA9IHRydWU7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICB0ZXN0X3RydWUoaGFzX2xvYWRpbmcsICJEb2N1bWVudCBy
ZWFkaW5lc3MgaGFzIGxvYWRpbmcgc3RhdGUuIik7Ci0gICAgICAgICAgICB0ZXN0X3RydWUoaGFz
X2ludGVyYWN0aXZlLCAiRG9jdW1lbnQgcmVhZGluZXNzIGhhcyBpbnRlcmFjdGl2ZSBzdGF0ZS4i
KTsKLSAgICAgICAgICAgIHRlc3RfdHJ1ZShoYXNfY29tcGxldGUsICJEb2N1bWVudCByZWFkaW5l
c3MgaGFzIGNvbXBsZXRlIHN0YXRlLiIpOwotICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICB9
Ci0gICAgPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ib25sb2FkX3Rlc3QoKTsi
PgotICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Ci0gICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0
aGF0IHRoZSAibG9hZGluZyIsICJpbnRlcmFjdGl2ZSIgYW5kICJjb21wbGV0ZSIKLSAgICAgICBk
b2N1bWVudC5yZWFkeVN0YXRlIHN0YXRlcyBhcmUgYXZhaWxhYmxlIGR1cmluZyBhIG5hdmlnYXRp
b24uPC9wPgotICAgIDxwPlJlZnJlc2ggdGhpcyBwYWdlIHRvIGd1YXJhbnRlZSBhbGwgcmVhZHlT
dGF0ZSBwaGFzZXMuPC9wPgotICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJv
dmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0ZV93aXRoaW5fZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3Zl
ZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGVfd2l0aGluX2RvY3VtZW50LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE0NWY4NGEyOGFiMGQ5
MzAzN2RlMzk3NTVlNGEwZjI2YjIxYWQ3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJv
dmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0ZV93aXRoaW5fZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRGVzY3JpcHRpb24K
LQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IGFsbCBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZyBhdHRyaWJ1dGVzIHJlbWFpbiB1bmNoYW5nZWQgYWZ0ZXIgYW4gaW4gZG9jdW1lbnQg
bmF2aWdhdGlvbiAoVVJMIGZyYWdtZW50IGNoYW5nZSkuCi0KLQotUEFTUyB3aW5kb3cucGVyZm9y
bWFuY2UgaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyBpcyBkZWZp
bmVkIAotUEFTUyBjb25uZWN0RW5kIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmln
YXRpb24uIAotUEFTUyBjb25uZWN0U3RhcnQgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1lbnQg
bmF2aWdhdGlvbi4gCi1QQVNTIGRvbUNvbXBsZXRlIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3Vt
ZW50IG5hdmlnYXRpb24uIAotUEFTUyBkb21Db250ZW50TG9hZGVkRXZlbnRFbmQgaXMgdGhlIHNh
bWUgYWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlvbi4gCi1QQVNTIGRvbUNvbnRlbnRMb2FkZWRF
dmVudFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIAotUEFT
UyBkb21JbnRlcmFjdGl2ZSBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9u
LiAKLVBBU1MgZG9tTG9hZGluZyBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0
aW9uLiAKLVBBU1MgZG9tYWluTG9va3VwRW5kIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50
IG5hdmlnYXRpb24uIAotUEFTUyBkb21haW5Mb29rdXBTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBp
biBkb2N1bWVudCBuYXZpZ2F0aW9uLiAKLVBBU1MgZmV0Y2hTdGFydCBpcyB0aGUgc2FtZSBhZnRl
ciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9uLiAKLVBBU1MgbG9hZEV2ZW50RW5kIGlzIHRoZSBzYW1l
IGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIAotUEFTUyBsb2FkRXZlbnRTdGFydCBpcyB0
aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9uLiAKLVBBU1MgbmF2aWdhdGlvblN0
YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIAotUEFTUyByZWRp
cmVjdEVuZCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9uLiAKLVBBU1Mg
cmVkaXJlY3RTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9uLiAK
LVBBU1MgcmVxdWVzdFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRp
b24uIAotUEFTUyByZXNwb25zZUVuZCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZp
Z2F0aW9uLiAKLVBBU1MgcmVzcG9uc2VTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVu
dCBuYXZpZ2F0aW9uLiAKLVBBU1MgdW5sb2FkRXZlbnRFbmQgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4g
ZG9jdW1lbnQgbmF2aWdhdGlvbi4gCi1QQVNTIHVubG9hZEV2ZW50U3RhcnQgaXMgdGhlIHNhbWUg
YWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlvbi4gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90
ZXN0X25hdmlnYXRlX3dpdGhpbl9kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdh
dGVfd2l0aGluX2RvY3VtZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1
YTJjZTdlNjIzM2QzZGRhNmVkNGViNWVmYTk1N2M4ODhhZGNlYWIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGVfd2l0
aGluX2RvY3VtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiID4KLSAgICAgICAgPHRpdGxlPndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgaW4gZG9jdW1l
bnQgbmF2aWdhdGlvbjwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
R29vZ2xlIiBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiAvPgotIAk8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtbmF2
aWdhdGlvbi10aW1pbmctaW50ZXJmYWNlIi8+Ci0JPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgaWQ9Im1ldGFkYXRhX2NhY2hlIj4vKgotewotICAid2luZG93LnBlcmZvcm1h
bmNlIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2
aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIiwKLSAgICAi
YXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEgaG9z
dGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIsCi0gICAgImF1
dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9LAotICAid2luZG93LnBlcmZvcm1h
bmNlLnRpbWluZyBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3Jn
L1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIs
Ci0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRl
cyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAot
ICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgImNvbm5lY3RF
bmQgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlvbi4iOiB7fSwKLSAgImNv
bm5lY3RTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9uLiI6IHt9
LAotICAiZG9tQ29tcGxldGUgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlv
bi4iOiB7fSwKLSAgImRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCBpcyB0aGUgc2FtZSBhZnRlciBp
biBkb2N1bWVudCBuYXZpZ2F0aW9uLiI6IHt9LAotICAiZG9tQ29udGVudExvYWRlZEV2ZW50U3Rh
cnQgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlvbi4iOiB7fSwKLSAgImRv
bUludGVyYWN0aXZlIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIjog
e30sCi0gICJkb21Mb2FkaW5nIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRp
b24uIjoge30sCi0gICJkb21haW5Mb29rdXBFbmQgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1l
bnQgbmF2aWdhdGlvbi4iOiB7fSwKLSAgImRvbWFpbkxvb2t1cFN0YXJ0IGlzIHRoZSBzYW1lIGFm
dGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIjoge30sCi0gICJmZXRjaFN0YXJ0IGlzIHRoZSBz
YW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIjoge30sCi0gICJsb2FkRXZlbnRFbmQg
aXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlvbi4iOiB7fSwKLSAgImxvYWRF
dmVudFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIjoge30s
Ci0gICJuYXZpZ2F0aW9uU3RhcnQgaXMgdGhlIHNhbWUgYWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdh
dGlvbi4iOiB7fSwKLSAgInJlZGlyZWN0RW5kIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50
IG5hdmlnYXRpb24uIjoge30sCi0gICJyZWRpcmVjdFN0YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGlu
IGRvY3VtZW50IG5hdmlnYXRpb24uIjoge30sCi0gICJyZXF1ZXN0U3RhcnQgaXMgdGhlIHNhbWUg
YWZ0ZXIgaW4gZG9jdW1lbnQgbmF2aWdhdGlvbi4iOiB7fSwKLSAgInJlc3BvbnNlRW5kIGlzIHRo
ZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIjoge30sCi0gICJyZXNwb25zZVN0
YXJ0IGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIjoge30sCi0gICJ1
bmxvYWRFdmVudEVuZCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBuYXZpZ2F0aW9uLiI6
IHt9LAotICAidW5sb2FkRXZlbnRTdGFydCBpcyB0aGUgc2FtZSBhZnRlciBpbiBkb2N1bWVudCBu
YXZpZ2F0aW9uLiI6IHt9Ci19Ci0qLzwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4K
LSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlk
YXRlcyB0aGF0IGFsbCBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyBhdHRyaWJ1dGVz
IHJlbWFpbiB1bmNoYW5nZWQgYWZ0ZXIgYW4gaW4gZG9jdW1lbnQgbmF2aWdhdGlvbiAoVVJMIGZy
YWdtZW50IGNoYW5nZSkuPC9wPgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAg
ICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBzZXR1cCh7ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOwot
Ci0gICAgICAgICAgICAvLyBleHBsaWNpdGx5IHRlc3QgdGhlIG5hbWVzcGFjZSBiZWZvcmUgd2Ug
c3RhcnQgdGVzdGluZwotICAgICAgICAgICAgdGVzdF9uYW1lc3BhY2UoJ3RpbWluZycpOwotCi0g
ICAgICAgICAgICB2YXIgdGltaW5nOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBjaGVja190aW1p
bmdfbm90X2NoYW5nZWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGltaW5nQXR0cmlidXRlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHRpbWluZ0F0dHJpYnV0ZXNb
aV07Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKHRpbWluZ1twcm9wZXJ0eV0sIGlu
aXRpYWxfdGltaW5nW3Byb3BlcnR5XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJvcGVydHkgKyAiIGlzIHRoZSBzYW1lIGFmdGVyIGluIGRvY3VtZW50IG5hdmlnYXRpb24uIik7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgdmFyIGluaXRpYWxfdGltaW5nID0ge307Ci0gICAgICAgICAgICBm
dW5jdGlvbiBzYXZlX3RpbWluZ19hZnRlcl9sb2FkKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWluZ0F0dHJpYnV0ZXMubGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSB0
aW1pbmdBdHRyaWJ1dGVzW2ldOwotICAgICAgICAgICAgICAgICAgICBpbml0aWFsX3RpbWluZ1tw
cm9wZXJ0eV0gPSB0aW1pbmdbcHJvcGVydHldOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICIjMSI7Ci0gICAgICAgICAgICAgICAgc2V0
VGltZW91dCgiY2hlY2tfdGltaW5nX25vdF9jaGFuZ2VkKCkiLCAwKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gbG9hZF9oYW5kbGVyKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2VOYW1lc3BhY2UgPT09IHVuZGVmaW5lZCkKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGF2b2lkIHNjcmlwdCBlcnJv
cnMKLSAgICAgICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdGlt
aW5nID0gcGVyZm9ybWFuY2VOYW1lc3BhY2UudGltaW5nOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLCBsb2FkX2hhbmRsZXIp
OwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoInNhdmVfdGltaW5nX2FmdGVyX2xvYWQoKSIs
IDApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsIGxvYWRfaGFuZGxlciwgZmFsc2UpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93
ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0aW9uX2F0
dHJpYnV0ZXNfZXhpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl9h
dHRyaWJ1dGVzX2V4aXN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjBkNTYxZjU4MDBmYmY1NGZiODBmNDAzMjAzMjcwMDcxMGI5MGVkZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0
aW9uX2F0dHJpYnV0ZXNfZXhpc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IGFsbCBvZiB0
aGUgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gYXR0cmlidXRlcyBleGlzdCAoYnV0IGRv
ZXMgbm90IHZhbGlkYXRlIHRoYXQgdGhlaXIgdmFsdWVzIGFyZSBjb3JyZWN0KS4KLQotCi1QQVNT
IHdpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2Uu
bmF2aWdhdGlvbiBpcyBkZWZpbmVkIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlv
bi50eXBlIGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi5y
ZWRpcmVjdENvdW50IGlzIGRlZmluZWQuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9u
YXZpZ2F0aW9uX2F0dHJpYnV0ZXNfZXhpc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRp
b25fYXR0cmlidXRlc19leGlzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
YTZjZjZiZWRhYTljYzVjZWE1YTg3MDVjZWNkMDJlYWE0OTEyMWMwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25f
YXR0cmlidXRlc19leGlzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAot77u/
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+d2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24g
YXR0cmlidXRlczwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vIiAvPgotCTxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1u
YXZpZ2F0aW9uLWluZm8taW50ZXJmYWNlIi8+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJtZXRhZGF0YV9jYWNoZSI+LyoKLXsKLSAgIndpbmRvdy5w
ZXJmb3JtYW5jZSBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3Jn
L1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIs
Ci0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRl
cyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAot
ICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgIndpbmRvdy5w
ZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0cDov
L3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2Ut
YXR0cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmli
dXRlIHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJp
YnV0ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9LAot
ICAid2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSBpcyBkZWZpbmVkLiI6IHt9LAot
ICAid2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBpcyBkZWZpbmVk
LiI6IHt9Ci19Ci0qLzwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAg
PGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0
IGFsbCBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gYXR0cmlidXRlcyBleGlz
dCAoYnV0IGRvZXMgbm90IHZhbGlkYXRlIHRoYXQgdGhlaXIgdmFsdWVzIGFyZSBjb3JyZWN0KS48
L3A+Ci0KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KLQotICAgICAgICA8c2NyaXB0Pgot
ICAgICAgICB0ZXN0X25hbWVzcGFjZSgnbmF2aWdhdGlvbicpOwotCi0gICAgICAgIHRlc3RfYXR0
cmlidXRlX2V4aXN0cygnbmF2aWdhdGlvbicsICd0eXBlJyk7Ci0gICAgICAgIHRlc3RfYXR0cmli
dXRlX2V4aXN0cygnbmF2aWdhdGlvbicsICdyZWRpcmVjdENvdW50Jyk7Ci0gICAgICAgIDwvc2Ny
aXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25h
dmlnYXRpb25fcmVkaXJlY3RDb3VudF9ub25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0
X25hdmlnYXRpb25fcmVkaXJlY3RDb3VudF9ub25lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjlhZmY2NGJiZWY1YjBmODAyOTU1OTI3ODI0MGM2ODZiZGVjMWQ2
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0
bWwvdGVzdF9uYXZpZ2F0aW9uX3JlZGlyZWN0Q291bnRfbm9uZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRh
dGVzIHRoYXQgdGhlIHZhbHVlIG9mIHRoZSB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi5y
ZWRpcmVjdENvdW50IGF0dHJpYnV0ZSwgYXMgd2VsbCBhcyB0aGUgd2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZy5yZWRpcmVjdFN0YXJ0IGFuZCByZWRpcmVjdEVuZCBhdHRyaWJ1dGVzIG9uIGEgbm9u
LXJlZGlyZWN0ZWQgbmF2aWdhdGlvbi4KLQotCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZSBpcyBk
ZWZpbmVkIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZpbmVkIAot
UEFTUyB0aW1pbmcucmVkaXJlY3RTdGFydCBvbiBhbiBub24tcmVkaXJlY3RlZCBuYXZpZ2F0aW9u
IAotUEFTUyB0aW1pbmcucmVkaXJlY3RFbmQgb24gYW4gbm9uLXJlZGlyZWN0ZWQgbmF2aWdhdGlv
biAKLVBBU1MgbmF2aWdhdGlvbi5yZWRpcmVjdENvdW50IG9uIGFuIG5vbi1yZWRpcmVjdGVkIG5h
dmlnYXRpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25fcmVkaXJl
Y3RDb3VudF9ub25lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2Fw
cHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0aW9uX3JlZGlyZWN0Q291
bnRfbm9uZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzU0YzgxYjkwMmZl
MWI4Y2JhY2UxZWU1NWRhMWNmN2JlNmYwOGZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBw
cm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25fcmVkaXJlY3RDb3Vu
dF9ub25lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi3vu788IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIg
Lz4KLSAgICAgICAgPHRpdGxlPndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnJlZGlyZWN0
Q291bnQgb24gYSBub24tcmVkaXJlY3RlZCBuYXZpZ2F0aW9uPC90aXRsZT4KLSAgICAgICAgPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbS8iIC8+Ci0JPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9U
Ui9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5hdmlnYXRpb24tdGltaW5nLWludGVyZmFjZSIvPgot
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291
cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBpZD0ibWV0YWRh
dGFfY2FjaGUiPi8qCi17Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCI6IHsKLSAg
ICAiaGVscCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdp
bmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5w
ZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1h
bmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3
LnczLm9yZy8iCi0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZp
bmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGlt
aW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJU
aGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBm
b3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzND
IGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgInRpbWluZy5yZWRpcmVjdFN0YXJ0IG9uIGFu
IG5vbi1yZWRpcmVjdGVkIG5hdmlnYXRpb24iOiB7fSwKLSAgInRpbWluZy5yZWRpcmVjdEVuZCBv
biBhbiBub24tcmVkaXJlY3RlZCBuYXZpZ2F0aW9uIjoge30sCi0gICJuYXZpZ2F0aW9uLnJlZGly
ZWN0Q291bnQgb24gYW4gbm9uLXJlZGlyZWN0ZWQgbmF2aWdhdGlvbiI6IHsgImhlbHAiOiAiaHR0
cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLWluZm8t
aW50ZXJmYWNlIiB9Ci19Ci0qLzwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAg
ICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRl
cyB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24ucmVk
aXJlY3RDb3VudCBhdHRyaWJ1dGUsIGFzIHdlbGwgYXMgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS50
aW1pbmcucmVkaXJlY3RTdGFydCBhbmQgcmVkaXJlY3RFbmQgYXR0cmlidXRlcyBvbiBhIG5vbi1y
ZWRpcmVjdGVkIG5hdmlnYXRpb24uPC9wPgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
Ci0KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgdGVzdF9uYW1lc3BhY2UoJ25hdmlnYXRpb24n
KTsKLQotICAgICAgICBpZiAocGVyZm9ybWFuY2VOYW1lc3BhY2UgIT09IHVuZGVmaW5lZCkKLSAg
ICAgICAgewotICAgICAgICAgICAgdGVzdF9lcXVhbHMocGVyZm9ybWFuY2VOYW1lc3BhY2UudGlt
aW5nLnJlZGlyZWN0U3RhcnQsIDAsICd0aW1pbmcucmVkaXJlY3RTdGFydCBvbiBhbiBub24tcmVk
aXJlY3RlZCBuYXZpZ2F0aW9uJyk7Ci0gICAgICAgICAgICB0ZXN0X2VxdWFscyhwZXJmb3JtYW5j
ZU5hbWVzcGFjZS50aW1pbmcucmVkaXJlY3RFbmQsIDAsICd0aW1pbmcucmVkaXJlY3RFbmQgb24g
YW4gbm9uLXJlZGlyZWN0ZWQgbmF2aWdhdGlvbicpOwotICAgICAgICAgICAgdGVzdF9lcXVhbHMo
cGVyZm9ybWFuY2VOYW1lc3BhY2UubmF2aWdhdGlvbi5yZWRpcmVjdENvdW50LCAwLCAnbmF2aWdh
dGlvbi5yZWRpcmVjdENvdW50IG9uIGFuIG5vbi1yZWRpcmVjdGVkIG5hdmlnYXRpb24nLHtoZWxw
OiJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5hdmlnYXRpb24t
aW5mby1pbnRlcmZhY2UifSk7Ci0gICAgICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90eXBl
X2JhY2tmb3J3YXJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25fdHlw
ZV9iYWNrZm9yd2FyZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDBhMDI0ZGNmZDg0N2RmOTZjMjI4MWYwZTY0MjdhN2Y5ZmE3MWUzZDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlv
bl90eXBlX2JhY2tmb3J3YXJkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLWZyYW1lICJmcmFtZUNvbnRleHQiIC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQot
ZnJhbWUgImZyYW1lQ29udGV4dCIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCi1mcmFtZSAi
ZnJhbWVDb250ZXh0IiAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykKLWZyYW1lICJmcmFtZUNv
bnRleHQiIC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQotRGVzY3JpcHRpb24KLQotVGhpcyB0
ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWUgb2Ygd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24u
dHlwZSB3aXRoIGEgZm9yd2FyZCBhbmQgYmFjayBuYXZpZ2F0aW9uLgotCi1UaGlzIHBhZ2Ugc2hv
dWxkIGJlIGxvYWRlZCB3aXRoIGEgeWVsbG93IGJhY2tncm91bmQgZnJhbWUgYmVsb3cuIEl0IHNo
b3VsZCB0dXJuIGdyZWVuIGZvciBhIHN0YXJ0aW5nIG5hdmlnYXRpb24sIGJhY2sgdG8geWVsbG93
IGZvciBhIGJhY2sgbmF2aWdhdGlvbiBhbmQgdGhlbiBiYWNrIHRvIGdyZWVuIGFnYWluIGZvciBh
IGZvcndhcmQgbmF2aWdhdGlvbi4KLQotQWxvbmcgdGhlIG5hdmlnYXRpb24gdGltZWxpbmUgdGhl
IGZyYW1lLndpbmRvdy5wZXJmb3JtYW5jZS50eXBlIGlzIGNoZWNrZWQgZm9yIFRZUEVfQkFDS19G
T1JXQVJELgotCi1UaGlzIHRlc3QgcGFzc2VzIGlmIGFsbCBvZiB0aGUgY2hlY2tzIHRvIHRoZSBu
YXZpZ2F0aW9uLnR5cGUgYXJlIGNvcnJlY3QgdGhyb3VnaG91dCB0aGUgbmF2aWdhdGlvbiBzY2Vu
YXJpbyBhbmQgdGhlIGZyYW1lIGJlbG93IGVuZHMgd2l0aCBhIGdyZWVuIGJhY2tncm91bmQuIE90
aGVyd2lzZSwgdGhpcyB0ZXN0IGZhaWxzLgotCi0KLQotCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5j
ZSBpcyBkZWZpbmVkIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZp
bmVkIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlID09IFRZUEVfTkFW
SUdBVEUgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnR5cGUgPT0gVFlQRV9C
QUNLX0ZPUldBUkQgYWZ0ZXIgaGlzdG9yeS5iYWNrKCkgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5j
ZS5uYXZpZ2F0aW9uLnR5cGUgPT0gVFlQRV9CQUNLX0ZPUldBUkQgYWZ0ZXIgaGlzdG9yeS5mb3J3
YXJkKCkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
YXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25hdmlnYXRpb25fdHlwZV9iYWNr
Zm9yd2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3Zl
ZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90eXBlX2JhY2tmb3J3YXJk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0OGZkYTVhM2U2ZTE4N2JiOWQy
NWQwYmJiMmZmYjM4YWU3ZGI0MTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9u
YXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90eXBlX2JhY2tmb3J3YXJkLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAot77u/PCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci0gICAg
ICAgIDx0aXRsZT53aW5kb3cubmF2aWdhdGlvbi50eXBlIGZvciBiYWNrIGFuZCBmb3J3YXJkIG5h
dmlnYXRpb25zPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5h
dmlnYXRpb24taW5mby1pbnRlcmZhY2UiLz4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLSAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Ci08c2NyaXB0IGlkPSJtZXRhZGF0YV9jYWNoZSI+LyoK
LXsKLSAgIndpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0
dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1h
bmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0
dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBh
dHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAg
fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIGlzIGRlZmluZWQiOiB7Ci0gICAg
ImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5k
b3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVy
Zm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5j
ZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53
My5vcmcvIgotICB9LAotICAid2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSA9PSBU
WVBFX05BVklHQVRFIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBl
ID09IFRZUEVfQkFDS19GT1JXQVJEIGFmdGVyIGhpc3RvcnkuYmFjaygpIjoge30sCi0gICJ3aW5k
b3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlID09IFRZUEVfQkFDS19GT1JXQVJEIGFmdGVy
IGhpc3RvcnkuZm9yd2FyZCgpIjoge30KLX0KLSovPC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQ+
Ci0gICAgICAgICAgICBzZXR1cCh7ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOwotCi0gICAgICAgICAg
ICAvLyBleHBsaWNpdGx5IHRlc3QgdGhlIG5hbWVzcGFjZSBiZWZvcmUgd2Ugc3RhcnQgdGVzdGlu
ZwotICAgICAgICAgICAgdGVzdF9uYW1lc3BhY2UoJ25hdmlnYXRpb24nKTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGlmIChwZXJmb3JtYW5jZU5hbWVzcGFjZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gYXZvaWQgc2NyaXB0IGVycm9ycwotICAgICAgICAg
ICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyBkbyB0aGlzIHdpdGggYSB0aW1lb3V0IHRv
IHNlZSB0aGUgdmlzdWFscyBvZiB0aGUgbmF2aWdhdGlvbnMuCi0gICAgICAgICAgICAgICAgc2V0
VGltZW91dCgibmF2X2ZyYW1lKCk7IiwgMTAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgdmFyIHN0ZXAgPSAxOwotICAgICAgICAgICAgZnVuY3Rpb24gbmF2X2ZyYW1lKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgbmF2aWdhdGlvbl9mcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKS5jb250ZW50V2luZG93OwotICAgICAgICAg
ICAgICAgIHN3aXRjaCAoc3RlcCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgbmF2aWdhdGlvbl9mcmFtZS5sb2NhdGlvbi5ocmVmID0gJy93M2Mvd2VicGVyZi9yZXNvdXJj
ZXMvYmxhbmtfcGFnZV9ncmVlbl93aXRoX29udW5sb2FkLmh0bSc7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBzdGVwKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKG5hdmlnYXRpb25f
ZnJhbWUucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwZXJmb3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLlRZUEVfTkFWSUdBVEUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aW5kb3cucGVyZm9ybWFuY2UubmF2
aWdhdGlvbi50eXBlID09IFRZUEVfTkFWSUdBVEUnKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG5hdmlnYXRpb25fZnJhbWUuaGlzdG9yeS5iYWNrKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBzdGVwKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKG5hdmlnYXRpb25fZnJhbWUu
cGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwZXJmb3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLlRZUEVfQkFDS19GT1JXQVJELAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2luZG93LnBlcmZvcm1hbmNlLm5hdmln
YXRpb24udHlwZSA9PSBUWVBFX0JBQ0tfRk9SV0FSRCBhZnRlciBoaXN0b3J5LmJhY2soKScpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCsrOwotICAgICAgICAgICAgICAgICAgICAgICAg
bmF2aWdhdGlvbl9mcmFtZS5oaXN0b3J5LmZvcndhcmQoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgNDoKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF9lcXVhbHMobmF2aWdhdGlvbl9mcmFtZS5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnR5cGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlTmFtZXNwYWNlLm5hdmln
YXRpb24uVFlQRV9CQUNLX0ZPUldBUkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlID09IFRZUEVfQkFDS19GT1JXQVJE
IGFmdGVyIGhpc3RvcnkuZm9yd2FyZCgpJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb25l
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGVwKys7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLQotICAgIDwvaGVhZD4KLSAgICA8
Ym9keT4KLSAgICAgICAgPGgxPgotICAgICAgICAgICAgRGVzY3JpcHRpb248L2gxPgotICAgICAg
ICA8cD4KLSAgICAgICAgICAgIFRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHdpbmRv
dy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnR5cGUgd2l0aCBhIGZvcndhcmQKLSAgICAgICAgICAg
IGFuZCBiYWNrIG5hdmlnYXRpb24uPC9wPgotCi0gICAgICAgIDxwPlRoaXMgcGFnZSBzaG91bGQg
YmUgbG9hZGVkIHdpdGggYSB5ZWxsb3cgYmFja2dyb3VuZCBmcmFtZSBiZWxvdy4gIEl0IHNob3Vs
ZCB0dXJuIGdyZWVuIGZvciBhIHN0YXJ0aW5nCi0gICAgICAgICAgICBuYXZpZ2F0aW9uLCBiYWNr
IHRvIHllbGxvdyBmb3IgYSBiYWNrIG5hdmlnYXRpb24gYW5kIHRoZW4gYmFjayB0byBncmVlbiBh
Z2FpbiBmb3IgYSBmb3J3YXJkIG5hdmlnYXRpb24uPC9wPgotCi0gICAgICAgIDxwPkFsb25nIHRo
ZSBuYXZpZ2F0aW9uIHRpbWVsaW5lIHRoZSBmcmFtZS53aW5kb3cucGVyZm9ybWFuY2UudHlwZSBp
cyBjaGVja2VkIGZvciBUWVBFX0JBQ0tfRk9SV0FSRC48L3A+Ci0KLSAgICAgICAgPHA+VGhpcyB0
ZXN0IHBhc3NlcyBpZiBhbGwgb2YgdGhlIGNoZWNrcyB0byB0aGUgbmF2aWdhdGlvbi50eXBlIGFy
ZSBjb3JyZWN0IHRocm91Z2hvdXQgdGhlIG5hdmlnYXRpb24KLSAgICAgICAgICAgIHNjZW5hcmlv
IGFuZCB0aGUgZnJhbWUgYmVsb3cgZW5kcyB3aXRoIGEgZ3JlZW4gYmFja2dyb3VuZC4gIE90aGVy
d2lzZSwgdGhpcyB0ZXN0IGZhaWxzLjwvcD4KLQotICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2
PgotICAgICAgICA8YnIgLz4KLSAgICAgICAgPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBvbmxv
YWQ9Im9ubG9hZF90ZXN0KCk7IiBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFn
ZV95ZWxsb3dfd2l0aF9vbnVubG9hZC5odG0iIHN0eWxlPSJ3aWR0aDogMjUwcHg7IGhlaWdodDog
MjUwcHg7Ij48L2lmcmFtZT4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5n
L2h0bWwvdGVzdF9uYXZpZ2F0aW9uX3R5cGVfZW51bXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1s
L3Rlc3RfbmF2aWdhdGlvbl90eXBlX2VudW1zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODRkOGExODMzZjQ0MmYxYjlhYmI4NDRlOTJlM2NlZTQzZTQzYjI4My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwv
dGVzdF9uYXZpZ2F0aW9uX3R5cGVfZW51bXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTYgKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBUWVBFXyogZW51bWVyYXRpb25zIG9mIHdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIGV4
aXN0IGFuZCB0aGVpciB2YWx1ZXMgYXJlIGNvcnJlY3QuCi0KLQotUEFTUyB3aW5kb3cucGVyZm9y
bWFuY2UgaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gaXMg
ZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24uVFlQRV9OQVZJR0FU
RSBpcyBkZWZpbmVkLiAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24uVFlQRV9O
QVZJR0FURSA9IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLlRZUEVfUkVM
T0FEIGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi5UWVBF
X1JFTE9BRCA9IDEgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLlRZUEVfQkFD
S19GT1JXQVJEIGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlv
bi5UWVBFX0JBQ0tfRk9SV0FSRCA9IDIgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0
aW9uLlRZUEVfUkVTRVJWRUQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS5u
YXZpZ2F0aW9uLlRZUEVfUkVTRVJWRUQgPSAyNTUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90
ZXN0X25hdmlnYXRpb25fdHlwZV9lbnVtcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlv
bl90eXBlX2VudW1zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiNmQ3ZTky
NGY3NzBhZDRiNTBmNTU4MTgwMTEyZWQ5Nzk0OTAwY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90eXBlX2Vu
dW1zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi3vu788IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4K
LSAgICAgICAgPHRpdGxlPndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIGVudW1zPC90aXRs
ZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5hdmlnYXRpb24taW5mby1p
bnRlcmZhY2UiLz4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
d2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSA8c2Ny
aXB0IGlkPSJtZXRhZGF0YV9jYWNoZSI+LyoKLXsKLSAgIndpbmRvdy5wZXJmb3JtYW5jZSBpcyBk
ZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24t
dGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6
ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJl
YSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAi
VzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZp
Z2F0aW9uIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIv
bmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIiwKLSAg
ICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEg
aG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIsCi0gICAg
ImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9LAotICAid2luZG93LnBlcmZv
cm1hbmNlLm5hdmlnYXRpb24uVFlQRV9OQVZJR0FURSBpcyBkZWZpbmVkLiI6IHt9LAotICAid2lu
ZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24uVFlQRV9OQVZJR0FURSA9IDAiOiB7fSwKLSAgIndp
bmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLlRZUEVfUkVMT0FEIGlzIGRlZmluZWQuIjoge30s
Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi5UWVBFX1JFTE9BRCA9IDEiOiB7fSwK
LSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLlRZUEVfQkFDS19GT1JXQVJEIGlzIGRl
ZmluZWQuIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi5UWVBFX0JBQ0tf
Rk9SV0FSRCA9IDIiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLlRZUEVf
UkVTRVJWRUQgaXMgZGVmaW5lZC4iOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0
aW9uLlRZUEVfUkVTRVJWRUQgPSAyNTUiOiB7fQotfQotKi88L3NjcmlwdD4KLSAgIDwvaGVhZD4K
LSAgICA8Ym9keT4KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhp
cyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBUWVBFXyogZW51bWVyYXRpb25zIG9mIHdpbmRvdy5w
ZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIGV4aXN0IGFuZCB0aGVpciB2YWx1ZXMgYXJlIGNvcnJlY3Qu
PC9wPgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLSAgICAgICAgPHNjcmlwdD4K
LSAgICAgICAgdGVzdF9uYW1lc3BhY2UoJ25hdmlnYXRpb24nKTsKLQotICAgICAgICB0ZXN0X2Vu
dW0oJ25hdmlnYXRpb24nLCAnVFlQRV9OQVZJR0FURScsIDApOwotICAgICAgICB0ZXN0X2VudW0o
J25hdmlnYXRpb24nLCAnVFlQRV9SRUxPQUQnLCAxKTsKLSAgICAgICAgdGVzdF9lbnVtKCduYXZp
Z2F0aW9uJywgJ1RZUEVfQkFDS19GT1JXQVJEJywgMik7Ci0gICAgICAgIHRlc3RfZW51bSgnbmF2
aWdhdGlvbicsICdUWVBFX1JFU0VSVkVEJywgMjU1KTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAg
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90
eXBlX3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0aW9uX3R5cGVf
cmVsb2FkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNkMTkz
NDgyMjI5MDFiYTFhZWY0MGNiN2QwYzI1Yjk0OGY4YWQwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0aW9uX3R5cGVf
cmVsb2FkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLURlc2Ny
aXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHdpbmRvdy5wZXJmb3Jt
YW5jZS5uYXZpZ2F0aW9uLnR5cGUgYW5kIHRoZSB2YWx1ZXMgb2Ygd2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZy4qIHdpdGggYSByZWxvYWRlZCBuYXZpZ2F0aW9uLgotCi1UaGlzIHBhZ2Ugc2hvdWxk
IGJlIGxvYWRlZCB3aXRoIGEgZ3JlZW4gYmFja2dyb3VuZCBmcmFtZSBiZWxvdy4gVGhlIGZyYW1l
IHdpbGwgYmUgYXV0b21hdGljYWxseSByZWxvYWRlZCBhbmQgdGhlbiB2ZXJpZmllZCB0aGF0Ci0K
LVRoZSB3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlID0gVFlQRV9SRUxPQUQKLUFs
bCBvZiB0aGUgd2lkb3cucGVyZm9ybWFuY2UudGltaW5nLiogdmFsdWVzIGFmdGVyIHJlbG9hZCBh
cmUgPiBhbGwgb2YgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuKiB2YWx1ZXMgcHJpb3Ig
dG8gcmVsb2FkLgotCi0KLQotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCAKLVBB
U1Mgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93
LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSA9PSBUWVBFX1JFTE9BRCx7aGVscDoiaHR0cDov
L3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLWluZm8taW50
ZXJmYWNlIn0gCi1QQVNTIFJlbG9hZCBjb25uZWN0RW5kID4gT3JpZ2luYWwgY29ubmVjdEVuZCAK
LVBBU1MgUmVsb2FkIGNvbm5lY3RTdGFydCA+IE9yaWdpbmFsIGNvbm5lY3RTdGFydCAKLVBBU1Mg
UmVsb2FkIGRvbUNvbXBsZXRlID4gT3JpZ2luYWwgZG9tQ29tcGxldGUgCi1QQVNTIFJlbG9hZCBk
b21Db250ZW50TG9hZGVkRXZlbnRFbmQgPiBPcmlnaW5hbCBkb21Db250ZW50TG9hZGVkRXZlbnRF
bmQgCi1QQVNTIFJlbG9hZCBkb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCA+IE9yaWdpbmFsIGRv
bUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0IAotUEFTUyBSZWxvYWQgZG9tSW50ZXJhY3RpdmUgPiBP
cmlnaW5hbCBkb21JbnRlcmFjdGl2ZSAKLVBBU1MgUmVsb2FkIGRvbUxvYWRpbmcgPiBPcmlnaW5h
bCBkb21Mb2FkaW5nIAotUEFTUyBSZWxvYWQgZG9tYWluTG9va3VwRW5kID4gT3JpZ2luYWwgZG9t
YWluTG9va3VwRW5kIAotUEFTUyBSZWxvYWQgZG9tYWluTG9va3VwU3RhcnQgPiBPcmlnaW5hbCBk
b21haW5Mb29rdXBTdGFydCAKLVBBU1MgUmVsb2FkIGZldGNoU3RhcnQgPiBPcmlnaW5hbCBmZXRj
aFN0YXJ0IAotUEFTUyBSZWxvYWQgbG9hZEV2ZW50RW5kID4gT3JpZ2luYWwgbG9hZEV2ZW50RW5k
IAotUEFTUyBSZWxvYWQgbG9hZEV2ZW50U3RhcnQgPiBPcmlnaW5hbCBsb2FkRXZlbnRTdGFydCAK
LVBBU1MgUmVsb2FkIG5hdmlnYXRpb25TdGFydCA+IE9yaWdpbmFsIG5hdmlnYXRpb25TdGFydCAK
LVBBU1MgUmVsb2FkIHJlZGlyZWN0RW5kID09IE9yaWdpbmFsIHJlZGlyZWN0RW5kIAotUEFTUyBS
ZWxvYWQgcmVkaXJlY3RTdGFydCA9PSBPcmlnaW5hbCByZWRpcmVjdFN0YXJ0IAotUEFTUyBSZWxv
YWQgcmVxdWVzdFN0YXJ0ID4gT3JpZ2luYWwgcmVxdWVzdFN0YXJ0IAotUEFTUyBSZWxvYWQgcmVz
cG9uc2VFbmQgPiBPcmlnaW5hbCByZXNwb25zZUVuZCAKLVBBU1MgUmVsb2FkIHJlc3BvbnNlU3Rh
cnQgPiBPcmlnaW5hbCByZXNwb25zZVN0YXJ0IAotUEFTUyBSZWxvYWQgdW5sb2FkRXZlbnRFbmQg
PiBPcmlnaW5hbCB1bmxvYWRFdmVudEVuZCAKLVBBU1MgUmVsb2FkIHVubG9hZEV2ZW50U3RhcnQg
PiBPcmlnaW5hbCB1bmxvYWRFdmVudFN0YXJ0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVz
dF9uYXZpZ2F0aW9uX3R5cGVfcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9uYXZpZ2F0aW9u
X3R5cGVfcmVsb2FkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZGNjMWU0
NGMyYmJlYTc5ZTllZmVkZmZjYjAxMzU1YjEzMjk2M2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfbmF2aWdhdGlvbl90eXBlX3Jl
bG9hZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ0ICswLDAgQEAKLe+7vzwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAv
PgotICAgICAgICA8dGl0bGU+d2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSB3aXRo
IGEgcmVsb2FkZWQgbmF2aWdhdGlvbjwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vIiAvPgot
CTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10
aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLXRpbWluZy1pbnRlcmZhY2UiLz4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Ci0gPHNjcmlwdCBpZD0ibWV0
YWRhdGFfY2FjaGUiPi8qCi17Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCI6IHsK
LSAgICAiaGVscCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2Vj
LXdpbmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRv
dy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZv
cm1hbmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8v
d3d3LnczLm9yZy8iCi0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBk
ZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24t
dGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6
ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJl
YSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAi
VzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZp
Z2F0aW9uLnR5cGUgPT0gVFlQRV9SRUxPQUQse2hlbHA6Imh0dHA6Ly93d3cudzMub3JnL1RSL25h
dmlnYXRpb24tdGltaW5nLyNzZWMtbmF2aWdhdGlvbi1pbmZvLWludGVyZmFjZSJ9Ijoge30sCi0g
ICJSZWxvYWQgY29ubmVjdEVuZCgxMzQwMzc2MDcwMjk1KSA+IE9yaWdpbmFsIGNvbm5lY3RFbmQo
MTM0MDM3NjA3MDE2MykiOiB7fSwKLSAgIlJlbG9hZCBjb25uZWN0U3RhcnQoMTM0MDM3NjA3MDI5
NSkgPiBPcmlnaW5hbCBjb25uZWN0U3RhcnQoMTM0MDM3NjA3MDE2MykiOiB7fSwKLSAgIlJlbG9h
ZCBkb21Db21wbGV0ZSgxMzQwMzc2MDcwMzAwKSA+IE9yaWdpbmFsIGRvbUNvbXBsZXRlKDEzNDAz
NzYwNzAxNzkpIjoge30sCi0gICJSZWxvYWQgZG9tQ29udGVudExvYWRlZEV2ZW50RW5kKDEzNDAz
NzYwNzAzMDApID4gT3JpZ2luYWwgZG9tQ29udGVudExvYWRlZEV2ZW50RW5kKDEzNDAzNzYwNzAx
NzkpIjoge30sCi0gICJSZWxvYWQgZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQoMTM0MDM3NjA3
MDMwMCkgPiBPcmlnaW5hbCBkb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCgxMzQwMzc2MDcwMTc5
KSI6IHt9LAotICAiUmVsb2FkIGRvbUludGVyYWN0aXZlKDEzNDAzNzYwNzAzMDApID4gT3JpZ2lu
YWwgZG9tSW50ZXJhY3RpdmUoMTM0MDM3NjA3MDE3OSkiOiB7fSwKLSAgIlJlbG9hZCBkb21Mb2Fk
aW5nKDEzNDAzNzYwNzAyOTkpID4gT3JpZ2luYWwgZG9tTG9hZGluZygxMzQwMzc2MDcwMTc4KSI6
IHt9LAotICAiUmVsb2FkIGRvbWFpbkxvb2t1cEVuZCgxMzQwMzc2MDcwMjk1KSA+IE9yaWdpbmFs
IGRvbWFpbkxvb2t1cEVuZCgxMzQwMzc2MDcwMTYzKSI6IHt9LAotICAiUmVsb2FkIGRvbWFpbkxv
b2t1cFN0YXJ0KDEzNDAzNzYwNzAyOTUpID4gT3JpZ2luYWwgZG9tYWluTG9va3VwU3RhcnQoMTM0
MDM3NjA3MDE2MykiOiB7fSwKLSAgIlJlbG9hZCBmZXRjaFN0YXJ0KDEzNDAzNzYwNzAyOTApID4g
T3JpZ2luYWwgZmV0Y2hTdGFydCgxMzQwMzc2MDcwMTYzKSI6IHt9LAotICAiUmVsb2FkIGxvYWRF
dmVudEVuZCgxMzQwMzc2MDcwMzAwKSA+IE9yaWdpbmFsIGxvYWRFdmVudEVuZCgxMzQwMzc2MDcw
MTc5KSI6IHt9LAotICAiUmVsb2FkIGxvYWRFdmVudFN0YXJ0KDEzNDAzNzYwNzAzMDApID4gT3Jp
Z2luYWwgbG9hZEV2ZW50U3RhcnQoMTM0MDM3NjA3MDE3OSkiOiB7fSwKLSAgIlJlbG9hZCBuYXZp
Z2F0aW9uU3RhcnQoMTM0MDM3NjA3MDI5MCkgPiBPcmlnaW5hbCBuYXZpZ2F0aW9uU3RhcnQoMTM0
MDM3NjA3MDE2MykiOiB7fSwKLSAgIlJlbG9hZCByZWRpcmVjdEVuZCgwKSA9PSBPcmlnaW5hbCBy
ZWRpcmVjdEVuZCgwKSI6IHt9LAotICAiUmVsb2FkIHJlZGlyZWN0U3RhcnQoMCkgPT0gT3JpZ2lu
YWwgcmVkaXJlY3RTdGFydCgwKSI6IHt9LAotICAiUmVsb2FkIHJlcXVlc3RTdGFydCgxMzQwMzc2
MDcwMjk1KSA+IE9yaWdpbmFsIHJlcXVlc3RTdGFydCgxMzQwMzc2MDcwMTY0KSI6IHt9LAotICAi
UmVsb2FkIHJlc3BvbnNlRW5kKDEzNDAzNzYwNzAyOTYpID4gT3JpZ2luYWwgcmVzcG9uc2VFbmQo
MTM0MDM3NjA3MDE3NCkiOiB7fSwKLSAgIlJlbG9hZCByZXNwb25zZVN0YXJ0KDEzNDAzNzYwNzAy
OTYpID4gT3JpZ2luYWwgcmVzcG9uc2VTdGFydCgxMzQwMzc2MDcwMTY0KSI6IHt9LAotICAiUmVs
b2FkIHVubG9hZEV2ZW50RW5kKDEzNDAzNzYwNzAyOTYpID4gT3JpZ2luYWwgdW5sb2FkRXZlbnRF
bmQoMCkiOiB7fSwKLSAgIlJlbG9hZCB1bmxvYWRFdmVudFN0YXJ0KDEzNDAzNzYwNzAyOTYpID4g
T3JpZ2luYWwgdW5sb2FkRXZlbnRTdGFydCgwKSI6IHt9Ci19Ci0qLzwvc2NyaXB0PiAgICAgICAK
LSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHNldHVwKHtleHBsaWNpdF9kb25lOiB0cnVl
fSk7Ci0KLSAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgdGVzdCB0aGUgbmFtZXNwYWNlIGJlZm9y
ZSB3ZSBzdGFydCB0ZXN0aW5nCi0gICAgICAgICAgICB0ZXN0X25hbWVzcGFjZSgnbmF2aWdhdGlv
bicpOwotICAgICAgICAgICAgdmFyIHJlbG9hZF9mcmFtZTsKLSAgICAgICAgICAgIHZhciBzdGFy
dGluZ1RpbWU7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRlZXBDb3B5KHAsIGMpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGMgPSBjIHx8IHt9OwotICAgICAgICAgICAgICAg
IGZvciAodmFyIGkgaW4gcCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICh0eXBlb2YgcFtpXSA9PT0gJ29iamVjdCcpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNbaV0gPSAocFtpXS5jb25zdHJ1Y3RvciA9PT0gQXJyYXkp
ID8gW10gOiB7fTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlZXBDb3B5KHBbaV0sIGNbaV0p
OwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgY1tpXSA9IHBbaV07Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBjOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICByZWxvYWRfZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZnJhbWVDb250ZXh0Iik7Ci0gICAgICAgICAgICAgICAgcmVsb2FkX2ZyYW1lLm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgLyogTmVlZCB0byBtYWtlIHN1cmUgd2UgZG9u
J3QgZXhhbWluZSBsb2FkRXZlbnRFbmQKLSAgICAgICAgICAgICAgICAgICAgIHVudGlsIGFmdGVy
IHRoZSBsb2FkIGV2ZW50IGhhcyBmaW5pc2hlZCBmaXJpbmcgKi8KLQkJICAgIHNldFRpbWVvdXQo
ZG9fdGVzdCwgMCk7Ci0JCX0KLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCJyZWxvYWRfdGhl
X2ZyYW1lKCk7IiwgMTAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
cmVsb2FkX3RoZV9mcmFtZSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLy9CZWZv
cmUgcmVsb2FkaW5nLCBzYXZlIHRoZSBjdXJyZW50IHRpbWluZwotICAgICAgICAgICAgICAgIHN0
YXJ0aW5nVGltZSA9IGRlZXBDb3B5KHJlbG9hZF9mcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1h
bmNlLnRpbWluZyk7Ci0gICAgICAgICAgICAgICAgcmVsb2FkX2ZyYW1lLmNvbnRlbnRXaW5kb3cu
bG9jYXRpb24ucmVsb2FkKHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBkb190ZXN0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZWxvYWRfZnJh
bWUub25sb2FkID0gbnVsbDsKLSAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2VOYW1lc3Bh
Y2UpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAvL1ZlcmlmeSB0aGF0
IHRoZSBuYXZpZ2F0aW9uIHR5cGUgaGFzIHVwZGF0ZWQgdG8gcmVsb2FkCi0gICAgICAgICAgICAg
ICAgICAgIHRlc3RfZXF1YWxzKHJlbG9hZF9mcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNl
Lm5hdmlnYXRpb24udHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5j
ZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLlRZUEVfUkVMT0FELAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICd3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlID09IFRZUEVfUkVMT0FE
LHtoZWxwOiJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5hdmln
YXRpb24taW5mby1pbnRlcmZhY2UifScpOwotCi0gICAgICAgICAgICAgICAgICAgIC8vVmVyaWZ5
IHRoYXQgdGhlIHRpbWluZyBkYXRhIGhhcyBiZWVuIHVwZGF0ZWQgaW50byB0aGUgZnV0dXJlCi0g
ICAgICAgICAgICAgICAgICAgIHZhciByZWxvYWRUaW1lID0gcmVsb2FkX2ZyYW1lLmNvbnRlbnRX
aW5kb3cucGVyZm9ybWFuY2UudGltaW5nOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGF0dHJp
YnV0ZSBpbiB0aW1pbmdBdHRyaWJ1dGVzKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgdGltZSA9IHRpbWluZ0F0dHJpYnV0ZXNbYXR0cmlidXRlXTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxvYWRUaW1lW3RpbWVdID09PSAwKQotICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
ZXF1YWxzKHJlbG9hZFRpbWVbdGltZV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhcnRpbmdUaW1lW3RpbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJSZWxvYWQgIiArIHRpbWUgICsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiID09ICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJPcmlnaW5hbCAiICsgdGltZSApOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKHJlbG9hZFRp
bWVbdGltZV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhcnRpbmdUaW1lW3RpbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJSZWxvYWQgIiArIHRpbWUgICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiID4gIiArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIk9yaWdpbmFsICIgKyB0aW1lICk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0Pgot
ICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9Im9ubG9hZF90ZXN0KCk7Ij4KLSAgICAgICAg
PGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUg
dmFsdWUgb2Ygd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSBhbmQgdGhlIHZhbHVl
cyBvZgotICAgICAgICAgICAgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy4qIHdpdGggYSByZWxv
YWRlZCBuYXZpZ2F0aW9uLjwvcD4KLQotICAgICAgICA8cD5UaGlzIHBhZ2Ugc2hvdWxkIGJlIGxv
YWRlZCB3aXRoIGEgZ3JlZW4gYmFja2dyb3VuZCBmcmFtZSBiZWxvdy4gIFRoZSBmcmFtZSB3aWxs
IGJlIGF1dG9tYXRpY2FsbHkgcmVsb2FkZWQKLSAgICAgICAgYW5kIHRoZW4gdmVyaWZpZWQgdGhh
dCAKLSAgICAgICAgPHVsPgotICAgICAgICAgICAgPGxpPlRoZSB3aW5kb3cucGVyZm9ybWFuY2Uu
bmF2aWdhdGlvbi50eXBlID0gVFlQRV9SRUxPQUQ8L2xpPgotICAgICAgICAgICAgPGxpPkFsbCBv
ZiB0aGUgd2lkb3cucGVyZm9ybWFuY2UudGltaW5nLiogdmFsdWVzIGFmdGVyIHJlbG9hZCBhcmUg
PiBhbGwgb2YgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuKiB2YWx1ZXMKLSAgICAgICAg
ICAgICAgICBwcmlvciB0byByZWxvYWQuPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgICAgPC9w
PgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgICAgIDxiciAvPgotICAgICAg
ICA8aWZyYW1lIGlkPSJmcmFtZUNvbnRleHQiIHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9i
bGFua19wYWdlX2dyZWVuLmh0bSIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsi
PjwvaWZyYW1lPgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90
ZXN0X25vX3ByZXZpb3VzX2RvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X25v
X3ByZXZpb3VzX2RvY3VtZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWVmY2U5YzVkYzA2MDQwZWEyYTlmZmM4ZTM5NjNkMGJhY2QyOWIwZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9ub19w
cmV2aW91c19kb2N1bWVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww
IEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB1bmxvYWQgZXZlbnQg
dGltZXMgYXJlIDAgd2hlbiB0aGVyZSBpcyBubyBwcmV2aW91cyBkb2N1bWVudC4KLQotCi0KLQot
UEFTUyB3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1h
bmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCAKLVBBU1MgdGltaW5nLm5hdmlnYXRpb24udHlwZSBp
cyBUWVBFX05BVklHQVRFIAotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRTdGFydCA9PSAwIG9uIG5h
dmlnYXRpb24gd2l0aCBubyBwcmV2aW91cyBkb2N1bWVudCAKLVBBU1MgdGltaW5nLnVubG9hZEV2
ZW50RW5kID09IDAgbmF2aWdhdGlvbiB3aXRoIG5vIHByZXZpb3VzIGRvY3VtZW50IAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmln
YXRpb24tdGltaW5nL2h0bWwvdGVzdF9ub19wcmV2aW91c19kb2N1bWVudC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9o
dG1sL3Rlc3Rfbm9fcHJldmlvdXNfZG9jdW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZWYwMGVmZWRkYTFjM2FlMjMzOTZmZjM0NDY2NTEzMjY5OTZkNGZlMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9u
b19wcmV2aW91c19kb2N1bWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAot
77u/PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiIC8+Ci0gICAgICAgIDx0aXRsZT53aW5kb3cucGVyZm9ybWFuY2UudGltaW5n
IGF0dHJpYnV0ZXMgb24gYW4gaW5pdGlhbCBuYXZpZ2F0aW9uPC90aXRsZT4KLSAgICAgICAgPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJHb29nbGUiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNv
bS8iIC8+Ci0JPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZp
Z2F0aW9uLXRpbWluZy8jc2VjLW5hdmlnYXRpb24tdGltaW5nLWludGVyZmFjZSIvPgotICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93
ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBpZD0ibWV0YWRhdGFfY2Fj
aGUiPi8qCi17Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVs
cCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5w
ZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3Jt
YW5jZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJl
bGF0ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9y
Zy8iCi0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZpbmVkIjog
ewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNz
ZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2lu
ZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVy
Zm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6
Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgInRpbWluZy5uYXZpZ2F0aW9uLnR5cGUgaXMgVFlQRV9O
QVZJR0FURSI6IHsgImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1p
bmcvI3NlYy1uYXZpZ2F0aW9uLWluZm8taW50ZXJmYWNlIiB9LAotICAidGltaW5nLnVubG9hZEV2
ZW50U3RhcnQgPT0gMCBvbiBuYXZpZ2F0aW9uIHdpdGggbm8gcHJldmlvdXMgZG9jdW1lbnQiOiB7
fSwKLSAgInRpbWluZy51bmxvYWRFdmVudEVuZCA9PSAwIG5hdmlnYXRpb24gd2l0aCBubyBwcmV2
aW91cyBkb2N1bWVudCI6IHt9Ci19Ci0qLzwvc2NyaXB0PgotICAgICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KLSAgICAK
LSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHNldHVwKHtleHBsaWNpdF9kb25lOiB0cnVl
fSk7Ci0KLSAgICAgICAgICAgIHZhciBmcmFtZTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9h
ZF90ZXN0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKTsKLSAgICAgICAgICAgICAgICB0ZXN0X25h
bWVzcGFjZSgnbmF2aWdhdGlvbicpOwotICAgICAgICAgICAgICAgIGlmIChwZXJmb3JtYW5jZU5h
bWVzcGFjZSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfdHJ1
ZShmcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSA9PSBwZXJm
b3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLlRZUEVfTkFWSUdBVEUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAndGltaW5nLm5hdmlnYXRpb24udHlwZSBpcyBUWVBFX05BVklHQVRF
Jyx7aGVscDoiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZp
Z2F0aW9uLWluZm8taW50ZXJmYWNlIn0pOwotCi0gICAgICAgICAgICAgICAgICAgIHRlc3RfZXF1
YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnVubG9hZEV2ZW50U3Rh
cnQsIDAsICd0aW1pbmcudW5sb2FkRXZlbnRTdGFydCA9PSAwIG9uIG5hdmlnYXRpb24gd2l0aCBu
byBwcmV2aW91cyBkb2N1bWVudCcpOwotICAgICAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhm
cmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy51bmxvYWRFdmVudEVuZCwgMCwg
J3RpbWluZy51bmxvYWRFdmVudEVuZCA9PSAwIG5hdmlnYXRpb24gd2l0aCBubyBwcmV2aW91cyBk
b2N1bWVudCcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBkb25lKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0PgotICAgICAgICAKLSAgICA8L2hlYWQ+Ci0g
ICAgPGJvZHkgb25sb2FkPSJvbmxvYWRfdGVzdCgpOyI+Ci0gICAgICAgIDxoMT5EZXNjcmlwdGlv
bjwvaDE+Ci0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHVubG9hZCBldmVudCB0
aW1lcyBhcmUgMCB3aGVuIHRoZXJlIGlzIG5vIHByZXZpb3VzIGRvY3VtZW50LjwvcD4KLQotICAg
ICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PjxiciAvPgotICAgICAgICA8aWZyYW1lIGlkPSJmcmFt
ZUNvbnRleHQiIHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuLmh0
bSIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvaWZyYW1lPgotICAgIDwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNlX2F0
dHJpYnV0ZXNfZXhpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2Vf
YXR0cmlidXRlc19leGlzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg2ZDJkODY5ZTNjYjM5MDE2NDAyNDZhNTU3M2QzZWNkNTczZTNkMWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9y
bWFuY2VfYXR0cmlidXRlc19leGlzdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5
ICswLDAgQEAKLURlc2NyaXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgbmF2
aWdhdGlvbiBhbmQgdGltaW5nIGF0dHJpYnV0ZXMgZXhpc3QgZm9yIHdpbmRvdy5wZXJmb3JtYW5j
ZSAoYnV0IGRvZXMgbm90IHZhbGlkYXRlIHRoYXQgdGhlaXIgdmFsdWVzIGFyZSBjb3JyZWN0KS4K
LQotCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIAotUEFTUyB3aW5kb3cucGVy
Zm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZpbmVkIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2Uu
dGltaW5nIGlzIGRlZmluZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1h
bmNlX2F0dHJpYnV0ZXNfZXhpc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNlX2F0
dHJpYnV0ZXNfZXhpc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIzYzdi
MWM5MjBkOGI2MjM0ODNjMGVjZTQxZjg0NzczOTEzMDNhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9wZXJmb3JtYW5jZV9hdHRy
aWJ1dGVzX2V4aXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi3vu788IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPndpbmRvdy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGVzPC90
aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJmb3Jt
YW5jZS1hdHRyaWJ1dGUiLz4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LSA8c2NyaXB0IGlkPSJtZXRhZGF0YV9jYWNoZSI+LyoKLXsKLSAgIndpbmRvdy5wZXJmb3JtYW5j
ZSBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmln
YXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFz
c2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3Rp
bmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRo
b3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgIndpbmRvdy5wZXJmb3JtYW5j
ZS5uYXZpZ2F0aW9uIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0cDovL3d3dy53My5v
cmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRl
IiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3Zp
ZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIs
Ci0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9LAotICAid2luZG93
LnBlcmZvcm1hbmNlLnRpbWluZyBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93
d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0
dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0
ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1
dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfQotfQot
Ki88L3NjcmlwdD4KLSAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAg
ICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Ci0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhhdCB0aGUgbmF2aWdhdGlvbiBhbmQgdGltaW5nIGF0dHJpYnV0ZXMgZXhpc3QgZm9yIHdpbmRv
dy5wZXJmb3JtYW5jZSAKLSAgICAgICAgKGJ1dCBkb2VzIG5vdCB2YWxpZGF0ZSB0aGF0IHRoZWly
IHZhbHVlcyBhcmUgY29ycmVjdCkuPC9wPgotICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgot
ICAgICAgICA8c2NyaXB0PiAgICAgICAgICAgIAotICAgICAgICAgICAgdGVzdF9uYW1lc3BhY2Uo
J25hdmlnYXRpb24nKTsKLSAgICAgICAgICAgIHRlc3RfbmFtZXNwYWNlKCd0aW1pbmcnLCB0cnVl
KTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRp
bWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2VfYXR0cmlidXRlc19leGlzdF9pbl9vYmplY3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9u
YXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2VfYXR0cmlidXRlc19leGlzdF9p
bl9vYmplY3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmQ5
ZmQ1NGI1N2E1MGM5NDE3M2ZhMDVjYjU0ZDMyMmIwODRiNDQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNlX2F0
dHJpYnV0ZXNfZXhpc3RfaW5fb2JqZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDcgKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSB3
aW5kb3cucGVyZm9ybWFuY2Ugb2JqZWN0IGV4aXN0cyBpbiBhbiBvYmplY3QgZWxlbWVudCAoYnV0
IGRvZXMgbm90IHZhbGlkYXRlIHRoYXQgdGhlaXIgdmFsdWVzIGFyZSBjb3JyZWN0KS4KLQotCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3Zl
ZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2VfYXR0cmlidXRlc19leGlz
dF9pbl9vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBw
cm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNlX2F0dHJpYnV0ZXNf
ZXhpc3RfaW5fb2JqZWN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyM2Vk
MGU2M2VhZTkwZGZiMWQ5YWVkNWJjZDc5NTNkYmEwMzRjOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2VfYXR0
cmlidXRlc19leGlzdF9pbl9vYmplY3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAg
QEAKLe+7vzwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPgotICAgICAgICA8dGl0bGU+d2luZG93LnBlcmZvcm1hbmNlIGF0
dHJpYnV0ZSBleGlzdHMgaW4gYW4gb2JqZWN0PC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJHb29nbGUiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iIC8+Ci0J
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRp
bWluZy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLz4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9Im1ldGFkYXRhX2NhY2hlIj4vKgot
ewotICAid2luZG93LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0
cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFu
Y2UtYXR0cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0
cmlidXRlIHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0
dHJpYnV0ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9
LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyBpcyBkZWZpbmVkIjogewotICAgICJoZWxw
IjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBl
cmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1h
bmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVs
YXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3Jn
LyIKLSAgfSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIGlzIGRlZmluZWQiOiB7
Ci0gICAgImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3Nl
Yy13aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5k
b3cucGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJm
b3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDov
L3d3dy53My5vcmcvIgotICB9Ci19Ci0qLzwvc2NyaXB0PgotICAgICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KLSAgICAg
ICAgPHNjcmlwdD4KLSAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpIHsKLSAgICAgICAg
ICAgIHZhciBvYmpXaW5kb3cgPQotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvYmplY3RDb250ZXh0IikuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3OwotICAgICAg
ICAgICAgcGVyZm9ybWFuY2VOYW1lc3BhY2UgPSBvYmpXaW5kb3cucGVyZm9ybWFuY2U7Ci0gICAg
ICAgICAgICB0ZXN0X25hbWVzcGFjZSgndGltaW5nJyk7Ci0gICAgICAgICAgICB0ZXN0X25hbWVz
cGFjZSgnbmF2aWdhdGlvbicsIHRydWUpOwotICAgICAgICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+
Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPgot
ICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIHdpbmRvdy5wZXJmb3JtYW5j
ZSBvYmplY3QgZXhpc3RzIGluIGFuCi0gICAgICAgIG9iamVjdCBlbGVtZW50IChidXQgZG9lcyBu
b3QgdmFsaWRhdGUgdGhhdCB0aGVpciB2YWx1ZXMgYXJlIGNvcnJlY3QpLjwvcD4KLSAgICAgICAg
PG9iamVjdCBpZD0ib2JqZWN0Q29udGV4dCIgb25sb2FkPSJvbmxvYWRfdGVzdCgpOyIgZGF0YT0i
L3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuLmh0bSI+PC9vYmplY3Q+Ci0g
ICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0
aW9uLXRpbWluZy9odG1sL3Rlc3RfcmVhZHdyaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90
ZXN0X3JlYWR3cml0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdhODliOTY0ZDcwZjk2OTRkZWE1YWMxODVjMWRmNGNlNjBjNDQzZDEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcmVhZHdyaXRl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotRGVzY3JpcHRpb24K
LQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSB3aW5kb3cucGVyZm9ybWFuY2Ugb2JqZWN0
IGlzIHJlYWQvd3JpdGUuCi0KLQotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCAK
LVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlIGlzIHJlYWQvd3JpdGUgCi1QQVNTIHZhciBwZXJmb3Jt
YW5jZSBpcyByZWFkL3dyaXRlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9yZWFkd3Jp
dGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2
aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3JlYWR3cml0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmZTA1Y2NhNjc0NWRhZTg5ZmZiMjJiOTk1YjFjN2MyYTBjZWRjZjY0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90
ZXN0X3JlYWR3cml0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAot77u/PCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+Ci0gICAgICAgIDx0aXRsZT53aW5kb3cucGVyZm9ybWFuY2UgaXMgcmVhZC93cml0
ZTwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vIiAvPgotCTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVy
Zm9ybWFuY2UtYXR0cmlidXRlIi8+Ci0JPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJUaGUg
d2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3Ig
cGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLz4KLSAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9Im1ldGFkYXRhX2NhY2hlIj4vKgotewotICAi
d2luZG93LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0cDovL3d3
dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2UtYXR0
cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmlidXRl
IHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0
ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9LAotICAi
d2luZG93LnBlcmZvcm1hbmNlIGlzIHJlYWQvd3JpdGUiOiB7fSwKLSAgInZhciBwZXJmb3JtYW5j
ZSBpcyByZWFkL3dyaXRlIjoge30KLX0KLSovPC9zY3JpcHQ+Ci0gICAgICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIiAvPgotICAg
IDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAg
ICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSB3aW5kb3cucGVyZm9ybWFuY2Ugb2Jq
ZWN0IGlzIHJlYWQvd3JpdGUuPC9wPgotICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAg
ICAgICA8c2NyaXB0PgotICAgICAgICAgICAgdGVzdF9uYW1lc3BhY2UoKTsKLQotICAgICAgICAg
ICAgd2luZG93LnBlcmZvcm1hbmNlID0gJ2Zvbyc7Ci0gICAgICAgICAgICB0ZXN0X2VxdWFscyh3
aW5kb3cucGVyZm9ybWFuY2UsICdmb28nLCAnd2luZG93LnBlcmZvcm1hbmNlIGlzIHJlYWQvd3Jp
dGUnKTsKLQotICAgICAgICAgICAgdmFyIHBlcmZvcm1hbmNlID0gJ2Jhcic7Ci0gICAgICAgICAg
ICB0ZXN0X2VxdWFscyhwZXJmb3JtYW5jZSwgJ2JhcicsICd2YXIgcGVyZm9ybWFuY2UgaXMgcmVh
ZC93cml0ZScpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmln
YXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfYXR0cmlidXRlc19leGlzdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRp
b24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfYXR0cmlidXRlc19leGlzdC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1YTE2YmYxYmFhZWVjNTdiYzgzNDk3NzBm
MjYwMWU3Y2NlZGRmNzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0
aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX2F0dHJpYnV0ZXNfZXhpc3QtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0
IHZhbGlkYXRlcyB0aGF0IGFsbCBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyBhdHRy
aWJ1dGVzIGV4aXN0IChidXQgZG9lcyBub3QgdmFsaWRhdGUgdGhhdCB0aGVpciB2YWx1ZXMgYXJl
IGNvcnJlY3QpLgotCi0KLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQgCi1QQVNT
IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZv
cm1hbmNlLnRpbWluZy5jb25uZWN0RW5kIGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9y
bWFuY2UudGltaW5nLmNvbm5lY3RTdGFydCBpcyBkZWZpbmVkLiAKLVBBU1Mgd2luZG93LnBlcmZv
cm1hbmNlLnRpbWluZy5kb21Db21wbGV0ZSBpcyBkZWZpbmVkLiAKLVBBU1Mgd2luZG93LnBlcmZv
cm1hbmNlLnRpbWluZy5kb21Db250ZW50TG9hZGVkRXZlbnRFbmQgaXMgZGVmaW5lZC4gCi1QQVNT
IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQgaXMg
ZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tSW50ZXJhY3RpdmUg
aXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tTG9hZGluZyBp
cyBkZWZpbmVkLiAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21haW5Mb29rdXBF
bmQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tYWluTG9v
a3VwU3RhcnQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZmV0
Y2hTdGFydCBpcyBkZWZpbmVkLiAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5sb2Fk
RXZlbnRFbmQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubG9h
ZEV2ZW50U3RhcnQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcu
bmF2aWdhdGlvblN0YXJ0IGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGlt
aW5nLnJlZGlyZWN0RW5kIGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGlt
aW5nLnJlZGlyZWN0U3RhcnQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50
aW1pbmcucmVxdWVzdFN0YXJ0IGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2Uu
dGltaW5nLnJlc3BvbnNlRW5kIGlzIGRlZmluZWQuIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2Uu
dGltaW5nLnJlc3BvbnNlU3RhcnQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5j
ZS50aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgZGVmaW5lZC4gCi1QQVNTIHdpbmRvdy5wZXJmb3Jt
YW5jZS50aW1pbmcudW5sb2FkRXZlbnRTdGFydCBpcyBkZWZpbmVkLiAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRp
bWluZy9odG1sL3Rlc3RfdGltaW5nX2F0dHJpYnV0ZXNfZXhpc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90
ZXN0X3RpbWluZ19hdHRyaWJ1dGVzX2V4aXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDA4MmYyZWNjZjJlMWI4NjAzNmNlODY2NTNmMjFmN2UyNDQ0NDM4ZDIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGlt
aW5nX2F0dHJpYnV0ZXNfZXhpc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAK
Le+7vzwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPgotICAgICAgICA8dGl0bGU+d2luZG93LnBlcmZvcm1hbmNlLnRpbWlu
ZyBhdHRyaWJ1dGVzPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2Vj
LW5hdmlnYXRpb24tdGltaW5nLWludGVyZmFjZSIvPiAgICAgICAgCi0gICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJtZXRhZGF0YV9jYWNoZSI+LyoKLXsK
LSAgIndpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6
Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNl
LWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJp
YnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRy
aWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwK
LSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVscCI6
ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJm
b3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5j
ZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0
ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9yZy8i
Ci0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmNvbm5lY3RFbmQgaXMgZGVmaW5l
ZC4iOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuY29ubmVjdFN0YXJ0IGlzIGRl
ZmluZWQuIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUNvbXBsZXRlIGlz
IGRlZmluZWQuIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUNvbnRlbnRM
b2FkZWRFdmVudEVuZCBpcyBkZWZpbmVkLiI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRp
bWluZy5kb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCBpcyBkZWZpbmVkLiI6IHt9LAotICAid2lu
ZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21JbnRlcmFjdGl2ZSBpcyBkZWZpbmVkLiI6IHt9LAot
ICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21Mb2FkaW5nIGlzIGRlZmluZWQuIjoge30s
Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbWFpbkxvb2t1cEVuZCBpcyBkZWZpbmVk
LiI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21haW5Mb29rdXBTdGFydCBp
cyBkZWZpbmVkLiI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5mZXRjaFN0YXJ0
IGlzIGRlZmluZWQuIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmxvYWRFdmVu
dEVuZCBpcyBkZWZpbmVkLiI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5sb2Fk
RXZlbnRTdGFydCBpcyBkZWZpbmVkLiI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWlu
Zy5uYXZpZ2F0aW9uU3RhcnQgaXMgZGVmaW5lZC4iOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5j
ZS50aW1pbmcucmVkaXJlY3RFbmQgaXMgZGVmaW5lZC4iOiB7fSwKLSAgIndpbmRvdy5wZXJmb3Jt
YW5jZS50aW1pbmcucmVkaXJlY3RTdGFydCBpcyBkZWZpbmVkLiI6IHt9LAotICAid2luZG93LnBl
cmZvcm1hbmNlLnRpbWluZy5yZXF1ZXN0U3RhcnQgaXMgZGVmaW5lZC4iOiB7fSwKLSAgIndpbmRv
dy5wZXJmb3JtYW5jZS50aW1pbmcucmVzcG9uc2VFbmQgaXMgZGVmaW5lZC4iOiB7fSwKLSAgIndp
bmRvdy5wZXJmb3JtYW5jZS50aW1pbmcucmVzcG9uc2VTdGFydCBpcyBkZWZpbmVkLiI6IHt9LAot
ICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy51bmxvYWRFdmVudEVuZCBpcyBkZWZpbmVkLiI6
IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy51bmxvYWRFdmVudFN0YXJ0IGlzIGRl
ZmluZWQuIjoge30KLX0KLSovPC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAg
ICAgICA8aDE+RGVzY3JpcHRpb248L2gxPgotICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVz
IHRoYXQgYWxsIG9mIHRoZSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nIGF0dHJpYnV0ZXMgZXhp
c3QgKGJ1dCBkb2VzIG5vdCB2YWxpZGF0ZSB0aGF0IHRoZWlyIHZhbHVlcyBhcmUgY29ycmVjdCku
PC9wPgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLSAgICAgICAgPHNjcmlwdD4K
LSAgICAgICAgdGVzdF9uYW1lc3BhY2UoJ3RpbWluZycpOwotCi0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGltaW5nQXR0cmlidXRlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgewotICAgICAg
ICAgICAgdGVzdF9hdHRyaWJ1dGVfZXhpc3RzKCd0aW1pbmcnLCB0aW1pbmdBdHRyaWJ1dGVzW2ld
KTsKLSAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25h
dmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfYXR0cmlidXRlc19vcmRlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmln
YXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfYXR0cmlidXRlc19vcmRlci1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzMWQ4MTg0ZDNiNzNjMWRlM2I2ZTg4
YjI0NGUwN2MyZDRiMWY0ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZp
Z2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX2F0dHJpYnV0ZXNfb3JkZXItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotZnJhbWUgImZyYW1lQ29udGV4dCIg
LSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFs
aWRhdGVzIHRoZSBvcmRlcmluZyBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyBhdHRy
aWJ1dGVzLgotCi1UaGlzIHBhZ2Ugc2hvdWxkIGJlIGxvYWRlZCB3aXRoIGEgeWVsbG93IGJhY2tn
cm91bmQgZnJhbWUgYmVsb3cgd2hpY2ggY29udGFpbnMgYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIu
Ci0KLUFmdGVyIHRoZSBwYWdlIGxvYWRzLCB0aGUgZnJhbWUgaXMgbmF2aWdhdGVkIHRvIGEgbmV3
IGJsYW5rIHBhZ2Ugd2l0aCBhIGdyZWVuIGJhY2tncm91bmQuIEF0IHRoaXMgcG9pbnQsIHRoZSBu
YXZpZ2F0aW9uIHRpbWVsaW5lIGlzIHZlcmlmaWVkCi0KLVRoaXMgdGVzdCBwYXNzZXMgaWYgYWxs
IG9mIHRoZSBjaGVja3MgdG8gdGhlIGZyYW1lLndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgYXR0
cmlidXRlcyBhcmUgY29ycmVjdCB0aHJvdWdob3V0IHRoZSBuYXZpZ2F0aW9uIHNjZW5hcmlvIGFu
ZCB0aGUgZnJhbWUgYmVsb3cgZW5kcyB3aXRoIGEgZ3JlZW4gYmFja2dyb3VuZC4gT3RoZXJ3aXNl
LCB0aGlzIHRlc3QgZmFpbHMuCi0KLVNldHVwCi0KLQotCi0KLVBBU1Mgd2luZG93LnBlcmZvcm1h
bmNlIGlzIGRlZmluZWQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgaXMgZGVmaW5l
ZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCAKLVBBU1Mg
d2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSA9PSBUWVBFX05BVklHQVRFIAotUEFT
UyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCA+IDAgCi1QQVNTIHdp
bmRvdy5wZXJmb3JtYW5jZS50aW1pbmcucmVkaXJlY3RTdGFydCA9PSAwIAotUEFTUyB3aW5kb3cu
cGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0RW5kID09IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3Jt
YW5jZS50aW1pbmcuZmV0Y2hTdGFydCA+IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1p
bmcuZmV0Y2hTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFy
dCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21haW5Mb29rdXBTdGFydCA+IDAg
Ci1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgPj0gd2lu
ZG93LnBlcmZvcm1hbmNlLnRpbWluZy5mZXRjaFN0YXJ0IAotUEFTUyB3aW5kb3cucGVyZm9ybWFu
Y2UudGltaW5nLmRvbWFpbkxvb2t1cEVuZCA+IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50
aW1pbmcuZG9tYWluTG9va3VwRW5kID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tYWlu
TG9va3VwU3RhcnQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuY29ubmVjdFN0YXJ0
ID4gMCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5jb25uZWN0U3RhcnQgPj0gd2lu
ZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21haW5Mb29rdXBFbmQgCi1QQVNTIHdpbmRvdy5wZXJm
b3JtYW5jZS50aW1pbmcuY29ubmVjdEVuZCA+IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50
aW1pbmcuY29ubmVjdEVuZCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmNvbm5lY3RTdGFy
dCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZXF1ZXN0U3RhcnQgPiAwIAotUEFT
UyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlcXVlc3RTdGFydCA+PSB3aW5kb3cucGVyZm9y
bWFuY2UudGltaW5nLmNvbm5lY3RFbmQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcu
cmVzcG9uc2VTdGFydCA+IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcucmVzcG9u
c2VTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlcXVlc3RTdGFydCAKLVBBU1Mg
d2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZXNwb25zZUVuZCA+IDAgCi1QQVNTIHdpbmRvdy5w
ZXJmb3JtYW5jZS50aW1pbmcucmVzcG9uc2VFbmQgPj0gd2luZG93LnBlcmZvcm1hbmNlLnRpbWlu
Zy5yZXNwb25zZVN0YXJ0IAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUxvYWRp
bmcgPiAwIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUxvYWRpbmcgPj0gd2lu
ZG93LnBlcmZvcm1hbmNlLnRpbWluZy5mZXRjaFN0YXJ0IAotUEFTUyB3aW5kb3cucGVyZm9ybWFu
Y2UudGltaW5nLmRvbUludGVyYWN0aXZlID4gMCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRp
bWluZy5kb21JbnRlcmFjdGl2ZSA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlc3BvbnNl
RW5kIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUNvbnRlbnRMb2FkZWRFdmVu
dFN0YXJ0ID4gMCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21Db250ZW50TG9h
ZGVkRXZlbnRTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUludGVyYWN0aXZl
IAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUNvbnRlbnRMb2FkZWRFdmVudEVu
ZCA+IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29udGVudExvYWRlZEV2
ZW50RW5kID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29udGVudExvYWRlZEV2ZW50
U3RhcnQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29tcGxldGUgPiAwIAot
UEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbUNvbXBsZXRlID49IHdpbmRvdy5wZXJm
b3JtYW5jZS50aW1pbmcuZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIAotUEFTUyB3aW5kb3cucGVy
Zm9ybWFuY2UudGltaW5nLmxvYWRFdmVudFN0YXJ0ID4gMCAKLVBBU1Mgd2luZG93LnBlcmZvcm1h
bmNlLnRpbWluZy5sb2FkRXZlbnRTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRv
bUNvbnRlbnRMb2FkZWRFdmVudEVuZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5s
b2FkRXZlbnRFbmQgPiAwIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmxvYWRFdmVu
dEVuZCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmxvYWRFdmVudFN0YXJ0IAotUEFTUyB3
aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnVubG9hZEV2ZW50U3RhcnQgPiAwIAotUEFTUyB3aW5k
b3cucGVyZm9ybWFuY2UudGltaW5nLnVubG9hZEV2ZW50U3RhcnQgPj0gd2luZG93LnBlcmZvcm1h
bmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1p
bmcudW5sb2FkRXZlbnRFbmQgPiAwIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnVu
bG9hZEV2ZW50RW5kID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcudW5sb2FkRXZlbnRTdGFy
dCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHBy
b3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX2F0dHJpYnV0ZXNfb3JkZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdh
dGlvbi10aW1pbmcvaHRtbC90ZXN0X3RpbWluZ19hdHRyaWJ1dGVzX29yZGVyLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhNDVlMDEyOGQ3ZTQ4N2ViYTg1YzhiZTBjNTgzMmU1
NGI2NzNhYzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRp
bWluZy9odG1sL3Rlc3RfdGltaW5nX2F0dHJpYnV0ZXNfb3JkZXIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDE2NyArMCwwIEBACi3vu788IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPndpbmRv
dy5wZXJmb3JtYW5jZS50aW1pbmcgYXR0cmlidXRlIG9yZGVyaW5nIG9uIGEgc2ltcGxlIG5hdmln
YXRpb248L3RpdGxlPgotICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tLyIgLz4KLQk8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtbmF2aWdh
dGlvbi10aW1pbmctaW50ZXJmYWNlIi8+ICAgICAgICAKLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Ci0gPHNjcmlwdCBpZD0ibWV0YWRhdGFfY2Fj
aGUiPi8qCi17Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVs
cCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5w
ZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3Jt
YW5jZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJl
bGF0ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9y
Zy8iCi0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nIGlzIGRlZmluZWQiOiB7Ci0g
ICAgImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13
aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cu
cGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3Jt
YW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3
dy53My5vcmcvIgotICB9LAotICAid2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gaXMgZGVm
aW5lZCI6IHsKLSAgICAiaGVscCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRp
bWluZy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAi
VGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEg
Zm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlcz
QyBodHRwOi8vd3d3LnczLm9yZy8iCi0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdh
dGlvbi50eXBlID09IFRZUEVfTkFWSUdBVEUiOiB7ICJoZWxwIjogImh0dHA6Ly93d3cudzMub3Jn
L1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtbmF2aWdhdGlvbi1pbmZvLWludGVyZmFjZSIgfSwK
LSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0ID4gMCI6IHt9LAot
ICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZWRpcmVjdFN0YXJ0ID09IDAiOiB7fSwKLSAg
IndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcucmVkaXJlY3RFbmQgPT0gMCI6IHt9LAotICAid2lu
ZG93LnBlcmZvcm1hbmNlLnRpbWluZy5mZXRjaFN0YXJ0ID4gMCI6IHt9LAotICAid2luZG93LnBl
cmZvcm1hbmNlLnRpbWluZy5mZXRjaFN0YXJ0ID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcu
bmF2aWdhdGlvblN0YXJ0Ijoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRvbWFp
bkxvb2t1cFN0YXJ0ID4gMCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21h
aW5Mb29rdXBTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmZldGNoU3RhcnQiOiB7
fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tYWluTG9va3VwRW5kID4gMCI6IHt9
LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21haW5Mb29rdXBFbmQgPj0gd2luZG93
LnBlcmZvcm1hbmNlLnRpbWluZy5kb21haW5Mb29rdXBTdGFydCI6IHt9LAotICAid2luZG93LnBl
cmZvcm1hbmNlLnRpbWluZy5jb25uZWN0U3RhcnQgPiAwIjoge30sCi0gICJ3aW5kb3cucGVyZm9y
bWFuY2UudGltaW5nLmNvbm5lY3RTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmRv
bWFpbkxvb2t1cEVuZCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5jb25uZWN0
RW5kID4gMCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5jb25uZWN0RW5kID49
IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuY29ubmVjdFN0YXJ0Ijoge30sCi0gICJ3aW5kb3cu
cGVyZm9ybWFuY2UudGltaW5nLnJlcXVlc3RTdGFydCA+IDAiOiB7fSwKLSAgIndpbmRvdy5wZXJm
b3JtYW5jZS50aW1pbmcucmVxdWVzdFN0YXJ0ID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcu
Y29ubmVjdEVuZCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZXNwb25zZVN0
YXJ0ID4gMCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZXNwb25zZVN0YXJ0
ID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcucmVxdWVzdFN0YXJ0Ijoge30sCi0gICJ3aW5k
b3cucGVyZm9ybWFuY2UudGltaW5nLnJlc3BvbnNlRW5kID4gMCI6IHt9LAotICAid2luZG93LnBl
cmZvcm1hbmNlLnRpbWluZy5yZXNwb25zZUVuZCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5n
LnJlc3BvbnNlU3RhcnQiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tTG9h
ZGluZyA+IDAiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tTG9hZGluZyA+
PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmZldGNoU3RhcnQiOiB7fSwKLSAgIndpbmRvdy5w
ZXJmb3JtYW5jZS50aW1pbmcuZG9tSW50ZXJhY3RpdmUgPiAwIjoge30sCi0gICJ3aW5kb3cucGVy
Zm9ybWFuY2UudGltaW5nLmRvbUludGVyYWN0aXZlID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1p
bmcucmVzcG9uc2VFbmQiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29u
dGVudExvYWRlZEV2ZW50U3RhcnQgPiAwIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGlt
aW5nLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0ID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1p
bmcuZG9tSW50ZXJhY3RpdmUiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9t
Q29udGVudExvYWRlZEV2ZW50RW5kID4gMCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRp
bWluZy5kb21Db250ZW50TG9hZGVkRXZlbnRFbmQgPj0gd2luZG93LnBlcmZvcm1hbmNlLnRpbWlu
Zy5kb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZy5kb21Db21wbGV0ZSA+IDAiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1p
bmcuZG9tQ29tcGxldGUgPj0gd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5kb21Db250ZW50TG9h
ZGVkRXZlbnRFbmQiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubG9hZEV2ZW50
U3RhcnQgPiAwIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmxvYWRFdmVudFN0
YXJ0ID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29udGVudExvYWRlZEV2ZW50RW5k
Ijoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLmxvYWRFdmVudEVuZCA+IDAiOiB7
fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubG9hZEV2ZW50RW5kID49IHdpbmRvdy5w
ZXJmb3JtYW5jZS50aW1pbmcubG9hZEV2ZW50U3RhcnQiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3Jt
YW5jZS50aW1pbmcudW5sb2FkRXZlbnRTdGFydCA+IDAiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3Jt
YW5jZS50aW1pbmcudW5sb2FkRXZlbnRTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5n
Lm5hdmlnYXRpb25TdGFydCI6IHt9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy51bmxv
YWRFdmVudEVuZCA+IDAiOiB7fSwKLSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcudW5sb2Fk
RXZlbnRFbmQgPj0gd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy51bmxvYWRFdmVudFN0YXJ0Ijog
e30KLX0KLSovPC9zY3JpcHQ+ICAgICAgIAotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAg
c2V0dXAoe2V4cGxpY2l0X2RvbmU6IHRydWV9KTsKLQotICAgICAgICAgICAgdGVzdF9uYW1lc3Bh
Y2UoJ3RpbWluZycpOwotCi0gICAgICAgICAgICB2YXIgc3RlcCA9IDE7Ci0gICAgICAgICAgICBm
dW5jdGlvbiBvbmxvYWRfdGVzdCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYg
KHN0ZXAgPT09IDEgJiYgd2luZG93LnBlcmZvcm1hbmNlID09PSB1bmRlZmluZWQpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAvLyBhdm9pZCBzY3JpcHQgZXJyb3JzCi0g
ICAgICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHZhciBuYXZpZ2F0aW9uX2ZyYW1l
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4dCIpLmNvbnRlbnRXaW5kb3c7
Ci0gICAgICAgICAgICAgICAgcGVyZm9ybWFuY2VOYW1lc3BhY2UgPSBuYXZpZ2F0aW9uX2ZyYW1l
LnBlcmZvcm1hbmNlOwotICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RlcCkKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbl9mcmFtZS5sb2NhdGlvbi5ocmVm
ID0gJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbi5odG0nOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc3RlcCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZXNwYWNlKCdu
YXZpZ2F0aW9uJywgdHJ1ZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0gICAgICAg
ICAgICAgICAgICAgICAgICAvLyBUZXN0cwotICAgICAgICAgICAgICAgICAgICAgICAgLy8KLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKHBlcmZvcm1hbmNlTmFtZXNwYWNlLm5h
dmlnYXRpb24udHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFu
Y2VOYW1lc3BhY2UubmF2aWdhdGlvbi5UWVBFX05BVklHQVRFLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSA9PSBUWVBF
X05BVklHQVRFJyx7aGVscDoiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcv
I3NlYy1uYXZpZ2F0aW9uLWluZm8taW50ZXJmYWNlIn0pOwotCi0gICAgICAgICAgICAgICAgICAg
ICAgICAvLyBuYXZpZ2lhdGlvbiBtdXN0IGJlIG5vbi0wCi0gICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3RpbWluZ19ncmVhdGVyX3RoYW4oJ25hdmlnYXRpb25TdGFydCcsIDApOwotCi0gICAg
ICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGJlIG5vIHJlZGlyZWN0aW9uIGZvciB0aGlzIHRl
c3QgY2FzZQotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfZXF1YWxzKCdyZWRp
cmVjdFN0YXJ0JywgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3RpbWluZ19lcXVh
bHMoJ3JlZGlyZWN0RW5kJywgMCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlk
YXRlIGF0dHJpYnV0ZSBvcmRlcmluZwotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90aW1p
bmdfb3JkZXIoJ2ZldGNoU3RhcnQnLCAnbmF2aWdhdGlvblN0YXJ0Jyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X3RpbWluZ19vcmRlcignZG9tYWluTG9va3VwU3RhcnQnLCAnZmV0Y2hT
dGFydCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfb3JkZXIoJ2RvbWFp
bkxvb2t1cEVuZCcsICdkb21haW5Mb29rdXBTdGFydCcpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF90aW1pbmdfb3JkZXIoJ2Nvbm5lY3RTdGFydCcsICdkb21haW5Mb29rdXBFbmQnKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdGltaW5nX29yZGVyKCdjb25uZWN0RW5kJywg
J2Nvbm5lY3RTdGFydCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfb3Jk
ZXIoJ3JlcXVlc3RTdGFydCcsICdjb25uZWN0RW5kJyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3RpbWluZ19vcmRlcigncmVzcG9uc2VTdGFydCcsICdyZXF1ZXN0U3RhcnQnKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdGltaW5nX29yZGVyKCdyZXNwb25zZUVuZCcsICdy
ZXNwb25zZVN0YXJ0Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3RpbWluZ19vcmRl
cignZG9tTG9hZGluZycsICdmZXRjaFN0YXJ0Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3RpbWluZ19vcmRlcignZG9tSW50ZXJhY3RpdmUnLCAncmVzcG9uc2VFbmQnKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfdGltaW5nX29yZGVyKCdkb21Db250ZW50TG9hZGVkRXZl
bnRTdGFydCcsICdkb21JbnRlcmFjdGl2ZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF90aW1pbmdfb3JkZXIoJ2RvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCcsICdkb21Db250ZW50TG9h
ZGVkRXZlbnRTdGFydCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfb3Jk
ZXIoJ2RvbUNvbXBsZXRlJywgJ2RvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCcpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfb3JkZXIoJ2xvYWRFdmVudFN0YXJ0JywgJ2RvbUNv
bnRlbnRMb2FkZWRFdmVudEVuZCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90aW1p
bmdfb3JkZXIoJ2xvYWRFdmVudEVuZCcsICdsb2FkRXZlbnRTdGFydCcpOwotCi0gICAgICAgICAg
ICAgICAgICAgICAgICAvLyBzZXR1cCByZXF1aXJlcyB0aGUgZnJhbWUgdG8gaGF2ZSBhIHByZXZp
b3VzIHBhZ2Ugd2l0aCBhbiBvbnVubG9hZCBldmVudCBoYW5kbGVyLgotICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF90aW1pbmdfb3JkZXIoJ3VubG9hZEV2ZW50U3RhcnQnLCAnbmF2aWdhdGlv
blN0YXJ0Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3RpbWluZ19vcmRlcigndW5s
b2FkRXZlbnRFbmQnLCAndW5sb2FkRXZlbnRTdGFydCcpOwotCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzdGVwKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+
Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Ci0gICAgICAgIDxwPlRo
aXMgdGVzdCB2YWxpZGF0ZXMgdGhlIG9yZGVyaW5nIG9mIHRoZSB3aW5kb3cucGVyZm9ybWFuY2Uu
dGltaW5nIGF0dHJpYnV0ZXMuPC9wPgotCi0gICAgICAgIDxwPlRoaXMgcGFnZSBzaG91bGQgYmUg
bG9hZGVkIHdpdGggYSB5ZWxsb3cgYmFja2dyb3VuZCBmcmFtZSBiZWxvdyB3aGljaCBjb250YWlu
cyBhbiB1bmxvYWQgZXZlbnQKLSAgICAgICAgICAgaGFuZGxlci48L3A+Ci0KLSAgICAgICAgPHA+
QWZ0ZXIgdGhlIHBhZ2UgbG9hZHMsIHRoZSBmcmFtZSBpcyBuYXZpZ2F0ZWQgdG8gYSBuZXcgYmxh
bmsgcGFnZSB3aXRoIGEgZ3JlZW4gYmFja2dyb3VuZC4gIEF0IHRoaXMgcG9pbnQsIHRoZSBuYXZp
Z2F0aW9uIHRpbWVsaW5lIGlzIHZlcmlmaWVkPC9wPgotCi0gICAgICAgIDxwPlRoaXMgdGVzdCBw
YXNzZXMgaWYgYWxsIG9mIHRoZSBjaGVja3MgdG8gdGhlIGZyYW1lLndpbmRvdy5wZXJmb3JtYW5j
ZS50aW1pbmcgYXR0cmlidXRlcyBhcmUKLSAgICAgICAgICAgY29ycmVjdCB0aHJvdWdob3V0IHRo
ZSBuYXZpZ2F0aW9uIHNjZW5hcmlvIGFuZCB0aGUgZnJhbWUgYmVsb3cgZW5kcyB3aXRoIGEgZ3Jl
ZW4gYmFja2dyb3VuZC4KLSAgICAgICAgICAgT3RoZXJ3aXNlLCB0aGlzIHRlc3QgZmFpbHMuPC9w
PgotCi0gICAgICAgIDxoMT5TZXR1cDwvaDE+Ci0KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rp
dj4KLSAgICAgICAgPGJyIC8+Ci0gICAgICAgIDxpZnJhbWUgaWQ9ImZyYW1lQ29udGV4dCIKLSAg
ICAgICAgICAgICAgICBvbmxvYWQ9Ii8qIE5lZWQgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGV4YW1p
bmUgbG9hZEV2ZW50RW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbCBhZnRlciB0
aGUgbG9hZCBldmVudCBoYXMgZmluaXNoZWQgZmlyaW5nICovCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KG9ubG9hZF90ZXN0LCAwKTsiCi0gICAgICAgICAgICAgICAgc3JjPSIv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfdW5sb2FkLmh0bSIKLSAgICAgICAgICAg
ICAgICBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9pZnJhbWU+Ci0gICAg
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX2NsaWVu
dF9yZWRpcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfY2xpZW50X3Jl
ZGlyZWN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE0MmI4
OTJkYjI1YjYwMDMyM2U4NzExMDZkNjI2ZTg0ZWQ0OGY1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfY2xpZW50X3Jl
ZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLURlc2Ny
aXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgd2luZG93Lm5h
dmlnYXRpb24ucmVkaXJlY3RDb3VudCBhbmQgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcu
cmVkaXJlY3RTdGFydC9FbmQgdGltZXMgb24gYSBjbGllbnQgc2lkZSByZWRpcmVjdC4KLQotCi0K
LQotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZv
cm1hbmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRp
bWluZyBpcyBkZWZpbmVkIAotUEFTUyB0aW1pbmcubmF2aWdhdGlvbi50eXBlIGlzIFRZUEVfTkFW
SUdBVEUgCi1QQVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCA9PSAwIG9uIGFuIGNsaWVudCBy
ZWRpcmVjdGVkIG5hdmlnYXRpb24gCi1QQVNTIHRpbWluZy5yZWRpcmVjdFN0YXJ0ID09IDAgb24g
YW4gY2xpZW50IHJlZGlyZWN0ZWQgbmF2aWdhdGlvbiAKLVBBU1MgdGltaW5nLnJlZGlyZWN0RW5k
ID09IDAgb24gYW4gY2xpZW50IHJlZGlyZWN0ZWQgbmF2aWdhdGlvbiAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRp
bWluZy9odG1sL3Rlc3RfdGltaW5nX2NsaWVudF9yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rl
c3RfdGltaW5nX2NsaWVudF9yZWRpcmVjdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMzRhMWUwNmZkMjU4ZWJiODhlODU1YWZhMmFhNjkzNzEzZGIxZDRlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3RpbWlu
Z19jbGllbnRfcmVkaXJlY3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLe+7
vzwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04IiAvPgotICAgICAgICA8dGl0bGU+d2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5y
ZWRpcmVjdCBhdHRyaWJ1dGVzIG9uIGEgY2xpZW50IHJlZGlyZWN0IG5hdmlnYXRpb248L3RpdGxl
PgotICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tLyIgLz4KLQk8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6
Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtbmF2aWdhdGlvbi10aW1pbmct
aW50ZXJmYWNlIi8+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuY3NzIiAvPgotPHNjcmlwdCBpZD0ibWV0YWRhdGFfY2FjaGUiPi8qCi17Ci0gICJ3aW5kb3cu
cGVyZm9ybWFuY2UgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVscCI6ICJodHRwOi8vd3d3LnczLm9y
Zy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUi
LAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJvdmlk
ZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4gIiwK
LSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9yZy8iCi0gIH0sCi0gICJ3aW5kb3cu
cGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6
Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNl
LWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJp
YnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRy
aWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfSwK
LSAgIndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVscCI6
ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJm
b3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5j
ZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0
ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9yZy8i
Ci0gIH0sCi0gICJ0aW1pbmcubmF2aWdhdGlvbi50eXBlIGlzIFRZUEVfTkFWSUdBVEUiOiB7ICJo
ZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtbmF2aWdh
dGlvbi1pbmZvLWludGVyZmFjZSIgfSwKLSAgIm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCA9PSAw
IG9uIGFuIGNsaWVudCByZWRpcmVjdGVkIG5hdmlnYXRpb24iOiB7ICJoZWxwIjogImh0dHA6Ly93
d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtbmF2aWdhdGlvbi1pbmZvLWludGVy
ZmFjZSIgfSwKLSAgInRpbWluZy5yZWRpcmVjdFN0YXJ0ID09IDAgb24gYW4gY2xpZW50IHJlZGly
ZWN0ZWQgbmF2aWdhdGlvbiI6IHt9LAotICAidGltaW5nLnJlZGlyZWN0RW5kID09IDAgb24gYW4g
Y2xpZW50IHJlZGlyZWN0ZWQgbmF2aWdhdGlvbiI6IHt9Ci19Ci0qLzwvc2NyaXB0PgotICAgICAg
ICA8c2NyaXB0PgotICAgICAgICAgICAgc2V0dXAoe2V4cGxpY2l0X2RvbmU6IHRydWV9KTsKLQot
ICAgICAgICAgICAgdGVzdF9uYW1lc3BhY2UoJ25hdmlnYXRpb24nKTsKLSAgICAgICAgICAgIHRl
c3RfbmFtZXNwYWNlKCd0aW1pbmcnLCB0cnVlKTsKLQotICAgICAgICAgICAgdmFyIHJlZGlyZWN0
X2ZyYW1lOwotICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGlmIChwZXJmb3JtYW5jZU5hbWVzcGFjZSA9PT0gdW5kZWZpbmVk
KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gYXZvaWQgc2NyaXB0
IGVycm9ycwotICAgICAgICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICByZWRpcmVjdF9m
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKTsKLSAgICAgICAg
ICAgICAgICByZWRpcmVjdF9mcmFtZS5vbmxvYWQgPSBkb190ZXN0OwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBkb190ZXN0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICByZWRpcmVjdF9mcmFtZS5vbmxvYWQgPSAiIjsKLSAgICAgICAgICAgICAgICB0ZXN0
X3RydWUocmVkaXJlY3RfZnJhbWUuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9u
LnR5cGUgPT0gcGVyZm9ybWFuY2VOYW1lc3BhY2UubmF2aWdhdGlvbi5UWVBFX05BVklHQVRFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAndGltaW5nLm5hdmlnYXRpb24udHlwZSBpcyBUWVBF
X05BVklHQVRFJyx7aGVscDoiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcv
I3NlYy1uYXZpZ2F0aW9uLWluZm8taW50ZXJmYWNlIn0pOwotCi0gICAgICAgICAgICAgICAgdGVz
dF9lcXVhbHMocmVkaXJlY3RfZnJhbWUuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0
aW9uLnJlZGlyZWN0Q291bnQsIDAsICduYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgPT0gMCBvbiBh
biBjbGllbnQgcmVkaXJlY3RlZCBuYXZpZ2F0aW9uJyx7aGVscDoiaHR0cDovL3d3dy53My5vcmcv
VFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLWluZm8taW50ZXJmYWNlIn0pOwot
ICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKHJlZGlyZWN0X2ZyYW1lLmNvbnRlbnRXaW5kb3cu
cGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0U3RhcnQsIDAsICd0aW1pbmcucmVkaXJlY3RTdGFy
dCA9PSAwIG9uIGFuIGNsaWVudCByZWRpcmVjdGVkIG5hdmlnYXRpb24nKTsKLSAgICAgICAgICAg
ICAgICB0ZXN0X2VxdWFscyhyZWRpcmVjdF9mcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZy5yZWRpcmVjdEVuZCwgMCwgJ3RpbWluZy5yZWRpcmVjdEVuZCA9PSAwIG9uIGFuIGNs
aWVudCByZWRpcmVjdGVkIG5hdmlnYXRpb24nKTsKLQotICAgICAgICAgICAgICAgIGRvbmUoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+Ci0KLSAgICA8L2hlYWQ+Ci0gICAgPGJv
ZHkgb25sb2FkPSJvbmxvYWRfdGVzdCgpOyI+Ci0gICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+
Ci0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgd2luZG93
Lm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBhbmQgdGhlCi0gICAgICAgICAgIHdpbmRvdy5wZXJm
b3JtYW5jZS50aW1pbmcucmVkaXJlY3RTdGFydC9FbmQgdGltZXMgb24gYSBjbGllbnQgc2lkZSBy
ZWRpcmVjdC48L3A+Ci0KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj48YnIgLz4KLSAgICAg
ICAgPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMv
YmxhbmtfcGFnZV9tZXRhX3JlZGlyZWN0Lmh0bSIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0
OiAyNTBweDsiPjwvaWZyYW1lPgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1p
bmcvaHRtbC90ZXN0X3RpbWluZ19yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3Rf
dGltaW5nX3JlbG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhmYWQ3MDQ5ZWM1NDIwNzMxYjQzNTc3Zjg1NDQzZDY5NWJlOTQzMzMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3Jl
bG9hZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1EZXNjcmlw
dGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS50
aW1pbmcgYXR0cmlidXRlcyBjaGFuZ2Ugd2hlbiBhIHBhZ2UgaXMgcmVsb2FkZWQuCi0KLVRoaXMg
cGFnZSBzaG91bGQgYmUgbG9hZGVkIHdpdGggYSBncmVlbiBiYWNrZ3JvdW5kIGZyYW1lIGJlbG93
LiBUaGUgZnJhbWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlbG9hZGVkIGFuZCB0aGVuIHZlcmlm
aWVkIHRoYXQgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgYXR0cmlidXRlcyBoYXZlIGJl
ZW4gdXBkYXRlZCB0byB0aGUgbmV3IHJlbG9hZGVkIG5hdmlnYXRpb24gdGltaW5ncy4KLQotCi0K
LQotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UgaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZv
cm1hbmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLm5h
dmlnYXRpb24udHlwZSA9PSBUWVBFX1JFTE9BRCAKLVBBU1MgY29ubmVjdEVuZCBpcyBkaWZmZXJl
bnQgYWZ0ZXIgdGhlIHJlbG9hZC4gCi1QQVNTIGNvbm5lY3RTdGFydCBpcyBkaWZmZXJlbnQgYWZ0
ZXIgdGhlIHJlbG9hZC4gCi1QQVNTIGRvbUNvbXBsZXRlIGlzIGRpZmZlcmVudCBhZnRlciB0aGUg
cmVsb2FkLiAKLVBBU1MgZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIGlzIGRpZmZlcmVudCBhZnRl
ciB0aGUgcmVsb2FkLiAKLVBBU1MgZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQgaXMgZGlmZmVy
ZW50IGFmdGVyIHRoZSByZWxvYWQuIAotUEFTUyBkb21JbnRlcmFjdGl2ZSBpcyBkaWZmZXJlbnQg
YWZ0ZXIgdGhlIHJlbG9hZC4gCi1QQVNTIGRvbUxvYWRpbmcgaXMgZGlmZmVyZW50IGFmdGVyIHRo
ZSByZWxvYWQuIAotUEFTUyBkb21haW5Mb29rdXBFbmQgaXMgZGlmZmVyZW50IGFmdGVyIHRoZSBy
ZWxvYWQuIAotUEFTUyBkb21haW5Mb29rdXBTdGFydCBpcyBkaWZmZXJlbnQgYWZ0ZXIgdGhlIHJl
bG9hZC4gCi1QQVNTIGZldGNoU3RhcnQgaXMgZGlmZmVyZW50IGFmdGVyIHRoZSByZWxvYWQuIAot
UEFTUyBsb2FkRXZlbnRFbmQgaXMgZGlmZmVyZW50IGFmdGVyIHRoZSByZWxvYWQuIAotUEFTUyBs
b2FkRXZlbnRTdGFydCBpcyBkaWZmZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4gCi1QQVNTIG5hdmln
YXRpb25TdGFydCBpcyBkaWZmZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4gCi1QQVNTIHJlcXVlc3RT
dGFydCBpcyBkaWZmZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4gCi1QQVNTIHJlc3BvbnNlRW5kIGlz
IGRpZmZlcmVudCBhZnRlciB0aGUgcmVsb2FkLiAKLVBBU1MgcmVzcG9uc2VTdGFydCBpcyBkaWZm
ZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3Rp
bWluZ19yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBw
cm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3RpbWluZ19yZWxvYWQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRlYzA5ODEzZWM0MDA4ZGRlYmE3YTA3NjNkOGQ4
ZDRhMGQ2ZmYwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24t
dGltaW5nL2h0bWwvdGVzdF90aW1pbmdfcmVsb2FkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjIgKzAsMCBAQAot77u/PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci0gICAgICAgIDx0aXRsZT53aW5kb3cucGVyZm9y
bWFuY2UudGltaW5nIGF0dHJpYnV0ZXMgYWZ0ZXIgYSByZWxvYWRlZCBuYXZpZ2F0aW9uPC90aXRs
ZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5hdmlnYXRpb24tdGltaW5n
LWludGVyZmFjZSIvPgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAg
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmNzcyIgLz4KLTxzY3JpcHQgaWQ9Im1ldGFkYXRhX2NhY2hlIj4vKgotewotICAid2luZG93
LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQiOiB7Ci0gICAgImhlbHAiOiAiaHR0cDovL3d3dy53My5v
cmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRl
IiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3Zp
ZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIs
Ci0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53My5vcmcvIgotICB9LAotICAid2luZG93
LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVscCI6ICJodHRw
Oi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5j
ZS1hdHRyaWJ1dGUiLAotICAgICJhc3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBhdHRy
aWJ1dGUgcHJvdmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQgYXR0
cmlidXRlcy4gIiwKLSAgICAiYXV0aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9yZy8iCi0gIH0s
Ci0gICJ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlID09IFRZUEVfUkVMT0FEIjog
eyAiaGVscCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLW5h
dmlnYXRpb24taW5mby1pbnRlcmZhY2UiIH0sCi0gICJjb25uZWN0RW5kIGlzIGRpZmZlcmVudCBh
ZnRlciB0aGUgcmVsb2FkLiI6IHt9LAotICAiY29ubmVjdFN0YXJ0IGlzIGRpZmZlcmVudCBhZnRl
ciB0aGUgcmVsb2FkLiI6IHt9LAotICAiZG9tQ29tcGxldGUgaXMgZGlmZmVyZW50IGFmdGVyIHRo
ZSByZWxvYWQuIjoge30sCi0gICJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQgaXMgZGlmZmVyZW50
IGFmdGVyIHRoZSByZWxvYWQuIjoge30sCi0gICJkb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCBp
cyBkaWZmZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4iOiB7fSwKLSAgImRvbUludGVyYWN0aXZlIGlz
IGRpZmZlcmVudCBhZnRlciB0aGUgcmVsb2FkLiI6IHt9LAotICAiZG9tTG9hZGluZyBpcyBkaWZm
ZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4iOiB7fSwKLSAgImRvbWFpbkxvb2t1cEVuZCBpcyBkaWZm
ZXJlbnQgYWZ0ZXIgdGhlIHJlbG9hZC4iOiB7fSwKLSAgImRvbWFpbkxvb2t1cFN0YXJ0IGlzIGRp
ZmZlcmVudCBhZnRlciB0aGUgcmVsb2FkLiI6IHt9LAotICAiZmV0Y2hTdGFydCBpcyBkaWZmZXJl
bnQgYWZ0ZXIgdGhlIHJlbG9hZC4iOiB7fSwKLSAgImxvYWRFdmVudEVuZCBpcyBkaWZmZXJlbnQg
YWZ0ZXIgdGhlIHJlbG9hZC4iOiB7fSwKLSAgImxvYWRFdmVudFN0YXJ0IGlzIGRpZmZlcmVudCBh
ZnRlciB0aGUgcmVsb2FkLiI6IHt9LAotICAibmF2aWdhdGlvblN0YXJ0IGlzIGRpZmZlcmVudCBh
ZnRlciB0aGUgcmVsb2FkLiI6IHt9LAotICAicmVxdWVzdFN0YXJ0IGlzIGRpZmZlcmVudCBhZnRl
ciB0aGUgcmVsb2FkLiI6IHt9LAotICAicmVzcG9uc2VFbmQgaXMgZGlmZmVyZW50IGFmdGVyIHRo
ZSByZWxvYWQuIjoge30sCi0gICJyZXNwb25zZVN0YXJ0IGlzIGRpZmZlcmVudCBhZnRlciB0aGUg
cmVsb2FkLiI6IHt9Ci19Ci0qLzwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAg
ICAgc2V0dXAoe2V4cGxpY2l0X2RvbmU6IHRydWV9KTsKLQotICAgICAgICAgICAgLy8gZXhwbGlj
aXRseSB0ZXN0IHRoZSBuYW1lc3BhY2UgYmVmb3JlIHdlIHN0YXJ0IHRlc3RpbmcKLSAgICAgICAg
ICAgIHRlc3RfbmFtZXNwYWNlKCduYXZpZ2F0aW9uJyk7Ci0KLSAgICAgICAgICAgIHZhciByZWxv
YWRfZnJhbWU7Ci0gICAgICAgICAgICB2YXIgaW5pdGlhbF90aW1pbmc7Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBy
ZWxvYWRfZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVDb250ZXh0Iik7Ci0K
LSAgICAgICAgICAgICAgICBpZiAocmVsb2FkX2ZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFu
Y2UgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIGF2b2lkIHNjcmlwdCBlcnJvcnMKLSAgICAgICAgICAgICAgICAgICAgZG9uZSgpOwotICAg
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgcmVsb2FkX2ZyYW1lLm9ubG9hZCA9IGRvX3Rlc3Q7Ci0KLSAgICAgICAgICAgICAgICAv
LyBzYXZlIGZyYW1lJ3MgaW5pdGlhbCB0aW1pbmdzCi0gICAgICAgICAgICAgICAgaW5pdGlhbF90
aW1pbmcgPSB7fTsKLSAgICAgICAgICAgICAgICB2YXIgdGltaW5nID0gcmVsb2FkX2ZyYW1lLmNv
bnRlbnRXaW5kb3cucGVyZm9ybWFuY2UudGltaW5nOwotCi0gICAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0aW1pbmdBdHRyaWJ1dGVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gdGltaW5nQXR0cmlidXRl
c1tpXTsKLSAgICAgICAgICAgICAgICAgICAgaW5pdGlhbF90aW1pbmdbcHJvcGVydHldID0gdGlt
aW5nW3Byb3BlcnR5XTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KCJyZWxvYWRfdGhlX2ZyYW1lKCk7IiwgMTAwKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gcmVsb2FkX3RoZV9mcmFtZSgpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmVsb2FkX2ZyYW1lLmNvbnRlbnRXaW5kb3cubG9jYXRpb24ucmVsb2FkKHRy
dWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkb190ZXN0KCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZWxvYWRfZnJhbWUub25sb2FkID0gIiI7Ci0K
LSAgICAgICAgICAgICAgICAvLyBlbnN1cmUgdGhlIGZyYW1lIHJlbG9hZGVkCi0gICAgICAgICAg
ICAgICAgdGVzdF9lcXVhbHMocmVsb2FkX2ZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2Uu
bmF2aWdhdGlvbi50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNl
TmFtZXNwYWNlLm5hdmlnYXRpb24uVFlQRV9SRUxPQUQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnR5cGUgPT0gVFlQRV9SRUxPQUQi
LCB7aGVscDoiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZp
Z2F0aW9uLWluZm8taW50ZXJmYWNlIn0pOwotCi0gICAgICAgICAgICAgICAgLy8gZW5zdXJlIHJl
bG9hZCB0aW1pbmdzIGNoYW5nZWQKLSAgICAgICAgICAgICAgICB2YXIgdGltaW5nID0gcmVsb2Fk
X2ZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2UudGltaW5nOwotICAgICAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGltaW5nQXR0cmlidXRlcy5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHRpbWluZ0F0
dHJpYnV0ZXNbaV07Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIGFueSB0aW1pbmdz
IHRoYXQgd2VyZSB6ZXJvIGluaXRpYWxseQotICAgICAgICAgICAgICAgICAgICBpZiAoaW5pdGlh
bF90aW1pbmdbcHJvcGVydHldICE9PSAwKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X25vdF9lcXVhbHModGltaW5nW3Byb3BlcnR5XSwgaW5pdGlh
bF90aW1pbmdbcHJvcGVydHldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9w
ZXJ0eSArICIgaXMgZGlmZmVyZW50IGFmdGVyIHRoZSByZWxvYWQuIik7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBkb25lKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBv
bmxvYWQ9Im9ubG9hZF90ZXN0KCk7Ij4KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAg
ICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSB3aW5kb3cucGVyZm9ybWFuY2Uu
dGltaW5nIGF0dHJpYnV0ZXMgY2hhbmdlIHdoZW4gYSBwYWdlIGlzIHJlbG9hZGVkLjwvcD4KLQot
ICAgICAgICA8cD5UaGlzIHBhZ2Ugc2hvdWxkIGJlIGxvYWRlZCB3aXRoIGEgZ3JlZW4gYmFja2dy
b3VuZCBmcmFtZSBiZWxvdy4gIFRoZSBmcmFtZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVsb2Fk
ZWQKLSAgICAgICAgYW5kIHRoZW4gdmVyaWZpZWQgdGhhdCB0aGUgd2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZyBhdHRyaWJ1dGVzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIHRoZSBuZXcgcmVsb2FkZWQg
bmF2aWdhdGlvbiB0aW1pbmdzLjwvcD4KLQotICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgot
ICAgICAgICA8YnIgLz4KLSAgICAgICAgPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBzcmM9Ii93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbi5odG0iIHN0eWxlPSJ3aWR0aDog
MjUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2lmcmFtZT4KLQotICAgIDwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQv
bmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3RpbWluZ19zZXJ2ZXJfcmVkaXJlY3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZp
Z2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3NlcnZlcl9yZWRpcmVjdC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzYmQxOWI3MjU5NDlhMDAxM2UxM2Uy
Yjc4YTE3MGM3MGVkN2E2YjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZp
Z2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3NlcnZlcl9yZWRpcmVjdC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRl
c3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS5yZWRpcmVj
dENvdW50IGFuZCB0aGUgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZWRpcmVjdFN0YXJ0L0Vu
ZCB0aW1lcyBmb3IgYSBzYW1lLW9yaWdpbiBzZXJ2ZXIgc2lkZSByZWRpcmVjdCBuYXZpZ2F0aW9u
LgotCi0KLQotCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIAotUEFTUyB3aW5k
b3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbiBpcyBkZWZpbmVkIAotUEFTUyB0aW1pbmcubmF2aWdh
dGlvbi50eXBlIGlzIFRZUEVfTkFWSUdBVEUgCi1QQVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3Vu
dCA9PSAxIG9uIGFuIHNlcnZlciByZWRpcmVjdGVkIG5hdmlnYXRpb24gCi1QQVNTIHdpbmRvdy5w
ZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0ID4gMCAKLVBBU1Mgd2luZG93LnBlcmZv
cm1hbmNlLnRpbWluZy5yZWRpcmVjdFN0YXJ0ID4gMCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZy5yZWRpcmVjdFN0YXJ0ID49IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdh
dGlvblN0YXJ0IAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0RW5kID4g
MCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZWRpcmVjdEVuZCA+PSB3aW5kb3cu
cGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0U3RhcnQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5j
ZS50aW1pbmcuZmV0Y2hTdGFydCA+IDAgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcu
ZmV0Y2hTdGFydCA+PSB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0RW5kIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25h
dmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfc2VydmVyX3JlZGlyZWN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGlt
aW5nL2h0bWwvdGVzdF90aW1pbmdfc2VydmVyX3JlZGlyZWN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDMyZDI2ZGE2YmQyOGUzYTRmNTM4ZDdhNGI4MzEyNGUzYTBlNjFkNDku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1s
L3Rlc3RfdGltaW5nX3NlcnZlcl9yZWRpcmVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcg
KzAsMCBAQAot77u/PCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci0gICAgICAgIDx0aXRsZT53aW5kb3cucGVyZm9ybWFu
Y2UudGltaW5nLnJlZGlyZWN0IGF0dHJpYnV0ZXMgb24gYSBzYW1lLW9yaWdpbiBzZXJ2ZXIgcmVk
aXJlY3RlZCBuYXZpZ2F0aW9uPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWlu
Zy8jc2VjLW5hdmlnYXRpb24tdGltaW5nLWludGVyZmFjZSIvPgotICAgICAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBmdW5j
dGlvbiBvbmxvYWRfdGVzdCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGVzdF9u
YW1lc3BhY2UoJ25hdmlnYXRpb24nKTsKLSAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2VO
YW1lc3BhY2UgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIGF2b2lkIHNjcmlwdCBlcnJvcnMKLSAgICAgICAgICAgICAgICAgICAgZG9uZSgp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgcGVyZm9ybWFuY2VOYW1lc3BhY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZnJhbWVDb250ZXh0IikuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZTsKLSAgICAgICAgICAg
ICAgICB0ZXN0X2VxdWFscyhwZXJmb3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLnR5cGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLlRZ
UEVfTkFWSUdBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAndGltaW5nLm5hdmlnYXRpb24u
dHlwZSBpcyBUWVBFX05BVklHQVRFJyk7Ci0gICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMocGVy
Zm9ybWFuY2VOYW1lc3BhY2UubmF2aWdhdGlvbi5yZWRpcmVjdENvdW50LCAxLCAnbmF2aWdhdGlv
bi5yZWRpcmVjdENvdW50ID09IDEgb24gYW4gc2VydmVyIHJlZGlyZWN0ZWQgbmF2aWdhdGlvbicp
OwotCi0gICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfZ3JlYXRlcl90aGFuKCduYXZpZ2F0aW9u
U3RhcnQnLCAwKTsKLQotICAgICAgICAgICAgICAgIHRlc3RfdGltaW5nX29yZGVyKCdyZWRpcmVj
dFN0YXJ0JywgJ25hdmlnYXRpb25TdGFydCcpOwotICAgICAgICAgICAgICAgIHRlc3RfdGltaW5n
X29yZGVyKCdyZWRpcmVjdEVuZCcsICdyZWRpcmVjdFN0YXJ0Jyk7Ci0gICAgICAgICAgICAgICAg
dGVzdF90aW1pbmdfb3JkZXIoJ2ZldGNoU3RhcnQnLCAncmVkaXJlY3RFbmQnKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+Ci0KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAg
ICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Ci0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhlIHZhbHVlcyBvZiB0aGUgd2luZG93LnBlcmZvcm1hbmNlLnJlZGlyZWN0Q291bnQgYW5kIHRo
ZQotICAgICAgICAgICB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0U3RhcnQvRW5k
IHRpbWVzIGZvciBhIHNhbWUtb3JpZ2luIHNlcnZlciBzaWRlIHJlZGlyZWN0IG5hdmlnYXRpb24u
PC9wPgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgICAgIDxiciAvPgotICAg
ICAgICA8aWZyYW1lIGlkPSJmcmFtZUNvbnRleHQiIG9ubG9hZD0ib25sb2FkX3Rlc3QoKTsiIHNy
Yz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/bG9jYXRpb249L3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuLmh0bSIgc3R5bGU9IndpZHRoOiAyNTBweDsg
aGVpZ2h0OiAyNTBweDsiPjwvaWZyYW1lPgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlv
bi10aW1pbmcvaHRtbC90ZXN0X3RpbWluZ194c2VydmVyX3JlZGlyZWN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10
aW1pbmcvaHRtbC90ZXN0X3RpbWluZ194c2VydmVyX3JlZGlyZWN0LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcwODIxNGM4MjJkMDQ1YzA0M2RjM2EwODRiMzg4
ZTExNTMyMmJmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24t
dGltaW5nL2h0bWwvdGVzdF90aW1pbmdfeHNlcnZlcl9yZWRpcmVjdC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFs
aWRhdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZS5yZWRpcmVjdENvdW50
IGFuZCB0aGUgd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy5yZWRpcmVjdFN0YXJ0L0VuZCB0aW1l
cyBmb3IgYSBjcm9zcy1vcmlnaW4gc2VydmVyIHNpZGUgcmVkaXJlY3QgbmF2aWdhdGlvbi4KLQot
Ci0KLQotRkFJTCBTdGFydGluZyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSBpcyBjb3JyZWN0
ICgxMjcuMC4wLjE6ODAwMCkgYXNzZXJ0X2VxdWFsczogU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRp
b24uaG9zdG5hbWUgaXMgY29ycmVjdCAoMTI3LjAuMC4xOjgwMDApIGV4cGVjdGVkICIxMjcuMC4w
LjE6ODAwMCIgYnV0IGdvdCAiMTI3LjAuMC4xIgotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UgaXMg
ZGVmaW5lZCAKLVBBU1Mgd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gaXMgZGVmaW5lZCAK
LVBBU1MgdGltaW5nLm5hdmlnYXRpb24udHlwZSBpcyBUWVBFX05BVklHQVRFIAotUEFTUyBuYXZp
Z2F0aW9uLnJlZGlyZWN0Q291bnQgPT0gMCBvbiBhIGNyb3NzLW9yaWdpbiBzZXJ2ZXIgcmVkaXJl
Y3RlZCBuYXZpZ2F0aW9uIAotUEFTUyB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRp
b25TdGFydCA+IDAgCi1QQVNTIHRpbWluZy5yZWRpcmVjdFN0YXJ0ID09IDAgb24gYSBzZXJ2ZXIg
cmVkaXJlY3RlZCBuYXZpZ2F0aW9uIGZyb20gYW5vdGhlciBkb21haW4gCi1QQVNTIHRpbWluZy5y
ZWRpcmVjdEVuZCA9PSAwIG9uIGEgc2VydmVyIHJlZGlyZWN0ZWQgbmF2aWdhdGlvbiBmcm9tIGFu
b3RoZXIgZG9tYWluIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93
ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfeHNlcnZl
cl9yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHBy
b3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3hzZXJ2ZXJfcmVkaXJlY3Qu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODcxZTA4OTY2NjEzZDE2NjM5ZGZl
MGE5ODk4MWFjMTg4ZGI5MGVmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25h
dmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF90aW1pbmdfeHNlcnZlcl9yZWRpcmVjdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAot77u/PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci0gICAgICAgIDx0
aXRsZT53aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLnJlZGlyZWN0IGF0dHJpYnV0ZXMgb24gYSBj
cm9zcy1vcmlnaW4gc2VydmVyIHJlZGlyZWN0ZWQgbmF2aWdhdGlvbjwvdGl0bGU+Ci0gICAgICAg
IDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1p
Y3Jvc29mdC5jb20vIiAvPgotCTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5v
cmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLXRpbWluZy1pbnRlcmZhY2Ui
Lz4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9Im1l
dGFkYXRhX2NhY2hlIj4vKgotewotICAiU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5h
bWUgaXMgY29ycmVjdCAoMTI3LjAuMC4xOjgwMDApIjoge30sCi0gICJ3aW5kb3cucGVyZm9ybWFu
Y2UgaXMgZGVmaW5lZCI6IHsKLSAgICAiaGVscCI6ICJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZp
Z2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUiLAotICAgICJh
c3NlcnQiOiAiVGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBob3N0
aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4gIiwKLSAgICAiYXV0
aG9yIjogIlczQyBodHRwOi8vd3d3LnczLm9yZy8iCi0gIH0sCi0gICJ3aW5kb3cucGVyZm9ybWFu
Y2UubmF2aWdhdGlvbiBpcyBkZWZpbmVkIjogewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMu
b3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0
ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2luZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92
aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAi
LAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIKLSAgfQotfQotKi88L3Nj
cmlwdD4KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHNldHVwKHtleHBsaWNpdF9kb25l
OiB0cnVlfSk7Ci0KLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24KLSAgICAgICAgICAgIC8vCi0KLSAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHBhZ2Un
cyBvcmlnaW4KLSAgICAgICAgICAgIHZhciBwYWdlT3JpZ2luID0gJzEyNy4wLjAuMTo4MDAwJzsK
LQotICAgICAgICAgICAgLy8gdGhlIG9yaWdpbiB0byByZWRpcmVjdCB0aHJvdWdoCi0gICAgICAg
ICAgICB2YXIgcmVkaXJlY3RPcmlnaW4gPSAnbG9jYWxob3N0OjgwMDAnOwotCi0gICAgICAgICAg
ICAvLwotICAgICAgICAgICAgLy8gVGVzdHMKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICBm
dW5jdGlvbiBvbmxvYWRfdGVzdCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGVz
dF9uYW1lc3BhY2UoJ25hdmlnYXRpb24nKTsKLSAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFu
Y2VOYW1lc3BhY2UgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIGF2b2lkIHNjcmlwdCBlcnJvcnMKLSAgICAgICAgICAgICAgICAgICAgZG9u
ZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgcGVyZm9ybWFuY2VOYW1lc3BhY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZnJhbWVDb250ZXh0IikuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZTsKLSAgICAgICAg
ICAgICAgICB0ZXN0X2VxdWFscyhwZXJmb3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9uLnR5cGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZU5hbWVzcGFjZS5uYXZpZ2F0aW9u
LlRZUEVfTkFWSUdBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAndGltaW5nLm5hdmlnYXRp
b24udHlwZSBpcyBUWVBFX05BVklHQVRFJyx7aGVscDoiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2
aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLWluZm8taW50ZXJmYWNlIn0pOwotICAgICAg
ICAgICAgICAgIHRlc3RfZXF1YWxzKHBlcmZvcm1hbmNlTmFtZXNwYWNlLm5hdmlnYXRpb24ucmVk
aXJlY3RDb3VudCwgMCwgJ25hdmlnYXRpb24ucmVkaXJlY3RDb3VudCA9PSAwIG9uIGEgY3Jvc3Mt
b3JpZ2luIHNlcnZlciByZWRpcmVjdGVkIG5hdmlnYXRpb24nLCB7aGVscDoiaHR0cDovL3d3dy53
My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy1uYXZpZ2F0aW9uLWluZm8taW50ZXJmYWNl
In0pOwotCi0gICAgICAgICAgICAgICAgdGVzdF90aW1pbmdfZ3JlYXRlcl90aGFuKCduYXZpZ2F0
aW9uU3RhcnQnLCAwKTsKLQotICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKHBlcmZvcm1hbmNl
TmFtZXNwYWNlLnRpbWluZy5yZWRpcmVjdFN0YXJ0LCAwLCAndGltaW5nLnJlZGlyZWN0U3RhcnQg
PT0gMCBvbiBhIHNlcnZlciByZWRpcmVjdGVkIG5hdmlnYXRpb24gZnJvbSBhbm90aGVyIGRvbWFp
bicpOwotICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKHBlcmZvcm1hbmNlTmFtZXNwYWNlLnRp
bWluZy5yZWRpcmVjdEVuZCwgMCwgJ3RpbWluZy5yZWRpcmVjdEVuZCA9PSAwIG9uIGEgc2VydmVy
IHJlZGlyZWN0ZWQgbmF2aWdhdGlvbiBmcm9tIGFub3RoZXIgZG9tYWluJyk7Ci0KLSAgICAgICAg
ICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0PgotCi0gICAg
PC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPgotICAgICAg
ICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHdpbmRvdy5wZXJmb3Jt
YW5jZS5yZWRpcmVjdENvdW50IGFuZCB0aGUKLSAgICAgICAgICAgd2luZG93LnBlcmZvcm1hbmNl
LnRpbWluZy5yZWRpcmVjdFN0YXJ0L0VuZCB0aW1lcyBmb3IgYSBjcm9zcy1vcmlnaW4gc2VydmVy
IHNpZGUgcmVkaXJlY3QgbmF2aWdhdGlvbi48L3A+Ci0KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48
L2Rpdj4KLSAgICAgICAgPGJyIC8+Ci0gICAgICAgIDxpZnJhbWUgaWQ9ImZyYW1lQ29udGV4dCIg
c3JjPSIiIHN0eWxlPSJ3aWR0aDogMjUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2lmcmFtZT4KLSAg
ICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIC8vIGVuc3VyZSB3ZSdyZSBzdGFydGluZyBhdCB0
aGUgcmlnaHQgb3JpZ2luCi0gICAgICAgICAgICB0ZXN0X2VxdWFscyhkb2N1bWVudC5sb2NhdGlv
bi5ob3N0bmFtZSwgcGFnZU9yaWdpbiwgJ1N0YXJ0aW5nIGRvY3VtZW50LmxvY2F0aW9uLmhvc3Ru
YW1lIGlzIGNvcnJlY3QgKCcgKyBwYWdlT3JpZ2luICsgJyknKTsKLQotICAgICAgICAgICAgLy8g
Y29tYmluZSB0aGUgcGFnZSBvcmlnaW4gYW5kIHJlZGlyZWN0IG9yaWdpbiBpbnRvIHRoZSBJRlJB
TUUncyBzcmMgVVJMCi0gICAgICAgICAgICB2YXIgZGVzdFVybCA9ICdodHRwOi8vJyArIHJlZGly
ZWN0T3JpZ2luICsgJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcmVkaXJlY3QucGhwJzsKLSAgICAg
ICAgICAgIGRlc3RVcmwgICAgKz0gJz9sb2NhdGlvbj1odHRwOi8vJyArIHBhZ2VPcmlnaW4gKyAn
L3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuLmh0bSc7Ci0KLSAgICAgICAg
ICAgIHZhciBmcmFtZUNvbnRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVDb250
ZXh0Iik7Ci0gICAgICAgICAgICBmcmFtZUNvbnRleHQub25sb2FkID0gb25sb2FkX3Rlc3Q7Ci0g
ICAgICAgICAgICBmcmFtZUNvbnRleHQuc3JjID0gZGVzdFVybDsKLSAgICAgICAgPC9zY3JpcHQ+
Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdW5pcXVl
X3BlcmZvcm1hbmNlX29iamVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdW5pcXVl
X3BlcmZvcm1hbmNlX29iamVjdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMTdhY2YwNTQxMjUyOGQ4MTkxNWRmNjMwMzcyMmI4M2MzNTEzNjEwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3Vu
aXF1ZV9wZXJmb3JtYW5jZV9vYmplY3RzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IGVhY2gg
d2luZG93IGhhcyBhIHVuaXF1ZSB3aW5kb3cucGVyZm9ybWFuY2Ugb2JqZWN0LgotCi0KLVBBU1Mg
d2luZG93LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQgCi1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZS50
aW1pbmcgaXMgZGVmaW5lZCAKLVBBU1MgRGlmZmVyZW50IHdpbmRvdyBvYmplY3RzIGhhdmUgdW5p
cXVlIHBlcmZvcm1hbmNlIG9iamVjdHMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3Vu
aXF1ZV9wZXJmb3JtYW5jZV9vYmplY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF91bmlxdWVfcGVy
Zm9ybWFuY2Vfb2JqZWN0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGZm
ODYwNGM4Njk1ODI2YWVkZDIyZDIwNGRjYmM1OTc3Y2ZiMzA3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3VuaXF1ZV9wZXJmb3Jt
YW5jZV9vYmplY3RzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi3vu788IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPkVhY2ggd2luZG93IG9iamVjdCBoYXMgYSB1bmlxdWUg
cGVyZm9ybWFuY2Ugb2JqZWN0PC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS8iIC8+Ci0JPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWlu
Zy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5jZS1hdHRyaWJ1dGUiIC8+Ci0JPG1ldGEgbmFtZT0iYXNz
ZXJ0IiBjb250ZW50PSJFYWNoIGJyb3dzaW5nIGNvbnRleHQgbXVzdCBoYXZlIGEgdW5pcXVlIHdp
bmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgYXR0cmlidXRlLiIvPgotICAgICAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KLTxzY3JpcHQgaWQ9Im1ldGFkYXRh
X2NhY2hlIj4vKgotewotICAid2luZG93LnBlcmZvcm1hbmNlIGlzIGRlZmluZWQiOiB7Ci0gICAg
ImhlbHAiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5k
b3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIiwKLSAgICAiYXNzZXJ0IjogIlRoZSB3aW5kb3cucGVy
Zm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEgaG9zdGluZyBhcmVhIGZvciBwZXJmb3JtYW5j
ZSByZWxhdGVkIGF0dHJpYnV0ZXMuICIsCi0gICAgImF1dGhvciI6ICJXM0MgaHR0cDovL3d3dy53
My5vcmcvIgotICB9LAotICAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyBpcyBkZWZpbmVkIjog
ewotICAgICJoZWxwIjogImh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNz
ZWMtd2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsCi0gICAgImFzc2VydCI6ICJUaGUgd2lu
ZG93LnBlcmZvcm1hbmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVy
Zm9ybWFuY2UgcmVsYXRlZCBhdHRyaWJ1dGVzLiAiLAotICAgICJhdXRob3IiOiAiVzNDIGh0dHA6
Ly93d3cudzMub3JnLyIKLSAgfSwKLSAgIkRpZmZlcmVudCB3aW5kb3cgb2JqZWN0cyBoYXZlIHVu
aXF1ZSBwZXJmb3JtYW5jZSBvYmplY3RzIjoge30KLX0KLSovPC9zY3JpcHQ+Ci0gICAgPC9oZWFk
PgotICAgIDxib2R5PgotICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPgotICAgICAgICA8cD5U
aGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgZWFjaCB3aW5kb3cgaGFzIGEgdW5pcXVlIHdpbmRvdy5w
ZXJmb3JtYW5jZSBvYmplY3QuPC9wPgotICAgICAgICA8aWZyYW1lIGlkPSJmcmFtZUNvbnRleHQi
IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuLmh0bSIgc3R5bGU9
ImRpc3BsYXk6bm9uZTsiOz48L2lmcmFtZT4KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
LSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHRlc3RfbmFtZXNwYWNlKCd0aW1pbmcnKTsK
LQotICAgICAgICAgICAgaWYgKHBlcmZvcm1hbmNlTmFtZXNwYWNlICE9PSB1bmRlZmluZWQpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGVzdF9ub3RfZXF1YWxzKHBlcmZvcm1hbmNl
TmFtZXNwYWNlLnRpbWluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4dCIpLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFu
Y2UudGltaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlmZmVyZW50IHdp
bmRvdyBvYmplY3RzIGhhdmUgdW5pcXVlIHBlcmZvcm1hbmNlIG9iamVjdHMiKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvQWhlbS50dGYg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9BaGVtLnR0Zgpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM4MWNiMDMxNjVhYjgzMWEzNmFiYjU5MTQ1
ZmY3YTJmNTY3NWZiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMjQ4MAp6Y21l
SE5aRm0mYjZAS1NxWEZxYD9WI0o4X1d7WigzMjc7QyVyTn5GNU5EK31CcU5VMHZKSU15S3lLIzQ4
ZiZ4V3IKeilrZ1UhVDgmQzZCNyVZPDNSKG44NWZLNFZzaXRUVm1vIT5VWkImWTJlR3BqUkozQTIr
K2RxQiRWTFArVz8ze2I8Cnp5PVR0Nz1iZH1jP3p+VXtfJVJiMmBkKDdqcihlVV5RTF9NTDBKVzFW
cU1fT0B5WWZjPnR7VDhkUkUzaFlJMGFzeQp6P0BIRl5STWt3YXlsN1F3SHgwQV4xPnVNcDNoIURw
cmFTQV9eWHdtPyF0Sy1aREllaDNHWklaVEpSPmxqX0x+NSQKenhoN3JfNV9NKz1mdWQ2QytNfVV7
VDZgKylFOFc7JCM2blNYTSVPI20wS05NMXsqbF52R0JzPUc+NVZgIWA+V2pgCnplT0U5bkAwM2Zj
dUlAN0VBaVA9fEhDUHFEYFUtajdjK1Q+UmZYbzFgTyVwNj9QXkZkIWApTUxHZlp0WW9lb0lUbwp6
OXx0WVhMM3Ijd1UjO2l1d0tpb2dUb2wlO15heWpaU0xKIzFRIzVMIWF+JCVSMnxTKHlHMTRtVj4r
KkFsMTRBSjgKenNrUlJTVExxTmRBKnxEYzwqQmVkPDIrP09sd0xaZ0dZMVheelRGcyprOH0zYU44
MmstY1dTdHtzNntZVHBNMmd+CnpgMDg0dGE1MmRxOWFwPH0hWD97TmdVKXJ5ZlNhcUFUIVZhRS12
ajdgJmdnPDE8UlQ5enAoez5DS0cqVllJMjhwcgp6NGMmMSVkZis8e0NgMXQ3TU5nYzhCQWtne18j
ViF9KzMxYVBQPmVxNGl4VHcxeGl9QnNNfVBiUDE4X2JEOylmVzcKekE3TDtxO0pQKnghIVI3QnhE
WEBvVn5vVF83PUBvO0clbSYlVCFPSzw2eXMyYUB3Zn5WYTUqTzgzUzVid1ZpSkNhCnp0OGdfWSk4
NyF2UUdxWl9SSDZ6SVJBVU9SS0BGbWFBJnkjSGl2KkhMcCReeGY5dTFnXj52MDM3YWJLQiVwTDRs
PQp6NkYxQH1gfm8tUUUmTEw8Ozh4cyp4QTd9OTsoZ3FYSko1eiVfeV5pQzgqfWd1LW9AWTBqSzU8
cGV2UXtLNHxuMSYKenswNFg5Sl5UcUQ7OG9tJUNacmpxYCoxKHo8N0s+cEtWdWkoeitkb05FV3Ej
WkFyQGpNVEpab3tASy1BJGQkMCh2CnpWPmtCVktgaDJZU2MwV143Pns1WG1nNy04I3heVlBJOUIy
YkpjKDZVamk+TjVldmRWSDI1WWc3SkV1LUdmVWBBKAp6UVM4aHAlc0BzZFFPY0FDV3VFJGl4PW5w
Y3lHd2dTVGQhPnRJaWptNTVJc2F0NnA2bEtwZVFYMjc4Vjg3cGJfajYKeiVuS0YtZGohdThqdG91
P24hKXtOWX5RRDVHUEVsZyh9bEQqJmEkX0tfVEQoby1idGRIPXFgazFAQkE7PiVNRzZUCnpnfXR6
NDUxQ0JuP015M28qYyZzYEc3fmN3MDd1JCs0bkFfJDtuJDlJLUo1Q0kxaGxNZ1M9WHxyPD8pdUtF
ZXJOTwp6eVo1bmxZa0VnfG16PH5jX1ZrQUlMK1FyIXQjNXR5WDN3MERZfX04TWJAR3M0bWdqTkQo
Y3xSZiNkYiNGI04lR1oKelFSM2hNTSowcyNMbkNvOG0rYHpDbn45MDFoPn1AJjBiN1pUSW1GMiMm
aUB1LXBiNld0NEtFU31fYzMtNEdVXmhLCnp3LWI+fGlPSSFgPTVqbGw4O0g7cVJ6Jjkkc21+S3hQ
Z3JyUyFiV1QmP3k4QzFEYTdxSE1EOUZkeDBkTFkqaTh8PQp6NjEjc1NkWiFZPCpBdSVwNUpgNzMo
JGcmakthMXl4cyNVfjc3OCZiXmxDPjd6VU1GNVIpN1NTTGx3PD8kcHlXVEkKekw/KXVsQmVpUVoh
OE9iY29TUiNpZHEhYnk7ZEolR0JYZzdrTSsySFQrJWxhajRreXlpbCh8US1RSzhtJHhFbXtGCnpD
aHBZOVVsN2lgSUdBdnIyV0tzQykmZ2dMYVE0UDtJNEB3PCFUcStSQE1MU3grM01zVio/JSRyWExB
c1NgXjBzJQp6I21QT0xvWlFLfm8hP140P0A7R0FffUE8WS0qNjcle057SzUyWGcpY2I4O3t6Mlhr
XlRDa0p6S0ZlZUI1SCNyIXsKekMmKyQrV0MjckEreHsjMD8oO2duYkRoV2NtQER7KFlDR1NVemwj
SGtzXmxtPWwtfGxmV3UhN2UyYGRSQHJaUVdaCnp1UGpzNkN8aV9mckImSWQ5OTA4cWYhYSYkdWE+
SWcpWDhkMG91KVJiUDNqVkx3WW97JnNpeEktXl5vUyNeMGw1Pwp6S1cmSU1Nd19IZihIZ1d7XyNT
KGF3bz09bT9hKzQ5KEAlNj0mKG5vb3RQaiNoPUBhI15wM3JDTnYtU0Q8R0pURHsKek1RXyR5Xj9t
d0xTSE0tXj5nRFMxRHNfIT5PP0pneChfRD9OQ2Y1P3pZUyQqJFBGTEYxP21BPzZqQ2BZfihhI3VT
CnpqND50fFE7WWBWN1VNMnNrK0lVKVZDKm48OCpSb1hacno+ZDdWY3ZBQW9uUXVNMGNlLTwtVzsx
KlMpfn5zQyV0QAp6dDl6SUc5cnUwQEplQHQ9SiFnM2FASDRfUS1jIzxXXn5+X3g7a25RQXU7KiNk
WDN3amg3U0QmQyEoTn1hbzQzZSYKem9fQ21jdG9KSCFqclYlKlpRaUBSaUBpXkpIK288OD8oeDN3
e25UZ3B5ODQyP3pQYGJ9KFlgQnY1I00jYm58PD9xCnozdzxrbT53VmpPWn17SHo5cV9DRTlEZmdn
Wn5zOTVOZEUrWCpxYHZ2XncwTHNfYj5DV0BvKGByYCY8M3t7Nl88VQp6S3RaNWFwbnNxPUZmSzRU
NURRRVRHek9YaU85SEN7bip1dW49fEZxblAkeTVQezd5WVBePHlAMG5zViROe1F7UD0KemhYUmsl
UUJ1KWFTel94bzJ4WVlgPnVsMyglUCE8QWR1LVhEZSFxT1d0bTc1c2tTIX5HJWV+RShSaytvY1kq
fEImCnorSEFgQCtxYDRURjhJfEJFfXVkRCRGQEYpXjFwMDNtdiVuMDx2aSRgJURxaklUcz51aFg0
bz52cUEjeyhqenhkZQp6bU5eIUV0dTFwYmBmZ2sxU29Cc349Mi1Na1o4LS1YbTs0YDcrUnNJMm0m
Y2Ejc0x2LU9DVHtVcTFpMXdmdko0VkQKekU2NUhvRXE7cnpHJHNUITUkWGliRDhHfkI1WSpYcXkp
QTc2ZHpvWXhxKnk4PD9gOX49YihTNHpCU3pNT0FnOEM2CnpyKSp6T1l0X35yckw3MmtzSFprV1N6
M3YpVW11SG1iRjNgTFpiLTE1eW5CWik8eUhAcT8xcE9nRzA2PVFXYmBCewp6UnIyMDdFTEV+YyFz
PW1DcFIoRmp2MFB6VWwzYSkrYnk2UnYxP2tJRnREUEtXKHl9KyF4QCh5QnEtU3l6PCFtRiEKejln
NEZnJU9tSlRnc3IzcEA/T1g4blZxcldXRXohR1UmZU0oK0wxRntPOyVIcXhebH5VSj5fZylJcSUy
KEVhb2dxCno4JlJeQU90TyZWbX1HPHxTZ29iIVMrN2d6WCRoQCR3Qz1jbWVMSzdNVik5cjtNSUA5
NlJpdztCUWlLd3dOSlVJeAp6TW4mQDRJK2w3MXYhVE1RT15Lb2xoZ1FfM09jOUVPTVgpeTVUaHZG
WUQ8VUVwaVB3dXp2Y2ltfGBoLXBFRGs+QjQKenNBWikqbHIoRnFWYGowcUVOTkVPKXJpVj9MWnIt
T3N5YkZCRCZrU0hYc2M3ekB0ODxYT3tVQ2Z2Ukk1dyNLVXpKCnpXPn1PQDczMVVLdW93fUZCd31W
RittbnRCRkRueWVwPWV6cVJERVZybHFjZiNOIUhwbmktJChjPXMyXmd0fHBZMgp6en5NO0tDQi1F
fHNeeGl7dTB2KEZtUE98Jl88d3kwekliTjd7RGdIcEwyN24wJGxTb3A7c2hjWEgzejl3JCFfXkYK
eit3dDRQYm9fNjVqeUdCeU42QiEhalUyV3thQDF5Iz1fWXhNY2FyMEZrSHJeVE5jUCh6aS0jIXJo
bXc2THhyYlIrCnoqOz15VnAwZ05tK25BcmRoI2gjejt5M09qXllKeHVBfD1vOWImS2hebzFEciRX
SypXZVhfUEYtSHU1Rmt3PlhwXgp6a2FfbkpfVGl0e2tCYGFuS1pzQVB4Smg+N0kmJFM2Q2E+KiZp
fDRyNlZtZHhnTSYyZn1AME9FbXd9QXx9Xjw+UjgKemshZzE/eHB3byZ1YmdBQ0ZQRDt3X2JPUiom
eXE+NkQhTS1BdmVCY31rPmo8fTNyRXdzWDBoXmZwcGVnfmVHVSFICkJjQGg4cwoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2FsbF9yZXNv
dXJjZV90eXBlcy5odG0gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291
cmNlcy9hbGxfcmVzb3VyY2VfdHlwZXMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwN2UzY2NlYzA4NWMwODAzNjM3Nzg0ODc4OTY2ZjVjNDJlZDY4N2UxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL2FsbF9yZXNvdXJjZV90eXBlcy5odG0KKysrIC9kZXYvbnVs
bApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICAgIDxoZWFkPgot
ICAgICAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgLz4KLSAgICAgICAgPHRpdGxlPkFsbCBSZXNvdXJjZSBUeXBlcyBU
ZXN0IFBhZ2U8L3RpdGxlPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBiYWNrZ3JvdW5kPSdnZW5l
cmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD1ib2R5Jz4KLSAgICAgICAgPHNjcmlwdD4K
LSAgICAgICAgICAgIGlmICh3aW5kb3cucGFyZW50Lmhhc093blByb3BlcnR5KCdvbl90ZXN0X2Jv
ZHlfY3JlYXRlZCcpKQotICAgICAgICAgICAgICAgIHdpbmRvdy5wYXJlbnQub25fdGVzdF9ib2R5
X2NyZWF0ZWQoKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0ibmVzdGVkLmNzcyI+PC9saW5rPgotICAgICAgICA8aW1nIHNyYz0iYmxhbmtf
aW1hZ2UucG5nIj48L2ltZz4KLSAgICAgICAgPGlmcmFtZSBzcmM9ImJsYW5rX3BhZ2VfZ3JlZW4u
aHRtIiB3aWR0aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiPjwvaWZyYW1lPgotICAgICAgICA8c2Ny
aXB0IHNyYz0iZW1wdHlfc2NyaXB0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdD4KLSAg
ICAgICAgICAgIHZhciBhc3luY194aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAgICAgICAg
ICBhc3luY194aHIub3BlbigiR0VUIiwgImdlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdl
JmlkPWFzeW5jX3hociIsIHRydWUpOwotICAgICAgICAgICAgYXN5bmNfeGhyLm9ucmVhZHlzdGF0
ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGlmIChhc3luY194aHIucmVh
ZHlTdGF0ZSA9PSA0ICYmIGFzeW5jX3hoci5zdGF0dXMgPT0gMjAwICYmIHBhcmVudC5oYXNPd25Q
cm9wZXJ0eSgnb25fYXN5bmNfeGhyX2RvbmUnKSkKLSAgICAgICAgICAgICAgICAgICAgcGFyZW50
Lm9uX2FzeW5jX3hocl9kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhc3luY194
aHIuc2VuZCgpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAg
ICAgQGZvbnQtZmFjZSB7Ci0gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHJlbW90ZUZvbnRB
aGVtOwotICAgICAgICAgICAgICAgIHNyYzogdXJsKCdBaGVtLnR0ZicpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWZyYW1lIHsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwo
J2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdlJmlkPTEnKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHVsIHsKLSAgICAgICAgICAgICAgICBmb250LWZhbWlseTogcmVtb3RlRm9u
dEFoZW07Ci0gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCdnZW5lcmF0ZV9y
ZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD0yJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwv
c3R5bGU+Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICAgIDxsaT5UZXN0PC9saT4KLSAgICAgICAg
PC91bD4KLSAgICAgICAgPG9sPgotICAgICAgICAgICAgPGxpPlRlc3Q8L2xpPgotICAgICAgICA8
L29sPgotICAgICAgICA8ZW1iZWQgc3JjPSJnZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1jc3Mm
aWQ9ZW1iZWQiIHR5cGU9InRleHQvY3NzIj48L2VtYmVkPgotICAgICAgICA8aW5wdXQgdHlwZT0i
aW1hZ2UiIHNyYz0iZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UmaWQ9aW5wdXQiPjwv
aW5wdXQ+Ci0gICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvcG5nIiBkYXRhPSJnZW5lcmF0ZV9y
ZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD1vYmplY3QiPjwvb2JqZWN0PgotICAgICAgICA8dmlk
ZW8gcG9zdGVyPSJnZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD1wb3N0ZXIiPjwv
dmlkZW8+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfaW1hZ2UucG5nIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfaW1hZ2UucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Y3YTZjYTA1YmZmYzkzMDVjOGRlYmNiYzI5ZWYw
ZDFhNWM3Yjc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEwMwp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHZwXmozQ1V4MVNCVnYyajJzNmlpNnlwN31sTVdjP3NsajdJO0ohR2NhJXEK
dWdEQGsqdFRfQHVLXnsqUiN9Sk98JHZeKTh3YFhBZSRNbztjbmFKbHJhUnlJVUtiTGgqMn43WVNo
OGNfaQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW4uaHRtIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbi5odG0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGI4YTE5NDdiNzdlMjVhYzZiMGQxMDBjNzU5MzJlOGMwYTY3ZDg0NmYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbi5odG0KKysr
IC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICAg
IDxoZWFkPgotICAgICAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KLSAgICAgICAgPHRpdGxlPkdyZWVuIFRlc3Qg
UGFnZTwvdGl0bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiMwMEZGMDA7Ij4KLSAgICAgICAgPGgxPlBsYWNlaG9sZGVyPC9oMT4KLSAgICA8L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuX3dpdGhfYWxsb3dfdGltaW5nLnBocCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5f
d2l0aF9hbGxvd190aW1pbmcucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjQ5
ODY4OTY4YjU2OGQ3OTYwYTA5MjQ3ODRkNjIyOTJmOWYxODhjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxvd190aW1pbmcucGhwCisr
KyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+DQotPGh0bWw+DQot
ICAgIDxoZWFkPg0KLSAgICAgICAgPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0
Zi04IiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIC8+DQotICAgICAgICA8dGl0bGU+R3JlZW4g
VGVzdCBQYWdlPC90aXRsZT4NCi0gICAgICAgIDw/cGhwDQotICAgICAgICAgICRvcmlnaW4gPSAk
X0dFVFsib3JpZ2luIl0gPyAkX0dFVFsib3JpZ2luIl0gOiAiIjsNCi0gICAgICAgICAgaGVhZGVy
KCJ0aW1pbmctYWxsb3ctb3JpZ2luOiAkb3JpZ2luIik7DQotICAgICAgICA/Pg0KLSAgICA8L2hl
YWQ+DQotICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMwMEZGMDA7Ij4NCi0gICAg
ICAgIDxoMT5QbGFjZWhvbGRlcjwvaDE+DQotICAgIDwvYm9keT4NCi08L2h0bWw+DQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtf
cGFnZV9ncmVlbl93aXRoX29udW5sb2FkLmh0bSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9vbnVubG9hZC5odG0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmNDAxNzQ3YjAxZTRiMDk0ZWI1MGQ3ZDI4Zjll
ZjVmZGNkZmI2MDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFn
ZV9ncmVlbl93aXRoX29udW5sb2FkLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiAv
PgotICAgICAgICA8dGl0bGU+R3JlZW4gVGVzdCBQYWdlPC90aXRsZT4KLSAgICA8L2hlYWQ+Ci0g
ICAgPCEtLSB1c2Ugb251bmxvYWQgdG8gZW5zdXJlIHRoaXMgZG9lcyBub3QgdHJpZ2dlciBiZmNh
Y2hlIC0tPgotICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMwMEZGMDA7IiBvbnVu
bG9hZD0iMTsiPgotICAgICAgICA8aDE+UGxhY2Vob2xkZXI8L2gxPgotICAgIDwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL2JsYW5rX3BhZ2VfbWV0YV9yZWRpcmVjdC5odG0gYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX21ldGFfcmVkaXJlY3QuaHRtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjY1ZWU0MTI5OTVkYjg3OGFhMDY3Nzc4MTcw
NDkwZTM0ZDMyMTk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3Bh
Z2VfbWV0YV9yZWRpcmVjdC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi3vu788
IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4K
LSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMTtVUkw9J2JsYW5r
X3BhZ2VfZ3JlZW4uaHRtJyIgLz4KLSAgICAgICAgPHRpdGxlPlJlZGlyZWN0IFBsYWNlaG9sZGVy
PC90aXRsZT4gICAgICAgIAotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjojRkZGRjAwIjs+Ci0gICAgICAgIDxoMT5QbGFjZWhvbGRlcjwvaDE+Ci0gICAgPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfdW5s
b2FkLmh0bSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2Js
YW5rX3BhZ2VfdW5sb2FkLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg2MWE5
MDNkMjkwZjFlOTFlMDRjY2U5NTg3Njg5YjExNmRjMjkzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX3VubG9hZC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwy
NSArMCwwIEBACi3vu788IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAg
ICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgLz4KLSAgICAgICAgCi0gICAgICAgIDx0aXRsZT5ZZWxsb3cgVGVzdCBQYWdl
PC90aXRsZT4KLSAgICAgICAgCi0gICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLSAgICAgICAgICAgIGZ1bmN0aW9uIG9uYmVmb3JldW5sb2FkX2hhbmRsZXIoKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHZhciB0ZW1wID0gIm9uYmVmb3JldW5sb2FkIjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgZnVuY3Rpb24gb251bmxvYWRf
aGFuZGxlcigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHRlbXAgPSAib251
bmxvYWQiOwotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0g
ICAgPGJvZHkgb25iZWZvcmV1bmxvYWQ9Im9uYmVmb3JldW5sb2FkX2hhbmRsZXIoKTsiCi0gICAg
ICAgICAgb251bmxvYWQ9Im9udW5sb2FkX2hhbmRsZXIoKTsiIAotICAgICAgICAgIHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiNGRkZGMDA7Ij4KLSAgICAgICAgPGgxPlVubG9hZDwvaDE+Ci0gICAg
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2Vf
eWVsbG93Lmh0bSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2JsYW5rX3BhZ2VfeWVsbG93Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGU1
ZTFhMDAwYzlhNjdiN2RiYzU5MWRkN2QwYWJjNWYyNzlmMzYzYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX3llbGxvdy5odG0KKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAg
ICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgLz4KLSAgICAgICAgPHRpdGxlPlllbGxvdyBUZXN0IFBhZ2U8L3RpdGxlPgot
ICAgIDwvaGVhZD4KLSAgICA8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojRkZGRjAwOyI+
Ci0gICAgICAgIDxoMT5QbGFjZWhvbGRlcjwvaDE+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfeWVsbG93X3dpdGhfb251bmxvYWQu
aHRtIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtf
cGFnZV95ZWxsb3dfd2l0aF9vbnVubG9hZC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc3MWUwNzAxZDljZjk1ODRmMjcxMjM4YzFjZGRmNjIyODA5NDZmMjYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV95ZWxsb3dfd2l0aF9vbnVubG9hZC5o
dG0KKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1s
PgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
dXRmLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KLSAgICAgICAgPHRpdGxlPlllbGxv
dyBUZXN0IFBhZ2U8L3RpdGxlPgotICAgIDwvaGVhZD4KLSAgICA8IS0tIHVzZSBvbnVubG9hZCB0
byBlbnN1cmUgdGhpcyBkb2VzIG5vdCB0cmlnZ2VyIGJmY2FjaGUgLS0+Ci0gICAgPGJvZHkgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6I0ZGRkYwMDsiIG9udW5sb2FkPSIxOyI+Ci0gICAgICAgIDxo
MT5QbGFjZWhvbGRlcjwvaDE+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2VtcHR5X3NjcmlwdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvcmVzb3VyY2VzL2VtcHR5X3NjcmlwdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDkyYmMyYjA0MTI2MTAwODc4NTMwODg4ZTZiMWIzMDYwMmRjZTIxMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9lbXB0eV9zY3JpcHQuanMKKysrIC9kZXYvbnVs
bApAQCAtMSArMCwwIEBACi07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHAgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjZDIzZTQ4NjcxNDIyNGViMDJlMjNiZDgxMTE2
MjJhNmVhZjk0OTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVf
cmVzb3VyY2UucGhwCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPD9waHAKLSAgaWYg
KGlzc2V0KCRfU0VSVkVSWydIVFRQX0lGX05PTkVfTUFUQ0gnXSkpIHsKLSAgICBoZWFkZXIoJ0hU
VFAvMS4xIDMwNCBOb3QgTW9kaWZpZWQnKTsKLSAgICBleGl0OwotICB9Ci0KLSAgJHR5cGUgPSAk
X0dFVFsidHlwZSJdOwotCi0gICRyZXNwb25zZV9jb2RlID0gMjAwOwotICAkYm9keSA9ICIiOwot
ICAkY29udGVudF90eXBlID0gInRleHQvcGxhaW4iOwotCi0gIHN3aXRjaCAoJHR5cGUpIHsKLSAg
Y2FzZSAiYXVkaW8iOgotICAgICAgJGJvZHkgPSBmaWxlX2dldF9jb250ZW50cygic2lsZW5jZS53
YXYiKTsKLSAgICAgICRjb250ZW50X3R5cGUgPSAiYXVkaW8vd2F2IjsKLSAgICAgIGJyZWFrOwot
Ci0gIGNhc2UgImNzcyI6Ci0gICAgICAkYm9keSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCJncmF5X2Jn
LmNzcyIpOwotICAgICAgJGNvbnRlbnRfdHlwZSA9ICJ0ZXh0L2NzcyI7Ci0gICAgICBicmVhazsK
LQotICBjYXNlICJmb250IjoKLSAgICAgICRib2R5ID0gZmlsZV9nZXRfY29udGVudHMoIkFoZW0u
dHRmIik7Ci0gICAgICAkY29udGVudF90eXBlID0gImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7
Ci0gICAgICBicmVhazsKLQotICBjYXNlICJpZnJhbWUiOgotICAgICAgJGJvZHkgPSBmaWxlX2dl
dF9jb250ZW50cygiYmxhbmtfcGFnZV9ncmVlbi5odG0iKTsKLSAgICAgICRjb250ZW50X3R5cGUg
PSAidGV4dC9odG1sIjsKLSAgICAgIGJyZWFrOwotCi0gIGNhc2UgImltYWdlIjoKLSAgICAgICRi
b2R5ID0gZmlsZV9nZXRfY29udGVudHMoImJsYW5rX2ltYWdlLnBuZyIpOwotICAgICAgJGNvbnRl
bnRfdHlwZSA9ICJpbWFnZS9wbmciOwotICAgICAgYnJlYWs7Ci0KLSAgY2FzZSAic2NyaXB0IjoK
LSAgICAgICRib2R5ID0gZmlsZV9nZXRfY29udGVudHMoImVtcHR5X3NjcmlwdC5qcyIpOwotICAg
ICAgJGNvbnRlbnRfdHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgICAgYnJlYWs7Ci0KLSAg
ZGVmYXVsdDoKLSAgICAgICRyZXNwb25zZV9jb2RlID0gNDA0OwotICAgICAgYnJlYWs7Ci0gIH0K
LQotICBoZWFkZXIoIkhUVFAvMS4xICRyZXNwb25zZV9jb2RlIik7Ci0gIGhlYWRlcigiQ29udGVu
dC10eXBlOiAkY29udGVudF90eXBlIik7Ci0gIGhlYWRlcigiRXRhZzogNyIpOwotICBwcmludCgk
Ym9keSk7Ci0gIGV4aXQ7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ3JheV9iZy5jc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3Jlc291cmNlcy9ncmF5X2JnLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzcwNTE0NWZiODc3MzU1OGE3OTUyZGMxNGYxOGZkYjQxZTRiODIzMi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ncmF5X2JnLmNzcworKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiYmJiOyB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ncmVlbl9m
cmFtZS5odG0gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9n
cmVlbl9mcmFtZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5MWY0NGFiZjMy
OTEwMGU1YTdhM2NhY2Y4NzI5YzIwY2ZjMzcxYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvZ3JlZW5fZnJhbWUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08
aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPGZyYW1lc2V0PgotICAgICAgPGZyYW1lIHNyYz0iYmxhbmtf
cGFnZV9ncmVlbi5odG0iPgotICAgIDwvZnJhbWVzZXQ+Ci0gIDwvaGVhZD4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2lu
amVjdF9yZXNvdXJjZV90ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9pbmplY3RfcmVzb3VyY2VfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxZjEwMDYxY2VjODgxMTE3N2VmZTU5OGViN2Y1ODMxMzg0YWUxNjM4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2luamVjdF9yZXNvdXJjZV90ZXN0Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzY3JpcHQ+Ci13aW5kb3cucGFyZW50
LnNldHVwX2lmcmFtZSgpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9uZXN0ZWQuY3NzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvbmVzdGVkLmNzcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYmY1MDY1Zjg2ZWFjYWFjNDBlNGVlMjBkNWFhMGYzZmE3OGMyMzM3My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9uZXN0ZWQuY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotQGltcG9ydCAiZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9
Y3NzJmlkPW4xIjsKLQotQGZvbnQtZmFjZSB7Ci0gICAgZm9udC1mYW1pbHk6IHJlbW90ZUZvbnQ7
Ci0gICAgc3JjOiB1cmwoJ2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWZvbnQmaWQ9bjEnKTsK
LX0KLW9sIHsKLSAgICBmb250LWZhbWlseTogcmVtb3RlRm9udDsKLSAgICBsaXN0LXN0eWxlLWlt
YWdlOiB1cmwoJ2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdlJmlkPW4xJyk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9w
YWdldmlzdGVzdGhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3Jlc291cmNlcy9wYWdldmlzdGVzdGhhcm5lc3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVhYjBkMDc5YzhjZTdhM2RkMjA3ZWI1NDJiZTBhMjY4NDZiZDQ0NDAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcGFnZXZpc3Rlc3RoYXJuZXNzLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLS8qCi1EaXN0cmlidXRlZCB1bmRlciBib3RoIHRoZSBX
M0MgVGVzdCBTdWl0ZSBMaWNlbnNlIFsxXSBhbmQgdGhlIFczQwotMy1jbGF1c2UgQlNEIExpY2Vu
c2UgWzJdLiBUbyBjb250cmlidXRlIHRvIGEgVzNDIFRlc3QgU3VpdGUsIHNlZSB0aGUKLXBvbGlj
aWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDA4LzA0LXRlc3RzdWl0ZS1saWNlbnNlCi1bMl0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlCi1bM10gaHR0cDov
L3d3dy53My5vcmcvMjAwNC8xMC8yNy10ZXN0Y2FzZXMKLSovCi0KLS8vCi0vLyBIZWxwZXIgRnVu
Y3Rpb25zIGZvciBQYWdlVmlzaWJpbGl0eSBXM0MgdGVzdHMKLS8vCi12YXIgVklTSUJJTElUWV9T
VEFURVMgPQotewotICAgIEhJRERFTjogImhpZGRlbiIsCi0gICAgVklTSUJMRTogInZpc2libGUi
Ci19OwotCi12YXIgc2tpcF9hbGxfdGVzdHMgPSBmYWxzZTsKLXZhciBmZWF0dXJlX2NoZWNrID0g
ZmFsc2U7Ci0KLS8vCi0vLyBBbGwgdGVzdCgpIGZ1bmN0aW9ucyBpbiB0aGUgV2ViUGVyZiBQYWdl
VmlzIHRlc3Qgc3VpdGUgc2hvdWxkIHVzZSBwdl90ZXN0KCkgaW5zdGVhZC4KLS8vCi0vLyBwdl90
ZXN0KCkgdmFsaWRhdGVzIHRoZSBkb2N1bWVudC5oaWRkZW4gYW5kIGRvY3VtZW50LnZpc2liaWxp
dHlTdGF0ZSBhdHRyaWJ1dGVzCi0vLyBleGlzdCBwcmlvciB0byBydW5uaW5nIHRlc3RzIGFuZCBp
bW1lZGlhdGVseSBzaG93cyBhIGZhaWx1cmUgaWYgdGhleSBkbyBub3QuCi0vLwotCi1mdW5jdGlv
biBwdl90ZXN0KGZ1bmMsIG1zZywgZG9jKQotewotICAgIGlmICghZG9jKQotICAgIHsKLSAgICAg
ICAgZG9jID0gZG9jdW1lbnQ7Ci0gICAgfQotCi0gICAgLy8gb25seSBydW4gdGhlIGZlYXR1cmUg
Y2hlY2sgb25jZSwgdW5sZXNzIGZ1bmMgPT0gbnVsbCwgaW4gd2hpY2ggY2FzZSwgCi0gICAgLy8g
dGhpcyBjYWxsIGlzIGludGVuZGVkIGFzIGEgZmVhdHVyZSBjaGVjawotICAgIGlmICghZmVhdHVy
ZV9jaGVjaykKLSAgICB7Ci0gICAgICAgIGZlYXR1cmVfY2hlY2sgPSB0cnVlOwotCi0gICAgICAg
IHZhciBoaWRkZW5WYWwgPSBkb2MuaGlkZGVuOwotICAgICAgICB2YXIgdmlzU3RhdGVWYWwgPSBk
b2MudmlzaWJpbGl0eVN0YXRlOwotCi0gICAgICAgIC8vIHNob3cgYSBzaW5nbGUgZXJyb3IgdGhh
dCB0aGUgUGFnZSBWaXNpYmlsaXR5IGZlYXR1cmUgaXMgdW5kZWZpbmVkCi0gICAgICAgIHRlc3Qo
ZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShoaWRkZW5WYWwg
IT09IHVuZGVmaW5lZCAmJiBoaWRkZW5WYWwgIT0gbnVsbCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJkb2N1bWVudC5oaWRkZW4gaXMgZGVmaW5lZCBhbmQgbm90IG51bGwuIik7fSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJkb2N1bWVudC5oaWRkZW4gaXMgZGVmaW5lZCBhbmQgbm90IG51
bGwuIik7Ci0KLSAgICAgICAgdGVzdChmdW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGFzc2VydF90cnVlKHZpc1N0YXRlVmFsICE9PSB1bmRlZmluZWQgJiYgaGlkZGVuVmFsICE9IG51
bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlIGlz
IGRlZmluZWQgYW5kIG5vdCBudWxsLiIpO30sCi0gICAgICAgICAgICAgICAgICAgICAgICAiZG9j
dW1lbnQudmlzaWJpbGl0eVN0YXRlIGlzIGRlZmluZWQgYW5kIG5vdCBudWxsLiIpOwotICAgIAot
ICAgICAgICAvL1NraXAgb25seSBpZiBib3RoIGFyZSB1bmRlZmluZWQKLQotICAgICAgICBpZiAo
aGlkZGVuVmFsID09PSB1bmRlZmluZWQgfHwgdmlzU3RhdGVWYWwgPT09IHVuZGVmaW5lZCkKLSAg
ICAgICAgewotICAgICAgICAgICAgc2tpcF9hbGxfdGVzdHMgPSB0cnVlOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKCFza2lwX2FsbF90ZXN0cyAmJiBmdW5jKQotICAgIHsKLSAgICAgICAg
dGVzdChmdW5jLCBtc2cpOwotICAgIH0KLX0KLQotCi1mdW5jdGlvbiB0ZXN0X2ZlYXR1cmVfZXhp
c3RzKGRvYywgbXNnKQotewotICAgIGlmICghbXNnKQotICAgIHsKLSAgICAgICAgbXNnID0gIiI7
Ci0gICAgfQotICAgIHZhciBoaWRkZW5Nc2cgPSAiZG9jdW1lbnQuaGlkZGVuIGlzIGRlZmluZWQi
ICsgbXNnICsgIi4iOwotICAgIHZhciBzdGF0ZU1zZyA9ICJkb2N1bWVudC52aXNpYmlsaXR5U3Rh
dGUgaXMgZGVmaW5lZCIgKyBtc2cgKyAiLiI7Ci0gICAgcHZfdGVzdChmdW5jdGlvbigpe2Fzc2Vy
dF90cnVlKGRvY3VtZW50LmhpZGRlbiAhPT0gdW5kZWZpbmVkLCBoaWRkZW5Nc2cpO30sIGhpZGRl
bk1zZywgZG9jKTsKLSAgICBwdl90ZXN0KGZ1bmN0aW9uKCl7YXNzZXJ0X3RydWUoZG9jdW1lbnQu
dmlzaWJpbGl0eVN0YXRlICE9PSB1bmRlZmluZWQsIHN0YXRlTXNnKTt9LCBzdGF0ZU1zZywgZG9j
KTsKLX0KLQotLy8KLS8vIENvbW1vbiBoZWxwZXIgZnVuY3Rpb25zCi0vLwotCi1mdW5jdGlvbiB0
ZXN0X3RydWUodmFsdWUsIG1zZykKLXsKLSAgICBwdl90ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRf
dHJ1ZSh2YWx1ZSwgbXNnKTsgfSwgbXNnKTsKLX0KLQotZnVuY3Rpb24gdGVzdF9lcXVhbHModmFs
dWUsIGVxdWFscywgbXNnKQotewotICAgIHB2X3Rlc3QoZnVuY3Rpb24oKSB7IGFzc2VydF9lcXVh
bHModmFsdWUsIGVxdWFscywgbXNnKTsgfSwgbXNnKTsKLX0KLQotLy8KLS8vIGFzeW5jaHJvbm91
cyB0ZXN0IGhlbHBlciBmdW5jdGlvbnMKLS8vCi0KLWZ1bmN0aW9uIGFkZF9hc3luY19yZXN1bHQo
dGVzdF9vYmosIHBhc3Nfc3RhdGUpCi17Ci0gICAgLy8gYWRkIGFzc2VydGlvbiB0byBtYW51YWwg
dGVzdCBmb3IgdGhlIHBhc3Mgc3RhdGUKLSAgICB0ZXN0X29iai5zdGVwKGZ1bmN0aW9uKCkgeyBh
c3NlcnRfdHJ1ZShwYXNzX3N0YXRlKSB9KTsKLQotICAgIC8vIGVuZCBtYW51YWwgdGVzdAotICAg
IHRlc3Rfb2JqLmRvbmUoKTsKLX0KLQotZnVuY3Rpb24gYWRkX2FzeW5jX3Jlc3VsdF9hc3NlcnQo
dGVzdF9vYmosIGZ1bmMpCi17Ci0gICAgLy8gYWRkIGFzc2VydGlvbiB0byBtYW51YWwgdGVzdCBm
b3IgdGhlIHBhc3Mgc3RhdGUKLSAgICB0ZXN0X29iai5zdGVwKGZ1bmMpOwotCi0gICAgLy8gZW5k
IG1hbnVhbCB0ZXN0Ci0gICAgdGVzdF9vYmouZG9uZSgpOwotfQotCi12YXIgb3Blbl9saW5rOwot
ZnVuY3Rpb24gVGFiU3dpdGNoKCkKLXsKLSAgICAvL3ZhciBvcGVuX2xpbmsgPSB3aW5kb3cub3Bl
bigiaHR0cDovL3d3dy5iaW5nLmNvbSIpOwotICAgIG9wZW5fbGluayA9IHdpbmRvdy5vcGVuKCcn
LCAnX2JsYW5rJyk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgb3Blbl9saW5rLmNsb3Nl
KCk7IH0sIDIwMDApOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0LnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0
LnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ4NmU5NjA1NDc3NDE3ZDIzZDIw
ODc3YTA5MDcwY2U5MzU0YTk3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9y
ZWRpcmVjdC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/cGhwCi0gICRjb2Rl
ID0gY3R5cGVfZGlnaXQoJF9HRVRbImNvZGUiXSkgPyAkX0dFVFsiY29kZSJdIDogIjMwMiI7Ci0g
ICRsb2NhdGlvbiA9ICRfR0VUWyJsb2NhdGlvbiJdID8gJF9HRVRbImxvY2F0aW9uIl0gOiAkX1NF
UlZFUlsiU0NSSVBUX05BTUUiXSAuICI/Zm9sbG93ZWQiOwotCi0gIGhlYWRlcigiSFRUUC8xLjEg
JGNvZGUiKTsKLSAgaGVhZGVyKCJMb2NhdGlvbjogJGxvY2F0aW9uIik7Ci0gIGV4aXQ7Ci0/Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMv
d2VicGVyZnRlc3RoYXJuZXNzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4YTZkYjhkYjM1MmE1OWRkYmEzYjFhZTY1MzIwNjVhYmVjZmQ2NmY1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDE2MSArMCwwIEBACi3vu78vKgotRGlzdHJpYnV0ZWQgdW5kZXIgYm90aCB0
aGUgVzNDIFRlc3QgU3VpdGUgTGljZW5zZSBbMV0gYW5kIHRoZSBXM0MKLTMtY2xhdXNlIEJTRCBM
aWNlbnNlIFsyXS4gVG8gY29udHJpYnV0ZSB0byBhIFczQyBUZXN0IFN1aXRlLCBzZWUgdGhlCi1w
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wNC10ZXN0c3VpdGUtbGljZW5zZQotWzJdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wMy1ic2QtbGljZW5zZQotWzNdIGh0
dHA6Ly93d3cudzMub3JnLzIwMDQvMTAvMjctdGVzdGNhc2VzCi0gKi8KLQotLy8KLS8vIEhlbHBl
ciBGdW5jdGlvbnMgZm9yIE5hdmlnYXRpb25UaW1pbmcgVzNDIHRlc3RzCi0vLwotCi12YXIgcGVy
Zm9ybWFuY2VOYW1lc3BhY2UgPSB3aW5kb3cucGVyZm9ybWFuY2U7Ci12YXIgdGltaW5nQXR0cmli
dXRlcyA9IFsKLSAgICAnY29ubmVjdEVuZCcsCi0gICAgJ2Nvbm5lY3RTdGFydCcsCi0gICAgJ2Rv
bUNvbXBsZXRlJywKLSAgICAnZG9tQ29udGVudExvYWRlZEV2ZW50RW5kJywKLSAgICAnZG9tQ29u
dGVudExvYWRlZEV2ZW50U3RhcnQnLAotICAgICdkb21JbnRlcmFjdGl2ZScsCi0gICAgJ2RvbUxv
YWRpbmcnLAotICAgICdkb21haW5Mb29rdXBFbmQnLAotICAgICdkb21haW5Mb29rdXBTdGFydCcs
Ci0gICAgJ2ZldGNoU3RhcnQnLAotICAgICdsb2FkRXZlbnRFbmQnLAotICAgICdsb2FkRXZlbnRT
dGFydCcsCi0gICAgJ25hdmlnYXRpb25TdGFydCcsCi0gICAgJ3JlZGlyZWN0RW5kJywKLSAgICAn
cmVkaXJlY3RTdGFydCcsCi0gICAgJ3JlcXVlc3RTdGFydCcsCi0gICAgJ3Jlc3BvbnNlRW5kJywK
LSAgICAncmVzcG9uc2VTdGFydCcsCi0gICAgJ3VubG9hZEV2ZW50RW5kJywKLSAgICAndW5sb2Fk
RXZlbnRTdGFydCcKLV07Ci0KLXZhciBza2lwX2FsbF90ZXN0cyA9IGZhbHNlOwotdmFyIG5hbWVz
cGFjZV9jaGVjayA9IGZhbHNlOwotCi0vLwotLy8gQWxsIHRlc3QoKSBmdW5jdGlvbnMgaW4gdGhl
IFdlYlBlcmYgdGVzdCBzdWl0ZSBzaG91bGQgdXNlIHdwX3Rlc3QoKSBpbnN0ZWFkLgotLy8KLS8v
IHdwX3Rlc3QoKSB2YWxpZGF0ZXMgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBuYW1lc3BhY2UgZXhp
c3RzIHByaW9yIHRvIHJ1bm5pbmcgdGVzdHMgYW5kCi0vLyBpbW1lZGlhdGVseSBzaG93cyBhIHNp
bmdsZSBmYWlsdXJlIGlmIGl0IGRvZXMgbm90LgotLy8KLQotZnVuY3Rpb24gd3BfdGVzdChmdW5j
LCBtc2csIHByb3BlcnRpZXMpCi17Ci0gICAgLy8gb25seSBydW4gdGhlIG5hbWVzcGFjZSBjaGVj
ayBvbmNlCi0gICAgaWYgKCFuYW1lc3BhY2VfY2hlY2spCi0gICAgewotICAgICAgICBuYW1lc3Bh
Y2VfY2hlY2sgPSB0cnVlOwotCi0gICAgICAgIGlmIChwZXJmb3JtYW5jZU5hbWVzcGFjZSA9PT0g
dW5kZWZpbmVkIHx8IHBlcmZvcm1hbmNlTmFtZXNwYWNlID09IG51bGwpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHNraXBfYWxsX3Rlc3RzID0gdHJ1ZTsKLQotICAgICAgICAgICAgLy8gc2hvdyBh
IHNpbmdsZSBlcnJvciB0aGF0IHdpbmRvdy5wZXJmb3JtYW5jZSBpcyB1bmRlZmluZWQKLSAgICAg
ICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7IGFzc2VydF90cnVlKHBlcmZvcm1hbmNlTmFtZXNwYWNl
ICE9PSB1bmRlZmluZWQgJiYgcGVyZm9ybWFuY2VOYW1lc3BhY2UgIT0gbnVsbCwgIndpbmRvdy5w
ZXJmb3JtYW5jZSBpcyBkZWZpbmVkIGFuZCBub3QgbnVsbCIpOyB9LCAid2luZG93LnBlcmZvcm1h
bmNlIGlzIGRlZmluZWQgYW5kIG5vdCBudWxsLiIsIHthdXRob3I6IlczQyBodHRwOi8vd3d3Lncz
Lm9yZy8iLGhlbHA6Imh0dHA6Ly93d3cudzMub3JnL1RSL25hdmlnYXRpb24tdGltaW5nLyNzZWMt
d2luZG93LnBlcmZvcm1hbmNlLWF0dHJpYnV0ZSIsYXNzZXJ0OiJUaGUgd2luZG93LnBlcmZvcm1h
bmNlIGF0dHJpYnV0ZSBwcm92aWRlcyBhIGhvc3RpbmcgYXJlYSBmb3IgcGVyZm9ybWFuY2UgcmVs
YXRlZCBhdHRyaWJ1dGVzLiAifSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIXNraXBf
YWxsX3Rlc3RzKQotICAgIHsKLSAgICAgICAgdGVzdChmdW5jLCBtc2csIHByb3BlcnRpZXMpOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdF9uYW1lc3BhY2UoY2hpbGRfbmFtZSwgc2tpcF9yb290
KQotewotICAgIGlmIChza2lwX3Jvb3QgPT09IHVuZGVmaW5lZCkgewotICAgICAgICB2YXIgbXNn
ID0gJ3dpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkJzsKLSAgICAgICAgd3BfdGVzdChmdW5j
dGlvbiAoKSB7IGFzc2VydF90cnVlKHBlcmZvcm1hbmNlTmFtZXNwYWNlICE9PSB1bmRlZmluZWQs
IG1zZyk7IH0sIG1zZyx7YXV0aG9yOiJXM0MgaHR0cDovL3d3dy53My5vcmcvIixoZWxwOiJodHRw
Oi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8jc2VjLXdpbmRvdy5wZXJmb3JtYW5j
ZS1hdHRyaWJ1dGUiLGFzc2VydDoiVGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBhdHRyaWJ1dGUgcHJv
dmlkZXMgYSBob3N0aW5nIGFyZWEgZm9yIHBlcmZvcm1hbmNlIHJlbGF0ZWQgYXR0cmlidXRlcy4g
In0pOwotICAgIH0KLQotICAgIGlmIChjaGlsZF9uYW1lICE9PSB1bmRlZmluZWQpIHsKLSAgICAg
ICAgdmFyIG1zZzIgPSAnd2luZG93LnBlcmZvcm1hbmNlLicgKyBjaGlsZF9uYW1lICsgJyBpcyBk
ZWZpbmVkJzsKLSAgICAgICAgd3BfdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUocGVyZm9y
bWFuY2VOYW1lc3BhY2VbY2hpbGRfbmFtZV0gIT09IHVuZGVmaW5lZCwgbXNnMik7IH0sIG1zZzIs
e2F1dGhvcjoiVzNDIGh0dHA6Ly93d3cudzMub3JnLyIsaGVscDoiaHR0cDovL3d3dy53My5vcmcv
VFIvbmF2aWdhdGlvbi10aW1pbmcvI3NlYy13aW5kb3cucGVyZm9ybWFuY2UtYXR0cmlidXRlIixh
c3NlcnQ6IlRoZSB3aW5kb3cucGVyZm9ybWFuY2UgYXR0cmlidXRlIHByb3ZpZGVzIGEgaG9zdGlu
ZyBhcmVhIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIGF0dHJpYnV0ZXMuICJ9KTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIHRlc3RfYXR0cmlidXRlX2V4aXN0cyhwYXJlbnRfbmFtZSwgYXR0cmlidXRl
X25hbWUsIHByb3BlcnRpZXMpCi17Ci0gICAgdmFyIG1zZyA9ICd3aW5kb3cucGVyZm9ybWFuY2Uu
JyArIHBhcmVudF9uYW1lICsgJy4nICsgYXR0cmlidXRlX25hbWUgKyAnIGlzIGRlZmluZWQuJzsK
LSAgICB3cF90ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShwZXJmb3JtYW5jZU5hbWVzcGFj
ZVtwYXJlbnRfbmFtZV1bYXR0cmlidXRlX25hbWVdICE9PSB1bmRlZmluZWQsIG1zZyk7IH0sIG1z
ZywgcHJvcGVydGllcyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RfZW51bShwYXJlbnRfbmFtZSwgZW51
bV9uYW1lLCB2YWx1ZSwgcHJvcGVydGllcykKLXsKLSAgICB2YXIgbXNnID0gJ3dpbmRvdy5wZXJm
b3JtYW5jZS4nICsgcGFyZW50X25hbWUgKyAnLicgKyBlbnVtX25hbWUgKyAnIGlzIGRlZmluZWQu
JzsKLSAgICB3cF90ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShwZXJmb3JtYW5jZU5hbWVz
cGFjZVtwYXJlbnRfbmFtZV1bZW51bV9uYW1lXSAhPT0gdW5kZWZpbmVkLCBtc2cpOyB9LCBtc2cs
IHByb3BlcnRpZXMpOwotCi0gICAgbXNnID0gJ3dpbmRvdy5wZXJmb3JtYW5jZS4nICsgcGFyZW50
X25hbWUgKyAnLicgKyBlbnVtX25hbWUgKyAnID0gJyArIHZhbHVlOwotICAgIHdwX3Rlc3QoZnVu
Y3Rpb24oKSB7IGFzc2VydF9lcXVhbHMocGVyZm9ybWFuY2VOYW1lc3BhY2VbcGFyZW50X25hbWVd
W2VudW1fbmFtZV0sIHZhbHVlLCBtc2cpOyB9LCBtc2csIHByb3BlcnRpZXMpOwotfQotCi1mdW5j
dGlvbiB0ZXN0X3RpbWluZ19vcmRlcihhdHRyaWJ1dGVfbmFtZSwgZ3JlYXRlcl90aGFuX2F0dHJp
YnV0ZSwgcHJvcGVydGllcykKLXsKLSAgICAvLyBlbnN1cmUgaXQncyBub3QgMCBmaXJzdAotICAg
IHZhciBtc2cgPSAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy4iICsgYXR0cmlidXRlX25hbWUg
KyAiID4gMCI7Ci0gICAgd3BfdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUocGVyZm9ybWFu
Y2VOYW1lc3BhY2UudGltaW5nW2F0dHJpYnV0ZV9uYW1lXSA+IDAsIG1zZyk7IH0sIG1zZywgcHJv
cGVydGllcyk7Ci0KLSAgICAvLyBlbnN1cmUgaXQncyBpbiB0aGUgcmlnaHQgb3JkZXIKLSAgICBt
c2cgPSAid2luZG93LnBlcmZvcm1hbmNlLnRpbWluZy4iICsgYXR0cmlidXRlX25hbWUgKyAiID49
IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcuIiArIGdyZWF0ZXJfdGhhbl9hdHRyaWJ1dGU7Ci0g
ICAgd3BfdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUocGVyZm9ybWFuY2VOYW1lc3BhY2Uu
dGltaW5nW2F0dHJpYnV0ZV9uYW1lXSA+PSBwZXJmb3JtYW5jZU5hbWVzcGFjZS50aW1pbmdbZ3Jl
YXRlcl90aGFuX2F0dHJpYnV0ZV0sIG1zZyk7IH0sIG1zZywgcHJvcGVydGllcyk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RfdGltaW5nX2dyZWF0ZXJfdGhhbihhdHRyaWJ1dGVfbmFtZSwgZ3JlYXRlcl90
aGFuLCBwcm9wZXJ0aWVzKQotewotICAgIHZhciBtc2cgPSAid2luZG93LnBlcmZvcm1hbmNlLnRp
bWluZy4iICsgYXR0cmlidXRlX25hbWUgKyAiID4gIiArIGdyZWF0ZXJfdGhhbjsKLSAgICB0ZXN0
X2dyZWF0ZXJfdGhhbihwZXJmb3JtYW5jZU5hbWVzcGFjZS50aW1pbmdbYXR0cmlidXRlX25hbWVd
LCBncmVhdGVyX3RoYW4sIG1zZywgcHJvcGVydGllcyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RfdGlt
aW5nX2VxdWFscyhhdHRyaWJ1dGVfbmFtZSwgZXF1YWxzLCBtc2csIHByb3BlcnRpZXMpCi17Ci0g
ICAgdmFyIHRlc3RfbXNnID0gbXNnIHx8ICJ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLiIgKyBh
dHRyaWJ1dGVfbmFtZSArICIgPT0gIiArIGVxdWFsczsKLSAgICB0ZXN0X2VxdWFscyhwZXJmb3Jt
YW5jZU5hbWVzcGFjZS50aW1pbmdbYXR0cmlidXRlX25hbWVdLCBlcXVhbHMsIHRlc3RfbXNnLCBw
cm9wZXJ0aWVzKTsKLX0KLQotLy8KLS8vIE5vbi10ZXN0IHJlbGF0ZWQgaGVscGVyIGZ1bmN0aW9u
cwotLy8KLQotZnVuY3Rpb24gc2xlZXBfbWlsbGlzZWNvbmRzKG4pCi17Ci0gICAgdmFyIHN0YXJ0
ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYg
KChuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0KSA+PSBuKSBicmVhazsKLSAgICB9Ci19Ci0K
LS8vCi0vLyBDb21tb24gaGVscGVyIGZ1bmN0aW9ucwotLy8KLQotZnVuY3Rpb24gdGVzdF90cnVl
KHZhbHVlLCBtc2csIHByb3BlcnRpZXMpCi17Ci0gICAgd3BfdGVzdChmdW5jdGlvbiAoKSB7IGFz
c2VydF90cnVlKHZhbHVlLCBtc2cpOyB9LCBtc2csIHByb3BlcnRpZXMpOwotfQotCi1mdW5jdGlv
biB0ZXN0X2VxdWFscyh2YWx1ZSwgZXF1YWxzLCBtc2csIHByb3BlcnRpZXMpCi17Ci0gICAgd3Bf
dGVzdChmdW5jdGlvbiAoKSB7IGFzc2VydF9lcXVhbHModmFsdWUsIGVxdWFscywgbXNnKTsgfSwg
bXNnLCBwcm9wZXJ0aWVzKTsKLX0KLQotZnVuY3Rpb24gdGVzdF9ncmVhdGVyX3RoYW4odmFsdWUs
IGdyZWF0ZXJfdGhhbiwgbXNnLCBwcm9wZXJ0aWVzKQotewotICAgIHdwX3Rlc3QoZnVuY3Rpb24g
KCkgeyBhc3NlcnRfdHJ1ZSh2YWx1ZSA+IGdyZWF0ZXJfdGhhbiwgbXNnKTsgfSwgbXNnLCBwcm9w
ZXJ0aWVzKTsKLX0KLQotZnVuY3Rpb24gdGVzdF9ncmVhdGVyX29yX2VxdWFscyh2YWx1ZSwgZ3Jl
YXRlcl90aGFuLCBtc2csIHByb3BlcnRpZXMpCi17Ci0gICAgd3BfdGVzdChmdW5jdGlvbiAoKSB7
IGFzc2VydF90cnVlKHZhbHVlID49IGdyZWF0ZXJfdGhhbiwgbXNnKTsgfSwgbXNnLCBwcm9wZXJ0
aWVzKTsKLX0KLQotZnVuY3Rpb24gdGVzdF9ub3RfZXF1YWxzKHZhbHVlLCBub3RlcXVhbHMsIG1z
ZywgcHJvcGVydGllcykKLXsKLSAgICB3cF90ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZSh2
YWx1ZSAhPT0gbm90ZXF1YWxzLCBtc2cpOyB9LCBtc2csIHByb3BlcnRpZXMpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVy
ZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCA1ZWVhMTIxNmZkZGU4NDc4MTkxNTdmMGE2YWZhMTY0YTlhMmY1
M2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVz
c2V4dGVuc2lvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1OCArMCwwIEBACi0vKgotRGlzdHJp
YnV0ZWQgdW5kZXIgYm90aCB0aGUgVzNDIFRlc3QgU3VpdGUgTGljZW5zZSBbMV0gYW5kIHRoZSBX
M0MKLTMtY2xhdXNlIEJTRCBMaWNlbnNlIFsyXS4gVG8gY29udHJpYnV0ZSB0byBhIFczQyBUZXN0
IFN1aXRlLCBzZWUgdGhlCi1wb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wNC10ZXN0c3VpdGUt
bGljZW5zZQotWzJdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wMy1i
c2QtbGljZW5zZQotWzNdIGh0dHA6Ly93d3cudzMub3JnLzIwMDQvMTAvMjctdGVzdGNhc2VzCi0g
Ki8KLQotdmFyIG1hcmtfbmFtZXMgPSBbCi0gICAgJycsCi0gICAgJzEnLAotICAgICdhYmMnLAot
XTsKLSAgIAotdmFyIG1lYXN1cmVzID0gWwotICAgIFsnJ10sCi0gICAgWycyJywgMV0sCi0gICAg
WydhYWEnLCAnbmF2aWdhdGlvblN0YXJ0JywgJyddLAotXTsKLQotZnVuY3Rpb24gdGVzdF9tZXRo
b2RfZXhpc3RzKG1ldGhvZCwgbWV0aG9kX25hbWUsIHByb3BlcnRpZXMpCi17Ci0gICAgdmFyIG1z
ZzsKLSAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gJ2Z1bmN0aW9uJykKLSAgICAgICAgbXNnID0g
J3BlcmZvcm1hbmNlLicgKyBtZXRob2QubmFtZSArICcgaXMgc3VwcG9ydGVkISc7Ci0gICAgZWxz
ZQotICAgICAgICBtc2cgPSAncGVyZm9ybWFuY2UuJyArIG1ldGhvZF9uYW1lICsgJyBpcyBzdXBw
b3J0ZWQhJzsKLSAgICB3cF90ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZSh0eXBlb2YgbWV0
aG9kID09PSAnZnVuY3Rpb24nLCBtc2cpOyB9LCBtc2csIHByb3BlcnRpZXMpOwotfQotCi1mdW5j
dGlvbiB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oZnVuY19zdHIsIGV4Y2VwdGlvbiwgbXNn
KQotewotICAgIHZhciBleGNlcHRpb25fbmFtZSA9IHR5cGVvZiBleGNlcHRpb24gPT09ICJvYmpl
Y3QiID8gZXhjZXB0aW9uLm5hbWUgOiBleGNlcHRpb247Ci0gICAgdmFyIG1zZyA9ICdJbnZvY2F0
aW9uIG9mICcgKyBmdW5jX3N0ciArICcgc2hvdWxkIHRocm93ICcgKyBleGNlcHRpb25fbmFtZSAg
KyAnIEV4Y2VwdGlvbi4nOwotICAgIHdwX3Rlc3QoZnVuY3Rpb24oKSB7IGFzc2VydF90aHJvd3Mo
ZXhjZXB0aW9uLCBmdW5jdGlvbigpIHtldmFsKGZ1bmNfc3RyKX0sIG1zZyk7IH0sIG1zZyk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3Rfbm9sZXNzX3RoYW4odmFsdWUsIGdyZWF0ZXJfdGhhbiwgbXNnLCBw
cm9wZXJ0aWVzKQotewotICAgIHdwX3Rlc3QoZnVuY3Rpb24gKCkgeyBhc3NlcnRfdHJ1ZSh2YWx1
ZSA+PSBncmVhdGVyX3RoYW4sIG1zZyk7IH0sIG1zZywgcHJvcGVydGllcyk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RfZmFpbChtc2csIHByb3BlcnRpZXMpCi17Ci0gICAgd3BfdGVzdChmdW5jdGlvbigp
IHsgYXNzZXJ0X3VucmVhY2hlZCgpOyB9LCBtc2csIHByb3BlcnRpZXMpOwotfQotCi1mdW5jdGlv
biB0ZXN0X3Jlc291cmNlX2VudHJpZXMoZW50cmllcywgZXhwZWN0ZWRfZW50cmllcykKLXsKLSAg
ICAvLyBUaGlzIGlzIHNsaWdodGx5IGNvbnZvbHV0ZWQgc28gdGhhdCB3ZSBjYW4gc29ydCB0aGUg
b3V0cHV0LgotICAgIHZhciBhY3R1YWxfZW50cmllcyA9IHt9OwotCi0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbnRyeSA9IGVudHJp
ZXNbaV07Ci0gICAgICAgIHZhciBmb3VuZCA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBleHBl
Y3RlZF9lbnRyeSBpbiBleHBlY3RlZF9lbnRyaWVzKSB7Ci0gICAgICAgICAgICBpZiAoZW50cnku
bmFtZSA9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgZXhwZWN0ZWRfZW50cnkpIHsKLSAgICAg
ICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkX2Vu
dHJ5IGluIGFjdHVhbF9lbnRyaWVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfZmFpbChl
eHBlY3RlZF9lbnRyeSArICcgaXMgbm90IGV4cGVjdGVkIHRvIGhhdmUgZHVwbGljYXRlIGVudHJp
ZXMnKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYWN0dWFsX2VudHJpZXNb
ZXhwZWN0ZWRfZW50cnldID0gZW50cnk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFmb3VuZCkgewotICAgICAgICAgICAgdGVz
dF9mYWlsKGVudHJpZXNbaV0ubmFtZSArICcgaXMgbm90IGV4cGVjdGVkIHRvIGJlIGluIHRoZSBS
ZXNvdXJjZSBUaW1pbmcgYnVmZmVyJyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzb3J0ZWRf
dXJscyA9IFtdOwotICAgIGZvciAodmFyIGkgaW4gYWN0dWFsX2VudHJpZXMpIHsKLSAgICAgICAg
c29ydGVkX3VybHMucHVzaChpKTsKLSAgICB9Ci0gICAgc29ydGVkX3VybHMuc29ydCgpOwotICAg
IGZvciAodmFyIGkgaW4gc29ydGVkX3VybHMpIHsKLSAgICAgICAgdmFyIHVybCA9IHNvcnRlZF91
cmxzW2ldOwotICAgICAgICB0ZXN0X2VxdWFscyhhY3R1YWxfZW50cmllc1t1cmxdLmluaXRpYXRv
clR5cGUsCi0gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2VudHJpZXNbdXJsXSwKLSAgICAg
ICAgICAgICAgICAgICAgdXJsICsgJyBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5cGUg
JyArIGV4cGVjdGVkX2VudHJpZXNbdXJsXSk7Ci0gICAgfQotICAgIGZvciAodmFyIGogaW4gZXhw
ZWN0ZWRfZW50cmllcykgewotICAgICAgICBpZiAoIShqIGluIGFjdHVhbF9lbnRyaWVzKSkgewot
ICAgICAgICAgICAgdGVzdF9mYWlsKGogKyAnIGlzIGV4cGVjdGVkIHRvIGJlIGluIHRoZSBSZXNv
dXJjZSBUaW1pbmcgYnVmZmVyJyk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci1mdW5jdGlvbiBwZXJm
b3JtYW5jZV9lbnRyeWxpc3RfY2hlY2tlcih0eXBlKQotewotICAgIHZhciBlbnRyeVR5cGUgPSB0
eXBlOwotCi0gICAgZnVuY3Rpb24gZW50cnlfY2hlY2soZW50cnksIGV4cGVjdGVkTmFtZXMpCi0g
ICAgewotICAgICAgICB2YXIgbXNnID0gJ0VudHJ5IFwiJyArIGVudHJ5Lm5hbWUgKyAnXCIgc2hv
dWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0Lic7Ci0gICAgICAgIHdwX3Rlc3QoZnVuY3Rpb24o
KSB7IGFzc2VydF9pbl9hcnJheShlbnRyeS5uYW1lLCBleHBlY3RlZE5hbWVzLCBtc2cpOyB9LCBt
c2cpOwotICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5lbnRyeVR5cGUsIGVudHJ5VHlwZSwgJ2Vu
dHJ5VHlwZSBzaG91bGQgYmUgXCInICsgZW50cnlUeXBlICsgJ1wiLicpOwotICAgICAgICBpZiAo
dHlwZSA9PT0gIm1lYXN1cmUiKSB7Ci0gICAgICAgICAgICB0ZXN0X3RydWUoaXNGaW5pdGUoZW50
cnkuc3RhcnRUaW1lKSwgJ3N0YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuJyk7Ci0gICAgICAg
ICAgICB0ZXN0X3RydWUoaXNGaW5pdGUoZW50cnkuZHVyYXRpb24pLCAnZHVyYXRpb24gc2hvdWxk
IGJlIGEgbnVtYmVyLicpOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICJtYXJrIikgewot
ICAgICAgICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkuc3RhcnRUaW1lLCAwLCAnc3RhcnRU
aW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4nKTsKLSAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVu
dHJ5LmR1cmF0aW9uLCAwLCAnZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4nKTsgICAgICAg
ICAgICAKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGVudHJ5bGlzdF9vcmRlcl9j
aGVjayhlbnRyeUxpc3QpCi0gICAgewotICAgICAgICB2YXIgaW5PcmRlciA9IHRydWU7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50cnlMaXN0Lmxlbmd0aCAtIDE7ICsraSkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKGVudHJ5TGlzdFtpICsgMV0uc3RhcnRUaW1lIDwgZW50cnlM
aXN0W2ldLnN0YXJ0VGltZSkgewotICAgICAgICAgICAgICAgIGluT3JkZXIgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gaW5PcmRlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBlbnRyeWxpc3RfY2hlY2soZW50
cnlMaXN0LCBleHBlY3RlZExlbmd0aCwgZXhwZWN0ZWROYW1lcykKLSAgICB7Ci0gICAgICAgIHRl
c3RfZXF1YWxzKGVudHJ5TGlzdC5sZW5ndGgsIGV4cGVjdGVkTGVuZ3RoLCAnVGhlcmUgc2hvdWxk
IGJlICcgKyBleHBlY3RlZExlbmd0aCArICcgZW50cmllcy4nKTsKLSAgICAgICAgdGVzdF90cnVl
KGVudHJ5bGlzdF9vcmRlcl9jaGVjayhlbnRyeUxpc3QpLCAnRW50cmllcyBpbiBlbnRyeWxpc3Qg
c2hvdWxkIGJlIGluIG9yZGVyLicpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJ5
TGlzdC5sZW5ndGg7ICsraSkKLSAgICAgICAgewotICAgICAgICAgICAgZW50cnlfY2hlY2soZW50
cnlMaXN0W2ldLCBleHBlY3RlZE5hbWVzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVy
bnsiZW50cnlsaXN0X2NoZWNrIjplbnRyeWxpc3RfY2hlY2t9OwotfQotCi1mdW5jdGlvbiBQZXJm
b3JtYW5jZUNvbnRleHQoY29udGV4dCkKLXsKLSAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dCA9
IGNvbnRleHQ7Ci19Ci0KLVBlcmZvcm1hbmNlQ29udGV4dC5wcm90b3R5cGUgPSAKLXsKLQotICAg
IGluaXRpYWxNZWFzdXJlczogZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KQotICAgIHsKLSAg
ICAgICAgKHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1lYXN1cmUgICAgIHx8Ci0gICAgICAgICB0
aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5tb3pNZWFzdXJlICB8fCAKLSAgICAgICAgIHRoaXMucGVy
Zm9ybWFuY2VDb250ZXh0Lm1zTWVhc3VyZSAgIHx8Ci0gICAgICAgICB0aGlzLnBlcmZvcm1hbmNl
Q29udGV4dC5vTWVhc3VyZSAgICB8fAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQu
d2Via2l0TWVhc3VyZSkKLSAgICAgICAgLmFwcGx5KHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LCBp
dGVtKTsKLSAgICB9LAotCi0gICAgbWFyazogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgKHRo
aXMucGVyZm9ybWFuY2VDb250ZXh0Lm1hcmsgICAgIHx8Ci0gICAgICAgICB0aGlzLnBlcmZvcm1h
bmNlQ29udGV4dC5tb3pNYXJrICB8fCAKLSAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0
Lm1zTWFyayAgIHx8Ci0gICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vTWFyayAgICB8
fAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQud2Via2l0TWFyaykKLSAgICAgICAg
LmFwcGx5KHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LCBhcmd1bWVudHMpOwotICAgIH0sCi0KLSAg
ICBtZWFzdXJlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAodGhpcy5wZXJmb3JtYW5jZUNv
bnRleHQubWVhc3VyZSAgICAgfHwKLSAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1v
ek1lYXN1cmUgIHx8IAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQubXNNZWFzdXJl
ICAgfHwKLSAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9NZWFzdXJlICAgIHx8Ci0g
ICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC53ZWJraXRNZWFzdXJlKQotICAgICAgICAu
YXBwbHkodGhpcy5wZXJmb3JtYW5jZUNvbnRleHQsIGFyZ3VtZW50cyk7Ci0gICAgfSwKLQotICAg
IGNsZWFyTWFya3M6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgICh0aGlzLnBlcmZvcm1hbmNl
Q29udGV4dC5jbGVhck1hcmtzICAgICB8fAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRl
eHQubW96Q2xlYXJNYXJrcyAgfHwgCi0gICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5t
c0NsZWFyTWFya3MgICB8fAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub0NsZWFy
TWFya3MgICAgfHwKLSAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LndlYmtpdENsZWFy
TWFya3MpCi0gICAgICAgIC5hcHBseSh0aGlzLnBlcmZvcm1hbmNlQ29udGV4dCwgYXJndW1lbnRz
KTsKLQotICAgIH0sCi0KLSAgICBjbGVhck1lYXN1cmVzOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICAodGhpcy5wZXJmb3JtYW5jZUNvbnRleHQuY2xlYXJNZWFzdXJlcyAgICAgfHwKLSAgICAg
ICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1vekNsZWFyTWVhc3VyZXMgIHx8IAotICAgICAg
ICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQubXNDbGVhck1lYXN1cmVzICAgfHwKLSAgICAgICAg
IHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9DbGVhck1lYXN1cmVzICAgIHx8Ci0gICAgICAgICB0
aGlzLnBlcmZvcm1hbmNlQ29udGV4dC53ZWJraXRDbGVhck1lYXN1cmVzKQotICAgICAgICAuYXBw
bHkodGhpcy5wZXJmb3JtYW5jZUNvbnRleHQsIGFyZ3VtZW50cyk7Ci0KLSAgICB9LAotCi0gICAg
Z2V0RW50cmllczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuICh0aGlzLnBlcmZv
cm1hbmNlQ29udGV4dC5nZXRFbnRyaWVzICAgICB8fAotICAgICAgICAgICAgICAgIHRoaXMucGVy
Zm9ybWFuY2VDb250ZXh0Lm1vekdldEVudHJpZXMgIHx8IAotICAgICAgICAgICAgICAgIHRoaXMu
cGVyZm9ybWFuY2VDb250ZXh0Lm1zR2V0RW50cmllcyAgIHx8Ci0gICAgICAgICAgICAgICAgdGhp
cy5wZXJmb3JtYW5jZUNvbnRleHQub0dldEVudHJpZXMgICAgfHwKLSAgICAgICAgICAgICAgICB0
aGlzLnBlcmZvcm1hbmNlQ29udGV4dC53ZWJraXRHZXRFbnRyaWVzKQotICAgICAgICAgICAgICAg
IC5hcHBseSh0aGlzLnBlcmZvcm1hbmNlQ29udGV4dCwgYXJndW1lbnRzKTsKLSAgICB9LAotCi0g
ICAgZ2V0RW50cmllc0J5VHlwZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuICh0
aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5nZXRFbnRyaWVzQnlUeXBlICAgICB8fAotICAgICAgICAg
ICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1vekdldEVudHJpZXNCeVR5cGUgIHx8IAot
ICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1zR2V0RW50cmllc0J5VHlw
ZSAgIHx8Ci0gICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub0dldEVudHJp
ZXNCeVR5cGUgICAgfHwKLSAgICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC53
ZWJraXRHZXRFbnRyaWVzQnlUeXBlKQotICAgICAgICAgICAgICAgIC5hcHBseSh0aGlzLnBlcmZv
cm1hbmNlQ29udGV4dCwgYXJndW1lbnRzKTsKLSAgICB9LAotCi0gICAgZ2V0RW50cmllc0J5TmFt
ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuICh0aGlzLnBlcmZvcm1hbmNlQ29u
dGV4dC5nZXRFbnRyaWVzQnlOYW1lICAgICB8fAotICAgICAgICAgICAgICAgIHRoaXMucGVyZm9y
bWFuY2VDb250ZXh0Lm1vekdldEVudHJpZXNCeU5hbWUgIHx8IAotICAgICAgICAgICAgICAgIHRo
aXMucGVyZm9ybWFuY2VDb250ZXh0Lm1zR2V0RW50cmllc0J5TmFtZSAgIHx8Ci0gICAgICAgICAg
ICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub0dldEVudHJpZXNCeU5hbWUgICAgfHwKLSAg
ICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC53ZWJraXRHZXRFbnRyaWVzQnlO
YW1lKQotICAgICAgICAgICAgICAgIC5hcHBseSh0aGlzLnBlcmZvcm1hbmNlQ29udGV4dCwgYXJn
dW1lbnRzKTsKLSAgICB9LAotCi0gICAgc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplOiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gKHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LnNl
dFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSAgICAgfHwKLSAgICAgICAgICAgICAgICB0aGlzLnBl
cmZvcm1hbmNlQ29udGV4dC5tb3pTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUgIHx8IAotICAg
ICAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1zU2V0UmVzb3VyY2VUaW1pbmdC
dWZmZXJTaXplICAgfHwKLSAgICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5v
U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplICAgIHx8Ci0gICAgICAgICAgICAgICAgdGhpcy5w
ZXJmb3JtYW5jZUNvbnRleHQud2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKQotICAg
ICAgICAgICAgICAgIC5hcHBseSh0aGlzLnBlcmZvcm1hbmNlQ29udGV4dCwgYXJndW1lbnRzKTsK
LSAgICB9LAotCi0gICAgcmVnaXN0ZXJSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGxDYWxsYmFjazog
ZnVuY3Rpb24oZnVuYykKLSAgICB7Ci0gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wZXJmb3JtYW5j
ZUNvbnRleHQub25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgIT09ICJ1bmRlZmluZWQiKQotICAg
ICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1
bGwgPSBmdW5jOwotICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5wZXJmb3JtYW5jZUNvbnRl
eHQub25tb3pyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgIT09ICJ1bmRlZmluZWQiKQotICAgICAg
ICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub25tb3pyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1
bGwgPSBmdW5jOwotICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5wZXJmb3JtYW5jZUNvbnRl
eHQub25tc3Jlc291cmNldGltaW5nYnVmZmVyZnVsbCAhPT0gInVuZGVmaW5lZCIpCi0gICAgICAg
ICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vbm1zcmVzb3VyY2V0aW1pbmdidWZmZXJmdWxs
ID0gZnVuYzsKLSAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0
Lm9ub3Jlc291cmNldGltaW5nYnVmZmVyZnVsbCAhPT0gInVuZGVmaW5lZCIpCi0gICAgICAgICAg
ICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vbm9yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgPSBm
dW5jOwotICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub253
ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgIT09ICJ1bmRlZmluZWQiKQotICAgICAgICAg
ICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub253ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1
bGwgPSBmdW5jOwotICAgIH0sCi0KLSAgICBjbGVhclJlc291cmNlVGltaW5nczogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgKHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LmNsZWFyUmVzb3VyY2VU
aW1pbmdzICAgICB8fAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQubW96Q2xlYXJS
ZXNvdXJjZVRpbWluZ3MgIHx8IAotICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQubXND
bGVhclJlc291cmNlVGltaW5ncyAgIHx8Ci0gICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4
dC5vQ2xlYXJSZXNvdXJjZVRpbWluZ3MgICAgfHwKLSAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VD
b250ZXh0LndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzKQotICAgICAgICAuYXBwbHkodGhpcy5w
ZXJmb3JtYW5jZUNvbnRleHQsIGFyZ3VtZW50cyk7Ci0gICAgfQotCi19OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNv
dXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2F0dHJpYnV0ZV9vcmRlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xl
L3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfYXR0cmlidXRlX29yZGVyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc4ODE4OTE2ZWQzYjI4YzA1
MTMzYTgyMTY3YWFiZGExYWZlOTFkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfYXR0cmlidXRlX29y
ZGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLURlc2NyaXB0
aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZyBhdHRyaWJ1dGVzIGFwcGVhciBpbiB0aGUgY29ycmVjdCBjaHJvbm9sb2dpY2FsIG9yZGVy
LgotCi0KLQotUEFTUyBPbmx5IDEgUGVyZm9ybWFuY2VFbnRyeSBzaG91bGQgbWF0Y2ggCi1QQVNT
IHJlZGlyZWN0U3RhcnQgc2hvdWxkIGJlIDAgCi1QQVNTIHJlZGlyZWN0RW5kIHNob3VsZCBiZSAw
IAotUEFTUyBmZXRjaFN0YXJ0IHNob3VsZCBiZSBub24temVybyAKLVBBU1MgZG9tYWluTG9va3Vw
U3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBmZXRjaFN0YXJ0IAotUEFT
UyBkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBkb21h
aW5Mb29rdXBTdGFydCAKLVBBU1MgY29ubmVjdFN0YXJ0IHNob3VsZCBiZSBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gZG9tYWluTG9va3VwRW5kIAotUEFTUyBjb25uZWN0RW5kIHNob3VsZCBiZSBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gY29ubmVjdFN0YXJ0IAotUEFTUyByZXF1ZXN0U3RhcnQg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBjb25uZWN0RW5kIAotUEFTUyByZXNw
b25zZVN0YXJ0IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gcmVxdWVzdFN0YXJ0
IAotUEFTUyByZXNwb25zZUVuZCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHJl
c3BvbnNlU3RhcnQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJj
ZV9hdHRyaWJ1dGVfb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9h
dHRyaWJ1dGVfb3JkZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRmZGQ5
ZTg3ZTkwMmI5ZDUwNjVhMTU1OGNiZGY3ZTIxOTlhYWM4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2Vf
YXR0cmlidXRlX29yZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KLTx0
aXRsZT5SZXNvdXJjZSBUaW1pbmcgYXR0cmlidXRlIG9yZGVyPC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iR29vZ2xlIiBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiAvPgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1p
bmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2Vi
cGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gc2V0dXBfaWZyYW1lKCkgewotICAgIGlm
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZUNvbnRleHQnKTsKLSAgICB2YXIg
ZCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50OwotICAgIHZhciBib2R5ID0gZC5jcmVh
dGVFbGVtZW50KCdib2R5Jyk7Ci0gICAgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBd
LmFwcGVuZENoaWxkKGJvZHkpOwotCi0gICAgdmFyIGltYWdlID0gZC5jcmVhdGVFbGVtZW50KCdp
bWcnKTsKLSAgICBpbWFnZS5zcmMgPSAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9y
ZXNvdXJjZS5waHA/dHlwZT1pbWFnZSc7Ci0gICAgYm9keS5hcHBlbmRDaGlsZChpbWFnZSk7Ci19
Ci1mdW5jdGlvbiBvbmxvYWRfdGVzdCgpIHsKLSAgICB2YXIgY29udGV4dCA9IG5ldyBQZXJmb3Jt
YW5jZUNvbnRleHQoaWZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2UpOwotICAgIHZhciBl
bnRyaWVzID0gY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4g
KyAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFn
ZScpOwotICAgIHRlc3RfZXF1YWxzKGVudHJpZXMubGVuZ3RoLCAxLCAnT25seSAxIFBlcmZvcm1h
bmNlRW50cnkgc2hvdWxkIG1hdGNoJyk7Ci0gICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKLQot
ICAgIHRlc3RfZXF1YWxzKGVudHJ5LnJlZGlyZWN0U3RhcnQsIDAsICJyZWRpcmVjdFN0YXJ0IHNo
b3VsZCBiZSAwIik7Ci0gICAgdGVzdF9lcXVhbHMoZW50cnkucmVkaXJlY3RFbmQsIDAsICJyZWRp
cmVjdEVuZCBzaG91bGQgYmUgMCIpOwotICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LmZldGNo
U3RhcnQsIDAsICJmZXRjaFN0YXJ0IHNob3VsZCBiZSBub24temVybyIpOwotICAgIHRlc3RfZ3Jl
YXRlcl9vcl9lcXVhbHMoZW50cnkuZG9tYWluTG9va3VwU3RhcnQsIGVudHJ5LmZldGNoU3RhcnQs
ICJkb21haW5Mb29rdXBTdGFydCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGZl
dGNoU3RhcnQiKTsKLSAgICB0ZXN0X2dyZWF0ZXJfb3JfZXF1YWxzKGVudHJ5LmRvbWFpbkxvb2t1
cEVuZCwgZW50cnkuZG9tYWluTG9va3VwU3RhcnQsICJkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJl
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBkb21haW5Mb29rdXBTdGFydCIpOwotICAgIHRlc3Rf
Z3JlYXRlcl9vcl9lcXVhbHMoZW50cnkuY29ubmVjdFN0YXJ0LCBlbnRyeS5kb21haW5Mb29rdXBF
bmQsICJjb25uZWN0U3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBkb21h
aW5Mb29rdXBFbmQiKTsKLSAgICB0ZXN0X2dyZWF0ZXJfb3JfZXF1YWxzKGVudHJ5LmNvbm5lY3RF
bmQsIGVudHJ5LmNvbm5lY3RTdGFydCwgImNvbm5lY3RFbmQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byBjb25uZWN0U3RhcnQiKTsKLSAgICB0ZXN0X2dyZWF0ZXJfb3JfZXF1YWxz
KGVudHJ5LnJlcXVlc3RTdGFydCwgZW50cnkuY29ubmVjdEVuZCwgInJlcXVlc3RTdGFydCBzaG91
bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGNvbm5lY3RFbmQiKTsKLSAgICB0ZXN0X2dy
ZWF0ZXJfb3JfZXF1YWxzKGVudHJ5LnJlc3BvbnNlU3RhcnQsIGVudHJ5LnJlcXVlc3RTdGFydCwg
InJlc3BvbnNlU3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byByZXF1ZXN0
U3RhcnQiKTsKLSAgICB0ZXN0X2dyZWF0ZXJfb3JfZXF1YWxzKGVudHJ5LnJlc3BvbnNlRW5kLCBl
bnRyeS5yZXNwb25zZVN0YXJ0LCAicmVzcG9uc2VFbmQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byByZXNwb25zZVN0YXJ0Iik7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGgxPkRlc2NyaXB0aW9uPC9oMT4KLTxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUg
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBhdHRyaWJ1dGVzIGFwcGVhciBpbiB0aGUgY29ycmVj
dCBjaHJvbm9sb2dpY2FsIG9yZGVyLjwvcD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08aWZyYW1l
IGlkPSJmcmFtZUNvbnRleHQiIG9ubG9hZD0ib25sb2FkX3Rlc3QoKTsiIHNyYz0iL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9pbmplY3RfcmVzb3VyY2VfdGVzdC5odG1sIj48L2lmcmFtZT4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9j
YWNoZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2NhY2hl
ZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4MTNiYzhmYzNh
OTg4MzM5ZjFlYjVkZmYzNzI1ODMzZGYxMmFiNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2NhY2hl
ZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLURlc2NyaXB0aW9u
Ci0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCBhIDMwNCBOb3QgTW9kaWZpZWQgcmVzb3VyY2Ug
YXBwZWFycyBpbiB0aGUgYnVmZmVyLgotCi0KLQotUEFTUyBUaGVyZSBzaG91bGQgYmUgdHdvIGVu
dHJpZXMgCi1QQVNTIEJvdGggZW50cmllcyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBuYW1lIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
R29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY2FjaGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291
cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY2FjaGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ3NzFlYTE2MzI3ZWJiM2Q0YjA3NmY2ZGE0ZTBkMTYxNTBiZDIxYWIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1p
bmcvaHRtbC90ZXN0X3Jlc291cmNlX2NhY2hlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+Ci08dGl0bGU+UmVzb3VyY2UgVGltaW5nIGNhY2hlZCByZXNvdXJjZXM8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJHb29nbGUiIGhyZWY9Imh0dHA6Ly93d3cuZ29v
Z2xlLmNvbS8iIC8+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS
L3Jlc291cmNlLXRpbWluZy8jZG9tLXBlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmctaW5pdGlhdG9y
dHlwZSIvPgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJj
ZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1z
ZXR1cCh7ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOwotdmFyIGQ7Ci12YXIgaWZyYW1lOwotdmFyIGlm
cmFtZUJvZHk7Ci12YXIgaW1hZ2U7Ci1mdW5jdGlvbiBzZXR1cF9pZnJhbWUoKSB7Ci0gICAgaWZy
YW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lQ29udGV4dCcpOwotICAgIGQgPSBp
ZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDsKLSAgICBpZnJhbWVCb2R5ID0gZC5jcmVhdGVF
bGVtZW50KCdib2R5Jyk7Ci0KLSAgICBpbWFnZSA9IGQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0g
ICAgaW1hZ2Uuc3JjID0gJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2Uu
cGhwP3R5cGU9aW1hZ2UmaWQ9Y2FjaGVkJzsKLSAgICBpZnJhbWVCb2R5LmFwcGVuZENoaWxkKGlt
YWdlKTsKLX0KLWZ1bmN0aW9uIHJlbG9hZF9pbWFnZSgpIHsKLSAgICBpZnJhbWVCb2R5LnJlbW92
ZUNoaWxkKGltYWdlKTsKLSAgICBpbWFnZSA9IGQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAg
aW1hZ2Uuc3JjID0gJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhw
P3R5cGU9aW1hZ2UmaWQ9Y2FjaGVkJzsKLSAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
Jywgb25sb2FkX3Rlc3QsIGZhbHNlKTsKLSAgICBpZnJhbWVCb2R5LmFwcGVuZENoaWxkKGltYWdl
KTsKLX0KLWZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkgewotICAgIHZhciBjb250ZXh0ID0gbmV3IFBl
cmZvcm1hbmNlQ29udGV4dChpZnJhbWUuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZSk7Ci0gICAg
dmFyIGVudHJpZXMgPSBjb250ZXh0LmdldEVudHJpZXMoKTsKLSAgICB0ZXN0X2VxdWFscyhlbnRy
aWVzLmxlbmd0aCwgMiwgIlRoZXJlIHNob3VsZCBiZSB0d28gZW50cmllcyIpOwotICAgIGlmIChl
bnRyaWVzLmxlbmd0aCA+PSAyKSB7Ci0gICAgICAgIHRlc3RfZXF1YWxzKGVudHJpZXNbMF0ubmFt
ZSwgZW50cmllc1sxXS5uYW1lLCAiQm90aCBlbnRyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIG5h
bWUiKTsKLSAgICB9Ci0gICAgZG9uZSgpOwotfQotd2luZG93LnNldHVwX2lmcmFtZSA9IHNldHVw
X2lmcmFtZTsKLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVsb2FkX2ltYWdlLCBm
YWxzZSk7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGgxPkRlc2NyaXB0aW9uPC9oMT4K
LTxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCBhIDMwNCBOb3QgTW9kaWZpZWQgcmVzb3VyY2Ug
YXBwZWFycyBpbiB0aGUgYnVmZmVyLjwvcD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08aWZyYW1l
IGlkPSJmcmFtZUNvbnRleHQiIHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9pbmplY3RfcmVz
b3VyY2VfdGVzdC5odG1sIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVz
b3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9jb25uZWN0aW9uX3JldXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29n
bGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9jb25uZWN0aW9uX3JldXNlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTU1YTdmNmIyMWU2Yjgy
ODk1OWNhOGIwZGUyM2M2NGVlNGYzMDMxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1p
c3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY29ubmVjdGlv
bl9yZXVzZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLURlc2Ny
aXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCBjb25uZWN0U3RhcnQgYW5kIGNvbm5l
Y3RFbmQgYXJlIHRoZSBzYW1lIHdoZW4gYSBjb25uZWN0aW9uIGlzIHJldXNlZC4KLQotCi0KLVBB
U1MgVGhlcmUgc2hvdWxkIGJlIDIgUGVyZm9ybWFuY2VFbnRyaWVzIAotUEFTUyBjb25uZWN0U3Rh
cnQgYW5kIGNvbm5lY3RFbmQgc2hvdWxkIGJlIHRoZSBzYW1lIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNl
LXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY29ubmVjdGlvbl9yZXVzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10
aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2Nvbm5lY3Rpb25fcmV1c2UuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGVjMDNjYTg3OGExZDIxMWQ0OTNkMWMwYjc4MmY5Y2I3ZDYw
MWVhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNl
LXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY29ubmVjdGlvbl9yZXVzZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci08dGl0bGU+UmVzb3VyY2UgVGltaW5nIGNvbm5lY3Rp
b24gcmV1c2U8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJHb29nbGUiIGhyZWY9
Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iIC8+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6
Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jZG9tLXBlcmZvcm1hbmNlcmVzb3VyY2V0
aW1pbmctaW5pdGlhdG9ydHlwZSIvPgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291
cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mv
d2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1zZXR1cCh7ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOwotdmFyIGlmcmFtZTsK
LXZhciBkOwotdmFyIGJvZHk7Ci0KLWZ1bmN0aW9uIHNldHVwX2lmcmFtZSgpIHsKLSAgICBpZnJh
bWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWVDb250ZXh0Jyk7Ci0gICAgZCA9IGlm
cmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50OwotICAgIGJvZHkgPSBkLmNyZWF0ZUVsZW1lbnQo
J2JvZHknKTsKLSAgICBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF0uYXBwZW5kQ2hp
bGQoYm9keSk7Ci0KLSAgICB2YXIgaW1hZ2UgPSBkLmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICAg
IGltYWdlLnNyYyA9ICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBo
cD90eXBlPWltYWdlJmlkPTEnOwotICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBm
aXJzdF9pbWFnZV9sb2FkZWQpOwotICAgIGJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UpOwotfQotCi1m
dW5jdGlvbiBmaXJzdF9pbWFnZV9sb2FkZWQoKSB7Ci0gICAgdmFyIGltYWdlID0gZC5jcmVhdGVF
bGVtZW50KCdpbWcnKTsKLSAgICBpbWFnZS5zcmMgPSAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9n
ZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD0yJzsKLSAgICBpbWFnZS5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgc2Vjb25kX2ltYWdlX2xvYWRlZCk7Ci0gICAgYm9keS5hcHBlbmRD
aGlsZChpbWFnZSk7Ci19Ci0KLWZ1bmN0aW9uIHNlY29uZF9pbWFnZV9sb2FkZWQoKSB7Ci0gICAg
dmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KGlmcmFtZS5jb250ZW50V2luZG93
LnBlcmZvcm1hbmNlKTsKLSAgICB2YXIgZW50cmllcyA9IGNvbnRleHQuZ2V0RW50cmllcygpOwot
ICAgIHRlc3RfZXF1YWxzKGVudHJpZXMubGVuZ3RoLCAyLCAnVGhlcmUgc2hvdWxkIGJlIDIgUGVy
Zm9ybWFuY2VFbnRyaWVzJyk7Ci0KLSAgICB2YXIgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgIHRl
c3RfZXF1YWxzKGVudHJ5LmNvbm5lY3RTdGFydCwgZW50cnkuY29ubmVjdEVuZCwgImNvbm5lY3RT
dGFydCBhbmQgY29ubmVjdEVuZCBzaG91bGQgYmUgdGhlIHNhbWUiKTsKLQotICAgIGRvbmUoKTsK
LX0KLQotd2luZG93LnNldHVwX2lmcmFtZSA9IHNldHVwX2lmcmFtZTsKLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08aDE+RGVzY3JpcHRpb248L2gxPgotPHA+VGhpcyB0ZXN0IHZhbGlkYXRl
cyB0aGF0IGNvbm5lY3RTdGFydCBhbmQgY29ubmVjdEVuZCBhcmUgdGhlIHNhbWUgd2hlbiBhIGNv
bm5lY3Rpb24gaXMgcmV1c2VkLjwvcD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08aWZyYW1lIGlk
PSJmcmFtZUNvbnRleHQiIHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9pbmplY3RfcmVzb3Vy
Y2VfdGVzdC5odG1sIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3Vy
Y2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9keW5hbWljX2luc2VydGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xl
L3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfZHluYW1pY19pbnNlcnRpb24tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWM0MDBkZGRjMjk4OGEx
MzE1NjNhZDQ3OTIyYzIyOWE1MTI0YzdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9keW5hbWljX2lu
c2VydGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1EZXNj
cmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgYWxsIG9mIHRoZSBpbml0aWF0b3Ig
dHlwZXMgYXJlIHJlcHJlc2VudGVkIGV2ZW4gd2hlbiBkeW5hbWljYWxseSBpbnNlcnRlZC4KLQot
Ci0KLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlw
ZT1jc3MgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIGxpbmsgCi1QQVNTIC93M2Mv
d2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9aWZyYW1lIGlzIGV4
cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlwZSBpZnJhbWUgCi1QQVNTIC93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UgaXMgZXhwZWN0ZWQgdG8g
aGF2ZSBpbml0aWF0b3JUeXBlIGltZyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90
ZXN0X3Jlc291cmNlX2R5bmFtaWNfaW5zZXJ0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rl
c3RfcmVzb3VyY2VfZHluYW1pY19pbnNlcnRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmJhMTRiNjI4Y2M3ZTAyM2VlYTMwMWY3ZmZiNzI0NjdkOTEzZjc3ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1s
L3Rlc3RfcmVzb3VyY2VfZHluYW1pY19pbnNlcnRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04IiAvPgotPHRpdGxlPlJlc291cmNlIFRpbWluZyBpbml0aWF0b3IgdHlwZXMgd2l0
aCBkeW5hbWljIGluc2VydGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ikdv
b2dsZSIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tLyIgLz4KLTxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNkb20tcGVyZm9ybWFu
Y2VyZXNvdXJjZXRpbWluZy1pbml0aWF0b3J0eXBlIi8+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24u
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBpZnJhbWU7Ci1mdW5jdGlvbiBzZXR1cF9pZnJh
bWUoKSB7Ci0gICAgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lQ29udGV4
dCcpOwotICAgIHZhciBkID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7Ci0gICAgdmFy
IGJvZHkgPSBkLmNyZWF0ZUVsZW1lbnQoJ2JvZHknKTsKLSAgICBkLmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdodG1sJylbMF0uYXBwZW5kQ2hpbGQoYm9keSk7Ci0KLSAgICB2YXIgc3R5bGUgPSBkLmNy
ZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7Ci0gICAg
c3R5bGUuaHJlZiA9ICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBo
cD90eXBlPWNzcyc7Ci0gICAgYm9keS5hcHBlbmRDaGlsZChzdHlsZSk7Ci0KLSAgICB2YXIgaW1h
Z2UgPSBkLmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICAgIGltYWdlLnNyYyA9ICcvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdlJzsKLSAgICBib2R5
LmFwcGVuZENoaWxkKGltYWdlKTsKLQotICAgIHZhciBzdWJmcmFtZSA9IGQuY3JlYXRlRWxlbWVu
dCgnaWZyYW1lJyk7Ci0gICAgc3ViZnJhbWUuc3JjID0gJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMv
Z2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9aWZyYW1lJzsKLSAgICBib2R5LmFwcGVuZENoaWxk
KHN1YmZyYW1lKTsKLX0KLWZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkgewotICAgIHZhciBjb250ZXh0
ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChpZnJhbWUuY29udGVudFdpbmRvdy5wZXJmb3JtYW5j
ZSk7Ci0gICAgdmFyIGVudHJpZXMgPSBjb250ZXh0LmdldEVudHJpZXMoKTsKLQotICAgIHZhciBl
eHBlY3RlZF9lbnRyaWVzID0gewotICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5l
cmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1jc3MnOiAnbGluaycsCi0gICAgICAgICcvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdlJzogJ2ltZycsCi0g
ICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBl
PWlmcmFtZSc6ICdpZnJhbWUnLAotICAgIH07Ci0KLSAgICB0ZXN0X3Jlc291cmNlX2VudHJpZXMo
ZW50cmllcywgZXhwZWN0ZWRfZW50cmllcyk7Ci19Ci13aW5kb3cuc2V0dXBfaWZyYW1lID0gc2V0
dXBfaWZyYW1lOwotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxoMT5EZXNjcmlwdGlvbjwv
aDE+Ci08cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgYWxsIG9mIHRoZSBpbml0aWF0b3IgdHlw
ZXMgYXJlIHJlcHJlc2VudGVkIGV2ZW4gd2hlbiBkeW5hbWljYWxseSBpbnNlcnRlZC48L3A+Ci08
ZGl2IGlkPSJsb2ciPjwvZGl2PgotPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBvbmxvYWQ9Im9u
bG9hZF90ZXN0KCk7IiBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvaW5qZWN0X3Jlc291cmNl
X3Rlc3QuaHRtbCI+PC9pZnJhbWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNl
LXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfZnJhbWVfaW5pdGlhdG9yX3R5cGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2ds
ZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2ZyYW1lX2luaXRpYXRvcl90eXBl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVjZjI4OTRmZDJh
YjA1YTkxY2EwYjMzY2YyMTNlMzJkNjRhZjdiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfZnJhbWVf
aW5pdGlhdG9yX3R5cGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBA
Ci1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIGZyYW1lIGluaXRp
YXRvciB0eXBlIGlzIHJlcHJlc2VudGVkLgotCi0KLQotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL2JsYW5rX3BhZ2VfZ3JlZW4uaHRtIGlzIGV4cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlw
ZSBmcmFtZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2Zy
YW1lX2luaXRpYXRvcl90eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2Vf
ZnJhbWVfaW5pdGlhdG9yX3R5cGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGQyNDc5ZjVhN2E4YTczMGUxNGIwYTBmMDllY2YwNDI0NTg1YzNmMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVz
b3VyY2VfZnJhbWVfaW5pdGlhdG9yX3R5cGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04IiAvPgotPHRpdGxlPlJlc291cmNlIFRpbWluZyBmcmFtZSBpbml0aWF0b3IgdHlwZTwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ikdvb2dsZSIgaHJlZj0iaHR0cDovL3d3dy5n
b29nbGUuY29tLyIgLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvcmVzb3VyY2UtdGltaW5nLyNkb20tcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZy1pbml0aWF0
b3J0eXBlIi8+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291
cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LXNldHVwKHtleHBsaWNpdF9kb25lOiB0cnVlfSk7Ci0KLWZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkg
ewotICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZnJhbWVDb250ZXh0IikuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZSk7Ci0g
ICAgdmFyIGVudHJpZXMgPSBjb250ZXh0LmdldEVudHJpZXMoKTsKLQotICAgIHZhciBleHBlY3Rl
ZF9lbnRyaWVzID0gewotICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdl
X2dyZWVuLmh0bSc6ICdmcmFtZScsCi0gICAgfTsKLQotICAgIHRlc3RfcmVzb3VyY2VfZW50cmll
cyhlbnRyaWVzLCBleHBlY3RlZF9lbnRyaWVzKTsKLSAgICBkb25lKCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPGgxPkRlc2NyaXB0aW9uPC9oMT4KLTxwPlRoaXMgdGVzdCB2YWxp
ZGF0ZXMgdGhhdCB0aGUgZnJhbWUgaW5pdGlhdG9yIHR5cGUgaXMgcmVwcmVzZW50ZWQuPC9wPgot
PGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxpZnJhbWUgaWQ9ImZyYW1lQ29udGV4dCIgb25sb2FkPSJv
bmxvYWRfdGVzdCgpOyIgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dyZWVuX2ZyYW1lLmh0
bSIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvaWZyYW1lPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2lm
cmFtZV9zZWxmX25hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0
X3Jlc291cmNlX2lmcmFtZV9zZWxmX25hdmlnYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NDlmZTMwMTRlZmUyYzQzNDFiMTUxOTY3N2E4NjE3NGI1Y2I5
OTRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2Ut
dGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pZnJhbWVfc2VsZl9uYXZpZ2F0aW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0
ZXN0IHZhbGlkYXRlcyB0aGF0IGlmcmFtZXMgdGhhdCBuYXZpZ2F0ZSB0aGVtc2VsdmVzIGRvbid0
IGFwcGVhciBpbiB0aGUgYnVmZmVyLgotCi0KLQotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2luamVjdF9yZXNvdXJjZV90ZXN0Lmh0bWwgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JU
eXBlIGlmcmFtZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNl
X2lmcmFtZV9zZWxmX25hdmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNv
dXJjZV9pZnJhbWVfc2VsZl9uYXZpZ2F0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDcxMDJmM2JjZWVkOGY0ODk2ODliZmQ1N2M2NDM0NGEzYWFiMTljMmQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90
ZXN0X3Jlc291cmNlX2lmcmFtZV9zZWxmX25hdmlnYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPgotPHRpdGxlPlJlc291cmNlIFRpbWluZyBzZWxmIG5hdmlnYXRpbmcg
aWZyYW1lczwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ikdvb2dsZSIgaHJlZj0i
aHR0cDovL3d3dy5nb29nbGUuY29tLyIgLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNkb20tcGVyZm9ybWFuY2VyZXNvdXJjZXRp
bWluZy1pbml0aWF0b3J0eXBlIi8+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93
ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLXNldHVwKHtleHBsaWNpdF9kb25lOiB0cnVlfSk7Ci12YXIgZDsKLXZhciBp
ZnJhbWU7Ci12YXIgaWZyYW1lQm9keTsKLWZ1bmN0aW9uIHNldHVwX2lmcmFtZSgpIHsKLSAgICB2
YXIgaWZyYW1lX2NvbnRlbnQgPSAnPGlmcmFtZSBpZD0iaW5uZXJGcmFtZSIgc3JjPSIvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL2luamVjdF9yZXNvdXJjZV90ZXN0Lmh0bWwiPjwvaWZyYW1lPic7Ci0g
ICAgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lQ29udGV4dCcpOwotICAg
IGQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDsKLSAgICBkLndyaXRlKGlmcmFtZV9j
b250ZW50KTsKLSAgICBpZnJhbWUuY29udGVudFdpbmRvdy5zZXR1cF9pZnJhbWUgPSBzZXR1cF9p
bm5lcl9pZnJhbWU7Ci19Ci1mdW5jdGlvbiBzZXR1cF9pbm5lcl9pZnJhbWUoKSB7Ci0gICAgdmFy
IGlmcmFtZV9jb250ZW50ID0gJzxzY3JpcHQ+d2luZG93LmxvY2F0aW9uID0gIi93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9aWZyYW1lIjs8L3NjcicgKyAn
aXB0Pic7Ci0gICAgdmFyIGlubmVyX2lmcmFtZSA9IGQuZ2V0RWxlbWVudEJ5SWQoJ2lubmVyRnJh
bWUnKTsKLSAgICBpbm5lcl9pZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC53cml0ZShpZnJh
bWVfY29udGVudCk7Ci0gICAgaW5uZXJfaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBv
bmxvYWRfdGVzdCk7Ci19Ci1mdW5jdGlvbiBvbmxvYWRfdGVzdCgpIHsKLSAgICB2YXIgY29udGV4
dCA9IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQoaWZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFu
Y2UpOwotICAgIHZhciBlbnRyaWVzID0gY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJj
ZScpOwotICAgIHZhciBleHBlY3RlZF9lbnRyaWVzID0gewotICAgICAgICAnL3czYy93ZWJwZXJm
L3Jlc291cmNlcy9pbmplY3RfcmVzb3VyY2VfdGVzdC5odG1sJzogJ2lmcmFtZScsCi0gICAgfTsK
LSAgICB0ZXN0X3Jlc291cmNlX2VudHJpZXMoZW50cmllcywgZXhwZWN0ZWRfZW50cmllcyk7Ci0g
ICAgZG9uZSgpOwotfQotd2luZG93LnNldHVwX2lmcmFtZSA9IHNldHVwX2lmcmFtZTsKLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aDE+RGVzY3JpcHRpb248L2gxPgotPHA+VGhpcyB0ZXN0
IHZhbGlkYXRlcyB0aGF0IGlmcmFtZXMgdGhhdCBuYXZpZ2F0ZSB0aGVtc2VsdmVzIGRvbid0IGFw
cGVhciBpbiB0aGUgYnVmZmVyLjwvcD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08aWZyYW1lIGlk
PSJmcmFtZUNvbnRleHQiIHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9pbmplY3RfcmVzb3Vy
Y2VfdGVzdC5odG1sIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3Vy
Y2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pZ25vcmVfZGF0YV91cmwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9y
ZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2lnbm9yZV9kYXRhX3VybC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5MjAwZGI0N2U2NjE5MTgzZDk4
YTIyMmIwMjdmN2FlZmRlNzFlYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9u
L0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2lnbm9yZV9kYXRhX3Vy
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLURlc2NyaXB0aW9u
Ci0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCByZXNvdXJjZXMgd2l0aCBkYXRhOiBVUklzIGFy
ZW4ndCBwcmVzZW50IGluIHRoZSBSZXNvdXJjZSBUaW1pbmcgYnVmZmVyLgotCi0KLQotUEFTUyBl
bnRyaWVzLmxlbmd0aCA9PSAwIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3Rf
cmVzb3VyY2VfaWdub3JlX2RhdGFfdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVz
b3VyY2VfaWdub3JlX2RhdGFfdXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMzNmRiYTI1MTM2NjRlNjVlZTFiM2FhMWIzOGNlOWZjNTA1OTZjNDAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jl
c291cmNlX2lnbm9yZV9kYXRhX3VybC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
IC8+Ci08dGl0bGU+UmVzb3VyY2UgVGltaW5nIGlnbm9yZXMgcmVxdWVzdHMgZm9yIGRhdGE6IFVS
SXM8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJHb29nbGUiIGhyZWY9Imh0dHA6
Ly93d3cuZ29vZ2xlLmNvbS8iIC8+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cu
dzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jZG9tLXBlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmct
aW5pdGlhdG9ydHlwZSIvPgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93
ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci12YXIgaWZyYW1lOwotZnVuY3Rpb24gc2V0dXBfaWZyYW1lKCkgewotICAgIHZhciBp
ZnJhbWVfY29udGVudCA9ICc8aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxo
QVFBQkFJQUFBT1RtN0FBQUFDSDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUNSQUVBT3c9PSI+PC9p
bWc+JzsKLSAgICBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWVDb250ZXh0
Jyk7Ci0gICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQud3JpdGUoaWZyYW1lX2NvbnRl
bnQpOwotfQotZnVuY3Rpb24gb25sb2FkX3Rlc3QoKSB7Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcg
UGVyZm9ybWFuY2VDb250ZXh0KGlmcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1hbmNlKTsKLSAg
ICB2YXIgZW50cmllcyA9IGNvbnRleHQuZ2V0RW50cmllcygpOwotICAgIHRlc3RfdHJ1ZShlbnRy
aWVzLmxlbmd0aCA9PSAwLCAiZW50cmllcy5sZW5ndGggPT0gMCIpOwotfQotd2luZG93LnNldHVw
X2lmcmFtZSA9IHNldHVwX2lmcmFtZTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aDE+
RGVzY3JpcHRpb248L2gxPgotPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHJlc291cmNlcyB3
aXRoIGRhdGE6IFVSSXMgYXJlbid0IHByZXNlbnQgaW4gdGhlIFJlc291cmNlIFRpbWluZyBidWZm
ZXIuPC9wPgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxpZnJhbWUgaWQ9ImZyYW1lQ29udGV4dCIg
b25sb2FkPSJvbmxvYWRfdGVzdCgpOyIgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2luamVj
dF9yZXNvdXJjZV90ZXN0Lmh0bWwiPjwvaWZyYW1lPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2ds
ZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2lnbm9yZV9mYWlsdXJlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
R29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfaWdub3JlX2ZhaWx1cmVz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjcwMjY0OGZlZTM4
YTg2NDcwMGVlNmU2OGI4MmU2MWQxNmQ4ODMxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfaWdub3Jl
X2ZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotRGVz
Y3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IGZhaWxlZCByZXNvdXJjZXMgYXJl
bid0IHByZXNlbnQgaW4gdGhlIFJlc291cmNlIFRpbWluZyBidWZmZXIuCi0KLQotCi1QQVNTIGVu
dHJpZXMubGVuZ3RoID09IDAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9y
ZXNvdXJjZV9pZ25vcmVfZmFpbHVyZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNv
dXJjZV9pZ25vcmVfZmFpbHVyZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTVlNmNkNjg2YTQzOGExNmUwMzMxMWU3YTFhZDgwOTIyZjA1ZmE4NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVz
b3VyY2VfaWdub3JlX2ZhaWx1cmVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIg
Lz4KLTx0aXRsZT5SZXNvdXJjZSBUaW1pbmcgaWdub3JlcyBmYWlsZWQgcmVzb3VyY2VzPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iR29vZ2xlIiBocmVmPSJodHRwOi8vd3d3Lmdv
b2dsZS5jb20vIiAvPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9U
Ui9yZXNvdXJjZS10aW1pbmcvI2RvbS1wZXJmb3JtYW5jZXJlc291cmNldGltaW5nLWluaXRpYXRv
cnR5cGUiLz4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
dmFyIGlmcmFtZTsKLWZ1bmN0aW9uIHNldHVwX2lmcmFtZSgpIHsKLSAgICB2YXIgaWZyYW1lX2Nv
bnRlbnQgPSAnPGltZyBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3Vy
Y2UucGhwP3R5cGU9ZXJyb3IiPjwvaW1nPic7Ci0gICAgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZyYW1lQ29udGV4dCcpOwotICAgIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3Vt
ZW50LndyaXRlKGlmcmFtZV9jb250ZW50KTsKLX0KLWZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkgewot
ICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChpZnJhbWUuY29udGVudFdp
bmRvdy5wZXJmb3JtYW5jZSk7Ci0gICAgdmFyIGVudHJpZXMgPSBjb250ZXh0LmdldEVudHJpZXMo
KTsKLSAgICB0ZXN0X3RydWUoZW50cmllcy5sZW5ndGggPT0gMCwgImVudHJpZXMubGVuZ3RoID09
IDAiKTsKLX0KLXdpbmRvdy5zZXR1cF9pZnJhbWUgPSBzZXR1cF9pZnJhbWU7Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPGgxPkRlc2NyaXB0aW9uPC9oMT4KLTxwPlRoaXMgdGVzdCB2YWxp
ZGF0ZXMgdGhhdCBmYWlsZWQgcmVzb3VyY2VzIGFyZW4ndCBwcmVzZW50IGluIHRoZSBSZXNvdXJj
ZSBUaW1pbmcgYnVmZmVyLjwvcD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08aWZyYW1lIGlkPSJm
cmFtZUNvbnRleHQiIG9ubG9hZD0ib25sb2FkX3Rlc3QoKTsiIHNyYz0iL3czYy93ZWJwZXJmL3Jl
c291cmNlcy9pbmplY3RfcmVzb3VyY2VfdGVzdC5odG1sIj48L2lmcmFtZT4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pbml0aWF0
b3JfdHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2lu
aXRpYXRvcl90eXBlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxYzI3NzcyYTVkNTgyYWIzNTIyYjkwNGQ1OWYzMTdjMDNjODExOGQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jl
c291cmNlX2luaXRpYXRvcl90eXBlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgYWxsIG9m
IHRoZSBpbml0aWF0b3IgdHlwZXMgYXJlIHJlcHJlc2VudGVkLgotCi0KLQotUEFTUyAvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL0FoZW0udHRmIGlzIGV4cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlw
ZSBjc3MgCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfaW1hZ2UucG5nIGlzIGV4
cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlwZSBpbWcgCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNv
dXJjZXMvYmxhbmtfcGFnZV9ncmVlbi5odG0gaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JU
eXBlIGlmcmFtZSAKLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9lbXB0eV9zY3JpcHQuanMg
aXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIHNjcmlwdCAKLVBBU1MgL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1jc3MmaWQ9ZW1iZWQgaXMg
ZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIGVtYmVkIAotUEFTUyAvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWNzcyZpZD1uMSBpcyBleHBlY3Rl
ZCB0byBoYXZlIGluaXRpYXRvclR5cGUgY3NzIAotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWZvbnQmaWQ9bjEgaXMgZXhwZWN0ZWQgdG8gaGF2
ZSBpbml0aWF0b3JUeXBlIGNzcyAKLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0
ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD0xIGlzIGV4cGVjdGVkIHRvIGhhdmUgaW5pdGlh
dG9yVHlwZSBjc3MgCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3Vy
Y2UucGhwP3R5cGU9aW1hZ2UmaWQ9MiBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5cGUg
Y3NzIAotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90
eXBlPWltYWdlJmlkPWFzeW5jX3hociBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5cGUg
eG1saHR0cHJlcXVlc3QgCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVz
b3VyY2UucGhwP3R5cGU9aW1hZ2UmaWQ9Ym9keSBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRv
clR5cGUgYm9keSAKLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJj
ZS5waHA/dHlwZT1pbWFnZSZpZD1pbnB1dCBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5
cGUgaW5wdXQgCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2Uu
cGhwP3R5cGU9aW1hZ2UmaWQ9bjEgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIGNz
cyAKLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlw
ZT1pbWFnZSZpZD1vYmplY3QgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIG9iamVj
dCAKLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlw
ZT1pbWFnZSZpZD1wb3N0ZXIgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIHZpZGVv
IAotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL25lc3RlZC5jc3MgaXMgZXhwZWN0ZWQgdG8g
aGF2ZSBpbml0aWF0b3JUeXBlIGxpbmsgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwv
dGVzdF9yZXNvdXJjZV9pbml0aWF0b3JfdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVz
dF9yZXNvdXJjZV9pbml0aWF0b3JfdHlwZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDE3ZjJjOTZlM2YyMzBiNzEwZGQ5YzQzZDQzZjY1MjNmMmVlZTdiNi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rl
c3RfcmVzb3VyY2VfaW5pdGlhdG9yX3R5cGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+Ci08dGl0bGU+UmVzb3VyY2UgVGltaW5nIGluaXRpYXRvciB0eXBlczwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ikdvb2dsZSIgaHJlZj0iaHR0cDovL3d3dy5nb29n
bGUuY29tLyIgLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
cmVzb3VyY2UtdGltaW5nLyNkb20tcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZy1pbml0aWF0b3J0
eXBlIi8+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNl
cy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXNl
dHVwKHtleHBsaWNpdF9kb25lOiB0cnVlfSk7Ci0KLXZhciBiYWNrZ3JvdW5kX2xvYWRlZCA9IGZh
bHNlOwotdmFyIHBhZ2VfbG9hZGVkID0gZmFsc2U7Ci12YXIgb2xfZm9udF9sb2FkZWQgPSBmYWxz
ZTsKLXZhciB1bF9mb250X2xvYWRlZCA9IGZhbHNlOwotdmFyIHhocl9sb2FkZWQgPSBmYWxzZTsK
LQotZnVuY3Rpb24gY2hlY2tfZmluaXNoZWQoKSB7Ci0gICAgaWYgKCF1bF9mb250X2xvYWRlZCkg
ewotICAgICAgICB1bF9mb250X2xvYWRlZCA9IGNoZWNrX2ZvbnRfbG9hZGVkKCd1bCcpOwotICAg
IH0KLSAgICBpZiAoIW9sX2ZvbnRfbG9hZGVkKSB7Ci0gICAgICAgIG9sX2ZvbnRfbG9hZGVkID0g
Y2hlY2tfZm9udF9sb2FkZWQoJ29sJyk7Ci0gICAgfQotICAgIGlmIChwYWdlX2xvYWRlZCAmJiBv
bF9mb250X2xvYWRlZCAmJiB1bF9mb250X2xvYWRlZCAmJiBiYWNrZ3JvdW5kX2xvYWRlZCAmJiB4
aHJfbG9hZGVkKSB7Ci0gICAgICAgIHBlcmZvcm1fdGVzdCgpOwotICAgIH0KLX0KLQotZnVuY3Rp
b24gY2hlY2tfZm9udF9sb2FkZWQodHlwZSkgewotICAgIHZhciB3aWR0aF92YXJfbmFtZSA9ICdv
cmlnaW5hbF93aWR0aF8nICsgdHlwZTsKLSAgICB2YXIgZWxlbWVudF92YXJfbmFtZSA9ICdlbGVt
ZW50XycgKyB0eXBlOwotICAgIGlmICghdGhpcy5oYXNPd25Qcm9wZXJ0eSh3aWR0aF92YXJfbmFt
ZSkpIHsKLSAgICAgICAgdmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWVDb250
ZXh0JykuY29udGVudFdpbmRvdy5kb2N1bWVudDsKLSAgICAgICAgdmFyIGxpc3QgPSBkLmNyZWF0
ZUVsZW1lbnQodHlwZSk7Ci0gICAgICAgIHZhciBsaSA9IGQuY3JlYXRlRWxlbWVudCgnbGknKTsK
LSAgICAgICAgbGkuaW5uZXJIVE1MID0gJ3dpZHRoX3Rlc3QnOwotICAgICAgICBsaXN0LmFwcGVu
ZENoaWxkKGxpKTsKLSAgICAgICAgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLmFw
cGVuZENoaWxkKGxpc3QpOwotICAgICAgICB0aGlzW2VsZW1lbnRfdmFyX25hbWVdID0gbGlzdDsK
LSAgICAgICAgdGhpc1t3aWR0aF92YXJfbmFtZV0gPSBsaS5vZmZzZXRIZWlnaHQ7Ci0gICAgfQot
ICAgIHJldHVybiB0aGlzW3dpZHRoX3Zhcl9uYW1lXSAhPSB0aGlzW2VsZW1lbnRfdmFyX25hbWVd
Lm9mZnNldEhlaWdodDsKLX0KLQotZnVuY3Rpb24gb25sb2FkX3Rlc3QoKSB7Ci0gICAgcGFnZV9s
b2FkZWQgPSB0cnVlOwotCi0gICAgdmFyIGltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW1nJyk7Ci0gICAgaW1hZ2Uuc3JjID0gJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVf
cmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UmaWQ9bjEnOwotICAgIGJhY2tncm91bmRfbG9hZGVkID0g
aW1hZ2UuY29tcGxldGVkOwotICAgIGlmICghYmFja2dyb3VuZF9sb2FkZWQpIHsKLSAgICAgICAg
aW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kX2xvYWRl
ZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzZXRJbnRlcnZhbChjaGVja19maW5p
c2hlZCwgMTAwKTsKLX0KLQotZnVuY3Rpb24gcGVyZm9ybV90ZXN0KCkgewotICAgIHZhciBjb250
ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJh
bWVDb250ZXh0JykuY29udGVudFdpbmRvdy5wZXJmb3JtYW5jZSk7Ci0gICAgdmFyIGVudHJpZXMg
PSBjb250ZXh0LmdldEVudHJpZXMoKTsKLQotICAgIHZhciBleHBlY3RlZF9lbnRyaWVzID0gewot
ICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9BaGVtLnR0Zic6ICdjc3MnLAotICAgICAg
ICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19pbWFnZS5wbmcnOiAnaW1nJywKLSAgICAg
ICAgJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbi5odG0nOiAnaWZyYW1l
JywKLSAgICAgICAgJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZW1wdHlfc2NyaXB0LmpzJzogJ3Nj
cmlwdCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNl
LnBocD90eXBlPWNzcyZpZD1lbWJlZCc6ICdlbWJlZCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWNzcyZpZD1uMSc6ICdjc3MnLAot
ICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlw
ZT1mb250JmlkPW4xJzogJ2NzcycsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dl
bmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdlJmlkPTEnOiAnY3NzJywKLSAgICAgICAgJy93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UmaWQ9
Mic6ICdjc3MnLAotICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNv
dXJjZS5waHA/dHlwZT1pbWFnZSZpZD1hc3luY194aHInOiAneG1saHR0cHJlcXVlc3QnLAotICAg
ICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1p
bWFnZSZpZD1ib2R5JzogJ2JvZHknLAotICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9n
ZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZpZD1pbnB1dCc6ICdpbnB1dCcsCi0gICAg
ICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPWlt
YWdlJmlkPW4xJzogJ2NzcycsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVy
YXRlX3Jlc291cmNlLnBocD90eXBlPWltYWdlJmlkPW9iamVjdCc6ICdvYmplY3QnLAotICAgICAg
ICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFn
ZSZpZD1wb3N0ZXInOiAndmlkZW8nLAotICAgICAgICAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9u
ZXN0ZWQuY3NzJzogJ2xpbmsnLAotICAgIH07Ci0KLSAgICB0ZXN0X3Jlc291cmNlX2VudHJpZXMo
ZW50cmllcywgZXhwZWN0ZWRfZW50cmllcyk7Ci0gICAgZG9uZSgpOwotfQotCi13aW5kb3cub25f
dGVzdF9ib2R5X2NyZWF0ZWQgPSBjaGVja19maW5pc2hlZDsKLXdpbmRvdy5vbl9hc3luY194aHJf
ZG9uZSA9IGZ1bmN0aW9uKCkgewotICAgIHhocl9sb2FkZWQgPSB0cnVlOwotICAgIGNoZWNrX2Zp
bmlzaGVkKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGgxPkRlc2NyaXB0aW9u
PC9oMT4KLTxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCBhbGwgb2YgdGhlIGluaXRpYXRvciB0
eXBlcyBhcmUgcmVwcmVzZW50ZWQuPC9wPgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxpZnJhbWUg
aWQ9ImZyYW1lQ29udGV4dCIgb25sb2FkPSJvbmxvYWRfdGVzdCgpOyIgc3JjPSIvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2FsbF9yZXNvdXJjZV90eXBlcy5odG0iIHN0eWxlPSJ3aWR0aDogMjUwcHg7
IGhlaWdodDogMjUwcHg7Ij48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVz
b3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9yZWRpcmVjdHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNv
dXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3JlZGlyZWN0cy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3ODk4ZDA2ZTU5M2RmNmRiNjU4NTlhNzM4MmU0
YTdjYzY3YTY2YjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9y
ZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3JlZGlyZWN0cy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoYXQgcmVkaXJlY3RzIGRvIG5vdCBhbHRlciB0aGUgVVJMLgotCi0KLQotUEFT
UyAvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9sb2NhdGlvbj0vdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocCUzRnR5cGU9Y3NzIGlzIGV4cGVjdGVk
IHRvIGhhdmUgaW5pdGlhdG9yVHlwZSBsaW5rIAotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD9sb2NhdGlvbj0vdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jl
c291cmNlLnBocCUzRnR5cGU9aWZyYW1lIGlzIGV4cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlw
ZSBpZnJhbWUgCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP2xvY2F0
aW9uPS93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwJTNGdHlwZT1p
ZnJhbWUlMjZpZD14aHIgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIHhtbGh0dHBy
ZXF1ZXN0IAotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9sb2NhdGlv
bj0vdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocCUzRnR5cGU9aW1h
Z2UgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIGltZyAKLVBBU1MgL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/bG9jYXRpb249L3czYy93ZWJwZXJmL3Jlc291cmNl
cy9nZW5lcmF0ZV9yZXNvdXJjZS5waHAlM0Z0eXBlPXNjcmlwdCBpcyBleHBlY3RlZCB0byBoYXZl
IGluaXRpYXRvclR5cGUgc2NyaXB0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rl
c3RfcmVzb3VyY2VfcmVkaXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3Vy
Y2VfcmVkaXJlY3RzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NjYxYjgy
OGE1OGM5NzU5MzI0MDViMjhjMjE4NjgxMzA4ZDJjYmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3Jl
ZGlyZWN0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci08dGl0bGU+UmVz
b3VyY2UgVGltaW5nIHJlZGlyZWN0IG5hbWVzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iR29vZ2xlIiBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiAvPgotPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZv
cm1hbmNlcmVzb3VyY2V0aW1pbmciLz4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNv
dXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNj
L3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotdmFyIGlmcmFtZTsKLWZ1bmN0aW9uIHNldHVwX2lmcmFtZSgpIHsKLSAg
ICB2YXIgaWZyYW1lX2NvbnRlbnQgPQotICAgICAgICAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9sb2NhdGlvbj0vdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocCUzRnR5cGU9Y3NzIj48L2xpbms+
JyArCi0gICAgICAgICc8aW1nIHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHA/bG9jYXRpb249L3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHAl
M0Z0eXBlPWltYWdlIj48L2ltZz4nICsKLSAgICAgICAgJzxpZnJhbWUgc3JjPSIvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9sb2NhdGlvbj0vdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2dlbmVyYXRlX3Jlc291cmNlLnBocCUzRnR5cGU9aWZyYW1lIj48L2lmcmFtZT4nICsKLSAgICAg
ICAgJzxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9sb2Nh
dGlvbj0vdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocCUzRnR5cGU9
c2NyaXB0Ij48L3NjcicgKyAnaXB0PicgKwotICAgICAgICAnPHNjcmlwdD4nICsKLSAgICAgICAg
J3ZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7JyArCi0gICAgICAgICd4aHIub3BlbigiR0VU
IiwgIi93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP2xvY2F0aW9uPS93M2Mvd2Vi
cGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwJTNGdHlwZT1pZnJhbWUlMjZpZD14
aHIiLCBmYWxzZSk7JyArCi0gICAgICAgICd4aHIuc2VuZCgpOycgKwotICAgICAgICAnPC9zY3In
ICsgJ2lwdD4nOwotICAgIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZUNv
bnRleHQnKTsKLSAgICBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC53cml0ZShpZnJhbWVf
Y29udGVudCk7Ci19Ci1mdW5jdGlvbiBvbmxvYWRfdGVzdCgpIHsKLSAgICB2YXIgY29udGV4dCA9
IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQoaWZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2Up
OwotICAgIHZhciBlbnRyaWVzID0gY29udGV4dC5nZXRFbnRyaWVzKCk7Ci0KLSAgICB2YXIgZXhw
ZWN0ZWRfZW50cmllcyA9IHsKLSAgICAgICAgJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP2xvY2F0aW9uPS93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2Uu
cGhwJTNGdHlwZT1jc3MnOiAnbGluaycsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD9sb2NhdGlvbj0vdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jl
c291cmNlLnBocCUzRnR5cGU9aW1hZ2UnOiAnaW1nJywKLSAgICAgICAgJy93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP2xvY2F0aW9uPS93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2Vu
ZXJhdGVfcmVzb3VyY2UucGhwJTNGdHlwZT1pZnJhbWUnOiAnaWZyYW1lJywKLSAgICAgICAgJy93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP2xvY2F0aW9uPS93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwJTNGdHlwZT1zY3JpcHQnOiAnc2NyaXB0JywK
LSAgICAgICAgJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP2xvY2F0aW9uPS93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwJTNGdHlwZT1pZnJhbWUl
MjZpZD14aHInOiAneG1saHR0cHJlcXVlc3QnLAotICAgIH07Ci0KLSAgICB0ZXN0X3Jlc291cmNl
X2VudHJpZXMoZW50cmllcywgZXhwZWN0ZWRfZW50cmllcyk7Ci19Ci13aW5kb3cuc2V0dXBfaWZy
YW1lID0gc2V0dXBfaWZyYW1lOwotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxoMT5EZXNj
cmlwdGlvbjwvaDE+Ci08cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgcmVkaXJlY3RzIGRvIG5v
dCBhbHRlciB0aGUgVVJMLjwvcD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08aWZyYW1lIGlkPSJm
cmFtZUNvbnRleHQiIG9ubG9hZD0ib25sb2FkX3Rlc3QoKTsiIHNyYz0iL3czYy93ZWJwZXJmL3Jl
c291cmNlcy9pbmplY3RfcmVzb3VyY2VfdGVzdC5odG1sIj48L2lmcmFtZT4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9yZXBhcmVu
dGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfcmVwYXJl
bnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODVhNzZi
MTJmNjQxMTNlNTk5YmRkMmNlYzlhZmRmZDAwNzlmMjhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9y
ZXBhcmVudGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLURl
c2NyaXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCByZXBhcmVudGluZyBhbiBlbGVt
ZW50IGRvZXNuJ3QgY2hhbmdlIHRoZSBpbml0aWF0b3IgZG9jdW1lbnQuCi0KLSAgCi0KLVBBU1Mg
L3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZp
ZD1tb3ZlX3RvX3BhcmVudCBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5cGUgaW1nIAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfcmVwYXJlbnRpbmcu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29n
bGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9yZXBhcmVudGluZy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTdlNGE4ZDJlOTJhYzg2MTc4MGE5YzllY2Yy
NzdmNmJlZjIzNjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUv
cmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9yZXBhcmVudGluZy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci08dGl0bGU+UmVzb3VyY2UgVGltaW5nIHJlcGFy
ZW50aW5nIGVsZW1lbnRzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iR29vZ2xl
IiBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiAvPgotPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI2RvbS1wZXJmb3JtYW5jZXJl
c291cmNldGltaW5nLWluaXRpYXRvcnR5cGUiLz4KLTxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGlmcmFtZTsKLWZ1bmN0aW9uIHNldHVwX2lmcmFtZSgp
IHsKLSAgICBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWVDb250ZXh0Jyk7
Ci0gICAgdmFyIGQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDsKLSAgICB2YXIgaWZy
YW1lQm9keSA9IGQuY3JlYXRlRWxlbWVudCgnYm9keScpOwotCi0gICAgdmFyIG1vdmVfdG9fcGFy
ZW50ID0gZC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICBtb3ZlX3RvX3BhcmVudC5zcmMgPSAn
L3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZp
ZD1tb3ZlX3RvX3BhcmVudCc7Ci0gICAgaWZyYW1lQm9keS5hcHBlbmRDaGlsZChtb3ZlX3RvX3Bh
cmVudCk7Ci0gICAgaWZyYW1lQm9keS5yZW1vdmVDaGlsZChtb3ZlX3RvX3BhcmVudCk7Ci0KLSAg
ICB2YXIgcGFyZW50Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5Jylb
MF07Ci0gICAgcGFyZW50Qm9keS5hcHBlbmRDaGlsZChtb3ZlX3RvX3BhcmVudCk7Ci0KLSAgICB2
YXIgbW92ZV90b19jaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgIG1v
dmVfdG9fY2hpbGQuc3JjID0gJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3Vy
Y2UucGhwP3R5cGU9aW1hZ2UmaWQ9bW92ZV90b19jaGlsZCc7Ci0gICAgcGFyZW50Qm9keS5hcHBl
bmRDaGlsZChtb3ZlX3RvX2NoaWxkKTsKLSAgICBwYXJlbnRCb2R5LnJlbW92ZUNoaWxkKG1vdmVf
dG9fY2hpbGQpOwotICAgIGlmcmFtZUJvZHkuYXBwZW5kQ2hpbGQobW92ZV90b19jaGlsZCk7Ci19
Ci1mdW5jdGlvbiBvbmxvYWRfdGVzdCgpIHsKLSAgICB2YXIgY29udGV4dCA9IG5ldyBQZXJmb3Jt
YW5jZUNvbnRleHQoaWZyYW1lLmNvbnRlbnRXaW5kb3cucGVyZm9ybWFuY2UpOwotICAgIHZhciBl
bnRyaWVzID0gY29udGV4dC5nZXRFbnRyaWVzKCk7Ci0KLSAgICB2YXIgZXhwZWN0ZWRfZW50cmll
cyA9IHsKLSAgICAgICAgJy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2Uu
cGhwP3R5cGU9aW1hZ2UmaWQ9bW92ZV90b19wYXJlbnQnOiAnaW1nJywKLSAgICB9OwotCi0gICAg
dGVzdF9yZXNvdXJjZV9lbnRyaWVzKGVudHJpZXMsIGV4cGVjdGVkX2VudHJpZXMpOwotfQotd2lu
ZG93LnNldHVwX2lmcmFtZSA9IHNldHVwX2lmcmFtZTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08aDE+RGVzY3JpcHRpb248L2gxPgotPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHJl
cGFyZW50aW5nIGFuIGVsZW1lbnQgZG9lc24ndCBjaGFuZ2UgdGhlIGluaXRpYXRvciBkb2N1bWVu
dC48L3A+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBv
bmxvYWQ9Im9ubG9hZF90ZXN0KCk7IiBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvaW5qZWN0
X3Jlc291cmNlX3Rlc3QuaHRtbCI+PC9pZnJhbWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xl
L3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2Vfc2NyaXB0X3R5cGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29n
bGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9zY3JpcHRfdHlwZXMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmM2ZjkzODVmNDE5Y2FiNGQ4
OWVkMTA3YTZmOTUxYjhiNjlkNzIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9zY3JpcHRfdHlwZXMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotRGVzY3JpcHRpb24K
LQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IGFsbCBvZiB0aGUgZGlmZmVyZW50IHR5cGVzIG9m
IHNjcmlwdCBsb2FkcyBhcmUgcmVwb3J0ZWQgd2l0aCB0aGUgY29ycmVjdCBpbml0aWF0b3IuCi0K
LQotCi1QQVNTIC93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5
cGU9c2NyaXB0JmlkPTEgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIHNjcmlwdCAK
LVBBU1MgL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1z
Y3JpcHQmaWQ9MiBpcyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5cGUgc2NyaXB0IAotUEFT
UyAvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlw
dCZpZD0zIGlzIGV4cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlwZSBzY3JpcHQgCi1QQVNTIC93
M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9c2NyaXB0Jmlk
PTQgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIHNjcmlwdCAKLVBBU1MgL3czYy93
ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1zY3JpcHQmaWQ9NSBp
cyBleHBlY3RlZCB0byBoYXZlIGluaXRpYXRvclR5cGUgc2NyaXB0IAotUEFTUyAvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD02IGlzIGV4
cGVjdGVkIHRvIGhhdmUgaW5pdGlhdG9yVHlwZSBzY3JpcHQgCi1QQVNTIC93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9c2NyaXB0JmlkPTcgaXMgZXhwZWN0
ZWQgdG8gaGF2ZSBpbml0aWF0b3JUeXBlIHNjcmlwdCAKLVBBU1MgL3czYy93ZWJwZXJmL3Jlc291
cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1zY3JpcHQmaWQ9OCBpcyBleHBlY3RlZCB0
byBoYXZlIGluaXRpYXRvclR5cGUgc2NyaXB0IAotUEFTUyAvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD05IGlzIGV4cGVjdGVkIHRvIGhh
dmUgaW5pdGlhdG9yVHlwZSBzY3JpcHQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwv
dGVzdF9yZXNvdXJjZV9zY3JpcHRfdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9y
ZXNvdXJjZV9zY3JpcHRfdHlwZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGY1Mjk2YjFjM2M5NDA0ZmI2NDdmZDJlYTdlN2M0NDVjODZmZTZiOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVz
b3VyY2Vfc2NyaXB0X3R5cGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4K
LTx0aXRsZT5SZXNvdXJjZSBUaW1pbmcgc2NyaXB0IGluaXRpYXRvciB0eXBlczwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ikdvb2dsZSIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUu
Y29tLyIgLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVz
b3VyY2UtdGltaW5nLyNkb20tcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZy1pbml0aWF0b3J0eXBl
Ii8+Ci08c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93
ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBp
ZnJhbWU7Ci1mdW5jdGlvbiBzZXR1cF9pZnJhbWUoKSB7Ci0gICAgdmFyIGlmcmFtZV9jb250ZW50
ID0KLSAgICAgICAgJzxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRl
X3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD0xIj48L3NjcicgKyAnaXB0PicgKwotICAgICAg
ICAnPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2Uu
cGhwP3R5cGU9c2NyaXB0JmlkPTIiIGFzeW5jPjwvc2NyJyArICdpcHQ+JyArCi0gICAgICAgICc8
c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/
dHlwZT1zY3JpcHQmaWQ9MyIgYXN5bmM9ZmFsc2U+PC9zY3InICsgJ2lwdD4nICsKLSAgICAgICAg
JzxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBo
cD90eXBlPXNjcmlwdCZpZD00IiBkZWZlcj48L3NjcicgKyAnaXB0PicgKwotICAgICAgICAnPHNj
cmlwdD4nICsKLSAgICAgICAgJ2RvY3VtZW50LndyaXRlKCI8c2NyaXB0IHNyYz1cXCIvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD01XFwi
Pjwvc2NyIiArICJpcHQ+Iik7JyArCi0gICAgICAgICd2YXIgczEgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzY3JpcHQiKTsnICsKLSAgICAgICAgJ3MxLnNyYyA9ICIvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD02IjsnICsKLSAgICAg
ICAgJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQo
czEpOycgKwotICAgICAgICAndmFyIHMyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0
Iik7JyArCi0gICAgICAgICdzMi5zcmMgPSAiL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0
ZV9yZXNvdXJjZS5waHA/dHlwZT1zY3JpcHQmaWQ9NyI7JyArCi0gICAgICAgICdzMi5hc3luYyA9
IHRydWU7JyArCi0gICAgICAgICdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIp
WzBdLmFwcGVuZENoaWxkKHMyKTsnICsKLSAgICAgICAgJ3ZhciBzMyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNjcmlwdCIpOycgKwotICAgICAgICAnczMuc3JjID0gIi93M2Mvd2VicGVyZi9y
ZXNvdXJjZXMvZ2VuZXJhdGVfcmVzb3VyY2UucGhwP3R5cGU9c2NyaXB0JmlkPTgiOycgKwotICAg
ICAgICAnczMuYXN5bmMgPSBmYWxzZTsnICsKLSAgICAgICAgJ2RvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoczMpOycgKwotICAgICAgICAndmFyIHM0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7JyArCi0gICAgICAgICdzNC5zcmMg
PSAiL3czYy93ZWJwZXJmL3Jlc291cmNlcy9nZW5lcmF0ZV9yZXNvdXJjZS5waHA/dHlwZT1zY3Jp
cHQmaWQ9OSI7JyArCi0gICAgICAgICdzNC5kZWZlciA9IHRydWU7JyArCi0gICAgICAgICdkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHM0KTsnICsK
LSAgICAgICAgJzwvc2NyJyArICdpcHQ+JzsKLSAgICBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZnJhbWVDb250ZXh0Jyk7Ci0gICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQud3JpdGUoaWZyYW1lX2NvbnRlbnQpOwotfQotZnVuY3Rpb24gb25sb2FkX3Rlc3QoKSB7Ci0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KGlmcmFtZS5jb250ZW50V2lu
ZG93LnBlcmZvcm1hbmNlKTsKLSAgICB2YXIgZW50cmllcyA9IGNvbnRleHQuZ2V0RW50cmllcygp
OwotCi0gICAgdmFyIGV4cGVjdGVkX2VudHJpZXMgPSB7Ci0gICAgICAgICcvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD0xJzogJ3Njcmlw
dCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBo
cD90eXBlPXNjcmlwdCZpZD0yJzogJ3NjcmlwdCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD0zJzogJ3NjcmlwdCcs
Ci0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90
eXBlPXNjcmlwdCZpZD00JzogJ3NjcmlwdCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD01JzogJ3NjcmlwdCcsCi0g
ICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBl
PXNjcmlwdCZpZD02JzogJ3NjcmlwdCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD03JzogJ3NjcmlwdCcsCi0gICAg
ICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dlbmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNj
cmlwdCZpZD04JzogJ3NjcmlwdCcsCi0gICAgICAgICcvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2dl
bmVyYXRlX3Jlc291cmNlLnBocD90eXBlPXNjcmlwdCZpZD05JzogJ3NjcmlwdCcsCi0gICAgfTsK
LQotICAgIHRlc3RfcmVzb3VyY2VfZW50cmllcyhlbnRyaWVzLCBleHBlY3RlZF9lbnRyaWVzKTsK
LX0KLXdpbmRvdy5zZXR1cF9pZnJhbWUgPSBzZXR1cF9pZnJhbWU7Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGgxPkRlc2NyaXB0aW9uPC9oMT4KLTxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhhdCBhbGwgb2YgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBzY3JpcHQgbG9hZHMgYXJlIHJlcG9y
dGVkIHdpdGggdGhlIGNvcnJlY3QgaW5pdGlhdG9yLjwvcAotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
LTxpZnJhbWUgaWQ9ImZyYW1lQ29udGV4dCIgb25sb2FkPSJvbmxvYWRfdGVzdCgpOyIgc3JjPSIv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL2luamVjdF9yZXNvdXJjZV90ZXN0Lmh0bWwiPjwvaWZyYW1l
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291
cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRl
X2VudHJpZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWYx
MDE2MTJiMDY2ZjJmZGM1NWQwMmI5NzczODNkZDc1ZmVmZDhjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1p
bmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9lbnRyaWVzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDcgKzAsMCBAQAotRGVzY3JpcHRpb24NCi0NCi1UaGlzIHRlc3QgdmFsaWRh
dGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIGluIHJl
c291cmNlIHRpbWluZy4NCi0NCi0NCi1QQVNTIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIHNo
b3VsZCBoYXZlIGJlZW4gaW52b2tlZCBvbmNlIGJ1ZmZlciBpcyBmdWxsISANCi0NCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fcG9w
dWxhdGVfZW50cmllcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZm
ZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzM5MmE0YjExM2RiMTdkYmNiMTJmZjlhZDg2YjIxYmFmMzFlNjA3OS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fcG9wdWxhdGVfZW50cmllcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+DQotPGh0bWw+DQot
ICAgIDxoZWFkPg0KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQotICAgICAgICA8
dGl0bGU+b25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgY2FsbGJhY2sgb2YgcmVzb3VyY2UgdGlt
aW5nPC90aXRsZT4NCi0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2Ny
aXB0Pg0KLSAgICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChw
ZXJmb3JtYW5jZSk7DQotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsNCi0gICAgICAgICAgICBm
dW5jdGlvbiBidWZmZXJfZnVsbF9jYWxsX2JhY2soKQ0KLSAgICAgICAgICAgIHsNCi0gICAgICAg
ICAgICAgICAgY291bnQrKzsNCi0gICAgICAgICAgICB9DQotICAgICAgICAgICAgY29udGV4dC5y
ZWdpc3RlclJlc291cmNlVGltaW5nQnVmZmVyRnVsbENhbGxiYWNrKGJ1ZmZlcl9mdWxsX2NhbGxf
YmFjayk7DQotICAgICAgICAgICAgY29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUo
Mik7DQotICAgICAgICA8L3NjcmlwdD4NCi0gICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4NCi0gICAgICAgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNw
ZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4NCi0gICAgICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0Pg0KLSAgICAgICAgICAgIHNldHVwKHsgZXhw
bGljaXRfZG9uZTogdHJ1ZSB9KTsgICAgICAgICAgICANCi0gICAgICAgICAgICBmdW5jdGlvbiBv
bmxvYWRfdGVzdCgpDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICB0ZXN0X2VxdWFs
cyhjb3VudCwgMSwgIm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIHNob3VsZCBoYXZlIGJlZW4g
aW52b2tlZCBvbmNlIGJ1ZmZlciBpcyBmdWxsISIpOw0KLSAgICAgICAgICAgICAgICBkb25lKCk7
ICAgICAgICAgICAgICAgIA0KLSAgICAgICAgICAgIH0NCi0gICAgICAgIDwvc2NyaXB0Pg0KLSAg
ICA8L2hlYWQ+DQotICAgIDxib2R5IG9ubG9hZD1vbmxvYWRfdGVzdCgpPg0KLSAgICAgICAgPGgx
PkRlc2NyaXB0aW9uPC9oMT4NCi0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1
bmN0aW9uYWxpdHkgb2Ygb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgaW4gcmVzb3VyY2UgdGlt
aW5nLjwvcD4NCi0gICAgPC9ib2R5Pg0KLTwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5n
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fc2hyaW5rX2J1ZmZlcl9zaXpl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1
bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmNjIxZmFmMTFiZWQ2N2IzYzkzMThmMzVkMTkyOTUzZDVmZGIwNmY0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcv
dGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1EZXNjcmlwdGlvbg0K
LQ0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Ygb25yZXNvdXJjZXRp
bWluZ2J1ZmZlcmZ1bGwgaW4gcmVzb3VyY2UgdGltaW5nLg0KLQ0KLQ0KLVBBU1Mgb25yZXNvdXJj
ZXRpbWluZ2J1ZmZlcmZ1bGwgc2hvdWxkIGJlIGludm9rZWQgb25jZSB0aGUgYnVmZmVyIGlzIHNo
cnVuayB0byBzaXplIHdoaWNoIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBjdXJyZW50IGVudHJ5
IG51bWJlciEgDQotDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWlu
Z19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZmZXJfc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90
ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZmZXJfc2l6ZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2RkNDkyNDlkYTUyNjg2ZDAxNDVh
YWFlYzA3OTcwYjVjMGQ2NmI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hl
bl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MPg0KLTxodG1sPg0KLSAgICA8aGVhZD4NCi0gICAgICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPg0KLSAgICAgICAgPHRpdGxlPm9ucmVzb3VyY2V0aW1pbmdidWZmZXJm
dWxsIGNhbGxiYWNrIG9mIHJlc291cmNlIHRpbWluZzwvdGl0bGU+DQotICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24u
anMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdD4NCi0gICAgICAgICAgICB2YXIgY29udGV4
dCA9IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQocGVyZm9ybWFuY2UpOw0KLSAgICAgICAgICAgIHZh
ciBjb3VudCA9IDA7DQotICAgICAgICAgICAgZnVuY3Rpb24gYnVmZmVyX2Z1bGxfY2FsbF9iYWNr
KCkNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIGNvdW50Kys7DQotICAgICAgICAg
ICAgfQ0KLQ0KLSAgICAgICAgICAgIGNvbnRleHQucmVnaXN0ZXJSZXNvdXJjZVRpbWluZ0J1ZmZl
ckZ1bGxDYWxsYmFjayhidWZmZXJfZnVsbF9jYWxsX2JhY2spOw0KLSAgICAgICAgPC9zY3JpcHQ+
DQotICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8v
d3d3LmludGVsLmNvbS8iIC8+DQotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6
Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWlu
ZyIvPg0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4NCi0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJw
ZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KLSAgICAgICAg
PHNjcmlwdD4NCi0gICAgICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7ICAg
ICAgICAgICAgDQotICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0KLSAgICAgICAg
ICAgIHsNCi0gICAgICAgICAgICAgICAgY29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNp
emUoMyk7DQotICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJT
aXplKDIpOw0KLSAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb3VudCwgMiwgIm9ucmVzb3Vy
Y2V0aW1pbmdidWZmZXJmdWxsIHNob3VsZCBiZSBpbnZva2VkIG9uY2UgdGhlIGJ1ZmZlciBpcyBz
aHJ1bmsgdG8gc2l6ZSB3aGljaCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gY3VycmVudCBlbnRy
eSBudW1iZXIhIik7DQotICAgICAgICAgICAgICAgIGRvbmUoKTsgICAgICAgICAgICAgICAgDQot
ICAgICAgICAgICAgfQ0KLSAgICAgICAgPC9zY3JpcHQ+DQotICAgIDwvaGVhZD4NCi0gICAgPGJv
ZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+DQotICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPg0K
LSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBvbnJl
c291cmNldGltaW5nYnVmZmVyZnVsbCBpbiByZXNvdXJjZSB0aW1pbmcuPC9wPg0KLSAgICA8L2Jv
ZHk+DQotPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1p
bmdfYnVmZmVyX3NpemVfcmVzdHJpY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhODQ0OTE3N2FmMjc4Zjc2YWI2NTQ2OGQ2Yzc2
OGU0MjI4NmM0OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlv
bi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLURlc2NyaXB0aW9u
DQotDQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBzZXRSZXNvdXJj
ZVRpbWluZ0J1ZmZlclNpemUgbWV0aG9kIGluIHJlc291cmNlIHRpbWluZy4NCi0NCi0NCi1QQVNT
IDIgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hvdWxkIGJlIHN0b3JlZCBzaW5jZSBidWZmZXIg
c2l6ZSBpcyAyISANCi0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGlt
aW5nX2J1ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3Vy
Y2VfdGltaW5nX2J1ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc5MTY3ZjA0YWU0MTJiNGJhODU2NWRmZGYzMjg4MTE4ZjE0NjkzN2YuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90
ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+DQotPGh0bWw+DQotICAgIDxo
ZWFkPg0KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQotICAgICAgICA8dGl0bGU+
YnVmZmVyIHNpemUgcmVzdHJpY3Rpb24gZnVuY3Rpb25hbGl0eSBvZiByZXNvdXJjZSB0aW1pbmc8
L3RpdGxlPg0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2Vi
cGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4NCi0gICAgICAgIDxzY3JpcHQ+
DQotICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHBlcmZv
cm1hbmNlKTsNCi0gICAgICAgICAgICB2YXIgYnVmZmVyX3NpemUgPSAyOw0KLSAgICAgICAgICAg
IGNvbnRleHQuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKGJ1ZmZlcl9zaXplKTsNCi0gICAg
ICAgIDwvc2NyaXB0Pg0KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNl
cmVzb3VyY2V0aW1pbmciLz4NCi0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4NCi0gICAgICAgIDxzY3JpcHQ+DQotICAgICAgICAgICAgc2V0dXAoeyBleHBsaWNpdF9kb25l
OiB0cnVlIH0pOyAgICAgICAgICAgIA0KLSAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0
KCkNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGNvbnRleHQu
Z2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKS5sZW5ndGgsIGJ1ZmZlcl9zaXplLCBidWZmZXJf
c2l6ZSArICIgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hvdWxkIGJlIHN0b3JlZCBzaW5jZSBi
dWZmZXIgc2l6ZSBpcyAiICsgYnVmZmVyX3NpemUgKyAiISIpOw0KLSAgICAgICAgICAgICAgICBk
b25lKCk7ICAgICAgICAgICAgICAgIA0KLSAgICAgICAgICAgIH0NCi0gICAgICAgIDwvc2NyaXB0
Pg0KLSAgICA8L2hlYWQ+DQotICAgIDxib2R5IG9ubG9hZD1vbmxvYWRfdGVzdCgpPg0KLSAgICAg
ICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCi0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhlIGZ1bmN0aW9uYWxpdHkgb2Ygc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplIG1ldGhvZCBp
biByZXNvdXJjZSB0aW1pbmcuPC9wPg0KLSAgICA8L2JvZHk+DQotPC9odG1sPg0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5n
X2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3Rp
bWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0eS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzODI1MGJlNDlhNTJkNDY4NDhiODJiMzVlYmQ0
NTA1MTNkZGMwYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdf
ZnVuY3Rpb25hbGl0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAK
LURlc2NyaXB0aW9uDQotDQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjbGVhclJlc291cmNlVGltaW5ncyBtZXRob2QgaW4gcmVzb3VyY2UgdGltaW5nLg0KLQ0KLQ0K
LVBBU1MgNCByZXNvdXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUgc3RvcmVkIGluIHRoaXMg
cGFnZSEgDQotUEFTUyBObyByZXNvdXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUgc3RvcmVk
IGFmdGVyIGNsZWFyUmVzb3VyY2VUaW1pbmdzISANCi0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5n
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jlc291cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50
ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jlc291cmNlX3Rp
bWluZ19mdW5jdGlvbmFsaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3
YzI2ZmIwMzRmMDAxMTdlMTBiZGQ0YjQ0OTI2MjllZjk3MTMwZGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3Rp
bWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0eS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+DQotPGh0bWw+DQotICAgIDxoZWFk
Pg0KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQotICAgICAgICA8dGl0bGU+Y2xl
YXJSZXNvdXJjZVRpbWluZ3MgZnVuY3Rpb25hbGl0eSBvZiByZXNvdXJjZSB0aW1pbmc8L3RpdGxl
Pg0KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20vIiAvPg0KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1p
bmciLz4NCi0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2Vi
cGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCi0gICAgICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4
dGVuc2lvbi5qcyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0Pg0KLSAgICAgICAgICAgIHNl
dHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsNCi0gICAgICAgICAgICB2YXIgY29udGV4dCA9
IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQocGVyZm9ybWFuY2UpOw0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIG9ubG9hZF90ZXN0KCkNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIHRlc3Rf
ZXF1YWxzKGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKS5sZW5ndGgsIDQsIDQg
KyAiIHJlc291cmNlIHRpbWluZyBlbnRyaWVzIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhpcyBwYWdl
ISIpOw0KLSAgICAgICAgICAgICAgICBjb250ZXh0LmNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7DQot
ICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgicmVz
b3VyY2UiKS5sZW5ndGgsIDAsICJObyByZXNvdXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUg
c3RvcmVkIGFmdGVyIGNsZWFyUmVzb3VyY2VUaW1pbmdzISIpOw0KLSAgICAgICAgICAgICAgICBk
b25lKCk7DQotICAgICAgICAgICAgfQ0KLSAgICAgICAgPC9zY3JpcHQ+DQotICAgIDwvaGVhZD4N
Ci0gICAgPGJvZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+DQotICAgICAgICA8aDE+RGVzY3JpcHRp
b248L2gxPg0KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0
eSBvZiBjbGVhclJlc291cmNlVGltaW5ncyBtZXRob2QgaW4gcmVzb3VyY2UgdGltaW5nLjwvcD4N
Ci0gICAgPC9ib2R5Pg0KLTwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNv
dXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3Jl
cXVlc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTdlZmU1
Y2I5NWY3ZTU2OWY4ZGE1NDllYjY1ZjJjNGM2YmQxZWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdf
Y3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjAgKzAsMCBAQAotRGVzY3JpcHRpb24NCi0NCi1UaGlzIHRlc3QgdmFsaWRhdGVzIHRo
ZSB2YWx1ZXMgaW4gcmVzb3VyY2UgdGltaW5nIGZvciBhIGNyb3NzLW9yaWdpbiByZXNvdXJjZSBy
ZXF1ZXN0Lg0KLQ0KLQ0KLQ0KLQ0KLVBBU1MgU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9z
dG5hbWUgaXMgY29ycmVjdCAoMTI3LjAuMC4xOjgwMDApIA0KLVBBU1MgcmVkaXJlY3RTdGFydCBz
aG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQotUEFTUyByZWRpcmVjdEVuZCBz
aG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQotUEFTUyBkb21haW5Mb29rdXBT
dGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQotUEFTUyBkb21haW5M
b29rdXBFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KLVBBU1MgY29u
bmVjdFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCi1QQVNTIGNv
bm5lY3RFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KLVBBU1MgcmVx
dWVzdFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCi1QQVNTIHJl
c3BvbnNlU3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KLVBBU1Mg
c2VjdXJlQ29ubmVjdGlvblN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0
ISANCi1QQVNTIGZldGNoU3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9y
aWdpbiByZXF1ZXN0ISANCi1QQVNTIHJlc3BvbnNlRW5kIHNob3VsZCBiZSBncmVhdGVyIHRoYW4g
MCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQotDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90
ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291
cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVx
dWVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNmY3NGE2ZWM3MzEwYjQz
NjRkNjU1MWY0Mjc3OGU3MGYzNzkyNmNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY3Jvc3Nfb3Jp
Z2luX3Jlc291cmNlX3JlcXVlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MPg0KLTxodG1sPg0KLSAgICA8aGVhZD4NCi0gICAgICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPg0KLSAgICAgICAgPHRpdGxlPnJlc291cmNlIHRpbWluZyBpbmZvcm1h
dGlvbiBmb3IgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHJlcXVlc3Q8L3RpdGxlPg0KLSAgICAgICAg
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20vIiAvPg0KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9y
Zy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4NCi0gICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJj
ZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCi0gICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+
PC9zY3JpcHQ+DQotDQotICAgICAgICA8c2NyaXB0Pg0KLSAgICAgICAgICAgDQotICAgICAgICAg
ICAgc2V0dXAoe2V4cGxpY2l0X2RvbmU6IHRydWV9KTsNCi0NCi0gICAgICAgICAgICB2YXIgcGFn
ZU9yaWdpbiA9ICIxMjcuMC4wLjE6ODAwMCI7DQotICAgICAgICAgICAgdmFyIGNyb3NzT3JpZ2lu
ID0gImxvY2FsaG9zdDo4MDAwIjsNCi0NCi0gICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVz
dCgpDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBQ
ZXJmb3JtYW5jZUNvbnRleHQocGVyZm9ybWFuY2UpOyAgICAgICAgICAgICAgICANCi0gICAgICAg
ICAgICAgICAgdmFyIGVudHJ5ID0gY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKS5zcmMsICJyZXNvdXJjZSIpWzBdOw0KLQ0KLSAg
ICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5yZWRpcmVjdFN0YXJ0LCAwLCAicmVkaXJl
Y3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAg
ICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkucmVkaXJlY3RFbmQsIDAsICJyZWRpcmVjdEVuZCBz
aG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAgICAgICAgICAg
dGVzdF9lcXVhbHMoZW50cnkuZG9tYWluTG9va3VwU3RhcnQsIDAsICJkb21haW5Mb29rdXBTdGFy
dCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAgICAgICAg
ICAgdGVzdF9lcXVhbHMoZW50cnkuZG9tYWluTG9va3VwRW5kLCAwLCAiZG9tYWluTG9va3VwRW5k
IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KLSAgICAgICAgICAgICAg
ICB0ZXN0X2VxdWFscyhlbnRyeS5jb25uZWN0U3RhcnQsIDAsICJjb25uZWN0U3RhcnQgc2hvdWxk
IGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQotICAgICAgICAgICAgICAgIHRlc3Rf
ZXF1YWxzKGVudHJ5LmNvbm5lY3RFbmQsIDAsICJjb25uZWN0RW5kIHNob3VsZCBiZSAwIGluIGNy
b3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KLSAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRy
eS5yZXF1ZXN0U3RhcnQsIDAsICJyZXF1ZXN0U3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3QhIik7DQotICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LnJlc3Bv
bnNlU3RhcnQsIDAsICJyZXNwb25zZVN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiBy
ZXF1ZXN0ISIpOw0KLSAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5zZWN1cmVDb25u
ZWN0aW9uU3RhcnQsIDAsICJzZWN1cmVDb25uZWN0aW9uU3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jv
c3Mtb3JpZ2luIHJlcXVlc3QhIik7DQotICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFu
KGVudHJ5LmZldGNoU3RhcnQsIDAsICJmZXRjaFN0YXJ0IHNob3VsZCBiZSBncmVhdGVyIHRoYW4g
MCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAgICAgICAgICAgdGVzdF9ncmVh
dGVyX3RoYW4oZW50cnkucmVzcG9uc2VFbmQsIDAsICJyZXNwb25zZUVuZCBzaG91bGQgYmUgZ3Jl
YXRlciB0aGFuIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQotICAgICAgICAgICAgICAg
IGRvbmUoKTsNCi0gICAgICAgICAgICB9DQotDQotICAgICAgICA8L3NjcmlwdD4NCi0NCi0gICAg
PC9oZWFkPg0KLSAgICA8Ym9keT4NCi0gICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQotICAg
ICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVzb3VyY2UgdGltaW5n
IGZvciBhIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0LjwvcD4NCi0NCi0gICAgICAgIDxi
ciAvPg0KLSAgICAgICAgPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBzcmM9IiIgc3R5bGU9Indp
ZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvaWZyYW1lPg0KLSAgICAgICAgPHNjcmlwdD4N
Ci0gICAgICAgICAgICB0ZXN0X2VxdWFscyhkb2N1bWVudC5sb2NhdGlvbi5ob3N0LCBwYWdlT3Jp
Z2luLCAnU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUgaXMgY29ycmVjdCAoJyAr
IHBhZ2VPcmlnaW4gKyAnKScpOw0KLSAgICAgICAgICAgIHZhciBkZXN0VXJsID0gJ2h0dHA6Ly8n
ICsgY3Jvc3NPcmlnaW4gKyAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVu
Lmh0bSc7DQotDQotICAgICAgICAgICAgdmFyIGZyYW1lQ29udGV4dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKTsNCi0gICAgICAgICAgICBmcmFtZUNvbnRleHQub25s
b2FkID0gb25sb2FkX3Rlc3Q7DQotICAgICAgICAgICAgZnJhbWVDb250ZXh0LnNyYyA9IGRlc3RV
cmw7DQotICAgICAgICA8L3NjcmlwdD4NCi0gICAgPC9ib2R5Pg0KLTwvaHRtbD4NCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Nocmlua19idWZmZXJfc2l6
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1p
c3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Nocmlu
a19idWZmZXJfc2l6ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDM5MGM3YzEwOTM3Y2QxODFhZWIwOGJjODEzNDg4ZTk3YjI5OWYwMDUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi1EZXNjcmlwdGlvbg0KLQ0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhl
IGJlaGF2aW9yIG9mIHNocmluayByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNpemUuDQotDQotDQot
UEFTUyBUaGVyZSBzaG91bGQgYmUgZW50cmllcyBpbiByZXNvdXJjZSB0aW1pbmcgYnVmZmVyISAN
Ci1QQVNTIFJlc291cmNlIHRpbWluZyBidWZmZXIgc2hvdWxkIG5ldmVyIGJlZW4gY2hhbmdlZCBl
dmVuIGJ1ZmZlciBzaXplIGlzIHNocnVuayEgDQotUEFTUyBUaGVyZSBzaG91bGQgYmUgbm8gZW50
cmllcyBpbiByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIGFmdGVyIGNsZWFyUmVzb3VyY2VUaW1pbmdz
IA0KLQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hy
aW5rX2J1ZmZlcl9zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29u
X3Nocmlua19idWZmZXJfc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NDQ3ZDU0YWQwM2EwMGU5ZGY4NTZkMTk1ZjgxOGY0YjI4Y2M4MWRlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90
aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCAr
MCwwIEBACi08IURPQ1RZUEUgSFRNTD4NCi08aHRtbD4NCi0gICAgPGhlYWQ+DQotICAgICAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCi0gICAgICAgIDx0aXRsZT5zaHJpbmsgcmVzb3VyY2Ug
dGltaW5nIGJ1ZmZlciBzaXplPC90aXRsZT4NCi0gICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4NCi0gICAgICAgIDxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5n
LyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4NCi0gICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291
cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0Pg0KLSAgICAgICAg
PHNjcmlwdD4NCi0gICAgICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7DQot
ICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHBlcmZvcm1h
bmNlKTsNCi0gICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQotICAgICAgICAgICAg
ew0KLSAgICAgICAgICAgICAgICB2YXIgZW50cnlfbGlzdF9iZWZvcmVfc2hyaW5rID0gY29udGV4
dC5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJjZScpOw0KLSAgICAgICAgICAgICAgICBjb250ZXh0
LnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgwKTsNCi0gICAgICAgICAgICAgICAgdmFyIGVu
dHJ5X2xpc3RfYWZ0ZXJfc2hyaW5rID0gY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJj
ZScpOw0KLSAgICAgICAgICAgICAgICANCi0gICAgICAgICAgICAgICAgdGVzdF9ncmVhdGVyX3Ro
YW4oZW50cnlfbGlzdF9iZWZvcmVfc2hyaW5rLmxlbmd0aCwgMCwgIlRoZXJlIHNob3VsZCBiZSBl
bnRyaWVzIGluIHJlc291cmNlIHRpbWluZyBidWZmZXIhIik7DQotICAgICAgICAgICAgICAgIHRl
c3RfZXF1YWxzKEpTT04uc3RyaW5naWZ5KGVudHJ5X2xpc3RfYmVmb3JlX3NocmluayksIEpTT04u
c3RyaW5naWZ5KGVudHJ5X2xpc3RfYWZ0ZXJfc2hyaW5rKSwgIlJlc291cmNlIHRpbWluZyBidWZm
ZXIgc2hvdWxkIG5ldmVyIGJlZW4gY2hhbmdlZCBldmVuIGJ1ZmZlciBzaXplIGlzIHNocnVuayEi
KTsNCi0gICAgICAgICAgICAgICAgDQotICAgICAgICAgICAgICAgIGNvbnRleHQuY2xlYXJSZXNv
dXJjZVRpbWluZ3MoKTsNCi0gICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoY29udGV4dC5nZXRF
bnRyaWVzQnlUeXBlKCdyZXNvdXJjZScpLmxlbmd0aCwgMCwgIlRoZXJlIHNob3VsZCBiZSBubyBl
bnRyaWVzIGluIHJlc291cmNlIHRpbWluZyBidWZmZXIgYWZ0ZXIgY2xlYXJSZXNvdXJjZVRpbWlu
Z3MiKTsNCi0gICAgICAgICAgICAgICAgZG9uZSgpOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAg
IDwvc2NyaXB0Pg0KLSAgICA8L2hlYWQ+DQotICAgIDxib2R5IG9ubG9hZD1vbmxvYWRfdGVzdCgp
Pg0KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCi0gICAgICAgIDxwPlRoaXMgdGVzdCB2
YWxpZGF0ZXMgdGhlIGJlaGF2aW9yIG9mIHNocmluayByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNp
emUuPC9wPg0KLSAgICA8L2JvZHk+DQotPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcv
dGVzdF9yZXNvdXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVh
cl9kdXJpbmdfY2FsbGJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmOTg5OGQ4ZGNlOThiMzQyNjc5NmY5YjU4ODQ4YmM5MDUwNTcwYWY1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLURlc2NyaXB0aW9uDQotDQotVGhpcyB0ZXN0
IHZhbGlkYXRlcyB0aGUgYmVoYXZpb3Igb2YgcmVhZCBhbmQgY2xlYXIgb3BlcmF0aW9uIGluIG9u
cmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIGNhbGxiYWNrIG9mIHJlc291cmNlIHRpbWluZy4NCi0N
Ci0NCi1QQVNTIE5vIGVudHJ5IHNob3VsZCBiZSBzdG9yZWQgaW4gcmVzb3VyY2UgdGltaW5nIGJ1
ZmZlciBzaW5jZSBpdCdzIGNsZWFyZWQgb25jZSBhbiBpdGVtIGFycml2ZWQhIA0KLVBBU1MgNCBy
ZXNvdXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUgbW92ZWQgdG8gZ2xvYmFsIGJ1ZmZlciEg
DQotDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9h
bmRfY2xlYXJfZHVyaW5nX2NhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2Vf
dGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2suaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmQwNjQzMzA3Y2JiN2Q4MjY3ZjgzNzk4YjJkMWEwZDU3YzE0N2Jl
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGlt
aW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2su
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPg0KLTxo
dG1sPg0KLSAgICA8aGVhZD4NCi0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0KLSAg
ICAgICAgPHRpdGxlPnJlYWQgYW5kIGNsZWFyIHJlc291cmNlIHRpbWluZyBlbnRyeSBpbiBvbnJl
c291cmNldGltaW5nYnVmZmVyZnVsbCBjYWxsYmFjazwvdGl0bGU+DQotICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24u
anMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdD4NCi0gICAgICAgICAgICB2YXIgY29udGV4
dCA9IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQocGVyZm9ybWFuY2UpOw0KLSAgICAgICAgICAgIHZh
ciByZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemUgPSAxOw0KLSAgICAgICAgICAgIHZhciBnbG9i
YWxfYnVmZmVyID0gW107DQotICAgICAgICAgICAgZnVuY3Rpb24gc3RvcmVfYW5kX2NsZWFyKCkN
Ci0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIHZhciBlbnRyeV9saXN0ID0gY29udGV4
dC5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJjZScpOw0KLSAgICAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGVudHJ5X2xpc3QubGVuZ3RoOyArK2kpDQotICAgICAgICAgICAgICAgICAg
ICBnbG9iYWxfYnVmZmVyLnB1c2goZW50cnlfbGlzdFtpXSk7DQotICAgICAgICAgICAgICAgIGNv
bnRleHQuY2xlYXJSZXNvdXJjZVRpbWluZ3MoKTsNCi0gICAgICAgICAgICB9DQotICAgICAgICAg
ICAgY29udGV4dC5yZWdpc3RlclJlc291cmNlVGltaW5nQnVmZmVyRnVsbENhbGxiYWNrKHN0b3Jl
X2FuZF9jbGVhcik7DQotICAgICAgICAgICAgY29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZl
clNpemUocmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9zaXplKTsNCi0gICAgICAgIDwvc2NyaXB0Pg0K
LSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20vIiAvPg0KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmci
Lz4NCi0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCi0gICAgICAgIDxz
Y3JpcHQ+DQotICAgICAgICAgICAgc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOyAgICAg
ICAgICAgICAgICANCi0gICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQotICAgICAg
ICAgICAgew0KLSAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNC
eVR5cGUoJ3Jlc291cmNlJykubGVuZ3RoLCAwLCAiTm8gZW50cnkgc2hvdWxkIGJlIHN0b3JlZCBp
biByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNpbmNlIGl0J3MgY2xlYXJlZCBvbmNlIGFuIGl0ZW0g
YXJyaXZlZCEiKTsNCi0gICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoZ2xvYmFsX2J1ZmZlci5s
ZW5ndGgsIDQsICI0IHJlc291cmNlIHRpbWluZyBlbnRyaWVzIHNob3VsZCBiZSBtb3ZlZCB0byBn
bG9iYWwgYnVmZmVyISIpOw0KLSAgICAgICAgICAgICAgICBkb25lKCk7DQotICAgICAgICAgICAg
fQ0KLSAgICAgICAgPC9zY3JpcHQ+DQotICAgIDwvaGVhZD4NCi0gICAgPGJvZHkgb25sb2FkPW9u
bG9hZF90ZXN0KCk+DQotICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPg0KLSAgICAgICAgPHA+
VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgYmVoYXZpb3Igb2YgcmVhZCBhbmQgY2xlYXIgb3BlcmF0
aW9uIGluIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIGNhbGxiYWNrIG9mIHJlc291cmNlIHRp
bWluZy48L3A+DQotICAgIDwvYm9keT4NCi08L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWlu
Zy90ZXN0X3Jlc291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNl
X3JlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ190
aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVlc3QtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTdjODg5N2FkMWE5ZmVlY2U2MTYyY2EzN2Y0
NGQ5NmYyMjhmYTc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29y
aWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIw
ICswLDAgQEAKLURlc2NyaXB0aW9uDQotDQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWVz
IGluIHJlc291cmNlIHRpbWluZyBmb3IgYSB0aW1pbmctYWxsb3ctb3JpZ2luIGNyb3NzLW9yaWdp
biByZXNvdXJjZSByZXF1ZXN0Lg0KLQ0KLQ0KLQ0KLQ0KLVBBU1MgU3RhcnRpbmcgZG9jdW1lbnQu
bG9jYXRpb24uaG9zdG5hbWUgaXMgY29ycmVjdCAoMTI3LjAuMC4xOjgwMDApIA0KLVBBU1MgcmVk
aXJlY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyBy
ZWRpcmVjdCEgDQotUEFTUyByZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4g
cmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEgDQotUEFTUyBkb21haW5Mb29rdXBTdGFydCBzaG91
bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCi1QQVNT
IGRvbWFpbkxvb2t1cEVuZCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9y
aWdpbiByZXF1ZXN0ISANCi1QQVNTIGNvbm5lY3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGlt
aW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCi1QQVNTIGNvbm5lY3RFbmQgc2hvdWxk
IG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQotUEFTUyBy
ZXF1ZXN0U3RhcnQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4g
cmVxdWVzdCEgDQotUEFTUyByZXNwb25zZVN0YXJ0IHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmct
YWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KLVBBU1Mgc2VjdXJlQ29ubmVjdGlvblN0YXJ0
IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0IHNpbmNlIG5vIHNzbCEgDQotUEFT
UyBmZXRjaFN0YXJ0IHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2lu
IHJlcXVlc3QhIA0KLVBBU1MgcmVzcG9uc2VFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWluZy1h
bGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQotDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90
ZXN0X3Jlc291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3Jl
cXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93
X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE0MzVmNDBjNDNhZGE3MzMzNTcxMDdlOTZjMmQyM2MzYzNhZDk5MzAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVl
c3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPg0K
LTxodG1sPg0KLSAgICA8aGVhZD4NCi0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0K
LSAgICAgICAgPHRpdGxlPnJlc291cmNlIHRpbWluZyBpbmZvcm1hdGlvbiBmb3IgY3Jvc3Mtb3Jp
Z2luIHJlc291cmNlIHJlcXVlc3Qgd2l0aCB0aW1pbmctYWxsb3ctb3JpZ2luPC90aXRsZT4NCi0g
ICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tLyIgLz4NCi0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3
dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+
DQotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4NCi0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQotICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNp
b24uanMiPjwvc2NyaXB0Pg0KLSAgICAgICAgPHNjcmlwdD4NCi0gICAgICAgICAgICANCi0gICAg
ICAgICAgICBzZXR1cCh7ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOw0KLQ0KLSAgICAgICAgICAgIHZh
ciBwYWdlT3JpZ2luID0gIjEyNy4wLjAuMTo4MDAwIjsNCi0gICAgICAgICAgICB2YXIgY3Jvc3NP
cmlnaW4gPSAibG9jYWxob3N0OjgwMDAiOw0KLQ0KLSAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9h
ZF90ZXN0KCkNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0g
bmV3IFBlcmZvcm1hbmNlQ29udGV4dChwZXJmb3JtYW5jZSk7DQotICAgICAgICAgICAgICAgIHZh
ciBlbnRyeSA9IGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZnJhbWVDb250ZXh0Iikuc3JjLCAicmVzb3VyY2UiKVswXTsNCi0NCi0gICAgICAgICAgICAg
ICAgdGVzdF9lcXVhbHMoZW50cnkucmVkaXJlY3RTdGFydCwgMCwgInJlZGlyZWN0U3RhcnQgc2hv
dWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qgc2luY2Ugbm8gcmVkaXJlY3QhIik7DQot
ICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LnJlZGlyZWN0RW5kLCAwLCAicmVkaXJl
Y3RFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qgc2luY2Ugbm8gcmVkaXJl
Y3QhIik7DQotICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LmRvbWFpbkxv
b2t1cFN0YXJ0LCAwLCAiZG9tYWluTG9va3VwU3RhcnQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWlu
Zy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAgICAgICAgICAgdGVzdF9n
cmVhdGVyX3RoYW4oZW50cnkuZG9tYWluTG9va3VwRW5kLCAwLCAiZG9tYWluTG9va3VwRW5kIHNo
b3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQot
ICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LmNvbm5lY3RTdGFydCwgMCwg
ImNvbm5lY3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdp
biByZXF1ZXN0ISIpOw0KLSAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5j
b25uZWN0RW5kLCAwLCAiY29ubmVjdEVuZCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93
IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KLSAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJf
dGhhbihlbnRyeS5yZXF1ZXN0U3RhcnQsIDAsICJyZXF1ZXN0U3RhcnQgc2hvdWxkIG5vdCBiZSAw
IGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAgICAgICAg
ICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkucmVzcG9uc2VTdGFydCwgMCwgInJlc3BvbnNlU3Rh
cnQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEi
KTsNCi0gICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0LCAwLCAic2VjdXJlQ29ubmVjdGlvblN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdp
biByZXF1ZXN0IHNpbmNlIG5vIHNzbCEiKTsNCi0gICAgICAgICAgICAgICAgdGVzdF9ncmVhdGVy
X3RoYW4oZW50cnkuZmV0Y2hTdGFydCwgMCwgImZldGNoU3RhcnQgc2hvdWxkIG5vdCBiZSAwIGlu
IHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCi0gICAgICAgICAgICAgICAg
dGVzdF9ncmVhdGVyX3RoYW4oZW50cnkucmVzcG9uc2VFbmQsIDAsICJyZXNwb25zZUVuZCBzaG91
bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KLSAg
ICAgICAgICAgICAgICBkb25lKCk7DQotICAgICAgICAgICAgfQ0KLQ0KLSAgICAgICAgPC9zY3Jp
cHQ+DQotDQotICAgIDwvaGVhZD4NCi0gICAgPGJvZHk+DQotICAgICAgICA8aDE+RGVzY3JpcHRp
b248L2gxPg0KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWVzIGluIHJl
c291cmNlIHRpbWluZyBmb3IgYSB0aW1pbmctYWxsb3ctb3JpZ2luIGNyb3NzLW9yaWdpbiByZXNv
dXJjZSByZXF1ZXN0LjwvcD4NCi0NCi0gICAgICAgIDxiciAvPg0KLSAgICAgICAgPGlmcmFtZSBp
ZD0iZnJhbWVDb250ZXh0IiBzcmM9IiIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBw
eDsiPjwvaWZyYW1lPg0KLSAgICAgICAgPHNjcmlwdD4NCi0gICAgICAgICAgICB0ZXN0X2VxdWFs
cyhkb2N1bWVudC5sb2NhdGlvbi5ob3N0LCBwYWdlT3JpZ2luLCAnU3RhcnRpbmcgZG9jdW1lbnQu
bG9jYXRpb24uaG9zdG5hbWUgaXMgY29ycmVjdCAoJyArIHBhZ2VPcmlnaW4gKyAnKScpOw0KLQ0K
LSAgICAgICAgICAgIHZhciByZXF1ZXN0VXJsID0gJ2h0dHA6Ly8nICsgY3Jvc3NPcmlnaW4gKyAn
L3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuX3dpdGhfYWxsb3dfdGltaW5n
LnBocCc7DQotICAgICAgICAgICAgcmVxdWVzdFVybCArPSAnP29yaWdpbj1odHRwOi8vJyArIHBh
Z2VPcmlnaW47DQotDQotICAgICAgICAgICAgdmFyIGZyYW1lQ29udGV4dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKTsNCi0gICAgICAgICAgICBmcmFtZUNvbnRleHQu
b25sb2FkID0gb25sb2FkX3Rlc3Q7DQotICAgICAgICAgICAgZnJhbWVDb250ZXh0LnNyYyA9IHJl
cXVlc3RVcmw7DQotICAgICAgICA8L3NjcmlwdD4NCi0gICAgPC9ib2R5Pg0KLTwvaHRtbD4NCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19jbGVhck1hcmtzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91
c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2NsZWFyTWFya3MtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjNhODg3MjE5N2ZkZWUwNWM4MGNmOTgxMjM3MTAx
ZjU2MGYzOTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2Vy
LXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2NsZWFyTWFya3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNjMgKzAsMCBAQAotRGVzY3JpcHRpb24NCi0NCi1UaGlzIHRlc3QgdmFsaWRh
dGVzIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGludGVyZmFjZSB3aW5kb3cucGVyZm9ybWFuY2UuY2xl
YXJNYXJrcy4NCi0NCi0NCi1QQVNTIFRoZXJlIHNob3VsZCBiZSAyIGVudHJpZXMuIA0KLVBBU1Mg
RW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiANCi1QQVNTIEVudHJ5ICIx
IiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIA0KLVBBU1MgZW50cnlUeXBlIHNob3Vs
ZCBiZSAibWFyayIuIA0KLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4gDQot
UEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiANCi1QQVNTIEVudHJ5ICJhYmMiIHNo
b3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gDQotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJl
ICJtYXJrIi4gDQotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiANCi1QQVNT
IGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIA0KLVBBU1MgTWFya3MgdGhhdCB3ZSBjbGVh
cmVkIHNob3VsZCBub3QgZXhpc3QgYW55bW9yZS4gDQotUEFTUyBUaGVyZSBzaG91bGQgYmUgMSBl
bnRyaWVzLiANCi1QQVNTIEVudHJpZXMgaW4gZW50cnlsaXN0IHNob3VsZCBiZSBpbiBvcmRlci4g
DQotUEFTUyBFbnRyeSAiYWJjIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIA0KLVBB
U1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIA0KLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBn
cmVhdGVyIHRoYW4gMC4gDQotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiANCi1Q
QVNTIE1hcmtzIHRoYXQgd2UgY2xlYXJlZCBzaG91bGQgbm90IGV4aXN0IGFueW1vcmUuIA0KLVBB
U1MgVGhlcmUgc2hvdWxkIGJlIDAgZW50cmllcy4gDQotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlz
dCBzaG91bGQgYmUgaW4gb3JkZXIuIA0KLVBBU1MgTWFya3MgdGhhdCB3ZSBjbGVhcmVkIHNob3Vs
ZCBub3QgZXhpc3QgYW55bW9yZS4gDQotUEFTUyBObyBtYXJrcyBzaG91bGQgZXhpc3QgYWZ0ZXIg
d2UgY2xlYXIgYWxsLiANCi1QQVNTIFRoZXJlIHNob3VsZCBiZSA0IGVudHJpZXMuIA0KLVBBU1Mg
RW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiANCi1QQVNTIEVudHJ5ICIx
IiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIA0KLVBBU1MgZW50cnlUeXBlIHNob3Vs
ZCBiZSAibWFyayIuIA0KLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4gDQot
UEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiANCi1QQVNTIEVudHJ5ICJhYmMiIHNo
b3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gDQotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJl
ICJtYXJrIi4gDQotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiANCi1QQVNT
IGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIA0KLVBBU1MgRW50cnkgIjEiIHNob3VsZCBi
ZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gDQotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtYXJr
Ii4gDQotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiANCi1QQVNTIGR1cmF0
aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIA0KLVBBU1MgRW50cnkgImFiYyIgc2hvdWxkIGJlIG9u
ZSB0aGF0IHdlIGhhdmUgc2V0LiANCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1hcmsiLiAN
Ci1QQVNTIHN0YXJ0VGltZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAuIA0KLVBBU1MgZHVyYXRpb24g
b2YgbWFyayBzaG91bGQgYmUgMC4gDQotUEFTUyBNYXJrcyB0aGF0IHdlIGNsZWFyZWQgc2hvdWxk
IG5vdCBleGlzdCBhbnltb3JlLiANCi1QQVNTIFRoZXJlIHNob3VsZCBiZSAyIGVudHJpZXMuIA0K
LVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiANCi1QQVNTIEVu
dHJ5ICJhYmMiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gDQotUEFTUyBlbnRyeVR5
cGUgc2hvdWxkIGJlICJtYXJrIi4gDQotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhh
biAwLiANCi1QQVNTIGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIA0KLVBBU1MgRW50cnkg
ImFiYyIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiANCi1QQVNTIGVudHJ5VHlwZSBz
aG91bGQgYmUgIm1hcmsiLiANCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAu
IA0KLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gDQotUEFTUyBNYXJrcyB0aGF0
IHdlIGNsZWFyZWQgc2hvdWxkIG5vdCBleGlzdCBhbnltb3JlLiANCi1QQVNTIFRoZXJlIHNob3Vs
ZCBiZSAwIGVudHJpZXMuIA0KLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGlu
IG9yZGVyLiANCi1QQVNTIE1hcmtzIHRoYXQgd2UgY2xlYXJlZCBzaG91bGQgbm90IGV4aXN0IGFu
eW1vcmUuIA0KLVBBU1MgTm90aGluZyBzaG91bGQgaGFwcGVuIGlmIHdlIGNsZWFyIGEgbm9uLWV4
aXN0IG1hcmsuIA0KLVBBU1MgTm8gbWFya3Mgc2hvdWxkIGV4aXN0IHdoZW4gd2UgY2xlYXIgYWxs
LiANCi0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19jbGVhck1hcmtzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
dXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19jbGVhck1hcmtzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGMxYTU4M2Y5ZWY0ZjE1N2I2MWQ3OTQyYTdiZDc4ODQwZTRiMmNh
YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5n
L3Rlc3RfdXNlcl90aW1pbmdfY2xlYXJNYXJrcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiIC8+Ci0gICAgICAgIDx0aXRsZT5mdW5jdGlvbmFsaXR5IHRlc3Qg
b2Ygd2luZG93LnBlcmZvcm1hbmNlLmNsZWFyTWFya3M8L3RpdGxlPgotICAgICAgICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+
Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvdXNl
ci10aW1pbmcvI2V4dGVuc2lvbnMtcGVyZm9ybWFuY2UtaW50ZXJmYWNlIi8+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBl
cmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+
Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9
KTsKLQotICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dCh3aW5kb3cucGVyZm9ybWFu
Y2UpOwotICAgICAgICAgICAgdmFyIGVudHJ5bGlzdF9jaGVja2VyID0gbmV3IHBlcmZvcm1hbmNl
X2VudHJ5bGlzdF9jaGVja2VyKCJtYXJrIik7Ci0gICAgICAgICAgICB2YXIgc3RyaW5nX21hcmtf
bmFtZXMgPSBtYXJrX25hbWVzLm1hcChmdW5jdGlvbiAoeCkgeyByZXR1cm4gU3RyaW5nKHgpfSk7
Ci0gICAgICAgICAgICBtYXJrX25hbWVzLmZvckVhY2goY29udGV4dC5tYXJrLCBjb250ZXh0KTsK
LQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXJrX25hbWVzLmxlbmd0aDsgKytp
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnRleHQuY2xlYXJNYXJrcyhtYXJr
X25hbWVzW2ldKTsKLSAgICAgICAgICAgICAgICB2YXIgcmV0YWluZWRfZW50cmllcyA9IGNvbnRl
eHQuZ2V0RW50cmllc0J5VHlwZSgnbWFyaycpOwotICAgICAgICAgICAgICAgIHZhciBub25fcmV0
YWluZWRfZW50cmllcyA9IGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZShtYXJrX25hbWVzW2ldLCAn
bWFyaycpOwotICAgICAgICAgICAgICAgIGVudHJ5bGlzdF9jaGVja2VyLmVudHJ5bGlzdF9jaGVj
ayhyZXRhaW5lZF9lbnRyaWVzLCBtYXJrX25hbWVzLmxlbmd0aCAtIGkgLSAxLCBzdHJpbmdfbWFy
a19uYW1lcyk7Ci0gICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMobm9uX3JldGFpbmVkX2VudHJp
ZXMubGVuZ3RoLCAwLCAnTWFya3MgdGhhdCB3ZSBjbGVhcmVkIHNob3VsZCBub3QgZXhpc3QgYW55
bW9yZS4nKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWFya19uYW1lcy5mb3JFYWNo
KGNvbnRleHQubWFyaywgY29udGV4dCk7Ci0gICAgICAgICAgICBjb250ZXh0LmNsZWFyTWFya3Mo
KTsKLSAgICAgICAgICAgIHRlc3RfZXF1YWxzKGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgnbWFy
aycpLmxlbmd0aCwgMCwgJ05vIG1hcmtzIHNob3VsZCBleGlzdCBhZnRlciB3ZSBjbGVhciBhbGwu
Jyk7Ci0KLSAgICAgICAgICAgIC8vIEZvbGxvd2luZyBjYXNlcyB0ZXN0IGNsZWFyIGV4aXN0ZWQg
bWFyayBuYW1lIHRoYXQgaXMgdGllZCBmb3IgdHdvIHRpbWVzLgotICAgICAgICAgICAgbWFya19u
YW1lcy5mb3JFYWNoKGNvbnRleHQubWFyaywgY29udGV4dCk7Ci0gICAgICAgICAgICBtYXJrX25h
bWVzLmZvckVhY2goY29udGV4dC5tYXJrLCBjb250ZXh0KTsKLQotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBtYXJrX25hbWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGNvbnRleHQuY2xlYXJNYXJrcyhtYXJrX25hbWVzW2ldKTsKLSAgICAgICAg
ICAgICAgICB2YXIgcmV0YWluZWRfZW50cmllcyA9IGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgn
bWFyaycpOwotICAgICAgICAgICAgICAgIHZhciBub25fcmV0YWluZWRfZW50cmllcyA9IGNvbnRl
eHQuZ2V0RW50cmllc0J5TmFtZShtYXJrX25hbWVzW2ldLCAnbWFyaycpOwotICAgICAgICAgICAg
ICAgIGVudHJ5bGlzdF9jaGVja2VyLmVudHJ5bGlzdF9jaGVjayhyZXRhaW5lZF9lbnRyaWVzLCAo
bWFya19uYW1lcy5sZW5ndGggLSBpIC0gMSkgKiAyLCBzdHJpbmdfbWFya19uYW1lcyk7Ci0gICAg
ICAgICAgICAgICAgdGVzdF9lcXVhbHMobm9uX3JldGFpbmVkX2VudHJpZXMubGVuZ3RoLCAwLCAn
TWFya3MgdGhhdCB3ZSBjbGVhcmVkIHNob3VsZCBub3QgZXhpc3QgYW55bW9yZS4nKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgLy8gRm9sbG93aW5nIGNhc2VzIHRlc3QgY2xlYXIgZnVu
Y3Rpb25hbGl0eSB3aGVuIG1hcmsgbmFtZXMgYXJlIHRpZWQgZm9yIHR3byB0aW1lcy4gCi0gICAg
ICAgICAgICBtYXJrX25hbWVzLmZvckVhY2goY29udGV4dC5tYXJrLCBjb250ZXh0KTsKLSAgICAg
ICAgICAgIG1hcmtfbmFtZXMuZm9yRWFjaChjb250ZXh0Lm1hcmssIGNvbnRleHQpOwotICAgICAg
ICAgICAgdmFyIGVudHJ5X251bWJlcl9iZWZvcmVfdXNlbGVzc19jbGVhciA9IGNvbnRleHQuZ2V0
RW50cmllc0J5VHlwZSgnTWFyaycpLmxlbmd0aDsKLSAgICAgICAgICAgIGNvbnRleHQuY2xlYXJN
YXJrcygnTm9uRXhpc3QnKTsKLSAgICAgICAgICAgIHZhciBlbnRyeV9udW1iZXJfYWZ0ZXJfdXNl
bGVzc19jbGVhciA9IGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgnTWFyaycpLmxlbmd0aDsKLSAg
ICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5X251bWJlcl9iZWZvcmVfdXNlbGVzc19jbGVhciwg
ZW50cnlfbnVtYmVyX2FmdGVyX3VzZWxlc3NfY2xlYXIsICdOb3RoaW5nIHNob3VsZCBoYXBwZW4g
aWYgd2UgY2xlYXIgYSBub24tZXhpc3QgbWFyay4nKTsKLQotICAgICAgICAgICAgY29udGV4dC5j
bGVhck1hcmtzKCk7Ci0gICAgICAgICAgICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNC
eVR5cGUoJ21hcmsnKS5sZW5ndGgsIDAsICdObyBtYXJrcyBzaG91bGQgZXhpc3Qgd2hlbiB3ZSBj
bGVhciBhbGwuJyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAg
fQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHkgb25sb2FkPW9ubG9h
ZF90ZXN0KCk+Ci0gICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Ci0gICAgICAgIDxwPlRoaXMg
dGVzdCB2YWxpZGF0ZXMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgaW50ZXJmYWNlIHdpbmRvdy5wZXJm
b3JtYW5jZS5jbGVhck1hcmtzLjwvcD4KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KLSAg
ICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19j
bGVhck1lYXN1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2NsZWFy
TWVhc3VyZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDVm
ODU2OTFmYjliYWQwZDFhYjE4MDMyZDNjMmU4ZTBlZmVjN2M3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2NsZWFy
TWVhc3VyZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotRGVz
Y3JpcHRpb24KLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBpbnRl
cmZhY2Ugd2luZG93LnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMuCi0KLQotUEFTUyBUaGVyZSBz
aG91bGQgYmUgMiBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJl
IGluIG9yZGVyLiAKLVBBU1MgRW50cnkgImFhYSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUg
c2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFydFRp
bWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVtYmVy
LiAKLVBBU1MgRW50cnkgIjIiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNT
IGVudHJ5VHlwZSBzaG91bGQgYmUgIm1lYXN1cmUiLiAKLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBi
ZSBhIG51bWJlci4gCi1QQVNTIGR1cmF0aW9uIHNob3VsZCBiZSBhIG51bWJlci4gCi1QQVNTIE1l
YXN1cmUgdGhhdCB3ZSBjbGVhcmVkIHNob3VsZCBub3QgZXhpc3QgYW55bW9yZS4gCi1QQVNTIFRo
ZXJlIHNob3VsZCBiZSAxIGVudHJpZXMuIAotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91
bGQgYmUgaW4gb3JkZXIuIAotUEFTUyBFbnRyeSAiYWFhIiBzaG91bGQgYmUgb25lIHRoYXQgd2Ug
aGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtZWFzdXJlIi4gCi1QQVNTIHN0
YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBkdXJhdGlvbiBzaG91bGQgYmUgYSBu
dW1iZXIuIAotUEFTUyBNZWFzdXJlIHRoYXQgd2UgY2xlYXJlZCBzaG91bGQgbm90IGV4aXN0IGFu
eW1vcmUuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgMCBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBp
biBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgTWVhc3VyZSB0aGF0IHdlIGNs
ZWFyZWQgc2hvdWxkIG5vdCBleGlzdCBhbnltb3JlLiAKLVBBU1MgTm8gbWVhc3VyZXMgc2hvdWxk
IGV4aXN0IGFmdGVyIHdlIGNsZWFyIGFsbC4gCi1QQVNTIFRoZXJlIHNob3VsZCBiZSA0IGVudHJp
ZXMuIAotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91bGQgYmUgaW4gb3JkZXIuIAotUEFT
UyBFbnRyeSAiYWFhIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRy
eVR5cGUgc2hvdWxkIGJlICJtZWFzdXJlIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUgYSBu
dW1iZXIuIAotUEFTUyBkdXJhdGlvbiBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBFbnRyeSAi
YWFhIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hv
dWxkIGJlICJtZWFzdXJlIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAot
UEFTUyBkdXJhdGlvbiBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBFbnRyeSAiMiIgc2hvdWxk
IGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVh
c3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRp
b24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgRW50cnkgIjIiIHNob3VsZCBiZSBvbmUgdGhh
dCB3ZSBoYXZlIHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1lYXN1cmUiLiAKLVBB
U1Mgc3RhcnRUaW1lIHNob3VsZCBiZSBhIG51bWJlci4gCi1QQVNTIGR1cmF0aW9uIHNob3VsZCBi
ZSBhIG51bWJlci4gCi1QQVNTIE1lYXN1cmUgdGhhdCB3ZSBjbGVhcmVkIHNoYWxsIG5vdCBleGlz
dGVkIGFueW1vcmUuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgMiBlbnRyaWVzLiAKLVBBU1MgRW50
cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgRW50cnkgImFhYSIg
c2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBi
ZSAibWVhc3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1Mg
ZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgRW50cnkgImFhYSIgc2hvdWxkIGJl
IG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3Vy
ZSIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24g
c2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgTWVhc3VyZSB0aGF0IHdlIGNsZWFyZWQgc2hhbGwg
bm90IGV4aXN0ZWQgYW55bW9yZS4gCi1QQVNTIFRoZXJlIHNob3VsZCBiZSAwIGVudHJpZXMuIAot
UEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91bGQgYmUgaW4gb3JkZXIuIAotUEFTUyBNZWFz
dXJlIHRoYXQgd2UgY2xlYXJlZCBzaGFsbCBub3QgZXhpc3RlZCBhbnltb3JlLiAKLVBBU1MgTm90
aGluZyBzaG91bGQgaGFwcGVuIGlmIHdlIGNsZWFyIGEgbm9uLWV4aXN0IG1lYXN1cmUgCi1QQVNT
IE5vIG1lYXN1cmVzIHNob3VsZCBleGlzdCB3aGVuIHdlIGNsZWFyIGFsbC4gCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91
c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2NsZWFyTWVhc3VyZXMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90
ZXN0X3VzZXJfdGltaW5nX2NsZWFyTWVhc3VyZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzMxYmI1ZTAwYmUyN2MyN2I2ODU5ZTFjODZkMjFhNzBjY2JjMzYxYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2Vy
X3RpbWluZ19jbGVhck1lYXN1cmVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPmZ1bmN0aW9uYWxpdHkgdGVzdCBvZiB3aW5k
b3cucGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlczwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4KLSAg
ICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi91c2VyLXRp
bWluZy8jZXh0ZW5zaW9ucy1wZXJmb3JtYW5jZS1pbnRlcmZhY2UiLz4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdD4KLSAgICAgICAgc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOwot
Ci0gICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkKLSAgICAgICAgewotICAgICAgICAgICAg
dmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHdpbmRvdy5wZXJmb3JtYW5jZSk7
Ci0gICAgICAgICAgICB2YXIgZW50cnlsaXN0X2NoZWNrZXIgPSBuZXcgcGVyZm9ybWFuY2VfZW50
cnlsaXN0X2NoZWNrZXIoIm1lYXN1cmUiKTsKLSAgICAgICAgICAgIHZhciBtZWFzdXJlX25hbWVz
ID0gbWVhc3VyZXMubWFwKGZ1bmN0aW9uKHgpIHtyZXR1cm4geFswXTt9KTsKLQotICAgICAgICAg
ICAgbWFya19uYW1lcy5mb3JFYWNoKGNvbnRleHQubWFyaywgY29udGV4dCk7Ci0gICAgICAgICAg
ICBtZWFzdXJlcy5mb3JFYWNoKGNvbnRleHQuaW5pdGlhbE1lYXN1cmVzLCBjb250ZXh0KTsKLSAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVhc3VyZXMubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5jbGVhck1lYXN1cmVzKG1lYXN1cmVz
W2ldWzBdKTsKLSAgICAgICAgICAgICAgICB2YXIgcmV0YWluZWRfZW50cmllcyA9IGNvbnRleHQu
Z2V0RW50cmllc0J5VHlwZSgnbWVhc3VyZScpOwotICAgICAgICAgICAgICAgIHZhciBub25fcmV0
YWluZWRfZW50cmllcyA9IGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZShtZWFzdXJlc1tpXVswXSwg
J21lYXN1cmUnKTsKLSAgICAgICAgICAgICAgICBlbnRyeWxpc3RfY2hlY2tlci5lbnRyeWxpc3Rf
Y2hlY2socmV0YWluZWRfZW50cmllcywgbWVhc3VyZXMubGVuZ3RoIC0gaSAtIDEsIG1lYXN1cmVf
bmFtZXMpOwotICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKG5vbl9yZXRhaW5lZF9lbnRyaWVz
Lmxlbmd0aCwgMCwgJ01lYXN1cmUgdGhhdCB3ZSBjbGVhcmVkIHNob3VsZCBub3QgZXhpc3QgYW55
bW9yZS4nKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVhc3VyZXMuZm9yRWFjaChj
b250ZXh0LmluaXRpYWxNZWFzdXJlcywgY29udGV4dCk7Ci0gICAgICAgICAgICBjb250ZXh0LmNs
ZWFyTWVhc3VyZXMoKTsKLSAgICAgICAgICAgIHRlc3RfZXF1YWxzKGNvbnRleHQuZ2V0RW50cmll
c0J5VHlwZSgnbWVhc3VyZScpLmxlbmd0aCwgMCwgJ05vIG1lYXN1cmVzIHNob3VsZCBleGlzdCBh
ZnRlciB3ZSBjbGVhciBhbGwuJyk7Ci0KLSAgICAgICAgICAgIC8vIEZvbGxvd2luZyBjYXNlcyB0
ZXN0IGNsZWFyIGV4aXN0ZWQgbWVhc3VyZSBuYW1lIHRoYXQgaXMgdGllZCBmb3IgdHdvIHRpbWVz
LgotICAgICAgICAgICAgbWVhc3VyZXMuZm9yRWFjaChjb250ZXh0LmluaXRpYWxNZWFzdXJlcywg
Y29udGV4dCk7Ci0gICAgICAgICAgICBtYXJrX25hbWVzLmZvckVhY2goY29udGV4dC5tYXJrLCBj
b250ZXh0KTsKLSAgICAgICAgICAgIG1lYXN1cmVzLmZvckVhY2goY29udGV4dC5pbml0aWFsTWVh
c3VyZXMsIGNvbnRleHQpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZWFzdXJl
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmNs
ZWFyTWVhc3VyZXMobWVhc3VyZXNbaV1bMF0pOwotICAgICAgICAgICAgICAgIHZhciByZXRhaW5l
ZF9lbnRyaWVzID0gY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdtZWFzdXJlJyk7Ci0gICAgICAg
ICAgICAgICAgdmFyIG5vbl9yZXRhaW5lZF9lbnRyaWVzID0gY29udGV4dC5nZXRFbnRyaWVzQnlO
YW1lKG1lYXN1cmVzW2ldWzBdLCAnbWVhc3VyZScpOwotICAgICAgICAgICAgICAgIGVudHJ5bGlz
dF9jaGVja2VyLmVudHJ5bGlzdF9jaGVjayhyZXRhaW5lZF9lbnRyaWVzLCAobWVhc3VyZXMubGVu
Z3RoIC0gaSAtIDEpICogMiwgbWVhc3VyZV9uYW1lcyk7Ci0gICAgICAgICAgICAgICAgdGVzdF9l
cXVhbHMobm9uX3JldGFpbmVkX2VudHJpZXMubGVuZ3RoLCAwLCAnTWVhc3VyZSB0aGF0IHdlIGNs
ZWFyZWQgc2hhbGwgbm90IGV4aXN0ZWQgYW55bW9yZS4nKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgLy8gRm9sbG93aW5nIGNhc2VzIHRlc3QgY2xlYXIgZnVuY3Rpb25hbGl0eSB3aGVu
IG1lYXN1cmUgbmFtZXMgYXJlIHRpZWQgZm9yIHR3byB0aW1lcy4KLSAgICAgICAgICAgIG1lYXN1
cmVzLmZvckVhY2goY29udGV4dC5pbml0aWFsTWVhc3VyZXMsIGNvbnRleHQpOwotICAgICAgICAg
ICAgbWVhc3VyZXMuZm9yRWFjaChjb250ZXh0LmluaXRpYWxNZWFzdXJlcywgY29udGV4dCk7Ci0g
ICAgICAgICAgICB2YXIgZW50cnlfbnVtYmVyX2JlZm9yZV91c2VsZXNzX2NsZWFyID0gY29udGV4
dC5nZXRFbnRyaWVzQnlUeXBlKCdtZWFzdXJlJykubGVuZ3RoOwotICAgICAgICAgICAgY29udGV4
dC5jbGVhck1lYXN1cmVzKCdOb25FeGlzdCcpOwotICAgICAgICAgICAgdmFyIGVudHJ5X251bWJl
cl9hZnRlcl91c2VsZXNzX2NsZWFyID0gY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdtZWFzdXJl
JykubGVuZ3RoOwotICAgICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnlfbnVtYmVyX2JlZm9yZV91
c2VsZXNzX2NsZWFyLCBlbnRyeV9udW1iZXJfYWZ0ZXJfdXNlbGVzc19jbGVhciwgJ05vdGhpbmcg
c2hvdWxkIGhhcHBlbiBpZiB3ZSBjbGVhciBhIG5vbi1leGlzdCBtZWFzdXJlJyk7Ci0gICAgICAg
ICAgICBjb250ZXh0LmNsZWFyTWVhc3VyZXMoKTsKLSAgICAgICAgICAgIHRlc3RfZXF1YWxzKGNv
bnRleHQuZ2V0RW50cmllc0J5VHlwZSgnbWVhc3VyZScpLmxlbmd0aCwgMCwgJ05vIG1lYXN1cmVz
IHNob3VsZCBleGlzdCB3aGVuIHdlIGNsZWFyIGFsbC4nKTsKLQotICAgICAgICAgICAgZG9uZSgp
OwotICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBv
bmxvYWQ9b25sb2FkX3Rlc3QoKT4KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAg
ICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBpbnRlcmZhY2Ug
d2luZG93LnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMuPC9wPgotICAgICAgICA8ZGl2IGlkPSJs
b2ciPjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0
X3VzZXJfdGltaW5nX2VudHJ5X3R5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90
aW1pbmdfZW50cnlfdHlwZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk2OTM5NTdmZDQxYWFkZGZiNmQxZDBhZTU3ZTZhY2I5MGZmZjBhNjUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1p
bmdfZW50cnlfdHlwZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAK
LURlc2NyaXB0aW9uCi0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIHVzZXIgdGltaW5nIGVudHJ5
IHR5cGUsIFBlcmZvcm1hbmNlTWFyayBhbmQgUGVyZm9ybWFuY2VNZWFzdXJlLgotCi0KLVBBU1Mg
Q2xhc3MgbmFtZSBvZiBtYXJrIGVudHJ5IHNob3VsZCBiZSBQZXJmb3JtYW5jZU1hcmsuIAotUEFT
UyBDbGFzcyBuYW1lIG9mIG1lYXN1cmUgZW50cnkgc2hvdWxkIGJlIFBlcmZvcm1hbmNlTWVhc3Vy
ZS4gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2VudHJ5X3R5cGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91
c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2VudHJ5X3R5cGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjI1ZDJlNWQwOWYwZWNmMWQ1YTcwOTQzMTQ5M2M2NTcyNDc1MjJl
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcv
dGVzdF91c2VyX3RpbWluZ19lbnRyeV90eXBlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPnVzZXIgdGltaW5nIGVudHJ5IHR5
cGU8L3RpdGxlPgotICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVm
PSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvdXNlci10aW1pbmcvI2V4dGVuc2lvbnMtcGVyZm9ybWFu
Y2UtaW50ZXJmYWNlIi8+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFy
bmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAg
ICAgICA8aDE+RGVzY3JpcHRpb248L2gxPgotICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVz
IHRoZSB1c2VyIHRpbWluZyBlbnRyeSB0eXBlLCBQZXJmb3JtYW5jZU1hcmsgYW5kIFBlcmZvcm1h
bmNlTWVhc3VyZS48L3A+Ci0KLSAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KLSAgICAgICAg
PHNjcmlwdD4KLSAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHdp
bmRvdy5wZXJmb3JtYW5jZSk7Ci0gICAgICAgIGNvbnRleHQubWFyaygnbWFyaycpOwotICAgICAg
ICBjb250ZXh0Lm1lYXN1cmUoJ21lYXN1cmUnKTsKLSAgICAgICAgdmFyIG1hcmtfZW50cnkgPSBj
b250ZXh0LmdldEVudHJpZXNCeU5hbWUoJ21hcmsnKVswXTsKLSAgICAgICAgdmFyIG1lYXN1cmVf
ZW50cnkgPSBjb250ZXh0LmdldEVudHJpZXNCeU5hbWUoJ21lYXN1cmUnKVswXTsKLQotICAgICAg
ICB0ZXN0X2VxdWFscyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobWFya19lbnRyeSks
ICdbb2JqZWN0IFBlcmZvcm1hbmNlTWFya10nLCAnQ2xhc3MgbmFtZSBvZiBtYXJrIGVudHJ5IHNo
b3VsZCBiZSBQZXJmb3JtYW5jZU1hcmsuJyk7Ci0gICAgICAgIHRlc3RfZXF1YWxzKE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChtZWFzdXJlX2VudHJ5KSwgJ1tvYmplY3QgUGVyZm9ybWFu
Y2VNZWFzdXJlXScsICdDbGFzcyBuYW1lIG9mIG1lYXN1cmUgZW50cnkgc2hvdWxkIGJlIFBlcmZv
cm1hbmNlTWVhc3VyZS4nKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNz
aW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWFyay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNl
ci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tYXJrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTJiOGYxN2IxNzQyOTkwOTBkOGRiYjA5Mjk3NGZjMjYyZjdhYTc2
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcv
dGVzdF91c2VyX3RpbWluZ19tYXJrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEy
NSArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVzIGZ1bmN0aW9uYWxp
dHkgb2YgdGhlIGludGVyZmFjZSB3aW5kb3cucGVyZm9ybWFuY2UubWFyay4KLQotCi1QQVNTIFRo
ZXJlIHNob3VsZCBiZSAwIG1hcmtzIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgMyBlbnRyaWVzLiAK
LVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgRW50
cnkgIiIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNo
b3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiAK
LVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIEVudHJ5ICIxIiBzaG91
bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJt
YXJrIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFTUyBkdXJh
dGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiAKLVBBU1MgRW50cnkgImFiYyIgc2hvdWxkIGJlIG9u
ZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIAot
UEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiAKLVBBU1MgZHVyYXRpb24gb2Yg
bWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIFRoZXJlIHNob3VsZCBiZSAxIGVudHJpZXMuIAotUEFT
UyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91bGQgYmUgaW4gb3JkZXIuIAotUEFTUyBFbnRyeSAi
IiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxk
IGJlICJtYXJrIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFT
UyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiAKLVBBU1MgVGhlcmUgc2hvdWxkIGJlIDEg
ZW50cmllcy4gCi1QQVNTIEVudHJpZXMgaW4gZW50cnlsaXN0IHNob3VsZCBiZSBpbiBvcmRlci4g
Ci1QQVNTIEVudHJ5ICIxIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBl
bnRyeVR5cGUgc2hvdWxkIGJlICJtYXJrIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgZ3JlYXRl
ciB0aGFuIDAuIAotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiAKLVBBU1MgVGhl
cmUgc2hvdWxkIGJlIDEgZW50cmllcy4gCi1QQVNTIEVudHJpZXMgaW4gZW50cnlsaXN0IHNob3Vs
ZCBiZSBpbiBvcmRlci4gCi1QQVNTIEVudHJ5ICJhYmMiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBo
YXZlIHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1hcmsiLiAKLVBBU1Mgc3RhcnRU
aW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4gCi1QQVNTIGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxk
IGJlIDAuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgNiBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBp
biBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJl
IG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIu
IAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiAKLVBBU1MgZHVyYXRpb24g
b2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIEVudHJ5ICIxIiBzaG91bGQgYmUgb25lIHRoYXQg
d2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtYXJrIi4gCi1QQVNTIHN0
YXJ0VGltZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNo
b3VsZCBiZSAwLiAKLVBBU1MgRW50cnkgImFiYyIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUg
c2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUg
c2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUg
MC4gCi1QQVNTIEVudHJ5ICIiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNT
IGVudHJ5VHlwZSBzaG91bGQgYmUgIm1hcmsiLiAKLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBncmVh
dGVyIHRoYW4gMC4gCi1QQVNTIGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIAotUEFTUyBF
bnRyeSAiMSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBl
IHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAw
LiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIEVudHJ5ICJhYmMi
IHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQg
YmUgIm1hcmsiLiAKLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4gCi1QQVNT
IGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgMiBl
bnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAK
LVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50
cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIg
dGhhbiAwLiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIEVudHJ5
ICIiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91
bGQgYmUgIm1hcmsiLiAKLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4gCi1Q
QVNTIGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUg
MiBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVy
LiAKLVBBU1MgRW50cnkgIjEiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNT
IGVudHJ5VHlwZSBzaG91bGQgYmUgIm1hcmsiLiAKLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBncmVh
dGVyIHRoYW4gMC4gCi1QQVNTIGR1cmF0aW9uIG9mIG1hcmsgc2hvdWxkIGJlIDAuIAotUEFTUyBF
bnRyeSAiMSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBl
IHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAw
LiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIFRoZXJlIHNob3Vs
ZCBiZSAyIGVudHJpZXMuIAotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91bGQgYmUgaW4g
b3JkZXIuIAotUEFTUyBFbnRyeSAiYWJjIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQu
IAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtYXJrIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91
bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiAK
LVBBU1MgRW50cnkgImFiYyIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1Mg
ZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdyZWF0
ZXIgdGhhbiAwLiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNTIFRo
ZXJlIHNob3VsZCBiZSAyIGVudHJpZXMuIAotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91
bGQgYmUgaW4gb3JkZXIuIAotUEFTUyBFbnRyeSAiIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2
ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtYXJrIi4gCi1QQVNTIHN0YXJ0VGlt
ZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBi
ZSAwLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBB
U1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGdy
ZWF0ZXIgdGhhbiAwLiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91bGQgYmUgMC4gCi1QQVNT
IFRoZXJlIHNob3VsZCBiZSAyIGVudHJpZXMuIAotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBz
aG91bGQgYmUgaW4gb3JkZXIuIAotUEFTUyBFbnRyeSAiMSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdl
IGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWFyayIuIAotUEFTUyBzdGFy
dFRpbWUgc2hvdWxkIGdyZWF0ZXIgdGhhbiAwLiAKLVBBU1MgZHVyYXRpb24gb2YgbWFyayBzaG91
bGQgYmUgMC4gCi1QQVNTIEVudHJ5ICIxIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQu
IAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtYXJrIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91
bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3VsZCBiZSAwLiAK
LVBBU1MgVGhlcmUgc2hvdWxkIGJlIDIgZW50cmllcy4gCi1QQVNTIEVudHJpZXMgaW4gZW50cnls
aXN0IHNob3VsZCBiZSBpbiBvcmRlci4gCi1QQVNTIEVudHJ5ICJhYmMiIHNob3VsZCBiZSBvbmUg
dGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1hcmsiLiAKLVBB
U1Mgc3RhcnRUaW1lIHNob3VsZCBncmVhdGVyIHRoYW4gMC4gCi1QQVNTIGR1cmF0aW9uIG9mIG1h
cmsgc2hvdWxkIGJlIDAuIAotUEFTUyBFbnRyeSAiYWJjIiBzaG91bGQgYmUgb25lIHRoYXQgd2Ug
aGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtYXJrIi4gCi1QQVNTIHN0YXJ0
VGltZSBzaG91bGQgZ3JlYXRlciB0aGFuIDAuIAotUEFTUyBkdXJhdGlvbiBvZiBtYXJrIHNob3Vs
ZCBiZSAwLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWFyay5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Vz
ZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2MWVkZDU0MjlmMWYxYmJmZDc1M2U4OTg1MDQ5ODVhMTljYzE5MDg1Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3Vz
ZXJfdGltaW5nX21hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04IiAvPgotICAgICAgICA8dGl0bGU+ZnVuY3Rpb25hbGl0eSB0ZXN0IG9mIHdpbmRvdy5wZXJm
b3JtYW5jZS5tYXJrPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPgotICAgICAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3VzZXItdGltaW5nLyNleHRlbnNpb25z
LXBlcmZvcm1hbmNlLWludGVyZmFjZSIvPgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJw
ZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0Pgot
ICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7Ci0KLSAgICAgICAgZnVuY3Rp
b24gb25sb2FkX3Rlc3QoKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgY29udGV4dCA9IG5l
dyBQZXJmb3JtYW5jZUNvbnRleHQod2luZG93LnBlcmZvcm1hbmNlKTsKLSAgICAgICAgICAgIHZh
ciBlbnRyeWxpc3RfY2hlY2tlciA9IG5ldyBwZXJmb3JtYW5jZV9lbnRyeWxpc3RfY2hlY2tlcigi
bWFyayIpOwotICAgICAgICAgICAgdmFyIHN0cmluZ19tYXJrX25hbWVzID0gbWFya19uYW1lcy5t
YXAoZnVuY3Rpb24gKHgpIHsgcmV0dXJuIFN0cmluZyh4KX0pOwotCi0gICAgICAgICAgICB0ZXN0
X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoIm1hcmsiKS5sZW5ndGgsIDAsICdUaGVy
ZSBzaG91bGQgYmUgJyArIDAgKyAnIG1hcmtzJyk7Ci0gICAgICAgICAgICBtYXJrX25hbWVzLmZv
ckVhY2goY29udGV4dC5tYXJrLCBjb250ZXh0KTsKLSAgICAgICAgICAgIHZhciBtYXJrX2VudHJ5
bGlzdCA9IGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgibWFyayIpOwotCi0gICAgICAgICAgICBl
bnRyeWxpc3RfY2hlY2tlci5lbnRyeWxpc3RfY2hlY2sobWFya19lbnRyeWxpc3QsIG1hcmtfbmFt
ZXMubGVuZ3RoLCBzdHJpbmdfbWFya19uYW1lcyk7Ci0KLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbWFya19lbnRyeWxpc3QubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgdmFyIG1hcmtfZW50cnlsaXN0X2J5X25hbWUgPSBjb250ZXh0LmdldEVudHJp
ZXNCeU5hbWUobWFya19lbnRyeWxpc3RbaV0ubmFtZSwgIm1hcmsiKTsKLSAgICAgICAgICAgICAg
ICBlbnRyeWxpc3RfY2hlY2tlci5lbnRyeWxpc3RfY2hlY2sobWFya19lbnRyeWxpc3RfYnlfbmFt
ZSwgMSwgc3RyaW5nX21hcmtfbmFtZXMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBt
YXJrX25hbWVzLmZvckVhY2goY29udGV4dC5tYXJrLCBjb250ZXh0KTsKLSAgICAgICAgICAgIHZh
ciBtYXJrX2VudHJ5bGlzdCA9IGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgibWFyayIpOwotICAg
ICAgICAgICAgZW50cnlsaXN0X2NoZWNrZXIuZW50cnlsaXN0X2NoZWNrKG1hcmtfZW50cnlsaXN0
LCBtYXJrX25hbWVzLmxlbmd0aCAqIDIsIHN0cmluZ19tYXJrX25hbWVzKTsKLQotICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXJrX2VudHJ5bGlzdC5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgbWFya19lbnRyeWxpc3RfYnlfbmFtZSA9IGNv
bnRleHQuZ2V0RW50cmllc0J5TmFtZShtYXJrX2VudHJ5bGlzdFtpXS5uYW1lLCAibWFyayIpOwot
ICAgICAgICAgICAgICAgIGVudHJ5bGlzdF9jaGVja2VyLmVudHJ5bGlzdF9jaGVjayhtYXJrX2Vu
dHJ5bGlzdF9ieV9uYW1lLCAyLCBzdHJpbmdfbWFya19uYW1lcyk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8
L2hlYWQ+Ci0gICAgPGJvZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+Ci0gICAgICAgIDxoMT5EZXNj
cmlwdGlvbjwvaDE+Ci0gICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgZnVuY3Rpb25hbGl0
eSBvZiB0aGUgaW50ZXJmYWNlIHdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrLjwvcD4KLSAgICAgICAg
PGRpdiBpZD0ibG9nIj48L2Rpdj4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10
aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tYXJrX2V4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1p
bmcvdGVzdF91c2VyX3RpbWluZ19tYXJrX2V4Y2VwdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlOWYwMWQ4YzY1ZTI4OGE3ZTc1NmNmMDg3NDg3ODhjY2Iz
NDkwOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGlt
aW5nL3Rlc3RfdXNlcl90aW1pbmdfbWFya19leGNlcHRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjggKzAsMCBAQAotRGVzY3JpcHRpb24NCi0NCi1UaGlzIHRlc3QgdmFsaWRh
dGVzIGFsbCBleGNlcHRpb24gc2NlbmFyaW9zIG9mIG1ldGhvZCB3aW5kb3cucGVyZm9ybWFuY2Uu
bWFyayBpbiBVc2VyIFRpbWluZyBBUEkuDQotDQotDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRl
eHQubWFyaygpIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgRXhjZXB0aW9uLiANCi1QQVNTIEludm9j
YXRpb24gb2YgY29udGV4dC5tYXJrKCJuYXZpZ2F0aW9uU3RhcnQiKSBzaG91bGQgdGhyb3cgU1lO
VEFYX0VSUiBFeGNlcHRpb24uIA0KLVBBU1MgSW52b2NhdGlvbiBvZiBjb250ZXh0Lm1hcmsoInVu
bG9hZEV2ZW50U3RhcnQiKSBzaG91bGQgdGhyb3cgU1lOVEFYX0VSUiBFeGNlcHRpb24uIA0KLVBB
U1MgSW52b2NhdGlvbiBvZiBjb250ZXh0Lm1hcmsoInVubG9hZEV2ZW50RW5kIikgc2hvdWxkIHRo
cm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29udGV4dC5t
YXJrKCJyZWRpcmVjdFN0YXJ0Iikgc2hvdWxkIHRocm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiAN
Ci1QQVNTIEludm9jYXRpb24gb2YgY29udGV4dC5tYXJrKCJyZWRpcmVjdEVuZCIpIHNob3VsZCB0
aHJvdyBTWU5UQVhfRVJSIEV4Y2VwdGlvbi4gDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQu
bWFyaygiZmV0Y2hTdGFydCIpIHNob3VsZCB0aHJvdyBTWU5UQVhfRVJSIEV4Y2VwdGlvbi4gDQot
UEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQubWFyaygiZG9tYWluTG9va3VwU3RhcnQiKSBzaG91
bGQgdGhyb3cgU1lOVEFYX0VSUiBFeGNlcHRpb24uIA0KLVBBU1MgSW52b2NhdGlvbiBvZiBjb250
ZXh0Lm1hcmsoImRvbWFpbkxvb2t1cEVuZCIpIHNob3VsZCB0aHJvdyBTWU5UQVhfRVJSIEV4Y2Vw
dGlvbi4gDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQubWFyaygiY29ubmVjdFN0YXJ0Iikg
c2hvdWxkIHRocm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2Yg
Y29udGV4dC5tYXJrKCJjb25uZWN0RW5kIikgc2hvdWxkIHRocm93IFNZTlRBWF9FUlIgRXhjZXB0
aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29udGV4dC5tYXJrKCJzZWN1cmVDb25uZWN0aW9u
U3RhcnQiKSBzaG91bGQgdGhyb3cgU1lOVEFYX0VSUiBFeGNlcHRpb24uIA0KLVBBU1MgSW52b2Nh
dGlvbiBvZiBjb250ZXh0Lm1hcmsoInJlcXVlc3RTdGFydCIpIHNob3VsZCB0aHJvdyBTWU5UQVhf
RVJSIEV4Y2VwdGlvbi4gDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQubWFyaygicmVzcG9u
c2VTdGFydCIpIHNob3VsZCB0aHJvdyBTWU5UQVhfRVJSIEV4Y2VwdGlvbi4gDQotUEFTUyBJbnZv
Y2F0aW9uIG9mIGNvbnRleHQubWFyaygicmVzcG9uc2VFbmQiKSBzaG91bGQgdGhyb3cgU1lOVEFY
X0VSUiBFeGNlcHRpb24uIA0KLVBBU1MgSW52b2NhdGlvbiBvZiBjb250ZXh0Lm1hcmsoImRvbUxv
YWRpbmciKSBzaG91bGQgdGhyb3cgU1lOVEFYX0VSUiBFeGNlcHRpb24uIA0KLVBBU1MgSW52b2Nh
dGlvbiBvZiBjb250ZXh0Lm1hcmsoImRvbUludGVyYWN0aXZlIikgc2hvdWxkIHRocm93IFNZTlRB
WF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29udGV4dC5tYXJrKCJkb21D
b250ZW50TG9hZGVkRXZlbnRTdGFydCIpIHNob3VsZCB0aHJvdyBTWU5UQVhfRVJSIEV4Y2VwdGlv
bi4gDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQubWFyaygiZG9tQ29udGVudExvYWRlZEV2
ZW50RW5kIikgc2hvdWxkIHRocm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9j
YXRpb24gb2YgY29udGV4dC5tYXJrKCJkb21Db21wbGV0ZSIpIHNob3VsZCB0aHJvdyBTWU5UQVhf
RVJSIEV4Y2VwdGlvbi4gDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQubWFyaygibG9hZEV2
ZW50U3RhcnQiKSBzaG91bGQgdGhyb3cgU1lOVEFYX0VSUiBFeGNlcHRpb24uIA0KLVBBU1MgSW52
b2NhdGlvbiBvZiBjb250ZXh0Lm1hcmsoImxvYWRFdmVudEVuZCIpIHNob3VsZCB0aHJvdyBTWU5U
QVhfRVJSIEV4Y2VwdGlvbi4gDQotDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1p
bmdfbWFya19leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21hcmtfZXhj
ZXB0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNDYyMTliZjc2MzE1
MDI1Zjk1M2VjYjZiNTljN2JhZDVmYzE1ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWFya19leGNlcHRpb24u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgotICAgICAg
ICA8dGl0bGU+ZXhjZXB0aW9uIHRlc3Qgb2Ygd2luZG93LnBlcmZvcm1hbmNlLm1hcms8L3RpdGxl
PgotICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8v
d3d3LmludGVsLmNvbS8iIC8+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvdXNlci10aW1pbmcvI2V4dGVuc2lvbnMtcGVyZm9ybWFuY2UtaW50ZXJm
YWNlIi8+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVu
c2lvbi5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8aDE+
RGVzY3JpcHRpb248L2gxPgotICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIGFsbCBleGNl
cHRpb24gc2NlbmFyaW9zIG9mIG1ldGhvZCB3aW5kb3cucGVyZm9ybWFuY2UubWFyayBpbiBVc2Vy
IFRpbWluZyBBUEkuPC9wPgotCi0gICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgICAg
IDxzY3JpcHQ+Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dCh3
aW5kb3cucGVyZm9ybWFuY2UpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24o
J2NvbnRleHQubWFyaygpJywgVHlwZUVycm9yKCkpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJv
d19leGNlcHRpb24oJ2NvbnRleHQubWFyaygibmF2aWdhdGlvblN0YXJ0IiknLCAnU1lOVEFYX0VS
UicpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFyaygi
dW5sb2FkRXZlbnRTdGFydCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2Rf
dGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoInVubG9hZEV2ZW50RW5kIiknLCAnU1lOVEFY
X0VSUicpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFy
aygicmVkaXJlY3RTdGFydCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2Rf
dGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoInJlZGlyZWN0RW5kIiknLCAnU1lOVEFYX0VS
UicpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFyaygi
ZmV0Y2hTdGFydCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2RfdGhyb3df
ZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoImRvbWFpbkxvb2t1cFN0YXJ0IiknLCAnU1lOVEFYX0VS
UicpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFyaygi
ZG9tYWluTG9va3VwRW5kIiknLCAnU1lOVEFYX0VSUicpOwotICAgICAgICB0ZXN0X21ldGhvZF90
aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFyaygiY29ubmVjdFN0YXJ0IiknLCAnU1lOVEFYX0VS
UicpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFyaygi
Y29ubmVjdEVuZCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2RfdGhyb3df
ZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoInNlY3VyZUNvbm5lY3Rpb25TdGFydCIpJywgJ1NZTlRB
WF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2RfdGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1h
cmsoInJlcXVlc3RTdGFydCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2Rf
dGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoInJlc3BvbnNlU3RhcnQiKScsICdTWU5UQVhf
RVJSJyk7Ci0gICAgICAgIHRlc3RfbWV0aG9kX3Rocm93X2V4Y2VwdGlvbignY29udGV4dC5tYXJr
KCJyZXNwb25zZUVuZCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2RfdGhy
b3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoImRvbUxvYWRpbmciKScsICdTWU5UQVhfRVJSJyk7
Ci0gICAgICAgIHRlc3RfbWV0aG9kX3Rocm93X2V4Y2VwdGlvbignY29udGV4dC5tYXJrKCJkb21J
bnRlcmFjdGl2ZSIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVzdF9tZXRob2RfdGhyb3df
ZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoImRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0IiknLCAn
U1lOVEFYX0VSUicpOwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRl
eHQubWFyaygiZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIiknLCAnU1lOVEFYX0VSUicpOwotICAg
ICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWFyaygiZG9tQ29tcGxl
dGUiKScsICdTWU5UQVhfRVJSJyk7Ci0gICAgICAgIHRlc3RfbWV0aG9kX3Rocm93X2V4Y2VwdGlv
bignY29udGV4dC5tYXJrKCJsb2FkRXZlbnRTdGFydCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAg
ICAgdGVzdF9tZXRob2RfdGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1hcmsoImxvYWRFdmVudEVu
ZCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVhc3VyZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50
ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM1NmIyZDc2MGFhNTAxNWI2MTIxMjMwYTkyZjZh
MDI1ZTc0ODc3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNl
ci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEyNSArMCwwIEBACi1EZXNjcmlwdGlvbgotCi1UaGlzIHRlc3QgdmFsaWRhdGVz
IGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGludGVyZmFjZSB3aW5kb3cucGVyZm9ybWFuY2UubWVhc3Vy
ZS4KLQotCi1QQVNTIFRoZXJlIHNob3VsZCBiZSAwIGVudHJpZXMgcmV0dXJuZWQuIAotUEFTUyBU
aGVyZSBzaG91bGQgYmUgMyBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hv
dWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgRW50cnkgImFhYSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdl
IGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBz
dGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEg
bnVtYmVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAK
LVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hv
dWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBB
U1MgRW50cnkgIjIiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNldC4gCi1QQVNTIGVudHJ5
VHlwZSBzaG91bGQgYmUgIm1lYXN1cmUiLiAKLVBBU1Mgc3RhcnRUaW1lIHNob3VsZCBiZSBhIG51
bWJlci4gCi1QQVNTIGR1cmF0aW9uIHNob3VsZCBiZSBhIG51bWJlci4gCi1QQVNTIFRoZXJlIHNo
b3VsZCBiZSAxIGVudHJpZXMuIAotUEFTUyBFbnRyaWVzIGluIGVudHJ5bGlzdCBzaG91bGQgYmUg
aW4gb3JkZXIuIAotUEFTUyBFbnRyeSAiYWFhIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBz
ZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtZWFzdXJlIi4gCi1QQVNTIHN0YXJ0VGlt
ZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBkdXJhdGlvbiBzaG91bGQgYmUgYSBudW1iZXIu
IAotUEFTUyBUaGVyZSBzaG91bGQgYmUgMSBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRy
eWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9uZSB0
aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAot
UEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxk
IGJlIGEgbnVtYmVyLiAKLVBBU1MgVGhlcmUgc2hvdWxkIGJlIDEgZW50cmllcy4gCi1QQVNTIEVu
dHJpZXMgaW4gZW50cnlsaXN0IHNob3VsZCBiZSBpbiBvcmRlci4gCi1QQVNTIEVudHJ5ICIyIiBz
aG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJl
ICJtZWFzdXJlIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBk
dXJhdGlvbiBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgNiBlbnRy
aWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBB
U1MgRW50cnkgImFhYSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50
cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEg
bnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgRW50cnkg
ImFhYSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNo
b3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAK
LVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxk
IGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVh
c3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRp
b24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9uZSB0aGF0
IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFT
UyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJl
IGEgbnVtYmVyLiAKLVBBU1MgRW50cnkgIjIiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZlIHNl
dC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1lYXN1cmUiLiAKLVBBU1Mgc3RhcnRUaW1l
IHNob3VsZCBiZSBhIG51bWJlci4gCi1QQVNTIGR1cmF0aW9uIHNob3VsZCBiZSBhIG51bWJlci4g
Ci1QQVNTIEVudHJ5ICIyIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBl
bnRyeVR5cGUgc2hvdWxkIGJlICJtZWFzdXJlIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUg
YSBudW1iZXIuIAotUEFTUyBkdXJhdGlvbiBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBUaGVy
ZSBzaG91bGQgYmUgMiBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBlbnRyeWxpc3Qgc2hvdWxk
IGJlIGluIG9yZGVyLiAKLVBBU1MgRW50cnkgImFhYSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhh
dmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFy
dFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVt
YmVyLiAKLVBBU1MgRW50cnkgImFhYSIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhhdmUgc2V0LiAK
LVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFydFRpbWUgc2hv
dWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBB
U1MgVGhlcmUgc2hvdWxkIGJlIDIgZW50cmllcy4gCi1QQVNTIEVudHJpZXMgaW4gZW50cnlsaXN0
IHNob3VsZCBiZSBpbiBvcmRlci4gCi1QQVNTIEVudHJ5ICJhYWEiIHNob3VsZCBiZSBvbmUgdGhh
dCB3ZSBoYXZlIHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1lYXN1cmUiLiAKLVBB
U1Mgc3RhcnRUaW1lIHNob3VsZCBiZSBhIG51bWJlci4gCi1QQVNTIGR1cmF0aW9uIHNob3VsZCBi
ZSBhIG51bWJlci4gCi1QQVNTIEVudHJ5ICJhYWEiIHNob3VsZCBiZSBvbmUgdGhhdCB3ZSBoYXZl
IHNldC4gCi1QQVNTIGVudHJ5VHlwZSBzaG91bGQgYmUgIm1lYXN1cmUiLiAKLVBBU1Mgc3RhcnRU
aW1lIHNob3VsZCBiZSBhIG51bWJlci4gCi1QQVNTIGR1cmF0aW9uIHNob3VsZCBiZSBhIG51bWJl
ci4gCi1QQVNTIFRoZXJlIHNob3VsZCBiZSAyIGVudHJpZXMuIAotUEFTUyBFbnRyaWVzIGluIGVu
dHJ5bGlzdCBzaG91bGQgYmUgaW4gb3JkZXIuIAotUEFTUyBFbnRyeSAiIiBzaG91bGQgYmUgb25l
IHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtZWFzdXJlIi4g
Ci1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBkdXJhdGlvbiBzaG91
bGQgYmUgYSBudW1iZXIuIAotUEFTUyBFbnRyeSAiIiBzaG91bGQgYmUgb25lIHRoYXQgd2UgaGF2
ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtZWFzdXJlIi4gCi1QQVNTIHN0YXJ0
VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBkdXJhdGlvbiBzaG91bGQgYmUgYSBudW1i
ZXIuIAotUEFTUyBUaGVyZSBzaG91bGQgYmUgMiBlbnRyaWVzLiAKLVBBU1MgRW50cmllcyBpbiBl
bnRyeWxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9u
ZSB0aGF0IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIu
IAotUEFTUyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hv
dWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgRW50cnkgIiIgc2hvdWxkIGJlIG9uZSB0aGF0IHdlIGhh
dmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBzdGFy
dFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEgbnVt
YmVyLiAKLVBBU1MgVGhlcmUgc2hvdWxkIGJlIDIgZW50cmllcy4gCi1QQVNTIEVudHJpZXMgaW4g
ZW50cnlsaXN0IHNob3VsZCBiZSBpbiBvcmRlci4gCi1QQVNTIEVudHJ5ICIyIiBzaG91bGQgYmUg
b25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtZWFzdXJl
Ii4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBkdXJhdGlvbiBz
aG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBFbnRyeSAiMiIgc2hvdWxkIGJlIG9uZSB0aGF0IHdl
IGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFTUyBz
dGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJlIGEg
bnVtYmVyLiAKLVBBU1MgVGhlcmUgc2hvdWxkIGJlIDIgZW50cmllcy4gCi1QQVNTIEVudHJpZXMg
aW4gZW50cnlsaXN0IHNob3VsZCBiZSBpbiBvcmRlci4gCi1QQVNTIEVudHJ5ICIyIiBzaG91bGQg
YmUgb25lIHRoYXQgd2UgaGF2ZSBzZXQuIAotUEFTUyBlbnRyeVR5cGUgc2hvdWxkIGJlICJtZWFz
dXJlIi4gCi1QQVNTIHN0YXJ0VGltZSBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBkdXJhdGlv
biBzaG91bGQgYmUgYSBudW1iZXIuIAotUEFTUyBFbnRyeSAiMiIgc2hvdWxkIGJlIG9uZSB0aGF0
IHdlIGhhdmUgc2V0LiAKLVBBU1MgZW50cnlUeXBlIHNob3VsZCBiZSAibWVhc3VyZSIuIAotUEFT
UyBzdGFydFRpbWUgc2hvdWxkIGJlIGEgbnVtYmVyLiAKLVBBU1MgZHVyYXRpb24gc2hvdWxkIGJl
IGEgbnVtYmVyLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVhc3Vy
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVhc3VyZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxY2EzMmUyZjg4OWE3NTEyYjgwYWI4MmI0NDBhNjgyZTNiNzQ2
YjIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWlu
Zy90ZXN0X3VzZXJfdGltaW5nX21lYXN1cmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPgotICAgICAgICA8dGl0bGU+ZnVuY3Rpb25hbGl0eSB0ZXN0IG9m
IHdpbmRvdy5wZXJmb3JtYW5jZS5tZWFzdXJlPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPgotICAg
ICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3VzZXItdGlt
aW5nLyNleHRlbnNpb25zLXBlcmZvcm1hbmNlLWludGVyZmFjZSIvPgotICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJm
L3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0PgotICAg
ICAgICA8c2NyaXB0PgotICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7Ci0K
LSAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgY29udGV4dCA9IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQod2luZG93LnBlcmZvcm1hbmNlKTsK
LSAgICAgICAgICAgIHZhciBlbnRyeWxpc3RfY2hlY2tlciA9IG5ldyBwZXJmb3JtYW5jZV9lbnRy
eWxpc3RfY2hlY2tlcigibWVhc3VyZSIpOwotICAgICAgICAgICAgdmFyIG1lYXN1cmVfbmFtZXMg
PSBtZWFzdXJlcy5tYXAoZnVuY3Rpb24oeCkge3JldHVybiB4WzBdO30pOwotCi0gICAgICAgICAg
ICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoIm1lYXN1cmUiKS5sZW5ndGgs
IDAsICdUaGVyZSBzaG91bGQgYmUgJyArIDAgKyAnIGVudHJpZXMgcmV0dXJuZWQuJyk7Ci0KLSAg
ICAgICAgICAgIG1hcmtfbmFtZXMuZm9yRWFjaChjb250ZXh0Lm1hcmssIGNvbnRleHQpOwotICAg
ICAgICAgICAgbWVhc3VyZXMuZm9yRWFjaChjb250ZXh0LmluaXRpYWxNZWFzdXJlcywgY29udGV4
dCk7Ci0KLSAgICAgICAgICAgIHZhciBtZWFzdXJlX2VudHJ5bGlzdCA9IGNvbnRleHQuZ2V0RW50
cmllc0J5VHlwZSgibWVhc3VyZSIpOwotICAgICAgICAgICAgZW50cnlsaXN0X2NoZWNrZXIuZW50
cnlsaXN0X2NoZWNrKG1lYXN1cmVfZW50cnlsaXN0LCBtZWFzdXJlcy5sZW5ndGgsIG1lYXN1cmVf
bmFtZXMpOwotCi0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lYXN1cmVfZW50cnls
aXN0Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBtZWFz
dXJlX2VudHJ5bGlzdF9ieV9uYW1lID0gY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKG1lYXN1cmVf
ZW50cnlsaXN0W2ldLm5hbWUsICJtZWFzdXJlIik7Ci0gICAgICAgICAgICAgICAgZW50cnlsaXN0
X2NoZWNrZXIuZW50cnlsaXN0X2NoZWNrKG1lYXN1cmVfZW50cnlsaXN0X2J5X25hbWUsIDEsIG1l
YXN1cmVfbmFtZXMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBGb2xsb3dpbmcg
Y2FzZXMgdGVzdCBmb3Igc2NlbmFyaW9zIHRoYXQgbWVhc3VyZSBuYW1lcyBhcmUgdGllZCBmb3Ig
dHdvIHRpbWVzCi0gICAgICAgICAgICBtYXJrX25hbWVzLmZvckVhY2goY29udGV4dC5tYXJrLCBj
b250ZXh0KTsKLSAgICAgICAgICAgIG1lYXN1cmVzLmZvckVhY2goY29udGV4dC5pbml0aWFsTWVh
c3VyZXMsIGNvbnRleHQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICB2YXIgbWVhc3VyZV9l
bnRyeWxpc3QgPSBjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoIm1lYXN1cmUiKTsKLSAgICAgICAg
ICAgIGVudHJ5bGlzdF9jaGVja2VyLmVudHJ5bGlzdF9jaGVjayhtZWFzdXJlX2VudHJ5bGlzdCwg
bWVhc3VyZXMubGVuZ3RoICogMiwgbWVhc3VyZV9uYW1lcyk7Ci0KLSAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbWVhc3VyZV9lbnRyeWxpc3QubGVuZ3RoOyArK2kpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgdmFyIG1lYXN1cmVfZW50cnlsaXN0X2J5X25hbWUgPSBjb250
ZXh0LmdldEVudHJpZXNCeU5hbWUobWVhc3VyZV9lbnRyeWxpc3RbaV0ubmFtZSwgIm1lYXN1cmUi
KTsKLSAgICAgICAgICAgICAgICBlbnRyeWxpc3RfY2hlY2tlci5lbnRyeWxpc3RfY2hlY2sobWVh
c3VyZV9lbnRyeWxpc3RfYnlfbmFtZSwgMiwgbWVhc3VyZV9uYW1lcyk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGRvbmUoKTsgIAotICAgICAgICB9Ci0gICAgICAgIDwvc2NyaXB0Pgot
ICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9b25sb2FkX3Rlc3QoKT4KLSAgICAgICAgPGgx
PkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyBmdW5jdGlv
bmFsaXR5IG9mIHRoZSBpbnRlcmZhY2Ugd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmUuPC9wPgot
ICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRl
bC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21lYXN1cmVfYXNzb2NpYXRlX3dpdGhfbmF2
aWdhdGlvbl90aW1pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVh
c3VyZV9hc3NvY2lhdGVfd2l0aF9uYXZpZ2F0aW9uX3RpbWluZy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZDFhZDIxZTNkNTk5ZjM3NGU3OThkMjA1ZmJhY2Fj
YWQ0ZTU2ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXIt
dGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVhc3VyZV9hc3NvY2lhdGVfd2l0aF9uYXZpZ2F0aW9u
X3RpbWluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1EZXNj
cmlwdGlvbg0KLQ0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgaW50
ZXJmYWNlIHdpbmRvdy5wZXJmb3JtYW5jZS5tZWFzdXJlLg0KLQ0KLQ0KLVBBU1MgTWVhc3VyZSBv
ZiBuYXZpZ2F0aW9uU3RhcnQgdG8gbm93IHNob3VsZCBiZSBwb3NpdGl2ZSB2YWx1ZS4gDQotUEFT
UyBNZWFzdXJlIG9mIG5hdmlnYXRpb25TdGFydCB0byBsb2FkRXZlbnRFbmQgc2hvdWxkIGJlIHBv
c2l0aXZlIHZhbHVlLiANCi1QQVNTIE1lYXN1cmUgb2YgY3VycmVudCBtYXJrIHRvIG5hdmlnYXRp
b25TdGFydCBzaG91bGQgYmUgbmVnYXRpdmUgdmFsdWUuIA0KLVBBU1MgbG9hZFRpbWUgcGx1cyBs
b2FkRXZlbnRFbmQgdG8gYSBtYXJrICJhIiBzaG91bGQgZXF1YWwgdG8gbmF2aWdhdGlvblN0YXJ0
IHRvICJhIi4gDQotUEFTUyBNZWFzdXJlIG9mIGN1cnJlbnQgbWFyayB0byBuYXZpZ2F0aW9uU3Rh
cnQgc2hvdWxkIGJlIG5lZ2F0aXZlIHZhbHVlLiANCi1QQVNTIE1lYXN1cmVzIG9mIGxvYWRUaW1l
IHNob3VsZCBoYXZlIHNhbWUgZHVyYXRpb24uIA0KLVBBU1MgTWVhc3VyZSBmcm9tIGRvbUNvbXBs
ZXRlIGV2ZW50IHRvIG1vc3QgcmVjZW50IG1hcmsgImEiIHNob3VsZCBoYXZlIGxvbmdlciBkdXJh
dGlvbi4gDQotUEFTUyBNZWFzdXJlIGZyb20gbW9zdCByZWNlbnQgbWFyayB0byBuYXZpZ2F0aW9u
U3RhcnQgc2hvdWxkIGhhdmUgbG9uZ2VyIGR1cmF0aW9uLiANCi0NCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1p
bmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlX2Fzc29jaWF0ZV93aXRoX25hdmlnYXRpb25fdGlt
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlX2Fzc29jaWF0ZV93aXRo
X25hdmlnYXRpb25fdGltaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJi
MjJmMmVhMGFmMDY4NTYwZWM0YzdhZjViOTNmOGVkMjcwOTBjZmQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVh
c3VyZV9hc3NvY2lhdGVfd2l0aF9uYXZpZ2F0aW9uX3RpbWluZy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAg
ICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Ci0gICAgICAgIDx0aXRsZT5mdW5jdGlvbmFs
aXR5IHRlc3Qgb2Ygd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmU8L3RpdGxlPgotICAgICAgICA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNv
bS8iIC8+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvdXNlci10aW1pbmcvI2V4dGVuc2lvbnMtcGVyZm9ybWFuY2UtaW50ZXJmYWNlIi8+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9z
Y3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTog
dHJ1ZSB9KTsKLQotICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBtZWFzdXJlc19mb3JfdGltaW5nX29yZGVyID0gWwotICAgICAgICAgICAg
ICAgIFsnbmF2Mm5vdycsICduYXZpZ2F0aW9uU3RhcnQnXSwKLSAgICAgICAgICAgICAgICBbJ2xv
YWRUaW1lJywgJ25hdmlnYXRpb25TdGFydCcsICdsb2FkRXZlbnRFbmQnXSwKLSAgICAgICAgICAg
ICAgICBbJ2xvYWRFdmVudEVuZDJhJywgJ2xvYWRFdmVudEVuZCcsICdhYmMnXSwKLSAgICAgICAg
ICAgICAgICBbJ25hdjJhJywgJ25hdmlnYXRpb25TdGFydCcsICdhYmMnXSwKLSAgICAgICAgICAg
ICAgICBbJ2RvbUNvbXBsZXRlMmEnLCAnZG9tQ29tcGxldGUnLCAnYWJjJ10sCi0gICAgICAgICAg
ICAgICAgWyduZWdhdGl2ZVZhbHVlJywgMSwgJ25hdmlnYXRpb25TdGFydCddLAotICAgICAgICAg
ICAgXTsKLSAgICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dCh3
aW5kb3cucGVyZm9ybWFuY2UpOwotCi0gICAgICAgICAgICBtYXJrX25hbWVzLmZvckVhY2goY29u
dGV4dC5tYXJrLCBjb250ZXh0KTsKLSAgICAgICAgICAgIG1lYXN1cmVzX2Zvcl90aW1pbmdfb3Jk
ZXIuZm9yRWFjaChjb250ZXh0LmluaXRpYWxNZWFzdXJlcywgY29udGV4dCk7Ci0gICAgICAgICAg
ICB0ZXN0X2dyZWF0ZXJfdGhhbihjb250ZXh0LmdldEVudHJpZXNCeU5hbWUoJ25hdjJub3cnLCAi
bWVhc3VyZSIpWzBdLmR1cmF0aW9uLCAwLCAnTWVhc3VyZSBvZiBuYXZpZ2F0aW9uU3RhcnQgdG8g
bm93IHNob3VsZCBiZSBwb3NpdGl2ZSB2YWx1ZS4nKTsKLSAgICAgICAgICAgIHRlc3RfZ3JlYXRl
cl90aGFuKGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZSgnbG9hZFRpbWUnLCAibWVhc3VyZSIpWzBd
LmR1cmF0aW9uLCAwLCAnTWVhc3VyZSBvZiBuYXZpZ2F0aW9uU3RhcnQgdG8gbG9hZEV2ZW50RW5k
IHNob3VsZCBiZSBwb3NpdGl2ZSB2YWx1ZS4nKTsKLSAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90
aGFuKDAsIGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZSgnbmVnYXRpdmVWYWx1ZScsICJtZWFzdXJl
IilbMF0uZHVyYXRpb24sICdNZWFzdXJlIG9mIGN1cnJlbnQgbWFyayB0byBuYXZpZ2F0aW9uU3Rh
cnQgc2hvdWxkIGJlIG5lZ2F0aXZlIHZhbHVlLicpOwotICAgICAgICAgICAgdGVzdF9lcXVhbHMo
Y29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKCdsb2FkVGltZScsICJtZWFzdXJlIilbMF0uZHVyYXRp
b24gKyBjb250ZXh0LmdldEVudHJpZXNCeU5hbWUoJ2xvYWRFdmVudEVuZDJhJywgIm1lYXN1cmUi
KVswXS5kdXJhdGlvbiwgY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKCduYXYyYScsICJtZWFzdXJl
IilbMF0uZHVyYXRpb24sICdsb2FkVGltZSBwbHVzIGxvYWRFdmVudEVuZCB0byBhIG1hcmsgImEi
IHNob3VsZCBlcXVhbCB0byBuYXZpZ2F0aW9uU3RhcnQgdG8gImEiLicpOwotCi0gICAgICAgICAg
ICAvLyBGb2xsb3dpbmcgY2FzZXMgdGVzdCBmb3Igc2NlbmFyaW9zIHRoYXQgbWVhc3VyZSBuYW1l
cyBhcmUgdGllZCBmb3IgdHdvIHRpbWVzCi0gICAgICAgICAgICBtYXJrX25hbWVzLmZvckVhY2go
Y29udGV4dC5tYXJrLCBjb250ZXh0KTsKLSAgICAgICAgICAgIG1lYXN1cmVzX2Zvcl90aW1pbmdf
b3JkZXIuZm9yRWFjaChjb250ZXh0LmluaXRpYWxNZWFzdXJlcywgY29udGV4dCk7Ci0KLSAgICAg
ICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZSgnbmF2Mm5v
dycsICJtZWFzdXJlIilbMV0uZHVyYXRpb24sIGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZSgnbmF2
Mm5vdycsICJtZWFzdXJlIilbMF0uZHVyYXRpb24sICdNZWFzdXJlIG9mIGN1cnJlbnQgbWFyayB0
byBuYXZpZ2F0aW9uU3RhcnQgc2hvdWxkIGJlIG5lZ2F0aXZlIHZhbHVlLicpOwotICAgICAgICAg
ICAgdGVzdF9lcXVhbHMoY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKCdsb2FkVGltZScsICJtZWFz
dXJlIilbMF0uZHVyYXRpb24sIGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZSgnbG9hZFRpbWUnLCAi
bWVhc3VyZSIpWzFdLmR1cmF0aW9uLCAnTWVhc3VyZXMgb2YgbG9hZFRpbWUgc2hvdWxkIGhhdmUg
c2FtZSBkdXJhdGlvbi4nKTsKLSAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGNvbnRleHQu
Z2V0RW50cmllc0J5TmFtZSgnZG9tQ29tcGxldGUyYScsICJtZWFzdXJlIilbMV0uZHVyYXRpb24s
IGNvbnRleHQuZ2V0RW50cmllc0J5TmFtZSgnZG9tQ29tcGxldGUyYScsICJtZWFzdXJlIilbMF0u
ZHVyYXRpb24sICdNZWFzdXJlIGZyb20gZG9tQ29tcGxldGUgZXZlbnQgdG8gbW9zdCByZWNlbnQg
bWFyayAiYSIgc2hvdWxkIGhhdmUgbG9uZ2VyIGR1cmF0aW9uLicpOwotICAgICAgICAgICAgdGVz
dF9ncmVhdGVyX3RoYW4oY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKCduZWdhdGl2ZVZhbHVlJywg
Im1lYXN1cmUiKVswXS5kdXJhdGlvbiwgY29udGV4dC5nZXRFbnRyaWVzQnlOYW1lKCduZWdhdGl2
ZVZhbHVlJywgIm1lYXN1cmUiKVsxXS5kdXJhdGlvbiwgJ01lYXN1cmUgZnJvbSBtb3N0IHJlY2Vu
dCBtYXJrIHRvIG5hdmlnYXRpb25TdGFydCBzaG91bGQgaGF2ZSBsb25nZXIgZHVyYXRpb24uJyk7
Ci0KLSAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAg
ICA8L2hlYWQ+Ci0gICAgPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9ubG9hZF90ZXN0LDApIj4K
LSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlk
YXRlcyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBpbnRlcmZhY2Ugd2luZG93LnBlcmZvcm1hbmNlLm1l
YXN1cmUuPC9wPgotICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAgIDwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21lYXN1cmVfZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21lYXN1cmVfZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEyNTI5ZDQ1
MmM3OTVjMTE1ZTQ4OTUwNzMyNGEwNjM2NDQzYWE0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlX2V4
Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1EZXNj
cmlwdGlvbg0KLQ0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgYWxsIGV4Y2VwdGlvbiBzY2VuYXJpb3Mg
b2YgbWV0aG9kIHdpbmRvdy5wZXJmb3JtYW5jZS5tZWFzdXJlIGluIFVzZXIgVGltaW5nIEFQSQ0K
LQ0KLQ0KLVBBU1MgSW52b2NhdGlvbiBvZiBjb250ZXh0Lm1lYXN1cmUoKSBzaG91bGQgdGhyb3cg
VHlwZUVycm9yIEV4Y2VwdGlvbi4gDQotUEFTUyBJbnZvY2F0aW9uIG9mIGNvbnRleHQubWVhc3Vy
ZSgiRXhjZXB0aW9uMSIsICJOb25FeGlzdE1hcmsxIikgc2hvdWxkIHRocm93IFNZTlRBWF9FUlIg
RXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29udGV4dC5tZWFzdXJlKCJFeGNlcHRp
b24yIiwgIk5vbkV4aXN0TWFyazEiLCAibmF2aWdhdGlvblN0YXJ0Iikgc2hvdWxkIHRocm93IFNZ
TlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29udGV4dC5tZWFzdXJl
KCJFeGNlcHRpb24zIiwgIm5hdmlnYXRpb25TdGFydCIsICJOb25FeGlzdE1hcmsxIikgc2hvdWxk
IHRocm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29udGV4
dC5tZWFzdXJlKCJFeGNlcHRpb240IiwgIk5vbkV4aXN0TWFyazEiLCAiRXhpc3RNYXJrIikgc2hv
dWxkIHRocm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2YgY29u
dGV4dC5tZWFzdXJlKCJFeGNlcHRpb241IiwgIkV4aXN0TWFyayIsICJOb25FeGlzdE1hcmsxIikg
c2hvdWxkIHRocm93IFNZTlRBWF9FUlIgRXhjZXB0aW9uLiANCi1QQVNTIEludm9jYXRpb24gb2Yg
Y29udGV4dC5tZWFzdXJlKCJFeGNlcHRpb242IiwgIk5vbkV4aXN0TWFyazEiLCAiTm9uRXhpc3RN
YXJrMiIpIHNob3VsZCB0aHJvdyBTWU5UQVhfRVJSIEV4Y2VwdGlvbi4gDQotUEFTUyBJbnZvY2F0
aW9uIG9mIGNvbnRleHQubWVhc3VyZSgiRXhjZXB0aW9uNyIsICJyZWRpcmVjdFN0YXJ0Iikgc2hv
dWxkIHRocm93IElOVkFMSURfQUNDRVNTX0VSUiBFeGNlcHRpb24uIA0KLQ0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2Vy
LXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21lYXN1cmVfZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcv
dGVzdF91c2VyX3RpbWluZ19tZWFzdXJlX2V4Y2VwdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhYjIwMGZmNDBiNjVmNzEzZmU4NjUwYjBjMjk3ZjBjZGNkM2M0OThjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0
X3VzZXJfdGltaW5nX21lYXN1cmVfZXhjZXB0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPmV4Y2VwdGlvbiB0ZXN0IG9m
IHdpbmRvdy5wZXJmb3JtYW5jZS5tZWFzdXJlPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPgotICAg
ICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3VzZXItdGlt
aW5nLyNleHRlbnNpb25zLXBlcmZvcm1hbmNlLWludGVyZmFjZSIvPgotICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJm
L3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0PgotICAg
IDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KLSAgICAg
ICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyBhbGwgZXhjZXB0aW9uIHNjZW5hcmlvcyBvZiBtZXRo
b2Qgd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmUgaW4gVXNlciBUaW1pbmcgQVBJPC9wPgotCi0g
ICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZh
ciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dCh3aW5kb3cucGVyZm9ybWFuY2UpOwot
ICAgICAgICBjb250ZXh0Lm1hcmsoJ0V4aXN0TWFyaycpOwotICAgICAgICB0ZXN0X21ldGhvZF90
aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWVhc3VyZSgpJywgVHlwZUVycm9yKCkpOwotICAgICAg
ICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWVhc3VyZSgiRXhjZXB0aW9u
MSIsICJOb25FeGlzdE1hcmsxIiknLCAnU1lOVEFYX0VSUicpOwotICAgICAgICB0ZXN0X21ldGhv
ZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWVhc3VyZSgiRXhjZXB0aW9uMiIsICJOb25FeGlz
dE1hcmsxIiwgIm5hdmlnYXRpb25TdGFydCIpJywgJ1NZTlRBWF9FUlInKTsKLSAgICAgICAgdGVz
dF9tZXRob2RfdGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1lYXN1cmUoIkV4Y2VwdGlvbjMiLCAi
bmF2aWdhdGlvblN0YXJ0IiwgIk5vbkV4aXN0TWFyazEiKScsICdTWU5UQVhfRVJSJyk7Ci0gICAg
ICAgIHRlc3RfbWV0aG9kX3Rocm93X2V4Y2VwdGlvbignY29udGV4dC5tZWFzdXJlKCJFeGNlcHRp
b240IiwgIk5vbkV4aXN0TWFyazEiLCAiRXhpc3RNYXJrIiknLCAnU1lOVEFYX0VSUicpOwotICAg
ICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWVhc3VyZSgiRXhjZXB0
aW9uNSIsICJFeGlzdE1hcmsiLCAiTm9uRXhpc3RNYXJrMSIpJywgJ1NZTlRBWF9FUlInKTsKLSAg
ICAgICAgdGVzdF9tZXRob2RfdGhyb3dfZXhjZXB0aW9uKCdjb250ZXh0Lm1lYXN1cmUoIkV4Y2Vw
dGlvbjYiLCAiTm9uRXhpc3RNYXJrMSIsICJOb25FeGlzdE1hcmsyIiknLCAnU1lOVEFYX0VSUicp
OwotICAgICAgICB0ZXN0X21ldGhvZF90aHJvd19leGNlcHRpb24oJ2NvbnRleHQubWVhc3VyZSgi
RXhjZXB0aW9uNyIsICJyZWRpcmVjdFN0YXJ0IiknLCAnSU5WQUxJRF9BQ0NFU1NfRVJSJyk7Ci0g
ICAgICAgIDwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWlu
Zy90ZXN0X3VzZXJfdGltaW5nX21ldGhvZF9leGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVz
dF91c2VyX3RpbWluZ19tZXRob2RfZXhpc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkMWY4YzVkOWNiYTYyOTY4MTUwNzdlMjg5ZmZjYWQ0OTBlNmY0ZTI2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0
X3VzZXJfdGltaW5nX21ldGhvZF9leGlzdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxNCArMCwwIEBACi1EZXNjcmlwdGlvbg0KLQ0KLVRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCBh
bGwgb2YgdGhlIHVzZXIgdGltaW5nIG1ldGhvZHMgZXhpc3QgaW4gd2luZG93LnBlcmZvcm1hbmNl
IChidXQgZG9lcyBub3QgdmFsaWRhdGUgdGhhdCB0aGVpciBmdW5jdGlvbmFsaXR5KS4NCi0NCi0N
Ci1QQVNTIHdpbmRvdy5wZXJmb3JtYW5jZSBpcyBkZWZpbmVkIA0KLVBBU1MgcGVyZm9ybWFuY2Uu
d2Via2l0TWFyayBpcyBzdXBwb3J0ZWQhIA0KLVBBU1MgcGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJN
YXJrcyBpcyBzdXBwb3J0ZWQhIA0KLVBBU1MgcGVyZm9ybWFuY2Uud2Via2l0TWVhc3VyZSBpcyBz
dXBwb3J0ZWQhIA0KLVBBU1MgcGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNZWFzdXJlcyBpcyBzdXBw
b3J0ZWQhIA0KLVBBU1MgcGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllcyBpcyBzdXBwb3J0ZWQh
IA0KLVBBU1MgcGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5VHlwZSBpcyBzdXBwb3J0ZWQh
IA0KLVBBU1MgcGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZSBpcyBzdXBwb3J0ZWQh
IA0KLQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21ldGhvZF9leGlzdC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWV0aG9kX2V4aXN0Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5YTJmYzdkNTE4NzA5MTEyMDExZTk3NmFkYzhhMjI5ODBi
Njg0YjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGlt
aW5nL3Rlc3RfdXNlcl90aW1pbmdfbWV0aG9kX2V4aXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KLSAgICAgICAgPHRpdGxlPnVzZXIgdGltaW5nIGV4
dGVuc2lvbiBpbnRlcmZhY2UgaW4gd2luZG93LnBlcmZvcm1hbmNlPC90aXRsZT4KLSAgICAgICAg
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20vIiAvPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL3VzZXItdGltaW5nLyNleHRlbnNpb25zLXBlcmZvcm1hbmNlLWludGVyZmFjZSIvPgotICAg
ICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNl
cy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwv
c2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGgxPkRlc2NyaXB0aW9u
PC9oMT4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IGFsbCBvZiB0aGUgdXNl
ciB0aW1pbmcgbWV0aG9kcyBleGlzdCBpbiB3aW5kb3cucGVyZm9ybWFuY2UgKGJ1dCBkb2VzIG5v
dCB2YWxpZGF0ZSB0aGF0IHRoZWlyIGZ1bmN0aW9uYWxpdHkpLjwvcD4KLQotICAgICAgICA8ZGl2
IGlkPSJsb2ciPjwvZGl2PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICB2YXIgY29udGV4dCA9
IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQod2luZG93LnBlcmZvcm1hbmNlKTsKLSAgICAgICAgdGVz
dF9uYW1lc3BhY2UoKTsKLQotICAgICAgICB2YXIgbWFyayA9IHBlcmZvcm1hbmNlLm1hcmsgfHwg
cGVyZm9ybWFuY2UubW96TWFyayB8fCBwZXJmb3JtYW5jZS5tc01hcmsgfHwgcGVyZm9ybWFuY2Uu
b01hcmsgfHwgcGVyZm9ybWFuY2Uud2Via2l0TWFyazsKLSAgICAgICAgdmFyIGNsZWFyTWFya3Mg
PSBwZXJmb3JtYW5jZS5jbGVhck1hcmtzIHx8IHBlcmZvcm1hbmNlLm1vekNsZWFyTWFya3MgfHwg
cGVyZm9ybWFuY2UubXNDbGVhck1hcmtzIHx8IHBlcmZvcm1hbmNlLm9DbGVhck1hcmtzIHx8IHBl
cmZvcm1hbmNlLndlYmtpdENsZWFyTWFya3M7Ci0gICAgICAgIHZhciBtZWFzdXJlID0gcGVyZm9y
bWFuY2UubWVhc3VyZSB8fCBwZXJmb3JtYW5jZS5tb3pNZWFzdXJlIHx8IHBlcmZvcm1hbmNlLm1z
TWVhc3VyZSB8fCBwZXJmb3JtYW5jZS5vTWVhc3VyZSB8fCBwZXJmb3JtYW5jZS53ZWJraXRNZWFz
dXJlOwotICAgICAgICB2YXIgY2xlYXJNZWFzdXJlcyA9IHBlcmZvcm1hbmNlLmNsZWFyTWVhc3Vy
ZXMgfHwgcGVyZm9ybWFuY2UubW96Q2xlYXJNZWFzdXJlcyB8fCBwZXJmb3JtYW5jZS5tc0NsZWFy
TWVhc3VyZXMgfHwgcGVyZm9ybWFuY2Uub0NsZWFyTWVhc3VyZXMgfHwgcGVyZm9ybWFuY2Uud2Vi
a2l0Q2xlYXJNZWFzdXJlczsKLSAgICAgICAgdmFyIGdldEVudHJpZXMgPSBwZXJmb3JtYW5jZS5n
ZXRFbnRyaWVzIHx8IHBlcmZvcm1hbmNlLm1vekdldEVudHJpZXMgfHwgcGVyZm9ybWFuY2UubXNH
ZXRFbnRyaWVzIHx8IHBlcmZvcm1hbmNlLm9HZXRFbnRyaWVzIHx8IHBlcmZvcm1hbmNlLndlYmtp
dEdldEVudHJpZXM7Ci0gICAgICAgIHZhciBnZXRFbnRyaWVzQnlUeXBlID0gcGVyZm9ybWFuY2Uu
Z2V0RW50cmllc0J5VHlwZSB8fCBwZXJmb3JtYW5jZS5tb3pHZXRFbnRyaWVzQnlUeXBlIHx8IHBl
cmZvcm1hbmNlLm1zR2V0RW50cmllc0J5VHlwZSB8fCBwZXJmb3JtYW5jZS5vR2V0RW50cmllc0J5
VHlwZSB8fCBwZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlUeXBlOwotICAgICAgICB2YXIg
Z2V0RW50cmllc0J5TmFtZSA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUgfHwgcGVyZm9y
bWFuY2UubW96R2V0RW50cmllc0J5TmFtZSB8fCBwZXJmb3JtYW5jZS5tc0dldEVudHJpZXNCeU5h
bWUgfHwgcGVyZm9ybWFuY2Uub0dldEVudHJpZXNCeU5hbWUgfHwgcGVyZm9ybWFuY2Uud2Via2l0
R2V0RW50cmllc0J5TmFtZTsKLQotICAgICAgICB0ZXN0X21ldGhvZF9leGlzdHMobWFyaywgJ21h
cmsnKTsKLSAgICAgICAgdGVzdF9tZXRob2RfZXhpc3RzKGNsZWFyTWFya3MsICdjbGVhck1hcmtz
Jyk7Ci0gICAgICAgIHRlc3RfbWV0aG9kX2V4aXN0cyhtZWFzdXJlLCAnbWVhc3VyZScpOwotICAg
ICAgICB0ZXN0X21ldGhvZF9leGlzdHMoY2xlYXJNZWFzdXJlcywgJ2NsZWFyTWVhc3VyZXMnKTsK
LSAgICAgICAgdGVzdF9tZXRob2RfZXhpc3RzKGdldEVudHJpZXMsICdnZXRFbnRyaWVzJyk7Ci0g
ICAgICAgIHRlc3RfbWV0aG9kX2V4aXN0cyhnZXRFbnRyaWVzQnlUeXBlLCAnZ2V0RW50cmllc0J5
VHlwZScpOwotICAgICAgICB0ZXN0X21ldGhvZF9leGlzdHMoZ2V0RW50cmllc0J5TmFtZSwgJ2dl
dEVudHJpZXNCeU5hbWUnKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWFk
eXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCmluZGV4IDUwOWFiNDRh
MmU5Zjg2MDM2MTRjNTllY2E5OTFjYTVhNGEwZWQwYTcuLjM4NzcyNGNkMzMwMmY3YWQyNzQyYmEy
MTJjOTI4M2QzN2MzMmExNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlYWR5c3RhdGVjaGFuZ2UtYW5kLWFib3J0
Lmh0bWwKQEAgLTEsOCArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0iLi4vdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiB0ZXN0KGZ1bmN0aW9uKCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2UtanNv
bi1hbmQtcmVhZHlzdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZXNwb25zZS1qc29uLWFuZC1yZWFkeXN0YXRlLmh0bWwKaW5kZXggMTU5N2E2ZDgwNGJh
YmFjMTFiYzkyZWQ0Y2VlY2M3ODlhNTZjMWM2OC4uNmNkOTk2MWY3ZjIxNTNhNmJjOTdjN2IxNWFm
MGU2MjFmYmY0MDQ1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZXNwb25zZS1qc29uLWFuZC1yZWFkeXN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNwb25zZS1qc29uLWFuZC1yZWFkeXN0YXRl
Lmh0bWwKQEAgLTEsOCArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0iLi4vdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIlRl
c3QgcmVzcG9uc2Ugb2YgWE1MSHR0cFJlcXVlc3Qgd2l0aCByZXNwb25zZVR5cGUgc2V0IHRvICdq
c29uJyBmb3IgdmFyaW91cyByZWFkeVN0YXRlLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW9wZW4tbWV0aG9kLWFs
bG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3Qtb3Blbi1tZXRob2QtYWxsb3dlZC5odG1sCmluZGV4IGE0M2UzNWNiZDc1MjNjN2E1
YTFhMGI5NGY4Y2QxODlmZTZkYmViNTQuLjFmOGQwNDc2OGFmZGU5MGEyY2IzMzM2ZTc1Mzc3MDlj
YTc2NDA3YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3Qtb3Blbi1tZXRob2QtYWxsb3dlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtb3Blbi1tZXRob2Qt
YWxsb3dlZC5odG1sCkBAIC0yLDggKzIsOCBAQAogPGh0bWw+CiAgIDxoZWFkPgogICAgIDx0aXRs
ZT5YTUxIdHRwUmVxdWVzdDogb3BlbigpIC0gYWxsb3dlZCBjYXNlIGluL3NlbnNpdGl2ZSBtZXRo
b2RzIHRlc3Q8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KICAgPC9oZWFkPgogICA8Ym9keT4KICAg
ICA8cD5WYWxpZCBtZXRob2RzIHBlciBzdGVwLTUgb2YgaHR0cDovL3hoci5zcGVjLndoYXR3Zy5v
cmcvI3RoZS1vcGVuKCktbWV0aG9kLjwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtb3Blbi1tZXRob2QtY2FzZS1pbnNl
bnNpdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1vcGVuLW1ldGhvZC1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKaW5kZXggZTExYjFm
ZTIyODhlMDMxM2VjMmZkNzg5ZjBiZjg5ZDNkMWQyNzVhYi4uOWQxMWY4ZmE0MmUwODQ3MTQ4NWFl
YjZmOWIwZTg1M2ZkM2ZhOWJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1vcGVuLW1ldGhvZC1jYXNlLWluc2Vuc2l0aXZl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1vcGVuLW1ldGhvZC1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKQEAgLTIsOCArMiw4IEBA
CiA8aHRtbD4KICAgPGhlYWQ+CiAgICAgPHRpdGxlPlhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgLSBj
YXNlLWluc2Vuc2l0aXZlIG1ldGhvZHMgdGVzdDwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSIuLi93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogICA8
L2hlYWQ+CiAgIDxib2R5PgogICAgIDxwPm5vbi1zdGFuZGFyZCBtZXRob2QgbmFtZXMgc2hvdWxk
IGJlIHJldHVybmVkIGFzIGlzIHBlciBzdGVwLTUgb2YgaHR0cDovL3hoci5zcGVjLndoYXR3Zy5v
cmcvI3RoZS1vcGVuKCktbWV0aG9kLjwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL2JsaW5rL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhZDRmOWFhNWMxYWNkZmQ2YmUyYzY5MDNmNTNk
NzAxM2U5MmZlZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNjQwICswLDAgQEAKLS8qZ2xvYmFsIHNlbGYq
LwotLypqc2hpbnQgbGF0ZWRlZjogbm9mdW5jKi8KLS8qCi1EaXN0cmlidXRlZCB1bmRlciBib3Ro
IHRoZSBXM0MgVGVzdCBTdWl0ZSBMaWNlbnNlIFsxXSBhbmQgdGhlIFczQwotMy1jbGF1c2UgQlNE
IExpY2Vuc2UgWzJdLiBUbyBjb250cmlidXRlIHRvIGEgVzNDIFRlc3QgU3VpdGUsIHNlZSB0aGUK
LXBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzA0LXRlc3RzdWl0ZS1saWNlbnNlCi1bMl0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlCi1bM10g
aHR0cDovL3d3dy53My5vcmcvMjAwNC8xMC8yNy10ZXN0Y2FzZXMKLSovCi0KLS8qIERvY3VtZW50
YXRpb24gaXMgaW4gZG9jcy9hcGkubWQgKi8KLQotKGZ1bmN0aW9uICgpCi17Ci0gICAgdmFyIGRl
YnVnID0gZmFsc2U7Ci0gICAgLy8gZGVmYXVsdCB0aW1lb3V0IGlzIDEwIHNlY29uZHMsIHRlc3Qg
Y2FuIG92ZXJyaWRlIGlmIG5lZWRlZAotICAgIHZhciBzZXR0aW5ncyA9IHsKLSAgICAgICAgb3V0
cHV0OnRydWUsCi0gICAgICAgIGhhcm5lc3NfdGltZW91dDp7Ci0gICAgICAgICAgICAibm9ybWFs
IjoxMDAwMCwKLSAgICAgICAgICAgICJsb25nIjo2MDAwMAotICAgICAgICB9LAotICAgICAgICB0
ZXN0X3RpbWVvdXQ6bnVsbCwKLSAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsic3RhcnQiLCAidGVz
dF9zdGF0ZSIsICJyZXN1bHQiLCAiY29tcGxldGlvbiJdCi0gICAgfTsKLQotICAgIHZhciB4aHRt
bF9ucyA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjsKLQotICAgIC8qCi0gICAgICog
VGVzdEVudmlyb25tZW50IGlzIGFuIGFic3RyYWN0aW9uIGZvciB0aGUgZW52aXJvbm1lbnQgaW4g
d2hpY2ggdGhlIHRlc3QKLSAgICAgKiBoYXJuZXNzIGlzIHVzZWQuIEVhY2ggaW1wbGVtZW50YXRp
b24gb2YgYSB0ZXN0IGVudmlyb25tZW50IGhhcyB0byBwcm92aWRlCi0gICAgICogdGhlIGZvbGxv
d2luZyBpbnRlcmZhY2U6Ci0gICAgICoKLSAgICAgKiBpbnRlcmZhY2UgVGVzdEVudmlyb25tZW50
IHsKLSAgICAgKiAgIC8vIEludm9rZWQgYWZ0ZXIgdGhlIGdsb2JhbCAndGVzdHMnIG9iamVjdCBo
YXMgYmVlbiBjcmVhdGVkIGFuZCBpdCdzCi0gICAgICogICAvLyBzYWZlIHRvIGNhbGwgYWRkXypf
Y2FsbGJhY2soKSB0byByZWdpc3RlciBldmVudCBoYW5kbGVycy4KLSAgICAgKiAgIHZvaWQgb25f
dGVzdHNfcmVhZHkoKTsKLSAgICAgKgotICAgICAqICAgLy8gSW52b2tlZCBhZnRlciBzZXR1cCgp
IGhhcyBiZWVuIGNhbGxlZCB0byBub3RpZnkgdGhlIHRlc3QgZW52aXJvbm1lbnQKLSAgICAgKiAg
IC8vIG9mIGNoYW5nZXMgdG8gdGhlIHRlc3QgaGFybmVzcyBwcm9wZXJ0aWVzLgotICAgICAqICAg
dm9pZCBvbl9uZXdfaGFybmVzc19wcm9wZXJ0aWVzKG9iamVjdCBwcm9wZXJ0aWVzKTsKLSAgICAg
KgotICAgICAqICAgLy8gU2hvdWxkIHJldHVybiBhIG5ldyB1bmlxdWUgZGVmYXVsdCB0ZXN0IG5h
bWUuCi0gICAgICogICBET01TdHJpbmcgbmV4dF9kZWZhdWx0X3Rlc3RfbmFtZSgpOwotICAgICAq
Ci0gICAgICogICAvLyBTaG91bGQgcmV0dXJuIHRoZSB0ZXN0IGhhcm5lc3MgdGltZW91dCBkdXJh
dGlvbiBpbiBtaWxsaXNlY29uZHMuCi0gICAgICogICBmbG9hdCB0ZXN0X3RpbWVvdXQoKTsKLSAg
ICAgKgotICAgICAqICAgLy8gU2hvdWxkIHJldHVybiB0aGUgZ2xvYmFsIHNjb3BlIG9iamVjdC4K
LSAgICAgKiAgIG9iamVjdCBnbG9iYWxfc2NvcGUoKTsKLSAgICAgKiB9OwotICAgICAqLwotCi0g
ICAgLyoKLSAgICAgKiBBIHRlc3QgZW52aXJvbm1lbnQgd2l0aCBhIERPTS4gVGhlIGdsb2JhbCBv
YmplY3QgaXMgJ3dpbmRvdycuIEJ5IGRlZmF1bHQKLSAgICAgKiB0ZXN0IHJlc3VsdHMgYXJlIGRp
c3BsYXllZCBpbiBhIHRhYmxlLiBBbnkgcGFyZW50IHdpbmRvd3MgcmVjZWl2ZQotICAgICAqIGNh
bGxiYWNrcyBvciBtZXNzYWdlcyB2aWEgcG9zdE1lc3NhZ2UoKSB3aGVuIHRlc3QgZXZlbnRzIG9j
Y3VyLiBTZWUKLSAgICAgKiBhcGlzYW1wbGUxMS5odG1sIGFuZCBhcGlzYW1wbGUxMi5odG1sLgot
ICAgICAqLwotICAgIGZ1bmN0aW9uIFdpbmRvd1Rlc3RFbnZpcm9ubWVudCgpIHsKLSAgICAgICAg
dGhpcy5uYW1lX2NvdW50ZXIgPSAwOwotICAgICAgICB0aGlzLndpbmRvd19jYWNoZSA9IG51bGw7
Ci0gICAgICAgIHRoaXMub3V0cHV0X2hhbmRsZXIgPSBudWxsOwotICAgICAgICB0aGlzLmFsbF9s
b2FkZWQgPSBmYWxzZTsKLSAgICAgICAgdmFyIHRoaXNfb2JqID0gdGhpczsKLSAgICAgICAgdGhp
cy5tZXNzYWdlX2V2ZW50cyA9IFtdOwotCi0gICAgICAgIHRoaXMubWVzc2FnZV9mdW5jdGlvbnMg
PSB7Ci0gICAgICAgICAgICBzdGFydDogW2FkZF9zdGFydF9jYWxsYmFjaywgcmVtb3ZlX3N0YXJ0
X2NhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAocHJvcGVydGllcykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKCJzdGFydF9jYWxsYmFj
ayIsIFtwcm9wZXJ0aWVzXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7dHlwZTogInN0YXJ0IiwgcHJvcGVydGllczogcHJvcGVydGllc30pOwotICAgICAgICAg
ICAgICAgICAgICB9XSwKLQotICAgICAgICAgICAgdGVzdF9zdGF0ZTogW2FkZF90ZXN0X3N0YXRl
X2NhbGxiYWNrLCByZW1vdmVfdGVzdF9zdGF0ZV9jYWxsYmFjaywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXNfb2JqLl9kaXNwYXRjaCgidGVzdF9zdGF0ZV9jYWxsYmFjayIsIFt0ZXN0XSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAidGVzdF9zdGF0
ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dDogdGVzdC5zdHJ1Y3R1cmVkX2Nsb25lKCl9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9
XSwKLSAgICAgICAgICAgIHJlc3VsdDogW2FkZF9yZXN1bHRfY2FsbGJhY2ssIHJlbW92ZV9yZXN1
bHRfY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAodGVzdCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5kbGVyLnNob3dfc3RhdHVz
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKCJyZXN1bHRf
Y2FsbGJhY2siLCBbdGVzdF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHt0eXBlOiAicmVzdWx0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3Q6IHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpfSk7Ci0gICAgICAgICAg
ICAgICAgICAgICB9XSwKLSAgICAgICAgICAgIGNvbXBsZXRpb246IFthZGRfY29tcGxldGlvbl9j
YWxsYmFjaywgcmVtb3ZlX2NvbXBsZXRpb25fY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgY2xvbmVkX3Rlc3RzID0gbWFwKHRlc3RzLCBmdW5jdGlvbih0ZXN0
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVzdC5zdHJ1Y3R1
cmVkX2Nsb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5fZGlzcGF0Y2goImNvbXBsZXRpb25fY2FsbGJh
Y2siLCBbdGVzdHMsIGhhcm5lc3Nfc3RhdHVzXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiY29tcGxldGUiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzOiBjbG9uZWRfdGVzdHMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBo
YXJuZXNzX3N0YXR1cy5zdHJ1Y3R1cmVkX2Nsb25lKCl9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICB9XQotICAgICAgICB9Ci0KLSAgICAgICAgb25fZXZlbnQod2luZG93LCAnbG9hZCcsIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgdGhpc19vYmouYWxsX2xvYWRlZCA9IHRydWU7Ci0gICAg
ICAgIH0pOwotICAgIH0KLQotICAgIFdpbmRvd1Rlc3RFbnZpcm9ubWVudC5wcm90b3R5cGUuX2Rp
c3BhdGNoID0gZnVuY3Rpb24oc2VsZWN0b3IsIGNhbGxiYWNrX2FyZ3MsIG1lc3NhZ2VfYXJnKSB7
Ci0gICAgICAgIHRoaXMuX2ZvckVhY2hfd2luZG93cygKLSAgICAgICAgICAgICAgICBmdW5jdGlv
bih3LCBzYW1lX29yaWdpbikgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2FtZV9vcmlnaW4p
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGhhc19zZWxlY3RvciA9IHNlbGVjdG9yIGluIHc7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBk
b2N1bWVudC5kb21haW4gd2FzIHNldCBhdCBzb21lIHBvaW50IHNhbWVfb3JpZ2luIGNhbiBiZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyb25nIGFuZCB0aGUgYWJvdmUgd2lsbCBm
YWlsLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc19zZWxlY3RvciA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhh
c19zZWxlY3RvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdbc2VsZWN0b3JdLmFwcGx5KHVuZGVmaW5lZCwgY2Fs
bGJhY2tfYXJncyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
aWYgKHN1cHBvcnRzX3Bvc3RfbWVzc2FnZSh3KSAmJiB3ICE9PSBzZWxmKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB3LnBvc3RNZXNzYWdlKG1lc3NhZ2VfYXJnLCAiKiIpOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIFdpbmRvd1Rl
c3RFbnZpcm9ubWVudC5wcm90b3R5cGUuX2ZvckVhY2hfd2luZG93cyA9IGZ1bmN0aW9uKGNhbGxi
YWNrKSB7Ci0gICAgICAgIC8vIEl0ZXJhdGUgb2YgdGhlIHRoZSB3aW5kb3dzIFtzZWxmIC4uLiB0
b3AsIG9wZW5lcl0uIFRoZSBjYWxsYmFjayBpcyBwYXNzZWQKLSAgICAgICAgLy8gdHdvIG9iamVj
dHMsIHRoZSBmaXJzdCBvbmUgaXMgdGhlIHdpbmRvd3Mgb2JqZWN0IGl0c2VsZiwgdGhlIHNlY29u
ZCBvbmUKLSAgICAgICAgLy8gaXMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBvciBub3Qg
aXRzIG9uIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUKLSAgICAgICAgLy8gY3VycmVudCB3aW5kb3cu
Ci0gICAgICAgIHZhciBjYWNoZSA9IHRoaXMud2luZG93X2NhY2hlOwotICAgICAgICBpZiAoIWNh
Y2hlKSB7Ci0gICAgICAgICAgICBjYWNoZSA9IFtbc2VsZiwgdHJ1ZV1dOwotICAgICAgICAgICAg
dmFyIHcgPSBzZWxmOwotICAgICAgICAgICAgdmFyIGkgPSAwOwotICAgICAgICAgICAgdmFyIHNv
OwotICAgICAgICAgICAgdmFyIG9yaWdpbnMgPSBsb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7Ci0g
ICAgICAgICAgICB3aGlsZSAodyAhPSB3LnBhcmVudCkgewotICAgICAgICAgICAgICAgIHcgPSB3
LnBhcmVudDsKLSAgICAgICAgICAgICAgICAvLyBJbiBXZWJLaXQsIGNhbGxzIHRvIHBhcmVudCB3
aW5kb3dzJyBwcm9wZXJ0aWVzIHRoYXQgYXJlbid0IG9uIHRoZSBzYW1lCi0gICAgICAgICAgICAg
ICAgLy8gb3JpZ2luIGNhdXNlIGFuIGVycm9yIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGluIHRo
ZSBlcnJvciBjb25zb2xlIGJ1dAotICAgICAgICAgICAgICAgIC8vIGRvbid0IHRocm93IGFuIGV4
Y2VwdGlvbi4gVGhpcyBpcyBhIGRldmlhdGlvbiBmcm9tIHRoZSBjdXJyZW50IEhUTUw1Ci0gICAg
ICAgICAgICAgICAgLy8gc3BlYy4gU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDM1MDQKLSAgICAgICAgICAgICAgICAvLyBUaGUgcHJvYmxlbSB3aXRoIFdlYktp
dCdzIGJlaGF2aW9yIGlzIHRoYXQgaXQgcG9sbHV0ZXMgdGhlIGVycm9yIGNvbnNvbGUKLSAgICAg
ICAgICAgICAgICAvLyB3aXRoIGVycm9yIG1lc3NhZ2VzIHRoYXQgY2FuJ3QgYmUgY2F1Z2h0Lgot
ICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgLy8gVGhpcyBpc3N1ZSBjYW4gYmUg
bWl0aWdhdGVkIGJ5IHJlbHlpbmcgb24gdGhlIChmb3Igbm93KSBwcm9wcmlldGFyeQotICAgICAg
ICAgICAgICAgIC8vIGBsb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNgIHByb3BlcnR5IHdoaWNoIHJl
dHVybnMgYW4gb3JkZXJlZCBsaXN0IG9mCi0gICAgICAgICAgICAgICAgLy8gdGhlIG9yaWdpbnMg
b2YgZW5jbG9zaW5nIHdpbmRvd3MuIFNlZToKLSAgICAgICAgICAgICAgICAvLyBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTM5NDUuCi0gICAgICAgICAgICAgICAgaWYgKG9yaWdp
bnMpIHsKLSAgICAgICAgICAgICAgICAgICAgc28gPSAobG9jYXRpb24ub3JpZ2luID09IG9yaWdp
bnNbaV0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHNv
ID0gaXNfc2FtZV9vcmlnaW4odyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IGNhY2hlLnB1c2goW3csIHNvXSk7Ci0gICAgICAgICAgICAgICAgaSsrOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgdyA9IHdpbmRvdy5vcGVuZXI7Ci0gICAgICAgICAgICBpZiAodykgewot
ICAgICAgICAgICAgICAgIC8vIHdpbmRvdy5vcGVuZXIgaXNuJ3QgaW5jbHVkZWQgaW4gdGhlIGBs
b2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNgIHByb3AuCi0gICAgICAgICAgICAgICAgLy8gV2UnbGwg
anVzdCBoYXZlIHRvIGRlYWwgd2l0aCBhIHNpbXBsZSBjaGVjayBhbmQgYW4gZXJyb3IgbXNnIG9u
IFdlYktpdAotICAgICAgICAgICAgICAgIC8vIGJyb3dzZXJzIGluIHRoaXMgY2FzZS4KLSAgICAg
ICAgICAgICAgICBjYWNoZS5wdXNoKFt3LCBpc19zYW1lX29yaWdpbih3KV0pOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdGhpcy53aW5kb3dfY2FjaGUgPSBjYWNoZTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZvckVhY2goY2FjaGUsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oYSkgewot
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5hcHBseShudWxsLCBhKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICB9OwotCi0gICAgV2luZG93VGVzdEVudmlyb25tZW50LnByb3RvdHlwZS5v
bl90ZXN0c19yZWFkeSA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgb3V0cHV0ID0gbmV3IE91
dHB1dCgpOwotICAgICAgICB0aGlzLm91dHB1dF9oYW5kbGVyID0gb3V0cHV0OwotCi0gICAgICAg
IHZhciB0aGlzX29iaiA9IHRoaXM7Ci0KLSAgICAgICAgYWRkX3N0YXJ0X2NhbGxiYWNrKGZ1bmN0
aW9uIChwcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICB0aGlzX29iai5vdXRwdXRfaGFuZGxlci5p
bml0KHByb3BlcnRpZXMpOwotICAgICAgICB9KTsKLQotICAgICAgICBhZGRfdGVzdF9zdGF0ZV9j
YWxsYmFjayhmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgICAgICB0aGlzX29iai5vdXRwdXRfaGFu
ZGxlci5zaG93X3N0YXR1cygpOwotICAgICAgICB9KTsKLQotICAgICAgICBhZGRfcmVzdWx0X2Nh
bGxiYWNrKGZ1bmN0aW9uICh0ZXN0KSB7Ci0gICAgICAgICAgICB0aGlzX29iai5vdXRwdXRfaGFu
ZGxlci5zaG93X3N0YXR1cygpOwotICAgICAgICB9KTsKLQotICAgICAgICBhZGRfY29tcGxldGlv
bl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7Ci0gICAgICAgICAg
ICB0aGlzX29iai5vdXRwdXRfaGFuZGxlci5zaG93X3Jlc3VsdHModGVzdHMsIGhhcm5lc3Nfc3Rh
dHVzKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuc2V0dXBfbWVzc2FnZXMoc2V0dGluZ3Mu
bWVzc2FnZV9ldmVudHMpOwotICAgIH07Ci0KLSAgICBXaW5kb3dUZXN0RW52aXJvbm1lbnQucHJv
dG90eXBlLnNldHVwX21lc3NhZ2VzID0gZnVuY3Rpb24obmV3X2V2ZW50cykgewotICAgICAgICB2
YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICBmb3JFYWNoKHNldHRpbmdzLm1lc3NhZ2VfZXZl
bnRzLCBmdW5jdGlvbih4KSB7Ci0gICAgICAgICAgICB2YXIgY3VycmVudF9kaXNwYXRjaCA9IHRo
aXNfb2JqLm1lc3NhZ2VfZXZlbnRzLmluZGV4T2YoeCkgIT09IC0xOwotICAgICAgICAgICAgdmFy
IG5ld19kaXNwYXRjaCA9IG5ld19ldmVudHMuaW5kZXhPZih4KSAhPT0gLTE7Ci0gICAgICAgICAg
ICBpZiAoIWN1cnJlbnRfZGlzcGF0Y2ggJiYgbmV3X2Rpc3BhdGNoKSB7Ci0gICAgICAgICAgICAg
ICAgdGhpc19vYmoubWVzc2FnZV9mdW5jdGlvbnNbeF1bMF0odGhpc19vYmoubWVzc2FnZV9mdW5j
dGlvbnNbeF1bMl0pOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X2Rpc3BhdGNoICYm
ICFuZXdfZGlzcGF0Y2gpIHsKLSAgICAgICAgICAgICAgICB0aGlzX29iai5tZXNzYWdlX2Z1bmN0
aW9uc1t4XVsxXSh0aGlzX29iai5tZXNzYWdlX2Z1bmN0aW9uc1t4XVsyXSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLm1lc3NhZ2VfZXZlbnRzID0gbmV3X2V2ZW50
czsKLSAgICB9Ci0KLSAgICBXaW5kb3dUZXN0RW52aXJvbm1lbnQucHJvdG90eXBlLm5leHRfZGVm
YXVsdF90ZXN0X25hbWUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgLy9Eb24ndCB1c2UgZG9jdW1l
bnQudGl0bGUgdG8gd29yayBhcm91bmQgYW4gT3BlcmEgYnVnIGluIFhIVE1MIGRvY3VtZW50cwot
ICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUi
KVswXTsKLSAgICAgICAgdmFyIHByZWZpeCA9ICh0aXRsZSAmJiB0aXRsZS5maXJzdENoaWxkICYm
IHRpdGxlLmZpcnN0Q2hpbGQuZGF0YSkgfHwgIlVudGl0bGVkIjsKLSAgICAgICAgdmFyIHN1ZmZp
eCA9IHRoaXMubmFtZV9jb3VudGVyID4gMCA/ICIgIiArIHRoaXMubmFtZV9jb3VudGVyIDogIiI7
Ci0gICAgICAgIHRoaXMubmFtZV9jb3VudGVyKys7Ci0gICAgICAgIHJldHVybiBwcmVmaXggKyBz
dWZmaXg7Ci0gICAgfTsKLQotICAgIFdpbmRvd1Rlc3RFbnZpcm9ubWVudC5wcm90b3R5cGUub25f
bmV3X2hhcm5lc3NfcHJvcGVydGllcyA9IGZ1bmN0aW9uKHByb3BlcnRpZXMpIHsKLSAgICAgICAg
dGhpcy5vdXRwdXRfaGFuZGxlci5zZXR1cChwcm9wZXJ0aWVzKTsKLSAgICAgICAgaWYgKHByb3Bl
cnRpZXMuaGFzT3duUHJvcGVydHkoIm1lc3NhZ2VfZXZlbnRzIikpIHsKLSAgICAgICAgICAgIHRo
aXMuc2V0dXBfbWVzc2FnZXMocHJvcGVydGllcy5tZXNzYWdlX2V2ZW50cyk7Ci0gICAgICAgIH0K
LSAgICB9OwotCi0gICAgV2luZG93VGVzdEVudmlyb25tZW50LnByb3RvdHlwZS5hZGRfb25fbG9h
ZGVkX2NhbGxiYWNrID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKLSAgICAgICAgb25fZXZlbnQod2lu
ZG93LCAnbG9hZCcsIGNhbGxiYWNrKTsKLSAgICB9OwotCi0gICAgV2luZG93VGVzdEVudmlyb25t
ZW50LnByb3RvdHlwZS50ZXN0X3RpbWVvdXQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIG1l
dGFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm1ldGEiKTsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBtZXRhcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaWYgKG1l
dGFzW2ldLm5hbWUgPT0gInRpbWVvdXQiKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1ldGFzW2ld
LmNvbnRlbnQgPT0gImxvbmciKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5n
cy5oYXJuZXNzX3RpbWVvdXQubG9uZzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHNldHRp
bmdzLmhhcm5lc3NfdGltZW91dC5ub3JtYWw7Ci0gICAgfTsKLQotICAgIFdpbmRvd1Rlc3RFbnZp
cm9ubWVudC5wcm90b3R5cGUuZ2xvYmFsX3Njb3BlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJl
dHVybiB3aW5kb3c7Ci0gICAgfTsKLQotICAgIC8qCi0gICAgICogQmFzZSBUZXN0RW52aXJvbm1l
bnQgaW1wbGVtZW50YXRpb24gZm9yIGEgZ2VuZXJpYyB3ZWIgd29ya2VyLgotICAgICAqCi0gICAg
ICogV29ya2VycyBhY2N1bXVsYXRlIHRlc3QgcmVzdWx0cy4gT25lIG9yIG1vcmUgY2xpZW50cyBj
YW4gY29ubmVjdCBhbmQKLSAgICAgKiByZXRyaWV2ZSByZXN1bHRzIGZyb20gYSB3b3JrZXIgYXQg
YW55IHRpbWUuCi0gICAgICoKLSAgICAgKiBXb3JrZXJUZXN0RW52aXJvbm1lbnQgc3VwcG9ydHMg
Y29tbXVuaWNhdGluZyB3aXRoIGEgY2xpZW50IHZpYSBhCi0gICAgICogTWVzc2FnZVBvcnQuICBU
aGUgbWVjaGFuaXNtIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgTWVzc2FnZVBvcnQK
LSAgICAgKiBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGEgY2xpZW50IGRlcGVuZHMgb24gdGhlIHR5
cGUgb2Ygd29ya2VyIGFuZCBpcwotICAgICAqIGltcGxlbWVudGVkIGJ5IHRoZSB2YXJpb3VzIHNw
ZWNpYWxpemF0aW9ucyBvZiBXb3JrZXJUZXN0RW52aXJvbm1lbnQKLSAgICAgKiBiZWxvdy4KLSAg
ICAgKgotICAgICAqIEEgY2xpZW50IGRvY3VtZW50IHVzaW5nIHRlc3RoYXJuZXNzIGNhbiB1c2Ug
ZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoKSB0bwotICAgICAqIHJldHJpZXZlIHJlc3VsdHMgZnJv
bSBhIHdvcmtlci4gU2VlIGFwaXNhbXBsZTE2Lmh0bWwuCi0gICAgICovCi0gICAgZnVuY3Rpb24g
V29ya2VyVGVzdEVudmlyb25tZW50KCkgewotICAgICAgICB0aGlzLm5hbWVfY291bnRlciA9IDA7
Ci0gICAgICAgIHRoaXMuYWxsX2xvYWRlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMubWVzc2FnZV9s
aXN0ID0gW107Ci0gICAgICAgIHRoaXMubWVzc2FnZV9wb3J0cyA9IFtdOwotICAgIH0KLQotICAg
IFdvcmtlclRlc3RFbnZpcm9ubWVudC5wcm90b3R5cGUuX2Rpc3BhdGNoID0gZnVuY3Rpb24obWVz
c2FnZSkgewotICAgICAgICB0aGlzLm1lc3NhZ2VfbGlzdC5wdXNoKG1lc3NhZ2UpOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVzc2FnZV9wb3J0cy5sZW5ndGg7ICsraSkKLSAg
ICAgICAgewotICAgICAgICAgICAgdGhpcy5tZXNzYWdlX3BvcnRzW2ldLnBvc3RNZXNzYWdlKG1l
c3NhZ2UpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIC8vIFRoZSBvbmx5IHJlcXVpcmVtZW50
IGlzIHRoYXQgcG9ydCBoYXMgYSBwb3N0TWVzc2FnZSgpIG1ldGhvZC4gSXQgZG9lc24ndAotICAg
IC8vIGhhdmUgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgYSBNZXNzYWdlUG9ydCwgYW5kIG9mdGVuIGlz
bid0LgotICAgIFdvcmtlclRlc3RFbnZpcm9ubWVudC5wcm90b3R5cGUuX2FkZF9tZXNzYWdlX3Bv
cnQgPSBmdW5jdGlvbihwb3J0KSB7Ci0gICAgICAgIHRoaXMubWVzc2FnZV9wb3J0cy5wdXNoKHBv
cnQpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVzc2FnZV9saXN0Lmxlbmd0
aDsgKytpKQotICAgICAgICB7Ci0gICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHRoaXMubWVz
c2FnZV9saXN0W2ldKTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBXb3JrZXJUZXN0RW52aXJv
bm1lbnQucHJvdG90eXBlLm5leHRfZGVmYXVsdF90ZXN0X25hbWUgPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgdmFyIHN1ZmZpeCA9IHRoaXMubmFtZV9jb3VudGVyID4gMCA/ICIgIiArIHRoaXMubmFt
ZV9jb3VudGVyIDogIiI7Ci0gICAgICAgIHRoaXMubmFtZV9jb3VudGVyKys7Ci0gICAgICAgIHJl
dHVybiAiVW50aXRsZWQiICsgc3VmZml4OwotICAgIH07Ci0KLSAgICBXb3JrZXJUZXN0RW52aXJv
bm1lbnQucHJvdG90eXBlLm9uX25ld19oYXJuZXNzX3Byb3BlcnRpZXMgPSBmdW5jdGlvbigpIHt9
OwotCi0gICAgV29ya2VyVGVzdEVudmlyb25tZW50LnByb3RvdHlwZS5vbl90ZXN0c19yZWFkeSA9
IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICBhZGRf
c3RhcnRfY2FsbGJhY2soCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24ocHJvcGVydGllcykgewot
ICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5fZGlzcGF0Y2goewotICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZTogInN0YXJ0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRp
ZXM6IHByb3BlcnRpZXMsCi0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICBhZGRfdGVzdF9zdGF0ZV9jYWxsYmFjaygKLSAgICAgICAgICAgICAgICBm
dW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXNfb2JqLl9kaXNwYXRjaCh7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAidGVzdF9zdGF0ZSIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0OiB0ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKQotICAgICAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgYWRkX3Jlc3VsdF9jYWxs
YmFjaygKLSAgICAgICAgICAgICAgICBmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRoaXNfb2JqLl9kaXNwYXRjaCh7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAi
cmVzdWx0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Q6IHRlc3Quc3RydWN0dXJlZF9j
bG9uZSgpCi0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygKLSAgICAgICAgICAgICAgICBmdW5jdGlvbih0
ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpc19vYmouX2Rp
c3BhdGNoKHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJjb21wbGV0ZSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0czogbWFwKHRlc3RzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0pLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBoYXJuZXNzX3N0YXR1
cy5zdHJ1Y3R1cmVkX2Nsb25lKCkKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgfTsKLQotICAgIFdvcmtlclRlc3RFbnZpcm9ubWVudC5wcm90b3R5cGUu
YWRkX29uX2xvYWRlZF9jYWxsYmFjayA9IGZ1bmN0aW9uKCkge307Ci0KLSAgICBXb3JrZXJUZXN0
RW52aXJvbm1lbnQucHJvdG90eXBlLnRlc3RfdGltZW91dCA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICAvLyBUZXN0cyBydW5uaW5nIGluIGEgd29ya2VyIGRvbid0IGhhdmUgYSBkZWZhdWx0IHRpbWVv
dXQuIEkuZS4gYWxsCi0gICAgICAgIC8vIHdvcmtlciB0ZXN0cyBiZWhhdmUgYXMgaWYgc2V0dGlu
Z3MuZXhwbGljaXRfdGltZW91dCBpcyB0cnVlLgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9
OwotCi0gICAgV29ya2VyVGVzdEVudmlyb25tZW50LnByb3RvdHlwZS5nbG9iYWxfc2NvcGUgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHNlbGY7Ci0gICAgfTsKLQotICAgIC8qCi0gICAg
ICogRGVkaWNhdGVkIHdlYiB3b3JrZXJzLgotICAgICAqIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCNkZWRpY2F0ZWR3b3JrZXJnbG9iYWxzY29wZQot
ICAgICAqCi0gICAgICogVGhpcyBjbGFzcyBpcyB1c2VkIGFzIHRoZSB0ZXN0X2Vudmlyb25tZW50
IHdoZW4gdGVzdGhhcm5lc3MgaXMgcnVubmluZwotICAgICAqIGluc2lkZSBhIGRlZGljYXRlZCB3
b3JrZXIuCi0gICAgICovCi0gICAgZnVuY3Rpb24gRGVkaWNhdGVkV29ya2VyVGVzdEVudmlyb25t
ZW50KCkgewotICAgICAgICBXb3JrZXJUZXN0RW52aXJvbm1lbnQuY2FsbCh0aGlzKTsKLSAgICAg
ICAgLy8gc2VsZiBpcyBhbiBpbnN0YW5jZSBvZiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSB3
aGljaCBleHBvc2VzCi0gICAgICAgIC8vIGEgcG9zdE1lc3NhZ2UoKSBtZXRob2QgZm9yIGNvbW11
bmljYXRpbmcgdmlhIHRoZSBtZXNzYWdlIGNoYW5uZWwKLSAgICAgICAgLy8gZXN0YWJsaXNoZWQg
d2hlbiB0aGUgd29ya2VyIGlzIGNyZWF0ZWQuCi0gICAgICAgIHRoaXMuX2FkZF9tZXNzYWdlX3Bv
cnQoc2VsZik7Ci0gICAgfQotICAgIERlZGljYXRlZFdvcmtlclRlc3RFbnZpcm9ubWVudC5wcm90
b3R5cGUgPSBPYmplY3QuY3JlYXRlKFdvcmtlclRlc3RFbnZpcm9ubWVudC5wcm90b3R5cGUpOwot
Ci0gICAgRGVkaWNhdGVkV29ya2VyVGVzdEVudmlyb25tZW50LnByb3RvdHlwZS5vbl90ZXN0c19y
ZWFkeSA9IGZ1bmN0aW9uKCkgewotICAgICAgICBXb3JrZXJUZXN0RW52aXJvbm1lbnQucHJvdG90
eXBlLm9uX3Rlc3RzX3JlYWR5LmNhbGwodGhpcyk7Ci0gICAgICAgIC8vIEluIHRoZSBhYnNlbmNl
IG9mIGFuIG9ubG9hZCBub3RpZmljYXRpb24sIHdlIGEgcmVxdWlyZSBkZWRpY2F0ZWQKLSAgICAg
ICAgLy8gd29ya2VycyB0byBleHBsaWNpdGx5IHNpZ25hbCB3aGVuIHRoZSB0ZXN0cyBhcmUgZG9u
ZS4KLSAgICAgICAgdGVzdHMud2FpdF9mb3JfZmluaXNoID0gdHJ1ZTsKLSAgICB9OwotCi0gICAg
LyoKLSAgICAgKiBTaGFyZWQgd2ViIHdvcmtlcnMuCi0gICAgICogaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI3NoYXJlZHdvcmtlcmdsb2JhbHNjb3Bl
Ci0gICAgICoKLSAgICAgKiBUaGlzIGNsYXNzIGlzIHVzZWQgYXMgdGhlIHRlc3RfZW52aXJvbm1l
bnQgd2hlbiB0ZXN0aGFybmVzcyBpcyBydW5uaW5nCi0gICAgICogaW5zaWRlIGEgc2hhcmVkIHdl
YiB3b3JrZXIuCi0gICAgICovCi0gICAgZnVuY3Rpb24gU2hhcmVkV29ya2VyVGVzdEVudmlyb25t
ZW50KCkgewotICAgICAgICBXb3JrZXJUZXN0RW52aXJvbm1lbnQuY2FsbCh0aGlzKTsKLSAgICAg
ICAgdmFyIHRoaXNfb2JqID0gdGhpczsKLSAgICAgICAgLy8gU2hhcmVkIHdvcmtlcnMgcmVjZWl2
ZSBtZXNzYWdlIHBvcnRzIHZpYSB0aGUgJ29uY29ubmVjdCcgZXZlbnQgZm9yCi0gICAgICAgIC8v
IGVhY2ggY29ubmVjdGlvbi4KLSAgICAgICAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJjb25uZWN0
IiwKLSAgICAgICAgICAgICAgICBmdW5jdGlvbihtZXNzYWdlX2V2ZW50KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRoaXNfb2JqLl9hZGRfbWVzc2FnZV9wb3J0KG1lc3NhZ2VfZXZlbnQuc291cmNl
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICB9Ci0gICAgU2hhcmVkV29ya2VyVGVzdEVudmly
b25tZW50LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoV29ya2VyVGVzdEVudmlyb25tZW50LnBy
b3RvdHlwZSk7Ci0KLSAgICBTaGFyZWRXb3JrZXJUZXN0RW52aXJvbm1lbnQucHJvdG90eXBlLm9u
X3Rlc3RzX3JlYWR5ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIFdvcmtlclRlc3RFbnZpcm9ubWVu
dC5wcm90b3R5cGUub25fdGVzdHNfcmVhZHkuY2FsbCh0aGlzKTsKLSAgICAgICAgLy8gSW4gdGhl
IGFic2VuY2Ugb2YgYW4gb25sb2FkIG5vdGlmaWNhdGlvbiwgd2UgYSByZXF1aXJlIHNoYXJlZAot
ICAgICAgICAvLyB3b3JrZXJzIHRvIGV4cGxpY2l0bHkgc2lnbmFsIHdoZW4gdGhlIHRlc3RzIGFy
ZSBkb25lLgotICAgICAgICB0ZXN0cy53YWl0X2Zvcl9maW5pc2ggPSB0cnVlOwotICAgIH07Ci0K
LSAgICAvKgotICAgICAqIFNlcnZpY2Ugd29ya2Vycy4KLSAgICAgKiBodHRwOi8vd3d3LnczLm9y
Zy9UUi9zZXJ2aWNlLXdvcmtlcnMvCi0gICAgICoKLSAgICAgKiBUaGlzIGNsYXNzIGlzIHVzZWQg
YXMgdGhlIHRlc3RfZW52aXJvbm1lbnQgd2hlbiB0ZXN0aGFybmVzcyBpcyBydW5uaW5nCi0gICAg
ICogaW5zaWRlIGEgc2VydmljZSB3b3JrZXIuCi0gICAgICovCi0gICAgZnVuY3Rpb24gU2Vydmlj
ZVdvcmtlclRlc3RFbnZpcm9ubWVudCgpIHsKLSAgICAgICAgV29ya2VyVGVzdEVudmlyb25tZW50
LmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuYWxsX2xvYWRlZCA9IGZhbHNlOwotICAgICAgICB0
aGlzLm9uX2xvYWRlZF9jYWxsYmFjayA9IG51bGw7Ci0gICAgICAgIHZhciB0aGlzX29iaiA9IHRo
aXM7Ci0gICAgICAgIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsCi0gICAgICAgICAg
ICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEudHlwZSAmJiBldmVudC5kYXRhLnR5cGUgPT09ICJjb25uZWN0IikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LnBvcnRzICYmIGV2ZW50LnBvcnRzWzBdKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gSWYgYSBNZXNzYWdlQ2hhbm5lbCB3YXMgcGFzc2VkLCB0
aGVuIHVzZSBpdCB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgcmVzdWx0
cyBiYWNrIHRvIHRoZSBtYWluIHdpbmRvdy4gIFRoaXMKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBhbGxvd3MgdGhlIHRlc3RzIHRvIHdvcmsgZXZlbiBpZiB0aGUgYnJvd3NlcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgbm90IGZ1bGx5IHN1cHBvcnQgTWVzc2Fn
ZUV2ZW50LnNvdXJjZSBpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlcnZpY2VX
b3JrZXJzIHlldC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5fYWRkX21l
c3NhZ2VfcG9ydChldmVudC5wb3J0c1swXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnQucG9ydHNbMF0uc3RhcnQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gTWVzc2FnZUNo
YW5uZWwsIHRoZW4gYXR0ZW1wdCB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVz
ZSB0aGUgTWVzc2FnZUV2ZW50LnNvdXJjZSB0byBzZW5kIHJlc3VsdHMKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBiYWNrIHRvIHRoZSBtYWluIHdpbmRvdy4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzX29iai5fYWRkX21lc3NhZ2VfcG9ydChldmVudC5zb3VyY2UpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhlIG9uaW5zdGFsbCBldmVudCBpcyByZWNlaXZl
ZCBhZnRlciB0aGUgc2VydmljZSB3b3JrZXIgc2NyaXB0IGFuZAotICAgICAgICAvLyBhbGwgaW1w
b3J0ZWQgc2NyaXB0cyBoYXZlIGJlZW4gZmV0Y2hlZCBhbmQgZXhlY3V0ZWQuIEl0J3MgdGhlCi0g
ICAgICAgIC8vIGVxdWl2YWxlbnQgb2YgYW4gb25sb2FkIGV2ZW50IGZvciBhIGRvY3VtZW50LiBB
bGwgdGVzdHMgc2hvdWxkIGhhdmUKLSAgICAgICAgLy8gYmVlbiBhZGRlZCBieSB0aGUgdGltZSB0
aGlzIGV2ZW50IGlzIHJlY2VpdmVkLCB0aHVzIGl0J3Mgbm90Ci0gICAgICAgIC8vIG5lY2Vzc2Fy
eSB0byB3YWl0IHVudGlsIHRoZSBvbmFjdGl2YXRlIGV2ZW50LgotICAgICAgICBvbl9ldmVudChz
ZWxmLCAiaW5zdGFsbCIsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgdGhpc19vYmouYWxsX2xvYWRlZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmICh0aGlzX29iai5vbl9sb2FkZWRfY2FsbGJhY2spIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNfb2JqLm9uX2xvYWRlZF9jYWxsYmFjaygpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgfQotICAgIFNlcnZpY2VXb3JrZXJUZXN0
RW52aXJvbm1lbnQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShXb3JrZXJUZXN0RW52aXJvbm1l
bnQucHJvdG90eXBlKTsKLQotICAgIFNlcnZpY2VXb3JrZXJUZXN0RW52aXJvbm1lbnQucHJvdG90
eXBlLmFkZF9vbl9sb2FkZWRfY2FsbGJhY2sgPSBmdW5jdGlvbihjYWxsYmFjaykgewotICAgICAg
ICBpZiAodGhpcy5hbGxfbG9hZGVkKSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5vbl9sb2FkZWRfY2FsbGJhY2sgPSBjYWxsYmFj
azsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVfdGVzdF9lbnZpcm9u
bWVudCgpIHsKLSAgICAgICAgaWYgKCdkb2N1bWVudCcgaW4gc2VsZikgewotICAgICAgICAgICAg
cmV0dXJuIG5ldyBXaW5kb3dUZXN0RW52aXJvbm1lbnQoKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoJ0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlJyBpbiBzZWxmICYmCi0gICAgICAgICAgICBz
ZWxmIGluc3RhbmNlb2YgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpIHsKLSAgICAgICAgICAg
IHJldHVybiBuZXcgRGVkaWNhdGVkV29ya2VyVGVzdEVudmlyb25tZW50KCk7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCdTaGFyZWRXb3JrZXJHbG9iYWxTY29wZScgaW4gc2VsZiAmJgotICAgICAg
ICAgICAgc2VsZiBpbnN0YW5jZW9mIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3IFNoYXJlZFdvcmtlclRlc3RFbnZpcm9ubWVudCgpOwotICAgICAgICB9
Ci0gICAgICAgIGlmICgnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJyBpbiBzZWxmICYmCi0gICAg
ICAgICAgICBzZWxmIGluc3RhbmNlb2YgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gbmV3IFNlcnZpY2VXb3JrZXJUZXN0RW52aXJvbm1lbnQoKTsKLSAgICAg
ICAgfQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRlc3QgZW52aXJvbm1l
bnQiKTsKLSAgICB9Ci0KLSAgICB2YXIgdGVzdF9lbnZpcm9ubWVudCA9IGNyZWF0ZV90ZXN0X2Vu
dmlyb25tZW50KCk7Ci0KLSAgICBmdW5jdGlvbiBpc19zaGFyZWRfd29ya2VyKHdvcmtlcikgewot
ICAgICAgICByZXR1cm4gJ1NoYXJlZFdvcmtlcicgaW4gc2VsZiAmJiB3b3JrZXIgaW5zdGFuY2Vv
ZiBTaGFyZWRXb3JrZXI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaXNfc2VydmljZV93b3JrZXIo
d29ya2VyKSB7Ci0gICAgICAgIHJldHVybiAnU2VydmljZVdvcmtlcicgaW4gc2VsZiAmJiB3b3Jr
ZXIgaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyOwotICAgIH0KLQotICAgIC8qCi0gICAgICogQVBJ
IGZ1bmN0aW9ucwotICAgICAqLwotCi0gICAgZnVuY3Rpb24gdGVzdChmdW5jLCBuYW1lLCBwcm9w
ZXJ0aWVzKQotICAgIHsKLSAgICAgICAgdmFyIHRlc3RfbmFtZSA9IG5hbWUgPyBuYW1lIDogdGVz
dF9lbnZpcm9ubWVudC5uZXh0X2RlZmF1bHRfdGVzdF9uYW1lKCk7Ci0gICAgICAgIHByb3BlcnRp
ZXMgPSBwcm9wZXJ0aWVzID8gcHJvcGVydGllcyA6IHt9OwotICAgICAgICB2YXIgdGVzdF9vYmog
PSBuZXcgVGVzdCh0ZXN0X25hbWUsIHByb3BlcnRpZXMpOwotICAgICAgICB0ZXN0X29iai5zdGVw
KGZ1bmMsIHRlc3Rfb2JqLCB0ZXN0X29iaik7Ci0gICAgICAgIGlmICh0ZXN0X29iai5waGFzZSA9
PT0gdGVzdF9vYmoucGhhc2VzLlNUQVJURUQpIHsKLSAgICAgICAgICAgIHRlc3Rfb2JqLmRvbmUo
KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFzeW5jX3Rlc3QoZnVuYywgbmFt
ZSwgcHJvcGVydGllcykKLSAgICB7Ci0gICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPT0gImZ1bmN0
aW9uIikgewotICAgICAgICAgICAgcHJvcGVydGllcyA9IG5hbWU7Ci0gICAgICAgICAgICBuYW1l
ID0gZnVuYzsKLSAgICAgICAgICAgIGZ1bmMgPSBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHZh
ciB0ZXN0X25hbWUgPSBuYW1lID8gbmFtZSA6IHRlc3RfZW52aXJvbm1lbnQubmV4dF9kZWZhdWx0
X3Rlc3RfbmFtZSgpOwotICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllcyA/IHByb3BlcnRp
ZXMgOiB7fTsKLSAgICAgICAgdmFyIHRlc3Rfb2JqID0gbmV3IFRlc3QodGVzdF9uYW1lLCBwcm9w
ZXJ0aWVzKTsKLSAgICAgICAgaWYgKGZ1bmMpIHsKLSAgICAgICAgICAgIHRlc3Rfb2JqLnN0ZXAo
ZnVuYywgdGVzdF9vYmosIHRlc3Rfb2JqKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGVz
dF9vYmo7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcHJvbWlzZV90ZXN0KGZ1bmMsIG5hbWUsIHBy
b3BlcnRpZXMpIHsKLSAgICAgICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KG5hbWUsIHByb3BlcnRp
ZXMpOwotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBwcm9taXNlIHRlc3RzIHF1ZXVlIG1ha2Ug
b25lLgotICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoIXRl
c3RzLnByb21pc2VfdGVzdHMpIHsKLSAgICAgICAgICAgICAgICB0ZXN0cy5wcm9taXNlX3Rlc3Rz
ID0gUHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAg
ICB0ZXN0cy5wcm9taXNlX3Rlc3RzID0gdGVzdHMucHJvbWlzZV90ZXN0cy50aGVuKGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0ZXN0LnN0ZXAoZnVuYywg
dGVzdCwgdGVzdCkpCi0gICAgICAgICAgICAgICAgLnRoZW4oCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgLmNhdGNoKHRlc3Quc3RlcF9mdW5j
KAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXNzZXJ0aW9uRXJyb3IpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgInByb21pc2VfdGVzdCIs
IG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogJHt2YWx1ZX0iLCB7dmFsdWU6dmFsdWV9KTsKLSAgICAgICAgICAgICAg
ICAgICAgfSkpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwcm9taXNlX3Jl
amVjdHModGVzdCwgZXhwZWN0ZWQsIHByb21pc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2Uu
dGhlbih0ZXN0LnVucmVhY2hlZF9mdW5jKCJTaG91bGQgaGF2ZSByZWplY3RlZC4iKSkuY2F0Y2go
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhleHBlY3RlZCwgZnVuY3Rp
b24oKSB7IHRocm93IGUgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIC8qKgotICAgICAq
IFRoaXMgY29uc3RydWN0b3IgaGVscGVyIGFsbG93cyBET00gZXZlbnRzIHRvIGJlIGhhbmRsZWQg
dXNpbmcgUHJvbWlzZXMsCi0gICAgICogd2hpY2ggY2FuIG1ha2UgaXQgYSBsb3QgZWFzaWVyIHRv
IHRlc3QgYSB2ZXJ5IHNwZWNpZmljIHNlcmllcyBvZiBldmVudHMsCi0gICAgICogaW5jbHVkaW5n
IGVuc3VyaW5nIHRoYXQgdW5leHBlY3RlZCBldmVudHMgYXJlIG5vdCBmaXJlZCBhdCBhbnkgcG9p
bnQuCi0gICAgICovCi0gICAgZnVuY3Rpb24gRXZlbnRXYXRjaGVyKHRlc3QsIHdhdGNoZWROb2Rl
LCBldmVudFR5cGVzKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVvZiBldmVudFR5cGVzID09ICdz
dHJpbmcnKSB7Ci0gICAgICAgICAgICBldmVudFR5cGVzID0gW2V2ZW50VHlwZXNdOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdmFyIHdhaXRpbmdGb3IgPSBudWxsOwotCi0gICAgICAgIHZhciBldmVu
dEhhbmRsZXIgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldnQpIHsKLSAgICAgICAgICAgIGFz
c2VydF90cnVlKCEhd2FpdGluZ0ZvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICdOb3QgZXhw
ZWN0aW5nIGV2ZW50LCBidXQgZ290ICcgKyBldnQudHlwZSArICcgZXZlbnQnKTsKLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZXZ0LnR5cGUsIHdhaXRpbmdGb3IudHlwZXNbMF0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICdFeHBlY3RlZCAnICsgd2FpdGluZ0Zvci50eXBlc1swXSArICcg
ZXZlbnQsIGJ1dCBnb3QgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC50eXBlICsg
JyBldmVudCBpbnN0ZWFkJyk7Ci0gICAgICAgICAgICBpZiAod2FpdGluZ0Zvci50eXBlcy5sZW5n
dGggPiAxKSB7Ci0gICAgICAgICAgICAgICAgLy8gUG9wIGZpcnN0IGV2ZW50IGZyb20gYXJyYXkK
LSAgICAgICAgICAgICAgICB3YWl0aW5nRm9yLnR5cGVzLnNoaWZ0KCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBudWxs
IG91dCB3YWl0aW5nRm9yIGJlZm9yZSBjYWxsaW5nIHRoZSByZXNvbHZlIGZ1bmN0aW9uCi0gICAg
ICAgICAgICAvLyBzaW5jZSB0aGUgUHJvbWlzZSdzIHJlc29sdmUgaGFuZGxlcnMgbWF5IGNhbGwg
d2FpdF9mb3IoKSB3aGljaCB3aWxsCi0gICAgICAgICAgICAvLyBuZWVkIHRvIHNldCB3YWl0aW5n
Rm9yLgotICAgICAgICAgICAgdmFyIHJlc29sdmVGdW5jID0gd2FpdGluZ0Zvci5yZXNvbHZlOwot
ICAgICAgICAgICAgd2FpdGluZ0ZvciA9IG51bGw7Ci0gICAgICAgICAgICByZXNvbHZlRnVuYyhl
dnQpOwotICAgICAgICB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50VHlw
ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHdhdGNoZWROb2RlLmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnRUeXBlc1tpXSwgZXZlbnRIYW5kbGVyKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8q
KgotICAgICAgICAgKiBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBhZnRlciB0
aGUgc3BlY2lmaWVkIGV2ZW50IG9yCi0gICAgICAgICAqIHNlcmllcyBvZiBldmVudHMgaGFzIG9j
Y3VyZWQuCi0gICAgICAgICAqLwotICAgICAgICB0aGlzLndhaXRfZm9yID0gZnVuY3Rpb24odHlw
ZXMpIHsKLSAgICAgICAgICAgIGlmICh3YWl0aW5nRm9yKSB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVqZWN0KCdBbHJlYWR5IHdhaXRpbmcgZm9yIGFuIGV2ZW50IG9yIGV2ZW50
cycpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHR5cGVvZiB0eXBlcyA9PSAnc3Ry
aW5nJykgewotICAgICAgICAgICAgICAgIHR5cGVzID0gW3R5cGVzXTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgICAgICB3YWl0aW5nRm9yID0gewotICAgICAgICAgICAgICAgICAgICB0
eXBlczogdHlwZXMsCi0gICAgICAgICAgICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsCi0gICAg
ICAgICAgICAgICAgICAgIHJlamVjdDogcmVqZWN0Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9OwotCi0gICAgICAgIGZ1bmN0aW9uIHN0b3Bfd2F0Y2hpbmco
KSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50VHlwZXMubGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICAgICAgICB3YXRjaGVkTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2
ZW50VHlwZXNbaV0sIGV2ZW50SGFuZGxlcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgdGVzdC5hZGRfY2xlYW51cChzdG9wX3dhdGNoaW5nKTsKLQotICAgICAgICByZXR1
cm4gdGhpczsKLSAgICB9Ci0gICAgZXhwb3NlKEV2ZW50V2F0Y2hlciwgJ0V2ZW50V2F0Y2hlcicp
OwotCi0gICAgZnVuY3Rpb24gc2V0dXAoZnVuY19vcl9wcm9wZXJ0aWVzLCBtYXliZV9wcm9wZXJ0
aWVzKQotICAgIHsKLSAgICAgICAgdmFyIGZ1bmMgPSBudWxsOwotICAgICAgICB2YXIgcHJvcGVy
dGllcyA9IHt9OwotICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgewotICAgICAg
ICAgICAgZnVuYyA9IGZ1bmNfb3JfcHJvcGVydGllczsKLSAgICAgICAgICAgIHByb3BlcnRpZXMg
PSBtYXliZV9wcm9wZXJ0aWVzOwotICAgICAgICB9IGVsc2UgaWYgKGZ1bmNfb3JfcHJvcGVydGll
cyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7Ci0gICAgICAgICAgICBmdW5jID0gZnVuY19vcl9wcm9w
ZXJ0aWVzOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJvcGVydGllcyA9IGZ1bmNf
b3JfcHJvcGVydGllczsKLSAgICAgICAgfQotICAgICAgICB0ZXN0cy5zZXR1cChmdW5jLCBwcm9w
ZXJ0aWVzKTsKLSAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5vbl9uZXdfaGFybmVzc19wcm9wZXJ0
aWVzKHByb3BlcnRpZXMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRvbmUoKSB7Ci0gICAgICAg
IGlmICh0ZXN0cy50ZXN0cy5sZW5ndGggPT09IDApIHsKLSAgICAgICAgICAgIHRlc3RzLnNldF9m
aWxlX2lzX3Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAodGVzdHMuZmlsZV9pc190ZXN0
KSB7Ci0gICAgICAgICAgICB0ZXN0cy50ZXN0c1swXS5kb25lKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdGVzdHMuZW5kX3dhaXQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZW5lcmF0ZV90ZXN0
cyhmdW5jLCBhcmdzLCBwcm9wZXJ0aWVzKSB7Ci0gICAgICAgIGZvckVhY2goYXJncywgZnVuY3Rp
b24oeCwgaSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBuYW1l
ID0geFswXTsKLSAgICAgICAgICAgICAgICAgICAgdGVzdChmdW5jdGlvbigpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmFwcGx5
KHRoaXMsIHguc2xpY2UoMSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5p
c0FycmF5KHByb3BlcnRpZXMpID8gcHJvcGVydGllc1tpXSA6IHByb3BlcnRpZXMpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uX2V2ZW50KG9iamVjdCwgZXZl
bnQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgb2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoZXZl
bnQsIGNhbGxiYWNrLCBmYWxzZSk7Ci0gICAgfQotCi0gICAgZXhwb3NlKHRlc3QsICd0ZXN0Jyk7
Ci0gICAgZXhwb3NlKGFzeW5jX3Rlc3QsICdhc3luY190ZXN0Jyk7Ci0gICAgZXhwb3NlKHByb21p
c2VfdGVzdCwgJ3Byb21pc2VfdGVzdCcpOwotICAgIGV4cG9zZShwcm9taXNlX3JlamVjdHMsICdw
cm9taXNlX3JlamVjdHMnKTsKLSAgICBleHBvc2UoZ2VuZXJhdGVfdGVzdHMsICdnZW5lcmF0ZV90
ZXN0cycpOwotICAgIGV4cG9zZShzZXR1cCwgJ3NldHVwJyk7Ci0gICAgZXhwb3NlKGRvbmUsICdk
b25lJyk7Ci0gICAgZXhwb3NlKG9uX2V2ZW50LCAnb25fZXZlbnQnKTsKLQotICAgIC8qCi0gICAg
ICogUmV0dXJuIGEgc3RyaW5nIHRydW5jYXRlZCB0byB0aGUgZ2l2ZW4gbGVuZ3RoLCB3aXRoIC4u
LiBhZGRlZCBhdCB0aGUgZW5kCi0gICAgICogaWYgaXQgd2FzIGxvbmdlci4KLSAgICAgKi8KLSAg
ICBmdW5jdGlvbiB0cnVuY2F0ZShzLCBsZW4pCi0gICAgewotICAgICAgICBpZiAocy5sZW5ndGgg
PiBsZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBzLnN1YnN0cmluZygwLCBsZW4gLSAzKSArICIu
Li4iOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzOwotICAgIH0KLQotICAgIC8qCi0gICAg
ICogUmV0dXJuIHRydWUgaWYgb2JqZWN0IGlzIHByb2JhYmx5IGEgTm9kZSBvYmplY3QuCi0gICAg
ICovCi0gICAgZnVuY3Rpb24gaXNfbm9kZShvYmplY3QpCi0gICAgewotICAgICAgICAvLyBJIHVz
ZSBkdWNrLXR5cGluZyBpbnN0ZWFkIG9mIGluc3RhbmNlb2YsIGJlY2F1c2UKLSAgICAgICAgLy8g
aW5zdGFuY2VvZiBkb2Vzbid0IHdvcmsgaWYgdGhlIG5vZGUgaXMgZnJvbSBhbm90aGVyIHdpbmRv
dyAobGlrZSBhbgotICAgICAgICAvLyBpZnJhbWUncyBjb250ZW50V2luZG93KToKLSAgICAgICAg
Ly8gaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEyMjk1Ci0g
ICAgICAgIGlmICgibm9kZVR5cGUiIGluIG9iamVjdCAmJgotICAgICAgICAgICAgIm5vZGVOYW1l
IiBpbiBvYmplY3QgJiYKLSAgICAgICAgICAgICJub2RlVmFsdWUiIGluIG9iamVjdCAmJgotICAg
ICAgICAgICAgImNoaWxkTm9kZXMiIGluIG9iamVjdCkgewotICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgICBvYmplY3Qubm9kZVR5cGU7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgICAgICAgICAgLy8gVGhlIG9iamVjdCBpcyBwcm9iYWJseSBOb2RlLnByb3RvdHlw
ZSBvciBhbm90aGVyIHByb3RvdHlwZQotICAgICAgICAgICAgICAgIC8vIG9iamVjdCB0aGF0IGlu
aGVyaXRzIGZyb20gaXQsIGFuZCBub3QgYSBOb2RlIGluc3RhbmNlLgotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAq
IENvbnZlcnQgYSB2YWx1ZSB0byBhIG5pY2UsIGh1bWFuLXJlYWRhYmxlIHN0cmluZwotICAgICAq
LwotICAgIGZ1bmN0aW9uIGZvcm1hdF92YWx1ZSh2YWwsIHNlZW4pCi0gICAgewotICAgICAgICBp
ZiAoIXNlZW4pIHsKLSAgICAgICAgICAgIHNlZW4gPSBbXTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAodHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgdmFsICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICBpZiAoc2Vlbi5pbmRleE9mKHZhbCkgPj0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiAi
Wy4uLl0iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2Vlbi5wdXNoKHZhbCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkgewotICAgICAgICAgICAgcmV0
dXJuICJbIiArIHZhbC5tYXAoZnVuY3Rpb24oeCkge3JldHVybiBmb3JtYXRfdmFsdWUoeCwgc2Vl
bik7fSkuam9pbigiLCAiKSArICJdIjsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAodHlw
ZW9mIHZhbCkgewotICAgICAgICBjYXNlICJzdHJpbmciOgotICAgICAgICAgICAgdmFsID0gdmFs
LnJlcGxhY2UoIlxcIiwgIlxcXFwiKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MzI7IGkrKykgewotICAgICAgICAgICAgICAgIHZhciByZXBsYWNlID0gIlxcIjsKLSAgICAgICAg
ICAgICAgICBzd2l0Y2ggKGkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIDA6IHJlcGxhY2UgKz0g
IjAiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDE6IHJlcGxhY2UgKz0gIngwMSI7IGJy
ZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjogcmVwbGFjZSArPSAieDAyIjsgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgY2FzZSAzOiByZXBsYWNlICs9ICJ4MDMiOyBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIDQ6IHJlcGxhY2UgKz0gIngwNCI7IGJyZWFrOwotICAgICAgICAgICAgICAg
IGNhc2UgNTogcmVwbGFjZSArPSAieDA1IjsgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSA2
OiByZXBsYWNlICs9ICJ4MDYiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDc6IHJlcGxh
Y2UgKz0gIngwNyI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgODogcmVwbGFjZSArPSAi
YiI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgOTogcmVwbGFjZSArPSAidCI7IGJyZWFr
OwotICAgICAgICAgICAgICAgIGNhc2UgMTA6IHJlcGxhY2UgKz0gIm4iOyBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIDExOiByZXBsYWNlICs9ICJ2IjsgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgY2FzZSAxMjogcmVwbGFjZSArPSAiZiI7IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2Ug
MTM6IHJlcGxhY2UgKz0gInIiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDE0OiByZXBs
YWNlICs9ICJ4MGUiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDE1OiByZXBsYWNlICs9
ICJ4MGYiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDE2OiByZXBsYWNlICs9ICJ4MTAi
OyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDE3OiByZXBsYWNlICs9ICJ4MTEiOyBicmVh
azsKLSAgICAgICAgICAgICAgICBjYXNlIDE4OiByZXBsYWNlICs9ICJ4MTIiOyBicmVhazsKLSAg
ICAgICAgICAgICAgICBjYXNlIDE5OiByZXBsYWNlICs9ICJ4MTMiOyBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIDIwOiByZXBsYWNlICs9ICJ4MTQiOyBicmVhazsKLSAgICAgICAgICAgICAg
ICBjYXNlIDIxOiByZXBsYWNlICs9ICJ4MTUiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNl
IDIyOiByZXBsYWNlICs9ICJ4MTYiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDIzOiBy
ZXBsYWNlICs9ICJ4MTciOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDI0OiByZXBsYWNl
ICs9ICJ4MTgiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDI1OiByZXBsYWNlICs9ICJ4
MTkiOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDI2OiByZXBsYWNlICs9ICJ4MWEiOyBi
cmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDI3OiByZXBsYWNlICs9ICJ4MWIiOyBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIDI4OiByZXBsYWNlICs9ICJ4MWMiOyBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIDI5OiByZXBsYWNlICs9ICJ4MWQiOyBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIDMwOiByZXBsYWNlICs9ICJ4MWUiOyBicmVhazsKLSAgICAgICAgICAgICAgICBj
YXNlIDMxOiByZXBsYWNlICs9ICJ4MWYiOyBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgdmFsID0gdmFsLnJlcGxhY2UoUmVnRXhwKFN0cmluZy5mcm9tQ2hhckNvZGUo
aSksICJnIiksIHJlcGxhY2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuICci
JyArIHZhbC5yZXBsYWNlKC8iL2csICdcXCInKSArICciJzsKLSAgICAgICAgY2FzZSAiYm9vbGVh
biI6Ci0gICAgICAgIGNhc2UgInVuZGVmaW5lZCI6Ci0gICAgICAgICAgICByZXR1cm4gU3RyaW5n
KHZhbCk7Ci0gICAgICAgIGNhc2UgIm51bWJlciI6Ci0gICAgICAgICAgICAvLyBJbiBKYXZhU2Ny
aXB0LCAtMCA9PT0gMCBhbmQgU3RyaW5nKC0wKSA9PSAiMCIsIHNvIHdlIGhhdmUgdG8KLSAgICAg
ICAgICAgIC8vIHNwZWNpYWwtY2FzZS4KLSAgICAgICAgICAgIGlmICh2YWwgPT09IC0wICYmIDEv
dmFsID09PSAtSW5maW5pdHkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gIi0wIjsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsKTsKLSAgICAgICAgY2FzZSAi
b2JqZWN0IjoKLSAgICAgICAgICAgIGlmICh2YWwgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gIm51bGwiOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBTcGVjaWFs
LWNhc2UgTm9kZSBvYmplY3RzLCBzaW5jZSB0aG9zZSBjb21lIHVwIGEgbG90IGluIG15IHRlc3Rz
LiAgSQotICAgICAgICAgICAgLy8gaWdub3JlIG5hbWVzcGFjZXMuCi0gICAgICAgICAgICBpZiAo
aXNfbm9kZSh2YWwpKSB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoICh2YWwubm9kZVR5cGUpIHsK
LSAgICAgICAgICAgICAgICBjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgICAg
ICAgICB2YXIgcmV0ID0gIjwiICsgdmFsLmxvY2FsTmFtZTsKLSAgICAgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB2YWwuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0ICs9ICIgIiArIHZhbC5hdHRyaWJ1dGVzW2ldLm5hbWUgKyAn
PSInICsgdmFsLmF0dHJpYnV0ZXNbaV0udmFsdWUgKyAnIic7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgcmV0ICs9ICI+IiArIHZhbC5pbm5lckhUTUwgKyAiPC8i
ICsgdmFsLmxvY2FsTmFtZSArICI+IjsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJFbGVt
ZW50IG5vZGUgIiArIHRydW5jYXRlKHJldCwgNjApOwotICAgICAgICAgICAgICAgIGNhc2UgTm9k
ZS5URVhUX05PREU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAnVGV4dCBub2RlICInICsg
dHJ1bmNhdGUodmFsLmRhdGEsIDYwKSArICciJzsKLSAgICAgICAgICAgICAgICBjYXNlIE5vZGUu
UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IlByb2Nlc3NpbmdJbnN0cnVjdGlvbiBub2RlIHdpdGggdGFyZ2V0ICIgKyBmb3JtYXRfdmFsdWUo
dHJ1bmNhdGUodmFsLnRhcmdldCwgNjApKSArICIgYW5kIGRhdGEgIiArIGZvcm1hdF92YWx1ZSh0
cnVuY2F0ZSh2YWwuZGF0YSwgNjApKTsKLSAgICAgICAgICAgICAgICBjYXNlIE5vZGUuQ09NTUVO
VF9OT0RFOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbW1lbnQgbm9kZSA8IS0tIiAr
IHRydW5jYXRlKHZhbC5kYXRhLCA2MCkgKyAiLS0+IjsKLSAgICAgICAgICAgICAgICBjYXNlIE5v
ZGUuRE9DVU1FTlRfTk9ERToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEb2N1bWVudCBu
b2RlIHdpdGggIiArIHZhbC5jaGlsZE5vZGVzLmxlbmd0aCArICh2YWwuY2hpbGROb2Rlcy5sZW5n
dGggPT0gMSA/ICIgY2hpbGQiIDogIiBjaGlsZHJlbiIpOwotICAgICAgICAgICAgICAgIGNhc2Ug
Tm9kZS5ET0NVTUVOVF9UWVBFX05PREU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiRG9j
dW1lbnRUeXBlIG5vZGUiOwotICAgICAgICAgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9GUkFH
TUVOVF9OT0RFOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRvY3VtZW50RnJhZ21lbnQg
bm9kZSB3aXRoICIgKyB2YWwuY2hpbGROb2Rlcy5sZW5ndGggKyAodmFsLmNoaWxkTm9kZXMubGVu
Z3RoID09IDEgPyAiIGNoaWxkIiA6ICIgY2hpbGRyZW4iKTsKLSAgICAgICAgICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gIk5vZGUgb2JqZWN0IG9mIHVua25vd24g
dHlwZSI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgIC8qIGZh
bGxzIHRocm91Z2ggKi8KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiB0eXBl
b2YgdmFsICsgJyAiJyArIHRydW5jYXRlKFN0cmluZyh2YWwpLCA2MCkgKyAnIic7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgZXhwb3NlKGZvcm1hdF92YWx1ZSwgImZvcm1hdF92YWx1ZSIpOwotCi0g
ICAgLyoKLSAgICAgKiBBc3NlcnRpb25zCi0gICAgICovCi0KLSAgICBmdW5jdGlvbiBhc3NlcnRf
dHJ1ZShhY3R1YWwsIGRlc2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgYXNzZXJ0KGFjdHVhbCA9
PT0gdHJ1ZSwgImFzc2VydF90cnVlIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCB0cnVlIGdvdCAke2FjdHVhbH0iLCB7YWN0dWFsOmFjdHVh
bH0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X3RydWUsICJhc3NlcnRfdHJ1ZSIpOwotCi0g
ICAgZnVuY3Rpb24gYXNzZXJ0X2ZhbHNlKGFjdHVhbCwgZGVzY3JpcHRpb24pCi0gICAgewotICAg
ICAgICBhc3NlcnQoYWN0dWFsID09PSBmYWxzZSwgImFzc2VydF9mYWxzZSIsIGRlc2NyaXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZhbHNlIGdvdCAk
e2FjdHVhbH0iLCB7YWN0dWFsOmFjdHVhbH0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2Zh
bHNlLCAiYXNzZXJ0X2ZhbHNlIik7Ci0KLSAgICBmdW5jdGlvbiBzYW1lX3ZhbHVlKHgsIHkpIHsK
LSAgICAgICAgaWYgKHkgIT09IHkpIHsKLSAgICAgICAgICAgIC8vTmFOIGNhc2UKLSAgICAgICAg
ICAgIHJldHVybiB4ICE9PSB4OwotICAgICAgICB9Ci0gICAgICAgIGlmICh4ID09PSAwICYmIHkg
PT09IDApIHsKLSAgICAgICAgICAgIC8vRGlzdGluZ3Vpc2ggKzAgYW5kIC0wCi0gICAgICAgICAg
ICByZXR1cm4gMS94ID09PSAxL3k7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHggPT09IHk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXNzZXJ0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBk
ZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgICAvKgotICAgICAgICAgICogVGVzdCBpZiB0d28g
cHJpbWl0aXZlcyBhcmUgZXF1YWwgb3IgdHdvIG9iamVjdHMKLSAgICAgICAgICAqIGFyZSB0aGUg
c2FtZSBvYmplY3QKLSAgICAgICAgICAqLwotICAgICAgICBpZiAodHlwZW9mIGFjdHVhbCAhPSB0
eXBlb2YgZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgIGFzc2VydChmYWxzZSwgImFzc2VydF9lcXVh
bHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkICgi
ICsgdHlwZW9mIGV4cGVjdGVkICsgIikgJHtleHBlY3RlZH0gYnV0IGdvdCAoIiArIHR5cGVvZiBh
Y3R1YWwgKyAiKSAke2FjdHVhbH0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwZWN0
ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgICAgICBhc3NlcnQoc2FtZV92YWx1ZShhY3R1YWwsIGV4cGVjdGVkKSwgImFzc2Vy
dF9lcXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhw
ZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKLSAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9lcXVhbHMs
ICJhc3NlcnRfZXF1YWxzIik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfbm90X2VxdWFscyhhY3R1
YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgICAvKgotICAgICAgICAg
ICogVGVzdCBpZiB0d28gcHJpbWl0aXZlcyBhcmUgdW5lcXVhbCBvciB0d28gb2JqZWN0cwotICAg
ICAgICAgICogYXJlIGRpZmZlcmVudCBvYmplY3RzCi0gICAgICAgICAgKi8KLSAgICAgICAgYXNz
ZXJ0KCFzYW1lX3ZhbHVlKGFjdHVhbCwgZXhwZWN0ZWQpLCAiYXNzZXJ0X25vdF9lcXVhbHMiLCBk
ZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZ290IGRpc2FsbG93ZWQgdmFsdWUgJHthY3R1YWx9IiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7YWN0dWFsOmFjdHVhbH0pOwotICAgIH0KLSAgICBl
eHBvc2UoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2VxdWFscyIpOwotCi0gICAgZnVu
Y3Rpb24gYXNzZXJ0X2luX2FycmF5KGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQotICAg
IHsKLSAgICAgICAgYXNzZXJ0KGV4cGVjdGVkLmluZGV4T2YoYWN0dWFsKSAhPSAtMSwgImFzc2Vy
dF9pbl9hcnJheSIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidmFsdWUgJHthY3R1YWx9IG5vdCBpbiBhcnJheSAke2V4cGVjdGVk
fSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3R1
YWw6YWN0dWFsLCBleHBlY3RlZDpleHBlY3RlZH0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2luX2FycmF5LCAiYXNzZXJ0X2luX2FycmF5Iik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfb2Jq
ZWN0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAg
ICAvL1RoaXMgbmVlZHMgdG8gYmUgaW1wcm92ZWQgYSBncmVhdCBkZWFsCi0gICAgICAgICBmdW5j
dGlvbiBjaGVja19lcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBzdGFjaykKLSAgICAgICAgIHsKLSAg
ICAgICAgICAgICBzdGFjay5wdXNoKGFjdHVhbCk7Ci0KLSAgICAgICAgICAgICB2YXIgcDsKLSAg
ICAgICAgICAgICBmb3IgKHAgaW4gYWN0dWFsKSB7Ci0gICAgICAgICAgICAgICAgIGFzc2VydChl
eHBlY3RlZC5oYXNPd25Qcm9wZXJ0eShwKSwgImFzc2VydF9vYmplY3RfZXF1YWxzIiwgZGVzY3Jp
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInVuZXhwZWN0ZWQgcHJvcGVydHkgJHtwfSIsIHtwOnB9KTsKLQotICAgICAgICAgICAgICAg
ICBpZiAodHlwZW9mIGFjdHVhbFtwXSA9PT0gIm9iamVjdCIgJiYgYWN0dWFsW3BdICE9PSBudWxs
KSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suaW5kZXhPZihhY3R1YWxbcF0pID09
PSAtMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2VxdWFsKGFjdHVhbFtwXSwg
ZXhwZWN0ZWRbcF0sIHN0YWNrKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIGFzc2VydChzYW1lX3ZhbHVlKGFj
dHVhbFtwXSwgZXhwZWN0ZWRbcF0pLCAiYXNzZXJ0X29iamVjdF9lcXVhbHMiLCBkZXNjcmlwdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicHJvcGVydHkgJHtwfSBleHBlY3RlZCAke2V4cGVjdGVkfSBnb3QgJHthY3R1YWx9IiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cDpw
LCBleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwotICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGZvciAocCBpbiBleHBlY3RlZCkgewotICAg
ICAgICAgICAgICAgICBhc3NlcnQoYWN0dWFsLmhhc093blByb3BlcnR5KHApLAotICAgICAgICAg
ICAgICAgICAgICAgICAgImFzc2VydF9vYmplY3RfZXF1YWxzIiwgZGVzY3JpcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgcHJvcGVydHkgJHtwfSBtaXNzaW5nIiwge3A6
cH0pOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBzdGFjay5wb3AoKTsKLSAgICAgICAg
IH0KLSAgICAgICAgIGNoZWNrX2VxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIFtdKTsKLSAgICB9Ci0g
ICAgZXhwb3NlKGFzc2VydF9vYmplY3RfZXF1YWxzLCAiYXNzZXJ0X29iamVjdF9lcXVhbHMiKTsK
LQotICAgIGZ1bmN0aW9uIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZGVz
Y3JpcHRpb24pCi0gICAgewotICAgICAgICBhc3NlcnQoYWN0dWFsLmxlbmd0aCA9PT0gZXhwZWN0
ZWQubGVuZ3RoLAotICAgICAgICAgICAgICAgImFzc2VydF9hcnJheV9lcXVhbHMiLCBkZXNjcmlw
dGlvbiwKLSAgICAgICAgICAgICAgICJsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgJHtleHBlY3Rl
ZH0gZ290ICR7YWN0dWFsfSIsCi0gICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQubGVu
Z3RoLCBhY3R1YWw6YWN0dWFsLmxlbmd0aH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYWN0dWFsLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBhc3NlcnQoYWN0dWFsLmhhc093
blByb3BlcnR5KGkpID09PSBleHBlY3RlZC5oYXNPd25Qcm9wZXJ0eShpKSwKLSAgICAgICAgICAg
ICAgICAgICAiYXNzZXJ0X2FycmF5X2VxdWFscyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAg
ICAgICAgICJwcm9wZXJ0eSAke2l9LCBwcm9wZXJ0eSBleHBlY3RlZCB0byBiZSAke2V4cGVjdGVk
fSBidXQgd2FzICR7YWN0dWFsfSIsCi0gICAgICAgICAgICAgICAgICAge2k6aSwgZXhwZWN0ZWQ6
ZXhwZWN0ZWQuaGFzT3duUHJvcGVydHkoaSkgPyAicHJlc2VudCIgOiAibWlzc2luZyIsCi0gICAg
ICAgICAgICAgICAgICAgYWN0dWFsOmFjdHVhbC5oYXNPd25Qcm9wZXJ0eShpKSA/ICJwcmVzZW50
IiA6ICJtaXNzaW5nIn0pOwotICAgICAgICAgICAgYXNzZXJ0KHNhbWVfdmFsdWUoZXhwZWN0ZWRb
aV0sIGFjdHVhbFtpXSksCi0gICAgICAgICAgICAgICAgICAgImFzc2VydF9hcnJheV9lcXVhbHMi
LCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAicHJvcGVydHkgJHtpfSwgZXhwZWN0
ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAotICAgICAgICAgICAgICAgICAgIHtp
OmksIGV4cGVjdGVkOmV4cGVjdGVkW2ldLCBhY3R1YWw6YWN0dWFsW2ldfSk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9hcnJheV9lcXVhbHMsICJhc3NlcnRfYXJyYXlfZXF1
YWxzIik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfYXBwcm94X2VxdWFscyhhY3R1YWwsIGV4cGVj
dGVkLCBlcHNpbG9uLCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgIC8qCi0gICAgICAgICAq
IFRlc3QgaWYgdHdvIHByaW1pdGl2ZSBudW1iZXJzIGFyZSBlcXVhbCB3aXRoaW5nICsvLSBlcHNp
bG9uCi0gICAgICAgICAqLwotICAgICAgICBhc3NlcnQodHlwZW9mIGFjdHVhbCA9PT0gIm51bWJl
ciIsCi0gICAgICAgICAgICAgICAiYXNzZXJ0X2FwcHJveF9lcXVhbHMiLCBkZXNjcmlwdGlvbiwK
LSAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBidXQgZ290IGEgJHt0eXBlX2FjdHVh
bH0iLAotICAgICAgICAgICAgICAge3R5cGVfYWN0dWFsOnR5cGVvZiBhY3R1YWx9KTsKLQotICAg
ICAgICBhc3NlcnQoTWF0aC5hYnMoYWN0dWFsIC0gZXhwZWN0ZWQpIDw9IGVwc2lsb24sCi0gICAg
ICAgICAgICAgICAiYXNzZXJ0X2FwcHJveF9lcXVhbHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAg
ICAgICAgICJleHBlY3RlZCAke2V4cGVjdGVkfSArLy0gJHtlcHNpbG9ufSBidXQgZ290ICR7YWN0
dWFsfSIsCi0gICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWws
IGVwc2lsb246ZXBzaWxvbn0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FwcHJveF9lcXVh
bHMsICJhc3NlcnRfYXBwcm94X2VxdWFscyIpOwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3Nf
dGhhbihhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgIC8qCi0g
ICAgICAgICAqIFRlc3QgaWYgYSBwcmltaXRpdmUgbnVtYmVyIGlzIGxlc3MgdGhhbiBhbm90aGVy
Ci0gICAgICAgICAqLwotICAgICAgICBhc3NlcnQodHlwZW9mIGFjdHVhbCA9PT0gIm51bWJlciIs
Ci0gICAgICAgICAgICAgICAiYXNzZXJ0X2xlc3NfdGhhbiIsIGRlc2NyaXB0aW9uLAotICAgICAg
ICAgICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBnb3QgYSAke3R5cGVfYWN0dWFsfSIsCi0g
ICAgICAgICAgICAgICB7dHlwZV9hY3R1YWw6dHlwZW9mIGFjdHVhbH0pOwotCi0gICAgICAgIGFz
c2VydChhY3R1YWwgPCBleHBlY3RlZCwKLSAgICAgICAgICAgICAgICJhc3NlcnRfbGVzc190aGFu
IiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKLSAgICAgICAgICAgICAgIHtleHBl
Y3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2xlc3NfdGhhbiwgImFzc2VydF9sZXNzX3RoYW4iKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9n
cmVhdGVyX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAg
ICAvKgotICAgICAgICAgKiBUZXN0IGlmIGEgcHJpbWl0aXZlIG51bWJlciBpcyBncmVhdGVyIHRo
YW4gYW5vdGhlcgotICAgICAgICAgKi8KLSAgICAgICAgYXNzZXJ0KHR5cGVvZiBhY3R1YWwgPT09
ICJudW1iZXIiLAotICAgICAgICAgICAgICAgImFzc2VydF9ncmVhdGVyX3RoYW4iLCBkZXNjcmlw
dGlvbiwKLSAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBidXQgZ290IGEgJHt0eXBl
X2FjdHVhbH0iLAotICAgICAgICAgICAgICAge3R5cGVfYWN0dWFsOnR5cGVvZiBhY3R1YWx9KTsK
LQotICAgICAgICBhc3NlcnQoYWN0dWFsID4gZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAiYXNz
ZXJ0X2dyZWF0ZXJfdGhhbiIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVk
IGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCi0g
ICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKLSAgICB9
Ci0gICAgZXhwb3NlKGFzc2VydF9ncmVhdGVyX3RoYW4sICJhc3NlcnRfZ3JlYXRlcl90aGFuIik7
Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUoYWN0dWFsLCBsb3dlciwg
dXBwZXIsIGRlc2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGVzdCBp
ZiBhIHByaW1pdGl2ZSBudW1iZXIgaXMgYmV0d2VlbiB0d28gb3RoZXJzCi0gICAgICAgICAqLwot
ICAgICAgICBhc3NlcnQodHlwZW9mIGFjdHVhbCA9PT0gIm51bWJlciIsCi0gICAgICAgICAgICAg
ICAiYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAg
ICAiZXhwZWN0ZWQgYSBudW1iZXIgYnV0IGdvdCBhICR7dHlwZV9hY3R1YWx9IiwKLSAgICAgICAg
ICAgICAgIHt0eXBlX2FjdHVhbDp0eXBlb2YgYWN0dWFsfSk7Ci0KLSAgICAgICAgYXNzZXJ0KGFj
dHVhbCA+IGxvd2VyICYmIGFjdHVhbCA8IHVwcGVyLAotICAgICAgICAgICAgICAgImFzc2VydF9i
ZXR3ZWVuX2V4Y2x1c2l2ZSIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVk
IGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAke2xvd2VyfSAiICsKLSAgICAgICAgICAgICAgICJhbmQg
bGVzcyB0aGFuICR7dXBwZXJ9IGJ1dCBnb3QgJHthY3R1YWx9IiwKLSAgICAgICAgICAgICAgIHts
b3dlcjpsb3dlciwgdXBwZXI6dXBwZXIsIGFjdHVhbDphY3R1YWx9KTsKLSAgICB9Ci0gICAgZXhw
b3NlKGFzc2VydF9iZXR3ZWVuX2V4Y2x1c2l2ZSwgImFzc2VydF9iZXR3ZWVuX2V4Y2x1c2l2ZSIp
OwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChhY3R1YWwsIGV4cGVjdGVk
LCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIFRlc3QgaWYgYSBw
cmltaXRpdmUgbnVtYmVyIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBhbm90aGVyCi0gICAgICAg
ICAqLwotICAgICAgICBhc3NlcnQodHlwZW9mIGFjdHVhbCA9PT0gIm51bWJlciIsCi0gICAgICAg
ICAgICAgICAiYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbCIsIGRlc2NyaXB0aW9uLAotICAgICAgICAg
ICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBnb3QgYSAke3R5cGVfYWN0dWFsfSIsCi0gICAg
ICAgICAgICAgICB7dHlwZV9hY3R1YWw6dHlwZW9mIGFjdHVhbH0pOwotCi0gICAgICAgIGFzc2Vy
dChhY3R1YWwgPD0gZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAiYXNzZXJ0X2xlc3NfdGhhbl9l
cXVhbCIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiBvciBlcXVhbCB0byAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCi0gICAg
ICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKLSAgICB9Ci0g
ICAgZXhwb3NlKGFzc2VydF9sZXNzX3RoYW5fZXF1YWwsICJhc3NlcnRfbGVzc190aGFuX2VxdWFs
Iik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGFjdHVhbCwgZXhw
ZWN0ZWQsIGRlc2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGVzdCBp
ZiBhIHByaW1pdGl2ZSBudW1iZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGFub3RoZXIK
LSAgICAgICAgICovCi0gICAgICAgIGFzc2VydCh0eXBlb2YgYWN0dWFsID09PSAibnVtYmVyIiwK
LSAgICAgICAgICAgICAgICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwgZGVzY3JpcHRpb24s
Ci0gICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgYnV0IGdvdCBhICR7dHlwZV9hY3R1
YWx9IiwKLSAgICAgICAgICAgICAgIHt0eXBlX2FjdHVhbDp0eXBlb2YgYWN0dWFsfSk7Ci0KLSAg
ICAgICAgYXNzZXJ0KGFjdHVhbCA+PSBleHBlY3RlZCwKLSAgICAgICAgICAgICAgICJhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsIiwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAiZXhwZWN0
ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7ZXhwZWN0ZWR9IGJ1dCBnb3Qg
JHthY3R1YWx9IiwKLSAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFj
dHVhbH0pOwotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbCwgImFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwiKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9iZXR3ZWVu
X2luY2x1c2l2ZShhY3R1YWwsIGxvd2VyLCB1cHBlciwgZGVzY3JpcHRpb24pCi0gICAgewotICAg
ICAgICAvKgotICAgICAgICAgKiBUZXN0IGlmIGEgcHJpbWl0aXZlIG51bWJlciBpcyBiZXR3ZWVu
IHRvIHR3byBvdGhlcnMgb3IgZXF1YWwgdG8gZWl0aGVyIG9mIHRoZW0KLSAgICAgICAgICovCi0g
ICAgICAgIGFzc2VydCh0eXBlb2YgYWN0dWFsID09PSAibnVtYmVyIiwKLSAgICAgICAgICAgICAg
ICJhc3NlcnRfYmV0d2Vlbl9pbmNsdXNpdmUiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAg
ICJleHBlY3RlZCBhIG51bWJlciBidXQgZ290IGEgJHt0eXBlX2FjdHVhbH0iLAotICAgICAgICAg
ICAgICAge3R5cGVfYWN0dWFsOnR5cGVvZiBhY3R1YWx9KTsKLQotICAgICAgICBhc3NlcnQoYWN0
dWFsID49IGxvd2VyICYmIGFjdHVhbCA8PSB1cHBlciwKLSAgICAgICAgICAgICAgICJhc3NlcnRf
YmV0d2Vlbl9pbmNsdXNpdmUiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICJleHBlY3Rl
ZCBhIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHtsb3dlcn0gIiArCi0gICAgICAg
ICAgICAgICAiYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke3VwcGVyfSBidXQgZ290ICR7YWN0
dWFsfSIsCi0gICAgICAgICAgICAgICB7bG93ZXI6bG93ZXIsIHVwcGVyOnVwcGVyLCBhY3R1YWw6
YWN0dWFsfSk7Ci0gICAgfQotICAgIGV4cG9zZShhc3NlcnRfYmV0d2Vlbl9pbmNsdXNpdmUsICJh
c3NlcnRfYmV0d2Vlbl9pbmNsdXNpdmUiKTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydF9yZWdleHBf
bWF0Y2goYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pIHsKLSAgICAgICAgLyoKLSAgICAg
ICAgICogVGVzdCBpZiBhIHN0cmluZyAoYWN0dWFsKSBtYXRjaGVzIGEgcmVnZXhwIChleHBlY3Rl
ZCkKLSAgICAgICAgICovCi0gICAgICAgIGFzc2VydChleHBlY3RlZC50ZXN0KGFjdHVhbCksCi0g
ICAgICAgICAgICAgICAiYXNzZXJ0X3JlZ2V4cF9tYXRjaCIsIGRlc2NyaXB0aW9uLAotICAgICAg
ICAgICAgICAgImV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKLSAgICAg
ICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwotICAgIH0KLSAg
ICBleHBvc2UoYXNzZXJ0X3JlZ2V4cF9tYXRjaCwgImFzc2VydF9yZWdleHBfbWF0Y2giKTsKLQot
ICAgIGZ1bmN0aW9uIGFzc2VydF9jbGFzc19zdHJpbmcob2JqZWN0LCBjbGFzc19zdHJpbmcsIGRl
c2NyaXB0aW9uKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoe30udG9TdHJpbmcuY2FsbChvYmpl
Y3QpLCAiW29iamVjdCAiICsgY2xhc3Nfc3RyaW5nICsgIl0iLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uKTsKLSAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9jbGFzc19zdHJpbmcs
ICJhc3NlcnRfY2xhc3Nfc3RyaW5nIik7Ci0KLQotICAgIGZ1bmN0aW9uIF9hc3NlcnRfb3duX3By
b3BlcnR5KG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHlf
bmFtZSwgZGVzY3JpcHRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGFzc2VydChvYmplY3Qu
aGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCi0gICAgICAgICAgICAgICAgICAgbmFtZSwg
ZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIHByb3BlcnR5ICR7cH0g
bWlzc2luZyIsIHtwOnByb3BlcnR5X25hbWV9KTsKLSAgICAgICAgfTsKLSAgICB9Ci0gICAgZXhw
b3NlKF9hc3NlcnRfb3duX3Byb3BlcnR5KCJhc3NlcnRfZXhpc3RzIiksICJhc3NlcnRfZXhpc3Rz
Iik7Ci0gICAgZXhwb3NlKF9hc3NlcnRfb3duX3Byb3BlcnR5KCJhc3NlcnRfb3duX3Byb3BlcnR5
IiksICJhc3NlcnRfb3duX3Byb3BlcnR5Iik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfbm90X2V4
aXN0cyhvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAg
YXNzZXJ0KCFvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCi0gICAgICAgICAg
ICAgICAiYXNzZXJ0X25vdF9leGlzdHMiLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICJ1
bmV4cGVjdGVkIHByb3BlcnR5ICR7cH0gZm91bmQiLCB7cDpwcm9wZXJ0eV9uYW1lfSk7Ci0gICAg
fQotICAgIGV4cG9zZShhc3NlcnRfbm90X2V4aXN0cywgImFzc2VydF9ub3RfZXhpc3RzIik7Ci0K
LSAgICBmdW5jdGlvbiBfYXNzZXJ0X2luaGVyaXRzKG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGZ1
bmN0aW9uIChvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBhc3NlcnQodHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCIsCi0gICAgICAgICAg
ICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAgInByb3ZpZGVk
IHZhbHVlIGlzIG5vdCBhbiBvYmplY3QiKTsKLQotICAgICAgICAgICAgYXNzZXJ0KCJoYXNPd25Q
cm9wZXJ0eSIgaW4gb2JqZWN0LAotICAgICAgICAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICJwcm92aWRlZCB2YWx1ZSBpcyBhbiBvYmplY3QgYnV0IGhh
cyBubyBoYXNPd25Qcm9wZXJ0eSBtZXRob2QiKTsKLQotICAgICAgICAgICAgYXNzZXJ0KCFvYmpl
Y3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCi0gICAgICAgICAgICAgICAgICAgbmFt
ZSwgZGVzY3JpcHRpb24sCi0gICAgICAgICAgICAgICAgICAgInByb3BlcnR5ICR7cH0gZm91bmQg
b24gb2JqZWN0IGV4cGVjdGVkIGluIHByb3RvdHlwZSBjaGFpbiIsCi0gICAgICAgICAgICAgICAg
ICAge3A6cHJvcGVydHlfbmFtZX0pOwotCi0gICAgICAgICAgICBhc3NlcnQocHJvcGVydHlfbmFt
ZSBpbiBvYmplY3QsCi0gICAgICAgICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgInByb3BlcnR5ICR7cH0gbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFp
biIsCi0gICAgICAgICAgICAgICAgICAge3A6cHJvcGVydHlfbmFtZX0pOwotICAgICAgICB9Owot
ICAgIH0KLSAgICBleHBvc2UoX2Fzc2VydF9pbmhlcml0cygiYXNzZXJ0X2luaGVyaXRzIiksICJh
c3NlcnRfaW5oZXJpdHMiKTsKLSAgICBleHBvc2UoX2Fzc2VydF9pbmhlcml0cygiYXNzZXJ0X2lk
bF9hdHRyaWJ1dGUiKSwgImFzc2VydF9pZGxfYXR0cmlidXRlIik7Ci0KLSAgICBmdW5jdGlvbiBh
c3NlcnRfcmVhZG9ubHkob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikKLSAgICB7
Ci0gICAgICAgICB2YXIgaW5pdGlhbF92YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eV9uYW1lXTsKLSAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgLy9Ob3RlIHRoYXQgdGhpcyBjYW4gaGF2ZSBzaWRl
IGVmZmVjdHMgaW4gdGhlIGNhc2Ugd2hlcmUKLSAgICAgICAgICAgICAvL3RoZSBwcm9wZXJ0eSBo
YXMgUHV0Rm9yd2FyZHMKLSAgICAgICAgICAgICBvYmplY3RbcHJvcGVydHlfbmFtZV0gPSBpbml0
aWFsX3ZhbHVlICsgImEiOyAvL1hYWCB1c2Ugc29tZSBvdGhlciB2YWx1ZSBoZXJlPwotICAgICAg
ICAgICAgIGFzc2VydChzYW1lX3ZhbHVlKG9iamVjdFtwcm9wZXJ0eV9uYW1lXSwgaW5pdGlhbF92
YWx1ZSksCi0gICAgICAgICAgICAgICAgICAgICJhc3NlcnRfcmVhZG9ubHkiLCBkZXNjcmlwdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgImNoYW5naW5nIHByb3BlcnR5ICR7cH0gc3VjY2VlZGVk
IiwKLSAgICAgICAgICAgICAgICAgICAge3A6cHJvcGVydHlfbmFtZX0pOwotICAgICAgICAgfSBm
aW5hbGx5IHsKLSAgICAgICAgICAgICBvYmplY3RbcHJvcGVydHlfbmFtZV0gPSBpbml0aWFsX3Zh
bHVlOwotICAgICAgICAgfQotICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X3JlYWRvbmx5LCAiYXNz
ZXJ0X3JlYWRvbmx5Iik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfdGhyb3dzKGNvZGUsIGZ1bmMs
IGRlc2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGZ1bmMuY2Fs
bCh0aGlzKTsKLSAgICAgICAgICAgIGFzc2VydChmYWxzZSwgImFzc2VydF90aHJvd3MiLCBkZXNj
cmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAiJHtmdW5jfSBkaWQgbm90IHRocm93Iiwge2Z1
bmM6ZnVuY30pOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBpZiAoZSBpbnN0
YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGlmIChjb2RlID09PSBudWxsKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2RlID09
PSAib2JqZWN0IikgewotICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgZSA9PSAib2JqZWN0
IiAmJiAibmFtZSIgaW4gZSAmJiBlLm5hbWUgPT0gY29kZS5uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAiYXNzZXJ0X3Rocm93cyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAiJHtmdW5jfSB0aHJldyAke2FjdHVhbH0gKCR7YWN0dWFsX25hbWV9KSBleHBlY3RlZCAk
e2V4cGVjdGVkfSAoJHtleHBlY3RlZF9uYW1lfSkiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAge2Z1bmM6ZnVuYywgYWN0dWFsOmUsIGFjdHVhbF9uYW1lOmUubmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDpjb2RlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX25hbWU6Y29kZS5uYW1lfSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2
YXIgY29kZV9uYW1lX21hcCA9IHsKLSAgICAgICAgICAgICAgICBJTkRFWF9TSVpFX0VSUjogJ0lu
ZGV4U2l6ZUVycm9yJywKLSAgICAgICAgICAgICAgICBISUVSQVJDSFlfUkVRVUVTVF9FUlI6ICdI
aWVyYXJjaHlSZXF1ZXN0RXJyb3InLAotICAgICAgICAgICAgICAgIFdST05HX0RPQ1VNRU5UX0VS
UjogJ1dyb25nRG9jdW1lbnRFcnJvcicsCi0gICAgICAgICAgICAgICAgSU5WQUxJRF9DSEFSQUNU
RVJfRVJSOiAnSW52YWxpZENoYXJhY3RlckVycm9yJywKLSAgICAgICAgICAgICAgICBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI6ICdOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcicsCi0gICAg
ICAgICAgICAgICAgTk9UX0ZPVU5EX0VSUjogJ05vdEZvdW5kRXJyb3InLAotICAgICAgICAgICAg
ICAgIE5PVF9TVVBQT1JURURfRVJSOiAnTm90U3VwcG9ydGVkRXJyb3InLAotICAgICAgICAgICAg
ICAgIElOVkFMSURfU1RBVEVfRVJSOiAnSW52YWxpZFN0YXRlRXJyb3InLAotICAgICAgICAgICAg
ICAgIFNZTlRBWF9FUlI6ICdTeW50YXhFcnJvcicsCi0gICAgICAgICAgICAgICAgSU5WQUxJRF9N
T0RJRklDQVRJT05fRVJSOiAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKLSAgICAgICAgICAg
ICAgICBOQU1FU1BBQ0VfRVJSOiAnTmFtZXNwYWNlRXJyb3InLAotICAgICAgICAgICAgICAgIElO
VkFMSURfQUNDRVNTX0VSUjogJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICAgICAgICAgICAgICAg
VFlQRV9NSVNNQVRDSF9FUlI6ICdUeXBlTWlzbWF0Y2hFcnJvcicsCi0gICAgICAgICAgICAgICAg
U0VDVVJJVFlfRVJSOiAnU2VjdXJpdHlFcnJvcicsCi0gICAgICAgICAgICAgICAgTkVUV09SS19F
UlI6ICdOZXR3b3JrRXJyb3InLAotICAgICAgICAgICAgICAgIEFCT1JUX0VSUjogJ0Fib3J0RXJy
b3InLAotICAgICAgICAgICAgICAgIFVSTF9NSVNNQVRDSF9FUlI6ICdVUkxNaXNtYXRjaEVycm9y
JywKLSAgICAgICAgICAgICAgICBRVU9UQV9FWENFRURFRF9FUlI6ICdRdW90YUV4Y2VlZGVkRXJy
b3InLAotICAgICAgICAgICAgICAgIFRJTUVPVVRfRVJSOiAnVGltZW91dEVycm9yJywKLSAgICAg
ICAgICAgICAgICBJTlZBTElEX05PREVfVFlQRV9FUlI6ICdJbnZhbGlkTm9kZVR5cGVFcnJvcics
Ci0gICAgICAgICAgICAgICAgREFUQV9DTE9ORV9FUlI6ICdEYXRhQ2xvbmVFcnJvcicKLSAgICAg
ICAgICAgIH07Ci0KLSAgICAgICAgICAgIHZhciBuYW1lID0gY29kZSBpbiBjb2RlX25hbWVfbWFw
ID8gY29kZV9uYW1lX21hcFtjb2RlXSA6IGNvZGU7Ci0KLSAgICAgICAgICAgIHZhciBuYW1lX2Nv
ZGVfbWFwID0gewotICAgICAgICAgICAgICAgIEluZGV4U2l6ZUVycm9yOiAxLAotICAgICAgICAg
ICAgICAgIEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogMywKLSAgICAgICAgICAgICAgICBXcm9uZ0Rv
Y3VtZW50RXJyb3I6IDQsCi0gICAgICAgICAgICAgICAgSW52YWxpZENoYXJhY3RlckVycm9yOiA1
LAotICAgICAgICAgICAgICAgIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiA3LAotICAgICAg
ICAgICAgICAgIE5vdEZvdW5kRXJyb3I6IDgsCi0gICAgICAgICAgICAgICAgTm90U3VwcG9ydGVk
RXJyb3I6IDksCi0gICAgICAgICAgICAgICAgSW52YWxpZFN0YXRlRXJyb3I6IDExLAotICAgICAg
ICAgICAgICAgIFN5bnRheEVycm9yOiAxMiwKLSAgICAgICAgICAgICAgICBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3I6IDEzLAotICAgICAgICAgICAgICAgIE5hbWVzcGFjZUVycm9yOiAxNCwKLSAg
ICAgICAgICAgICAgICBJbnZhbGlkQWNjZXNzRXJyb3I6IDE1LAotICAgICAgICAgICAgICAgIFR5
cGVNaXNtYXRjaEVycm9yOiAxNywKLSAgICAgICAgICAgICAgICBTZWN1cml0eUVycm9yOiAxOCwK
LSAgICAgICAgICAgICAgICBOZXR3b3JrRXJyb3I6IDE5LAotICAgICAgICAgICAgICAgIEFib3J0
RXJyb3I6IDIwLAotICAgICAgICAgICAgICAgIFVSTE1pc21hdGNoRXJyb3I6IDIxLAotICAgICAg
ICAgICAgICAgIFF1b3RhRXhjZWVkZWRFcnJvcjogMjIsCi0gICAgICAgICAgICAgICAgVGltZW91
dEVycm9yOiAyMywKLSAgICAgICAgICAgICAgICBJbnZhbGlkTm9kZVR5cGVFcnJvcjogMjQsCi0g
ICAgICAgICAgICAgICAgRGF0YUNsb25lRXJyb3I6IDI1LAotCi0gICAgICAgICAgICAgICAgRW5j
b2RpbmdFcnJvcjogMCwKLSAgICAgICAgICAgICAgICBOb3RSZWFkYWJsZUVycm9yOiAwLAotICAg
ICAgICAgICAgICAgIFVua25vd25FcnJvcjogMCwKLSAgICAgICAgICAgICAgICBDb25zdHJhaW50
RXJyb3I6IDAsCi0gICAgICAgICAgICAgICAgRGF0YUVycm9yOiAwLAotICAgICAgICAgICAgICAg
IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogMCwKLSAgICAgICAgICAgICAgICBSZWFkT25seUVy
cm9yOiAwLAotICAgICAgICAgICAgICAgIFZlcnNpb25FcnJvcjogMCwKLSAgICAgICAgICAgICAg
ICBPcGVyYXRpb25FcnJvcjogMCwKLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIGlmICgh
KG5hbWUgaW4gbmFtZV9jb2RlX21hcCkpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXNz
ZXJ0aW9uRXJyb3IoJ1Rlc3QgYnVnOiB1bnJlY29nbml6ZWQgRE9NRXhjZXB0aW9uIGNvZGUgIicg
KyBjb2RlICsgJyIgcGFzc2VkIHRvIGFzc2VydF90aHJvd3MoKScpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICB2YXIgcmVxdWlyZWRfcHJvcHMgPSB7IGNvZGU6IG5hbWVfY29kZV9tYXBb
bmFtZV0gfTsKLQotICAgICAgICAgICAgaWYgKHJlcXVpcmVkX3Byb3BzLmNvZGUgPT09IDAgfHwK
LSAgICAgICAgICAgICAgICh0eXBlb2YgZSA9PSAib2JqZWN0IiAmJgotICAgICAgICAgICAgICAg
ICJuYW1lIiBpbiBlICYmCi0gICAgICAgICAgICAgICAgZS5uYW1lICE9PSBlLm5hbWUudG9VcHBl
ckNhc2UoKSAmJgotICAgICAgICAgICAgICAgIGUubmFtZSAhPT0gIkRPTUV4Y2VwdGlvbiIpKSB7
Ci0gICAgICAgICAgICAgICAgLy8gTmV3IHN0eWxlIGV4Y2VwdGlvbjogYWxzbyB0ZXN0IHRoZSBu
YW1lIHByb3BlcnR5LgotICAgICAgICAgICAgICAgIHJlcXVpcmVkX3Byb3BzLm5hbWUgPSBuYW1l
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvL1dlJ2QgbGlrZSB0byB0ZXN0IHRoYXQg
ZSBpbnN0YW5jZW9mIHRoZSBhcHByb3ByaWF0ZSBpbnRlcmZhY2UsCi0gICAgICAgICAgICAvL2J1
dCB3ZSBjYW4ndCwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IHdoYXQgd2luZG93IGl0IHdhcyBjcmVh
dGVkCi0gICAgICAgICAgICAvL2luLiAgSXQgbWlnaHQgYmUgYW4gaW5zdGFuY2VvZiB0aGUgYXBw
cm9wcmlhdGUgaW50ZXJmYWNlIG9uIHNvbWUKLSAgICAgICAgICAgIC8vdW5rbm93biBvdGhlciB3
aW5kb3cuICBUT0RPOiBXb3JrIGFyb3VuZCB0aGlzIHNvbWVob3c/Ci0KLSAgICAgICAgICAgIGFz
c2VydCh0eXBlb2YgZSA9PSAib2JqZWN0IiwKLSAgICAgICAgICAgICAgICAgICAiYXNzZXJ0X3Ro
cm93cyIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICIke2Z1bmN9IHRocmV3ICR7
ZX0gd2l0aCB0eXBlICR7dHlwZX0sIG5vdCBhbiBvYmplY3QiLAotICAgICAgICAgICAgICAgICAg
IHtmdW5jOmZ1bmMsIGU6ZSwgdHlwZTp0eXBlb2YgZX0pOwotCi0gICAgICAgICAgICBmb3IgKHZh
ciBwcm9wIGluIHJlcXVpcmVkX3Byb3BzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVv
ZiBlID09ICJvYmplY3QiICYmIHByb3AgaW4gZSAmJiBlW3Byb3BdID09IHJlcXVpcmVkX3Byb3Bz
W3Byb3BdLAotICAgICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0X3Rocm93cyIsIGRlc2NyaXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAiJHtmdW5jfSB0aHJldyAke2V9IHRoYXQgaXMg
bm90IGEgRE9NRXhjZXB0aW9uICIgKyBjb2RlICsgIjogcHJvcGVydHkgJHtwcm9wfSBpcyBlcXVh
bCB0byAke2FjdHVhbH0sIGV4cGVjdGVkICR7ZXhwZWN0ZWR9IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAge2Z1bmM6ZnVuYywgZTplLCBwcm9wOnByb3AsIGFjdHVhbDplW3Byb3BdLCBleHBlY3Rl
ZDpyZXF1aXJlZF9wcm9wc1twcm9wXX0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
fQotICAgIGV4cG9zZShhc3NlcnRfdGhyb3dzLCAiYXNzZXJ0X3Rocm93cyIpOwotCi0gICAgZnVu
Y3Rpb24gYXNzZXJ0X3VucmVhY2hlZChkZXNjcmlwdGlvbikgewotICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAiYXNzZXJ0X3VucmVhY2hlZCIsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICJS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUiKTsKLSAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF91bnJl
YWNoZWQsICJhc3NlcnRfdW5yZWFjaGVkIik7Ci0KLSAgICBmdW5jdGlvbiBhc3NlcnRfYW55KGFz
c2VydF9mdW5jLCBhY3R1YWwsIGV4cGVjdGVkX2FycmF5KQotICAgIHsKLSAgICAgICAgdmFyIGFy
Z3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMyk7Ci0gICAgICAgIHZhciBlcnJvcnMgPSBb
XTsKLSAgICAgICAgdmFyIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICBmb3JFYWNoKGV4cGVjdGVk
X2FycmF5LAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGV4cGVjdGVkKQotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9mdW5jLmFwcGx5KHRoaXMsIFthY3R1YWwsIGV4cGVjdGVkXS5jb25jYXQoYXJncykp
OwotICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLnB1c2go
ZS5tZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICBpZiAoIXBhc3NlZCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVy
cm9yKGVycm9ycy5qb2luKCJcblxuIikpOwotICAgICAgICB9Ci0gICAgfQotICAgIGV4cG9zZShh
c3NlcnRfYW55LCAiYXNzZXJ0X2FueSIpOwotCi0gICAgZnVuY3Rpb24gVGVzdChuYW1lLCBwcm9w
ZXJ0aWVzKQotICAgIHsKLSAgICAgICAgaWYgKHRlc3RzLmZpbGVfaXNfdGVzdCAmJiB0ZXN0cy50
ZXN0cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVHJpZWQgdG8gY3Jl
YXRlIGEgdGVzdCB3aXRoIGZpbGVfaXNfdGVzdCIpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMu
bmFtZSA9IG5hbWU7Ci0KLSAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLklOSVRJQUw7
Ci0KLSAgICAgICAgdGhpcy5zdGF0dXMgPSB0aGlzLk5PVFJVTjsKLSAgICAgICAgdGhpcy50aW1l
b3V0X2lkID0gbnVsbDsKLSAgICAgICAgdGhpcy5pbmRleCA9IG51bGw7Ci0KLSAgICAgICAgdGhp
cy5wcm9wZXJ0aWVzID0gcHJvcGVydGllczsKLSAgICAgICAgdmFyIHRpbWVvdXQgPSBwcm9wZXJ0
aWVzLnRpbWVvdXQgPyBwcm9wZXJ0aWVzLnRpbWVvdXQgOiBzZXR0aW5ncy50ZXN0X3RpbWVvdXQ7
Ci0gICAgICAgIGlmICh0aW1lb3V0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICB0aGlzLnRpbWVv
dXRfbGVuZ3RoID0gdGltZW91dCAqIHRlc3RzLnRpbWVvdXRfbXVsdGlwbGllcjsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMudGltZW91dF9sZW5ndGggPSBudWxsOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGhpcy5tZXNzYWdlID0gbnVsbDsKLSAgICAgICAgdGhpcy5zdGFjayA9
IG51bGw7Ci0KLSAgICAgICAgdGhpcy5zdGVwcyA9IFtdOwotCi0gICAgICAgIHRoaXMuY2xlYW51
cF9jYWxsYmFja3MgPSBbXTsKLQotICAgICAgICB0ZXN0cy5wdXNoKHRoaXMpOwotICAgIH0KLQot
ICAgIFRlc3Quc3RhdHVzZXMgPSB7Ci0gICAgICAgIFBBU1M6MCwKLSAgICAgICAgRkFJTDoxLAot
ICAgICAgICBUSU1FT1VUOjIsCi0gICAgICAgIE5PVFJVTjozCi0gICAgfTsKLQotICAgIFRlc3Qu
cHJvdG90eXBlID0gbWVyZ2Uoe30sIFRlc3Quc3RhdHVzZXMpOwotCi0gICAgVGVzdC5wcm90b3R5
cGUucGhhc2VzID0gewotICAgICAgICBJTklUSUFMOjAsCi0gICAgICAgIFNUQVJURUQ6MSwKLSAg
ICAgICAgSEFTX1JFU1VMVDoyLAotICAgICAgICBDT01QTEVURTozCi0gICAgfTsKLQotICAgIFRl
c3QucHJvdG90eXBlLnN0cnVjdHVyZWRfY2xvbmUgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMuX3N0cnVjdHVyZWRfY2xvbmUpIHsKLSAgICAgICAgICAgIHZhciBtc2cgPSB0
aGlzLm1lc3NhZ2U7Ci0gICAgICAgICAgICBtc2cgPSBtc2cgPyBTdHJpbmcobXNnKSA6IG1zZzsK
LSAgICAgICAgICAgIHRoaXMuX3N0cnVjdHVyZWRfY2xvbmUgPSBtZXJnZSh7Ci0gICAgICAgICAg
ICAgICAgbmFtZTpTdHJpbmcodGhpcy5uYW1lKSwKLSAgICAgICAgICAgICAgICBwcm9wZXJ0aWVz
Om1lcmdlKHt9LCB0aGlzLnByb3BlcnRpZXMpLAotICAgICAgICAgICAgfSwgVGVzdC5zdGF0dXNl
cyk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fc3RydWN0dXJlZF9jbG9uZS5zdGF0dXMgPSB0
aGlzLnN0YXR1czsKLSAgICAgICAgdGhpcy5fc3RydWN0dXJlZF9jbG9uZS5tZXNzYWdlID0gdGhp
cy5tZXNzYWdlOwotICAgICAgICB0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lLnN0YWNrID0gdGhpcy5z
dGFjazsKLSAgICAgICAgdGhpcy5fc3RydWN0dXJlZF9jbG9uZS5pbmRleCA9IHRoaXMuaW5kZXg7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lOwotICAgIH07Ci0KLSAgICBU
ZXN0LnByb3RvdHlwZS5zdGVwID0gZnVuY3Rpb24oZnVuYywgdGhpc19vYmopCi0gICAgewotICAg
ICAgICBpZiAodGhpcy5waGFzZSA+IHRoaXMucGhhc2VzLlNUQVJURUQpIHsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuU1RB
UlRFRDsKLSAgICAgICAgLy9JZiB3ZSBkb24ndCBnZXQgYSByZXN1bHQgYmVmb3JlIHRoZSBoYXJu
ZXNzIHRpbWVzIG91dCB0aGF0IHdpbGwgYmUgYSB0ZXN0IHRpbW91dAotICAgICAgICB0aGlzLnNl
dF9zdGF0dXModGhpcy5USU1FT1VULCAiVGVzdCB0aW1lZCBvdXQiKTsKLQotICAgICAgICB0ZXN0
cy5zdGFydGVkID0gdHJ1ZTsKLSAgICAgICAgdGVzdHMubm90aWZ5X3Rlc3Rfc3RhdGUodGhpcyk7
Ci0KLSAgICAgICAgaWYgKHRoaXMudGltZW91dF9pZCA9PT0gbnVsbCkgewotICAgICAgICAgICAg
dGhpcy5zZXRfdGltZW91dCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5zdGVwcy5wdXNo
KGZ1bmMpOwotCi0gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7Ci0gICAgICAg
ICAgICB0aGlzX29iaiA9IHRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICB0cnkgewotICAgICAg
ICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc19vYmosIEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cywgMikpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBp
ZiAodGhpcy5waGFzZSA+PSB0aGlzLnBoYXNlcy5IQVNfUkVTVUxUKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBTdHJp
bmcoKHR5cGVvZiBlID09PSAib2JqZWN0IiAmJiBlICE9PSBudWxsKSA/IGUubWVzc2FnZSA6IGUp
OwotICAgICAgICAgICAgdmFyIHN0YWNrID0gZS5zdGFjayA/IGUuc3RhY2sgOiBudWxsOwotCi0g
ICAgICAgICAgICB0aGlzLnNldF9zdGF0dXModGhpcy5GQUlMLCBtZXNzYWdlLCBzdGFjayk7Ci0g
ICAgICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuSEFTX1JFU1VMVDsKLSAgICAgICAg
ICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3QucHJvdG90eXBl
LnN0ZXBfZnVuYyA9IGZ1bmN0aW9uKGZ1bmMsIHRoaXNfb2JqKQotICAgIHsKLSAgICAgICAgdmFy
IHRlc3RfdGhpcyA9IHRoaXM7Ci0KLSAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEp
IHsKLSAgICAgICAgICAgIHRoaXNfb2JqID0gdGVzdF90aGlzOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHRlc3Rf
dGhpcy5zdGVwLmFwcGx5KHRlc3RfdGhpcywgW2Z1bmMsIHRoaXNfb2JqXS5jb25jYXQoCi0gICAg
ICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSkpOwotICAg
ICAgICB9OwotICAgIH07Ci0KLSAgICBUZXN0LnByb3RvdHlwZS5zdGVwX2Z1bmNfZG9uZSA9IGZ1
bmN0aW9uKGZ1bmMsIHRoaXNfb2JqKQotICAgIHsKLSAgICAgICAgdmFyIHRlc3RfdGhpcyA9IHRo
aXM7Ci0KLSAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKLSAgICAgICAgICAg
IHRoaXNfb2JqID0gdGVzdF90aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGZ1bmMpIHsKLSAgICAgICAgICAgICAg
ICB0ZXN0X3RoaXMuc3RlcC5hcHBseSh0ZXN0X3RoaXMsIFtmdW5jLCB0aGlzX29ial0uY29uY2F0
KAotICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVu
dHMpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0ZXN0X3RoaXMuZG9uZSgpOwotICAg
ICAgICB9OwotICAgIH07Ci0KLSAgICBUZXN0LnByb3RvdHlwZS51bnJlYWNoZWRfZnVuYyA9IGZ1
bmN0aW9uKGRlc2NyaXB0aW9uKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChkZXNjcmlwdGlvbik7
Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLSAgICBUZXN0LnByb3RvdHlwZS5hZGRfY2xlYW51cCA9
IGZ1bmN0aW9uKGNhbGxiYWNrKSB7Ci0gICAgICAgIHRoaXMuY2xlYW51cF9jYWxsYmFja3MucHVz
aChjYWxsYmFjayk7Ci0gICAgfTsKLQotICAgIFRlc3QucHJvdG90eXBlLmZvcmNlX3RpbWVvdXQg
PSBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5zZXRfc3RhdHVzKHRoaXMuVElNRU9VVCk7Ci0g
ICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5IQVNfUkVTVUxUOwotICAgIH07Ci0KLSAg
ICBUZXN0LnByb3RvdHlwZS5zZXRfdGltZW91dCA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IGlmICh0aGlzLnRpbWVvdXRfbGVuZ3RoICE9PSBudWxsKSB7Ci0gICAgICAgICAgICB2YXIgdGhp
c19vYmogPSB0aGlzOwotICAgICAgICAgICAgdGhpcy50aW1lb3V0X2lkID0gc2V0VGltZW91dChm
dW5jdGlvbigpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNfb2JqLnRpbWVv
dXQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy50
aW1lb3V0X2xlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgVGVzdC5wcm90b3R5cGUu
c2V0X3N0YXR1cyA9IGZ1bmN0aW9uKHN0YXR1cywgbWVzc2FnZSwgc3RhY2spCi0gICAgewotICAg
ICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1czsKLSAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2Fn
ZTsKLSAgICAgICAgdGhpcy5zdGFjayA9IHN0YWNrID8gc3RhY2sgOiBudWxsOwotICAgIH07Ci0K
LSAgICBUZXN0LnByb3RvdHlwZS50aW1lb3V0ID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dGhpcy50aW1lb3V0X2lkID0gbnVsbDsKLSAgICAgICAgdGhpcy5zZXRfc3RhdHVzKHRoaXMuVElN
RU9VVCwgIlRlc3QgdGltZWQgb3V0Iik7Ci0gICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNl
cy5IQVNfUkVTVUxUOwotICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICB9OwotCi0gICAgVGVzdC5w
cm90b3R5cGUuZG9uZSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLnBoYXNl
ID09IHRoaXMucGhhc2VzLkNPTVBMRVRFKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAodGhpcy5waGFzZSA8PSB0aGlzLnBoYXNlcy5TVEFSVEVEKSB7Ci0g
ICAgICAgICAgICB0aGlzLnNldF9zdGF0dXModGhpcy5QQVNTLCBudWxsKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5DT01QTEVURTsKLQotICAgICAgICBj
bGVhclRpbWVvdXQodGhpcy50aW1lb3V0X2lkKTsKLSAgICAgICAgdGVzdHMucmVzdWx0KHRoaXMp
OwotICAgICAgICB0aGlzLmNsZWFudXAoKTsKLSAgICB9OwotCi0gICAgVGVzdC5wcm90b3R5cGUu
Y2xlYW51cCA9IGZ1bmN0aW9uKCkgewotICAgICAgICBmb3JFYWNoKHRoaXMuY2xlYW51cF9jYWxs
YmFja3MsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oY2xlYW51cF9jYWxsYmFjaykgewotICAg
ICAgICAgICAgICAgICAgICBjbGVhbnVwX2NhbGxiYWNrKCk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgfTsKLQotICAgIC8qCi0gICAgICogQSBSZW1vdGVUZXN0IG9iamVjdCBtaXJyb3JzIGEg
VGVzdCBvYmplY3Qgb24gYSByZW1vdGUgd29ya2VyLiBUaGUKLSAgICAgKiBhc3NvY2lhdGVkIFJl
bW90ZVdvcmtlciB1cGRhdGVzIHRoZSBSZW1vdGVUZXN0IG9iamVjdCBpbiByZXNwb25zZSB0bwot
ICAgICAqIHJlY2VpdmVkIGV2ZW50cy4gSW4gdHVybiwgdGhlIFJlbW90ZVRlc3Qgb2JqZWN0IHJl
cGxpY2F0ZXMgdGhlc2UgZXZlbnRzCi0gICAgICogb24gdGhlIGxvY2FsIGRvY3VtZW50LiBUaGlz
IGFsbG93cyBsaXN0ZW5lcnMgKHRlc3QgcmVzdWx0IHJlcG9ydGluZwotICAgICAqIGV0Yy4uKSB0
byB0cmFuc3BhcmVudGx5IGhhbmRsZSBsb2NhbCBhbmQgcmVtb3RlIGV2ZW50cy4KLSAgICAgKi8K
LSAgICBmdW5jdGlvbiBSZW1vdGVUZXN0KGNsb25lKSB7Ci0gICAgICAgIHZhciB0aGlzX29iaiA9
IHRoaXM7Ci0gICAgICAgIE9iamVjdC5rZXlzKGNsb25lKS5mb3JFYWNoKAotICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzX29ialtrZXldID0g
Y2xvbmVba2V5XTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5pbmRleCA9IG51
bGw7Ci0gICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5JTklUSUFMOwotICAgICAgICB0
aGlzLnVwZGF0ZV9zdGF0ZV9mcm9tKGNsb25lKTsKLSAgICAgICAgdGVzdHMucHVzaCh0aGlzKTsK
LSAgICB9Ci0KLSAgICBSZW1vdGVUZXN0LnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBjbG9uZSA9IHt9OwotICAgICAgICBPYmplY3Qua2V5cyh0
aGlzKS5mb3JFYWNoKAotICAgICAgICAgICAgICAgIChmdW5jdGlvbihrZXkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHR5cGVvZih0aGlzW2tleV0pID09PSAib2JqZWN0IikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgY2xvbmVba2V5XSA9IG1lcmdlKHt9LCB0aGlzW2tleV0pOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVb
a2V5XSA9IHRoaXNba2V5XTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0pLmJpbmQodGhpcykpOwotICAgICAgICBjbG9uZS5waGFzZXMgPSBtZXJnZSh7fSwgdGhpcy5w
aGFzZXMpOwotICAgICAgICByZXR1cm4gY2xvbmU7Ci0gICAgfTsKLQotICAgIFJlbW90ZVRlc3Qu
cHJvdG90eXBlLmNsZWFudXAgPSBmdW5jdGlvbigpIHt9OwotICAgIFJlbW90ZVRlc3QucHJvdG90
eXBlLnBoYXNlcyA9IFRlc3QucHJvdG90eXBlLnBoYXNlczsKLSAgICBSZW1vdGVUZXN0LnByb3Rv
dHlwZS51cGRhdGVfc3RhdGVfZnJvbSA9IGZ1bmN0aW9uKGNsb25lKSB7Ci0gICAgICAgIHRoaXMu
c3RhdHVzID0gY2xvbmUuc3RhdHVzOwotICAgICAgICB0aGlzLm1lc3NhZ2UgPSBjbG9uZS5tZXNz
YWdlOwotICAgICAgICB0aGlzLnN0YWNrID0gY2xvbmUuc3RhY2s7Ci0gICAgICAgIGlmICh0aGlz
LnBoYXNlID09PSB0aGlzLnBoYXNlcy5JTklUSUFMKSB7Ci0gICAgICAgICAgICB0aGlzLnBoYXNl
ID0gdGhpcy5waGFzZXMuU1RBUlRFRDsKLSAgICAgICAgfQotICAgIH07Ci0gICAgUmVtb3RlVGVz
dC5wcm90b3R5cGUuZG9uZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnBoYXNlID0gdGhp
cy5waGFzZXMuQ09NUExFVEU7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBBIFJlbW90ZVdvcmtl
ciBsaXN0ZW5zIGZvciB0ZXN0IGV2ZW50cyBmcm9tIGEgd29ya2VyLiBUaGVzZSBldmVudHMgYXJl
Ci0gICAgICogdGhlbiB1c2VkIHRvIGNvbnN0cnVjdCBhbmQgbWFpbnRhaW4gUmVtb3RlVGVzdCBv
YmplY3RzIHRoYXQgbWlycm9yIHRoZQotICAgICAqIHRlc3RzIHJ1bm5pbmcgb24gdGhlIHJlbW90
ZSB3b3JrZXIuCi0gICAgICovCi0gICAgZnVuY3Rpb24gUmVtb3RlV29ya2VyKHdvcmtlcikgewot
ICAgICAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlOwotICAgICAgICB0aGlzLnRlc3RzID0gbmV3IEFy
cmF5KCk7Ci0KLSAgICAgICAgdmFyIHRoaXNfb2JqID0gdGhpczsKLSAgICAgICAgd29ya2VyLm9u
ZXJyb3IgPSBmdW5jdGlvbihlcnJvcikgeyB0aGlzX29iai53b3JrZXJfZXJyb3IoZXJyb3IpOyB9
OwotCi0gICAgICAgIHZhciBtZXNzYWdlX3BvcnQ7Ci0KLSAgICAgICAgaWYgKGlzX3NlcnZpY2Vf
d29ya2VyKHdvcmtlcikpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cuTWVzc2FnZUNoYW5uZWwp
IHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgU2VydmljZVdvcmtlcidzIGltcGxpY2l0IE1lc3Nh
Z2VQb3J0IGlzIGN1cnJlbnRseSBub3QKLSAgICAgICAgICAgICAgICAvLyByZWxpYWJseSBhY2Nl
c3NpYmxlIGZyb20gdGhlIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBkdWUgdG8KLSAgICAgICAg
ICAgICAgICAvLyBCbGluayBzZXR0aW5nIE1lc3NhZ2VFdmVudC5zb3VyY2UgdG8gbnVsbCBmb3Ig
bWVzc2FnZXMgc2VudAotICAgICAgICAgICAgICAgIC8vIHZpYSBTZXJ2aWNlV29ya2VyLnBvc3RN
ZXNzYWdlKCkuIFVudGlsIHRoYXQncyByZXNvbHZlZCwKLSAgICAgICAgICAgICAgICAvLyBjcmVh
dGUgYW4gZXhwbGljaXQgTWVzc2FnZUNoYW5uZWwgYW5kIHBhc3Mgb25lIGVuZCB0byB0aGUKLSAg
ICAgICAgICAgICAgICAvLyB3b3JrZXIuCi0gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VfY2hh
bm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgICAgICAgIG1lc3NhZ2VfcG9y
dCA9IG1lc3NhZ2VfY2hhbm5lbC5wb3J0MTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlX3BvcnQu
c3RhcnQoKTsKLSAgICAgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICJjb25u
ZWN0In0sIFttZXNzYWdlX2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgLy8gSWYgTWVzc2FnZUNoYW5uZWwgaXMgbm90IGF2YWlsYWJsZSwgdGhl
biB0cnkgdGhlCi0gICAgICAgICAgICAgICAgLy8gU2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgp
IGFwcHJvYWNoIHVzaW5nIE1lc3NhZ2VFdmVudC5zb3VyY2UKLSAgICAgICAgICAgICAgICAvLyBv
biB0aGUgb3RoZXIgZW5kLgotICAgICAgICAgICAgICAgIG1lc3NhZ2VfcG9ydCA9IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyOwotICAgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlw
ZTogImNvbm5lY3QifSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNfc2hh
cmVkX3dvcmtlcih3b3JrZXIpKSB7Ci0gICAgICAgICAgICBtZXNzYWdlX3BvcnQgPSB3b3JrZXIu
cG9ydDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1lc3NhZ2VfcG9ydCA9IHdvcmtl
cjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEtlZXBpbmcgYSByZWZlcmVuY2UgdG8gdGhlIHdv
cmtlciB1bnRpbCB3b3JrZXJfZG9uZSgpIGlzIHNlZW4KLSAgICAgICAgLy8gcHJldmVudHMgdGhl
IFdvcmtlciBvYmplY3QgYW5kIGl0cyBNZXNzYWdlQ2hhbm5lbCBmcm9tIGdvaW5nIGF3YXkKLSAg
ICAgICAgLy8gYmVmb3JlIGFsbCB0aGUgbWVzc2FnZXMgYXJlIGRpc3BhdGNoZWQuCi0gICAgICAg
IHRoaXMud29ya2VyID0gd29ya2VyOwotCi0gICAgICAgIG1lc3NhZ2VfcG9ydC5vbm1lc3NhZ2Ug
PQotICAgICAgICAgICAgZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgICAgICAgICAgIGlmICh0
aGlzX29iai5ydW5uaW5nICYmIChtZXNzYWdlLmRhdGEudHlwZSBpbiB0aGlzX29iai5tZXNzYWdl
X2hhbmRsZXJzKSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5tZXNzYWdlX2hhbmRs
ZXJzW21lc3NhZ2UuZGF0YS50eXBlXS5jYWxsKHRoaXNfb2JqLCBtZXNzYWdlLmRhdGEpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0gICAgfQotCi0gICAgUmVtb3RlV29ya2Vy
LnByb3RvdHlwZS53b3JrZXJfZXJyb3IgPSBmdW5jdGlvbihlcnJvcikgewotICAgICAgICB2YXIg
bWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgU3RyaW5nKGVycm9yKTsKLSAgICAgICAgdmFyIGZp
bGVuYW1lID0gKGVycm9yLmZpbGVuYW1lID8gIiAiICsgZXJyb3IuZmlsZW5hbWU6ICIiKTsKLSAg
ICAgICAgLy8gRklYTUU6IERpc3BsYXkgd29ya2VyIGVycm9yIHN0YXRlcyBzZXBhcmF0ZWx5IGZy
b20gbWFpbiBkb2N1bWVudAotICAgICAgICAvLyBlcnJvciBzdGF0ZS4KLSAgICAgICAgdGhpcy53
b3JrZXJfZG9uZSh7Ci0gICAgICAgICAgICBzdGF0dXM6IHsKLSAgICAgICAgICAgICAgICBzdGF0
dXM6IHRlc3RzLnN0YXR1cy5FUlJPUiwKLSAgICAgICAgICAgICAgICBtZXNzYWdlOiAiRXJyb3Ig
aW4gd29ya2VyIiArIGZpbGVuYW1lICsgIjogIiArIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAg
c3RhY2s6IGVycm9yLnN0YWNrCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBl
cnJvci5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH07Ci0KLSAgICBSZW1vdGVXb3JrZXIucHJvdG90
eXBlLnRlc3Rfc3RhdGUgPSBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIHZhciByZW1vdGVfdGVz
dCA9IHRoaXMudGVzdHNbZGF0YS50ZXN0LmluZGV4XTsKLSAgICAgICAgaWYgKCFyZW1vdGVfdGVz
dCkgewotICAgICAgICAgICAgcmVtb3RlX3Rlc3QgPSBuZXcgUmVtb3RlVGVzdChkYXRhLnRlc3Qp
OwotICAgICAgICAgICAgdGhpcy50ZXN0c1tkYXRhLnRlc3QuaW5kZXhdID0gcmVtb3RlX3Rlc3Q7
Ci0gICAgICAgIH0KLSAgICAgICAgcmVtb3RlX3Rlc3QudXBkYXRlX3N0YXRlX2Zyb20oZGF0YS50
ZXN0KTsKLSAgICAgICAgdGVzdHMubm90aWZ5X3Rlc3Rfc3RhdGUocmVtb3RlX3Rlc3QpOwotICAg
IH07Ci0KLSAgICBSZW1vdGVXb3JrZXIucHJvdG90eXBlLnRlc3RfZG9uZSA9IGZ1bmN0aW9uKGRh
dGEpIHsKLSAgICAgICAgdmFyIHJlbW90ZV90ZXN0ID0gdGhpcy50ZXN0c1tkYXRhLnRlc3QuaW5k
ZXhdOwotICAgICAgICByZW1vdGVfdGVzdC51cGRhdGVfc3RhdGVfZnJvbShkYXRhLnRlc3QpOwot
ICAgICAgICByZW1vdGVfdGVzdC5kb25lKCk7Ci0gICAgICAgIHRlc3RzLnJlc3VsdChyZW1vdGVf
dGVzdCk7Ci0gICAgfTsKLQotICAgIFJlbW90ZVdvcmtlci5wcm90b3R5cGUud29ya2VyX2RvbmUg
PSBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIGlmICh0ZXN0cy5zdGF0dXMuc3RhdHVzID09PSBu
dWxsICYmCi0gICAgICAgICAgICBkYXRhLnN0YXR1cy5zdGF0dXMgIT09IGRhdGEuc3RhdHVzLk9L
KSB7Ci0gICAgICAgICAgICB0ZXN0cy5zdGF0dXMuc3RhdHVzID0gZGF0YS5zdGF0dXMuc3RhdHVz
OwotICAgICAgICAgICAgdGVzdHMuc3RhdHVzLm1lc3NhZ2UgPSBkYXRhLnN0YXR1cy5tZXNzYWdl
OwotICAgICAgICAgICAgdGVzdHMuc3RhdHVzLnN0YWNrID0gZGF0YS5zdGF0dXMuc3RhY2s7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7Ci0gICAgICAgIHRoaXMud29y
a2VyID0gbnVsbDsKLSAgICAgICAgaWYgKHRlc3RzLmFsbF9kb25lKCkpIHsKLSAgICAgICAgICAg
IHRlc3RzLmNvbXBsZXRlKCk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgUmVtb3RlV29ya2Vy
LnByb3RvdHlwZS5tZXNzYWdlX2hhbmRsZXJzID0gewotICAgICAgICB0ZXN0X3N0YXRlOiBSZW1v
dGVXb3JrZXIucHJvdG90eXBlLnRlc3Rfc3RhdGUsCi0gICAgICAgIHJlc3VsdDogUmVtb3RlV29y
a2VyLnByb3RvdHlwZS50ZXN0X2RvbmUsCi0gICAgICAgIGNvbXBsZXRlOiBSZW1vdGVXb3JrZXIu
cHJvdG90eXBlLndvcmtlcl9kb25lCi0gICAgfTsKLQotICAgIC8qCi0gICAgICogSGFybmVzcwot
ICAgICAqLwotCi0gICAgZnVuY3Rpb24gVGVzdHNTdGF0dXMoKQotICAgIHsKLSAgICAgICAgdGhp
cy5zdGF0dXMgPSBudWxsOwotICAgICAgICB0aGlzLm1lc3NhZ2UgPSBudWxsOwotICAgICAgICB0
aGlzLnN0YWNrID0gbnVsbDsKLSAgICB9Ci0KLSAgICBUZXN0c1N0YXR1cy5zdGF0dXNlcyA9IHsK
LSAgICAgICAgT0s6MCwKLSAgICAgICAgRVJST1I6MSwKLSAgICAgICAgVElNRU9VVDoyCi0gICAg
fTsKLQotICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZSA9IG1lcmdlKHt9LCBUZXN0c1N0YXR1cy5z
dGF0dXNlcyk7Ci0KLSAgICBUZXN0c1N0YXR1cy5wcm90b3R5cGUuc3RydWN0dXJlZF9jbG9uZSA9
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc3RydWN0dXJlZF9jbG9uZSkg
ewotICAgICAgICAgICAgdmFyIG1zZyA9IHRoaXMubWVzc2FnZTsKLSAgICAgICAgICAgIG1zZyA9
IG1zZyA/IFN0cmluZyhtc2cpIDogbXNnOwotICAgICAgICAgICAgdGhpcy5fc3RydWN0dXJlZF9j
bG9uZSA9IG1lcmdlKHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6dGhpcy5zdGF0dXMsCi0gICAg
ICAgICAgICAgICAgbWVzc2FnZTptc2csCi0gICAgICAgICAgICAgICAgc3RhY2s6dGhpcy5zdGFj
awotICAgICAgICAgICAgfSwgVGVzdHNTdGF0dXMuc3RhdHVzZXMpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lOwotICAgIH07Ci0KLSAgICBmdW5jdGlv
biBUZXN0cygpCi0gICAgewotICAgICAgICB0aGlzLnRlc3RzID0gW107Ci0gICAgICAgIHRoaXMu
bnVtX3BlbmRpbmcgPSAwOwotCi0gICAgICAgIHRoaXMucGhhc2VzID0gewotICAgICAgICAgICAg
SU5JVElBTDowLAotICAgICAgICAgICAgU0VUVVA6MSwKLSAgICAgICAgICAgIEhBVkVfVEVTVFM6
MiwKLSAgICAgICAgICAgIEhBVkVfUkVTVUxUUzozLAotICAgICAgICAgICAgQ09NUExFVEU6NAot
ICAgICAgICB9OwotICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuSU5JVElBTDsKLQot
ICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSB7fTsKLQotICAgICAgICB0aGlzLndhaXRfZm9yX2Zp
bmlzaCA9IGZhbHNlOwotICAgICAgICB0aGlzLnByb2Nlc3NpbmdfY2FsbGJhY2tzID0gZmFsc2U7
Ci0KLSAgICAgICAgdGhpcy5hbGxvd191bmNhdWdodF9leGNlcHRpb24gPSBmYWxzZTsKLQotICAg
ICAgICB0aGlzLmZpbGVfaXNfdGVzdCA9IGZhbHNlOwotCi0gICAgICAgIHRoaXMudGltZW91dF9t
dWx0aXBsaWVyID0gMTsKLSAgICAgICAgdGhpcy50aW1lb3V0X2xlbmd0aCA9IHRlc3RfZW52aXJv
bm1lbnQudGVzdF90aW1lb3V0KCk7Ci0gICAgICAgIHRoaXMudGltZW91dF9pZCA9IG51bGw7Ci0K
LSAgICAgICAgdGhpcy5zdGFydF9jYWxsYmFja3MgPSBbXTsKLSAgICAgICAgdGhpcy50ZXN0X3N0
YXRlX2NhbGxiYWNrcyA9IFtdOwotICAgICAgICB0aGlzLnRlc3RfZG9uZV9jYWxsYmFja3MgPSBb
XTsKLSAgICAgICAgdGhpcy5hbGxfZG9uZV9jYWxsYmFja3MgPSBbXTsKLQotICAgICAgICB0aGlz
LnBlbmRpbmdfd29ya2VycyA9IFtdOwotCi0gICAgICAgIHRoaXMuc3RhdHVzID0gbmV3IFRlc3Rz
U3RhdHVzKCk7Ci0KLSAgICAgICAgdmFyIHRoaXNfb2JqID0gdGhpczsKLQotICAgICAgICB0ZXN0
X2Vudmlyb25tZW50LmFkZF9vbl9sb2FkZWRfY2FsbGJhY2soZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBpZiAodGhpc19vYmouYWxsX2RvbmUoKSkgewotICAgICAgICAgICAgICAgIHRoaXNfb2Jq
LmNvbXBsZXRlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMu
c2V0X3RpbWVvdXQoKTsKLSAgICB9Ci0KLSAgICBUZXN0cy5wcm90b3R5cGUuc2V0dXAgPSBmdW5j
dGlvbihmdW5jLCBwcm9wZXJ0aWVzKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMucGhhc2UgPj0g
dGhpcy5waGFzZXMuSEFWRV9SRVNVTFRTKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAodGhpcy5waGFzZSA8IHRoaXMucGhhc2VzLlNFVFVQKSB7Ci0gICAg
ICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuU0VUVVA7Ci0gICAgICAgIH0KLQotICAg
ICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzOwotCi0gICAgICAgIGZvciAodmFyIHAg
aW4gcHJvcGVydGllcykgewotICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMuaGFzT3duUHJvcGVy
dHkocCkpIHsKLSAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0aWVzW3BdOwotICAg
ICAgICAgICAgICAgIGlmIChwID09ICJhbGxvd191bmNhdWdodF9leGNlcHRpb24iKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uID0gdmFsdWU7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09ICJleHBsaWNpdF9kb25lIiAmJiB2YWx1ZSkg
ewotICAgICAgICAgICAgICAgICAgICB0aGlzLndhaXRfZm9yX2ZpbmlzaCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChwID09ICJleHBsaWNpdF90aW1lb3V0IiAmJiB2YWx1ZSkg
ewotICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVvdXRfbGVuZ3RoID0gbnVsbDsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHRoaXMudGltZW91dF9pZCkKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dF9pZCk7
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT0g
InRpbWVvdXRfbXVsdGlwbGllciIpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lb3V0
X211bHRpcGxpZXIgPSB2YWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAoZnVuYykgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICBmdW5jKCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5zdGF0dXMuc3RhdHVzID0gdGhpcy5zdGF0dXMuRVJST1I7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5zdGF0dXMubWVzc2FnZSA9IFN0cmluZyhlKTsKLSAgICAgICAgICAgICAgICB0
aGlzLnN0YXR1cy5zdGFjayA9IGUuc3RhY2sgPyBlLnN0YWNrIDogbnVsbDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICB0aGlzLnNldF90aW1lb3V0KCk7Ci0gICAgfTsKLQotICAg
IFRlc3RzLnByb3RvdHlwZS5zZXRfZmlsZV9pc190ZXN0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
IGlmICh0aGlzLnRlc3RzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiVHJpZWQgdG8gc2V0IGZpbGUgYXMgdGVzdCBhZnRlciBjcmVhdGluZyBhIHRlc3QiKTsKLSAg
ICAgICAgfQotICAgICAgICB0aGlzLndhaXRfZm9yX2ZpbmlzaCA9IHRydWU7Ci0gICAgICAgIHRo
aXMuZmlsZV9pc190ZXN0ID0gdHJ1ZTsKLSAgICAgICAgLy8gQ3JlYXRlIHRoZSB0ZXN0LCB3aGlj
aCB3aWxsIGFkZCBpdCB0byB0aGUgbGlzdCBvZiB0ZXN0cwotICAgICAgICBhc3luY190ZXN0KCk7
Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfdGltZW91dCA9IGZ1bmN0aW9uKCkg
ewotICAgICAgICB2YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICBjbGVhclRpbWVvdXQodGhp
cy50aW1lb3V0X2lkKTsKLSAgICAgICAgaWYgKHRoaXMudGltZW91dF9sZW5ndGggIT09IG51bGwp
IHsKLSAgICAgICAgICAgIHRoaXMudGltZW91dF9pZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzX29iai50
aW1lb3V0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRo
aXMudGltZW91dF9sZW5ndGgpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3Rv
dHlwZS50aW1lb3V0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh0aGlzLnN0YXR1cy5zdGF0
dXMgPT09IG51bGwpIHsKLSAgICAgICAgICAgIHRoaXMuc3RhdHVzLnN0YXR1cyA9IHRoaXMuc3Rh
dHVzLlRJTUVPVVQ7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5jb21wbGV0ZSgpOwotICAgIH07
Ci0KLSAgICBUZXN0cy5wcm90b3R5cGUuZW5kX3dhaXQgPSBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICB0aGlzLndhaXRfZm9yX2ZpbmlzaCA9IGZhbHNlOwotICAgICAgICBpZiAodGhpcy5hbGxf
ZG9uZSgpKSB7Ci0gICAgICAgICAgICB0aGlzLmNvbXBsZXRlKCk7Ci0gICAgICAgIH0KLSAgICB9
OwotCi0gICAgVGVzdHMucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbih0ZXN0KQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMucGhhc2UgPCB0aGlzLnBoYXNlcy5IQVZFX1RFU1RTKSB7Ci0gICAgICAg
ICAgICB0aGlzLnN0YXJ0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5udW1fcGVuZGluZysr
OwotICAgICAgICB0ZXN0LmluZGV4ID0gdGhpcy50ZXN0cy5wdXNoKHRlc3QpOwotICAgICAgICB0
aGlzLm5vdGlmeV90ZXN0X3N0YXRlKHRlc3QpOwotICAgIH07Ci0KLSAgICBUZXN0cy5wcm90b3R5
cGUubm90aWZ5X3Rlc3Rfc3RhdGUgPSBmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHZhciB0aGlz
X29iaiA9IHRoaXM7Ci0gICAgICAgIGZvckVhY2godGhpcy50ZXN0X3N0YXRlX2NhbGxiYWNrcywK
LSAgICAgICAgICAgICAgICBmdW5jdGlvbihjYWxsYmFjaykgewotICAgICAgICAgICAgICAgICAg
ICBjYWxsYmFjayh0ZXN0LCB0aGlzX29iaik7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgfTsK
LQotICAgIFRlc3RzLnByb3RvdHlwZS5hbGxfZG9uZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICBy
ZXR1cm4gKHRoaXMudGVzdHMubGVuZ3RoID4gMCAmJiB0ZXN0X2Vudmlyb25tZW50LmFsbF9sb2Fk
ZWQgJiYKLSAgICAgICAgICAgICAgICB0aGlzLm51bV9wZW5kaW5nID09PSAwICYmICF0aGlzLndh
aXRfZm9yX2ZpbmlzaCAmJgotICAgICAgICAgICAgICAgICF0aGlzLnByb2Nlc3NpbmdfY2FsbGJh
Y2tzICYmCi0gICAgICAgICAgICAgICAgIXRoaXMucGVuZGluZ193b3JrZXJzLnNvbWUoZnVuY3Rp
b24odykgeyByZXR1cm4gdy5ydW5uaW5nOyB9KSk7Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3Rv
dHlwZS5zdGFydCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFz
ZXMuSEFWRV9URVNUUzsKLSAgICAgICAgdGhpcy5ub3RpZnlfc3RhcnQoKTsKLSAgICB9OwotCi0g
ICAgVGVzdHMucHJvdG90eXBlLm5vdGlmeV9zdGFydCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2
YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICBmb3JFYWNoICh0aGlzLnN0YXJ0X2NhbGxiYWNr
cywKLSAgICAgICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXNfb2JqLnByb3BlcnRpZXMpOwot
ICAgICAgICAgICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgVGVzdHMucHJvdG90eXBlLnJlc3Vs
dCA9IGZ1bmN0aW9uKHRlc3QpCi0gICAgewotICAgICAgICBpZiAodGhpcy5waGFzZSA+IHRoaXMu
cGhhc2VzLkhBVkVfUkVTVUxUUykgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5IQVZFX1JFU1VMVFM7Ci0gICAgICAgIHRo
aXMubnVtX3BlbmRpbmctLTsKLSAgICAgICAgdGhpcy5ub3RpZnlfcmVzdWx0KHRlc3QpOwotICAg
IH07Ci0KLSAgICBUZXN0cy5wcm90b3R5cGUubm90aWZ5X3Jlc3VsdCA9IGZ1bmN0aW9uKHRlc3Qp
IHsKLSAgICAgICAgdmFyIHRoaXNfb2JqID0gdGhpczsKLSAgICAgICAgdGhpcy5wcm9jZXNzaW5n
X2NhbGxiYWNrcyA9IHRydWU7Ci0gICAgICAgIGZvckVhY2godGhpcy50ZXN0X2RvbmVfY2FsbGJh
Y2tzLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGVzdCwgdGhpc19vYmopOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICB0aGlzLnByb2Nlc3NpbmdfY2FsbGJhY2tzID0gZmFsc2U7
Ci0gICAgICAgIGlmICh0aGlzX29iai5hbGxfZG9uZSgpKSB7Ci0gICAgICAgICAgICB0aGlzX29i
ai5jb21wbGV0ZSgpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3RzLnByb3RvdHlwZS5j
b21wbGV0ZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAodGhpcy5waGFzZSA9PT0gdGhpcy5w
aGFzZXMuQ09NUExFVEUpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuQ09NUExFVEU7Ci0gICAgICAgIHZhciB0aGlzX29i
aiA9IHRoaXM7Ci0gICAgICAgIHRoaXMudGVzdHMuZm9yRWFjaCgKLSAgICAgICAgICAgIGZ1bmN0
aW9uKHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHgucGhhc2UgPCB4LnBo
YXNlcy5DT01QTEVURSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5ub3RpZnlfcmVz
dWx0KHgpOwotICAgICAgICAgICAgICAgICAgICB4LmNsZWFudXAoKTsKLSAgICAgICAgICAgICAg
ICAgICAgeC5waGFzZSA9IHgucGhhc2VzLkNPTVBMRVRFOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICAgICAgdGhpcy5ub3RpZnlfY29tcGxldGUoKTsK
LSAgICB9OwotCi0gICAgVGVzdHMucHJvdG90eXBlLm5vdGlmeV9jb21wbGV0ZSA9IGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgdGhpc19vYmogPSB0aGlzOwotICAgICAgICBpZiAodGhpcy5zdGF0
dXMuc3RhdHVzID09PSBudWxsKSB7Ci0gICAgICAgICAgICB0aGlzLnN0YXR1cy5zdGF0dXMgPSB0
aGlzLnN0YXR1cy5PSzsKLSAgICAgICAgfQotCi0gICAgICAgIGZvckVhY2ggKHRoaXMuYWxsX2Rv
bmVfY2FsbGJhY2tzLAotICAgICAgICAgICAgICAgICBmdW5jdGlvbihjYWxsYmFjaykKLSAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGhpc19vYmoudGVz
dHMsIHRoaXNfb2JqLnN0YXR1cyk7Ci0gICAgICAgICAgICAgICAgIH0pOwotICAgIH07Ci0KLSAg
ICBUZXN0cy5wcm90b3R5cGUuZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIgPSBmdW5jdGlvbih3b3Jr
ZXIpIHsKLSAgICAgICAgaWYgKHRoaXMucGhhc2UgPj0gdGhpcy5waGFzZXMuQ09NUExFVEUpIHsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMucGVuZGluZ193
b3JrZXJzLnB1c2gobmV3IFJlbW90ZVdvcmtlcih3b3JrZXIpKTsKLSAgICB9OwotCi0gICAgZnVu
Y3Rpb24gZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIocG9ydCkgewotICAgICAgICB0ZXN0cy5mZXRj
aF90ZXN0c19mcm9tX3dvcmtlcihwb3J0KTsKLSAgICB9Ci0gICAgZXhwb3NlKGZldGNoX3Rlc3Rz
X2Zyb21fd29ya2VyLCAnZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXInKTsKLQotICAgIGZ1bmN0aW9u
IHRpbWVvdXQoKSB7Ci0gICAgICAgIGlmICh0ZXN0cy50aW1lb3V0X2xlbmd0aCA9PT0gbnVsbCkg
ewotICAgICAgICAgICAgdGVzdHMudGltZW91dCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIGV4
cG9zZSh0aW1lb3V0LCAndGltZW91dCcpOwotCi0gICAgZnVuY3Rpb24gYWRkX3N0YXJ0X2NhbGxi
YWNrKGNhbGxiYWNrKSB7Ci0gICAgICAgIHRlc3RzLnN0YXJ0X2NhbGxiYWNrcy5wdXNoKGNhbGxi
YWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhZGRfdGVzdF9zdGF0ZV9jYWxsYmFjayhjYWxs
YmFjaykgewotICAgICAgICB0ZXN0cy50ZXN0X3N0YXRlX2NhbGxiYWNrcy5wdXNoKGNhbGxiYWNr
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhZGRfcmVzdWx0X2NhbGxiYWNrKGNhbGxiYWNrKSB7
Ci0gICAgICAgIHRlc3RzLnRlc3RfZG9uZV9jYWxsYmFja3MucHVzaChjYWxsYmFjayk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soY2FsbGJhY2spIHsKLSAg
ICAgICAgdGVzdHMuYWxsX2RvbmVfY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOwotICAgIH0KLQot
ICAgIGV4cG9zZShhZGRfc3RhcnRfY2FsbGJhY2ssICdhZGRfc3RhcnRfY2FsbGJhY2snKTsKLSAg
ICBleHBvc2UoYWRkX3Rlc3Rfc3RhdGVfY2FsbGJhY2ssICdhZGRfdGVzdF9zdGF0ZV9jYWxsYmFj
aycpOwotICAgIGV4cG9zZShhZGRfcmVzdWx0X2NhbGxiYWNrLCAnYWRkX3Jlc3VsdF9jYWxsYmFj
aycpOwotICAgIGV4cG9zZShhZGRfY29tcGxldGlvbl9jYWxsYmFjaywgJ2FkZF9jb21wbGV0aW9u
X2NhbGxiYWNrJyk7Ci0KLSAgICBmdW5jdGlvbiByZW1vdmUoYXJyYXksIGl0ZW0pIHsKLSAgICAg
ICAgdmFyIGluZGV4ID0gYXJyYXkuaW5kZXhPZihpdGVtKTsKLSAgICAgICAgaWYgKGluZGV4ID4g
LTEpIHsKLSAgICAgICAgICAgIGFycmF5LnNwbGljZShpbmRleCwgMSk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiByZW1vdmVfc3RhcnRfY2FsbGJhY2soY2FsbGJhY2spIHsKLSAg
ICAgICAgcmVtb3ZlKHRlc3RzLnN0YXJ0X2NhbGxiYWNrcywgY2FsbGJhY2spOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHJlbW92ZV90ZXN0X3N0YXRlX2NhbGxiYWNrKGNhbGxiYWNrKSB7Ci0gICAg
ICAgIHJlbW92ZSh0ZXN0cy50ZXN0X3N0YXRlX2NhbGxiYWNrcywgY2FsbGJhY2spOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHJlbW92ZV9yZXN1bHRfY2FsbGJhY2soY2FsbGJhY2spIHsKLSAgICAg
ICAgcmVtb3ZlKHRlc3RzLnRlc3RfZG9uZV9jYWxsYmFja3MsIGNhbGxiYWNrKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiByZW1vdmVfY29tcGxldGlvbl9jYWxsYmFjayhjYWxsYmFjaykgewotICAg
ICAgIHJlbW92ZSh0ZXN0cy5hbGxfZG9uZV9jYWxsYmFja3MsIGNhbGxiYWNrKTsKLSAgICB9Ci0K
LSAgICAvKgotICAgICAqIE91dHB1dCBsaXN0ZW5lcgotICAgICovCi0KLSAgICBmdW5jdGlvbiBP
dXRwdXQoKSB7Ci0gICAgICAgIHRoaXMub3V0cHV0X2RvY3VtZW50ID0gZG9jdW1lbnQ7Ci0gICAg
ICAgIHRoaXMub3V0cHV0X25vZGUgPSBudWxsOwotICAgICAgICB0aGlzLmVuYWJsZWQgPSBzZXR0
aW5ncy5vdXRwdXQ7Ci0gICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLklOSVRJQUw7Ci0gICAgfQot
Ci0gICAgT3V0cHV0LnByb3RvdHlwZS5JTklUSUFMID0gMDsKLSAgICBPdXRwdXQucHJvdG90eXBl
LlNUQVJURUQgPSAxOwotICAgIE91dHB1dC5wcm90b3R5cGUuSEFWRV9SRVNVTFRTID0gMjsKLSAg
ICBPdXRwdXQucHJvdG90eXBlLkNPTVBMRVRFID0gMzsKLQotICAgIE91dHB1dC5wcm90b3R5cGUu
c2V0dXAgPSBmdW5jdGlvbihwcm9wZXJ0aWVzKSB7Ci0gICAgICAgIGlmICh0aGlzLnBoYXNlID4g
dGhpcy5JTklUSUFMKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICAvL0lmIG91dHB1dCBpcyBkaXNhYmxlZCBpbiB0ZXN0aGFybmVzc3JlcG9ydC5qcyB0aGUgdGVz
dCBzaG91bGRuJ3QgYmUKLSAgICAgICAgLy9hYmxlIHRvIG92ZXJyaWRlIHRoYXQKLSAgICAgICAg
dGhpcy5lbmFibGVkID0gdGhpcy5lbmFibGVkICYmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5
KCJvdXRwdXQiKSA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydGllcy5vdXRwdXQgOiBzZXR0aW5ncy5vdXRwdXQpOwotICAgIH07Ci0KLSAgICBPdXRwdXQu
cHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbihwcm9wZXJ0aWVzKSB7Ci0gICAgICAgIGlmICh0aGlz
LnBoYXNlID49IHRoaXMuU1RBUlRFRCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChwcm9wZXJ0aWVzLm91dHB1dF9kb2N1bWVudCkgewotICAgICAgICAgICAg
dGhpcy5vdXRwdXRfZG9jdW1lbnQgPSBwcm9wZXJ0aWVzLm91dHB1dF9kb2N1bWVudDsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMub3V0cHV0X2RvY3VtZW50ID0gZG9jdW1lbnQ7
Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMuU1RBUlRFRDsKLSAgICB9Owot
Ci0gICAgT3V0cHV0LnByb3RvdHlwZS5yZXNvbHZlX2xvZyA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICB2YXIgb3V0cHV0X2RvY3VtZW50OwotICAgICAgICBpZiAodHlwZW9mIHRoaXMub3V0cHV0X2Rv
Y3VtZW50ID09PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgICAgICBvdXRwdXRfZG9jdW1lbnQgPSB0
aGlzLm91dHB1dF9kb2N1bWVudC5hcHBseSh1bmRlZmluZWQpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgb3V0cHV0X2RvY3VtZW50ID0gdGhpcy5vdXRwdXRfZG9jdW1lbnQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFvdXRwdXRfZG9jdW1lbnQpIHsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZSA9IG91dHB1dF9kb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibG9nIik7Ci0gICAgICAgIGlmICghbm9kZSkgewotICAgICAgICAgICAgaWYgKCFk
b2N1bWVudC5ib2R5IHx8IGRvY3VtZW50LnJlYWR5U3RhdGUgPT0gImxvYWRpbmciKSB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbm9kZSA9IG91
dHB1dF9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIG5vZGUuaWQg
PSAibG9nIjsKLSAgICAgICAgICAgIG91dHB1dF9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5v
ZGUpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMub3V0cHV0X2RvY3VtZW50ID0gb3V0cHV0X2Rv
Y3VtZW50OwotICAgICAgICB0aGlzLm91dHB1dF9ub2RlID0gbm9kZTsKLSAgICB9OwotCi0gICAg
T3V0cHV0LnByb3RvdHlwZS5zaG93X3N0YXR1cyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAo
dGhpcy5waGFzZSA8IHRoaXMuU1RBUlRFRCkgewotICAgICAgICAgICAgdGhpcy5pbml0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpIHsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICBpZiAodGhpcy5waGFzZSA8IHRoaXMuSEFWRV9SRVNVTFRT
KSB7Ci0gICAgICAgICAgICB0aGlzLnJlc29sdmVfbG9nKCk7Ci0gICAgICAgICAgICB0aGlzLnBo
YXNlID0gdGhpcy5IQVZFX1JFU1VMVFM7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGRvbmVfY291
bnQgPSB0ZXN0cy50ZXN0cy5sZW5ndGggLSB0ZXN0cy5udW1fcGVuZGluZzsKLSAgICAgICAgaWYg
KHRoaXMub3V0cHV0X25vZGUpIHsKLSAgICAgICAgICAgIGlmIChkb25lX2NvdW50IDwgMTAwIHx8
Ci0gICAgICAgICAgICAgICAgKGRvbmVfY291bnQgPCAxMDAwICYmIGRvbmVfY291bnQgJSAxMDAg
PT09IDApIHx8Ci0gICAgICAgICAgICAgICAgZG9uZV9jb3VudCAlIDEwMDAgPT09IDApIHsKLSAg
ICAgICAgICAgICAgICB0aGlzLm91dHB1dF9ub2RlLnRleHRDb250ZW50ID0gIlJ1bm5pbmcsICIg
KwotICAgICAgICAgICAgICAgICAgICBkb25lX2NvdW50ICsgIiBjb21wbGV0ZSwgIiArCi0gICAg
ICAgICAgICAgICAgICAgIHRlc3RzLm51bV9wZW5kaW5nICsgIiByZW1haW4iOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgfTsKLQotICAgIE91dHB1dC5wcm90b3R5cGUuc2hvd19yZXN1
bHRzID0gZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgewotICAgICAgICBpZiAodGhp
cy5waGFzZSA+PSB0aGlzLkNPTVBMRVRFKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXRoaXMub3V0cHV0X25vZGUpIHsKLSAgICAgICAgICAgIHRo
aXMucmVzb2x2ZV9sb2coKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLnBoYXNlID0gdGhpcy5D
T01QTEVURTsKLQotICAgICAgICB2YXIgbG9nID0gdGhpcy5vdXRwdXRfbm9kZTsKLSAgICAgICAg
aWYgKCFsb2cpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB2YXIg
b3V0cHV0X2RvY3VtZW50ID0gdGhpcy5vdXRwdXRfZG9jdW1lbnQ7Ci0KLSAgICAgICAgd2hpbGUg
KGxvZy5sYXN0Q2hpbGQpIHsKLSAgICAgICAgICAgIGxvZy5yZW1vdmVDaGlsZChsb2cubGFzdENo
aWxkKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBoYXJuZXNzX3VybCA9IGdldF9oYXJuZXNz
X3VybCgpOwotICAgICAgICBpZiAoaGFybmVzc191cmwgIT09IG51bGwpIHsKLSAgICAgICAgICAg
IHZhciBzdHlsZXNoZWV0ID0gb3V0cHV0X2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4aHRtbF9u
cywgImxpbmsiKTsKLSAgICAgICAgICAgIHN0eWxlc2hlZXQuc2V0QXR0cmlidXRlKCJyZWwiLCAi
c3R5bGVzaGVldCIpOwotICAgICAgICAgICAgc3R5bGVzaGVldC5zZXRBdHRyaWJ1dGUoImhyZWYi
LCBoYXJuZXNzX3VybCArICJ0ZXN0aGFybmVzcy5jc3MiKTsKLSAgICAgICAgICAgIHZhciBoZWFk
cyA9IG91dHB1dF9kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpOwotICAgICAg
ICAgICAgaWYgKGhlYWRzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIGhlYWRzWzBdLmFwcGVu
ZENoaWxkKHN0eWxlc2hlZXQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
dmFyIHN0YXR1c190ZXh0X2hhcm5lc3MgPSB7fTsKLSAgICAgICAgc3RhdHVzX3RleHRfaGFybmVz
c1toYXJuZXNzX3N0YXR1cy5PS10gPSAiT0siOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNz
W2hhcm5lc3Nfc3RhdHVzLkVSUk9SXSA9ICJFcnJvciI7Ci0gICAgICAgIHN0YXR1c190ZXh0X2hh
cm5lc3NbaGFybmVzc19zdGF0dXMuVElNRU9VVF0gPSAiVGltZW91dCI7Ci0KLSAgICAgICAgdmFy
IHN0YXR1c190ZXh0ID0ge307Ci0gICAgICAgIHN0YXR1c190ZXh0W1Rlc3QucHJvdG90eXBlLlBB
U1NdID0gIlBhc3MiOwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5GQUlMXSA9
ICJGYWlsIjsKLSAgICAgICAgc3RhdHVzX3RleHRbVGVzdC5wcm90b3R5cGUuVElNRU9VVF0gPSAi
VGltZW91dCI7Ci0gICAgICAgIHN0YXR1c190ZXh0W1Rlc3QucHJvdG90eXBlLk5PVFJVTl0gPSAi
Tm90IFJ1biI7Ci0KLSAgICAgICAgdmFyIHN0YXR1c19udW1iZXIgPSB7fTsKLSAgICAgICAgZm9y
RWFjaCh0ZXN0cywKLSAgICAgICAgICAgICAgICBmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciBzdGF0dXMgPSBzdGF0dXNfdGV4dFt0ZXN0LnN0YXR1c107Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChzdGF0dXNfbnVtYmVyLmhhc093blByb3BlcnR5KHN0YXR1cykpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArPSAxOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
X251bWJlcltzdGF0dXNdID0gMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0pOwotCi0gICAgICAgIGZ1bmN0aW9uIHN0YXR1c19jbGFzcyhzdGF0dXMpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBzdGF0dXMucmVwbGFjZSgvXHMvZywgJycpLnRvTG93ZXJD
YXNlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgc3VtbWFyeV90ZW1wbGF0ZSA9IFsic2Vj
dGlvbiIsIHsiaWQiOiJzdW1tYXJ5In0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsiaDIiLCB7fSwgIlN1bW1hcnkiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuY3Rpb24oKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBzdGF0dXNfdGV4dF9oYXJu
ZXNzW2hhcm5lc3Nfc3RhdHVzLnN0YXR1c107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgcnYgPSBbWyJzZWN0aW9uIiwge30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsicCIsIHt9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhhcm5lc3Mgc3RhdHVzOiAiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJzcGFuIiwgeyJjbGFzcyI6
c3RhdHVzX2NsYXNzKHN0YXR1cyl9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF1dOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFybmVzc19z
dGF0dXMuc3RhdHVzID09PSBoYXJuZXNzX3N0YXR1cy5FUlJPUikgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ2WzBdLnB1c2goWyJwcmUiLCB7fSwgaGFybmVzc19z
dGF0dXMubWVzc2FnZV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChoYXJuZXNzX3N0YXR1cy5zdGFjaykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydlswXS5wdXNoKFsicHJlIiwge30sIGhhcm5lc3Nfc3RhdHVzLnN0
YWNrXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJ2OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInAiLCB7fSwgIkZvdW5kICR7bnVt
X3Rlc3RzfSB0ZXN0cyJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtbImRp
diIsIHt9XV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IDA7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdHVzX3RleHQu
aGFzT3duUHJvcGVydHkoaSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0dXNfdGV4dFtpXSkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9
IHN0YXR1c190ZXh0W2ldOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydlswXS5wdXNoKFsiZGl2IiwgeyJjbGFzcyI6c3RhdHVzX2NsYXNzKHN0YXR1cyl9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
ImxhYmVsIiwge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbImlucHV0Iiwge3R5cGU6ImNoZWNrYm94IiwgY2hlY2tlZDoiY2hlY2tl
ZCJ9XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIgIiArIHN0YXR1c11dKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaSsrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ2OwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF07Ci0KLSAgICAgICAgbG9nLmFwcGVuZENoaWxkKHJlbmRlcihzdW1tYXJ5X3RlbXBs
YXRlLCB7bnVtX3Rlc3RzOnRlc3RzLmxlbmd0aH0sIG91dHB1dF9kb2N1bWVudCkpOwotCi0gICAg
ICAgIGZvckVhY2gob3V0cHV0X2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24jc3Vt
bWFyeSBsYWJlbCIpLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGVsZW1lbnQpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBvbl9ldmVudChlbGVtZW50LCAiY2xpY2si
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
b3V0cHV0X2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRzIikgPT09IG51bGwpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHJlc3VsdF9jbGFzcyA9IGVsZW1lbnQucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoImNsYXNz
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3R5bGVfZWxlbWVudCA9
IG91dHB1dF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzdHlsZSNoaWRlLSIgKyByZXN1bHRfY2xh
c3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0X2VsZW1lbnQg
PSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoIXN0eWxlX2VsZW1lbnQgJiYgIWlucHV0X2VsZW1lbnQuY2hlY2tlZCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlX2VsZW1lbnQgPSBv
dXRwdXRfZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhodG1sX25zLCAic3R5bGUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LmlkID0gImhpZGUt
IiArIHJlc3VsdF9jbGFzczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHlsZV9lbGVtZW50LnRleHRDb250ZW50ID0gInRhYmxlI3Jlc3VsdHMgPiB0Ym9keSA+IHRyLiIr
cmVzdWx0X2NsYXNzKyJ7ZGlzcGxheTpub25lfSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0X2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3R5bGVfZWxlbWVu
dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxlX2Vs
ZW1lbnQgJiYgaW5wdXRfZWxlbWVudC5jaGVja2VkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3R5bGVfZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxl
X2VsZW1lbnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAv
LyBUaGlzIHVzZSBvZiBpbm5lckhUTUwgcGx1cyBtYW51YWwgZXNjYXBpbmcgaXMgbm90IHJlY29t
bWVuZGVkIGluCi0gICAgICAgIC8vIGdlbmVyYWwsIGJ1dCBpcyBuZWNlc3NhcnkgaGVyZSBmb3Ig
cGVyZm9ybWFuY2UuICBVc2luZyB0ZXh0Q29udGVudAotICAgICAgICAvLyBvbiBlYWNoIGluZGl2
aWR1YWwgPHRkPiBhZGRzIHRlbnMgb2Ygc2Vjb25kcyBvZiBleGVjdXRpb24gdGltZSBmb3IKLSAg
ICAgICAgLy8gbGFyZ2UgdGVzdCBzdWl0ZXMgKHRlbnMgb2YgdGhvdXNhbmRzIG9mIHRlc3RzKS4K
LSAgICAgICAgZnVuY3Rpb24gZXNjYXBlX2h0bWwocykKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIHMucmVwbGFjZSgvXCYvZywgIiZhbXA7IikKLSAgICAgICAgICAgICAgICAucmVwbGFj
ZSgvPC9nLCAiJmx0OyIpCi0gICAgICAgICAgICAgICAgLnJlcGxhY2UoLyIvZywgIiZxdW90OyIp
Ci0gICAgICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgIiYjMzk7Iik7Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBoYXNfYXNzZXJ0aW9ucygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAg
ICBpZiAodGVzdHNbaV0ucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgiYXNzZXJ0IikpIHsKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAg
ZnVuY3Rpb24gZ2V0X2Fzc2VydGlvbih0ZXN0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
dGVzdC5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCJhc3NlcnQiKSkgewotICAgICAgICAgICAg
ICAgIGlmIChBcnJheS5pc0FycmF5KHRlc3QucHJvcGVydGllcy5hc3NlcnQpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0ZXN0LnByb3BlcnRpZXMuYXNzZXJ0LmpvaW4oJyAnKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRlc3QucHJvcGVydGllcy5h
c3NlcnQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgIH0K
LQotICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhodG1s
X25zLCAic2VjdGlvbiIpKTsKLSAgICAgICAgdmFyIGFzc2VydGlvbnMgPSBoYXNfYXNzZXJ0aW9u
cygpOwotICAgICAgICB2YXIgaHRtbCA9ICI8aDI+RGV0YWlsczwvaDI+PHRhYmxlIGlkPSdyZXN1
bHRzJyAiICsgKGFzc2VydGlvbnMgPyAiY2xhc3M9J2Fzc2VydGlvbnMnIiA6ICIiICkgKyAiPiIg
KwotICAgICAgICAgICAgIjx0aGVhZD48dHI+PHRoPlJlc3VsdDwvdGg+PHRoPlRlc3QgTmFtZTwv
dGg+IiArCi0gICAgICAgICAgICAoYXNzZXJ0aW9ucyA/ICI8dGg+QXNzZXJ0aW9uPC90aD4iIDog
IiIpICsKLSAgICAgICAgICAgICI8dGg+TWVzc2FnZTwvdGg+PC90cj48L3RoZWFkPiIgKwotICAg
ICAgICAgICAgIjx0Ym9keT4iOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBodG1sICs9ICc8dHIgY2xhc3M9IicgKwotICAgICAg
ICAgICAgICAgIGVzY2FwZV9odG1sKHN0YXR1c19jbGFzcyhzdGF0dXNfdGV4dFt0ZXN0c1tpXS5z
dGF0dXNdKSkgKwotICAgICAgICAgICAgICAgICciPjx0ZD4nICsKLSAgICAgICAgICAgICAgICBl
c2NhcGVfaHRtbChzdGF0dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSArCi0gICAgICAgICAgICAg
ICAgIjwvdGQ+PHRkPiIgKwotICAgICAgICAgICAgICAgIGVzY2FwZV9odG1sKHRlc3RzW2ldLm5h
bWUpICsKLSAgICAgICAgICAgICAgICAiPC90ZD48dGQ+IiArCi0gICAgICAgICAgICAgICAgKGFz
c2VydGlvbnMgPyBlc2NhcGVfaHRtbChnZXRfYXNzZXJ0aW9uKHRlc3RzW2ldKSkgKyAiPC90ZD48
dGQ+IiA6ICIiKSArCi0gICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVzdHNbaV0ubWVzc2Fn
ZSA/IHRlc3RzW2ldLm1lc3NhZ2UgOiAiICIpICsKLSAgICAgICAgICAgICAgICAodGVzdHNbaV0u
c3RhY2sgPyAiPHByZT4iICsKLSAgICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVzdHNbaV0u
c3RhY2spICsKLSAgICAgICAgICAgICAgICAgIjwvcHJlPiI6ICIiKSArCi0gICAgICAgICAgICAg
ICAgIjwvdGQ+PC90cj4iOwotICAgICAgICB9Ci0gICAgICAgIGh0bWwgKz0gIjwvdGJvZHk+PC90
YWJsZT4iOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgbG9nLmxhc3RDaGlsZC5pbm5lckhU
TUwgPSBodG1sOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBsb2cuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhodG1sX25zLCAicCIpKQotICAgICAgICAg
ICAgICAgLnRleHRDb250ZW50ID0gIlNldHRpbmcgaW5uZXJIVE1MIGZvciB0aGUgbG9nIHRocmV3
IGFuIGV4Y2VwdGlvbi4iOwotICAgICAgICAgICAgbG9nLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUyh4aHRtbF9ucywgInByZSIpKQotICAgICAgICAgICAgICAgLnRleHRDb250
ZW50ID0gaHRtbDsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICAvKgotICAgICAqIFRlbXBsYXRl
IGNvZGUKLSAgICAgKgotICAgICAqIEEgdGVtcGxhdGUgaXMganVzdCBhIGphdmFzY3JpcHQgc3Ry
dWN0dXJlLiBBbiBlbGVtZW50IGlzIHJlcHJlc2VudGVkIGFzOgotICAgICAqCi0gICAgICogW3Rh
Z19uYW1lLCB7YXR0cl9uYW1lOmF0dHJfdmFsdWV9LCBjaGlsZDEsIGNoaWxkMl0KLSAgICAgKgot
ICAgICAqIHRoZSBjaGlsZHJlbiBjYW4gZWl0aGVyIGJlIHN0cmluZ3MgKHdoaWNoIGFjdCBsaWtl
IHRleHQgbm9kZXMpLCBvdGhlciB0ZW1wbGF0ZXMgb3IKLSAgICAgKiBmdW5jdGlvbnMgKHNlZSBi
ZWxvdykKLSAgICAgKgotICAgICAqIEEgdGV4dCBub2RlIGlzIHJlcHJlc2VudGVkIGFzCi0gICAg
ICoKLSAgICAgKiBbInt0ZXh0fSIsIHZhbHVlXQotICAgICAqCi0gICAgICogU3RyaW5nIHZhbHVl
cyBoYXZlIGEgc2ltcGxlIHN1YnN0aXR1dGlvbiBzeW50YXg7ICR7Zm9vfSByZXByZXNlbnRzIGEg
dmFyaWFibGUgZm9vLgotICAgICAqCi0gICAgICogSXQgaXMgcG9zc2libGUgdG8gZW1iZWQgbG9n
aWMgaW4gdGVtcGxhdGVzIGJ5IHVzaW5nIGEgZnVuY3Rpb24gaW4gYSBwbGFjZSB3aGVyZSBhCi0g
ICAgICogbm9kZSB3b3VsZCB1c3VhbGx5IGdvLiBUaGUgZnVuY3Rpb24gbXVzdCBlaXRoZXIgcmV0
dXJuIHBhcnQgb2YgYSB0ZW1wbGF0ZSBvciBudWxsLgotICAgICAqCi0gICAgICogSW4gY2FzZXMg
d2hlcmUgYSBzZXQgb2Ygbm9kZXMgYXJlIHJlcXVpcmVkIGFzIG91dHB1dCByYXRoZXIgdGhhbiBh
IHNpbmdsZSBub2RlCi0gICAgICogd2l0aCBjaGlsZHJlbiBpdCBpcyBwb3NzaWJsZSB0byBqdXN0
IHVzZSBhIGxpc3QKLSAgICAgKiBbbm9kZTEsIG5vZGUyLCBub2RlM10KLSAgICAgKgotICAgICAq
IFVzYWdlOgotICAgICAqCi0gICAgICogcmVuZGVyKHRlbXBsYXRlLCBzdWJzdGl0dXRpb25zKSAt
IHRha2UgYSB0ZW1wbGF0ZSBhbmQgYW4gb2JqZWN0IG1hcHBpbmcKLSAgICAgKiB2YXJpYWJsZSBu
YW1lcyB0byBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gZWl0aGVyIGEgRE9NIG5vZGUgb3IgYSBsaXN0
IG9mIERPTSBub2RlcwotICAgICAqCi0gICAgICogc3Vic3RpdHV0ZSh0ZW1wbGF0ZSwgc3Vic3Rp
dHV0aW9ucykgLSB0YWtlIGEgdGVtcGxhdGUgYW5kIHZhcmlhYmxlIG1hcHBpbmcgb2JqZWN0LAot
ICAgICAqIG1ha2UgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMgYW5kIHJldHVybiB0aGUgc3Vi
c3RpdHV0ZWQgdGVtcGxhdGUKLSAgICAgKgotICAgICAqLwotCi0gICAgZnVuY3Rpb24gaXNfc2lu
Z2xlX25vZGUodGVtcGxhdGUpCi0gICAgewotICAgICAgICByZXR1cm4gdHlwZW9mIHRlbXBsYXRl
WzBdID09PSAic3RyaW5nIjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdWJzdGl0dXRlKHRlbXBs
YXRlLCBzdWJzdGl0dXRpb25zKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZSA9
PT0gImZ1bmN0aW9uIikgewotICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gdGVtcGxhdGUo
c3Vic3RpdHV0aW9ucyk7Ci0gICAgICAgICAgICBpZiAoIXJlcGxhY2VtZW50KSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVy
biBzdWJzdGl0dXRlKHJlcGxhY2VtZW50LCBzdWJzdGl0dXRpb25zKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChpc19zaW5nbGVfbm9kZSh0ZW1wbGF0ZSkpIHsKLSAgICAgICAgICAgIHJldHVy
biBzdWJzdGl0dXRlX3NpbmdsZSh0ZW1wbGF0ZSwgc3Vic3RpdHV0aW9ucyk7Ci0gICAgICAgIH0K
LQotICAgICAgICByZXR1cm4gZmlsdGVyKG1hcCh0ZW1wbGF0ZSwgZnVuY3Rpb24oeCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnN0aXR1dGUoeCwgc3Vic3RpdHV0
aW9ucyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBmdW5jdGlvbih4KSB7cmV0dXJu
IHggIT09IG51bGw7fSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Vic3RpdHV0ZV9zaW5nbGUo
dGVtcGxhdGUsIHN1YnN0aXR1dGlvbnMpCi0gICAgewotICAgICAgICB2YXIgc3Vic3RpdHV0aW9u
X3JlID0gL1wkXHsoW14gfV0qKVx9L2c7Ci0KLSAgICAgICAgZnVuY3Rpb24gZG9fc3Vic3RpdHV0
aW9uKGlucHV0KSB7Ci0gICAgICAgICAgICB2YXIgY29tcG9uZW50cyA9IGlucHV0LnNwbGl0KHN1
YnN0aXR1dGlvbl9yZSk7Ci0gICAgICAgICAgICB2YXIgcnYgPSBbXTsKLSAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7IGkgKz0gMikgewotICAgICAgICAg
ICAgICAgIHJ2LnB1c2goY29tcG9uZW50c1tpXSk7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbXBv
bmVudHNbaSArIDFdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJ2LnB1c2goU3RyaW5nKHN1YnN0
aXR1dGlvbnNbY29tcG9uZW50c1tpICsgMV1dKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJ2OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVu
Y3Rpb24gc3Vic3RpdHV0ZV9hdHRycyhhdHRycywgcnYpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJ2WzFdID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRlbXBsYXRlWzFdKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGF0dHJzLmhhc093blByb3BlcnR5KG5hbWUpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciBuZXdfbmFtZSA9IGRvX3N1YnN0aXR1dGlvbihuYW1lKS5qb2lu
KCIiKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG5ld192YWx1ZSA9IGRvX3N1YnN0aXR1dGlv
bihhdHRyc1tuYW1lXSkuam9pbigiIik7Ci0gICAgICAgICAgICAgICAgICAgIHJ2WzFdW25ld19u
YW1lXSA9IG5ld192YWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdWJzdGl0dXRlX2NoaWxkcmVuKGNoaWxkcmVuLCBy
dikKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXSBpbnN0YW5jZW9m
IE9iamVjdCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBzdWJzdGl0
dXRlKGNoaWxkcmVuW2ldLCBzdWJzdGl0dXRpb25zKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNf
c2luZ2xlX25vZGUocmVwbGFjZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnYucHVzaChyZXBsYWNlbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZChydiwgcmVwbGFjZW1lbnQpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJ2LCBkb19zdWJzdGl0
dXRpb24oU3RyaW5nKGNoaWxkcmVuW2ldKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiBydjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBy
diA9IFtdOwotICAgICAgICBydi5wdXNoKGRvX3N1YnN0aXR1dGlvbihTdHJpbmcodGVtcGxhdGVb
MF0pKS5qb2luKCIiKSk7Ci0KLSAgICAgICAgaWYgKHRlbXBsYXRlWzBdID09PSAie3RleHR9Iikg
ewotICAgICAgICAgICAgc3Vic3RpdHV0ZV9jaGlsZHJlbih0ZW1wbGF0ZS5zbGljZSgxKSwgcnYp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3Vic3RpdHV0ZV9hdHRycyh0ZW1wbGF0
ZVsxXSwgcnYpOwotICAgICAgICAgICAgc3Vic3RpdHV0ZV9jaGlsZHJlbih0ZW1wbGF0ZS5zbGlj
ZSgyKSwgcnYpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJ2OwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIG1ha2VfZG9tX3NpbmdsZSh0ZW1wbGF0ZSwgZG9jKQotICAgIHsKLSAgICAgICAg
dmFyIG91dHB1dF9kb2N1bWVudCA9IGRvYyB8fCBkb2N1bWVudDsKLSAgICAgICAgdmFyIGVsZW1l
bnQ7Ci0gICAgICAgIGlmICh0ZW1wbGF0ZVswXSA9PT0gInt0ZXh0fSIpIHsKLSAgICAgICAgICAg
IGVsZW1lbnQgPSBvdXRwdXRfZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpOwotICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0ZW1wbGF0ZS5sZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgICAgIGVsZW1lbnQuZGF0YSArPSB0ZW1wbGF0ZVtpXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBvdXRwdXRfZG9jdW1lbnQuY3JlYXRl
RWxlbWVudE5TKHhodG1sX25zLCB0ZW1wbGF0ZVswXSk7Ci0gICAgICAgICAgICBmb3IgKHZhciBu
YW1lIGluIHRlbXBsYXRlWzFdKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRlbXBsYXRlWzFdLmhh
c093blByb3BlcnR5KG5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0
cmlidXRlKG5hbWUsIHRlbXBsYXRlWzFdW25hbWVdKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMjsgaSA8IHRlbXBsYXRlLmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRlbXBsYXRlW2ldIGluc3RhbmNlb2YgT2Jq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzdWJfZWxlbWVudCA9IG1ha2VfZG9tKHRl
bXBsYXRlW2ldKTsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChzdWJf
ZWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIHRleHRfbm9kZSA9IG91dHB1dF9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZW1wbGF0ZVtp
XSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQodGV4dF9ub2RlKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBy
ZXR1cm4gZWxlbWVudDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBtYWtlX2RvbSh0ZW1wbGF0ZSwg
c3Vic3RpdHV0aW9ucywgb3V0cHV0X2RvY3VtZW50KQotICAgIHsKLSAgICAgICAgaWYgKGlzX3Np
bmdsZV9ub2RlKHRlbXBsYXRlKSkgewotICAgICAgICAgICAgcmV0dXJuIG1ha2VfZG9tX3Npbmds
ZSh0ZW1wbGF0ZSwgb3V0cHV0X2RvY3VtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVy
biBtYXAodGVtcGxhdGUsIGZ1bmN0aW9uKHgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1ha2VfZG9tX3NpbmdsZSh4LCBvdXRwdXRfZG9jdW1lbnQpOwotICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlbmRlcih0ZW1wbGF0ZSwgc3Vic3RpdHV0
aW9ucywgb3V0cHV0X2RvY3VtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1ha2VfZG9tKHN1
YnN0aXR1dGUodGVtcGxhdGUsIHN1YnN0aXR1dGlvbnMpLCBvdXRwdXRfZG9jdW1lbnQpOwotICAg
IH0KLQotICAgIC8qCi0gICAgICogVXRpbGl0eSBmdW5jaW9ucwotICAgICAqLwotICAgIGZ1bmN0
aW9uIGFzc2VydChleHBlY3RlZF90cnVlLCBmdW5jdGlvbl9uYW1lLCBkZXNjcmlwdGlvbiwgZXJy
b3IsIHN1YnN0aXR1dGlvbnMpCi0gICAgewotICAgICAgICBpZiAodGVzdHMudGVzdHMubGVuZ3Ro
ID09PSAwKSB7Ci0gICAgICAgICAgICB0ZXN0cy5zZXRfZmlsZV9pc190ZXN0KCk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKGV4cGVjdGVkX3RydWUgIT09IHRydWUpIHsKLSAgICAgICAgICAgIHZh
ciBtc2cgPSBtYWtlX21lc3NhZ2UoZnVuY3Rpb25fbmFtZSwgZGVzY3JpcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLCBzdWJzdGl0dXRpb25zKTsKLSAgICAg
ICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcihtc2cpOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gQXNzZXJ0aW9uRXJyb3IobWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIHRo
aXMubWVzc2FnZSA9IG1lc3NhZ2U7Ci0gICAgICAgIHRoaXMuc3RhY2sgPSB0aGlzLmdldF9zdGFj
aygpOwotICAgIH0KLQotICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVh
dGUoRXJyb3IucHJvdG90eXBlKTsKLQotICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZS5nZXRf
c3RhY2sgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHN0YWNrID0gbmV3IEVycm9yKCkuc3Rh
Y2s7Ci0gICAgICAgIC8vIElFMTEgZG9lcyBub3QgaW5pdGlhbGl6ZSAnRXJyb3Iuc3RhY2snIHVu
dGlsIHRoZSBvYmplY3QgaXMgdGhyb3duLgotICAgICAgICBpZiAoIXN0YWNrKSB7Ci0gICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpOwotICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIHN0YWNrID0gZS5zdGFjazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHZhciBsaW5lcyA9IHN0YWNrLnNwbGl0KCJc
biIpOwotCi0gICAgICAgIC8vIENyZWF0ZSBhIHBhdHRlcm4gdG8gbWF0Y2ggc3RhY2sgZnJhbWVz
IG9yaWdpbmF0aW5nIHdpdGhpbiB0ZXN0aGFybmVzcy5qcy4gIFRoZXNlIGluY2x1ZGUgdGhlCi0g
ICAgICAgIC8vIHNjcmlwdCBVUkwsIGZvbGxvd2VkIGJ5IHRoZSBsaW5lL2NvbCAoZS5nLiwgJy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM6MTIwOjIxJykuCi0gICAgICAgIHZhciByZSA9IG5ldyBS
ZWdFeHAoKGdldF9zY3JpcHRfdXJsKCkgfHwgIlxcYnRlc3RoYXJuZXNzLmpzIikgKyAiOlxcZCs6
XFxkKyIpOwotCi0gICAgICAgIC8vIFNvbWUgYnJvd3NlcnMgaW5jbHVkZSBhIHByZWFtYmxlIHRo
YXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHRoZSBlcnJvciBvYmplY3QuICBTa2lwIHRoaXMgYnkK
LSAgICAgICAgLy8gYWR2YW5jaW5nIHVudGlsIHdlIGZpbmQgdGhlIGZpcnN0IHN0YWNrIGZyYW1l
IG9yaWdpbmF0aW5nIGZyb20gdGVzdGhhcm5lc3MuanMuCi0gICAgICAgIHZhciBpID0gMDsKLSAg
ICAgICAgd2hpbGUgKCFyZS50ZXN0KGxpbmVzW2ldKSAmJiBpIDwgbGluZXMubGVuZ3RoKSB7Ci0g
ICAgICAgICAgICBpKys7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUaGVuIHNraXAgdGhlIHRv
cCBmcmFtZXMgb3JpZ2luYXRpbmcgZnJvbSB0ZXN0aGFybmVzcy5qcyB0byBiZWdpbiB0aGUgc3Rh
Y2sgYXQgdGhlIHRlc3QgY29kZS4KLSAgICAgICAgd2hpbGUgKHJlLnRlc3QobGluZXNbaV0pICYm
IGkgPCBsaW5lcy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGkrKzsKLSAgICAgICAgfQotCi0gICAg
ICAgIC8vIFBhcmFub2lkIGNoZWNrIHRoYXQgd2UgZGlkbid0IHNraXAgYWxsIGZyYW1lcy4gIElm
IHNvLCByZXR1cm4gdGhlIG9yaWdpbmFsIHN0YWNrIHVubW9kaWZpZWQuCi0gICAgICAgIGlmIChp
ID49IGxpbmVzLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIHN0YWNrOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmV0dXJuIGxpbmVzLnNsaWNlKGkpLmpvaW4oIlxuIik7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gbWFrZV9tZXNzYWdlKGZ1bmN0aW9uX25hbWUsIGRlc2NyaXB0aW9uLCBlcnJv
ciwgc3Vic3RpdHV0aW9ucykKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIHAgaW4gc3Vic3RpdHV0
aW9ucykgewotICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbnMuaGFzT3duUHJvcGVydHkocCkp
IHsKLSAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25zW3BdID0gZm9ybWF0X3ZhbHVlKHN1YnN0
aXR1dGlvbnNbcF0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHZhciBub2Rl
X2Zvcm0gPSBzdWJzdGl0dXRlKFsie3RleHR9IiwgIiR7ZnVuY3Rpb25fbmFtZX06ICR7ZGVzY3Jp
cHRpb259IiArIGVycm9yXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVy
Z2Uoe2Z1bmN0aW9uX25hbWU6ZnVuY3Rpb25fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOihkZXNjcmlwdGlvbj9kZXNjcmlwdGlvbiAr
ICIgIjoiIil9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vi
c3RpdHV0aW9ucykpOwotICAgICAgICByZXR1cm4gbm9kZV9mb3JtLnNsaWNlKDEpLmpvaW4oIiIp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbHRlcihhcnJheSwgY2FsbGFibGUsIHRoaXNPYmop
IHsKLSAgICAgICAgdmFyIHJ2ID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJy
YXkubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChhcnJheS5oYXNPd25Qcm9wZXJ0eShp
KSkgewotICAgICAgICAgICAgICAgIHZhciBwYXNzID0gY2FsbGFibGUuY2FsbCh0aGlzT2JqLCBh
cnJheVtpXSwgaSwgYXJyYXkpOwotICAgICAgICAgICAgICAgIGlmIChwYXNzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJ2LnB1c2goYXJyYXlbaV0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcnY7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gbWFwKGFycmF5LCBjYWxsYWJsZSwgdGhpc09iaikKLSAgICB7Ci0gICAgICAgIHZhciBy
diA9IFtdOwotICAgICAgICBydi5sZW5ndGggPSBhcnJheS5sZW5ndGg7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChhcnJh
eS5oYXNPd25Qcm9wZXJ0eShpKSkgewotICAgICAgICAgICAgICAgIHJ2W2ldID0gY2FsbGFibGUu
Y2FsbCh0aGlzT2JqLCBhcnJheVtpXSwgaSwgYXJyYXkpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBydjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBleHRlbmQoYXJy
YXksIGl0ZW1zKQotICAgIHsKLSAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYXJy
YXksIGl0ZW1zKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFj
aywgdGhpc09iaikKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChhcnJheS5oYXNPd25Qcm9wZXJ0eShpKSkgewot
ICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc09iaiwgYXJyYXlbaV0sIGksIGFycmF5
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIG1lcmdl
KGEsYikKLSAgICB7Ci0gICAgICAgIHZhciBydiA9IHt9OwotICAgICAgICB2YXIgcDsKLSAgICAg
ICAgZm9yIChwIGluIGEpIHsKLSAgICAgICAgICAgIHJ2W3BdID0gYVtwXTsKLSAgICAgICAgfQot
ICAgICAgICBmb3IgKHAgaW4gYikgewotICAgICAgICAgICAgcnZbcF0gPSBiW3BdOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBydjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBleHBvc2Uob2Jq
ZWN0LCBuYW1lKQotICAgIHsKLSAgICAgICAgdmFyIGNvbXBvbmVudHMgPSBuYW1lLnNwbGl0KCIu
Iik7Ci0gICAgICAgIHZhciB0YXJnZXQgPSB0ZXN0X2Vudmlyb25tZW50Lmdsb2JhbF9zY29wZSgp
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBvbmVudHMubGVuZ3RoIC0gMTsgaSsr
KSB7Ci0gICAgICAgICAgICBpZiAoIShjb21wb25lbnRzW2ldIGluIHRhcmdldCkpIHsKLSAgICAg
ICAgICAgICAgICB0YXJnZXRbY29tcG9uZW50c1tpXV0gPSB7fTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHRhcmdldCA9IHRhcmdldFtjb21wb25lbnRzW2ldXTsKLSAgICAgICAgfQotICAg
ICAgICB0YXJnZXRbY29tcG9uZW50c1tjb21wb25lbnRzLmxlbmd0aCAtIDFdXSA9IG9iamVjdDsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpc19zYW1lX29yaWdpbih3KSB7Ci0gICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAncmFuZG9tX3Byb3AnIGluIHc7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgLyoqIFJldHVybnMgdGhlICdzcmMnIFVSTCBvZiB0aGUgZmly
c3QgPHNjcmlwdD4gdGFnIGluIHRoZSBwYWdlIHRvIGluY2x1ZGUgdGhlIGZpbGUgJ3Rlc3RoYXJu
ZXNzLmpzJy4gKi8KLSAgICBmdW5jdGlvbiBnZXRfc2NyaXB0X3VybCgpCi0gICAgewotICAgICAg
ICBpZiAoISgnZG9jdW1lbnQnIGluIHNlbGYpKSB7Ci0gICAgICAgICAgICByZXR1cm4gdW5kZWZp
bmVkOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Ny
aXB0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIHNyYzsKLSAgICAgICAgICAgIGlm
IChzY3JpcHRzW2ldLnNyYykgewotICAgICAgICAgICAgICAgIHNyYyA9IHNjcmlwdHNbaV0uc3Jj
OwotICAgICAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRzW2ldLmhyZWYpIHsKLSAgICAgICAgICAg
ICAgICAvL1NWRyBjYXNlCi0gICAgICAgICAgICAgICAgc3JjID0gc2NyaXB0c1tpXS5ocmVmLmJh
c2VWYWw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBtYXRjaGVzID0gc3JjICYm
IHNyYy5tYXRjaCgvXiguKlwvfCl0ZXN0aGFybmVzc1wuanMkLyk7Ci0gICAgICAgICAgICBpZiAo
bWF0Y2hlcykgewotICAgICAgICAgICAgICAgIHJldHVybiBzcmM7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICAvKiogUmV0
dXJucyB0aGUgVVJMIHBhdGggYXQgd2hpY2ggdGhlIGZpbGVzIGZvciB0ZXN0aGFybmVzcy5qcyBh
cmUgYXNzdW1lZCB0byByZXNpZGUgKGUuZy4sICcvcmVzb3VyY2VzLycpLgotICAgICAgICBUaGUg
cGF0aCBpcyBkZXJpdmVkIGZyb20gaW5zcGVjdGluZyB0aGUgJ3NyYycgb2YgdGhlIDxzY3JpcHQ+
IHRhZyB0aGF0IGluY2x1ZGVkICd0ZXN0aGFybmVzcy5qcycuICovCi0gICAgZnVuY3Rpb24gZ2V0
X2hhcm5lc3NfdXJsKCkKLSAgICB7Ci0gICAgICAgIHZhciBzY3JpcHRfdXJsID0gZ2V0X3Njcmlw
dF91cmwoKTsKLQotICAgICAgICAvLyBFeGNsdWRlIHRoZSAndGVzdGhhcm5lc3MuanMnIGZpbGUg
ZnJvbSB0aGUgcmV0dXJuZWQgcGF0aCwgYnV0ICcrIDEnIHRvIGluY2x1ZGUgdGhlIHRyYWlsaW5n
IHNsYXNoLgotICAgICAgICByZXR1cm4gc2NyaXB0X3VybCA/IHNjcmlwdF91cmwuc2xpY2UoMCwg
c2NyaXB0X3VybC5sYXN0SW5kZXhPZignLycpICsgMSkgOiB1bmRlZmluZWQ7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3VwcG9ydHNfcG9zdF9tZXNzYWdlKHcpCi0gICAgewotICAgICAgICB2YXIg
c3VwcG9ydHM7Ci0gICAgICAgIHZhciB0eXBlOwotICAgICAgICAvLyBHaXZlbiBJRSBpbXBsZW1l
bnRzIHBvc3RNZXNzYWdlIGFjcm9zcyBuZXN0ZWQgaWZyYW1lcyBidXQgbm90IGFjcm9zcwotICAg
ICAgICAvLyB3aW5kb3dzIG9yIHRhYnMsIHlvdSBjYW4ndCBpbmZlciBjcm9zcy1vcmlnaW4gY29t
bXVuaWNhdGlvbiBmcm9tIHRoZSBwcmVzZW5jZQotICAgICAgICAvLyBvZiBwb3N0TWVzc2FnZSBv
biB0aGUgY3VycmVudCB3aW5kb3cgb2JqZWN0IG9ubHkuCi0gICAgICAgIC8vCi0gICAgICAgIC8v
IFRvdWNoaW5nIHRoZSBwb3N0TWVzc2FnZSBwcm9wIG9uIGEgd2luZG93IGNhbiB0aHJvdyBpZiB0
aGUgd2luZG93IGlzCi0gICAgICAgIC8vIG5vdCBmcm9tIHRoZSBzYW1lIG9yaWdpbiBBTkQgcG9z
dCBtZXNzYWdlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhhdAotICAgICAgICAvLyBicm93c2VyLiBT
byBqdXN0IGRvaW5nIGFuIGV4aXN0ZW5jZSB0ZXN0IGhlcmUgd29uJ3QgZG8sIHlvdSBhbHNvIG5l
ZWQKLSAgICAgICAgLy8gdG8gd3JhcCBpdCBpbiBhIHRyeS4uY2FjdGggYmxvY2suCi0gICAgICAg
IHRyeSB7Ci0gICAgICAgICAgICB0eXBlID0gdHlwZW9mIHcucG9zdE1lc3NhZ2U7Ci0gICAgICAg
ICAgICBpZiAodHlwZSA9PT0gImZ1bmN0aW9uIikgewotICAgICAgICAgICAgICAgIHN1cHBvcnRz
ID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gSUU4IHN1cHBvcnRzIHBv
c3RNZXNzYWdlLCBidXQgaW1wbGVtZW50cyBpdCBhcyBhIGhvc3Qgb2JqZWN0IHdoaWNoCi0gICAg
ICAgICAgICAvLyByZXR1cm5zICJvYmplY3QiIGFzIGl0cyBgdHlwZW9mYC4KLSAgICAgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT09ICJvYmplY3QiKSB7Ci0gICAgICAgICAgICAgICAgc3VwcG9ydHMg
PSB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYXNl
IHdoZXJlIHBvc3RNZXNzYWdlIGlzbid0IHN1cHBvcnRlZCBBTkQgYWNjZXNzaW5nIGEKLSAgICAg
ICAgICAgIC8vIHdpbmRvdyBwcm9wZXJ0eSBhY3Jvc3Mgb3JpZ2lucyBkb2VzIE5PVCB0aHJvdyAo
ZS5nLiBvbGQgU2FmYXJpIGJyb3dzZXIpLgotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgc3VwcG9ydHMgPSBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2FzZSB3aGVyZSBwb3N0TWVzc2FnZSBp
c24ndCBzdXBwb3J0ZWQgQU5EIGFjY2Vzc2luZyBhCi0gICAgICAgICAgICAvLyB3aW5kb3cgcHJv
cGVydHkgYWNyb3NzIG9yaWdpbnMgdGhyb3dzIChlLmcuIG9sZCBGaXJlZm94IGJyb3dzZXIpLgot
ICAgICAgICAgICAgc3VwcG9ydHMgPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
c3VwcG9ydHM7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0dXAgZ2xvYmFscwotICAgICAq
LwotCi0gICAgdmFyIHRlc3RzID0gbmV3IFRlc3RzKCk7Ci0KLSAgICBhZGRFdmVudExpc3RlbmVy
KCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgaWYgKHRlc3RzLmZpbGVfaXNfdGVzdCkg
ewotICAgICAgICAgICAgdmFyIHRlc3QgPSB0ZXN0cy50ZXN0c1swXTsKLSAgICAgICAgICAgIGlm
ICh0ZXN0LnBoYXNlID49IHRlc3QucGhhc2VzLkhBU19SRVNVTFQpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0ZXN0LnNldF9zdGF0dXModGVz
dC5GQUlMLCBlLm1lc3NhZ2UsIGUuc3RhY2spOwotICAgICAgICAgICAgdGVzdC5waGFzZSA9IHRl
c3QucGhhc2VzLkhBU19SRVNVTFQ7Ci0gICAgICAgICAgICB0ZXN0LmRvbmUoKTsKLSAgICAgICAg
ICAgIGRvbmUoKTsKLSAgICAgICAgfSBlbHNlIGlmICghdGVzdHMuYWxsb3dfdW5jYXVnaHRfZXhj
ZXB0aW9uKSB7Ci0gICAgICAgICAgICB0ZXN0cy5zdGF0dXMuc3RhdHVzID0gdGVzdHMuc3RhdHVz
LkVSUk9SOwotICAgICAgICAgICAgdGVzdHMuc3RhdHVzLm1lc3NhZ2UgPSBlLm1lc3NhZ2U7Ci0g
ICAgICAgICAgICB0ZXN0cy5zdGF0dXMuc3RhY2sgPSBlLnN0YWNrOwotICAgICAgICB9Ci0gICAg
fSk7Ci0KLSAgICB0ZXN0X2Vudmlyb25tZW50Lm9uX3Rlc3RzX3JlYWR5KCk7Ci0KLX0pKCk7Ci0v
LyB2aW06IHNldCBleHBhbmR0YWIgc2hpZnR3aWR0aD00IHRhYnN0b3A9NDoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU1NjBjOTFiMzYwZjcyNTIxOTk0ZTA1OTk5MDA5ZTBjNTY4OGM5ZjIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxp
bmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw5MyArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciB2ZW5k
b3JzIHRvIGltcGxlbWVudAotICogY29kZSBuZWVkZWQgdG8gaW50ZWdyYXRlIHRlc3RoYXJuZXNz
LmpzIHRlc3RzIHdpdGggdGhlaXIgb3duIHRlc3Qgc3lzdGVtcy4KLSAqCi0gKiBUeXBpY2FsbHkg
c3VjaCBpbnRlZ3JhdGlvbiB3aWxsIGF0dGFjaCBjYWxsYmFja3Mgd2hlbiBlYWNoIHRlc3QgaXMK
LSAqIGhhcyBydW4sIHVzaW5nIGFkZF9yZXN1bHRfY2FsbGJhY2soY2FsbGJhY2sodGVzdCkpLCBv
ciB3aGVuIHRoZSB3aG9sZSB0ZXN0IGZpbGUgaGFzCi0gKiBjb21wbGV0ZWQsIHVzaW5nIGFkZF9j
b21wbGV0aW9uX2NhbGxiYWNrKGNhbGxiYWNrKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykpLgotICoK
LSAqIEZvciBtb3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyBh
bmQgdGhlCi0gKiBwYXJhbWV0ZXJzIHRoZXkgYXJlIGNhbGxlZCB3aXRoIHNlZSB0ZXN0aGFybmVz
cy5qcwotICovCi0KLS8vIFNldHVwIGZvciBXZWJLaXQgSmF2YVNjcmlwdCB0ZXN0cwotaWYgKHNl
bGYudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3Mo
KTsKLSAgICAvLyBMZXQncyByZXN0cmljdCBjYWxsaW5nIHRlc3RoYXJuZXNzIHRpbWVvdXQoKSB0
byB3cHRzZXJ2ZSB0ZXN0cyBmb3IgdGhlIG1vbWVudC4KLSAgICAvLyBUaGF0IHdpbGwgbGltaXQg
dGhlIGltcGFjdCB0byBhIHNtYWxsIG51bWJlciBvZiB0ZXN0cy4KLSAgICAvLyBUaGUgcmlzayBp
cyB0aGF0IHRlc3RoYXJuZXNzIHRpbWVvdXQoKSBtaWdodCBiZSBjYWxsZWQgdG8gbGF0ZSBvbiBz
bG93IGJvdHMgdG8gZmluaXNoIHByb3Blcmx5LgotICAgIGlmICh0ZXN0UnVubmVyLnRpbWVvdXQg
JiYgbG9jYXRpb24ucG9ydCA9PSA4ODAwKQotICAgICAgICBzZXRUaW1lb3V0KHRpbWVvdXQsIHRl
c3RSdW5uZXIudGltZW91dCAqIDAuOSk7Ci19Ci0KLS8vIEZ1bmN0aW9uIHVzZWQgdG8gY29udmVy
dCB0aGUgdGVzdCBzdGF0dXMgY29kZSBpbnRvCi0vLyB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmcK
LWZ1bmN0aW9uIGNvbnZlcnRSZXN1bHQocmVzdWx0U3RhdHVzKQotewotICAgIGlmKHJlc3VsdFN0
YXR1cyA9PSAwKQotICAgICAgICByZXR1cm4oIlBBU1MiKTsKLSAgICBlbHNlIGlmKHJlc3VsdFN0
YXR1cyA9PSAxKQotICAgICAgICByZXR1cm4oIkZBSUwiKTsKLSAgICBlbHNlIGlmKHJlc3VsdFN0
YXR1cyA9PSAyKQotICAgICAgICByZXR1cm4oIlRJTUVPVVQiKTsKLSAgICBlbHNlCi0gICAgICAg
IHJldHVybigiTk9UUlVOIik7Ci19Ci0KLWlmIChzZWxmLnRlc3RSdW5uZXIpIHsKLSAgICAvKiBE
aXNhYmxlIHRoZSBkZWZhdWx0IG91dHB1dCBvZiB0ZXN0aGFybmVzcy5qcy4gIFRoZSBkZWZhdWx0
IG91dHB1dCBmb3JtYXRzCi0gICAgKiAgdGVzdCByZXN1bHRzIGludG8gYW4gSFRNTCB0YWJsZS4g
IFdoZW4gdGhhdCB0YWJsZSBpcyBkdW1wZWQgYXMgdGV4dCwgbm8KLSAgICAqICBzcGFjaW5nIGJl
dHdlZW4gY2VsbHMgaXMgcHJlc2VydmVkLCBhbmQgaXQgaXMgdGhlcmVmb3JlIG5vdCByZWFkYWJs
ZS4gQnkKLSAgICAqICBzZXR0aW5nIG91dHB1dCB0byBmYWxzZSwgdGhlIEhUTUwgdGFibGUgd2ls
bCBub3QgYmUgY3JlYXRlZAotICAgICovCi0gICAgc2V0dXAoeyJvdXRwdXQiOiBmYWxzZSwgImV4
cGxpY2l0X3RpbWVvdXQiOiB0cnVlfSk7Ci0KLSAgICAvKiAgVXNpbmcgYSBjYWxsYmFjayBmdW5j
dGlvbiwgdGVzdCByZXN1bHRzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHBhZ2UgaW4gYSAKLSAgICAq
ICAgbWFubmVyIHRoYXQgYWxsb3dzIGR1bXBBc1RleHQgdG8gcHJvZHVjZSByZWFkYWJsZSB0ZXN0
IHJlc3VsdHMKLSAgICAqLwotICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0
ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKLSAgICAgICAgLy8gV2FpdCBmb3IgYW55IG90aGVyIGNv
bXBsZXRpb24gY2FsbGJhY2tzCi0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOwotICAg
ICAgICAgICAgdmFyIHJlc3VsdFN0ciA9ICJcbiI7Ci0KLSAgICAgICAgICAgIC8vIFNhbml0aXpl
cyB0aGUgZ2l2ZW4gdGV4dCBmb3IgZGlzcGxheSBpbiB0ZXN0IHJlc3VsdHMuCi0gICAgICAgICAg
ICBmdW5jdGlvbiBzYW5pdGl6ZSh0ZXh0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0ZXh0KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXDAvZywgIlxcMCIpOwotICAgICAgICAg
ICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xyL2csICJcXHIiKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgaWYoaGFybmVzc19zdGF0dXMuc3RhdHVzICE9IDApCi0gICAgICAgICAg
ICAgICAgcmVzdWx0U3RyICs9ICJIYXJuZXNzIEVycm9yICgiICsgY29udmVydFJlc3VsdChoYXJu
ZXNzX3N0YXR1cy5zdGF0dXMpICsgIiksIG1lc3NhZ2UgPSAiICsgaGFybmVzc19zdGF0dXMubWVz
c2FnZSArICJcblxuIjsKLQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gc2FuaXRpemUodGVz
dHNbaV0ubWVzc2FnZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHRlc3RzW2ldLnN0YXR1cyA9PSAx
ICYmICF0ZXN0c1tpXS5kdW1wU3RhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3Zl
IHN0YWNrIGZvciBmYWlsZWQgdGVzdHMgZm9yIHByb3BlciBzdHJpbmcgY29tcGFyaXNvbiB3aXRo
b3V0IGZpbGUgcGF0aHMuCi0gICAgICAgICAgICAgICAgICAgIC8vIEZvciBhIHRlc3QgdG8gZHVt
cCB0aGUgc3RhY2sgc2V0IGl0cyBkdW1wU3RhY2sgYXR0cmlidXRlIHRvIHRydWUuCi0gICAgICAg
ICAgICAgICAgICAgIHZhciBzdGFja0luZGV4ID0gbWVzc2FnZS5pbmRleE9mKCIoc3RhY2s6Iik7
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzdGFja0luZGV4ID4gMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnN1YnN0cigwLCBzdGFja0luZGV4KTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmVzdWx0U3RyICs9IGNvbnZlcnRSZXN1bHQo
dGVzdHNbaV0uc3RhdHVzKSArICIgIiArIHNhbml0aXplKHRlc3RzW2ldLm5hbWUpICsgIiAiICsg
bWVzc2FnZSArICJcbiI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJlc3VsdHMuaW5u
ZXJUZXh0ID0gcmVzdWx0U3RyOwotICAgICAgICAgICAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJsb2ciKTsKLSAgICAgICAgICAgIGlmIChsb2cpCi0gICAgICAgICAgICAgICAg
bG9nLmFwcGVuZENoaWxkKHJlc3VsdHMpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdWx0cyk7Ci0KLSAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9LCAwKTsKLSAgICB9KTsKLQotICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFJlc291cmNl
VGltaW5nU3VwcG9ydCh0cnVlKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYzVkZjcyNjU3NzFkYzY4Y2MyZmE0MDY2MjZiZWRjMWQzMGE3ZDFjNy4u
ODNjYzJiMTNlZDAxZTIzMDQwZDE5ZTg0OGYxYWQwOGRiNjc1OTBiYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY1NywxOCArNjU3LDYgQEAgd2Via2l0
Lm9yZy9iLzE1NjE0OCBzdmcvdGV4dC90ZXh0LXZrZXJuLnN2ZyBbIEZhaWx1cmUgXQogCiAjIFNp
bmNlIHIyMDAzMjAgcmVzb3VyY2UtdGltaW5nIGZlYXR1cmUgaXMgYSBydW50aW1lIGZsYWcuCiB3
ZWJraXQub3JnL2IvMTU4NjE3IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1wZXJm
b3JtYW5jZS1yZXNvdXJjZS10aW1pbmcuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE1
ODYxNyBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRp
bWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfY29ubmVjdGlvbl9yZXVzZS5odG1sIFsgVGltZW91dCBd
Ci13ZWJraXQub3JnL2IvMTU4NjE3IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9H
b29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pZ25vcmVfZGF0YV91cmwu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE1ODYxNyBodHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2Vf
aWdub3JlX2ZhaWx1cmVzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNTg2MTcgaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRt
bC90ZXN0X3Jlc291cmNlX3JlcGFyZW50aW5nLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xNTg2MTcgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJj
ZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3NjcmlwdF90eXBlcy5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTU4NjE3IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX2NsZWFyTWFya3MuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzE1ODYxNyBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19jbGVhck1lYXN1cmVzLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNTg2MTcgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfZW50cnlfdHlwZS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTU4NjE3IGh0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9JbnRlbC91c2VyLXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21hcmsuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE1ODYxNyBodHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcvdGVzdF91c2VyX3RpbWluZ19tZWFzdXJlX2Fz
c29jaWF0ZV93aXRoX25hdmlnYXRpb25fdGltaW5nLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8xNTg2MTcgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXIt
dGltaW5nL3Rlc3RfdXNlcl90aW1pbmdfbWVhc3VyZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMTU4NjE3IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91c2Vy
LXRpbWluZy90ZXN0X3VzZXJfdGltaW5nX21ldGhvZF9leGlzdC5odG1sIFsgRmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xNjAwMjQgcGxhdGZvcm0vZ3RrL3Njcm9sbGJhcnMvbWFpbi1mcmFtZS1z
Y3JvbGxiYXItaG9yaXpvbnRhbC13aGVlbC1zY3JvbGwuaHRtbCBbIEZhaWx1cmUgXQogCkBAIC05
NjIsMTQgKzk1MCwxMCBAQCB3ZWJraXQub3JnL2IvMTI2NTIzIHBlcmYvYWNjZXNzaWJpbGl0eS10
aXRsZS11aS1lbGVtZW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTI3
MjgwIG1lZGlhL2F1ZGlvLWNvbmN1cnJlbnQtc3VwcG9ydGVkLmh0bWwgWyBGYWlsdXJlIFRpbWVv
dXQgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xMjc2ODIgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9h
cHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX2F0dHJpYnV0ZXNfb3Jk
ZXIuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi0KIHdlYmtpdC5vcmcvYi8xMjc3NDIgZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9u
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTI3NzQ1IGZhc3QvcGFyc2Vy
L2RvY3VtZW50LXdyaXRlLWJhc2ljLmh0bWwgWyBDcmFzaCBQYXNzIF0KIAotd2Via2l0Lm9yZy9i
LzEyNzczMyBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNl
LXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfZHluYW1pY19pbnNlcnRpb24uaHRtbCBbIEZhaWx1
cmUgUGFzcyBdCi0KIHdlYmtpdC5vcmcvYi8xMjc3MzUgbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdl
LXdpdGgtbWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogCiAj
IEZsYWtleSBvbiBib3RoIFNub3cgTGVvcGFyZCBhbmQgV2luZG93cyA3CkBAIC0xMDE0LDcgKzk5
OCw2IEBAIEJ1ZyhHVEspIGZhc3QvbG9hZGVyL2ZyYWdtZW50LWFmdGVyLXJlZGlyZWN0LWdldHMt
YmFjay1lbnRyeS5odG1sIFsgRmFpbHVyZSBQYXNzCiBCdWcoR1RLKSBmYXN0L3dyaXRpbmctbW9k
ZS9qYXBhbmVzZS1ydWJ5LWhvcml6b250YWwtYnQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiBCdWco
R1RLKSBmYXN0L3dyaXRpbmctbW9kZS9qYXBhbmVzZS1ydWJ5LXZlcnRpY2FsLWxyLmh0bWwgWyBG
YWlsdXJlIFBhc3MgXQogQnVnKEdUSykgZmFzdC93cml0aW5nLW1vZGUvamFwYW5lc2UtcnVieS12
ZXJ0aWNhbC1ybC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLUJ1ZyhHVEspIGh0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNl
X2F0dHJpYnV0ZXNfZXhpc3RfaW5fb2JqZWN0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0
Lm9yZy9iLzEzMTUzMyBtZWRpYS90cmFjay90cmFjay1yZW1vdmUtYWN0aXZlLWN1ZS1jcmFzaC5o
dG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzE1MzQgbWVkaWEvbWVkaWEtZW5k
ZWQuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTMxNTM1IG1lZGlhL2F1ZGlv
LW1wZWctc3VwcG9ydGVkLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQpAQCAtMTg3Myw4ICsxODU2LDYg
QEAgQnVnKEdUSykgaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVs
bC1vbi1yZWRpcmVjdC5odG1sIFsgRmFpbHUKIEJ1ZyhHVEspIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci94c3MtZmlsdGVyLWJ5cGFzcy1iaWc1Lmh0bWwgWyBGYWlsdXJlIF0KIEJ1ZyhH
VEspIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci94c3MtZmlsdGVyLWJ5cGFzcy1zamlz
Lmh0bWwgWyBGYWlsdXJlIF0KIAotQnVnKEdUSykgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQotCiBCdWcoR1RLKSBmYXN0L2Jh
Y2tncm91bmRzL2JhY2tncm91bmQtcG9zaXRpb24tcGFyc2luZy5odG1sIFsgRmFpbHVyZSBdCiAK
IEJ1ZyhHVEspIGZhc3QvY3NzL3N0aWNreS9zdGlja3ktdG9wLXpvb21lZC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCkBAIC0yMTA4LDEzICsyMDg5LDYgQEAgd2Via2l0Lm9yZy9iLzM5NzI1IGZh
c3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsgU2tpcCBdCiAjIExlYWtp
bmcgc3RhdGUgaW50byB0aGUgbmV4dCB0ZXN0LgogI3dlYmtpdC5vcmcvYi84NTUyMiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3NhbmRib3hlZC1pZnJhbWUtZm9ybS10b3AuaHRtbCBbIFNraXAgXQogCi13
ZWJraXQub3JnL2IvMTAzOTI3IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRl
bC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY3Jvc3Nfb3JpZ2luX3Jlc291
cmNlX3JlcXVlc3QuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEwMzkyNyBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTAzOTI3IGh0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9h
dHRyaWJ1dGVfb3JkZXIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEwMzkyNyBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1s
L3Rlc3RfcmVzb3VyY2VfZnJhbWVfaW5pdGlhdG9yX3R5cGUuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzEwMzkyNyBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vR29vZ2xl
L3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfaW5pdGlhdG9yX3R5cGVzLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDM5MjcgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3JlZGly
ZWN0cy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xMDcxMTggZmFzdC9jYW52YXMv
Y2FudmFzLXF1YWRyYXRpYy1zYW1lLWVuZHBvaW50Lmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0
Lm9yZy9iLzEwODk3MyBmYXN0L2Nzcy9uZWdhdGl2ZS10ZXh0LWluZGVudC1pbi1pbmxpbmUtYmxv
Y2suaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpAQCAtMjEzMiwxMCArMjEwNiw2IEBAIHdlYmtp
dC5vcmcvYi8xMTIyMjggc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi85OTg5MyBzdmcvYW5pbWF0aW9ucy9tb3pp
bGxhL2FuaW1hdGVNb3Rpb24tbXBhdGgtdGFyZ2V0Q2hhbmdlLTEuc3ZnIFsgSW1hZ2VPbmx5RmFp
bHVyZSBQYXNzIF0KIAotIyBUaW1pbmcgb3V0IGJlY2F1c2Ugb2Ygd2Via2l0Lm9yZy9iLzE1ODYx
Nwotd2Via2l0Lm9yZy9iLzExMzc3MiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
R29vZ2xlL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfaWZyYW1lX3NlbGZfbmF2
aWdhdGlvbi5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8xMTM3NzIgaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcvaHRt
bC90ZXN0X3Jlc291cmNlX2NhY2hlZC5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IF0KLQogd2Via2l0
Lm9yZy9iLzExNTAyNSBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbW91c2UtZXZlbnQtY29uc3Ry
dWN0b3IuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExNTAyNSBmYXN0L2V2ZW50cy9j
b25zdHJ1Y3RvcnMvd2hlZWwtZXZlbnQtY29uc3RydWN0b3IuaHRtbCBbIEZhaWx1cmUgXQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMWM4NmZhZmM2Njc1ZWY2NDk4NmQyMGI3YjliNDRkNDhiNTI0YjU5OC4uZDE2MGIy
MzY5MTcyODBlZjU5YjQ3YjJkZTVhYjliYmIwOThmYmM5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg1LDkgKzE4
NSw2IEBAIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJlbW92ZWQtc291cmNlLWJ1ZmZlci5odG1s
IFsgU2tpcCBdCiAjIFgtQ29udGVudC1UeXBlLU9wdGlvbnMgKEVOQUJMRV9OT1NOSUZGKSBpcyBu
b3QgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi8xMzY0NTIgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50VHlwZU9wdGlvbnMKIAotIyB3ZWJraXQub3JnL2IvNjExMzgsIHdlYmtpdC5vcmcvYi84NDg5
Mywgd2Via2l0Lm9yZy9iLzEzMzMyMQotaHR0cC90ZXN0cy93M2Mvd2VicGVyZgotCiAjIEluZGV4
ZWREQiB0ZXN0cyBoYXZlIG51bWVyb3VzIHVuZXhwZWN0ZWQgZmFpbHVyZXMgb24gaU9TCiB3ZWJr
aXQub3JnL2IvMTQ0NDc1IHN0b3JhZ2UvaW5kZXhlZGRiCiAKQEAgLTI3MzYsNCArMjczMyw0IEBA
IHdlYmtpdC5vcmcvYi8xNjM2MzIgZmFzdC90ZXh0L3ZhcmlhdGlvbnMvZ2V0Q29tcHV0ZWRTdHls
ZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU4ODM2IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhIFsgU2tpcCBdCiAKICMgT25seSBNYWMgaGFzIGlt
cGxlbWVudGVkIERpY3Rpb25hcnlMb29rdXAKLWZhc3QvbGF5ZXJzL3ByZXZlbnQtaGl0LXRlc3Qt
ZHVyaW5nLWxheW91dC5odG1sIFsgU2tpcCBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
ZmFzdC9sYXllcnMvcHJldmVudC1oaXQtdGVzdC1kdXJpbmctbGF5b3V0Lmh0bWwgWyBTa2lwIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzQ5ZjhiNmEy
ZjE4MWVhNzEwMjIwY2U1ZjFjOGJlNjRkZTIwY2M3NC4uMTUxNDFiZmNjNmRkZjY1NzQ1MGE0MjY4
ODk3NWUwMDA2MTdmMTU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE4MCw5ICsxODAsNiBAQCBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLXNldExvY2FsRGVzY3JpcHRpb24tb2ZmZXIuaHRtbCBbIFNraXAgXQogIyBEaXJlY3Rvcnkg
dXBsb2FkIGlzIG5vdCBlbmFibGVkLgogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtZGlyZWN0
b3J5LXVwbG9hZC5odG1sCiAKLSMgd2Via2l0Lm9yZy9iLzYxMTM4LCB3ZWJraXQub3JnL2IvODQ4
OTMsIHdlYmtpdC5vcmcvYi8xMzMzMjEKLWh0dHAvdGVzdHMvdzNjL3dlYnBlcmYgWyBTa2lwIF0K
LQogIyBQZXJmIHRlc3RzIGFyZSB2ZXJ5IGZsYWt5LCBiZWNhdXNlIHRoZXkgcnVuIGluIHBhcmFs
bGVsIHdpdGggb3RoZXIgdGVzdHMuCiBwZXJmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggNTQ5NDE5ZjQ3ZWNjYjBjMTU4NTlmYTQ2YzNiZmFiZjI5MjQ1
YTU5Yy4uZTVmYzdkYjJlZDJiOGFmYTBmYjAzNjE3Y2NhNmQzYzA0MWQyNzNlYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3Miw3ICszNzIsNiBAQCB3
ZWJraXQub3JnL2IvNDI0MzUgaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1yZXNvbHV0aW9uLmh0
bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi80MjQzNSBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5n
LXNsb3ctbG9hZC5waHAgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi80MjQzNSBodHRwL3Rlc3RzL21p
c2Mvd2VidGltaW5nLXNzbC5waHAgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi80MjQzNSBodHRwL3Rl
c3RzL21pc2Mvd2VidGltaW5nLXR3by1yZWRpcmVjdHMucGhwIFsgU2tpcCBdCi13ZWJraXQub3Jn
L2IvNDI0MzUgaHR0cC90ZXN0cy93M2Mvd2VicGVyZiBbIFNraXAgXQogCiAjIFRPRE8gQXBwbGlj
YXRpb24gQ2FjaGUgUXVvdGFzCiB3ZWJraXQub3JnL2IvNDM0NTggaHR0cC90ZXN0cy9hcHBjYWNo
ZS9vcmlnaW4tcXVvdGEuaHRtbCBbIFNraXAgXQpAQCAtNTc3LDEyICs1NzYsNiBAQCB3ZWJraXQu
b3JnL2IvMTQwNTE4IFsgRGVidWcgXSBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWF1dG9zY3Jv
bGwuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0MDUxOCBbIFJlbGVhc2UgXSBmYXN0L2V2
ZW50cy9kcmFnLWFuZC1kcm9wLWF1dG9zY3JvbGwuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9ldmVu
dHMvY2xlYXItZHJhZy1zdGF0ZS5odG1sIFsgRmFpbHVyZSBdCiAKLSMgVE9ETyBVc2VyIFRpbWlu
ZyBpcyBub3QgZW5hYmxlZCB5ZXQuIHNvIHNraXAgaXQuCi13ZWJraXQub3JnL2IvODQ4OTMgaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nIFsgU2tpcCBd
Ci0KLSMgVE9ETyBSZXNvdXJjZSBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCi13
ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQotCiAjIE5lZWQgc3VwcG9ydCBmb3IgUmVzb3VyY2VI
YW5kbGU6OmRpZENoYW5nZVByaW9yaXR5IGFuZCBEUlQgc3VwcG9ydAogd2Via2l0Lm9yZy9iLzEx
MTAxNiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS5odG1s
IFsgU2tpcCBdICMgQ3Jhc2gKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>