<?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>137245</bug_id>
          
          <creation_ts>2014-09-29 21:11:08 -0700</creation_ts>
          <short_desc>It should be fun and easy to run every possible JavaScript benchmark from the command line</short_desc>
          <delta_ts>2014-09-30 14:12:59 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>atrick</cc>
    
    <cc>barraclough</cc>
    
    <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>juergen</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038146</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-29 21:11:08 -0700</bug_when>
    <thetext>We previously had Tools/Scripts/bencher.  Then we stopped adding things to it because we weren&apos;t sure about the licensing of things like Kraken and Octane.  Various people ended up having their own private scripts for doing benchmark runs, and didn&apos;t share them in the open source community, because of fears about the shady licensing of the benchmarks suites that they were running.

We should fix this by having a script that just takes a configuration file with paths to the various benchmark scripts that cannot be safely checked into the WebKit repository.  It&apos;s up to the person running the benchmarks to download the benchmark suites from wherever they can find them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038149</commentid>
    <comment_count>1</comment_count>
      <attachid>238908</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-29 21:32:16 -0700</bug_when>
    <thetext>Created attachment 238908
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038159</commentid>
    <comment_count>2</comment_count>
      <attachid>238908</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-09-30 00:05:10 -0700</bug_when>
    <thetext>Comment on attachment 238908
the patch

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

In initial testing, it seems to work exactly as expected. I&apos;ll be using it more extensively as I test the performance of my upcoming DFG patch and I&apos;ll let you know if I run into any problems.

Thanks :)

&gt; Tools/Scripts/run-jsc-benchmarks:275
&gt; +  puts &quot;of the form Conf#&lt;n&gt; will be ascribed to the configuration automatically.&quot;

Maybe it&apos;s worth also adding in that each vm can be given a set of specific CLI options just for that vm, because I didn&apos;t know this until you mentioned it to me.

Maybe something like:
...
or of the string of the form &lt;name&gt;:&lt;options&gt;:&lt;path&gt; or &lt;name&gt;:&lt;path&gt;
where &lt;path&gt; is the path to the executable, &lt;options&gt; are the command line options you want passed into this specific vm (i.e, JSC_useJIT=0), and &lt;name&gt; is the name that you would like to give the configuration for the purpose of reporting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038335</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-30 14:10:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 238908 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238908&amp;action=review
&gt; 
&gt; In initial testing, it seems to work exactly as expected. I&apos;ll be using it more extensively as I test the performance of my upcoming DFG patch and I&apos;ll let you know if I run into any problems.
&gt; 
&gt; Thanks :)
&gt; 
&gt; &gt; Tools/Scripts/run-jsc-benchmarks:275
&gt; &gt; +  puts &quot;of the form Conf#&lt;n&gt; will be ascribed to the configuration automatically.&quot;
&gt; 
&gt; Maybe it&apos;s worth also adding in that each vm can be given a set of specific CLI options just for that vm, because I didn&apos;t know this until you mentioned it to me.
&gt; 
&gt; Maybe something like:
&gt; ...
&gt; or of the string of the form &lt;name&gt;:&lt;options&gt;:&lt;path&gt; or &lt;name&gt;:&lt;path&gt;
&gt; where &lt;path&gt; is the path to the executable, &lt;options&gt; are the command line options you want passed into this specific vm (i.e, JSC_useJIT=0), and &lt;name&gt; is the name that you would like to give the configuration for the purpose of reporting.

Yup, I added some text about this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038339</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-30 14:12:59 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/174123</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238908</attachid>
            <date>2014-09-29 21:32:16 -0700</date>
            <delta_ts>2014-09-30 09:49:48 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>192819</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzQwOTUpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkxIEBACisyMDE0LTA5LTI5ICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGZ1
biBhbmQgZWFzeSB0byBydW4gZXZlcnkgcG9zc2libGUgSmF2YVNjcmlwdCBiZW5jaG1hcmsgZnJv
bSB0aGUgY29tbWFuZCBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzcyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyB0aGUgc2NhZmZvbGRpbmcgZm9yIHJ1bm5pbmcg
T2N0YW5lIHZlcnNpb24gMiBpbnNpZGUgcnVuLWpzYy1iZW5jaG1hcmtzLgorICAgICAgICBJbiB0
aGUgZnV0dXJlIHdlIHNob3VsZCBqdXN0IGxhbmQgT2N0YW5lMiBpbiB0aGlzIGRpcmVjdG9yeSwg
YW5kIHJ1bi1qc2MtYmVuY2htYXJrcworICAgICAgICBzaG91bGQgYmUgY2hhbmdlZCB0byBwb2lu
dCBkaXJlY3RseSBhdCB0aGlzIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHJlcXVpcmluZyB0aGUKKyAg
ICAgICAgT2N0YW5lIHBhdGggdG8gYmUgY29uZmlndXJlZCBhcyBwYXJ0IG9mIHRoZSBjb25maWd1
cmF0aW9uIGZpbGUuCisKKyAgICAgICAgKiBPY3RhbmU6IEFkZGVkLgorICAgICAgICAqIE9jdGFu
ZS93cmFwcGVyczogQWRkZWQuCisgICAgICAgICogT2N0YW5lL3dyYXBwZXJzL2pzYy1ib3gyZC5q
czogQWRkZWQuCisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6Cisg
ICAgICAgIChqc2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2MtYm95ZXIuanM6
IEFkZGVkLgorICAgICAgICAoanNjU2V0VXApOgorICAgICAgICAoanNjVGVhckRvd24pOgorICAg
ICAgICAoanNjUnVuKToKKyAgICAgICAgKiBPY3RhbmUvd3JhcHBlcnMvanNjLWNsb3N1cmUuanM6
IEFkZGVkLgorICAgICAgICAoanNjU2V0VXApOgorICAgICAgICAoanNjVGVhckRvd24pOgorICAg
ICAgICAoanNjUnVuKToKKyAgICAgICAgKiBPY3RhbmUvd3JhcHBlcnMvanNjLWRlY3J5cHQuanM6
IEFkZGVkLgorICAgICAgICAoanNjU2V0VXApOgorICAgICAgICAoanNjVGVhckRvd24pOgorICAg
ICAgICAoanNjUnVuKToKKyAgICAgICAgKiBPY3RhbmUvd3JhcHBlcnMvanNjLWRlbHRhYmx1ZS5q
czogQWRkZWQuCisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6Cisg
ICAgICAgIChqc2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2MtZWFybGV5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGpzY1NldFVwKToKKyAgICAgICAgKGpzY1RlYXJEb3duKToKKyAg
ICAgICAgKGpzY1J1bik6CisgICAgICAgICogT2N0YW5lL3dyYXBwZXJzL2pzYy1lbmNyeXB0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGpzY1NldFVwKToKKyAgICAgICAgKGpzY1RlYXJEb3duKToKKyAg
ICAgICAgKGpzY1J1bik6CisgICAgICAgICogT2N0YW5lL3dyYXBwZXJzL2pzYy1nYmVtdS5qczog
QWRkZWQuCisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6CisgICAg
ICAgIChqc2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2MtanF1ZXJ5LmpzOiBB
ZGRlZC4KKyAgICAgICAgKGpzY1NldFVwKToKKyAgICAgICAgKGpzY1RlYXJEb3duKToKKyAgICAg
ICAgKGpzY1J1bik6CisgICAgICAgICogT2N0YW5lL3dyYXBwZXJzL2pzYy1tYW5kcmVlbC5qczog
QWRkZWQuCisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6CisgICAg
ICAgIChqc2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2MtbmF2aWVyLXN0b2tl
cy5qczogQWRkZWQuCisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6
CisgICAgICAgIChqc2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2MtcGRmanMu
anM6IEFkZGVkLgorICAgICAgICAoanNjU2V0VXAuUGRmSlNfd2luZG93LmNvbnNvbGUubG9nKToK
KyAgICAgICAgKGpzY1NldFVwKToKKyAgICAgICAgKGpzY1RlYXJEb3duKToKKyAgICAgICAgKGpz
Y1J1bik6CisgICAgICAgICogT2N0YW5lL3dyYXBwZXJzL2pzYy1yYXl0cmFjZS5qczogQWRkZWQu
CisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6CisgICAgICAgIChq
c2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2MtcmVnZXhwLmpzOiBBZGRlZC4K
KyAgICAgICAgKGpzY1NldFVwKToKKyAgICAgICAgKGpzY1RlYXJEb3duKToKKyAgICAgICAgKGpz
Y1J1bik6CisgICAgICAgICogT2N0YW5lL3dyYXBwZXJzL2pzYy1yaWNoYXJkcy5qczogQWRkZWQu
CisgICAgICAgIChqc2NTZXRVcCk6CisgICAgICAgIChqc2NUZWFyRG93bik6CisgICAgICAgIChq
c2NSdW4pOgorICAgICAgICAqIE9jdGFuZS93cmFwcGVycy9qc2Mtc3BsYXkuanM6IEFkZGVkLgor
ICAgICAgICAoanNjU2V0VXApOgorICAgICAgICAoanNjVGVhckRvd24pOgorICAgICAgICAoanNj
UnVuKToKKyAgICAgICAgKiBPY3RhbmUvd3JhcHBlcnMvanNjLXR5cGVzY3JpcHQuanM6IEFkZGVk
LgorICAgICAgICAoanNjU2V0VXApOgorICAgICAgICAoanNjVGVhckRvd24pOgorICAgICAgICAo
anNjUnVuKToKKyAgICAgICAgKiBPY3RhbmUvd3JhcHBlcnMvanNjLXpsaWIuanM6IEFkZGVkLgor
ICAgICAgICAoanNjU2V0VXApOgorICAgICAgICAoanNjVGVhckRvd24pOgorICAgICAgICAoanNj
UnVuKToKKwogMjAxNC0wOS0yOCAgU3VuZ21hbm4gQ2hvICA8c3VuZ21hbm4uY2hvQG5hdmVyY29y
cC5jb20+CiAKICAgICAgICAgRml4IHNvbWUgbWlub3IgdHlwb3M6IHBzdWVkbyAtPiBwc2V1ZG8K
SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1ib3gyZC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtYm94MmQuanMJ
KHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtYm94
MmQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24ganNjU2V0VXAo
KSB7CisgICAgc2V0dXBCb3gyRCgpOworfQorCitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsKKyAg
ICB3b3JsZCA9IG51bGw7Cit9CisKK2Z1bmN0aW9uIGpzY1J1bigpIHsKKyAgICBydW5Cb3gyRCgp
OworfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWJveWVyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1ib3ll
ci5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pz
Yy1ib3llci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKK2Z1bmN0aW9uIGpzY1Nl
dFVwKCkgeyB9CitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsgfQorCitmdW5jdGlvbiBqc2NSdW4o
KSB7CisgICAgQmdMX25ib3llcnpkMmJlbmNobWFya3pkMigpOworfQpJbmRleDogUGVyZm9ybWFu
Y2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWNsb3N1cmUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWNsb3N1cmUuanMJKHJldmlzaW9uIDAp
CisrKyBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtY2xvc3VyZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiBqc2NTZXRVcCgpIHsKKyAgICBz
ZXR1cENvZGVMb2FkKCkKK30KKworZnVuY3Rpb24ganNjVGVhckRvd24oKSB7CisgICAgdGVhckRv
d25Db2RlTG9hZCgpOworfQorCitmdW5jdGlvbiBqc2NSdW4oKSB7CisgICAgcnVuQ29kZUxvYWRD
bG9zdXJlKCk7Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2Mt
ZGVjcnlwdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVy
cy9qc2MtZGVjcnlwdC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5l
L3dyYXBwZXJzL2pzYy1kZWNyeXB0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAor
dmFyIGVuY3J5cHRlZCA9ICIwNTk5YzA5MDBmMDRkOTE0YWExMTE3NmI3NWYxZmY4MDQwYjk5YTRj
ZDAwOGRkNTI2ZDQxZmZmODhhY2MwMDZhMGVhYjRhNmVjOGQzOTBiMzAwYzE2OWM2ZGMyYzIzYWE3
NzY3YmE4M2YzMzZiN2Y4ZWFhZGUyNTNjMjJlYjdjNzhjOTg4ODFkNWU4OWIyODI3NTkyZjczYmFl
YTNlMzJmMTBiMmIxZmJhODNkZGE4NTRjOWM2YTk2NDY3ZmNhMGQxZTJmNWFhNGQ1OTViNjJmNjVi
MmViMjU4YWFlZjllNzNhNDA3NTExYzI0MDg1ZGYwMjVkZTZiYmJmYjMyNzY0IjsKKworZnVuY3Rp
b24ganNjU2V0VXAoKSB7IH0KK2Z1bmN0aW9uIGpzY1RlYXJEb3duKCkgeyB9CisKK2Z1bmN0aW9u
IGpzY1J1bigpIHsKKyAgICBkZWNyeXB0KCk7Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
T2N0YW5lL3dyYXBwZXJzL2pzYy1kZWx0YWJsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFu
Y2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWRlbHRhYmx1ZS5qcwkocmV2aXNpb24gMCkKKysr
IFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1kZWx0YWJsdWUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2IEBACitmdW5jdGlvbiBqc2NTZXRVcCgpIHsgfQorZnVuY3Rp
b24ganNjVGVhckRvd24oKSB7IH0KKworZnVuY3Rpb24ganNjUnVuKCkgeworICAgIGRlbHRhQmx1
ZSgpOworfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWVhcmxl
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2Mt
ZWFybGV5LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBl
cnMvanNjLWVhcmxleS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKK2Z1bmN0aW9u
IGpzY1NldFVwKCkgeyB9CitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsgfQorCitmdW5jdGlvbiBq
c2NSdW4oKSB7CisgICAgQmdMX2VhcmxleXpkMmJlbmNobWFya3pkMigpOworfQpJbmRleDogUGVy
Zm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWVuY3J5cHQuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLWVuY3J5cHQuanMJKHJldmlz
aW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtZW5jcnlwdC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKK2Z1bmN0aW9uIGpzY1NldFVwKCkgeyB9
CitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsgfQorCitmdW5jdGlvbiBqc2NSdW4oKSB7CisgICAg
ZW5jcnlwdCgpOworfQorCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9q
c2MtZ2JlbXUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBl
cnMvanNjLWdiZW11LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUv
d3JhcHBlcnMvanNjLWdiZW11LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1
bmN0aW9uIGpzY1NldFVwKCkgeworICAgIHNldHVwR2FtZWJveSgpOworfQorCitmdW5jdGlvbiBq
c2NUZWFyRG93bigpIHsKKyAgZGVjb2RlZF9nYW1lYm95X3JvbSA9IG51bGw7Cit9CisKK2Z1bmN0
aW9uIGpzY1J1bigpIHsKKyAgICBydW5HYW1lYm95KCk7Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL09jdGFuZS93cmFwcGVycy9qc2MtanF1ZXJ5LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1qcXVlcnkuanMJKHJldmlzaW9uIDApCisrKyBQ
ZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtanF1ZXJ5LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIGpzY1NldFVwKCkgeworICAgIHNldHVwQ29k
ZUxvYWQoKQorfQorCitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsKKyAgICB0ZWFyRG93bkNvZGVM
b2FkKCk7Cit9CisKK2Z1bmN0aW9uIGpzY1J1bigpIHsKKyAgICBydW5Db2RlTG9hZEpRdWVyeSgp
OworfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLW1hbmRyZWVs
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1t
YW5kcmVlbC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBw
ZXJzL2pzYy1tYW5kcmVlbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5j
dGlvbiBqc2NTZXRVcCgpIHsKKyAgICBzZXR1cE1hbmRyZWVsKCk7Cit9CisKK2Z1bmN0aW9uIGpz
Y1RlYXJEb3duKCkgeworICAgIHRlYXJEb3duTWFuZHJlZWwoKTsKK30KKworZnVuY3Rpb24ganNj
UnVuKCkgeworICAgIHJ1bk1hbmRyZWVsKCk7Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL09j
dGFuZS93cmFwcGVycy9qc2MtbmF2aWVyLXN0b2tlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3Jt
YW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtbmF2aWVyLXN0b2tlcy5qcwkocmV2aXNpb24g
MCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1uYXZpZXItc3Rva2Vz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQgQEAKK2Z1bmN0aW9uIGpzY1NldFVwKCkK
K3sKKyAgICBzZXR1cE5hdmllclN0b2tlcygpOworfQorCitmdW5jdGlvbiBqc2NUZWFyRG93bigp
Cit7CisgICAgdGVhckRvd25OYXZpZXJTdG9rZXMoKTsKK30KKworZnVuY3Rpb24ganNjUnVuKCkK
K3sKKyAgICBydW5OYXZpZXJTdG9rZXMoKTsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvT2N0
YW5lL3dyYXBwZXJzL2pzYy1wZGZqcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3Rz
L09jdGFuZS93cmFwcGVycy9qc2MtcGRmanMuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5j
ZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtcGRmanMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyNiBAQAorZnVuY3Rpb24ganNjU2V0VXAoKSB7CisgICAgY2FudmFzX2xvZ3MgPSBbXTsK
KyAgICBQZGZKU193aW5kb3cuY29uc29sZSA9IHtsb2c6ZnVuY3Rpb24oKXt9fQorICAgIFBkZkpT
X3dpbmRvdy5fX3RpbWVvdXRzX18gPSBbXTsKKyAgICBQZGZKU193aW5kb3cuX19yZXNvdXJjZXNf
XyA9IHt9OworICAgIHNldHVwUGRmSlMoKTsKK30KKworZnVuY3Rpb24ganNjVGVhckRvd24oKSB7
CisgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FudmFzX2xvZ3MubGVuZ3RoOyArK2kpIHsKKyAgICB2
YXIgbG9nX2xlbmd0aCA9IGNhbnZhc19sb2dzW2ldLmxlbmd0aDsKKyAgICB2YXIgbG9nX2hhc2gg
PSBoYXNoKGNhbnZhc19sb2dzW2ldLmpvaW4oIiAiKSk7CisgICAgdmFyIGV4cGVjdGVkX2xlbmd0
aCA9IDM2Nzg4OworICAgIHZhciBleHBlY3RlZF9oYXNoID0gOTM5NTI0MDk2OworICAgIGlmIChs
b2dfbGVuZ3RoICE9PSBleHBlY3RlZF9sZW5ndGggfHwgbG9nX2hhc2ggIT09IGV4cGVjdGVkX2hh
c2gpIHsKKyAgICAgIHZhciBtZXNzYWdlID0gIlBkZkpTIHByb2R1Y2VkIGluY29ycmVjdCBvdXRw
dXQ6ICIgKworICAgICAgICAgICJleHBlY3RlZCAiICsgZXhwZWN0ZWRfbGVuZ3RoICsgIiAiICsg
ZXhwZWN0ZWRfaGFzaCArICIsICIgKworICAgICAgICAgICJnb3QgIiArIGxvZ19sZW5ndGggKyAi
ICIgKyBsb2dfaGFzaDsKKyAgICAgIHRocm93IG1lc3NhZ2U7CisgICAgfQorICB9Cit9CisKK2Z1
bmN0aW9uIGpzY1J1bigpIHsKKyAgICBydW5QZGZKUygpOworfQpJbmRleDogUGVyZm9ybWFuY2VU
ZXN0cy9PY3RhbmUvd3JhcHBlcnMvanNjLXJheXRyYWNlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1yYXl0cmFjZS5qcwkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1yYXl0cmFjZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKK2Z1bmN0aW9uIGpzY1NldFVwKCkgeyB9CitmdW5j
dGlvbiBqc2NUZWFyRG93bigpIHsgfQorCitmdW5jdGlvbiBqc2NSdW4oKSB7CisgICAgcmVuZGVy
U2NlbmUoKTsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1y
ZWdleHAuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9PY3RhbmUvd3JhcHBlcnMv
anNjLXJlZ2V4cC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dy
YXBwZXJzL2pzYy1yZWdleHAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVu
Y3Rpb24ganNjU2V0VXAoKSB7CisgICAgQmVuY2htYXJrU3VpdGUuUmVzZXRSTkcoKTsKKyAgICBS
ZWdFeHBTZXR1cCgpOworfQorCitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsKKyAgICBSZWdFeHBU
ZWFyRG93bigpOworfQorCitmdW5jdGlvbiBqc2NSdW4oKSB7CisgICAgUmVnRXhwUnVuKCk7Cit9
CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1yaWNoYXJkcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2Mtcmlj
aGFyZHMuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVy
cy9qc2MtcmljaGFyZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACitmdW5jdGlv
biBqc2NTZXRVcCgpIHsgfQorZnVuY3Rpb24ganNjVGVhckRvd24oKSB7IH0KKworZnVuY3Rpb24g
anNjUnVuKCkgeworICAgIHJ1blJpY2hhcmRzKCk7Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVz
dHMvT2N0YW5lL3dyYXBwZXJzL2pzYy1zcGxheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5j
ZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2Mtc3BsYXkuanMJKHJldmlzaW9uIDApCisrKyBQZXJm
b3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2Mtc3BsYXkuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24ganNjU2V0VXAoKSB7CisgICAgU3BsYXlTZXR1cCgp
OworfQorCitmdW5jdGlvbiBqc2NUZWFyRG93bigpIHsKKyAgICBTcGxheVRlYXJEb3duKCk7Cit9
CisKK2Z1bmN0aW9uIGpzY1J1bigpIHsKKyAgICBTcGxheVJ1bigpOworfQorCkluZGV4OiBQZXJm
b3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtdHlwZXNjcmlwdC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL09jdGFuZS93cmFwcGVycy9qc2MtdHlwZXNjcmlwdC5qcwko
cmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5lL3dyYXBwZXJzL2pzYy10eXBl
c2NyaXB0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIGpzY1Nl
dFVwKCkgeworICAgIHNldHVwVHlwZXNjcmlwdCgpOworfQorCitmdW5jdGlvbiBqc2NUZWFyRG93
bigpIHsKKyAgICB0ZWFyRG93blR5cGVzY3JpcHQoKTsKK30KKworZnVuY3Rpb24ganNjUnVuKCkg
eworICAgIHJ1blR5cGVzY3JpcHQoKTsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvT2N0YW5l
L3dyYXBwZXJzL2pzYy16bGliLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvT2N0
YW5lL3dyYXBwZXJzL2pzYy16bGliLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9PY3RhbmUvd3JhcHBlcnMvanNjLXpsaWIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAordmFyIHJlYWQ7CisKK2Z1bmN0aW9uIGpzY1NldFVwKCkgeworfQorCitmdW5jdGlvbiBq
c2NUZWFyRG93bigpIHsKKyAgICB0ZWFyRG93blpsaWIoKTsKK30KKworZnVuY3Rpb24ganNjUnVu
KCkgeworICAgIHJ1blpsaWIoKTsKK30KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NDA5NSkKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA5LTI5ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIGZ1biBhbmQgZWFz
eSB0byBydW4gZXZlcnkgcG9zc2libGUgSmF2YVNjcmlwdCBiZW5jaG1hcmsgZnJvbSB0aGUgY29t
bWFuZCBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzcyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFdlIHByZXZpb3VzbHkgaGFkIFRvb2xzL1NjcmlwdHMvYmVuY2hlci4gIFRoZW4g
d2Ugc3RvcHBlZCBhZGRpbmcgdGhpbmdzIHRvIGl0IGJlY2F1c2Ugd2UKKyAgICAgICAgd2VyZW4n
dCBzdXJlIGFib3V0IHRoZSBsaWNlbnNpbmcgb2YgdGhpbmdzIGxpa2UgS3Jha2VuIGFuZCBPY3Rh
bmUuICBWYXJpb3VzIHBlb3BsZSBlbmRlZCB1cAorICAgICAgICBoYXZpbmcgdGhlaXIgb3duIHBy
aXZhdGUgc2NyaXB0cyBmb3IgZG9pbmcgYmVuY2htYXJrIHJ1bnMsIGFuZCBkaWRuJ3Qgc2hhcmUg
dGhlbSBpbiB0aGUgb3BlbgorICAgICAgICBzb3VyY2UgY29tbXVuaXR5LCBiZWNhdXNlIG9mIGZl
YXJzIGFib3V0IHRoZSBzaGFkeSBsaWNlbnNpbmcgb2YgdGhlIGJlbmNobWFya3Mgc3VpdGVzIHRo
YXQKKyAgICAgICAgdGhleSB3ZXJlIHJ1bm5pbmcuIFRoZSBkb21pbmFudCB2ZXJzaW9uIG9mIHRo
aXMgd2FzICJydW4tanNjLWJlbmNobWFya3MiLCB3aGljaCBoYXMgYSBsb3Qgb2YKKyAgICAgICAg
ZXhjZWxsZW50IHBvd2VyIC0gaXQgY2FuIHJ1biBiZW5jaG1hcmtzIHRocm91Z2ggZWl0aGVyIGpz
YywgRHVtcFJlbmZlclRyZWUsIG9yCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXI7IGl0IGNhbiBy
dW4gdGVzdHMgb24gYW55IG51bWJlciBvZiByZW1vdGUgbWFjaGluZXM7IGFuZCBpdCBoYXMgaW5z
aWRlCisgICAgICAgIGtub3dsZWRnZSBhYm91dCBob3cgdG8gcnVuICphIGxvdCogb2YgdGVzdCBz
dWl0ZXMuIE1hbnkgb2YgdGhvc2UgdGVzdCBzdWl0ZXMgYXJlIG5vdCBwdWJsaWMsCisgICAgICAg
IGJ1dCBzb21lIG9mIHRoZW0gYXJlLiBUaGUgbm9uLXB1YmxpYyB0ZXN0cyBhcmUgZXhjbHVzaXZl
bHkgdGhvc2UgdGhhdCB3ZXJlIG5vdCBtYWRlIGJ5IGFueQorICAgICAgICBXZWJLaXQgY29udHJp
YnV0b3IsIGJ1dCB3aGljaCBKU0MvV2ViS2l0IGRldnMgZm91bmQgdXNlZnVsIGZvciB0ZXN0aW5n
LgorCisgICAgICAgIFRoaXMgZml4ZXMgdGhpcyB3ZWlyZG5lc3MgYnkgcmVsZWFzaW5nIHJ1bi1q
c2MtYmVuY2htYXJrcy4gVGhlIHBhdGhzIHRvIHRoZSB0ZXN0IHN1aXRlcworICAgICAgICB3aG9z
ZSBsaWNlbnNlcyBhcmUgaW5jb21wYXRpYmxlIHdpdGggV2ViS2l0J3MgKHRvIHRoZSBleHRlbnQg
dGhhdCB0aGV5IGNhbm5vdCBiZSBzYWZlbHkKKyAgICAgICAgY2hlY2tlZCBpbnRvIFdlYktpdCBz
dm4gYXQgYWxsKSBjYW4gYmUgcnVuIGJ5IHBhc3NpbmcgdGhlIHBhdGggdG8gdGhlbSB2aWEgYSBj
b25maWd1cmF0aW9uCisgICAgICAgIGZpbGUuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmls
ZSBpcyB+Ly5ydW4tanNjLWJlbmNobWFya3MuIFRoZSBtb3N0IGltcG9ydGFudCBiZW5jaG1hcmsK
KyAgICAgICAgc3VpdGVzIGFyZSBPY3RhbmUgdmVyc2lvbiAyIGFuZCBLcmFrZW4gdmVyc2lvbiAx
LjEuIFdlIHNob3VsZCBwcm9iYWJseSBjaGVjayBPY3RhbmUgMiBpbnRvCisgICAgICAgIFdlYktp
dCBldmVudHVhbGx5IGJlY2F1c2UgaXQgc2VlbXMgdGhhdCB0aGUgbGljZW5zZSBpcyBmaW5lLiBL
cmFrZW4sIG9uIHRoZSBvdGhlciBoYW5kLCB3aWxsCisgICAgICAgIHByb2JhYmx5IG5ldmVyIGJl
IGNoZWNrZWQgaW4gYmVjYXVzZSB0aGVyZSBpcyBubyBsaWNlbnNlIHRleHQgYW55d2hlcmUgaW4g
dGhhdCBiZW5jaG1hcmsuCisgICAgICAgIEEgdmFsaWQgfi8ucnVuLWpzYy1iZW5jaG1hcmtzIGZp
bGUgd2lsbCBqdXN0IGJlIHNvbWV0aGluZyBsaWtlOgorICAgICAgICAKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAiT2N0YW5lUGF0aCI6ICIvcGF0aC90by9PY3RhbmUyIiwKKyAgICAg
ICAgICAgICAgICAiS3Jha2VuUGF0aCI6ICIvcGF0aC90by9LcmFrZW4tMS4xL3Rlc3RzL2tyYWtl
bi0xLjEiCisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICBJZiB5b3VyIH4vLnJ1bi1q
c2MtYmVuY2htYXJrcyBmaWxlIG9taXRzIHRoZSBkaXJlY3RvcnkgZm9yIGFueSBwYXJ0aWN1bGFy
IHRlc3Qgc3VpdGUsIHRoZW4KKyAgICAgICAgcnVuLWpzYy1iZW5jaG1hcmtzIHdpbGwganVzdCBn
cmFjZWZ1bGx5IGF2b2lkIHJ1bm5pbmcgdGhhdCB0ZXN0IHN1aXRlLgorICAgICAgICAKKyAgICAg
ICAgRmluYWxseSwgYSB3b3JkIGFib3V0IHBvbGljeTogaXQgaXMgdW5kZXJzdG9vZCB0aGF0IGRp
ZmZlcmVudCBvcmdhbml6YXRpb25zIHRoYXQgZG8KKyAgICAgICAgZGV2ZWxvcG1lbnQgb24gSlND
IG1heSBmaW5kIHRoZW1zZWx2ZXMgaGF2aW5nIGludGVybmFsIGJlbmNobWFya3MgdGhhdCB0aGV5
IGNhbm5vdCBzaGFyZQorICAgICAgICBiZWNhdXNlIG9mIHdlaXJkIGxpY2Vuc2luZy4gSXQgaGFw
cGVucyAtIHVzdWFsbHkgYmVjYXVzZSB0aGUgb3JnYW5pemF0aW9uIGRvaW5nIEpTQworICAgICAg
ICBkZXZlbG9wbWVudCBmb3VuZCBzb21lIHRlc3QgaW4gdGhlIHdpbGQgdGhhdCBpcyBvd25lZCBi
eSBzb21lb25lIGVsc2UgYW5kIHRoZXJlZm9yZSBjYW5ub3QKKyAgICAgICAgYmUgc2hhcmVkLiBT
bywgd2Ugc2hvdWxkIGNvbnNpZGVyIGl0IGFjY2VwdGFibGUgdG8gd3JpdGUgcGF0Y2hlcyBhZ2Fp
bnN0IHJ1bi1qc2MtYmVuY2htYXJrcworICAgICAgICB0aGF0IGFkZCBzdXBwb3J0IGZvciBzb21l
IG5ldyBraW5kIG9mIGJlbmNobWFyayBzdWl0ZSBldmVuIGlmIHRoZSBzdWl0ZSBpcyBub3QgbWFk
ZSBwdWJsaWMKKyAgICAgICAgYXMgcGFydCBvZiB0aGUgc2FtZSBwYXRjaCAtIHNvIGxvbmcgYXMg
dGhlIHBhdGNoIGlzbid0IHRvbyBpbnZhc2l2ZS4gQW4gZXhhbXBsZSBvZgorICAgICAgICBub24t
aW52YXNpdmVuZXNzIGlzIHRoZSBEU1BKUyBzdWl0ZSwgd2hpY2ggaXMgaW1wbGVtZW50ZWQgdXNp
bmcgc29tZSBuZXcgY2xhc3NlcyAobGlrZQorICAgICAgICBEU1BKU0FtbW9KU1JlZ3VsYXJCZW5j
aG1hcmspIGFuZCBzb21lIGNhbGxzIHRvIG90aGVyd2lzZSByZXVzYWJsZSBmdW5jdGlvbnMgKGxp
a2UKKyAgICAgICAgZW1pdFNlbGZDb250YWluZWRCZW5jaFJ1bkNvZGUpLiBJdCBpcyBvYnZpb3Vz
bHkgc3VwZXIgaGVscGZ1bCBpZiBhIGJlbmNobWFyayBzdWl0ZSBjYW4gYmUKKyAgICAgICAgY29t
cGxldGVseSBvcGVuLXNvdXJjZWQgYW5kIGNvbW1pdHRlZCB0byB0aGUgV2ViS2l0IHJlcG8gLSBi
dXQgdGhlIHJlYWxpdHkgaXMgdGhhdCB0aGlzCisgICAgICAgIGNhbid0IGFsd2F5cyBiZSBkb25l
IHNhZmVseS4KKworICAgICAgICAqIFNjcmlwdHMvYmVuY2hlcjogUmVtb3ZlZC4KKyAgICAgICAg
KiBTY3JpcHRzL3J1bi1qc2MtYmVuY2htYXJrczogQWRkZWQuCisKIDIwMTQtMDktMjkgIENhcmxv
cyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gW0VGTF0gSW5zdGFsbCBUZXN0TmV0c2NhcGVQbHVnaW4gYXBhcnQgZnJvbSB0aGUgb3RoZXIg
bGlicy4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvYmVuY2hlcgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL2JlbmNoZXIJKHJldmlzaW9uIDE3NDA5MykKKysrIFRvb2xzL1NjcmlwdHMvYmVuY2hl
cgkod29ya2luZyBjb3B5KQpAQCAtMSwyMTAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHJ1YnkK
LQotIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotcmVxdWlyZSAncnVieWdl
bXMnCi0KLXJlcXVpcmUgJ2dldG9wdGxvbmcnCi1yZXF1aXJlICdwYXRobmFtZScKLXJlcXVpcmUg
J3RlbXBmaWxlJwotcmVxdWlyZSAnc29ja2V0JwotCi1iZWdpbgotICByZXF1aXJlICdqc29uJwot
cmVzY3VlIExvYWRFcnJvciA9PiBlCi0gICRzdGRlcnIucHV0cyAiSXQgZG9lcyBub3QgYXBwZWFy
IHRoYXQgeW91IGhhdmUgdGhlICdqc29uJyBwYWNrYWdlIGluc3RhbGxlZC4gIFRyeSBydW5uaW5n
ICdzdWRvIGdlbSBpbnN0YWxsIGpzb24nLiIKLSAgZXhpdCAxCi1lbmQKLQotIyBDb25maWd1cmF0
aW9uCi0KLUNPTkZJR1VSQVRJT05fRkxOTSA9IEVOVlsiSE9NRSJdKyIvLmJlbmNoZXIiCi0KLXVu
bGVzcyBGaWxlVGVzdC5leGlzdD8gQ09ORklHVVJBVElPTl9GTE5NCi0gICRzdGRlcnIucHV0cyAi
RXJyb3I6IG5vIGNvbmZpZ3VyYXRpb24gZmlsZSBhdCB+Ly5iZW5jaGVyLiIKLSAgJHN0ZGVyci5w
dXRzICJUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gcGF0aHMgdG8gU3VuU3BpZGVyLCBWOCwgYW5k
IEtyYWtlbiwgYXMgd2VsbCBhcyBhIgotICAkc3RkZXJyLnB1dHMgInRlbXBvcmFyeSBkaXJlY3Rv
cnkgdGhhdCBiZW5jaGVyIGNhbiB1c2UgZm9yIGl0cyByZW1vdGUgbW9kZS4gSXQgc2hvdWxkIGJl
IgotICAkc3RkZXJyLnB1dHMgImZvcm1hdHRlZCBpbiBKU09OLiAgRm9yIGV4YW1wbGU6IgotICAk
c3RkZXJyLnB1dHMgInsiCi0gICRzdGRlcnIucHV0cyAiICAgIFwic3VuU3BpZGVyUGF0aFwiOiBc
Ii9Wb2x1bWVzL0RhdGEvcGl6bG8vT3BlblNvdXJjZS9QZXJmb3JtYW5jZVRlc3RzL1N1blNwaWRl
ci90ZXN0cy9zdW5zcGlkZXItMS4wXCIsIgotICAkc3RkZXJyLnB1dHMgIiAgICBcInY4UGF0aFwi
OiBcIi9Wb2x1bWVzL0RhdGEvcGl6bG8vT3BlblNvdXJjZS9QZXJmb3JtYW5jZVRlc3RzL1N1blNw
aWRlci90ZXN0cy92OC12NlwiLCIKLSAgJHN0ZGVyci5wdXRzICIgICAgXCJrcmFrZW5QYXRoXCI6
IFwiL1ZvbHVtZXMvRGF0YS9waXpsby9rcmFrZW4va3Jha2VuLWUxMTk0MjFjYjMyNS90ZXN0cy9r
cmFrZW4tMS4xXCIsIgotICAkc3RkZXJyLnB1dHMgIiAgICBcInRlbXBQYXRoXCI6IFwiL1ZvbHVt
ZXMvRGF0YS9waXpsby9iZW5jaGVyL3RlbXBcIiIKLSAgJHN0ZGVyci5wdXRzICJ9IgotICBleGl0
IDEKLWVuZAotCi1DT05GSUdVUkFUSU9OID0gSlNPTi5wYXJzZShGaWxlOjpyZWFkKENPTkZJR1VS
QVRJT05fRkxOTSkpCi0KLVNVTlNQSURFUl9QQVRIID0gQ09ORklHVVJBVElPTlsic3VuU3BpZGVy
UGF0aCJdCi1WOF9QQVRIID0gQ09ORklHVVJBVElPTlsidjhQYXRoIl0KLUtSQUtFTl9QQVRIID0g
Q09ORklHVVJBVElPTlsia3Jha2VuUGF0aCJdCi1URU1QX1BBVEggPSBDT05GSUdVUkFUSU9OWyJ0
ZW1wUGF0aCJdCi1CRU5DSF9EQVRBX1BBVEggPSBURU1QX1BBVEggKyAiL2JlbmNoZGF0YSIKLQot
SUJSX0xPT0tVUD1bMC4wMDYxNTU4MywgMC4wOTc1LCAwLjIyODUyLCAwLjM0MTYyOCwgMC40MzA3
NDEsIDAuNTAwNTI2LCAwLjU1NTkzMywgCi0gICAgICAgICAgICAwLjYwMDcwNiwgMC42Mzc1MTMs
IDAuNjY4MjQ0LCAwLjY5NDI1NCwgMC43MTY1MzcsIDAuNzM1ODI3LCAwLjc1MjY4NCwgCi0gICAg
ICAgICAgICAwLjc2NzUzNSwgMC43ODA3MTYsIDAuNzkyNDkyLCAwLjgwMzA3NCwgMC44MTI2MzQs
IDAuODIxMzEzLCAwLjgyOTIyNywgCi0gICAgICAgICAgICAwLjgzNjQ3MiwgMC44NDMxMjksIDAu
ODQ5MjY3LCAwLjg1NDk0MywgMC44NjAyMDksIDAuODY1MTA3LCAwLjg2OTY3NCwgCi0gICAgICAg
ICAgICAwLjg3Mzk0MiwgMC44Nzc5NDEsIDAuODgxNjkzLCAwLjg4NTIyMywgMC44ODg1NDgsIDAu
ODkxNjg2LCAwLjg5NDY1MiwgCi0gICAgICAgICAgICAwLjg5NzQ2MSwgMC45MDAxMjQsIDAuOTAy
NjUyLCAwLjkwNTA1NiwgMC45MDczNDMsIDAuOTA5NTI0LCAwLjkxMTYwNCwgCi0gICAgICAgICAg
ICAwLjkxMzU5LCAwLjkxNTQ5LCAwLjkxNzMwOCwgMC45MTkwNDksIDAuOTIwNzE4LCAwLjkyMjMy
LCAwLjkyMzg1OSwgMC45MjUzMzgsIAotICAgICAgICAgICAgMC45MjY3NjEsIDAuOTI4MTMsIDAu
OTI5NDQ5LCAwLjkzMDcyMSwgMC45MzE5NDgsIDAuOTMzMTMyLCAwLjkzNDI3NSwgMC45MzUzOCwg
Ci0gICAgICAgICAgICAwLjkzNjQ0OSwgMC45Mzc0ODMsIDAuOTM4NDgzLCAwLjkzOTQ1MiwgMC45
NDAzOTIsIDAuOTQxMzAyLCAwLjk0MjE4NSwgCi0gICAgICAgICAgICAwLjk0MzA0MiwgMC45NDM4
NzQsIDAuOTQ0NjgyLCAwLjk0NTQ2NywgMC45NDYyMywgMC45NDY5NzIsIDAuOTQ3Njk0LCAKLSAg
ICAgICAgICAgIDAuOTQ4Mzk2LCAwLjk0OTA4LCAwLjk0OTc0NiwgMC45NTAzOTUsIDAuOTUxMDI3
LCAwLjk1MTY0MywgMC45NTIyNDQsIAotICAgICAgICAgICAgMC45NTI4MzEsIDAuOTUzNDAzLCAw
Ljk1Mzk2MSwgMC45NTQ1MDYsIDAuOTU1MDM5LCAwLjk1NTU1OSwgMC45NTYwNjcsIAotICAgICAg
ICAgICAgMC45NTY1NjMsIDAuOTU3MDQ5LCAwLjk1NzUyNCwgMC45NTc5ODgsIDAuOTU4NDQzLCAw
Ljk1ODg4NywgMC45NTkzMjMsIAotICAgICAgICAgICAgMC45NTk3NDksIDAuOTYwMTY2LCAwLjk2
MDU3NSwgMC45NjA5NzUsIDAuOTYxMzY4LCAwLjk2MTc1MiwgMC45NjIxMjksIAotICAgICAgICAg
ICAgMC45NjI0OTksIDAuOTYyODYxLCAwLjk2MzIxNywgMC45NjM1NjYsIDAuOTYzOTA4LCAwLjk2
NDI0NCwgMC45NjQ1NzQsIAotICAgICAgICAgICAgMC45NjQ4OTcsIDAuOTY1MjE1LCAwLjk2NTUy
NywgMC45NjU4MzQsIDAuOTY2MTM1LCAwLjk2NjQzMSwgMC45NjY3MjIsIAotICAgICAgICAgICAg
MC45NjcwMDcsIDAuOTY3Mjg4LCAwLjk2NzU2NCwgMC45Njc4MzYsIDAuOTY4MTAzLCAwLjk2ODM2
NiwgMC45Njg2MjQsIAotICAgICAgICAgICAgMC45Njg4NzgsIDAuOTY5MTI4LCAwLjk2OTM3NCwg
MC45Njk2MTcsIDAuOTY5ODU1LCAwLjk3MDA5LCAwLjk3MDMyMSwgCi0gICAgICAgICAgICAwLjk3
MDU0OCwgMC45NzA3NzIsIDAuOTcwOTkzLCAwLjk3MTIxLCAwLjk3MTQyNSwgMC45NzE2MzYsIDAu
OTcxODQzLCAKLSAgICAgICAgICAgIDAuOTcyMDQ4LCAwLjk3MjI1LCAwLjk3MjQ0OSwgMC45NzI2
NDUsIDAuOTcyODM5LCAwLjk3MzAyOSwgMC45NzMyMTcsIAotICAgICAgICAgICAgMC45NzM0MDMs
IDAuOTczNTg2LCAwLjk3Mzc2NiwgMC45NzM5NDQsIDAuOTc0MTIsIDAuOTc0MjkzLCAwLjk3NDQ2
NCwgCi0gICAgICAgICAgICAwLjk3NDYzMiwgMC45NzQ3OTksIDAuOTc0OTYzLCAwLjk3NTEyNSwg
MC45NzUyODUsIDAuOTc1NDQzLCAwLjk3NTU5OSwgCi0gICAgICAgICAgICAwLjk3NTc1MywgMC45
NzU5MDUsIDAuOTc2MDU1LCAwLjk3NjIwNCwgMC45NzYzNSwgMC45NzY0OTUsIDAuOTc2NjM4LCAK
LSAgICAgICAgICAgIDAuOTc2Nzc5LCAwLjk3NjkxOCwgMC45NzcwNTYsIDAuOTc3MTkzLCAwLjk3
NzMyNywgMC45Nzc0NiwgMC45Nzc1OTIsIAotICAgICAgICAgICAgMC45Nzc3MjIsIDAuOTc3ODUs
IDAuOTc3OTc3LCAwLjk3ODEwMywgMC45NzgyMjcsIDAuOTc4MzQ5LCAwLjk3ODQ3MSwgCi0gICAg
ICAgICAgICAwLjk3ODU5MSwgMC45Nzg3MDksIDAuOTc4ODI3LCAwLjk3ODk0MywgMC45NzkwNTgs
IDAuOTc5MTcxLCAwLjk3OTI4MywgCi0gICAgICAgICAgICAwLjk3OTM5NSwgMC45Nzk1MDQsIDAu
OTc5NjEzLCAwLjk3OTcyMSwgMC45Nzk4MjcsIDAuOTc5OTMzLCAwLjk4MDAzNywgCi0gICAgICAg
ICAgICAwLjk4MDE0LCAwLjk4MDI0MiwgMC45ODAzNDMsIDAuOTgwNDQzLCAwLjk4MDU0MywgMC45
ODA2NDEsIDAuOTgwNzM4LCAKLSAgICAgICAgICAgIDAuOTgwODM0LCAwLjk4MDkyOSwgMC45ODEw
MjMsIDAuOTgxMTE2LCAwLjk4MTIwOSwgMC45ODEzLCAwLjk4MTM5MSwgMC45ODE0ODEsIAotICAg
ICAgICAgICAgMC45ODE1NjksIDAuOTgxNjU3LCAwLjk4MTc0NSwgMC45ODE4MzEsIDAuOTgxOTE2
LCAwLjk4MjAwMSwgMC45ODIwODUsIAotICAgICAgICAgICAgMC45ODIxNjgsIDAuOTgyMjUxLCAw
Ljk4MjMzMiwgMC45ODI0MTMsIDAuOTgyNDkzLCAwLjk4MjU3MywgMC45ODI2NTEsIAotICAgICAg
ICAgICAgMC45ODI3MjksIDAuOTgyODA3LCAwLjk4Mjg4MywgMC45ODI5NTksIDAuOTgzMDM0LCAw
Ljk4MzEwOSwgMC45ODMxODMsIAotICAgICAgICAgICAgMC45ODMyNTYsIDAuOTgzMzI5LCAwLjk4
MzQwMSwgMC45ODM0NzIsIDAuOTgzNTQzLCAwLjk4MzYxMywgMC45ODM2ODMsIAotICAgICAgICAg
ICAgMC45ODM3NTIsIDAuOTgzODIsIDAuOTgzODg4LCAwLjk4Mzk1NiwgMC45ODQwMjIsIDAuOTg0
MDg5LCAwLjk4NDE1NCwgCi0gICAgICAgICAgICAwLjk4NDIxOSwgMC45ODQyODQsIDAuOTg0MzQ4
LCAwLjk4NDQxMSwgMC45ODQ0NzQsIDAuOTg0NTM3LCAwLjk4NDU5OSwgCi0gICAgICAgICAgICAw
Ljk4NDY2LCAwLjk4NDcyMSwgMC45ODQ3ODIsIDAuOTg0ODQyLCAwLjk4NDkwMiwgMC45ODQ5NjEs
IDAuOTg1MDE5LCAKLSAgICAgICAgICAgIDAuOTg1MDc3LCAwLjk4NTEzNSwgMC45ODUxOTMsIDAu
OTg1MjQ5LCAwLjk4NTMwNiwgMC45ODUzNjIsIDAuOTg1NDE3LCAKLSAgICAgICAgICAgIDAuOTg1
NDcyLCAwLjk4NTUyNywgMC45ODU1ODIsIDAuOTg1NjM1LCAwLjk4NTY4OSwgMC45ODU3NDIsIDAu
OTg1Nzk1LCAKLSAgICAgICAgICAgIDAuOTg1ODQ3LCAwLjk4NTg5OSwgMC45ODU5NTEsIDAuOTg2
MDAyLCAwLjk4NjA1MywgMC45ODYxMDMsIDAuOTg2MTUzLCAKLSAgICAgICAgICAgIDAuOTg2MjAz
LCAwLjk4NjI1MiwgMC45ODYzMDEsIDAuOTg2MzUsIDAuOTg2Mzk4LCAwLjk4NjQ0NiwgMC45ODY0
OTQsIAotICAgICAgICAgICAgMC45ODY1NDEsIDAuOTg2NTg4LCAwLjk4NjYzNSwgMC45ODY2ODEs
IDAuOTg2NzI3LCAwLjk4Njc3MywgMC45ODY4MTgsIAotICAgICAgICAgICAgMC45ODY4NjMsIDAu
OTg2OTA4LCAwLjk4Njk1MywgMC45ODY5OTcsIDAuOTg3MDQxLCAwLjk4NzA4NCwgMC45ODcxMjgs
IAotICAgICAgICAgICAgMC45ODcxNzEsIDAuOTg3MjEzLCAwLjk4NzI1NiwgMC45ODcyOTgsIDAu
OTg3MzQsIDAuOTg3MzgxLCAwLjk4NzQyMywgCi0gICAgICAgICAgICAwLjk4NzQ2NCwgMC45ODc1
MDQsIDAuOTg3NTQ1LCAwLjk4NzU4NSwgMC45ODc2MjUsIDAuOTg3NjY1LCAwLjk4NzcwNCwgCi0g
ICAgICAgICAgICAwLjk4Nzc0NCwgMC45ODc3ODMsIDAuOTg3ODIxLCAwLjk4Nzg2LCAwLjk4Nzg5
OCwgMC45ODc5MzYsIDAuOTg3OTc0LCAKLSAgICAgICAgICAgIDAuOTg4MDExLCAwLjk4ODA0OSwg
MC45ODgwODYsIDAuOTg4MTIzLCAwLjk4ODE1OSwgMC45ODgxOTYsIDAuOTg4MjMyLCAKLSAgICAg
ICAgICAgIDAuOTg4MjY4LCAwLjk4ODMwMywgMC45ODgzMzksIDAuOTg4Mzc0LCAwLjk4ODQwOSwg
MC45ODg0NDQsIDAuOTg4NDc5LCAKLSAgICAgICAgICAgIDAuOTg4NTEzLCAwLjk4ODU0NywgMC45
ODg1ODIsIDAuOTg4NjE1LCAwLjk4ODY0OSwgMC45ODg2ODIsIDAuOTg4NzE2LCAKLSAgICAgICAg
ICAgIDAuOTg4NzQ5LCAwLjk4ODc4MiwgMC45ODg4MTQsIDAuOTg4ODQ3LCAwLjk4ODg3OSwgMC45
ODg5MTEsIDAuOTg4OTQzLCAKLSAgICAgICAgICAgIDAuOTg4OTc1LCAwLjk4OTAwNiwgMC45ODkw
MzgsIDAuOTg5MDY5LCAwLjk4OTEsIDAuOTg5MTMxLCAwLjk4OTE2MSwgMC45ODkxOTIsIAotICAg
ICAgICAgICAgMC45ODkyMjIsIDAuOTg5MjUyLCAwLjk4OTI4MiwgMC45ODkzMTIsIDAuOTg5MzQy
LCAwLjk4OTM3MSwgMC45ODk0MDEsIAotICAgICAgICAgICAgMC45ODk0MywgMC45ODk0NTksIDAu
OTg5NDg4LCAwLjk4OTUxNiwgMC45ODk1NDUsIDAuOTg5NTczLCAwLjk4OTYwMiwgMC45ODk2Mywg
Ci0gICAgICAgICAgICAwLjk4OTY1OCwgMC45ODk2ODUsIDAuOTg5NzEzLCAwLjk4OTc0LCAwLjk4
OTc2OCwgMC45ODk3OTUsIDAuOTg5ODIyLCAKLSAgICAgICAgICAgIDAuOTg5ODQ5LCAwLjk4OTg3
NiwgMC45ODk5MDIsIDAuOTg5OTI5LCAwLjk4OTk1NSwgMC45ODk5ODEsIDAuOTkwMDA3LCAKLSAg
ICAgICAgICAgIDAuOTkwMDMzLCAwLjk5MDA1OSwgMC45OTAwODUsIDAuOTkwMTEsIDAuOTkwMTM2
LCAwLjk5MDE2MSwgMC45OTAxODYsIAotICAgICAgICAgICAgMC45OTAyMTEsIDAuOTkwMjM2LCAw
Ljk5MDI2MSwgMC45OTAyODUsIDAuOTkwMzEsIDAuOTkwMzM0LCAwLjk5MDM1OCwgCi0gICAgICAg
ICAgICAwLjk5MDM4MywgMC45OTA0MDcsIDAuOTkwNDMsIDAuOTkwNDU0LCAwLjk5MDQ3OCwgMC45
OTA1MDEsIDAuOTkwNTI1LCAKLSAgICAgICAgICAgIDAuOTkwNTQ4LCAwLjk5MDU3MSwgMC45OTA1
OTQsIDAuOTkwNjE3LCAwLjk5MDY0LCAwLjk5MDY2MywgMC45OTA2ODYsIAotICAgICAgICAgICAg
MC45OTA3MDgsIDAuOTkwNzMxLCAwLjk5MDc1MywgMC45OTA3NzUsIDAuOTkwNzk3LCAwLjk5MDgx
OSwgMC45OTA4NDEsIAotICAgICAgICAgICAgMC45OTA4NjMsIDAuOTkwODg1LCAwLjk5MDkwNiwg
MC45OTA5MjgsIDAuOTkwOTQ5LCAwLjk5MDk3LCAwLjk5MDk5MSwgCi0gICAgICAgICAgICAwLjk5
MTAxMywgMC45OTEwMzQsIDAuOTkxMDU0LCAwLjk5MTA3NSwgMC45OTEwOTYsIDAuOTkxMTE2LCAw
Ljk5MTEzNywgCi0gICAgICAgICAgICAwLjk5MTE1NywgMC45OTExNzgsIDAuOTkxMTk4LCAwLjk5
MTIxOCwgMC45OTEyMzgsIDAuOTkxMjU4LCAwLjk5MTI3OCwgCi0gICAgICAgICAgICAwLjk5MTI5
OCwgMC45OTEzMTcsIDAuOTkxMzM3LCAwLjk5MTM1NiwgMC45OTEzNzYsIDAuOTkxMzk1LCAwLjk5
MTQxNCwgCi0gICAgICAgICAgICAwLjk5MTQzMywgMC45OTE0NTIsIDAuOTkxNDcxLCAwLjk5MTQ5
LCAwLjk5MTUwOSwgMC45OTE1MjgsIDAuOTkxNTQ3LCAKLSAgICAgICAgICAgIDAuOTkxNTY1LCAw
Ljk5MTU4NCwgMC45OTE2MDIsIDAuOTkxNjIsIDAuOTkxNjM5LCAwLjk5MTY1NywgMC45OTE2NzUs
IAotICAgICAgICAgICAgMC45OTE2OTMsIDAuOTkxNzExLCAwLjk5MTcyOSwgMC45OTE3NDYsIDAu
OTkxNzY0LCAwLjk5MTc4MiwgMC45OTE3OTksIAotICAgICAgICAgICAgMC45OTE4MTcsIDAuOTkx
ODM0LCAwLjk5MTg1MSwgMC45OTE4NjksIDAuOTkxODg2LCAwLjk5MTkwMywgMC45OTE5MiwgCi0g
ICAgICAgICAgICAwLjk5MTkzNywgMC45OTE5NTQsIDAuOTkxOTcxLCAwLjk5MTk4NywgMC45OTIw
MDQsIDAuOTkyMDIxLCAwLjk5MjAzNywgCi0gICAgICAgICAgICAwLjk5MjA1NCwgMC45OTIwNywg
MC45OTIwODYsIDAuOTkyMTAzLCAwLjk5MjExOSwgMC45OTIxMzUsIDAuOTkyMTUxLCAKLSAgICAg
ICAgICAgIDAuOTkyMTY3LCAwLjk5MjE4MywgMC45OTIxOTksIDAuOTkyMjE1LCAwLjk5MjIzLCAw
Ljk5MjI0NiwgMC45OTIyNjIsIAotICAgICAgICAgICAgMC45OTIyNzcsIDAuOTkyMjkzLCAwLjk5
MjMwOCwgMC45OTIzMjQsIDAuOTkyMzM5LCAwLjk5MjM1NCwgMC45OTIzNjksIAotICAgICAgICAg
ICAgMC45OTIzODQsIDAuOTkyNCwgMC45OTI0MTUsIDAuOTkyNDI5LCAwLjk5MjQ0NCwgMC45OTI0
NTksIDAuOTkyNDc0LCAwLjk5MjQ4OSwgCi0gICAgICAgICAgICAwLjk5MjUwMywgMC45OTI1MTgs
IDAuOTkyNTMzLCAwLjk5MjU0NywgMC45OTI1NjEsIDAuOTkyNTc2LCAwLjk5MjU5LCAKLSAgICAg
ICAgICAgIDAuOTkyNjA0LCAwLjk5MjYxOSwgMC45OTI2MzMsIDAuOTkyNjQ3LCAwLjk5MjY2MSwg
MC45OTI2NzUsIDAuOTkyNjg5LCAKLSAgICAgICAgICAgIDAuOTkyNzAzLCAwLjk5MjcxNywgMC45
OTI3MywgMC45OTI3NDQsIDAuOTkyNzU4LCAwLjk5Mjc3MSwgMC45OTI3ODUsIAotICAgICAgICAg
ICAgMC45OTI3OTgsIDAuOTkyODEyLCAwLjk5MjgyNSwgMC45OTI4MzksIDAuOTkyODUyLCAwLjk5
Mjg2NSwgMC45OTI4NzksIAotICAgICAgICAgICAgMC45OTI4OTIsIDAuOTkyOTA1LCAwLjk5Mjkx
OCwgMC45OTI5MzEsIDAuOTkyOTQ0LCAwLjk5Mjk1NywgMC45OTI5NywgCi0gICAgICAgICAgICAw
Ljk5Mjk4MywgMC45OTI5OTUsIDAuOTkzMDA4LCAwLjk5MzAyMSwgMC45OTMwMzQsIDAuOTkzMDQ2
LCAwLjk5MzA1OSwgCi0gICAgICAgICAgICAwLjk5MzA3MSwgMC45OTMwODQsIDAuOTkzMDk2LCAw
Ljk5MzEwOSwgMC45OTMxMjEsIDAuOTkzMTMzLCAwLjk5MzE0NSwgCi0gICAgICAgICAgICAwLjk5
MzE1OCwgMC45OTMxNywgMC45OTMxODIsIDAuOTkzMTk0LCAwLjk5MzIwNiwgMC45OTMyMTgsIDAu
OTkzMjMsIDAuOTkzMjQyLCAKLSAgICAgICAgICAgIDAuOTkzMjU0LCAwLjk5MzI2NiwgMC45OTMy
NzcsIDAuOTkzMjg5LCAwLjk5MzMwMSwgMC45OTMzMTIsIDAuOTkzMzI0LCAKLSAgICAgICAgICAg
IDAuOTkzMzM2LCAwLjk5MzM0NywgMC45OTMzNTksIDAuOTkzMzcsIDAuOTkzMzgyLCAwLjk5MzM5
MywgMC45OTM0MDQsIAotICAgICAgICAgICAgMC45OTM0MTYsIDAuOTkzNDI3LCAwLjk5MzQzOCwg
MC45OTM0NDksIDAuOTkzNDYsIDAuOTkzNDcyLCAwLjk5MzQ4MywgCi0gICAgICAgICAgICAwLjk5
MzQ5NCwgMC45OTM1MDUsIDAuOTkzNTE2LCAwLjk5MzUyNywgMC45OTM1MzgsIDAuOTkzNTQ4LCAw
Ljk5MzU1OSwgCi0gICAgICAgICAgICAwLjk5MzU3LCAwLjk5MzU4MSwgMC45OTM1OTEsIDAuOTkz
NjAyLCAwLjk5MzYxMywgMC45OTM2MjMsIDAuOTkzNjM0LCAKLSAgICAgICAgICAgIDAuOTkzNjQ0
LCAwLjk5MzY1NSwgMC45OTM2NjUsIDAuOTkzNjc2LCAwLjk5MzY4NiwgMC45OTM2OTcsIDAuOTkz
NzA3LCAKLSAgICAgICAgICAgIDAuOTkzNzE3LCAwLjk5MzcyNywgMC45OTM3MzgsIDAuOTkzNzQ4
LCAwLjk5Mzc1OCwgMC45OTM3NjgsIDAuOTkzNzc4LCAKLSAgICAgICAgICAgIDAuOTkzNzg4LCAw
Ljk5Mzc5OCwgMC45OTM4MDgsIDAuOTkzODE4LCAwLjk5MzgyOCwgMC45OTM4MzgsIDAuOTkzODQ4
LCAKLSAgICAgICAgICAgIDAuOTkzODU4LCAwLjk5Mzg2OCwgMC45OTM4NzcsIDAuOTkzODg3LCAw
Ljk5Mzg5NywgMC45OTM5MDcsIDAuOTkzOTE2LCAKLSAgICAgICAgICAgIDAuOTkzOTI2LCAwLjk5
MzkzNSwgMC45OTM5NDUsIDAuOTkzOTU0LCAwLjk5Mzk2NCwgMC45OTM5NzMsIDAuOTkzOTgzLCAK
LSAgICAgICAgICAgIDAuOTkzOTkyLCAwLjk5NDAwMiwgMC45OTQwMTEsIDAuOTk0MDIsIDAuOTk0
MDMsIDAuOTk0MDM5LCAwLjk5NDA0OCwgMC45OTQwNTcsIAotICAgICAgICAgICAgMC45OTQwNjcs
IDAuOTk0MDc2LCAwLjk5NDA4NSwgMC45OTQwOTQsIDAuOTk0MTAzLCAwLjk5NDExMiwgMC45OTQx
MjEsIAotICAgICAgICAgICAgMC45OTQxMywgMC45OTQxMzksIDAuOTk0MTQ4LCAwLjk5NDE1Nywg
MC45OTQxNjYsIDAuOTk0MTc1LCAwLjk5NDE4MywgCi0gICAgICAgICAgICAwLjk5NDE5MiwgMC45
OTQyMDEsIDAuOTk0MjEsIDAuOTk0MjE4LCAwLjk5NDIyNywgMC45OTQyMzYsIDAuOTk0MjQ0LCAK
LSAgICAgICAgICAgIDAuOTk0MjUzLCAwLjk5NDI2MiwgMC45OTQyNywgMC45OTQyNzksIDAuOTk0
Mjg3LCAwLjk5NDI5NiwgMC45OTQzMDQsIAotICAgICAgICAgICAgMC45OTQzMTMsIDAuOTk0MzIx
LCAwLjk5NDMyOSwgMC45OTQzMzgsIDAuOTk0MzQ2LCAwLjk5NDM1NCwgMC45OTQzNjMsIAotICAg
ICAgICAgICAgMC45OTQzNzEsIDAuOTk0Mzc5LCAwLjk5NDM4NywgMC45OTQzOTUsIDAuOTk0NDA0
LCAwLjk5NDQxMiwgMC45OTQ0MiwgCi0gICAgICAgICAgICAwLjk5NDQyOCwgMC45OTQ0MzYsIDAu
OTk0NDQ0LCAwLjk5NDQ1MiwgMC45OTQ0NiwgMC45OTQ0NjgsIDAuOTk0NDc2LCAKLSAgICAgICAg
ICAgIDAuOTk0NDg0LCAwLjk5NDQ5MiwgMC45OTQ1LCAwLjk5NDUwOCwgMC45OTQ1MTYsIDAuOTk0
NTIzLCAwLjk5NDUzMSwgMC45OTQ1MzksIAotICAgICAgICAgICAgMC45OTQ1NDcsIDAuOTk0NTU0
LCAwLjk5NDU2MiwgMC45OTQ1NywgMC45OTQ1NzcsIDAuOTk0NTg1LCAwLjk5NDU5MywgMC45OTQ2
LCAKLSAgICAgICAgICAgIDAuOTk0NjA4LCAwLjk5NDYxNSwgMC45OTQ2MjMsIDAuOTk0NjMxLCAw
Ljk5NDYzOCwgMC45OTQ2NDUsIDAuOTk0NjUzLCAKLSAgICAgICAgICAgIDAuOTk0NjYsIDAuOTk0
NjY4LCAwLjk5NDY3NSwgMC45OTQ2ODMsIDAuOTk0NjksIDAuOTk0Njk3LCAwLjk5NDcwNSwgMC45
OTQ3MTIsIAotICAgICAgICAgICAgMC45OTQ3MTksIDAuOTk0NzI2LCAwLjk5NDczNCwgMC45OTQ3
NDEsIDAuOTk0NzQ4LCAwLjk5NDc1NSwgMC45OTQ3NjIsIAotICAgICAgICAgICAgMC45OTQ3Njks
IDAuOTk0Nzc3LCAwLjk5NDc4NCwgMC45OTQ3OTEsIDAuOTk0Nzk4LCAwLjk5NDgwNSwgMC45OTQ4
MTIsIAotICAgICAgICAgICAgMC45OTQ4MTksIDAuOTk0ODI2LCAwLjk5NDgzMywgMC45OTQ4NCwg
MC45OTQ4NDcsIDAuOTk0ODU0LCAwLjk5NDg2LCAwLjk5NDg2NywgCi0gICAgICAgICAgICAwLjk5
NDg3NCwgMC45OTQ4ODEsIDAuOTk0ODg4LCAwLjk5NDg5NSwgMC45OTQ5MDEsIDAuOTk0OTA4LCAw
Ljk5NDkxNSwgCi0gICAgICAgICAgICAwLjk5NDkyMiwgMC45OTQ5MjgsIDAuOTk0OTM1LCAwLjk5
NDk0MiwgMC45OTQ5NDgsIDAuOTk0OTU1LCAwLjk5NDk2MiwgCi0gICAgICAgICAgICAwLjk5NDk2
OCwgMC45OTQ5NzUsIDAuOTk0OTgxLCAwLjk5NDk4OCwgMC45OTQ5OTQsIDAuOTk1MDAxLCAwLjk5
NTAwNywgCi0gICAgICAgICAgICAwLjk5NTAxNCwgMC45OTUwMiwgMC45OTUwMjcsIDAuOTk1MDMz
LCAwLjk5NTA0LCAwLjk5NTA0NiwgMC45OTUwNTIsIDAuOTk1MDU5LCAKLSAgICAgICAgICAgIDAu
OTk1MDY1LCAwLjk5NTA3MSwgMC45OTUwNzgsIDAuOTk1MDg0LCAwLjk5NTA5LCAwLjk5NTA5Nywg
MC45OTUxMDMsIAotICAgICAgICAgICAgMC45OTUxMDksIDAuOTk1MTE1LCAwLjk5NTEyMSwgMC45
OTUxMjgsIDAuOTk1MTM0LCAwLjk5NTE0LCAwLjk5NTE0NiwgCi0gICAgICAgICAgICAwLjk5NTE1
MiwgMC45OTUxNTgsIDAuOTk1MTY0LCAwLjk5NTE3MSwgMC45OTUxNzcsIDAuOTk1MTgzLCAwLjk5
NTE4OSwgCi0gICAgICAgICAgICAwLjk5NTE5NSwgMC45OTUyMDEsIDAuOTk1MjA3LCAwLjk5NTIx
MywgMC45OTUyMTksIDAuOTk1MjI1LCAwLjk5NTIzMSwgCi0gICAgICAgICAgICAwLjk5NTIzNiwg
MC45OTUyNDIsIDAuOTk1MjQ4LCAwLjk5NTI1NCwgMC45OTUyNiwgMC45OTUyNjYsIDAuOTk1Mjcy
LCAKLSAgICAgICAgICAgIDAuOTk1Mjc3LCAwLjk5NTI4MywgMC45OTUyODksIDAuOTk1Mjk1LCAw
Ljk5NTMwMSwgMC45OTUzMDYsIDAuOTk1MzEyLCAKLSAgICAgICAgICAgIDAuOTk1MzE4LCAwLjk5
NTMyMywgMC45OTUzMjksIDAuOTk1MzM1LCAwLjk5NTM0LCAwLjk5NTM0NiwgMC45OTUzNTIsIAot
ICAgICAgICAgICAgMC45OTUzNTcsIDAuOTk1MzYzLCAwLjk5NTM2OSwgMC45OTUzNzQsIDAuOTk1
MzgsIDAuOTk1Mzg1LCAwLjk5NTM5MSwgCi0gICAgICAgICAgICAwLjk5NTM5NiwgMC45OTU0MDIs
IDAuOTk1NDA3LCAwLjk5NTQxMywgMC45OTU0MTgsIDAuOTk1NDI0LCAwLjk5NTQyOSwgCi0gICAg
ICAgICAgICAwLjk5NTQzNSwgMC45OTU0NCwgMC45OTU0NDUsIDAuOTk1NDUxLCAwLjk5NTQ1Niwg
MC45OTU0NjIsIDAuOTk1NDY3LCAKLSAgICAgICAgICAgIDAuOTk1NDcyLCAwLjk5NTQ3OCwgMC45
OTU0ODMsIDAuOTk1NDg4LCAwLjk5NTQ5MywgMC45OTU0OTksIDAuOTk1NTA0LCAKLSAgICAgICAg
ICAgIDAuOTk1NTA5LCAwLjk5NTUxNSwgMC45OTU1MiwgMC45OTU1MjUsIDAuOTk1NTMsIDAuOTk1
NTM1LCAwLjk5NTU0MSwgMC45OTU1NDYsIAotICAgICAgICAgICAgMC45OTU1NTEsIDAuOTk1NTU2
LCAwLjk5NTU2MSwgMC45OTU1NjYsIDAuOTk1NTcxLCAwLjk5NTU3NywgMC45OTU1ODIsIAotICAg
ICAgICAgICAgMC45OTU1ODcsIDAuOTk1NTkyLCAwLjk5NTU5NywgMC45OTU2MDIsIDAuOTk1NjA3
LCAwLjk5NTYxMiwgMC45OTU2MTcsIAotICAgICAgICAgICAgMC45OTU2MjIsIDAuOTk1NjI3LCAw
Ljk5NTYzMiwgMC45OTU2MzcsIDAuOTk1NjQyLCAwLjk5NTY0NywgMC45OTU2NTIsIAotICAgICAg
ICAgICAgMC45OTU2NTcsIDAuOTk1NjYxLCAwLjk5NTY2NiwgMC45OTU2NzEsIDAuOTk1Njc2LCAw
Ljk5NTY4MSwgMC45OTU2ODYsIAotICAgICAgICAgICAgMC45OTU2OTEsIDAuOTk1Njk1LCAwLjk5
NTcsIDAuOTk1NzA1LCAwLjk5NTcxLCAwLjk5NTcxNSwgMC45OTU3MTksIDAuOTk1NzI0LCAKLSAg
ICAgICAgICAgIDAuOTk1NzI5LCAwLjk5NTczNCwgMC45OTU3MzgsIDAuOTk1NzQzLCAwLjk5NTc0
OCwgMC45OTU3NTMsIDAuOTk1NzU3LCAKLSAgICAgICAgICAgIDAuOTk1NzYyLCAwLjk5NTc2Nywg
MC45OTU3NzEsIDAuOTk1Nzc2LCAwLjk5NTc4MSwgMC45OTU3ODUsIDAuOTk1NzksIAotICAgICAg
ICAgICAgMC45OTU3OTQsIDAuOTk1Nzk5LCAwLjk5NTgwNCwgMC45OTU4MDgsIDAuOTk1ODEzLCAw
Ljk5NTgxNywgMC45OTU4MjIsIAotICAgICAgICAgICAgMC45OTU4MjYsIDAuOTk1ODMxLCAwLjk5
NTgzNSwgMC45OTU4NCwgMC45OTU4NDQsIDAuOTk1ODQ5LCAwLjk5NTg1MywgCi0gICAgICAgICAg
ICAwLjk5NTg1OCwgMC45OTU4NjIsIDAuOTk1ODY3LCAwLjk5NTg3MSwgMC45OTU4NzYsIDAuOTk1
ODgsIDAuOTk1ODg1LCAKLSAgICAgICAgICAgIDAuOTk1ODg5LCAwLjk5NTg5MywgMC45OTU4OTgs
IDAuOTk1OTAyLCAwLjk5NTkwNiwgMC45OTU5MTEsIDAuOTk1OTE1LCAKLSAgICAgICAgICAgIDAu
OTk1OTIsIDAuOTk1OTI0LCAwLjk5NTkyOCwgMC45OTU5MzIsIDAuOTk1OTM3LCAwLjk5NTk0MSwg
MC45OTU5NDUsIDAuOTk1OTUsIAotICAgICAgICAgICAgMC45OTU5NTQsIDAuOTk1OTU4LCAwLjk5
NTk2MiwgMC45OTU5NjcsIDAuOTk1OTcxLCAwLjk5NTk3NSwgMC45OTU5NzksIAotICAgICAgICAg
ICAgMC45OTU5ODQsIDAuOTk1OTg4LCAwLjk5NTk5MiwgMC45OTU5OTYsIDAuOTk2LCAwLjk5NjAw
NCwgMC45OTYwMDksIDAuOTk2MDEzLCAKLSAgICAgICAgICAgIDAuOTk2MDE3LCAwLjk5NjAyMSwg
MC45OTYwMjUsIDAuOTk2MDI5LCAwLjk5NjAzMywgMC45OTYwMzcsIDAuOTk2MDQxLCAKLSAgICAg
ICAgICAgIDAuOTk2MDQ2LCAwLjk5NjA1LCAwLjk5NjA1NCwgMC45OTYwNTgsIDAuOTk2MDYyLCAw
Ljk5NjA2NiwgMC45OTYwNywgMC45OTYwNzQsIAotICAgICAgICAgICAgMC45OTYwNzgsIDAuOTk2
MDgyLCAwLjk5NjA4NiwgMC45OTYwOSwgMC45OTYwOTQsIDAuOTk2MDk4LCAwLjk5NjEwMiwgCi0g
ICAgICAgICAgICAwLjk5NjEwNiwgMC45OTYxMSwgMC45OTYxMTQsIDAuOTk2MTE3LCAwLjk5NjEy
MSwgMC45OTYxMjUsIDAuOTk2MTI5LCAKLSAgICAgICAgICAgIDAuOTk2MTMzLCAwLjk5NjEzNywg
MC45OTYxNDEsIDAuOTk2MTQ1LCAwLjk5NjE0OSwgMC45OTYxNTIsIDAuOTk2MTU2LCAKLSAgICAg
ICAgICAgIDAuOTk2MTYsIDAuOTk2MTY0XQotCi0jIFJ1bi10aW1lIGNvbmZpZ3VyYXRpb24gcGFy
YW1ldGVycyAoY2FuIGJlIHNldCB3aXRoIGNvbW1hbmQtbGluZSBvcHRpb25zKQotCi0kcmVydW49
MQotJGlubmVyPTMKLSR3YXJtdXA9MQotJG91dGVyPTQKLSRpbmNsdWRlU3VuU3BpZGVyPXRydWUK
LSRpbmNsdWRlVjg9dHJ1ZQotJGluY2x1ZGVLcmFrZW49dHJ1ZQotJG1lYXN1cmVHQz1mYWxzZQot
JGJlbmNobWFya1BhdHRlcm49bmlsCi0kdmVyYm9zaXR5PTAKLSR0aW1lTW9kZT06cHJlY2lzZVRp
bWUKLSRmb3JjZVZNS2luZD1uaWwKLSRicmllZj1mYWxzZQotJHNpbGVudD1mYWxzZQotJHJlbW90
ZUhvc3RzPVtdCi0kYWxzb0xvY2FsPWZhbHNlCi0kc3NoT3B0aW9ucz1bXQotJHZtcyA9IFtdCi0k
bmVlZFRvQ29weVZNcyA9IGZhbHNlCi0kZG9udENvcHlWTXMgPSBmYWxzZQotCi0kcHJlcGFyZSA9
IHRydWUKLSRydW4gPSB0cnVlCi0kYW5hbHl6ZSA9IFtdCi0KLSMgSGVscGZ1bCBmdW5jdGlvbnMg
YW5kIGNsYXNzZXMKLQotZGVmIHNtYWxsVXNhZ2UKLSAgcHV0cyAiVXNlIHRoZSAtLWhlbHAgb3B0
aW9uIHRvIGdldCBiYXNpYyB1c2FnZSBpbmZvcm1hdGlvbi4iCi0gIGV4aXQgMQotZW5kCi0KLWRl
ZiB1c2FnZQotICBwdXRzICJiZW5jaGVyIFtvcHRpb25zXSA8dm0xPiBbPHZtMj4gLi4uXSIKLSAg
cHV0cwotICBwdXRzICJSdW5zIG9uZSBvciBtb3JlIEphdmFTY3JpcHQgcnVudGltZXMgYWdhaW5z
dCBTdW5TcGlkZXIsIFY4LCBhbmQvb3IgS3Jha2VuIgotICBwdXRzICJiZW5jaG1hcmtzLCBhbmQg
cmVwb3J0cyBkZXRhaWxlZCBzdGF0aXN0aWNzLiAgV2hhdCBtYWtlcyBiZW5jaGVyIHNwZWNpYWwg
aXMiCi0gIHB1dHMgInRoYXQgZWFjaCBiZW5jaG1hcmsvVk0gY29uZmlndXJhdGlvbiBpcyBydW4g
aW4gYSBzaW5nbGUgVk0gaW52b2NhdGlvbiwgYW5kIgotICBwdXRzICJ0aGUgaW52b2NhdGlvbnMg
YXJlIHJ1biBpbiByYW5kb20gb3JkZXIuICBUaGlzIG1pbmltaXplcyBzeXN0ZW1hdGljcyBkdWUg
dG8iCi0gIHB1dHMgIm9uZSBiZW5jaG1hcmsgcG9sbHV0aW5nIHRoZSBydW5uaW5nIHRpbWUgb2Yg
YW5vdGhlci4gIFRoZSBmaW5lLWdyYWluZWQiCi0gIHB1dHMgImludGVybGVhdmluZyBvZiBWTSBp
bnZvY2F0aW9ucyBmdXJ0aGVyIG1pbmltaXplcyBzeXN0ZW1hdGljcyBkdWUgdG8gY2hhbmdlcyBp
biIKLSAgcHV0cyAidGhlIHBlcmZvcm1hbmNlIG9yIGJlaGF2aW9yIG9mIHlvdXIgbWFjaGluZS4i
Ci0gIHB1dHMgCi0gIHB1dHMgIkJlbmNoZXIgaXMgaGlnaGx5IGNvbmZpZ3VyYWJsZS4gIFlvdSBj
YW4gY29tcGFyZSBhcyBtYW55IFZNcyBhcyB5b3UgbGlrZS4gIFlvdSIKLSAgcHV0cyAiY2FuIGNo
YW5nZSB0aGUgYW1vdW50IG9mIHdhcm0tdXAgaXRlcmF0aW9ucywgbnVtYmVyIG9mIGl0ZXJhdGlv
bnMgZXhlY3V0ZWQgcGVyIgotICBwdXRzICJWTSBpbnZvY2F0aW9uLCBhbmQgdGhlIG51bWJlciBv
ZiBWTSBpbnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiAgQnkgZGVmYXVsdCwiCi0gIHB1dHMgIlN1
blNwaWRlciwgVk0sIGFuZCBLcmFrZW4gYXJlIGFsbCBydW47IGJ1dCB5b3UgY2FuIHJ1biBhbnkg
Y29tYmluYXRpb24gb2YgdGhlc2UiCi0gIHB1dHMgInN1aXRlcy4iCi0gIHB1dHMKLSAgcHV0cyAi
VGhlIDx2bT4gc2hvdWxkIGJlIGVpdGhlciBhIHBhdGggdG8gYSBKYXZhU2NyaXB0IHJ1bnRpbWUg
ZXhlY3V0YWJsZSAoc3VjaCBhcyIKLSAgcHV0cyAianNjKSwgb3IgYSBzdHJpbmcgb2YgdGhlIGZv
cm0gPG5hbWU+OjxwYXRoPiwgd2hlcmUgdGhlIDxwYXRoPiBpcyB0aGUgcGF0aCB0byIKLSAgcHV0
cyAidGhlIGV4ZWN1dGFibGUgYW5kIDxuYW1lPiBpcyB0aGUgbmFtZSB0aGF0IHlvdSB3b3VsZCBs
aWtlIHRvIGdpdmUgdGhlIgotICBwdXRzICJjb25maWd1cmF0aW9uIGZvciB0aGUgcHVycG9zZW9m
IHJlcG9ydGluZy4gIElmIG5vIG5hbWUgaXMgZ2l2ZW4sIGEgZ2VuZXJpYyBuYW1lIgotICBwdXRz
ICJvZiB0aGUgZm9ybSBDb25mIzxuPiB3aWxsIGJlIGFzY3JpYmVkIHRvIHRoZSBjb25maWd1cmF0
aW9uIGF1dG9tYXRpY2FsbHkuIgotICBwdXRzCi0gIHB1dHMgIk9wdGlvbnM6IgotICBwdXRzICIt
LXJlcnVuIDxuPiAgICAgICAgICBTZXQgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIG9mIHRoZSBi
ZW5jaG1hcmsgdGhhdCIKLSAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0ZSB0
byB0aGUgbWVhc3VyZWQgcnVuIHRpbWUuICBEZWZhdWx0IGlzICN7JHJlcnVufS4iCi0gIHB1dHMg
Ii0taW5uZXIgPG4+ICAgICAgICAgIFNldCB0aGUgbnVtYmVyIG9mIGlubmVyIChwZXItcnVudGlt
ZS1pbnZvY2F0aW9uKSIKLSAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9ucy4g
IERlZmF1bHQgaXMgI3skaW5uZXJ9LiIKLSAgcHV0cyAiLS1vdXRlciA8bj4gICAgICAgICAgU2V0
IHRoZSBudW1iZXIgb2YgcnVudGltZSBpbnZvY2F0aW9ucyBmb3IgZWFjaCBiZW5jaG1hcmsuIgot
ICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IGlzICN7JG91dGVyfS4iCi0gIHB1
dHMgIi0td2FybXVwIDxuPiAgICAgICAgIFNldCB0aGUgbnVtYmVyIG9mIHdhcm0tdXAgcnVucyBw
ZXIgaW52b2NhdGlvbi4gIERlZmF1bHQiCi0gIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIGlz
ICN7JHdhcm11cH0uIgotICBwdXRzICItLXRpbWluZy1tb2RlICAgICAgICBTZXQgdGhlIHdheSB0
aGF0IGJlbmNoZXIgbWVhc3VyZXMgdGltZS4gIFBvc3NpYmxlIHZhbHVlcyIKLSAgcHV0cyAiICAg
ICAgICAgICAgICAgICAgICAgYXJlICdwcmVjaXNlVGltZScgYW5kICdkYXRlJy4gIERlZmF1bHQg
aXMgJ3ByZWNpc2VUaW1lJy4iCi0gIHB1dHMgIi0tZm9yY2Utdm0ta2luZCAgICAgIFR1cm4gb2Zm
IGF1dG8tZGV0ZWN0aW9uIG9mIFZNIGtpbmQsIGFuZCBhc3N1bWUgdGhhdCBpdCBpcyIKLSAgcHV0
cyAiICAgICAgICAgICAgICAgICAgICAgdGhlIG9uZSBzcGVjaWZpZWQuICBWYWxpZCBhcmd1bWVu
dHMgYXJlICdqc2MnIG9yIgotICBwdXRzICIgICAgICAgICAgICAgICAgICAgICAnRHVtcFJlbmRl
clRyZWUnLiIKLSAgcHV0cyAiLS1mb3JjZS12bS1jb3B5ICAgICAgRm9yY2UgVk0gYnVpbGRzIHRv
IGJlIGNvcGllZCB0byBiZW5jaGVyJ3Mgd29ya2luZyBkaXJlY3RvcnkuIgotICBwdXRzICIgICAg
ICAgICAgICAgICAgICAgICBUaGlzIG1heSByZWR1Y2UgcGF0aG9sb2dpZXMgcmVzdWx0aW5nIGZy
b20gcGF0aCBuYW1lcy4iCi0gIHB1dHMgIi0tZG9udC1jb3B5LXZtcyAgICAgIERvbid0IGNvcHkg
Vk1zIGV2ZW4gd2hlbiBkb2luZyBhIHJlbW90ZSBiZW5jaG1hcmtpbmcgcnVuOyIKLSAgcHV0cyAi
ICAgICAgICAgICAgICAgICAgICAgaW5zdGVhZCBhc3N1bWUgdGhhdCB0aGV5IGFyZSBhbHJlYWR5
IHRoZXJlLiIKLSAgcHV0cyAiLS12OC1vbmx5ICAgICAgICAgICAgT25seSBydW4gVjguIgotICBw
dXRzICItLXN1bnNwaWRlci1vbmx5ICAgICBPbmx5IHJ1biBTdW5TcGlkZXIuIgotICBwdXRzICIt
LWtyYWtlbi1vbmx5ICAgICAgICBPbmx5IHJ1biBLcmFrZW4uIgotICBwdXRzICItLWV4Y2x1ZGUt
djggICAgICAgICBFeGNsdWRlIFY4IChvbmx5IHJ1biBTdW5TcGlkZXIgYW5kIEtyYWtlbikuIgot
ICBwdXRzICItLWV4Y2x1ZGUtc3Vuc3BpZGVyICBFeGNsdWRlIFN1blNwaWRlciAob25seSBydW4g
VjggYW5kIEtyYWtlbikuIgotICBwdXRzICItLWV4Y2x1ZGUta3Jha2VuICAgICBFeGNsdWRlIEty
YWtlbiAob25seSBydW4gU3VuU3BpZGVyIGFuZCBWOCkuIgotICBwdXRzICItLWJlbmNobWFya3Mg
ICAgICAgICBPbmx5IHJ1biBiZW5jaG1hcmtzIG1hdGNoaW5nIHRoZSBnaXZlbiByZWd1bGFyIGV4
cHJlc3Npb24uIgotICBwdXRzICItLW1lYXN1cmUtZ2MgICAgICAgICBUdXJuIG9mZiBtYW51YWwg
Y2FsbHMgdG8gZ2MoKSwgc28gdGhhdCBHQyB0aW1lIGlzIG1lYXN1cmVkLiIKLSAgcHV0cyAiICAg
ICAgICAgICAgICAgICAgICAgV29ya3MgYmVzdCB3aXRoIGxhcmdlIHZhbHVlcyBvZiAtLWlubmVy
LiAgWW91IGNhbiBhbHNvIHNheSIKLSAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAgLS1tZWFz
dXJlLWdjIDxjb25mPiwgd2hpY2ggdHVybnMgdGhpcyBvbiBmb3Igb25lIgotICBwdXRzICIgICAg
ICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIG9ubHkuIgotICBwdXRzICItLXZlcmJvc2Ug
b3IgLXYgICAgICBQcmludCBtb3JlIHN0dWZmLiIKLSAgcHV0cyAiLS1icmllZiAgICAgICAgICAg
ICAgUHJpbnQgb25seSB0aGUgZmluYWwgcmVzdWx0IGZvciBlYWNoIFZNLiIKLSAgcHV0cyAiLS1z
aWxlbnQgICAgICAgICAgICAgRG9uJ3QgcHJpbnQgcHJvZ3Jlc3MuIFRoaXMgbWlnaHQgc2xpZ2h0
bHkgcmVkdWNlIHNvbWUiCi0gIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNl
IHBlcnR1cmJhdGlvbi4iCi0gIHB1dHMgIi0tcmVtb3RlIDxzc2hob3N0cz4gIFBlcmZvcm1hbmNl
IHBlcmZvcm1hbmNlIG1lYXN1cmVtZW50cyByZW1vdGVseSwgb24gdGhlIGdpdmVuIgotICBwdXRz
ICIgICAgICAgICAgICAgICAgICAgICBTU0ggaG9zdChzKS4gRWFzaWVzdCB3YXkgdG8gdXNlIHRo
aXMgaXMgdG8gc3BlY2lmeSB0aGUgU1NIIgotICBwdXRzICIgICAgICAgICAgICAgICAgICAgICB1
c2VyQGhvc3Qgc3RyaW5nLiBIb3dldmVyLCB5b3UgY2FuIGFsc28gc3VwcGx5IGEgY29tbWEtIgot
ICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0ZWQgbGlzdCBvZiBTU0ggaG9zdHMu
IEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoaXMiCi0gIHB1dHMgIiAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbiBtdWx0aXBsZSB0aW1lcyB0byBzcGVjaWZ5IG11bHRpcGxlIGhvc3RzLiBU
aGlzIgotICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGNvcGllcyB0
aGUgV2ViS2l0IHJlbGVhc2UgYnVpbGRzIG9mIHRoZSBWTXMiCi0gIHB1dHMgIiAgICAgICAgICAg
ICAgICAgICAgIHlvdSBzcGVjaWZpZWQgdG8gYWxsIG9mIHRoZSBob3N0cy4iCi0gIHB1dHMgIi0t
c3NoLW9wdGlvbnMgICAgICAgIFBhc3MgYWRkaXRpb25hbCBvcHRpb25zIHRvIFNTSC4iCi0gIHB1
dHMgIi0tbG9jYWwgICAgICAgICAgICAgIEFsc28gZG8gYSBsb2NhbCBiZW5jaG1hcmsgcnVuIGV2
ZW4gd2hlbiBkb2luZyAtLXJlbW90ZS4iCi0gIHB1dHMgIi0tcHJlcGFyZS1vbmx5ICAgICAgIE9u
bHkgcHJlcGFyZSB0aGUgYmVuY2hlciBydW5zY3JpcHQgKGEgc2hlbGwgc2NyaXB0IHRoYXQiCi0g
IHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIGludm9rZXMgdGhlIFZNcyB0byBydW4gYmVuY2ht
YXJrcykgYnV0IGRvbid0IHJ1biBpdC4iCi0gIHB1dHMgIi0tYW5hbHl6ZSAgICAgICAgICAgIE9u
bHkgcmVhZCB0aGUgb3V0cHV0IG9mIHRoZSBydW5zY3JpcHQgYnV0IGRvbid0IGRvIGFueXRoaW5n
IgotICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBlbHNlLiBUaGlzIHJlcXVpcmVzIHBhc3Np
bmcgdGhlIHNhbWUgYXJndW1lbnRzIHRvIGJlbmNoZXIiCi0gIHB1dHMgIiAgICAgICAgICAgICAg
ICAgICAgIHRoYXQgeW91IHBhc3NlZCB3aGVuIHJ1bm5pbmcgLS1wcmVwYXJlLW9ubHkuIgotICBw
dXRzICItLWhlbHAgb3IgLWggICAgICAgICBEaXNwbGF5IHRoaXMgbWVzc2FnZS4iCi0gIHB1dHMK
LSAgcHV0cyAiRXhhbXBsZToiCi0gIHB1dHMgImJlbmNoZXIgVGlwT2ZUcmVlOi9Wb2x1bWVzL0Rh
dGEvcGl6bG8vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL2pzYyBNeUNoYW5nZXM6L1Zv
bHVtZXMvRGF0YS9waXpsby9zZWNvbmRhcnkvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNl
L2pzYyIKLSAgZXhpdCAxCi1lbmQKLQotZGVmIGZhaWwocmVhc29uKQotICBpZiByZWFzb24ucmVz
cG9uZF90bz8gOmJhY2t0cmFjZQotICAgIHB1dHMgIkZBSUxFRDogI3tyZWFzb259IgotICAgIHB1
dHMgIlN0YWNrIHRyYWNlOiIKLSAgICBwdXRzIHJlYXNvbi5iYWNrdHJhY2Uuam9pbigiXG4iKQot
ICBlbHNlCi0gICAgcHV0cyAiRkFJTEVEOiAje3JlYXNvbn0iCi0gIGVuZAotICBzbWFsbFVzYWdl
Ci1lbmQKLQotZGVmIHF1aWNrRmFpbChyMSxyMikKLSAgJHN0ZGVyci5wdXRzICIjeyQwfTogI3ty
MX0iCi0gIHB1dHMKLSAgZmFpbChyMikKLWVuZAotCi1kZWYgaW50QXJnKGFyZ05hbWUsYXJnLG1p
bixtYXgpCi0gIHJlc3VsdD1hcmcudG9faQotICB1bmxlc3MgcmVzdWx0LnRvX3MgPT0gYXJnCi0g
ICAgcXVpY2tGYWlsKCJFeHBlY3RlZCBhbiBpbnRlZ2VyIHZhbHVlIGZvciAje2FyZ05hbWV9LCBi
dXQgZ290ICN7YXJnfS4iLAotICAgICAgICAgICAgICAiSW52YWxpZCBhcmd1bWVudCBmb3IgY29t
bWFuZC1saW5lIG9wdGlvbiIpCi0gIGVuZAotICBpZiBtaW4gYW5kIHJlc3VsdDxtaW4KLSAgICBx
dWlja0ZhaWwoIkFyZ3VtZW50IGZvciAje2FyZ05hbWV9IGNhbm5vdCBiZSBzbWFsbGVyIHRoYW4g
I3ttaW59LiIsCi0gICAgICAgICAgICAgICJJbnZhbGlkIGFyZ3VtZW50IGZvciBjb21tYW5kLWxp
bmUgb3B0aW9uIikKLSAgZW5kCi0gIGlmIG1heCBhbmQgcmVzdWx0Pm1heAotICAgIHF1aWNrRmFp
bCgiQXJndW1lbnQgZm9yICN7YXJnTmFtZX0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAje21heH0u
IiwKLSAgICAgICAgICAgICAgIkludmFsaWQgYXJndW1lbnQgZm9yIGNvbW1hbmQtbGluZSBvcHRp
b24iKQotICBlbmQKLSAgcmVzdWx0Ci1lbmQKLQotZGVmIGNvbXB1dGVNZWFuKGFycmF5KQotICBz
dW09MC4wCi0gIGFycmF5LmVhY2ggewotICAgIHwgdmFsdWUgfAotICAgIHN1bSArPSB2YWx1ZQot
ICB9Ci0gIHN1bS9hcnJheS5sZW5ndGgKLWVuZAotCi1kZWYgY29tcHV0ZUdlb21ldHJpY01lYW4o
YXJyYXkpCi0gIG11bHQ9MS4wCi0gIGFycmF5LmVhY2ggewotICAgIHwgdmFsdWUgfAotICAgIG11
bHQqPXZhbHVlCi0gIH0KLSAgbXVsdCoqKDEuMC9hcnJheS5sZW5ndGgpCi1lbmQKLQotZGVmIGNv
bXB1dGVIYXJtb25pY01lYW4oYXJyYXkpCi0gIDEuMCAvIGNvbXB1dGVNZWFuKGFycmF5LmNvbGxl
Y3R7IHwgdmFsdWUgfCAxLjAgLyB2YWx1ZSB9KQotZW5kCi0KLWRlZiBjb21wdXRlU3RkRGV2KGFy
cmF5KQotICBjYXNlIGFycmF5Lmxlbmd0aAotICB3aGVuIDAKLSAgICAwLjAvMC4wCi0gIHdoZW4g
MQotICAgIDAuMAotICBlbHNlCi0gICAgYmVnaW4KLSAgICAgIG1lYW49Y29tcHV0ZU1lYW4oYXJy
YXkpCi0gICAgICBzdW09MC4wCi0gICAgICBhcnJheS5lYWNoIHsKLSAgICAgICAgfCB2YWx1ZSB8
Ci0gICAgICAgIHN1bSArPSAodmFsdWUtbWVhbikqKjIKLSAgICAgIH0KLSAgICAgIE1hdGguc3Fy
dChzdW0vKGFycmF5Lmxlbmd0aC0xKSkKLSAgICByZXNjdWUKLSAgICAgIDAuMC8wLjAKLSAgICBl
bmQKLSAgZW5kCi1lbmQKLQotY2xhc3MgQXJyYXkKLSAgZGVmIHNodWZmbGUhCi0gICAgc2l6ZS5k
b3dudG8oMSkgeyB8bnwgcHVzaCBkZWxldGVfYXQocmFuZChuKSkgfQotICAgIHNlbGYKLSAgZW5k
Ci1lbmQKLQotZGVmIGludmVyc2VCZXRhUmVndWxhcml6ZWQobikKLSAgSUJSX0xPT0tVUFtuLTFd
Ci1lbmQKLQotZGVmIG51bVRvU3RyKG51bSkKLSAgIiUuNGYiJShudW0udG9fZikKLWVuZAotICAK
LWNsYXNzIE5vQ2hhbmdlCi0gIGF0dHJfcmVhZGVyIDphbW91bnRGYXN0ZXIKLSAgCi0gIGRlZiBp
bml0aWFsaXplKGFtb3VudEZhc3RlcikKLSAgICBAYW1vdW50RmFzdGVyID0gYW1vdW50RmFzdGVy
Ci0gIGVuZAotICAKLSAgZGVmIHNob3J0Rm9ybQotICAgICIgIgotICBlbmQKLSAgCi0gIGRlZiBs
b25nRm9ybQotICAgICIgIG1pZ2h0IGJlICN7bnVtVG9TdHIoQGFtb3VudEZhc3Rlcil9eCBmYXN0
ZXIiCi0gIGVuZAotICAKLSAgZGVmIHRvX3MKLSAgICBpZiBAYW1vdW50RmFzdGVyIDwgMS4wMQot
ICAgICAgIiIKLSAgICBlbHNlCi0gICAgICBsb25nRm9ybQotICAgIGVuZAotICBlbmQKLWVuZAot
Ci1jbGFzcyBGYXN0ZXIKLSAgYXR0cl9yZWFkZXIgOmFtb3VudEZhc3RlcgotICAKLSAgZGVmIGlu
aXRpYWxpemUoYW1vdW50RmFzdGVyKQotICAgIEBhbW91bnRGYXN0ZXIgPSBhbW91bnRGYXN0ZXIK
LSAgZW5kCi0gIAotICBkZWYgc2hvcnRGb3JtCi0gICAgIl4iCi0gIGVuZAotICAKLSAgZGVmIGxv
bmdGb3JtCi0gICAgIl4gZGVmaW5pdGVseSAje251bVRvU3RyKEBhbW91bnRGYXN0ZXIpfXggZmFz
dGVyIgotICBlbmQKLSAgCi0gIGRlZiB0b19zCi0gICAgbG9uZ0Zvcm0KLSAgZW5kCi1lbmQKLQot
Y2xhc3MgU2xvd2VyCi0gIGF0dHJfcmVhZGVyIDphbW91bnRTbG93ZXIKLSAgCi0gIGRlZiBpbml0
aWFsaXplKGFtb3VudFNsb3dlcikKLSAgICBAYW1vdW50U2xvd2VyID0gYW1vdW50U2xvd2VyCi0g
IGVuZAotICAKLSAgZGVmIHNob3J0Rm9ybQotICAgICIhIgotICBlbmQKLSAgCi0gIGRlZiBsb25n
Rm9ybQotICAgICIhIGRlZmluaXRlbHkgI3tudW1Ub1N0cihAYW1vdW50U2xvd2VyKX14IHNsb3dl
ciIKLSAgZW5kCi0gIAotICBkZWYgdG9fcwotICAgIGxvbmdGb3JtCi0gIGVuZAotZW5kCi0KLWNs
YXNzIE1heUJlU2xvd2VyCi0gIGF0dHJfcmVhZGVyIDphbW91bnRTbG93ZXIKLSAgCi0gIGRlZiBp
bml0aWFsaXplKGFtb3VudFNsb3dlcikKLSAgICBAYW1vdW50U2xvd2VyID0gYW1vdW50U2xvd2Vy
Ci0gIGVuZAotICAKLSAgZGVmIHNob3J0Rm9ybQotICAgICI/IgotICBlbmQKLSAgCi0gIGRlZiBs
b25nRm9ybQotICAgICI/IG1pZ2h0IGJlICN7bnVtVG9TdHIoQGFtb3VudFNsb3dlcil9eCBzbG93
ZXIiCi0gIGVuZAotICAKLSAgZGVmIHRvX3MKLSAgICBpZiBAYW1vdW50U2xvd2VyIDwgMS4wMQot
ICAgICAgIj8iCi0gICAgZWxzZQotICAgICAgbG9uZ0Zvcm0KLSAgICBlbmQKLSAgZW5kCi1lbmQK
LQotY2xhc3MgU3RhdHMKLSAgZGVmIGluaXRpYWxpemUKLSAgICBAYXJyYXkgPSBbXQotICBlbmQK
LSAgCi0gIGRlZiBhZGQodmFsdWUpCi0gICAgaWYgdmFsdWUuaXNfYT8gU3RhdHMKLSAgICAgIGFk
ZCh2YWx1ZS5hcnJheSkKLSAgICBlbHNpZiB2YWx1ZS5yZXNwb25kX3RvPyA6ZWFjaAotICAgICAg
dmFsdWUuZWFjaCB7Ci0gICAgICAgIHwgdiB8Ci0gICAgICAgIGFkZCh2KQotICAgICAgfQotICAg
IGVsc2UKLSAgICAgIEBhcnJheSA8PCB2YWx1ZS50b19mCi0gICAgZW5kCi0gIGVuZAotICAgIAot
ICBkZWYgYXJyYXkKLSAgICBAYXJyYXkKLSAgZW5kCi0gIAotICBkZWYgc3VtCi0gICAgcmVzdWx0
PTAKLSAgICBAYXJyYXkuZWFjaCB7Ci0gICAgICB8IHZhbHVlIHwKLSAgICAgIHJlc3VsdCArPSB2
YWx1ZQotICAgIH0KLSAgICByZXN1bHQKLSAgZW5kCi0gIAotICBkZWYgbWluCi0gICAgQGFycmF5
Lm1pbgotICBlbmQKLSAgCi0gIGRlZiBtYXgKLSAgICBAYXJyYXkubWF4Ci0gIGVuZAotICAKLSAg
ZGVmIHNpemUKLSAgICBAYXJyYXkubGVuZ3RoCi0gIGVuZAotICAKLSAgZGVmIG1lYW4KLSAgICBj
b21wdXRlTWVhbihhcnJheSkKLSAgZW5kCi0gIAotICBkZWYgYXJpdGhtZXRpY01lYW4KLSAgICBt
ZWFuCi0gIGVuZAotICAKLSAgZGVmIHN0ZERldgotICAgIGNvbXB1dGVTdGREZXYoYXJyYXkpCi0g
IGVuZAotCi0gIGRlZiBzdGRFcnIKLSAgICBzdGREZXYvTWF0aC5zcXJ0KHNpemUpCi0gIGVuZAot
ICAKLSAgIyBDb21wdXRlcyBhIDk1JSBTdHVkZW50J3MgdCBkaXN0cmlidXRpb24gY29uZmlkZW5j
ZSBpbnRlcnZhbAotICBkZWYgY29uZkludAotICAgIGlmIHNpemUgPCAyCi0gICAgICAwLjAvMC4w
Ci0gICAgZWxzZQotICAgICAgcmFpc2UgaWYgc2l6ZSA+IDEwMDAKLSAgICAgIE1hdGguc3FydChz
aXplLTEuMCkqc3RkRXJyKk1hdGguc3FydCgtMS4wKzEuMC9pbnZlcnNlQmV0YVJlZ3VsYXJpemVk
KHNpemUtMSkpCi0gICAgZW5kCi0gIGVuZAotICAKLSAgZGVmIGxvd2VyCi0gICAgbWVhbi1jb25m
SW50Ci0gIGVuZAotICAKLSAgZGVmIHVwcGVyCi0gICAgbWVhbitjb25mSW50Ci0gIGVuZAotICAK
LSAgZGVmIGdlb21ldHJpY01lYW4KLSAgICBjb21wdXRlR2VvbWV0cmljTWVhbihhcnJheSkKLSAg
ZW5kCi0gIAotICBkZWYgaGFybW9uaWNNZWFuCi0gICAgY29tcHV0ZUhhcm1vbmljTWVhbihhcnJh
eSkKLSAgZW5kCi0gIAotICBkZWYgY29tcGFyZVRvKG90aGVyKQotICAgIGlmIHVwcGVyIDwgb3Ro
ZXIubG93ZXIKLSAgICAgIEZhc3Rlci5uZXcob3RoZXIubWVhbi9tZWFuKQotICAgIGVsc2lmIGxv
d2VyID4gb3RoZXIudXBwZXIKLSAgICAgIFNsb3dlci5uZXcobWVhbi9vdGhlci5tZWFuKQotICAg
IGVsc2lmIG1lYW4gPiBvdGhlci5tZWFuCi0gICAgICBNYXlCZVNsb3dlci5uZXcobWVhbi9vdGhl
ci5tZWFuKQotICAgIGVsc2UKLSAgICAgIE5vQ2hhbmdlLm5ldyhvdGhlci5tZWFuL21lYW4pCi0g
ICAgZW5kCi0gIGVuZAotICAKLSAgZGVmIHRvX3MKLSAgICAic2l6ZSA9ICN7c2l6ZX0sIG1lYW4g
PSAje21lYW59LCBzdGREZXYgPSAje3N0ZERldn0sIHN0ZEVyciA9ICN7c3RkRXJyfSwgY29uZklu
dCA9ICN7Y29uZkludH0iCi0gIGVuZAotZW5kCi0KLWRlZiBkb3VibGVQdXRzKG91dDEsb3V0Mixt
c2cpCi0gIG91dDEucHV0cyAiI3tvdXQyLnBhdGh9OiAje21zZ30iIGlmICR2ZXJib3NpdHk+PTMK
LSAgb3V0Mi5wdXRzIG1zZwotZW5kCi0KLWNsYXNzIEJlbmNoZmlsZSA8IEZpbGUKLSAgQEBjb3Vu
dGVyID0gMAotICAKLSAgYXR0cl9yZWFkZXIgOmZpbGVuYW1lLCA6YmFzZW5hbWUKLSAgCi0gIGRl
ZiBpbml0aWFsaXplKG5hbWUpCi0gICAgQGJhc2VuYW1lLCBAZmlsZW5hbWUgPSBCZW5jaGZpbGUu
dW5pcXVlRmlsZW5hbWUobmFtZSkKLSAgICBzdXBlcihAZmlsZW5hbWUsICJ3IikKLSAgZW5kCi0g
IAotICBkZWYgc2VsZi51bmlxdWVGaWxlbmFtZShuYW1lKQotICAgIGlmIG5hbWUuaXNfYT8gQXJy
YXkKLSAgICAgIGJhc2VuYW1lID0gbmFtZVswXSArIEBAY291bnRlci50b19zICsgbmFtZVsxXQot
ICAgIGVsc2UKLSAgICAgIGJhc2VuYW1lID0gbmFtZSArIEBAY291bnRlci50b19zCi0gICAgZW5k
Ci0gICAgZmlsZW5hbWUgPSBCRU5DSF9EQVRBX1BBVEggKyAiLyIgKyBiYXNlbmFtZQotICAgIEBA
Y291bnRlciArPSAxCi0gICAgcmFpc2UgIkJlbmNoZmlsZSAje2ZpbGVuYW1lfSBhbHJlYWR5IGV4
aXN0cyIgaWYgRmlsZVRlc3QuZXhpc3Q/KGZpbGVuYW1lKQotICAgIFtiYXNlbmFtZSwgZmlsZW5h
bWVdCi0gIGVuZAotICAKLSAgZGVmIHNlbGYuY3JlYXRlKG5hbWUpCi0gICAgZmlsZSA9IEJlbmNo
ZmlsZS5uZXcobmFtZSkKLSAgICB5aWVsZCBmaWxlCi0gICAgZmlsZS5jbG9zZQotICAgIGZpbGUu
YmFzZW5hbWUKLSAgZW5kCi1lbmQKLQotJGRhdGFGaWxlcz17fQotZGVmIGVuc3VyZUZpbGUoa2V5
LCBmaWxlbmFtZSkKLSAgdW5sZXNzICRkYXRhRmlsZXNba2V5XQotICAgICRkYXRhRmlsZXNba2V5
XSA9IEJlbmNoZmlsZS5jcmVhdGUoa2V5KSB7Ci0gICAgICB8IG91dHAgfAotICAgICAgZG91Ymxl
UHV0cygkc3RkZXJyLG91dHAsSU86OnJlYWQoZmlsZW5hbWUpKQotICAgIH0KLSAgZW5kCi0gICRk
YXRhRmlsZXNba2V5XQotZW5kCi0gIAotZGVmIGVtaXRCZW5jaFJ1bkNvZGVGaWxlKG5hbWUsIHBs
YW4sIGJlbmNoRGF0YVBhdGgsIGJlbmNoUGF0aCkKLSAgY2FzZSBwbGFuLnZtLnZtVHlwZQotICB3
aGVuIDpqc2MKLSAgICBCZW5jaGZpbGUuY3JlYXRlKCJiZW5jaGVyIikgewotICAgICAgfCBmaWxl
IHwKLSAgICAgIGNhc2UgJHRpbWVNb2RlCi0gICAgICB3aGVuIDpwcmVjaXNlVGltZQotICAgICAg
ICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24gX19iZW5jaGVyX2N1clRpbWVNUygp
IHsiKQotICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgcmV0dXJuIHByZWNpc2VU
aW1lKCkqMTAwMCIpCi0gICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJ9IikKLSAgICAg
IHdoZW4gOmRhdGUKLSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsImZ1bmN0aW9uIF9f
YmVuY2hlcl9jdXJUaW1lTVMoKSB7IikKLSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUs
IiAgIHJldHVybiBEYXRlLm5vdygpIikKLSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUs
In0iKQotICAgICAgZWxzZQotICAgICAgICByYWlzZQotICAgICAgZW5kCi0KLSAgICAgIGRvdWJs
ZVB1dHMoJHN0ZGVycixmaWxlLCJpZiAodHlwZW9mIG5vSW5saW5lID09ICd1bmRlZmluZWQnKSBu
b0lubGluZSA9IGZ1bmN0aW9uKCl7fTsiKQotCi0gICAgICBpZiBiZW5jaERhdGFQYXRoCi0gICAg
ICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJsb2FkKCN7YmVuY2hEYXRhUGF0aC5pbnNwZWN0
fSk7IikKLSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsImdjKCk7IikKLSAgICAgICAg
ZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsImZvciAodmFyIF9fYmVuY2hlcl9pbmRleCA9IDA7IF9f
YmVuY2hlcl9pbmRleCA8ICN7JHdhcm11cCskaW5uZXJ9OyArK19fYmVuY2hlcl9pbmRleCkgeyIp
Ci0gICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICBiZWZvcmUgPSBfX2JlbmNoZXJf
Y3VyVGltZU1TKCk7IikKLSAgICAgICAgJHJlcnVuLnRpbWVzIHsKLSAgICAgICAgICBkb3VibGVQ
dXRzKCRzdGRlcnIsZmlsZSwiICAgbG9hZCgje2JlbmNoUGF0aC5pbnNwZWN0fSk7IikKLSAgICAg
ICAgfQotICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgYWZ0ZXIgPSBfX2JlbmNo
ZXJfY3VyVGltZU1TKCk7IikKLSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgIGlm
IChfX2JlbmNoZXJfaW5kZXggPj0gI3skd2FybXVwfSkgcHJpbnQoXCIje25hbWV9OiAje3BsYW4u
dm19OiAje3BsYW4uaXRlcmF0aW9ufTogXCIgKyAoX19iZW5jaGVyX2luZGV4IC0gI3skd2FybXVw
fSkgKyBcIjogVGltZTogXCIrKGFmdGVyLWJlZm9yZSkpOyIpOwotICAgICAgICBkb3VibGVQdXRz
KCRzdGRlcnIsZmlsZSwiICAgZ2MoKTsiKSB1bmxlc3MgcGxhbi52bS5zaG91bGRNZWFzdXJlR0MK
LSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIn0iKQotICAgICAgZWxzZQotICAgICAg
ICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24gX19iZW5jaGVyX3J1bihfX2JlbmNo
ZXJfd2hhdCkgeyIpCi0gICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICB2YXIgX19i
ZW5jaGVyX2JlZm9yZSA9IF9fYmVuY2hlcl9jdXJUaW1lTVMoKTsiKQotICAgICAgICAkcmVydW4u
dGltZXMgewotICAgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICBydW4oX19iZW5j
aGVyX3doYXQpOyIpCi0gICAgICAgIH0KLSAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUs
IiAgIHZhciBfX2JlbmNoZXJfYWZ0ZXIgPSBfX2JlbmNoZXJfY3VyVGltZU1TKCk7IikKLSAgICAg
ICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgIHJldHVybiBfX2JlbmNoZXJfYWZ0ZXIgLSBf
X2JlbmNoZXJfYmVmb3JlOyIpCi0gICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJ9IikK
LSAgICAgICAgJHdhcm11cC50aW1lcyB7Ci0gICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZp
bGUsIl9fYmVuY2hlcl9ydW4oI3tiZW5jaFBhdGguaW5zcGVjdH0pIikKLSAgICAgICAgICBkb3Vi
bGVQdXRzKCRzdGRlcnIsZmlsZSwiZ2MoKTsiKSB1bmxlc3MgcGxhbi52bS5zaG91bGRNZWFzdXJl
R0MKLSAgICAgICAgfQotICAgICAgICAkaW5uZXIudGltZXMgewotICAgICAgICAgIHwgaW5uZXJJ
bmRleCB8Ci0gICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsInByaW50KFwiI3tuYW1l
fTogI3twbGFuLnZtfTogI3twbGFuLml0ZXJhdGlvbn06ICN7aW5uZXJJbmRleH06IFRpbWU6IFwi
K19fYmVuY2hlcl9ydW4oI3tiZW5jaFBhdGguaW5zcGVjdH0pKTsiKQotICAgICAgICAgIGRvdWJs
ZVB1dHMoJHN0ZGVycixmaWxlLCJnYygpOyIpIHVubGVzcyBwbGFuLnZtLnNob3VsZE1lYXN1cmVH
QwotICAgICAgICB9Ci0gICAgICBlbmQKLSAgICB9Ci0gIHdoZW4gOmR1bXBSZW5kZXJUcmVlCi0g
ICAgbWFpbkNvZGUgPSBCZW5jaGZpbGUuY3JlYXRlKCJiZW5jaGVyIikgewotICAgICAgfCBmaWxl
IHwKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJfX2JlbmNoZXJfY291bnQgPSAwOyIp
Ci0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24gX19iZW5jaGVyX2RvTmV4
dChyZXN1bHQpIHsiKQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBpZiAoX19i
ZW5jaGVyX2NvdW50ID49ICN7JHdhcm11cH0pIikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixm
aWxlLCIgICAgICAgIGRlYnVnKFwiI3tuYW1lfTogI3twbGFuLnZtfTogI3twbGFuLml0ZXJhdGlv
bn06IFwiICsgKF9fYmVuY2hlcl9jb3VudCAtICN7JHdhcm11cH0pICsgXCI6IFRpbWU6IFwiICsg
cmVzdWx0KTsiKQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBfX2JlbmNoZXJf
Y291bnQrKzsiKQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBpZiAoX19iZW5j
aGVyX2NvdW50IDwgI3skaW5uZXIrJHdhcm11cH0pIikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVy
cixmaWxlLCIgICAgICAgIF9fYmVuY2hlcl9ydW5JbXBsKF9fYmVuY2hlcl9kb05leHQpOyIpCi0g
ICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIGVsc2UiKQotICAgICAgZG91YmxlUHV0
cygkc3RkZXJyLGZpbGUsIiAgICAgICAgcXVpdCgpOyIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRl
cnIsZmlsZSwifSIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiX19iZW5jaGVyX3J1
bkltcGwoX19iZW5jaGVyX2RvTmV4dCk7IikKLSAgICB9Ci0gICAgCi0gICAgY3NzQ29kZSA9IEJl
bmNoZmlsZS5jcmVhdGUoImJlbmNoZXItY3NzIikgewotICAgICAgfCBmaWxlIHwKLSAgICAgIGRv
dWJsZVB1dHMoJHN0ZGVycixmaWxlLCIucGFzcyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4g
ICAgY29sb3I6IGdyZWVuO1xufVxuLmZhaWwge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAg
IGNvbG9yOiByZWQ7XG59XG5cI2NvbnNvbGUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtc
biAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xufSIpCi0gICAgfQotICAgIAotICAgIHByZUNv
ZGUgPSBCZW5jaGZpbGUuY3JlYXRlKCJiZW5jaGVyLXByZSIpIHsKLSAgICAgIHwgZmlsZSB8Ci0g
ICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IikK
LSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcpOyIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIs
ZmlsZSwiICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOyIpCi0gICAgICBkb3VibGVQdXRz
KCRzdGRlcnIsZmlsZSwiICAgIG5vSW5saW5lID0gdGVzdFJ1bm5lci5uZXZlcklubGluZUZ1bmN0
aW9uIHx8IGZ1bmN0aW9uKCl7fTsiKQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIn0i
KQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiIpCi0gICAgICBkb3VibGVQdXRzKCRz
dGRlcnIsZmlsZSwiZnVuY3Rpb24gZGVidWcobXNnKSIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRl
cnIsZmlsZSwieyIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIHZhciBzcGFu
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7IikKLSAgICAgIGRvdWJsZVB1dHMo
JHN0ZGVycixmaWxlLCIgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjb25zb2xlXCIpLmFw
cGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5h
bWVzcGFjZSIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIHNwYW4uaW5uZXJI
VE1MID0gbXNnICsgJzxiciAvPic7IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJ9
IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIiKQotICAgICAgZG91YmxlUHV0cygk
c3RkZXJyLGZpbGUsImZ1bmN0aW9uIHF1aXQoKSB7IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVy
cixmaWxlLCIgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IikKLSAgICAgIGRvdWJsZVB1dHMo
JHN0ZGVycixmaWxlLCJ9IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIiKQotICAg
ICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIl9fYmVuY2hlcl9jb250aW51YXRpb249bnVsbDsi
KQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiIpCi0gICAgICBkb3VibGVQdXRzKCRz
dGRlcnIsZmlsZSwiZnVuY3Rpb24gcmVwb3J0UmVzdWx0KHJlc3VsdCkgeyIpCi0gICAgICBkb3Vi
bGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIF9fYmVuY2hlcl9jb250aW51YXRpb24ocmVzdWx0KTsi
KQotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIn0iKQotICAgICAgZG91YmxlUHV0cygk
c3RkZXJyLGZpbGUsIiIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24g
X19iZW5jaGVyX3J1bkltcGwoY29udGludWF0aW9uKSB7IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0
ZGVycixmaWxlLCIgICAgZnVuY3Rpb24gZG9pdCgpIHsiKQotICAgICAgZG91YmxlUHV0cygkc3Rk
ZXJyLGZpbGUsIiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmcmFtZXBhcmVudFwi
KS5pbm5lckhUTUwgPSBcIlwiOyIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImZyYW1lcGFyZW50XCIpLmlubmVySFRNTCA9
IFwiPGlmcmFtZSBpZD0ndGVzdGZyYW1lJz5cIjsiKQotICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsIiAgICAgICAgdmFyIHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
dGVzdGZyYW1lXCIpOyIpCi0gICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICB0
ZXN0RnJhbWUuY29udGVudERvY3VtZW50Lm9wZW4oKTsiKQotICAgICAgZG91YmxlUHV0cygkc3Rk
ZXJyLGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShcIjwhRE9D
VFlQRSBodG1sPlxcbjxoZWFkPjwvaGVhZD48Ym9keT48ZGl2IGlkPVxcXCJjb25zb2xlXFxcIj48
L2Rpdj5cIik7IikKLSAgICAgIGlmIGJlbmNoRGF0YVBhdGgKLSAgICAgICAgZG91YmxlUHV0cygk
c3RkZXJyLGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShcIjxz
Y3JpcHQgc3JjPVxcXCIje2JlbmNoRGF0YVBhdGh9XFxcIj48L3NjcmlwdD5cIik7IikKLSAgICAg
IGVuZAotICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNv
bnRlbnREb2N1bWVudC53cml0ZShcIjxzY3JpcHQgdHlwZT1cXFwidGV4dC9qYXZhc2NyaXB0XFxc
Ij5pZiAod2luZG93LnRlc3RSdW5uZXIpIG5vSW5saW5lPXdpbmRvdy50ZXN0UnVubmVyLm5ldmVy
SW5saW5lRnVuY3Rpb24gfHwgZnVuY3Rpb24oKXt9OyBpZiAodHlwZW9mIG5vSW5saW5lID09ICd1
bmRlZmluZWQnKSBub0lubGluZT1mdW5jdGlvbigpe307IF9fYmVuY2hlcl9iZWZvcmUgPSBEYXRl
Lm5vdygpOzwvc2NyaXB0PjxzY3JpcHQgc3JjPVxcXCIje2JlbmNoUGF0aH1cXFwiPjwvc2NyaXB0
PjxzY3JpcHQgdHlwZT1cXFwidGV4dC9qYXZhc2NyaXB0XFxcIj53aW5kb3cucGFyZW50LnJlcG9y
dFJlc3VsdChEYXRlLm5vdygpIC0gX19iZW5jaGVyX2JlZm9yZSk7PC9zY3JpcHQ+PC9ib2R5Pjwv
aHRtbD5cIik7IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgIHRlc3RG
cmFtZS5jb250ZW50RG9jdW1lbnQuY2xvc2UoKTsiKQotICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsIiAgICB9IikKLSAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgX19iZW5j
aGVyX2NvbnRpbnVhdGlvbiA9IGNvbnRpbnVhdGlvbjsiKQotICAgICAgZG91YmxlUHV0cygkc3Rk
ZXJyLGZpbGUsIiAgICB3aW5kb3cuc2V0VGltZW91dChkb2l0LCAxMCk7IikKLSAgICAgIGRvdWJs
ZVB1dHMoJHN0ZGVycixmaWxlLCJ9IikKLSAgICB9Ci0KLSAgICBCZW5jaGZpbGUuY3JlYXRlKFsi
YmVuY2hlci1odG1sZG9jIiwiLmh0bWwiXSkgewotICAgICAgfCBmaWxlIHwKLSAgICAgIGRvdWJs
ZVB1dHMoJHN0ZGVycixmaWxlLCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9JRVRGLy9EVEQg
SFRNTC8vRU5cIj5cbjxodG1sPjxoZWFkPjxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwi
I3tjc3NDb2RlfVwiPjxzY3JpcHQgc3JjPVwiI3twcmVDb2RlfVwiPjwvc2NyaXB0PjwvaGVhZD48
Ym9keT48ZGl2IGlkPVwiY29uc29sZVwiPjwvZGl2PjxkaXYgaWQ9XCJmcmFtZXBhcmVudFwiPjwv
ZGl2PjxzY3JpcHQgc3JjPVwiI3ttYWluQ29kZX1cIj48L3NjcmlwdD48L2JvZHk+PC9odG1sPiIp
Ci0gICAgfQotICBlbHNlCi0gICAgcmFpc2UKLSAgZW5kCi1lbmQKLQotZGVmIGVtaXRCZW5jaFJ1
bkNvZGUobmFtZSwgcGxhbiwgYmVuY2hEYXRhUGF0aCwgYmVuY2hQYXRoKQotICBwbGFuLnZtLmVt
aXRSdW5Db2RlKGVtaXRCZW5jaFJ1bkNvZGVGaWxlKG5hbWUsIHBsYW4sIGJlbmNoRGF0YVBhdGgs
IGJlbmNoUGF0aCkpCi1lbmQKLQotZGVmIHBsYW5Gb3JEZXNjcmlwdGlvbihwbGFucywgYmVuY2hG
dWxsbmFtZSwgdm1OYW1lLCBpdGVyYXRpb24pCi0gIHJhaXNlIHVubGVzcyBiZW5jaEZ1bGxuYW1l
ID1+IC9cLy8KLSAgc3VpdGVOYW1lID0gJH4ucHJlX21hdGNoCi0gIGJlbmNoTmFtZSA9ICR+LnBv
c3RfbWF0Y2gKLSAgcmVzdWx0ID0gcGxhbnMuc2VsZWN0e3x2fCB2LnN1aXRlLm5hbWUgPT0gc3Vp
dGVOYW1lIGFuZCB2LmJlbmNobWFyay5uYW1lID09IGJlbmNoTmFtZSBhbmQgdi52bS5uYW1lID09
IHZtTmFtZSBhbmQgdi5pdGVyYXRpb24gPT0gaXRlcmF0aW9ufQotICByYWlzZSB1bmxlc3MgcmVz
dWx0LnNpemUgPT0gMQotICByZXN1bHRbMF0KLWVuZAotCi1jbGFzcyBQYXJzZWRSZXN1bHQKLSAg
YXR0cl9yZWFkZXIgOnBsYW4sIDppbm5lckluZGV4LCA6dGltZQotICAKLSAgZGVmIGluaXRpYWxp
emUocGxhbiwgaW5uZXJJbmRleCwgdGltZSkKLSAgICBAcGxhbiA9IHBsYW4KLSAgICBAaW5uZXJJ
bmRleCA9IGlubmVySW5kZXgKLSAgICBAdGltZSA9IHRpbWUKLSAgICAKLSAgICByYWlzZSB1bmxl
c3MgQHBsYW4uaXNfYT8gQmVuY2hQbGFuCi0gICAgcmFpc2UgdW5sZXNzIEBpbm5lckluZGV4Lmlz
X2E/IEludGVnZXIKLSAgICByYWlzZSB1bmxlc3MgQHRpbWUuaXNfYT8gTnVtZXJpYwotICBlbmQK
LSAgCi0gIGRlZiBiZW5jaG1hcmsKLSAgICBwbGFuLmJlbmNobWFyawotICBlbmQKLSAgCi0gIGRl
ZiBzdWl0ZQotICAgIHBsYW4uc3VpdGUKLSAgZW5kCi0gIAotICBkZWYgdm0KLSAgICBwbGFuLnZt
Ci0gIGVuZAotICAKLSAgZGVmIG91dGVySW5kZXgKLSAgICBwbGFuLml0ZXJhdGlvbgotICBlbmQK
LSAgCi0gIGRlZiBzZWxmLnBhcnNlKHBsYW5zLCBzdHJpbmcpCi0gICAgaWYgc3RyaW5nID1+IC8o
W2EtekEtWjAtOVwvLV0rKTogKFthLXpBLVowLTlfIyBdKyk6IChbMC05XSspOiAoWzAtOV0rKTog
VGltZTogLwotICAgICAgYmVuY2hGdWxsbmFtZSA9ICQxCi0gICAgICB2bU5hbWUgPSAkMgotICAg
ICAgb3V0ZXJJbmRleCA9ICQzLnRvX2kKLSAgICAgIGlubmVySW5kZXggPSAkNC50b19pCi0gICAg
ICB0aW1lID0gJH4ucG9zdF9tYXRjaC50b19mCi0gICAgICBQYXJzZWRSZXN1bHQubmV3KHBsYW5G
b3JEZXNjcmlwdGlvbihwbGFucywgYmVuY2hGdWxsbmFtZSwgdm1OYW1lLCBvdXRlckluZGV4KSwg
aW5uZXJJbmRleCwgdGltZSkKLSAgICBlbHNlCi0gICAgICBuaWwKLSAgICBlbmQKLSAgZW5kCi1l
bmQKLQotY2xhc3MgVk0KLSAgZGVmIGluaXRpYWxpemUob3JpZ1BhdGgsIG5hbWUsIG5hbWVLaW5k
LCBzdm5SZXZpc2lvbikKLSAgICBAb3JpZ1BhdGggPSBvcmlnUGF0aC50b19zCi0gICAgQHBhdGgg
PSBvcmlnUGF0aC50b19zCi0gICAgQG5hbWUgPSBuYW1lCi0gICAgQG5hbWVLaW5kID0gbmFtZUtp
bmQKLSAgICAKLSAgICBpZiAkZm9yY2VWTUtpbmQKLSAgICAgIEB2bVR5cGUgPSAkZm9yY2VWTUtp
bmQKLSAgICBlbHNlCi0gICAgICBpZiBAb3JpZ1BhdGggPX4gL0R1bXBSZW5kZXJUcmVlJC8KLSAg
ICAgICAgQHZtVHlwZSA9IDpkdW1wUmVuZGVyVHJlZQotICAgICAgZWxzZQotICAgICAgICBAdm1U
eXBlID0gOmpzYwotICAgICAgZW5kCi0gICAgZW5kCi0gICAgCi0gICAgQHN2blJldmlzaW9uID0g
c3ZuUmV2aXNpb24KLSAgICAKLSAgICAjIFRyeSB0byBkZXRlY3QgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIFZNLgotICAgIGlmIHBhdGggPX4gL1wvV2ViS2l0QnVpbGRcL1JlbGVhc2VcLyhbYS16QS1a
XSspJC8KLSAgICAgIEBjaGVja291dFBhdGggPSAkfi5wcmVfbWF0Y2gKLSAgICAgICMgRklYTUU6
IFVzZSBzb21lIHZhcmlhbnQgb2YgdGhpczogCi0gICAgICAjIDxiZGFzaD4gICBkZWYgcmV0cmll
dmVfcmV2aXNpb24KLSAgICAgICMgPGJkYXNoPiAgICAgYHBlcmwgLUkje0BwYXRofS9Ub29scy9T
Y3JpcHRzIC1NVkNTVXRpbHMgLWUgJ3ByaW50IHN2blJldmlzaW9uRm9yRGlyZWN0b3J5KCIje0Bw
YXRofSIpOydgLnRvX2kKLSAgICAgICMgPGJkYXNoPiAgIGVuZAotICAgICAgdW5sZXNzIEBzdm5S
ZXZpc2lvbgotICAgICAgICBiZWdpbgotICAgICAgICAgIERpci5jaGRpcihAY2hlY2tvdXRQYXRo
KSB7Ci0gICAgICAgICAgICAkc3RkZXJyLnB1dHMgIj4+IGNkICN7QGNoZWNrb3V0UGF0aH0gJiYg
c3ZuIGluZm8iIGlmICR2ZXJib3NpdHk+PTIKLSAgICAgICAgICAgIElPLnBvcGVuKCJzdm4gaW5m
byIsICJyIikgewotICAgICAgICAgICAgICB8IGlucCB8Ci0gICAgICAgICAgICAgIGlucC5lYWNo
X2xpbmUgewotICAgICAgICAgICAgICAgIHwgbGluZSB8Ci0gICAgICAgICAgICAgICAgaWYgbGlu
ZSA9fiAvUmV2aXNpb246IChbMC05XSspLwotICAgICAgICAgICAgICAgICAgQHN2blJldmlzaW9u
ID0gJDEKLSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICB1bmxlc3MgQHN2blJldmlzaW9uCi0gICAgICAgICAg
ICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IHJ1bm5pbmcgc3ZuIGluZm8gZm9yICN7bmFtZX0gc2ls
ZW50bHkgZmFpbGVkLiIKLSAgICAgICAgICBlbmQKLSAgICAgICAgcmVzY3VlID0+IGUKLSAgICAg
ICAgICAjIEZhaWxlZCB0byBkZXRlY3Qgc3ZuIHJldmlzaW9uLgotICAgICAgICAgICRzdGRlcnIu
cHV0cyAiV2FybmluZzogY291bGQgbm90IGdldCBzdm4gcmV2aXNpb24gaW5mb3JtYXRpb24gZm9y
ICN7bmFtZX06ICN7ZX0iCi0gICAgICAgIGVuZAotICAgICAgZW5kCi0gICAgZWxzZQotICAgICAg
JHN0ZGVyci5wdXRzICJXYXJuaW5nOiBjb3VsZCBub3QgaWRlbnRpZnkgY2hlY2tvdXQgbG9jYXRp
b24gZm9yICN7bmFtZX0iCi0gICAgZW5kCi0gICAgCi0gICAgaWYgQHBhdGggPX4gL1wvUmVsZWFz
ZVwvKFthLXpBLVpdKykkLwotICAgICAgQGxpYlBhdGgsIEByZWxhdGl2ZUJpblBhdGggPSAkfi5w
cmVfbWF0Y2grIi9SZWxlYXNlIiwgIi4vI3skMX0iCi0gICAgZWxzaWYgQHBhdGggPX4gL1wvQ29u
dGVudHNcL1Jlc291cmNlc1wvKFthLXpBLVpdKykkLwotICAgICAgQGxpYlBhdGggPSAkfi5wcmVf
bWF0Y2gKLSAgICBlbHNpZiBAcGF0aCA9fiAvXC9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmtcL1Jl
c291cmNlc1wvKFthLXpBLVpdKykkLwotICAgICAgQGxpYlBhdGgsIEByZWxhdGl2ZUJpblBhdGgg
PSAkfi5wcmVfbWF0Y2gsICQmWzEuLi0xXQotICAgIGVuZAotICBlbmQKLSAgCi0gIGRlZiBjYW5D
b3B5SW50b0JlbmNoUGF0aAotICAgIGlmIEBsaWJQYXRoIGFuZCBAcmVsYXRpdmVCaW5QYXRoCi0g
ICAgICB0cnVlCi0gICAgZWxzZQotICAgICAgZmFsc2UKLSAgICBlbmQKLSAgZW5kCi0gIAotICBk
ZWYgY29weUludG9CZW5jaFBhdGgKLSAgICByYWlzZSB1bmxlc3MgY2FuQ29weUludG9CZW5jaFBh
dGgKLSAgICBiYXNlbmFtZSwgZmlsZW5hbWUgPSBCZW5jaGZpbGUudW5pcXVlRmlsZW5hbWUoInZt
IikKLSAgICByYWlzZSB1bmxlc3MgRGlyLm1rZGlyKGZpbGVuYW1lKQotICAgIGNtZCA9ICJjcCAt
YSAje0BsaWJQYXRoLmluc3BlY3R9LyogI3tmaWxlbmFtZS5pbnNwZWN0fSIKLSAgICAkc3RkZXJy
LnB1dHMgIj4+ICN7Y21kfSIgaWYgJHZlcmJvc2l0eT49MgotICAgIHJhaXNlIHVubGVzcyBzeXN0
ZW0oY21kKQotICAgIEBwYXRoID0gIiN7YmFzZW5hbWV9LyN7QHJlbGF0aXZlQmluUGF0aH0iCi0g
ICAgQGxpYlBhdGggPSBiYXNlbmFtZQotICBlbmQKLSAgCi0gIGRlZiB0b19zCi0gICAgQG5hbWUK
LSAgZW5kCi0gIAotICBkZWYgbmFtZQotICAgIEBuYW1lCi0gIGVuZAotICAKLSAgZGVmIHNob3Vs
ZE1lYXN1cmVHQwotICAgICRtZWFzdXJlR0MgPT0gdHJ1ZSBvciAoJG1lYXN1cmVHQyA9PSBuYW1l
KQotICBlbmQKLSAgCi0gIGRlZiBvcmlnUGF0aAotICAgIEBvcmlnUGF0aAotICBlbmQKLSAgCi0g
IGRlZiBwYXRoCi0gICAgQHBhdGgKLSAgZW5kCi0gIAotICBkZWYgbmFtZUtpbmQKLSAgICBAbmFt
ZUtpbmQKLSAgZW5kCi0gIAotICBkZWYgdm1UeXBlCi0gICAgQHZtVHlwZQotICBlbmQKLSAgCi0g
IGRlZiBjaGVja291dFBhdGgKLSAgICBAY2hlY2tvdXRQYXRoCi0gIGVuZAotICAKLSAgZGVmIHN2
blJldmlzaW9uCi0gICAgQHN2blJldmlzaW9uCi0gIGVuZAotICAKLSAgZGVmIHByaW50RnVuY3Rp
b24KLSAgICBjYXNlIEB2bVR5cGUKLSAgICB3aGVuIDpqc2MKLSAgICAgICJwcmludCIKLSAgICB3
aGVuIDpkdW1wUmVuZGVyVHJlZQotICAgICAgImRlYnVnIgotICAgIGVsc2UKLSAgICAgIHJhaXNl
IEB2bVR5cGUKLSAgICBlbmQKLSAgZW5kCi0gIAotICBkZWYgZW1pdFJ1bkNvZGUoZmlsZVRvUnVu
KQotICAgIG15TGliUGF0aCA9IEBsaWJQYXRoCi0gICAgbXlMaWJQYXRoID0gIiIgdW5sZXNzIG15
TGliUGF0aAotICAgICRzY3JpcHQucHV0cyAiZXhwb3J0IERZTERfTElCUkFSWV9QQVRIPSN7bXlM
aWJQYXRoLnRvX3MuaW5zcGVjdH0iCi0gICAgJHNjcmlwdC5wdXRzICJleHBvcnQgRFlMRF9GUkFN
RVdPUktfUEFUSD0je215TGliUGF0aC50b19zLmluc3BlY3R9IgotICAgICRzY3JpcHQucHV0cyAi
I3twYXRofSAje2ZpbGVUb1J1bn0iCi0gIGVuZAotZW5kCi0KLWNsYXNzIFN0YXRzQWNjdW11bGF0
b3IKLSAgZGVmIGluaXRpYWxpemUKLSAgICBAc3RhdHMgPSBbXQotICAgICgkb3V0ZXIqJGlubmVy
KS50aW1lcyB7Ci0gICAgICBAc3RhdHMgPDwgU3RhdHMubmV3Ci0gICAgfQotICBlbmQKLSAgCi0g
IGRlZiBzdGF0c0Zvckl0ZXJhdGlvbihvdXRlckl0ZXJhdGlvbiwgaW5uZXJJdGVyYXRpb24pCi0g
ICAgQHN0YXRzW291dGVySXRlcmF0aW9uKiRpbm5lciArIGlubmVySXRlcmF0aW9uXQotICBlbmQK
LSAgCi0gIGRlZiBzdGF0cwotICAgIHJlc3VsdCA9IFN0YXRzLm5ldwotICAgIEBzdGF0cy5lYWNo
IHsKLSAgICAgIHwgc3RhdCB8Ci0gICAgICByZXN1bHQuYWRkKHlpZWxkIHN0YXQpCi0gICAgfQot
ICAgIHJlc3VsdAotICBlbmQKLSAgCi0gIGRlZiBnZW9tZXRyaWNNZWFuU3RhdHMKLSAgICBzdGF0
cyB7Ci0gICAgICB8IHN0YXQgfAotICAgICAgc3RhdC5nZW9tZXRyaWNNZWFuCi0gICAgfQotICBl
bmQKLSAgCi0gIGRlZiBhcml0aG1ldGljTWVhblN0YXRzCi0gICAgc3RhdHMgewotICAgICAgfCBz
dGF0IHwKLSAgICAgIHN0YXQuYXJpdGhtZXRpY01lYW4KLSAgICB9Ci0gIGVuZAotZW5kCi0KLW1v
ZHVsZSBCZW5jaG1hcmsKLSAgYXR0cl9hY2Nlc3NvciA6YmVuY2htYXJrU3VpdGUKLSAgYXR0cl9y
ZWFkZXIgOm5hbWUKLSAgCi0gIGRlZiBmdWxsbmFtZQotICAgIGJlbmNobWFya1N1aXRlLm5hbWUg
KyAiLyIgKyBuYW1lCi0gIGVuZAotICAKLSAgZGVmIHRvX3MKLSAgICBmdWxsbmFtZQotICBlbmQK
LWVuZAotCi1jbGFzcyBTdW5TcGlkZXJCZW5jaG1hcmsKLSAgaW5jbHVkZSBCZW5jaG1hcmsKLSAg
Ci0gIGRlZiBpbml0aWFsaXplKG5hbWUpCi0gICAgQG5hbWUgPSBuYW1lCi0gIGVuZAotICAKLSAg
ZGVmIGVtaXRSdW5Db2RlKHBsYW4pCi0gICAgZW1pdEJlbmNoUnVuQ29kZShmdWxsbmFtZSwgcGxh
biwgbmlsLCBlbnN1cmVGaWxlKCJTdW5TcGlkZXItI3tAbmFtZX0iLCAiI3tTVU5TUElERVJfUEFU
SH0vI3tAbmFtZX0uanMiKSkKLSAgZW5kCi1lbmQKLQotY2xhc3MgVjhCZW5jaG1hcmsKLSAgaW5j
bHVkZSBCZW5jaG1hcmsKLSAgCi0gIGRlZiBpbml0aWFsaXplKG5hbWUpCi0gICAgQG5hbWUgPSBu
YW1lCi0gIGVuZAotICAKLSAgZGVmIGVtaXRSdW5Db2RlKHBsYW4pCi0gICAgZW1pdEJlbmNoUnVu
Q29kZShmdWxsbmFtZSwgcGxhbiwgbmlsLCBlbnN1cmVGaWxlKCJWOC0je0BuYW1lfSIsICIje1Y4
X1BBVEh9L3Y4LSN7QG5hbWV9LmpzIikpCi0gIGVuZAotZW5kCi0KLWNsYXNzIEtyYWtlbkJlbmNo
bWFyawotICBpbmNsdWRlIEJlbmNobWFyawotICAKLSAgZGVmIGluaXRpYWxpemUobmFtZSkKLSAg
ICBAbmFtZSA9IG5hbWUKLSAgZW5kCi0gIAotICBkZWYgZW1pdFJ1bkNvZGUocGxhbikKLSAgICBl
bWl0QmVuY2hSdW5Db2RlKGZ1bGxuYW1lLCBwbGFuLCBlbnN1cmVGaWxlKCJLcmFrZW5EYXRhLSN7
QG5hbWV9IiwgIiN7S1JBS0VOX1BBVEh9LyN7QG5hbWV9LWRhdGEuanMiKSwgZW5zdXJlRmlsZSgi
S3Jha2VuLSN7QG5hbWV9IiwgIiN7S1JBS0VOX1BBVEh9LyN7QG5hbWV9LmpzIikpCi0gIGVuZAot
ZW5kCi0KLWNsYXNzIEJlbmNobWFya1N1aXRlCi0gIGRlZiBpbml0aWFsaXplKG5hbWUsIHBhdGgs
IHByZWZlcnJlZE1lYW4pCi0gICAgQG5hbWUgPSBuYW1lCi0gICAgQHBhdGggPSBwYXRoCi0gICAg
QHByZWZlcnJlZE1lYW4gPSBwcmVmZXJyZWRNZWFuCi0gICAgQGJlbmNobWFya3MgPSBbXQotICBl
bmQKLSAgCi0gIGRlZiBuYW1lCi0gICAgQG5hbWUKLSAgZW5kCi0gIAotICBkZWYgdG9fcwotICAg
IEBuYW1lCi0gIGVuZAotICAKLSAgZGVmIHBhdGgKLSAgICBAcGF0aAotICBlbmQKLSAgCi0gIGRl
ZiBhZGQoYmVuY2htYXJrKQotICAgIGlmIG5vdCAkYmVuY2htYXJrUGF0dGVybiBvciAiI3tAbmFt
ZX0vI3tiZW5jaG1hcmsubmFtZX0iID1+ICRiZW5jaG1hcmtQYXR0ZXJuCi0gICAgICBiZW5jaG1h
cmsuYmVuY2htYXJrU3VpdGUgPSBzZWxmCi0gICAgICBAYmVuY2htYXJrcyA8PCBiZW5jaG1hcmsK
LSAgICBlbmQKLSAgZW5kCi0gIAotICBkZWYgYmVuY2htYXJrcwotICAgIEBiZW5jaG1hcmtzCi0g
IGVuZAotICAKLSAgZGVmIGJlbmNobWFya0Zvck5hbWUobmFtZSkKLSAgICByZXN1bHQgPSBAYmVu
Y2htYXJrcy5zZWxlY3R7fHZ8IHYubmFtZSA9PSBuYW1lfQotICAgIHJhaXNlIHVubGVzcyByZXN1
bHQubGVuZ3RoID09IDEKLSAgICByZXN1bHRbMF0KLSAgZW5kCi0gIAotICBkZWYgZW1wdHk/Ci0g
ICAgQGJlbmNobWFya3MuZW1wdHk/Ci0gIGVuZAotICAKLSAgZGVmIHJldGFpbl9pZgotICAgIEBi
ZW5jaG1hcmtzLmRlbGV0ZV9pZiB7Ci0gICAgICB8IGJlbmNobWFyayB8Ci0gICAgICBub3QgeWll
bGQgYmVuY2htYXJrCi0gICAgfQotICBlbmQKLSAgCi0gIGRlZiBwcmVmZXJyZWRNZWFuCi0gICAg
QHByZWZlcnJlZE1lYW4KLSAgZW5kCi0gIAotICBkZWYgY29tcHV0ZU1lYW4oc3RhdCkKLSAgICBz
dGF0LnNlbmQgQHByZWZlcnJlZE1lYW4KLSAgZW5kCi1lbmQKLQotY2xhc3MgQmVuY2hSdW5QbGFu
Ci0gIGRlZiBpbml0aWFsaXplKGJlbmNobWFyaywgdm0sIGl0ZXJhdGlvbikKLSAgICBAYmVuY2ht
YXJrID0gYmVuY2htYXJrCi0gICAgQHZtID0gdm0KLSAgICBAaXRlcmF0aW9uID0gaXRlcmF0aW9u
Ci0gIGVuZAotICAKLSAgZGVmIGJlbmNobWFyawotICAgIEBiZW5jaG1hcmsKLSAgZW5kCi0gIAot
ICBkZWYgc3VpdGUKLSAgICBAYmVuY2htYXJrLmJlbmNobWFya1N1aXRlCi0gIGVuZAotICAKLSAg
ZGVmIHZtCi0gICAgQHZtCi0gIGVuZAotICAKLSAgZGVmIGl0ZXJhdGlvbgotICAgIEBpdGVyYXRp
b24KLSAgZW5kCi0gIAotICBkZWYgZW1pdFJ1bkNvZGUKLSAgICBAYmVuY2htYXJrLmVtaXRSdW5D
b2RlKHNlbGYpCi0gIGVuZAotZW5kCi0KLWNsYXNzIEJlbmNobWFya09uVk0KLSAgZGVmIGluaXRp
YWxpemUoYmVuY2htYXJrLCBzdWl0ZU9uVk0pCi0gICAgQGJlbmNobWFyayA9IGJlbmNobWFyawot
ICAgIEBzdWl0ZU9uVk0gPSBzdWl0ZU9uVk0KLSAgICBAc3RhdHMgPSBTdGF0cy5uZXcKLSAgZW5k
Ci0gIAotICBkZWYgdG9fcwotICAgICIje0BiZW5jaG1hcmt9IG9uICN7QHN1aXRlT25WTS52bX0i
Ci0gIGVuZAotICAKLSAgZGVmIGJlbmNobWFyawotICAgIEBiZW5jaG1hcmsKLSAgZW5kCi0gIAot
ICBkZWYgdm0KLSAgICBAc3VpdGVPblZNLnZtCi0gIGVuZAotICAKLSAgZGVmIHZtU3RhdHMKLSAg
ICBAc3VpdGVPblZNLnZtU3RhdHMKLSAgZW5kCi0gIAotICBkZWYgc3VpdGUKLSAgICBAYmVuY2ht
YXJrLmJlbmNobWFya1N1aXRlCi0gIGVuZAotICAKLSAgZGVmIHN1aXRlT25WTQotICAgIEBzdWl0
ZU9uVk0KLSAgZW5kCi0gIAotICBkZWYgc3RhdHMKLSAgICBAc3RhdHMKLSAgZW5kCi0gIAotICBk
ZWYgcGFyc2VSZXN1bHQocmVzdWx0KQotICAgIHJhaXNlICJWTSBtaXNtYXRjaDsgSSd2ZSBnb3Qg
I3t2bX0gYW5kIHRoZXkndmUgZ290ICN7cmVzdWx0LnZtfSIgdW5sZXNzIHJlc3VsdC52bSA9PSB2
bQotICAgIHJhaXNlIHVubGVzcyByZXN1bHQuYmVuY2htYXJrID09IEBiZW5jaG1hcmsKLSAgICBA
c3RhdHMuYWRkKHJlc3VsdC50aW1lKQotICBlbmQKLWVuZAotCi1jbGFzcyBTdWl0ZU9uVk0gPCBT
dGF0c0FjY3VtdWxhdG9yCi0gIGRlZiBpbml0aWFsaXplKHZtLCB2bVN0YXRzLCBzdWl0ZSkKLSAg
ICBzdXBlcigpCi0gICAgQHZtID0gdm0KLSAgICBAdm1TdGF0cyA9IHZtU3RhdHMKLSAgICBAc3Vp
dGUgPSBzdWl0ZQotICAgIAotICAgIHJhaXNlIHVubGVzcyBAdm0uaXNfYT8gVk0KLSAgICByYWlz
ZSB1bmxlc3MgQHZtU3RhdHMuaXNfYT8gU3RhdHNBY2N1bXVsYXRvcgotICAgIHJhaXNlIHVubGVz
cyBAc3VpdGUuaXNfYT8gQmVuY2htYXJrU3VpdGUKLSAgZW5kCi0gIAotICBkZWYgdG9fcwotICAg
ICIje0BzdWl0ZX0gb24gI3tAdm19IgotICBlbmQKLSAgCi0gIGRlZiBzdWl0ZQotICAgIEBzdWl0
ZQotICBlbmQKLSAgCi0gIGRlZiB2bQotICAgIEB2bQotICBlbmQKLSAgCi0gIGRlZiB2bVN0YXRz
Ci0gICAgcmFpc2UgdW5sZXNzIEB2bVN0YXRzCi0gICAgQHZtU3RhdHMKLSAgZW5kCi1lbmQKLQot
Y2xhc3MgQmVuY2hQbGFuCi0gIGRlZiBpbml0aWFsaXplKGJlbmNobWFya09uVk0sIGl0ZXJhdGlv
bikKLSAgICBAYmVuY2htYXJrT25WTSA9IGJlbmNobWFya09uVk0KLSAgICBAaXRlcmF0aW9uID0g
aXRlcmF0aW9uCi0gIGVuZAotICAKLSAgZGVmIHRvX3MKLSAgICAiI3tAYmVuY2htYXJrT25WTX0g
XCMje0BpdGVyYXRpb24rMX0iCi0gIGVuZAotICAKLSAgZGVmIGJlbmNobWFya09uVk0KLSAgICBA
YmVuY2htYXJrT25WTQotICBlbmQKLSAgCi0gIGRlZiBiZW5jaG1hcmsKLSAgICBAYmVuY2htYXJr
T25WTS5iZW5jaG1hcmsKLSAgZW5kCi0gIAotICBkZWYgc3VpdGUKLSAgICBAYmVuY2htYXJrT25W
TS5zdWl0ZQotICBlbmQKLSAgCi0gIGRlZiB2bQotICAgIEBiZW5jaG1hcmtPblZNLnZtCi0gIGVu
ZAotICAKLSAgZGVmIGl0ZXJhdGlvbgotICAgIEBpdGVyYXRpb24KLSAgZW5kCi0gIAotICBkZWYg
cGFyc2VSZXN1bHQocmVzdWx0KQotICAgIHJhaXNlIHVubGVzcyByZXN1bHQucGxhbiA9PSBzZWxm
Ci0gICAgQGJlbmNobWFya09uVk0ucGFyc2VSZXN1bHQocmVzdWx0KQotICAgIEBiZW5jaG1hcmtP
blZNLnZtU3RhdHMuc3RhdHNGb3JJdGVyYXRpb24oQGl0ZXJhdGlvbiwgcmVzdWx0LmlubmVySW5k
ZXgpLmFkZChyZXN1bHQudGltZSkKLSAgICBAYmVuY2htYXJrT25WTS5zdWl0ZU9uVk0uc3RhdHNG
b3JJdGVyYXRpb24oQGl0ZXJhdGlvbiwgcmVzdWx0LmlubmVySW5kZXgpLmFkZChyZXN1bHQudGlt
ZSkKLSAgZW5kCi1lbmQKLQotZGVmIGxwYWQoc3RyLGNoYXJzKQotICBpZiBzdHIubGVuZ3RoPmNo
YXJzCi0gICAgc3RyCi0gIGVsc2UKLSAgICAiJSN7Y2hhcnN9cyIlKHN0cikKLSAgZW5kCi1lbmQK
LQotZGVmIHJwYWQoc3RyLGNoYXJzKQotICB3aGlsZSBzdHIubGVuZ3RoPGNoYXJzCi0gICAgc3Ry
Kz0iICIKLSAgZW5kCi0gIHN0cgotZW5kCi0KLWRlZiBjZW50ZXIoc3RyLGNoYXJzKQotICB3aGls
ZSBzdHIubGVuZ3RoPGNoYXJzCi0gICAgc3RyKz0iICIKLSAgICBpZiBzdHIubGVuZ3RoPGNoYXJz
Ci0gICAgICBzdHI9IiAiK3N0cgotICAgIGVuZAotICBlbmQKLSAgc3RyCi1lbmQKLQotZGVmIHN0
YXRzVG9TdHIoc3RhdHMpCi0gIGlmICRpbm5lciokb3V0ZXIgPT0gMQotICAgIHN0cmluZyA9IG51
bVRvU3RyKHN0YXRzLm1lYW4pCi0gICAgcmFpc2UgdW5sZXNzIHN0cmluZyA9fiAvXC4vCi0gICAg
bGVmdCA9ICR+LnByZV9tYXRjaAotICAgIHJpZ2h0ID0gJH4ucG9zdF9tYXRjaAotICAgIGxwYWQo
bGVmdCwxMikrIi4iK3JwYWQocmlnaHQsOSkKLSAgZWxzZQotICAgIGxwYWQobnVtVG9TdHIoc3Rh
dHMubWVhbiksMTEpKyIrLSIrcnBhZChudW1Ub1N0cihzdGF0cy5jb25mSW50KSw5KQotICBlbmQK
LWVuZAotCi1kZWYgcGx1cmFsKG51bSkKLSAgaWYgbnVtID09IDEKLSAgICAiIgotICBlbHNlCi0g
ICAgInMiCi0gIGVuZAotZW5kCi0KLWRlZiB3cmFwKHN0ciwgY29sdW1ucykKLSAgYXJyYXkgPSBz
dHIuc3BsaXQKLSAgcmVzdWx0ID0gIiIKLSAgY3VyTGluZSA9IGFycmF5LnNoaWZ0Ci0gIGFycmF5
LmVhY2ggewotICAgIHwgY3VyU3RyIHwKLSAgICBpZiAoY3VyTGluZSArICIgIiArIGN1clN0ciku
c2l6ZSA+IGNvbHVtbnMKLSAgICAgIHJlc3VsdCArPSBjdXJMaW5lICsgIlxuIgotICAgICAgY3Vy
TGluZSA9IGN1clN0cgotICAgIGVsc2UKLSAgICAgIGN1ckxpbmUgKz0gIiAiICsgY3VyU3RyCi0g
ICAgZW5kCi0gIH0KLSAgcmVzdWx0ICsgY3VyTGluZSArICJcbiIKLWVuZAotICAKLWRlZiBydW5B
bmRHZXRSZXN1bHRzCi0gIHJlc3VsdHMgPSBuaWwKLSAgRGlyLmNoZGlyKEJFTkNIX0RBVEFfUEFU
SCkgewotICAgIElPLnBvcGVuKCJzaCAuL3J1bnNjcmlwdCIsICJyIikgewotICAgICAgfCBpbnAg
fAotICAgICAgcmVzdWx0cyA9IGlucC5yZWFkCi0gICAgfQotICAgIHJhaXNlICJTY3JpcHQgZGlk
IG5vdCBjb21wbGV0ZSBjb3JyZWN0bHk6ICN7JD99IiB1bmxlc3MgJD8uc3VjY2Vzcz8KLSAgfQot
ICByYWlzZSB1bmxlc3MgcmVzdWx0cwotICByZXN1bHRzCi1lbmQKLQotZGVmIHBhcnNlQW5kRGlz
cGxheVJlc3VsdHMocmVzdWx0cykKLSAgdm1TdGF0c2VzID0gW10KLSAgJHZtcy5lYWNoIHsKLSAg
ICB2bVN0YXRzZXMgPDwgU3RhdHNBY2N1bXVsYXRvci5uZXcKLSAgfQotICAKLSAgc3VpdGVzT25W
TXMgPSBbXQotICBzdWl0ZXNPblZNc0ZvclN1aXRlID0ge30KLSAgJHN1aXRlcy5lYWNoIHsKLSAg
ICB8IHN1aXRlIHwKLSAgICBzdWl0ZXNPblZNc0ZvclN1aXRlW3N1aXRlXSA9IFtdCi0gIH0KLSAg
c3VpdGVzT25WTXNGb3JWTSA9IHt9Ci0gICR2bXMuZWFjaCB7Ci0gICAgfCB2bSB8Ci0gICAgc3Vp
dGVzT25WTXNGb3JWTVt2bV0gPSBbXQotICB9Ci0gIAotICBiZW5jaG1hcmtzT25WTXMgPSBbXQot
ICBiZW5jaG1hcmtzT25WTXNGb3JCZW5jaG1hcmsgPSB7fQotICAkYmVuY2htYXJrcy5lYWNoIHsK
LSAgICB8IGJlbmNobWFyayB8Ci0gICAgYmVuY2htYXJrc09uVk1zRm9yQmVuY2htYXJrW2JlbmNo
bWFya10gPSBbXQotICB9Ci0gIAotICAkdm1zLmVhY2hfd2l0aF9pbmRleCB7Ci0gICAgfCB2bSwg
dm1JbmRleCB8Ci0gICAgdm1TdGF0cyA9IHZtU3RhdHNlc1t2bUluZGV4XQotICAgICRzdWl0ZXMu
ZWFjaCB7Ci0gICAgICB8IHN1aXRlIHwKLSAgICAgIHN1aXRlT25WTSA9IFN1aXRlT25WTS5uZXco
dm0sIHZtU3RhdHMsIHN1aXRlKQotICAgICAgc3VpdGVzT25WTXMgPDwgc3VpdGVPblZNCi0gICAg
ICBzdWl0ZXNPblZNc0ZvclN1aXRlW3N1aXRlXSA8PCBzdWl0ZU9uVk0KLSAgICAgIHN1aXRlc09u
Vk1zRm9yVk1bdm1dIDw8IHN1aXRlT25WTQotICAgICAgc3VpdGUuYmVuY2htYXJrcy5lYWNoIHsK
LSAgICAgICAgfCBiZW5jaG1hcmsgfAotICAgICAgICBiZW5jaG1hcmtPblZNID0gQmVuY2htYXJr
T25WTS5uZXcoYmVuY2htYXJrLCBzdWl0ZU9uVk0pCi0gICAgICAgIGJlbmNobWFya3NPblZNcyA8
PCBiZW5jaG1hcmtPblZNCi0gICAgICAgIGJlbmNobWFya3NPblZNc0ZvckJlbmNobWFya1tiZW5j
aG1hcmtdIDw8IGJlbmNobWFya09uVk0KLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgCi0gIHBsYW5z
ID0gW10KLSAgYmVuY2htYXJrc09uVk1zLmVhY2ggewotICAgIHwgYmVuY2htYXJrT25WTSB8Ci0g
ICAgJG91dGVyLnRpbWVzIHsKLSAgICAgIHwgaXRlcmF0aW9uIHwKLSAgICAgIHBsYW5zIDw8IEJl
bmNoUGxhbi5uZXcoYmVuY2htYXJrT25WTSwgaXRlcmF0aW9uKQotICAgIH0KLSAgfQotCi0gIGhv
c3RuYW1lID0gbmlsCi0gIGh3bW9kZWwgPSBuaWwKLSAgcmVzdWx0cy5lYWNoX2xpbmUgewotICAg
IHwgbGluZSB8Ci0gICAgbGluZS5jaG9tcCEKLSAgICBpZiBsaW5lID1+IC9IT1NUTkFNRTooW14u
XSspLwotICAgICAgaG9zdG5hbWUgPSAkMQotICAgIGVsc2lmIGxpbmUgPX4gL0hBUkRXQVJFOmh3
XC5tb2RlbDogLwotICAgICAgaHdtb2RlbCA9ICR+LnBvc3RfbWF0Y2guY2hvbXAKLSAgICBlbHNl
Ci0gICAgICByZXN1bHQgPSBQYXJzZWRSZXN1bHQucGFyc2UocGxhbnMsIGxpbmUuY2hvbXApCi0g
ICAgICBpZiByZXN1bHQKLSAgICAgICAgcmVzdWx0LnBsYW4ucGFyc2VSZXN1bHQocmVzdWx0KQot
ICAgICAgZW5kCi0gICAgZW5kCi0gIH0KLSAgCi0gICMgQ29tcHV0ZSB0aGUgZ2VvbWVhbiBvZiB0
aGUgcHJlZmVycmVkIG1lYW5zIG9mIHJlc3VsdHMgb24gYSBTdWl0ZU9uVk0KLSAgb3ZlcmFsbFJl
c3VsdHMgPSBbXQotICAkdm1zLmVhY2ggewotICAgIHwgdm0gfAotICAgIHJlc3VsdCA9IFN0YXRz
Lm5ldwotICAgICRvdXRlci50aW1lcyB7Ci0gICAgICB8IG91dGVySW5kZXggfAotICAgICAgJGlu
bmVyLnRpbWVzIHsKLSAgICAgICAgfCBpbm5lckluZGV4IHwKLSAgICAgICAgY3VyUmVzdWx0ID0g
U3RhdHMubmV3Ci0gICAgICAgIHN1aXRlc09uVk1zRm9yVk1bdm1dLmVhY2ggewotICAgICAgICAg
IHwgc3VpdGVPblZNIHwKLSAgICAgICAgICAjIEZvciBhIGdpdmVuIGl0ZXJhdGlvbiwgc3VpdGUs
IGFuZCBWTSwgY29tcHV0ZSB0aGUgc3VpdGUncyBwcmVmZXJyZWQgbWVhbgotICAgICAgICAgICMg
b3ZlciB0aGUgZGF0YSBjb2xsZWN0ZWQgZm9yIGFsbCBiZW5jaG1hcmtzIGluIHRoYXQgc3VpdGUu
IFdlJ2xsIGhhdmUgb25lCi0gICAgICAgICAgIyBzYW1wbGUgcGVyIGJlbmNobWFyay4gRm9yIGV4
YW1wbGUgb24gVjggdGhpcyB3aWxsIGJlIHRoZSBnZW9tZWFuIG9mIDEKLSAgICAgICAgICAjIHNh
bXBsZSBmb3IgY3J5cHRvLCAxIHNhbXBsZSBmb3IgZGVsdGFibHVlLCBhbmQgc28gb24sIGFuZCAx
IHNhbXBsZSBmb3IKLSAgICAgICAgICAjIHNwbGF5LgotICAgICAgICAgIGN1clJlc3VsdC5hZGQo
c3VpdGVPblZNLnN1aXRlLmNvbXB1dGVNZWFuKHN1aXRlT25WTS5zdGF0c0Zvckl0ZXJhdGlvbihv
dXRlckluZGV4LCBpbm5lckluZGV4KSkpCi0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgICMg
Y3VyUmVzdWx0IG5vdyBob2xkcyAxIHNhbXBsZSBmb3IgZWFjaCBvZiB0aGUgbWVhbnMgY29tcHV0
ZWQgaW4gdGhlIGFib3ZlCi0gICAgICAgICMgbG9vcC4gQ29tcHV0ZSB0aGUgZ2VvbWVhbiBvdmVy
IHRoaXMsIGFuZCBzdG9yZSBpdC4KLSAgICAgICAgcmVzdWx0LmFkZChjdXJSZXN1bHQuZ2VvbWV0
cmljTWVhbikKLSAgICAgIH0KLSAgICB9Ci0KLSAgICAjICRvdmVyYWxsUmVzdWx0cyB3aWxsIGhh
dmUgYSBTdGF0cyBmb3IgZWFjaCBWTS4gVGhhdCBTdGF0cyBvYmplY3Qgd2lsbCBob2xkCi0gICAg
IyAkaW5uZXIqJG91dGVyIGdlb21lYW5zLCBhbGxvd2luZyB1cyB0byBjb21wdXRlIHRoZSBhcml0
aG1ldGljIG1lYW4gYW5kCi0gICAgIyBjb25maWRlbmNlIGludGVydmFsIG9mIHRoZSBnZW9tZWFu
cyBvZiBwcmVmZXJyZWQgbWVhbnMuIENvbnZvbHV0ZWQsIGJ1dAotICAgICMgdXNlZnVsIGFuZCBw
cm9iYWJseSBzb3VuZC4KLSAgICBvdmVyYWxsUmVzdWx0cyA8PCByZXN1bHQKLSAgfQotICAKLSAg
aWYgJHZlcmJvc2l0eSA+PSAyCi0gICAgYmVuY2htYXJrc09uVk1zLmVhY2ggewotICAgICAgfCBi
ZW5jaG1hcmtPblZNIHwKLSAgICAgICRzdGRlcnIucHV0cyAiI3tiZW5jaG1hcmtPblZNfTogI3ti
ZW5jaG1hcmtPblZNLnN0YXRzfSIKLSAgICB9Ci0gICAgCi0gICAgJHZtcy5lYWNoX3dpdGhfaW5k
ZXggewotICAgICAgfCB2bSwgdm1JbmRleCB8Ci0gICAgICB2bVN0YXRzID0gdm1TdGF0c2VzW3Zt
SW5kZXhdCi0gICAgICAkc3RkZXJyLnB1dHMgIiN7dm19IChhcml0aG1ldGljTWVhbik6ICN7dm1T
dGF0cy5hcml0aG1ldGljTWVhblN0YXRzfSIKLSAgICAgICRzdGRlcnIucHV0cyAiI3t2bX0gKGdl
b21ldHJpY01lYW4pOiAje3ZtU3RhdHMuZ2VvbWV0cmljTWVhblN0YXRzfSIKLSAgICB9Ci0gIGVu
ZAotCi0gIHJlcG9ydE5hbWUgPQotICAgIChpZiAoJHZtcy5jb2xsZWN0IHsKLSAgICAgICAgICAg
fCB2bSB8Ci0gICAgICAgICAgIHZtLm5hbWVLaW5kCi0gICAgICAgICB9LmluZGV4IDphdXRvKQot
ICAgICAgICIiCi0gICAgIGVsc2UKLSAgICAgICAkdm1zLmNvbGxlY3QgewotICAgICAgICAgfCB2
bSB8Ci0gICAgICAgICB2bS50b19zCi0gICAgICAgfS5qb2luKCJfIikgKyAiXyIKLSAgICAgZW5k
KSArCi0gICAgKCRzdWl0ZXMuY29sbGVjdCB7Ci0gICAgICAgfCBzdWl0ZSB8Ci0gICAgICAgc3Vp
dGUudG9fcwotICAgICB9LmpvaW4oIiIpKSArICJfIiArCi0gICAgKGlmIGhvc3RuYW1lCi0gICAg
ICAgaG9zdG5hbWUgKyAiXyIKLSAgICAgZWxzZQotICAgICAgICIiCi0gICAgIGVuZCkrCi0gICAg
KGJlZ2luCi0gICAgICAgdGltZSA9IFRpbWUubm93Ci0gICAgICAgIiUwNGQlMDJkJTAyZF8lMDJk
JTAyZCIgJQotICAgICAgICAgWyB0aW1lLnllYXIsIHRpbWUubW9udGgsIHRpbWUuZGF5LAotICAg
ICAgICAgICB0aW1lLmhvdXIsIHRpbWUubWluIF0KLSAgICAgZW5kKSArCi0gICAgIl9iZW5jaFJl
cG9ydC50eHQiCi0KLSAgdW5sZXNzICRicmllZgotICAgIHB1dHMgIkdlbmVyYXRpbmcgYmVuY2ht
YXJrIHJlcG9ydCBhdCAje3JlcG9ydE5hbWV9IgotICBlbmQKLSAgCi0gIG91dHAgPSAkc3Rkb3V0
Ci0gIGJlZ2luCi0gICAgb3V0cCA9IEZpbGUub3BlbihyZXBvcnROYW1lLCJ3IikKLSAgcmVzY3Vl
ID0+IGUKLSAgICAkc3RkZXJyLnB1dHMgIkVycm9yOiBjb3VsZCBub3Qgc2F2ZSByZXBvcnQgdG8g
I3tyZXBvcnROYW1lfTogI3tlfSIKLSAgICAkc3RkZXJyLnB1dHMKLSAgZW5kCi0gIAotICBkZWYg
Y3JlYXRlVk1zU3RyaW5nCi0gICAgcmVzdWx0ID0gIiIKLSAgICByZXN1bHQgKz0gIiAgICIgaWYg
JHN1aXRlcy5zaXplID4gMQotICAgIHJlc3VsdCArPSBycGFkKCIiLCAkYmVuY2hwYWQpCi0gICAg
cmVzdWx0ICs9ICIgIgotICAgICR2bXMuc2l6ZS50aW1lcyB7Ci0gICAgICB8IGluZGV4IHwKLSAg
ICAgIGlmIGluZGV4ICE9IDAKLSAgICAgICAgcmVzdWx0ICs9ICIgIitOb0NoYW5nZS5uZXcoMCku
c2hvcnRGb3JtCi0gICAgICBlbmQKLSAgICAgIHJlc3VsdCArPSBscGFkKGNlbnRlcigkdm1zW2lu
ZGV4XS5uYW1lLCA5KzkrMiksIDExKzkrMikKLSAgICB9Ci0gICAgcmVzdWx0ICs9ICIgICAgIgot
ICAgIGlmICR2bXMuc2l6ZSA+PSAzCi0gICAgICByZXN1bHQgKz0gY2VudGVyKCIjeyR2bXNbLTFd
Lm5hbWV9IHYuICN7JHZtc1swXS5uYW1lfSIsMjYpCi0gICAgZWxzaWYgJHZtcy5zaXplID49IDIK
LSAgICAgIHJlc3VsdCArPSAiICIqMjYKLSAgICBlbmQKLSAgICByZXN1bHQKLSAgZW5kCi0gIAot
ICBjb2x1bW5zID0gW2NyZWF0ZVZNc1N0cmluZy5zaXplLCA3OF0ubWF4Ci0gIAotICBvdXRwLnBy
aW50ICJCZW5jaG1hcmsgcmVwb3J0IGZvciAiCi0gIGlmICRzdWl0ZXMuc2l6ZSA9PSAxCi0gICAg
b3V0cC5wcmludCAkc3VpdGVzWzBdLnRvX3MKLSAgZWxzaWYgJHN1aXRlcy5zaXplID09IDIKLSAg
ICBvdXRwLnByaW50ICIjeyRzdWl0ZXNbMF19IGFuZCAjeyRzdWl0ZXNbMV19IgotICBlbHNlCi0g
ICAgb3V0cC5wcmludCAiI3skc3VpdGVzWzAuLi0yXS5qb2luKCcsICcpfSwgYW5kICN7JHN1aXRl
c1stMV19IgotICBlbmQKLSAgaWYgaG9zdG5hbWUKLSAgICBvdXRwLnByaW50ICIgb24gI3tob3N0
bmFtZX0iCi0gIGVuZAotICBpZiBod21vZGVsCi0gICAgb3V0cC5wcmludCAiICgje2h3bW9kZWx9
KSIKLSAgZW5kCi0gIG91dHAucHV0cyAiLiIKLSAgb3V0cC5wdXRzCi0gIAotICAjIFRoaXMgbG9v
a3Mgc3R1cGlkOyByZXZpc2l0IGxhdGVyLgotICBpZiBmYWxzZQotICAgICRzdWl0ZXMuZWFjaCB7
Ci0gICAgICB8IHN1aXRlIHwKLSAgICAgIG91dHAucHV0cyAiI3tzdWl0ZX0gYXQgI3tzdWl0ZS5w
YXRofSIKLSAgICB9Ci0gICAgCi0gICAgb3V0cC5wdXRzCi0gIGVuZAotICAKLSAgb3V0cC5wdXRz
ICJWTXMgdGVzdGVkOiIKLSAgJHZtcy5lYWNoIHsKLSAgICB8IHZtIHwKLSAgICBvdXRwLnByaW50
ICJcIiN7dm0ubmFtZX1cIiBhdCAje3ZtLm9yaWdQYXRofSIKLSAgICBpZiB2bS5zdm5SZXZpc2lv
bgotICAgICAgb3V0cC5wcmludCAiIChyI3t2bS5zdm5SZXZpc2lvbn0pIgotICAgIGVuZAotICAg
IG91dHAucHV0cwotICB9Ci0gIAotICBvdXRwLnB1dHMKLSAgCi0gIG91dHAucHV0cyB3cmFwKCJD
b2xsZWN0ZWQgI3skb3V0ZXIqJGlubmVyfSBzYW1wbGUje3BsdXJhbCgkb3V0ZXIqJGlubmVyKX0g
cGVyIGJlbmNobWFyay9WTSwgIisKLSAgICAgICAgICAgICAgICAgIndpdGggI3skb3V0ZXJ9IFZN
IGludm9jYXRpb24je3BsdXJhbCgkb3V0ZXIpfSBwZXIgYmVuY2htYXJrLiIrCi0gICAgICAgICAg
ICAgICAgIChpZiAkcmVydW4gPiAxIHRoZW4gKCIgUmFuICN7JHJlcnVufSBiZW5jaG1hcmsgaXRl
cmF0aW9ucywgYW5kIG1lYXN1cmVkIHRoZSAiKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidG90YWwgdGltZSBvZiB0aG9zZSBpdGVyYXRpb25zLCBmb3IgZWFjaCBzYW1w
bGUuIikKLSAgICAgICAgICAgICAgICAgIGVsc2UgIiIgZW5kKSsKLSAgICAgICAgICAgICAgICAg
KGlmICRtZWFzdXJlR0MgPT0gdHJ1ZSB0aGVuICgiIE5vIG1hbnVhbCBnYXJiYWdlIGNvbGxlY3Rp
b24gaW52b2NhdGlvbnMgd2VyZSAiKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJlbWl0dGVkLiIpCi0gICAgICAgICAgICAgICAgICBlbHNpZiAkbWVhc3Vy
ZUdDIHRoZW4gKCIgRW1pdHRlZCBhIGNhbGwgdG8gZ2MoKSBiZXR3ZWVuIHNhbXBsZSBtZWFzdXJl
bWVudHMgZm9yICIrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
bGwgVk1zIGV4Y2VwdCAjeyRtZWFzdXJlR0N9LiIpCi0gICAgICAgICAgICAgICAgICBlbHNlICgi
IEVtaXR0ZWQgYSBjYWxsIHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLiIpIGVu
ZCkrCi0gICAgICAgICAgICAgICAgIChpZiAkd2FybXVwID09IDAgdGhlbiAoIiBEaWQgbm90IGlu
Y2x1ZGUgYW55IHdhcm0tdXAgaXRlcmF0aW9uczsgbWVhc3VyZW1lbnRzICIrCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJlZ2FuIHdpdGggdGhlIHZlcnkgZmlyc3Qg
aXRlcmF0aW9uLiIpCi0gICAgICAgICAgICAgICAgICBlbHNlICgiIFVzZWQgI3skd2FybXVwKiRy
ZXJ1bn0gYmVuY2htYXJrIGl0ZXJhdGlvbiN7cGx1cmFsKCR3YXJtdXAqJHJlcnVuKX0gcGVyIFZN
ICIrCi0gICAgICAgICAgICAgICAgICAgICAgICAiaW52b2NhdGlvbiBmb3Igd2FybS11cC4iKSBl
bmQpKwotICAgICAgICAgICAgICAgICAoY2FzZSAkdGltZU1vZGUKLSAgICAgICAgICAgICAgICAg
IHdoZW4gOnByZWNpc2VUaW1lIHRoZW4gKCIgVXNlZCB0aGUganNjLXNwZWNpZmljIHByZWNpc2VU
aW1lKCkgZnVuY3Rpb24gdG8gZ2V0ICIrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibWljcm9zZWNvbmQtbGV2ZWwgdGltaW5nLiIpCi0gICAgICAgICAgICAgICAg
ICB3aGVuIDpkYXRlIHRoZW4gKCIgVXNlZCB0aGUgcG9ydGFibGUgRGF0ZS5ub3coKSBtZXRob2Qg
dG8gZ2V0IG1pbGxpc2Vjb25kLSIrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJsZXZlbCB0aW1pbmcuIikKLSAgICAgICAgICAgICAgICAgIGVsc2UgcmFpc2UgZW5kKSsKLSAg
ICAgICAgICAgICAgICAgIiBSZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1dGlvbiB0aW1lcyB3aXRo
IDk1JSBjb25maWRlbmNlICIrCi0gICAgICAgICAgICAgICAgICJpbnRlcnZhbHMgaW4gbWlsbGlz
ZWNvbmRzLiIsCi0gICAgICAgICAgICAgICAgIGNvbHVtbnMpCi0gIAotICBvdXRwLnB1dHMKLSAg
Ci0gIGRlZiBwcmludFZNcyhvdXRwKQotICAgIG91dHAucHV0cyBjcmVhdGVWTXNTdHJpbmcKLSAg
ZW5kCi0gIAotICBkZWYgc3VtbWFyeVN0YXRzKG91dHAsIGFjY3VtdWxhdG9ycywgbmFtZSwgJnBy
b2MpCi0gICAgb3V0cC5wcmludCAiICAgIiBpZiAkc3VpdGVzLnNpemUgPiAxCi0gICAgb3V0cC5w
cmludCBycGFkKG5hbWUsICRiZW5jaHBhZCkKLSAgICBvdXRwLnByaW50ICIgIgotICAgIGFjY3Vt
dWxhdG9ycy5zaXplLnRpbWVzIHsKLSAgICAgIHwgaW5kZXggfAotICAgICAgaWYgaW5kZXggIT0g
MAotICAgICAgICBvdXRwLnByaW50ICIgIithY2N1bXVsYXRvcnNbaW5kZXhdLnN0YXRzKCZwcm9j
KS5jb21wYXJlVG8oYWNjdW11bGF0b3JzW2luZGV4LTFdLnN0YXRzKCZwcm9jKSkuc2hvcnRGb3Jt
Ci0gICAgICBlbmQKLSAgICAgIG91dHAucHJpbnQgc3RhdHNUb1N0cihhY2N1bXVsYXRvcnNbaW5k
ZXhdLnN0YXRzKCZwcm9jKSkKLSAgICB9Ci0gICAgaWYgYWNjdW11bGF0b3JzLnNpemU+PTIKLSAg
ICAgIG91dHAucHJpbnQoIiAgICAiK2FjY3VtdWxhdG9yc1stMV0uc3RhdHMoJnByb2MpLmNvbXBh
cmVUbyhhY2N1bXVsYXRvcnNbMF0uc3RhdHMoJnByb2MpKS5sb25nRm9ybSkKLSAgICBlbmQKLSAg
ICBvdXRwLnB1dHMKLSAgZW5kCi0gIAotICBkZWYgbWVhbk5hbWUoY3VycmVudE1lYW4sIHByZWZl
cnJlZE1lYW4pCi0gICAgcmVzdWx0ID0gIjwje2N1cnJlbnRNZWFufT4iCi0gICAgaWYgIiN7Y3Vy
cmVudE1lYW59TWVhbiIgPT0gcHJlZmVycmVkTWVhbi50b19zCi0gICAgICByZXN1bHQgKz0gIiAq
IgotICAgIGVuZAotICAgIHJlc3VsdAotICBlbmQKLSAgCi0gIGRlZiBhbGxTdW1tYXJ5U3RhdHMo
b3V0cCwgYWNjdW11bGF0b3JzLCBwcmVmZXJyZWRNZWFuKQotICAgIHN1bW1hcnlTdGF0cyhvdXRw
LCBhY2N1bXVsYXRvcnMsIG1lYW5OYW1lKCJhcml0aG1ldGljIiwgcHJlZmVycmVkTWVhbikpIHsK
LSAgICAgIHwgc3RhdCB8Ci0gICAgICBzdGF0LmFyaXRobWV0aWNNZWFuCi0gICAgfQotICAgIAot
ICAgIHN1bW1hcnlTdGF0cyhvdXRwLCBhY2N1bXVsYXRvcnMsIG1lYW5OYW1lKCJnZW9tZXRyaWMi
LCBwcmVmZXJyZWRNZWFuKSkgewotICAgICAgfCBzdGF0IHwKLSAgICAgIHN0YXQuZ2VvbWV0cmlj
TWVhbgotICAgIH0KLSAgICAKLSAgICBzdW1tYXJ5U3RhdHMob3V0cCwgYWNjdW11bGF0b3JzLCBt
ZWFuTmFtZSgiaGFybW9uaWMiLCBwcmVmZXJyZWRNZWFuKSkgewotICAgICAgfCBzdGF0IHwKLSAg
ICAgIHN0YXQuaGFybW9uaWNNZWFuCi0gICAgfQotICBlbmQKLSAgCi0gICRzdWl0ZXMuZWFjaCB7
Ci0gICAgfCBzdWl0ZSB8Ci0gICAgcHJpbnRWTXMob3V0cCkKLSAgICBpZiAkc3VpdGVzLnNpemUg
PiAxCi0gICAgICBvdXRwLnB1dHMgIiN7c3VpdGUubmFtZX06IgotICAgIGVsc2UKLSAgICAgIG91
dHAucHV0cwotICAgIGVuZAotICAgIHN1aXRlLmJlbmNobWFya3MuZWFjaCB7Ci0gICAgICB8IGJl
bmNobWFyayB8Ci0gICAgICBvdXRwLnByaW50ICIgICAiIGlmICRzdWl0ZXMuc2l6ZSA+IDEKLSAg
ICAgIG91dHAucHJpbnQgcnBhZChiZW5jaG1hcmsubmFtZSwgJGJlbmNocGFkKQotICAgICAgb3V0
cC5wcmludCAiICIKLSAgICAgIG15Q29uZmlncyA9IGJlbmNobWFya3NPblZNc0ZvckJlbmNobWFy
a1tiZW5jaG1hcmtdCi0gICAgICBteUNvbmZpZ3Muc2l6ZS50aW1lcyB7Ci0gICAgICAgIHwgaW5k
ZXggfAotICAgICAgICBpZiBpbmRleCAhPSAwCi0gICAgICAgICAgb3V0cC5wcmludCAiICIrbXlD
b25maWdzW2luZGV4XS5zdGF0cy5jb21wYXJlVG8obXlDb25maWdzW2luZGV4LTFdLnN0YXRzKS5z
aG9ydEZvcm0KLSAgICAgICAgZW5kCi0gICAgICAgIG91dHAucHJpbnQgc3RhdHNUb1N0cihteUNv
bmZpZ3NbaW5kZXhdLnN0YXRzKQotICAgICAgfQotICAgICAgaWYgJHZtcy5zaXplPj0yCi0gICAg
ICAgIG91dHAucHJpbnQoIiAgICAiK215Q29uZmlnc1stMV0uc3RhdHMuY29tcGFyZVRvKG15Q29u
Zmlnc1swXS5zdGF0cykudG9fcykKLSAgICAgIGVuZAotICAgICAgb3V0cC5wdXRzCi0gICAgfQot
ICAgIG91dHAucHV0cwotICAgIGFsbFN1bW1hcnlTdGF0cyhvdXRwLCBzdWl0ZXNPblZNc0ZvclN1
aXRlW3N1aXRlXSwgc3VpdGUucHJlZmVycmVkTWVhbikKLSAgICBvdXRwLnB1dHMgaWYgJHN1aXRl
cy5zaXplID4gMQotICB9Ci0gIAotICBpZiAkc3VpdGVzLnNpemUgPiAxCi0gICAgcHJpbnRWTXMo
b3V0cCkKLSAgICBvdXRwLnB1dHMgIkFsbCBiZW5jaG1hcmtzOiIKLSAgICBhbGxTdW1tYXJ5U3Rh
dHMob3V0cCwgdm1TdGF0c2VzLCBuaWwpCi0gICAgCi0gICAgb3V0cC5wdXRzCi0gICAgcHJpbnRW
TXMob3V0cCkKLSAgICBvdXRwLnB1dHMgIkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5zOiIKLSAg
ICBvdXRwLnByaW50ICIgICAiCi0gICAgb3V0cC5wcmludCBycGFkKCI8c2NhbGVkLXJlc3VsdD4i
LCAkYmVuY2hwYWQpCi0gICAgb3V0cC5wcmludCAiICIKLSAgICAkdm1zLnNpemUudGltZXMgewot
ICAgICAgfCBpbmRleCB8Ci0gICAgICBpZiBpbmRleCAhPSAwCi0gICAgICAgIG91dHAucHJpbnQg
IiAiK292ZXJhbGxSZXN1bHRzW2luZGV4XS5jb21wYXJlVG8ob3ZlcmFsbFJlc3VsdHNbaW5kZXgt
MV0pLnNob3J0Rm9ybQotICAgICAgZW5kCi0gICAgICBvdXRwLnByaW50IHN0YXRzVG9TdHIob3Zl
cmFsbFJlc3VsdHNbaW5kZXhdKQotICAgIH0KLSAgICBpZiBvdmVyYWxsUmVzdWx0cy5zaXplPj0y
Ci0gICAgICBvdXRwLnByaW50KCIgICAgIitvdmVyYWxsUmVzdWx0c1stMV0uY29tcGFyZVRvKG92
ZXJhbGxSZXN1bHRzWzBdKS5sb25nRm9ybSkKLSAgICBlbmQKLSAgICBvdXRwLnB1dHMKLSAgZW5k
Ci0gIG91dHAucHV0cwotICAKLSAgaWYgb3V0cCAhPSAkc3Rkb3V0Ci0gICAgb3V0cC5jbG9zZQot
ICBlbmQKLSAgCi0gIGlmIG91dHAgIT0gJHN0ZG91dCBhbmQgbm90ICRicmllZgotICAgIHB1dHMK
LSAgICBGaWxlLm9wZW4ocmVwb3J0TmFtZSkgewotICAgICAgfCBpbnAgfAotICAgICAgcHV0cyBp
bnAucmVhZAotICAgIH0KLSAgZW5kCi0gIAotICBpZiAkYnJpZWYKLSAgICBwdXRzKG92ZXJhbGxS
ZXN1bHRzLmNvbGxlY3R7fHN0YXRzfCBzdGF0cy5tZWFufS5qb2luKCJcdCIpKQotICAgIHB1dHMo
b3ZlcmFsbFJlc3VsdHMuY29sbGVjdHt8c3RhdHN8IHN0YXRzLmNvbmZJbnR9LmpvaW4oIlx0Iikp
Ci0gIGVuZAotICAKLSAgCi1lbmQKLQotYmVnaW4KLSAgJHNhd0JlbmNoT3B0aW9ucyA9IGZhbHNl
Ci0gIAotICBkZWYgcmVzZXRCZW5jaE9wdGlvbnNJZk5lY2Vzc2FyeQotICAgIHVubGVzcyAkc2F3
QmVuY2hPcHRpb25zCi0gICAgICAkaW5jbHVkZVN1blNwaWRlciA9IGZhbHNlCi0gICAgICAkaW5j
bHVkZVY4ID0gZmFsc2UKLSAgICAgICRpbmNsdWRlS3Jha2VuID0gZmFsc2UKLSAgICAgICRzYXdC
ZW5jaE9wdGlvbnMgPSB0cnVlCi0gICAgZW5kCi0gIGVuZAotICAKLSAgR2V0b3B0TG9uZy5uZXco
WyctLXJlcnVuJywgR2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAotICAgICAgICAgICAg
ICAgICBbJy0taW5uZXInLCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCi0gICAgICAg
ICAgICAgICAgIFsnLS1vdXRlcicsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FSR1VNRU5UXSwKLSAg
ICAgICAgICAgICAgICAgWyctLXdhcm11cCcsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FSR1VNRU5U
XSwKLSAgICAgICAgICAgICAgICAgWyctLXRpbWluZy1tb2RlJywgR2V0b3B0TG9uZzo6UkVRVUlS
RURfQVJHVU1FTlRdLAotICAgICAgICAgICAgICAgICBbJy0tc3Vuc3BpZGVyLW9ubHknLCBHZXRv
cHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAgICAgICAgIFsnLS12OC1vbmx5JywgR2V0
b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAotICAgICAgICAgICAgICAgICBbJy0ta3Jha2VuLW9ubHkn
LCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAgICAgICAgIFsnLS1leGNsdWRl
LXN1bnNwaWRlcicsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKLSAgICAgICAgICAgICAgICAg
WyctLWV4Y2x1ZGUtdjgnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAgICAg
ICAgIFsnLS1leGNsdWRlLWtyYWtlbicsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKLSAgICAg
ICAgICAgICAgICAgWyctLXN1bnNwaWRlcicsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKLSAg
ICAgICAgICAgICAgICAgWyctLXY4JywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAotICAgICAg
ICAgICAgICAgICBbJy0ta3Jha2VuJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAotICAgICAg
ICAgICAgICAgICBbJy0tYmVuY2htYXJrcycsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FSR1VNRU5U
XSwKLSAgICAgICAgICAgICAgICAgWyctLW1lYXN1cmUtZ2MnLCBHZXRvcHRMb25nOjpPUFRJT05B
TF9BUkdVTUVOVF0sCi0gICAgICAgICAgICAgICAgIFsnLS1mb3JjZS12bS1raW5kJywgR2V0b3B0
TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAotICAgICAgICAgICAgICAgICBbJy0tZm9yY2Utdm0t
Y29weScsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKLSAgICAgICAgICAgICAgICAgWyctLWRv
bnQtY29weS12bXMnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAgICAgICAg
IFsnLS12ZXJib3NlJywgJy12JywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAotICAgICAgICAg
ICAgICAgICBbJy0tYnJpZWYnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAg
ICAgICAgIFsnLS1zaWxlbnQnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAg
ICAgICAgIFsnLS1yZW1vdGUnLCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCi0gICAg
ICAgICAgICAgICAgIFsnLS1sb2NhbCcsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKLSAgICAg
ICAgICAgICAgICAgWyctLXNzaC1vcHRpb25zJywgR2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1F
TlRdLAotICAgICAgICAgICAgICAgICBbJy0tc2xhdmUnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVO
VF0sCi0gICAgICAgICAgICAgICAgIFsnLS1wcmVwYXJlLW9ubHknLCBHZXRvcHRMb25nOjpOT19B
UkdVTUVOVF0sCi0gICAgICAgICAgICAgICAgIFsnLS1hbmFseXplJywgR2V0b3B0TG9uZzo6UkVR
VUlSRURfQVJHVU1FTlRdLAotICAgICAgICAgICAgICAgICBbJy0tdm1zJywgR2V0b3B0TG9uZzo6
UkVRVUlSRURfQVJHVU1FTlRdLAotICAgICAgICAgICAgICAgICBbJy0taGVscCcsICctaCcsIEdl
dG9wdExvbmc6Ok5PX0FSR1VNRU5UXSkuZWFjaCB7Ci0gICAgfCBvcHQsIGFyZyB8Ci0gICAgY2Fz
ZSBvcHQKLSAgICB3aGVuICctLXJlcnVuJwotICAgICAgJHJlcnVuID0gaW50QXJnKG9wdCxhcmcs
MSxuaWwpCi0gICAgd2hlbiAnLS1pbm5lcicKLSAgICAgICRpbm5lciA9IGludEFyZyhvcHQsYXJn
LDEsbmlsKQotICAgIHdoZW4gJy0tb3V0ZXInCi0gICAgICAkb3V0ZXIgPSBpbnRBcmcob3B0LGFy
ZywxLG5pbCkKLSAgICB3aGVuICctLXdhcm11cCcKLSAgICAgICR3YXJtdXAgPSBpbnRBcmcob3B0
LGFyZywwLG5pbCkKLSAgICB3aGVuICctLXRpbWluZy1tb2RlJwotICAgICAgaWYgYXJnLnVwY2Fz
ZSA9PSAiUFJFQ0lTRVRJTUUiCi0gICAgICAgICR0aW1lTW9kZSA9IDpwcmVjaXNlVGltZQotICAg
ICAgZWxzaWYgYXJnLnVwY2FzZSA9PSAiREFURSIKLSAgICAgICAgJHRpbWVNb2RlID0gOmRhdGUK
LSAgICAgIGVsc2lmIGFyZy51cGNhc2UgPT0gIkFVVE8iCi0gICAgICAgICR0aW1lTW9kZSA9IDph
dXRvCi0gICAgICBlbHNlCi0gICAgICAgIHF1aWNrRmFpbCgiRXhwZWN0ZWQgZWl0aGVyICdwcmVj
aXNlVGltZScsICdkYXRlJywgb3IgJ2F1dG8nIGZvciAtLXRpbWUtbW9kZSwgYnV0IGdvdCAnI3th
cmd9Jy4iLAotICAgICAgICAgICAgICAgICAgIkludmFsaWQgYXJndW1lbnQgZm9yIGNvbW1hbmQt
bGluZSBvcHRpb24iKQotICAgICAgZW5kCi0gICAgd2hlbiAnLS1mb3JjZS12bS1raW5kJwotICAg
ICAgaWYgYXJnLnVwY2FzZSA9PSAiSlNDIgotICAgICAgICAkZm9yY2VWTUtpbmQgPSA6anNjCi0g
ICAgICBlbHNpZiBhcmcudXBjYXNlID09ICJEVU1QUkVOREVSVFJFRSIKLSAgICAgICAgJGZvcmNl
Vk1LaW5kID0gOmR1bXBSZW5kZXJUcmVlCi0gICAgICBlbHNpZiBhcmcudXBjYXNlID09ICJBVVRP
IgotICAgICAgICAkZm9yY2VWTUtpbmQgPSBuaWwKLSAgICAgIGVsc2UKLSAgICAgICAgcXVpY2tG
YWlsKCJFeHBlY3RlZCBlaXRoZXIgJ2pzYycgb3IgJ0R1bXBSZW5kZXJUcmVlJyBmb3IgLS1mb3Jj
ZS12bS1raW5kLCBidXQgZ290ICcje2FyZ30nLiIsCi0gICAgICAgICAgICAgICAgICAiSW52YWxp
ZCBhcmd1bWVudCBmb3IgY29tbWFuZC1saW5lIG9wdGlvbiIpCi0gICAgICBlbmQKLSAgICB3aGVu
ICctLWZvcmNlLXZtLWNvcHknCi0gICAgICAkbmVlZFRvQ29weVZNcyA9IHRydWUKLSAgICB3aGVu
ICctLWRvbnQtY29weS12bXMnCi0gICAgICAkZG9udENvcHlWTXMgPSB0cnVlCi0gICAgd2hlbiAn
LS1zdW5zcGlkZXItb25seScKLSAgICAgICRpbmNsdWRlVjggPSBmYWxzZQotICAgICAgJGluY2x1
ZGVLcmFrZW4gPSBmYWxzZQotICAgIHdoZW4gJy0tdjgtb25seScKLSAgICAgICRpbmNsdWRlU3Vu
U3BpZGVyID0gZmFsc2UKLSAgICAgICRpbmNsdWRlS3Jha2VuID0gZmFsc2UKLSAgICB3aGVuICct
LWtyYWtlbi1vbmx5JwotICAgICAgJGluY2x1ZGVTdW5TcGlkZXIgPSBmYWxzZQotICAgICAgJGlu
Y2x1ZGVWOCA9IGZhbHNlCi0gICAgd2hlbiAnLS1leGNsdWRlLXN1bnNwaWRlcicKLSAgICAgICRp
bmNsdWRlU3VuU3BpZGVyID0gZmFsc2UKLSAgICB3aGVuICctLWV4Y2x1ZGUtdjgnCi0gICAgICAk
aW5jbHVkZVY4ID0gZmFsc2UKLSAgICB3aGVuICctLWV4Y2x1ZGUta3Jha2VuJwotICAgICAgJGlu
Y2x1ZGVLcmFrZW4gPSBmYWxzZQotICAgIHdoZW4gJy0tc3Vuc3BpZGVyJwotICAgICAgcmVzZXRC
ZW5jaE9wdGlvbnNJZk5lY2Vzc2FyeQotICAgICAgJGluY2x1ZGVTdW5TcGlkZXIgPSB0cnVlCi0g
ICAgd2hlbiAnLS12OCcKLSAgICAgIHJlc2V0QmVuY2hPcHRpb25zSWZOZWNlc3NhcnkKLSAgICAg
ICRpbmNsdWRlVjggPSB0cnVlCi0gICAgd2hlbiAnLS1rcmFrZW4nCi0gICAgICByZXNldEJlbmNo
T3B0aW9uc0lmTmVjZXNzYXJ5Ci0gICAgICAkaW5jbHVkZUtyYWtlbiA9IHRydWUKLSAgICB3aGVu
ICctLWJlbmNobWFya3MnCi0gICAgICAkYmVuY2htYXJrUGF0dGVybiA9IFJlZ2V4cC5uZXcoYXJn
KQotICAgIHdoZW4gJy0tbWVhc3VyZS1nYycKLSAgICAgIGlmIGFyZyA9PSAnJwotICAgICAgICAk
bWVhc3VyZUdDID0gdHJ1ZQotICAgICAgZWxzZQotICAgICAgICAkbWVhc3VyZUdDID0gYXJnCi0g
ICAgICBlbmQKLSAgICB3aGVuICctLXZlcmJvc2UnCi0gICAgICAkdmVyYm9zaXR5ICs9IDEKLSAg
ICB3aGVuICctLWJyaWVmJwotICAgICAgJGJyaWVmID0gdHJ1ZQotICAgIHdoZW4gJy0tc2lsZW50
JwotICAgICAgJHNpbGVudCA9IHRydWUKLSAgICB3aGVuICctLXJlbW90ZScKLSAgICAgICRyZW1v
dGVIb3N0cyArPSBhcmcuc3BsaXQoJywnKQotICAgICAgJG5lZWRUb0NvcHlWTXMgPSB0cnVlCi0g
ICAgd2hlbiAnLS1zc2gtb3B0aW9ucycKLSAgICAgICRzc2hPcHRpb25zIDw8IGFyZwotICAgIHdo
ZW4gJy0tbG9jYWwnCi0gICAgICAkYWxzb0xvY2FsID0gdHJ1ZQotICAgIHdoZW4gJy0tcHJlcGFy
ZS1vbmx5JwotICAgICAgJHJ1biA9IGZhbHNlCi0gICAgd2hlbiAnLS1hbmFseXplJwotICAgICAg
JHByZXBhcmUgPSBmYWxzZQotICAgICAgJHJ1biA9IGZhbHNlCi0gICAgICAkYW5hbHl6ZSA8PCBh
cmcKLSAgICB3aGVuICctLWhlbHAnCi0gICAgICB1c2FnZQotICAgIGVsc2UKLSAgICAgIHJhaXNl
ICJiYWQgb3B0aW9uOiAje29wdH0iCi0gICAgZW5kCi0gIH0KLSAgCi0gICMgSWYgdGhlIC0tZG9u
dC1jb3B5LXZtcyBvcHRpb24gd2FzIHBhc3NlZCwgaXQgb3ZlcnJpZGVzIHRoZSAtLWZvcmNlLXZt
LWNvcHkgb3B0aW9uLgotICBpZiAkZG9udENvcHlWTXMKLSAgICAkbmVlZFRvQ29weVZNcyA9IGZh
bHNlCi0gIGVuZAotICAKLSAgU1VOU1BJREVSID0gQmVuY2htYXJrU3VpdGUubmV3KCJTdW5TcGlk
ZXIiLCBTVU5TUElERVJfUEFUSCwgOmFyaXRobWV0aWNNZWFuKQotICBbIjNkLWN1YmUiLCAiM2Qt
bW9ycGgiLCAiM2QtcmF5dHJhY2UiLCAiYWNjZXNzLWJpbmFyeS10cmVlcyIsCi0gICAiYWNjZXNz
LWZhbm5rdWNoIiwgImFjY2Vzcy1uYm9keSIsICJhY2Nlc3MtbnNpZXZlIiwKLSAgICJiaXRvcHMt
M2JpdC1iaXRzLWluLWJ5dGUiLCAiYml0b3BzLWJpdHMtaW4tYnl0ZSIsICJiaXRvcHMtYml0d2lz
ZS1hbmQiLAotICAgImJpdG9wcy1uc2lldmUtYml0cyIsICJjb250cm9sZmxvdy1yZWN1cnNpdmUi
LCAiY3J5cHRvLWFlcyIsCi0gICAiY3J5cHRvLW1kNSIsICJjcnlwdG8tc2hhMSIsICJkYXRlLWZv
cm1hdC10b2Z0ZSIsICJkYXRlLWZvcm1hdC14cGFyYiIsCi0gICAibWF0aC1jb3JkaWMiLCAibWF0
aC1wYXJ0aWFsLXN1bXMiLCAibWF0aC1zcGVjdHJhbC1ub3JtIiwgInJlZ2V4cC1kbmEiLAotICAg
InN0cmluZy1iYXNlNjQiLCAic3RyaW5nLWZhc3RhIiwgInN0cmluZy10YWdjbG91ZCIsCi0gICAi
c3RyaW5nLXVucGFjay1jb2RlIiwgInN0cmluZy12YWxpZGF0ZS1pbnB1dCJdLmVhY2ggewotICAg
IHwgbmFtZSB8Ci0gICAgU1VOU1BJREVSLmFkZCBTdW5TcGlkZXJCZW5jaG1hcmsubmV3KG5hbWUp
Ci0gIH0KLQotICBWOCA9IEJlbmNobWFya1N1aXRlLm5ldygiVjgiLCBWOF9QQVRILCA6Z2VvbWV0
cmljTWVhbikKLSAgWyJjcnlwdG8iLCAiZGVsdGFibHVlIiwgImVhcmxleS1ib3llciIsICJyYXl0
cmFjZSIsCi0gICAicmVnZXhwIiwgInJpY2hhcmRzIiwgInNwbGF5Il0uZWFjaCB7Ci0gICAgfCBu
YW1lIHwKLSAgICBWOC5hZGQgVjhCZW5jaG1hcmsubmV3KG5hbWUpCi0gIH0KLQotICBLUkFLRU4g
PSBCZW5jaG1hcmtTdWl0ZS5uZXcoIktyYWtlbiIsIEtSQUtFTl9QQVRILCA6YXJpdGhtZXRpY01l
YW4pCi0gIFsiYWktYXN0YXIiLCAiYXVkaW8tYmVhdC1kZXRlY3Rpb24iLCAiYXVkaW8tZGZ0Iiwg
ImF1ZGlvLWZmdCIsCi0gICAiYXVkaW8tb3NjaWxsYXRvciIsICJpbWFnaW5nLWRhcmtyb29tIiwg
ImltYWdpbmctZGVzYXR1cmF0ZSIsCi0gICAiaW1hZ2luZy1nYXVzc2lhbi1ibHVyIiwgImpzb24t
cGFyc2UtZmluYW5jaWFsIiwKLSAgICJqc29uLXN0cmluZ2lmeS10aW5kZXJib3giLCAic3RhbmZv
cmQtY3J5cHRvLWFlcyIsCi0gICAic3RhbmZvcmQtY3J5cHRvLWNjbSIsICJzdGFuZm9yZC1jcnlw
dG8tcGJrZGYyIiwKLSAgICJzdGFuZm9yZC1jcnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZSJdLmVhY2gg
ewotICAgIHwgbmFtZSB8Ci0gICAgS1JBS0VOLmFkZCBLcmFrZW5CZW5jaG1hcmsubmV3KG5hbWUp
Ci0gIH0KLQotICBBUkdWLmVhY2ggewotICAgIHwgdm0gfAotICAgIGlmIHZtID1+IC8oW2EtekEt
WjAtOV8gXSspOi8KLSAgICAgIG5hbWUgPSAkMQotICAgICAgbmFtZUtpbmQgPSA6Z2l2ZW4KLSAg
ICAgIHZtID0gJH4ucG9zdF9tYXRjaAotICAgIGVsc2UKLSAgICAgIG5hbWUgPSAiQ29uZlwjI3sk
dm1zLmxlbmd0aCsxfSIKLSAgICAgIG5hbWVLaW5kID0gOmF1dG8KLSAgICBlbmQKLSAgICAkc3Rk
ZXJyLnB1dHMgIiN7bmFtZX06ICN7dm19IiBpZiAkdmVyYm9zaXR5ID49IDEKLSAgICAkdm1zIDw8
IFZNLm5ldyhQYXRobmFtZS5uZXcodm0pLnJlYWxwYXRoLCBuYW1lLCBuYW1lS2luZCwgbmlsKQot
ICB9Ci0gIAotICBpZiAkdm1zLmVtcHR5PwotICAgIHF1aWNrRmFpbCgiUGxlYXNlIHNwZWNpZnkg
YXQgbGVhc3Qgb24gY29uZmlndXJhaXRvbiBvbiB0aGUgY29tbWFuZCBsaW5lLiIsCi0gICAgICAg
ICAgICAgICJJbnN1ZmZpY2llbnQgYXJndW1lbnRzIikKLSAgZW5kCi0gIAotICAkdm1zLmVhY2gg
ewotICAgIHwgdm0gfAotICAgIGlmIHZtLnZtVHlwZSAhPSA6anNjIGFuZCAkdGltZU1vZGUgIT0g
OmRhdGUKLSAgICAgICR0aW1lTW9kZSA9IDpkYXRlCi0gICAgICAkc3RkZXJyLnB1dHMgIldhcm5p
bmc6IHVzaW5nIERhdGUubm93KCkgaW5zdGVhZCBvZiBwcmVjaXNlVGltZSgpIGJlY2F1c2UgI3t2
bX0gZG9lc24ndCBzdXBwb3J0IHRoZSBsYXR0ZXIuIgotICAgIGVuZAotICB9Ci0gIAotICBpZiBG
aWxlVGVzdC5leGlzdD8gQkVOQ0hfREFUQV9QQVRICi0gICAgY21kID0gInJtIC1yZiAje0JFTkNI
X0RBVEFfUEFUSH0iCi0gICAgJHN0ZGVyci5wdXRzICI+PiAje2NtZH0iIGlmICR2ZXJib3NpdHkg
Pj0gMgotICAgIHJhaXNlIHVubGVzcyBzeXN0ZW0gY21kCi0gIGVuZAotICAKLSAgRGlyLm1rZGly
IEJFTkNIX0RBVEFfUEFUSAotICAKLSAgaWYgJG5lZWRUb0NvcHlWTXMKLSAgICBjYW5Db3B5SW50
b0JlbmNoUGF0aCA9IHRydWUKLSAgICAkdm1zLmVhY2ggewotICAgICAgfCB2bSB8Ci0gICAgICBj
YW5Db3B5SW50b0JlbmNoUGF0aCA9IGZhbHNlIHVubGVzcyB2bS5jYW5Db3B5SW50b0JlbmNoUGF0
aAotICAgIH0KLSAgICAKLSAgICBpZiBjYW5Db3B5SW50b0JlbmNoUGF0aAotICAgICAgJHZtcy5l
YWNoIHsKLSAgICAgICAgfCB2bSB8Ci0gICAgICAgICRzdGRlcnIucHV0cyAiQ29weWluZyAje3Zt
fSBpbnRvICN7QkVOQ0hfREFUQV9QQVRIfS4uLiIKLSAgICAgICAgdm0uY29weUludG9CZW5jaFBh
dGgKLSAgICAgIH0KLSAgICAgICRzdGRlcnIucHV0cyAiQWxsIFZNcyBhcmUgaW4gcGxhY2UuIgot
ICAgIGVsc2UKLSAgICAgICRzdGRlcnIucHV0cyAiV2FybmluZzogZG9uJ3Qga25vdyBob3cgdG8g
Y29weSBzb21lIFZNcyBpbnRvICN7QkVOQ0hfREFUQV9QQVRIfSwgc28gSSB3b24ndCBkbyBpdC4i
Ci0gICAgZW5kCi0gIGVuZAotICAKLSAgaWYgJG1lYXN1cmVHQyBhbmQgJG1lYXN1cmVHQyAhPSB0
cnVlCi0gICAgZm91bmQgPSBmYWxzZQotICAgICR2bXMuZWFjaCB7Ci0gICAgICB8IHZtIHwKLSAg
ICAgIGlmIHZtLm5hbWUgPT0gJG1lYXN1cmVHQwotICAgICAgICBmb3VuZCA9IHRydWUKLSAgICAg
IGVuZAotICAgIH0KLSAgICB1bmxlc3MgZm91bmQKLSAgICAgICRzdGRlcnIucHV0cyAiV2Fybmlu
ZzogLS1tZWFzdXJlLWdjIG9wdGlvbiBpZ25vcmVkIGJlY2F1c2Ugbm8gVk0gaXMgbmFtZWQgI3sk
bWVhc3VyZUdDfSIKLSAgICBlbmQKLSAgZW5kCi0gIAotICBpZiAkb3V0ZXIqJGlubmVyID09IDEK
LSAgICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IHdpbGwgb25seSBjb2xsZWN0IG9uZSBzYW1wbGUg
cGVyIGJlbmNobWFyay9WTS4gIENvbmZpZGVuY2UgaW50ZXJ2YWwgY2FsY3VsYXRpb24gd2lsbCBm
YWlsLiIKLSAgZW5kCi0gIAotICAkc3RkZXJyLnB1dHMgIlVzaW5nIHRpbWVNb2RlID0gI3skdGlt
ZU1vZGV9LiIgaWYgJHZlcmJvc2l0eSA+PSAxCi0gIAotICAkc3VpdGVzID0gW10KLSAgCi0gIGlm
ICRpbmNsdWRlU3VuU3BpZGVyIGFuZCBub3QgU1VOU1BJREVSLmVtcHR5PwotICAgICRzdWl0ZXMg
PDwgU1VOU1BJREVSCi0gIGVuZAotICAKLSAgaWYgJGluY2x1ZGVWOCBhbmQgbm90IFY4LmVtcHR5
PwotICAgICRzdWl0ZXMgPDwgVjgKLSAgZW5kCi0gIAotICBpZiAkaW5jbHVkZUtyYWtlbiBhbmQg
bm90IEtSQUtFTi5lbXB0eT8KLSAgICAkc3VpdGVzIDw8IEtSQUtFTgotICBlbmQKLSAgCi0gICRi
ZW5jaG1hcmtzID0gW10KLSAgJHN1aXRlcy5lYWNoIHsKLSAgICB8IHN1aXRlIHwKLSAgICAkYmVu
Y2htYXJrcyArPSBzdWl0ZS5iZW5jaG1hcmtzCi0gIH0KLSAgCi0gICRydW5QbGFucyA9IFtdCi0g
ICR2bXMuZWFjaCB7Ci0gICAgfCB2bSB8Ci0gICAgJGJlbmNobWFya3MuZWFjaCB7Ci0gICAgICB8
IGJlbmNobWFyayB8Ci0gICAgICAkb3V0ZXIudGltZXMgewotICAgICAgICB8IGl0ZXJhdGlvbiB8
Ci0gICAgICAgICRydW5QbGFucyA8PCBCZW5jaFJ1blBsYW4ubmV3KGJlbmNobWFyaywgdm0sIGl0
ZXJhdGlvbikKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgCi0gICRydW5QbGFucy5zaHVmZmxlIQot
ICAKLSAgJHN1aXRlcGFkID0gJHN1aXRlcy5jb2xsZWN0IHsKLSAgICB8IHN1aXRlIHwKLSAgICBz
dWl0ZS50b19zLnNpemUKLSAgfS5tYXggKyAxCi0gIAotICAkYmVuY2hwYWQgPSAoJGJlbmNobWFy
a3MgKwotICAgICAgICAgICAgICAgWyI8YXJpdGhtZXRpYz4gKiIsICI8Z2VvbWV0cmljPiAqIiwg
IjxoYXJtb25pYz4gKiJdKS5jb2xsZWN0IHsKLSAgICB8IGJlbmNobWFyayB8Ci0gICAgaWYgYmVu
Y2htYXJrLnJlc3BvbmRfdG8/IDpuYW1lCi0gICAgICBiZW5jaG1hcmsubmFtZS5zaXplCi0gICAg
ZWxzZQotICAgICAgYmVuY2htYXJrLnNpemUKLSAgICBlbmQKLSAgfS5tYXggKyAxCi0KLSAgJHZt
cGFkID0gJHZtcy5jb2xsZWN0IHsKLSAgICB8IHZtIHwKLSAgICB2bS50b19zLnNpemUKLSAgfS5t
YXggKyAxCi0gIAotICBpZiAkcHJlcGFyZQotICAgIEZpbGUub3BlbigiI3tCRU5DSF9EQVRBX1BB
VEh9L3J1bnNjcmlwdCIsICJ3IikgewotICAgICAgfCBmaWxlIHwKLSAgICAgIGZpbGUucHV0cyAi
ZWNobyBcIkhPU1ROQU1FOlxcY1wiIgotICAgICAgZmlsZS5wdXRzICJob3N0bmFtZSIKLSAgICAg
IGZpbGUucHV0cyAiZWNobyIKLSAgICAgIGZpbGUucHV0cyAiZWNobyBcIkhBUkRXQVJFOlxcY1wi
IgotICAgICAgZmlsZS5wdXRzICIvdXNyL3NiaW4vc3lzY3RsIGh3Lm1vZGVsIgotICAgICAgZmls
ZS5wdXRzICJlY2hvIgotICAgICAgZmlsZS5wdXRzICJzZXQgLWUiCi0gICAgICAkc2NyaXB0ID0g
ZmlsZQotICAgICAgJHJ1blBsYW5zLmVhY2hfd2l0aF9pbmRleCB7Ci0gICAgICAgIHwgcGxhbiwg
aWR4IHwKLSAgICAgICAgaWYgJHZlcmJvc2l0eSA9PSAwIGFuZCBub3QgJHNpbGVudAotICAgICAg
ICAgIHRleHQxID0gbHBhZChpZHgudG9fcywkcnVuUGxhbnMuc2l6ZS50b19zLnNpemUpKyIvIisk
cnVuUGxhbnMuc2l6ZS50b19zCi0gICAgICAgICAgdGV4dDIgPSBwbGFuLmJlbmNobWFyay50b19z
KyIvIitwbGFuLnZtLnRvX3MKLSAgICAgICAgICBmaWxlLnB1dHMoImVjaG8gIisoIlxyI3t0ZXh0
MX0gI3tycGFkKHRleHQyLCRzdWl0ZXBhZCsxKyRiZW5jaHBhZCsxKyR2bXBhZCl9Ii5pbnNwZWN0
KVswLi4tMl0rIlxcY1wiIDE+JjIiKQotICAgICAgICAgIGZpbGUucHV0cygiZWNobyAiKygiXHIj
e3RleHQxfSAje3RleHQyfSIuaW5zcGVjdClbMC4uLTJdKyJcXGNcIiAxPiYyIikKLSAgICAgICAg
ZW5kCi0gICAgICAgIHBsYW4uZW1pdFJ1bkNvZGUKLSAgICAgIH0KLSAgICAgIGlmICR2ZXJib3Np
dHkgPT0gMCBhbmQgbm90ICRzaWxlbnQKLSAgICAgICAgZmlsZS5wdXRzKCJlY2hvICIrKCJcciN7
JHJ1blBsYW5zLnNpemV9LyN7JHJ1blBsYW5zLnNpemV9ICN7JyAnKigkc3VpdGVwYWQrMSskYmVu
Y2hwYWQrMSskdm1wYWQpfSIuaW5zcGVjdClbMC4uLTJdKyJcXGNcIiAxPiYyIikKLSAgICAgICAg
ZmlsZS5wdXRzKCJlY2hvICIrKCJcciN7JHJ1blBsYW5zLnNpemV9LyN7JHJ1blBsYW5zLnNpemV9
Ii5pbnNwZWN0KSsiIDE+JjIiKQotICAgICAgZW5kCi0gICAgfQotICBlbmQKLSAgCi0gIGlmICRy
dW4KLSAgICB1bmxlc3MgJHJlbW90ZUhvc3RzLmVtcHR5PwotICAgICAgJHN0ZGVyci5wdXRzICJQ
YWNrYWdpbmcgYmVuY2htYXJraW5nIGRpcmVjdG9yeSBmb3IgcmVtb3RlIGhvc3RzLi4uIiBpZiAk
dmVyYm9zaXR5PT0wCi0gICAgICBEaXIuY2hkaXIoVEVNUF9QQVRIKSB7Ci0gICAgICAgIGNtZCA9
ICJ0YXIgLWN6ZiBwYXlsb2FkLnRhci5neiBiZW5jaGRhdGEiCi0gICAgICAgICRzdGRlcnIucHV0
cyAiPj4gI3tjbWR9IiBpZiAkdmVyYm9zaXR5Pj0yCi0gICAgICAgIHJhaXNlIHVubGVzcyBzeXN0
ZW0oY21kKQotICAgICAgfQotICAgICAgCi0gICAgICBkZWYgZ3Jva0hvc3QoaG9zdCkKLSAgICAg
ICAgaWYgaG9zdCA9fiAvOihbMC05XSspJC8KLSAgICAgICAgICAiLXAgIiArICQxICsgIiAiICsg
JH4ucHJlX21hdGNoLmluc3BlY3QKLSAgICAgICAgZWxzZQotICAgICAgICAgIGhvc3QuaW5zcGVj
dAotICAgICAgICBlbmQKLSAgICAgIGVuZAotICAgICAgCi0gICAgICBkZWYgc3NoUmVhZChob3N0
LCBjb21tYW5kKQotICAgICAgICBjbWQgPSAic3NoICN7JHNzaE9wdGlvbnMuY29sbGVjdHt8eHwg
eC5pbnNwZWN0fS5qb2luKCcgJyl9ICN7Z3Jva0hvc3QoaG9zdCl9ICN7Y29tbWFuZC5pbnNwZWN0
fSIKLSAgICAgICAgJHN0ZGVyci5wdXRzICI+PiAje2NtZH0iIGlmICR2ZXJib3NpdHk+PTIKLSAg
ICAgICAgcmVzdWx0ID0gIiIKLSAgICAgICAgSU8ucG9wZW4oY21kLCAiciIpIHsKLSAgICAgICAg
ICB8IGlucCB8Ci0gICAgICAgICAgaW5wLmVhY2hfbGluZSB7Ci0gICAgICAgICAgICB8IGxpbmUg
fAotICAgICAgICAgICAgJHN0ZGVyci5wdXRzICIje2hvc3R9OiAje2xpbmV9IiBpZiAkdmVyYm9z
aXR5Pj0yCi0gICAgICAgICAgICByZXN1bHQgKz0gbGluZQotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICByYWlzZSAiI3skP30iIHVubGVzcyAkPy5zdWNjZXNzPwotICAgICAgICByZXN1
bHQKLSAgICAgIGVuZAotICAgICAgCi0gICAgICBkZWYgc3NoV3JpdGUoaG9zdCwgY29tbWFuZCwg
ZGF0YSkKLSAgICAgICAgY21kID0gInNzaCAjeyRzc2hPcHRpb25zLmNvbGxlY3R7fHh8IHguaW5z
cGVjdH0uam9pbignICcpfSAje2dyb2tIb3N0KGhvc3QpfSAje2NvbW1hbmQuaW5zcGVjdH0iCi0g
ICAgICAgICRzdGRlcnIucHV0cyAiPj4gI3tjbWR9IiBpZiAkdmVyYm9zaXR5Pj0yCi0gICAgICAg
IElPLnBvcGVuKGNtZCwgInciKSB7Ci0gICAgICAgICAgfCBvdXRwIHwKLSAgICAgICAgICBvdXRw
LndyaXRlKGRhdGEpCi0gICAgICAgIH0KLSAgICAgICAgcmFpc2UgIiN7JD99IiB1bmxlc3MgJD8u
c3VjY2Vzcz8KLSAgICAgIGVuZAotICAgICAgCi0gICAgICAkcmVtb3RlSG9zdHMuZWFjaCB7Ci0g
ICAgICAgIHwgaG9zdCB8Ci0gICAgICAgICRzdGRlcnIucHV0cyAiU2VuZGluZyBiZW5jaG1hcmsg
cGF5bG9hZCB0byAje2hvc3R9Li4uIiBpZiAkdmVyYm9zaXR5PT0wCi0gICAgICAgIAotICAgICAg
ICByZW1vdGVUZW1wUGF0aCA9IEpTT046OnBhcnNlKHNzaFJlYWQoaG9zdCwgImNhdCB+Ly5iZW5j
aGVyIikpWyJ0ZW1wUGF0aCJdCi0gICAgICAgIHJhaXNlIHVubGVzcyByZW1vdGVUZW1wUGF0aAot
ICAgICAgICAKLSAgICAgICAgc3NoV3JpdGUoaG9zdCwgImNkICN7cmVtb3RlVGVtcFBhdGguaW5z
cGVjdH0gJiYgcm0gLXJmIGJlbmNoZGF0YSAmJiB0YXIgLXh6IiwgSU86OnJlYWQoIiN7VEVNUF9Q
QVRIfS9wYXlsb2FkLnRhci5neiIpKQotICAgICAgICAKLSAgICAgICAgJHN0ZGVyci5wdXRzICJS
dW5uaW5nIG9uICN7aG9zdH0uLi4iIGlmICR2ZXJib3NpdHk9PTAKLSAgICAgICAgCi0gICAgICAg
IHBhcnNlQW5kRGlzcGxheVJlc3VsdHMoc3NoUmVhZChob3N0LCAiY2QgI3socmVtb3RlVGVtcFBh
dGgrJy9iZW5jaGRhdGEnKS5pbnNwZWN0fSAmJiBzaCBydW5zY3JpcHQiKSkKLSAgICAgIH0KLSAg
ICBlbmQKLSAgICAKLSAgICBpZiBub3QgJHJlbW90ZUhvc3RzLmVtcHR5PyBhbmQgJGFsc29Mb2Nh
bAotICAgICAgJHN0ZGVyci5wdXRzICJSdW5uaW5nIGxvY2FsbHkuLi4iCi0gICAgZW5kCi0gICAg
Ci0gICAgaWYgJHJlbW90ZUhvc3RzLmVtcHR5PyBvciAkYWxzb0xvY2FsCi0gICAgICBwYXJzZUFu
ZERpc3BsYXlSZXN1bHRzKHJ1bkFuZEdldFJlc3VsdHMpCi0gICAgZW5kCi0gIGVuZAotICAKLSAg
JGFuYWx5emUuZWFjaF93aXRoX2luZGV4IHsKLSAgICB8IGZpbGVuYW1lLCBpbmRleCB8Ci0gICAg
aWYgaW5kZXggPj0gMQotICAgICAgcHV0cwotICAgIGVuZAotICAgIHBhcnNlQW5kRGlzcGxheVJl
c3VsdHMoSU86OnJlYWQoZmlsZW5hbWUpKQotICB9Ci0gIAotICBpZiAkcHJlcGFyZSBhbmQgbm90
ICRydW4gYW5kICRhbmFseXplLmVtcHR5PwotICAgIHB1dHMgd3JhcCgiQmVuY2htYXJraW5nIHNj
cmlwdCBhbmQgZGF0YSBhcmUgaW4gI3tCRU5DSF9EQVRBX1BBVEh9LiBZb3UgY2FuIHJ1biAiKwot
ICAgICAgICAgICAgICAidGhlIGJlbmNobWFya3MgYW5kIGdldCB0aGUgcmVzdWx0cyBieSBkb2lu
ZzoiLCA3OCkKLSAgICBwdXRzCi0gICAgcHV0cyAiY2QgI3tCRU5DSF9EQVRBX1BBVEh9IgotICAg
IHB1dHMgInNoIHJ1bnNjcmlwdCA+IHJlc3VsdHMudHh0IgotICAgIHB1dHMKLSAgICBwdXRzIHdy
YXAoIlRoZW4geW91IGNhbiBhbmFseXplIHRoZSByZXN1bHRzIGJ5IHJ1bm5pbmcgYmVuY2hlciB3
aXRoIHRoZSBzYW1lIGFyZ3VtZW50cyAiKwotICAgICAgICAgICAgICAiYXMgbm93LCBidXQgcmVw
bGFjaW5nIC0tcHJlcGFyZS1vbmx5IHdpdGggLS1hbmFseXplIHJlc3VsdHMudHh0LiIsIDc4KQot
ICBlbmQKLXJlc2N1ZSA9PiBlCi0gIGZhaWwoZSkKLWVuZAotICAKLSAgCkluZGV4OiBUb29scy9T
Y3JpcHRzL3J1bi1qc2MtYmVuY2htYXJrcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1
bi1qc2MtYmVuY2htYXJrcwkocmV2aXNpb24gMCkKKysrIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1i
ZW5jaG1hcmtzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzM2NiBAQAorIyEvdXNyL2Jpbi9l
bnYgcnVieQorCisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCityZXF1aXJlICdydWJ5Z2VtcycKKworcmVxdWlyZSAnZ2V0b3B0bG9uZycKK3Jl
cXVpcmUgJ3BhdGhuYW1lJworcmVxdWlyZSAnc2hlbGx3b3JkcycKK3JlcXVpcmUgJ3NvY2tldCcK
KworYmVnaW4KKyAgcmVxdWlyZSAnanNvbicKK3Jlc2N1ZSBMb2FkRXJyb3IgPT4gZQorICAkc3Rk
ZXJyLnB1dHMgIkl0IGRvZXMgbm90IGFwcGVhciB0aGF0IHlvdSBoYXZlIHRoZSAnanNvbicgcGFj
a2FnZSBpbnN0YWxsZWQuICBUcnkgcnVubmluZyAnc3VkbyBnZW0gaW5zdGFsbCBqc29uJy4iCisg
IGV4aXQgMQorZW5kCisKK1NDUklQVF9QQVRIID0gUGF0aG5hbWUubmV3KF9fRklMRV9fKS5yZWFs
cGF0aAorCityYWlzZSB1bmxlc3MgU0NSSVBUX1BBVEguZGlybmFtZS5iYXNlbmFtZS50b19zID09
ICJTY3JpcHRzIgorcmFpc2UgdW5sZXNzIFNDUklQVF9QQVRILmRpcm5hbWUuZGlybmFtZS5iYXNl
bmFtZS50b19zID09ICJUb29scyIKKworT1BFTlNPVVJDRV9QQVRIID0gU0NSSVBUX1BBVEguZGly
bmFtZS5kaXJuYW1lLmRpcm5hbWUKKworU1VOU1BJREVSX1BBVEggPSBPUEVOU09VUkNFX1BBVEgg
KyAiUGVyZm9ybWFuY2VUZXN0cyIgKyAiU3VuU3BpZGVyIiArICJ0ZXN0cyIgKyAic3Vuc3BpZGVy
LTEuMCIKK0xPTkdTUElERVJfUEFUSCA9IE9QRU5TT1VSQ0VfUEFUSCArICJQZXJmb3JtYW5jZVRl
c3RzIiArICJMb25nU3BpZGVyIgorVjhfUEFUSCA9IE9QRU5TT1VSQ0VfUEFUSCArICJQZXJmb3Jt
YW5jZVRlc3RzIiArICJTdW5TcGlkZXIiICsgInRlc3RzIiArICJ2OC12NiIKK0pTUkVHUkVTU19Q
QVRIID0gT1BFTlNPVVJDRV9QQVRIICsgIkxheW91dFRlc3RzIiArICJqcyIgKyAicmVncmVzcyIg
KyAic2NyaXB0LXRlc3RzIgorT0NUQU5FX1dSQVBQRVJfUEFUSCA9IE9QRU5TT1VSQ0VfUEFUSCAr
ICJQZXJmb3JtYW5jZVRlc3RzIiArICJPY3RhbmUiICsgIndyYXBwZXJzIgorCitURU1QX1BBVEgg
PSBPUEVOU09VUkNFX1BBVEggKyAiQmVuY2htYXJrVGVtcCIKKworaWYgVEVNUF9QQVRILmV4aXN0
PworICByYWlzZSB1bmxlc3MgVEVNUF9QQVRILmRpcmVjdG9yeT8KK2Vsc2UKKyAgRGlyLm1rZGly
KFRFTVBfUEFUSCkKK2VuZAorCitCRU5DSF9EQVRBX1BBVEggPSBURU1QX1BBVEggKyAiYmVuY2hk
YXRhIgorCitJQlJfTE9PS1VQPVswLjAwNjE1NTgzLCAwLjA5NzUsIDAuMjI4NTIsIDAuMzQxNjI4
LCAwLjQzMDc0MSwgMC41MDA1MjYsIDAuNTU1OTMzLCAKKyAgICAgICAgICAgIDAuNjAwNzA2LCAw
LjYzNzUxMywgMC42NjgyNDQsIDAuNjk0MjU0LCAwLjcxNjUzNywgMC43MzU4MjcsIDAuNzUyNjg0
LCAKKyAgICAgICAgICAgIDAuNzY3NTM1LCAwLjc4MDcxNiwgMC43OTI0OTIsIDAuODAzMDc0LCAw
LjgxMjYzNCwgMC44MjEzMTMsIDAuODI5MjI3LCAKKyAgICAgICAgICAgIDAuODM2NDcyLCAwLjg0
MzEyOSwgMC44NDkyNjcsIDAuODU0OTQzLCAwLjg2MDIwOSwgMC44NjUxMDcsIDAuODY5Njc0LCAK
KyAgICAgICAgICAgIDAuODczOTQyLCAwLjg3Nzk0MSwgMC44ODE2OTMsIDAuODg1MjIzLCAwLjg4
ODU0OCwgMC44OTE2ODYsIDAuODk0NjUyLCAKKyAgICAgICAgICAgIDAuODk3NDYxLCAwLjkwMDEy
NCwgMC45MDI2NTIsIDAuOTA1MDU2LCAwLjkwNzM0MywgMC45MDk1MjQsIDAuOTExNjA0LCAKKyAg
ICAgICAgICAgIDAuOTEzNTksIDAuOTE1NDksIDAuOTE3MzA4LCAwLjkxOTA0OSwgMC45MjA3MTgs
IDAuOTIyMzIsIDAuOTIzODU5LCAwLjkyNTMzOCwgCisgICAgICAgICAgICAwLjkyNjc2MSwgMC45
MjgxMywgMC45Mjk0NDksIDAuOTMwNzIxLCAwLjkzMTk0OCwgMC45MzMxMzIsIDAuOTM0Mjc1LCAw
LjkzNTM4LCAKKyAgICAgICAgICAgIDAuOTM2NDQ5LCAwLjkzNzQ4MywgMC45Mzg0ODMsIDAuOTM5
NDUyLCAwLjk0MDM5MiwgMC45NDEzMDIsIDAuOTQyMTg1LCAKKyAgICAgICAgICAgIDAuOTQzMDQy
LCAwLjk0Mzg3NCwgMC45NDQ2ODIsIDAuOTQ1NDY3LCAwLjk0NjIzLCAwLjk0Njk3MiwgMC45NDc2
OTQsIAorICAgICAgICAgICAgMC45NDgzOTYsIDAuOTQ5MDgsIDAuOTQ5NzQ2LCAwLjk1MDM5NSwg
MC45NTEwMjcsIDAuOTUxNjQzLCAwLjk1MjI0NCwgCisgICAgICAgICAgICAwLjk1MjgzMSwgMC45
NTM0MDMsIDAuOTUzOTYxLCAwLjk1NDUwNiwgMC45NTUwMzksIDAuOTU1NTU5LCAwLjk1NjA2Nywg
CisgICAgICAgICAgICAwLjk1NjU2MywgMC45NTcwNDksIDAuOTU3NTI0LCAwLjk1Nzk4OCwgMC45
NTg0NDMsIDAuOTU4ODg3LCAwLjk1OTMyMywgCisgICAgICAgICAgICAwLjk1OTc0OSwgMC45NjAx
NjYsIDAuOTYwNTc1LCAwLjk2MDk3NSwgMC45NjEzNjgsIDAuOTYxNzUyLCAwLjk2MjEyOSwgCisg
ICAgICAgICAgICAwLjk2MjQ5OSwgMC45NjI4NjEsIDAuOTYzMjE3LCAwLjk2MzU2NiwgMC45NjM5
MDgsIDAuOTY0MjQ0LCAwLjk2NDU3NCwgCisgICAgICAgICAgICAwLjk2NDg5NywgMC45NjUyMTUs
IDAuOTY1NTI3LCAwLjk2NTgzNCwgMC45NjYxMzUsIDAuOTY2NDMxLCAwLjk2NjcyMiwgCisgICAg
ICAgICAgICAwLjk2NzAwNywgMC45NjcyODgsIDAuOTY3NTY0LCAwLjk2NzgzNiwgMC45NjgxMDMs
IDAuOTY4MzY2LCAwLjk2ODYyNCwgCisgICAgICAgICAgICAwLjk2ODg3OCwgMC45NjkxMjgsIDAu
OTY5Mzc0LCAwLjk2OTYxNywgMC45Njk4NTUsIDAuOTcwMDksIDAuOTcwMzIxLCAKKyAgICAgICAg
ICAgIDAuOTcwNTQ4LCAwLjk3MDc3MiwgMC45NzA5OTMsIDAuOTcxMjEsIDAuOTcxNDI1LCAwLjk3
MTYzNiwgMC45NzE4NDMsIAorICAgICAgICAgICAgMC45NzIwNDgsIDAuOTcyMjUsIDAuOTcyNDQ5
LCAwLjk3MjY0NSwgMC45NzI4MzksIDAuOTczMDI5LCAwLjk3MzIxNywgCisgICAgICAgICAgICAw
Ljk3MzQwMywgMC45NzM1ODYsIDAuOTczNzY2LCAwLjk3Mzk0NCwgMC45NzQxMiwgMC45NzQyOTMs
IDAuOTc0NDY0LCAKKyAgICAgICAgICAgIDAuOTc0NjMyLCAwLjk3NDc5OSwgMC45NzQ5NjMsIDAu
OTc1MTI1LCAwLjk3NTI4NSwgMC45NzU0NDMsIDAuOTc1NTk5LCAKKyAgICAgICAgICAgIDAuOTc1
NzUzLCAwLjk3NTkwNSwgMC45NzYwNTUsIDAuOTc2MjA0LCAwLjk3NjM1LCAwLjk3NjQ5NSwgMC45
NzY2MzgsIAorICAgICAgICAgICAgMC45NzY3NzksIDAuOTc2OTE4LCAwLjk3NzA1NiwgMC45Nzcx
OTMsIDAuOTc3MzI3LCAwLjk3NzQ2LCAwLjk3NzU5MiwgCisgICAgICAgICAgICAwLjk3NzcyMiwg
MC45Nzc4NSwgMC45Nzc5NzcsIDAuOTc4MTAzLCAwLjk3ODIyNywgMC45NzgzNDksIDAuOTc4NDcx
LCAKKyAgICAgICAgICAgIDAuOTc4NTkxLCAwLjk3ODcwOSwgMC45Nzg4MjcsIDAuOTc4OTQzLCAw
Ljk3OTA1OCwgMC45NzkxNzEsIDAuOTc5MjgzLCAKKyAgICAgICAgICAgIDAuOTc5Mzk1LCAwLjk3
OTUwNCwgMC45Nzk2MTMsIDAuOTc5NzIxLCAwLjk3OTgyNywgMC45Nzk5MzMsIDAuOTgwMDM3LCAK
KyAgICAgICAgICAgIDAuOTgwMTQsIDAuOTgwMjQyLCAwLjk4MDM0MywgMC45ODA0NDMsIDAuOTgw
NTQzLCAwLjk4MDY0MSwgMC45ODA3MzgsIAorICAgICAgICAgICAgMC45ODA4MzQsIDAuOTgwOTI5
LCAwLjk4MTAyMywgMC45ODExMTYsIDAuOTgxMjA5LCAwLjk4MTMsIDAuOTgxMzkxLCAwLjk4MTQ4
MSwgCisgICAgICAgICAgICAwLjk4MTU2OSwgMC45ODE2NTcsIDAuOTgxNzQ1LCAwLjk4MTgzMSwg
MC45ODE5MTYsIDAuOTgyMDAxLCAwLjk4MjA4NSwgCisgICAgICAgICAgICAwLjk4MjE2OCwgMC45
ODIyNTEsIDAuOTgyMzMyLCAwLjk4MjQxMywgMC45ODI0OTMsIDAuOTgyNTczLCAwLjk4MjY1MSwg
CisgICAgICAgICAgICAwLjk4MjcyOSwgMC45ODI4MDcsIDAuOTgyODgzLCAwLjk4Mjk1OSwgMC45
ODMwMzQsIDAuOTgzMTA5LCAwLjk4MzE4MywgCisgICAgICAgICAgICAwLjk4MzI1NiwgMC45ODMz
MjksIDAuOTgzNDAxLCAwLjk4MzQ3MiwgMC45ODM1NDMsIDAuOTgzNjEzLCAwLjk4MzY4MywgCisg
ICAgICAgICAgICAwLjk4Mzc1MiwgMC45ODM4MiwgMC45ODM4ODgsIDAuOTgzOTU2LCAwLjk4NDAy
MiwgMC45ODQwODksIDAuOTg0MTU0LCAKKyAgICAgICAgICAgIDAuOTg0MjE5LCAwLjk4NDI4NCwg
MC45ODQzNDgsIDAuOTg0NDExLCAwLjk4NDQ3NCwgMC45ODQ1MzcsIDAuOTg0NTk5LCAKKyAgICAg
ICAgICAgIDAuOTg0NjYsIDAuOTg0NzIxLCAwLjk4NDc4MiwgMC45ODQ4NDIsIDAuOTg0OTAyLCAw
Ljk4NDk2MSwgMC45ODUwMTksIAorICAgICAgICAgICAgMC45ODUwNzcsIDAuOTg1MTM1LCAwLjk4
NTE5MywgMC45ODUyNDksIDAuOTg1MzA2LCAwLjk4NTM2MiwgMC45ODU0MTcsIAorICAgICAgICAg
ICAgMC45ODU0NzIsIDAuOTg1NTI3LCAwLjk4NTU4MiwgMC45ODU2MzUsIDAuOTg1Njg5LCAwLjk4
NTc0MiwgMC45ODU3OTUsIAorICAgICAgICAgICAgMC45ODU4NDcsIDAuOTg1ODk5LCAwLjk4NTk1
MSwgMC45ODYwMDIsIDAuOTg2MDUzLCAwLjk4NjEwMywgMC45ODYxNTMsIAorICAgICAgICAgICAg
MC45ODYyMDMsIDAuOTg2MjUyLCAwLjk4NjMwMSwgMC45ODYzNSwgMC45ODYzOTgsIDAuOTg2NDQ2
LCAwLjk4NjQ5NCwgCisgICAgICAgICAgICAwLjk4NjU0MSwgMC45ODY1ODgsIDAuOTg2NjM1LCAw
Ljk4NjY4MSwgMC45ODY3MjcsIDAuOTg2NzczLCAwLjk4NjgxOCwgCisgICAgICAgICAgICAwLjk4
Njg2MywgMC45ODY5MDgsIDAuOTg2OTUzLCAwLjk4Njk5NywgMC45ODcwNDEsIDAuOTg3MDg0LCAw
Ljk4NzEyOCwgCisgICAgICAgICAgICAwLjk4NzE3MSwgMC45ODcyMTMsIDAuOTg3MjU2LCAwLjk4
NzI5OCwgMC45ODczNCwgMC45ODczODEsIDAuOTg3NDIzLCAKKyAgICAgICAgICAgIDAuOTg3NDY0
LCAwLjk4NzUwNCwgMC45ODc1NDUsIDAuOTg3NTg1LCAwLjk4NzYyNSwgMC45ODc2NjUsIDAuOTg3
NzA0LCAKKyAgICAgICAgICAgIDAuOTg3NzQ0LCAwLjk4Nzc4MywgMC45ODc4MjEsIDAuOTg3ODYs
IDAuOTg3ODk4LCAwLjk4NzkzNiwgMC45ODc5NzQsIAorICAgICAgICAgICAgMC45ODgwMTEsIDAu
OTg4MDQ5LCAwLjk4ODA4NiwgMC45ODgxMjMsIDAuOTg4MTU5LCAwLjk4ODE5NiwgMC45ODgyMzIs
IAorICAgICAgICAgICAgMC45ODgyNjgsIDAuOTg4MzAzLCAwLjk4ODMzOSwgMC45ODgzNzQsIDAu
OTg4NDA5LCAwLjk4ODQ0NCwgMC45ODg0NzksIAorICAgICAgICAgICAgMC45ODg1MTMsIDAuOTg4
NTQ3LCAwLjk4ODU4MiwgMC45ODg2MTUsIDAuOTg4NjQ5LCAwLjk4ODY4MiwgMC45ODg3MTYsIAor
ICAgICAgICAgICAgMC45ODg3NDksIDAuOTg4NzgyLCAwLjk4ODgxNCwgMC45ODg4NDcsIDAuOTg4
ODc5LCAwLjk4ODkxMSwgMC45ODg5NDMsIAorICAgICAgICAgICAgMC45ODg5NzUsIDAuOTg5MDA2
LCAwLjk4OTAzOCwgMC45ODkwNjksIDAuOTg5MSwgMC45ODkxMzEsIDAuOTg5MTYxLCAwLjk4OTE5
MiwgCisgICAgICAgICAgICAwLjk4OTIyMiwgMC45ODkyNTIsIDAuOTg5MjgyLCAwLjk4OTMxMiwg
MC45ODkzNDIsIDAuOTg5MzcxLCAwLjk4OTQwMSwgCisgICAgICAgICAgICAwLjk4OTQzLCAwLjk4
OTQ1OSwgMC45ODk0ODgsIDAuOTg5NTE2LCAwLjk4OTU0NSwgMC45ODk1NzMsIDAuOTg5NjAyLCAw
Ljk4OTYzLCAKKyAgICAgICAgICAgIDAuOTg5NjU4LCAwLjk4OTY4NSwgMC45ODk3MTMsIDAuOTg5
NzQsIDAuOTg5NzY4LCAwLjk4OTc5NSwgMC45ODk4MjIsIAorICAgICAgICAgICAgMC45ODk4NDks
IDAuOTg5ODc2LCAwLjk4OTkwMiwgMC45ODk5MjksIDAuOTg5OTU1LCAwLjk4OTk4MSwgMC45OTAw
MDcsIAorICAgICAgICAgICAgMC45OTAwMzMsIDAuOTkwMDU5LCAwLjk5MDA4NSwgMC45OTAxMSwg
MC45OTAxMzYsIDAuOTkwMTYxLCAwLjk5MDE4NiwgCisgICAgICAgICAgICAwLjk5MDIxMSwgMC45
OTAyMzYsIDAuOTkwMjYxLCAwLjk5MDI4NSwgMC45OTAzMSwgMC45OTAzMzQsIDAuOTkwMzU4LCAK
KyAgICAgICAgICAgIDAuOTkwMzgzLCAwLjk5MDQwNywgMC45OTA0MywgMC45OTA0NTQsIDAuOTkw
NDc4LCAwLjk5MDUwMSwgMC45OTA1MjUsIAorICAgICAgICAgICAgMC45OTA1NDgsIDAuOTkwNTcx
LCAwLjk5MDU5NCwgMC45OTA2MTcsIDAuOTkwNjQsIDAuOTkwNjYzLCAwLjk5MDY4NiwgCisgICAg
ICAgICAgICAwLjk5MDcwOCwgMC45OTA3MzEsIDAuOTkwNzUzLCAwLjk5MDc3NSwgMC45OTA3OTcs
IDAuOTkwODE5LCAwLjk5MDg0MSwgCisgICAgICAgICAgICAwLjk5MDg2MywgMC45OTA4ODUsIDAu
OTkwOTA2LCAwLjk5MDkyOCwgMC45OTA5NDksIDAuOTkwOTcsIDAuOTkwOTkxLCAKKyAgICAgICAg
ICAgIDAuOTkxMDEzLCAwLjk5MTAzNCwgMC45OTEwNTQsIDAuOTkxMDc1LCAwLjk5MTA5NiwgMC45
OTExMTYsIDAuOTkxMTM3LCAKKyAgICAgICAgICAgIDAuOTkxMTU3LCAwLjk5MTE3OCwgMC45OTEx
OTgsIDAuOTkxMjE4LCAwLjk5MTIzOCwgMC45OTEyNTgsIDAuOTkxMjc4LCAKKyAgICAgICAgICAg
IDAuOTkxMjk4LCAwLjk5MTMxNywgMC45OTEzMzcsIDAuOTkxMzU2LCAwLjk5MTM3NiwgMC45OTEz
OTUsIDAuOTkxNDE0LCAKKyAgICAgICAgICAgIDAuOTkxNDMzLCAwLjk5MTQ1MiwgMC45OTE0NzEs
IDAuOTkxNDksIDAuOTkxNTA5LCAwLjk5MTUyOCwgMC45OTE1NDcsIAorICAgICAgICAgICAgMC45
OTE1NjUsIDAuOTkxNTg0LCAwLjk5MTYwMiwgMC45OTE2MiwgMC45OTE2MzksIDAuOTkxNjU3LCAw
Ljk5MTY3NSwgCisgICAgICAgICAgICAwLjk5MTY5MywgMC45OTE3MTEsIDAuOTkxNzI5LCAwLjk5
MTc0NiwgMC45OTE3NjQsIDAuOTkxNzgyLCAwLjk5MTc5OSwgCisgICAgICAgICAgICAwLjk5MTgx
NywgMC45OTE4MzQsIDAuOTkxODUxLCAwLjk5MTg2OSwgMC45OTE4ODYsIDAuOTkxOTAzLCAwLjk5
MTkyLCAKKyAgICAgICAgICAgIDAuOTkxOTM3LCAwLjk5MTk1NCwgMC45OTE5NzEsIDAuOTkxOTg3
LCAwLjk5MjAwNCwgMC45OTIwMjEsIDAuOTkyMDM3LCAKKyAgICAgICAgICAgIDAuOTkyMDU0LCAw
Ljk5MjA3LCAwLjk5MjA4NiwgMC45OTIxMDMsIDAuOTkyMTE5LCAwLjk5MjEzNSwgMC45OTIxNTEs
IAorICAgICAgICAgICAgMC45OTIxNjcsIDAuOTkyMTgzLCAwLjk5MjE5OSwgMC45OTIyMTUsIDAu
OTkyMjMsIDAuOTkyMjQ2LCAwLjk5MjI2MiwgCisgICAgICAgICAgICAwLjk5MjI3NywgMC45OTIy
OTMsIDAuOTkyMzA4LCAwLjk5MjMyNCwgMC45OTIzMzksIDAuOTkyMzU0LCAwLjk5MjM2OSwgCisg
ICAgICAgICAgICAwLjk5MjM4NCwgMC45OTI0LCAwLjk5MjQxNSwgMC45OTI0MjksIDAuOTkyNDQ0
LCAwLjk5MjQ1OSwgMC45OTI0NzQsIDAuOTkyNDg5LCAKKyAgICAgICAgICAgIDAuOTkyNTAzLCAw
Ljk5MjUxOCwgMC45OTI1MzMsIDAuOTkyNTQ3LCAwLjk5MjU2MSwgMC45OTI1NzYsIDAuOTkyNTks
IAorICAgICAgICAgICAgMC45OTI2MDQsIDAuOTkyNjE5LCAwLjk5MjYzMywgMC45OTI2NDcsIDAu
OTkyNjYxLCAwLjk5MjY3NSwgMC45OTI2ODksIAorICAgICAgICAgICAgMC45OTI3MDMsIDAuOTky
NzE3LCAwLjk5MjczLCAwLjk5Mjc0NCwgMC45OTI3NTgsIDAuOTkyNzcxLCAwLjk5Mjc4NSwgCisg
ICAgICAgICAgICAwLjk5Mjc5OCwgMC45OTI4MTIsIDAuOTkyODI1LCAwLjk5MjgzOSwgMC45OTI4
NTIsIDAuOTkyODY1LCAwLjk5Mjg3OSwgCisgICAgICAgICAgICAwLjk5Mjg5MiwgMC45OTI5MDUs
IDAuOTkyOTE4LCAwLjk5MjkzMSwgMC45OTI5NDQsIDAuOTkyOTU3LCAwLjk5Mjk3LCAKKyAgICAg
ICAgICAgIDAuOTkyOTgzLCAwLjk5Mjk5NSwgMC45OTMwMDgsIDAuOTkzMDIxLCAwLjk5MzAzNCwg
MC45OTMwNDYsIDAuOTkzMDU5LCAKKyAgICAgICAgICAgIDAuOTkzMDcxLCAwLjk5MzA4NCwgMC45
OTMwOTYsIDAuOTkzMTA5LCAwLjk5MzEyMSwgMC45OTMxMzMsIDAuOTkzMTQ1LCAKKyAgICAgICAg
ICAgIDAuOTkzMTU4LCAwLjk5MzE3LCAwLjk5MzE4MiwgMC45OTMxOTQsIDAuOTkzMjA2LCAwLjk5
MzIxOCwgMC45OTMyMywgMC45OTMyNDIsIAorICAgICAgICAgICAgMC45OTMyNTQsIDAuOTkzMjY2
LCAwLjk5MzI3NywgMC45OTMyODksIDAuOTkzMzAxLCAwLjk5MzMxMiwgMC45OTMzMjQsIAorICAg
ICAgICAgICAgMC45OTMzMzYsIDAuOTkzMzQ3LCAwLjk5MzM1OSwgMC45OTMzNywgMC45OTMzODIs
IDAuOTkzMzkzLCAwLjk5MzQwNCwgCisgICAgICAgICAgICAwLjk5MzQxNiwgMC45OTM0MjcsIDAu
OTkzNDM4LCAwLjk5MzQ0OSwgMC45OTM0NiwgMC45OTM0NzIsIDAuOTkzNDgzLCAKKyAgICAgICAg
ICAgIDAuOTkzNDk0LCAwLjk5MzUwNSwgMC45OTM1MTYsIDAuOTkzNTI3LCAwLjk5MzUzOCwgMC45
OTM1NDgsIDAuOTkzNTU5LCAKKyAgICAgICAgICAgIDAuOTkzNTcsIDAuOTkzNTgxLCAwLjk5MzU5
MSwgMC45OTM2MDIsIDAuOTkzNjEzLCAwLjk5MzYyMywgMC45OTM2MzQsIAorICAgICAgICAgICAg
MC45OTM2NDQsIDAuOTkzNjU1LCAwLjk5MzY2NSwgMC45OTM2NzYsIDAuOTkzNjg2LCAwLjk5MzY5
NywgMC45OTM3MDcsIAorICAgICAgICAgICAgMC45OTM3MTcsIDAuOTkzNzI3LCAwLjk5MzczOCwg
MC45OTM3NDgsIDAuOTkzNzU4LCAwLjk5Mzc2OCwgMC45OTM3NzgsIAorICAgICAgICAgICAgMC45
OTM3ODgsIDAuOTkzNzk4LCAwLjk5MzgwOCwgMC45OTM4MTgsIDAuOTkzODI4LCAwLjk5MzgzOCwg
MC45OTM4NDgsIAorICAgICAgICAgICAgMC45OTM4NTgsIDAuOTkzODY4LCAwLjk5Mzg3NywgMC45
OTM4ODcsIDAuOTkzODk3LCAwLjk5MzkwNywgMC45OTM5MTYsIAorICAgICAgICAgICAgMC45OTM5
MjYsIDAuOTkzOTM1LCAwLjk5Mzk0NSwgMC45OTM5NTQsIDAuOTkzOTY0LCAwLjk5Mzk3MywgMC45
OTM5ODMsIAorICAgICAgICAgICAgMC45OTM5OTIsIDAuOTk0MDAyLCAwLjk5NDAxMSwgMC45OTQw
MiwgMC45OTQwMywgMC45OTQwMzksIDAuOTk0MDQ4LCAwLjk5NDA1NywgCisgICAgICAgICAgICAw
Ljk5NDA2NywgMC45OTQwNzYsIDAuOTk0MDg1LCAwLjk5NDA5NCwgMC45OTQxMDMsIDAuOTk0MTEy
LCAwLjk5NDEyMSwgCisgICAgICAgICAgICAwLjk5NDEzLCAwLjk5NDEzOSwgMC45OTQxNDgsIDAu
OTk0MTU3LCAwLjk5NDE2NiwgMC45OTQxNzUsIDAuOTk0MTgzLCAKKyAgICAgICAgICAgIDAuOTk0
MTkyLCAwLjk5NDIwMSwgMC45OTQyMSwgMC45OTQyMTgsIDAuOTk0MjI3LCAwLjk5NDIzNiwgMC45
OTQyNDQsIAorICAgICAgICAgICAgMC45OTQyNTMsIDAuOTk0MjYyLCAwLjk5NDI3LCAwLjk5NDI3
OSwgMC45OTQyODcsIDAuOTk0Mjk2LCAwLjk5NDMwNCwgCisgICAgICAgICAgICAwLjk5NDMxMywg
MC45OTQzMjEsIDAuOTk0MzI5LCAwLjk5NDMzOCwgMC45OTQzNDYsIDAuOTk0MzU0LCAwLjk5NDM2
MywgCisgICAgICAgICAgICAwLjk5NDM3MSwgMC45OTQzNzksIDAuOTk0Mzg3LCAwLjk5NDM5NSwg
MC45OTQ0MDQsIDAuOTk0NDEyLCAwLjk5NDQyLCAKKyAgICAgICAgICAgIDAuOTk0NDI4LCAwLjk5
NDQzNiwgMC45OTQ0NDQsIDAuOTk0NDUyLCAwLjk5NDQ2LCAwLjk5NDQ2OCwgMC45OTQ0NzYsIAor
ICAgICAgICAgICAgMC45OTQ0ODQsIDAuOTk0NDkyLCAwLjk5NDUsIDAuOTk0NTA4LCAwLjk5NDUx
NiwgMC45OTQ1MjMsIDAuOTk0NTMxLCAwLjk5NDUzOSwgCisgICAgICAgICAgICAwLjk5NDU0Nywg
MC45OTQ1NTQsIDAuOTk0NTYyLCAwLjk5NDU3LCAwLjk5NDU3NywgMC45OTQ1ODUsIDAuOTk0NTkz
LCAwLjk5NDYsIAorICAgICAgICAgICAgMC45OTQ2MDgsIDAuOTk0NjE1LCAwLjk5NDYyMywgMC45
OTQ2MzEsIDAuOTk0NjM4LCAwLjk5NDY0NSwgMC45OTQ2NTMsIAorICAgICAgICAgICAgMC45OTQ2
NiwgMC45OTQ2NjgsIDAuOTk0Njc1LCAwLjk5NDY4MywgMC45OTQ2OSwgMC45OTQ2OTcsIDAuOTk0
NzA1LCAwLjk5NDcxMiwgCisgICAgICAgICAgICAwLjk5NDcxOSwgMC45OTQ3MjYsIDAuOTk0NzM0
LCAwLjk5NDc0MSwgMC45OTQ3NDgsIDAuOTk0NzU1LCAwLjk5NDc2MiwgCisgICAgICAgICAgICAw
Ljk5NDc2OSwgMC45OTQ3NzcsIDAuOTk0Nzg0LCAwLjk5NDc5MSwgMC45OTQ3OTgsIDAuOTk0ODA1
LCAwLjk5NDgxMiwgCisgICAgICAgICAgICAwLjk5NDgxOSwgMC45OTQ4MjYsIDAuOTk0ODMzLCAw
Ljk5NDg0LCAwLjk5NDg0NywgMC45OTQ4NTQsIDAuOTk0ODYsIDAuOTk0ODY3LCAKKyAgICAgICAg
ICAgIDAuOTk0ODc0LCAwLjk5NDg4MSwgMC45OTQ4ODgsIDAuOTk0ODk1LCAwLjk5NDkwMSwgMC45
OTQ5MDgsIDAuOTk0OTE1LCAKKyAgICAgICAgICAgIDAuOTk0OTIyLCAwLjk5NDkyOCwgMC45OTQ5
MzUsIDAuOTk0OTQyLCAwLjk5NDk0OCwgMC45OTQ5NTUsIDAuOTk0OTYyLCAKKyAgICAgICAgICAg
IDAuOTk0OTY4LCAwLjk5NDk3NSwgMC45OTQ5ODEsIDAuOTk0OTg4LCAwLjk5NDk5NCwgMC45OTUw
MDEsIDAuOTk1MDA3LCAKKyAgICAgICAgICAgIDAuOTk1MDE0LCAwLjk5NTAyLCAwLjk5NTAyNywg
MC45OTUwMzMsIDAuOTk1MDQsIDAuOTk1MDQ2LCAwLjk5NTA1MiwgMC45OTUwNTksIAorICAgICAg
ICAgICAgMC45OTUwNjUsIDAuOTk1MDcxLCAwLjk5NTA3OCwgMC45OTUwODQsIDAuOTk1MDksIDAu
OTk1MDk3LCAwLjk5NTEwMywgCisgICAgICAgICAgICAwLjk5NTEwOSwgMC45OTUxMTUsIDAuOTk1
MTIxLCAwLjk5NTEyOCwgMC45OTUxMzQsIDAuOTk1MTQsIDAuOTk1MTQ2LCAKKyAgICAgICAgICAg
IDAuOTk1MTUyLCAwLjk5NTE1OCwgMC45OTUxNjQsIDAuOTk1MTcxLCAwLjk5NTE3NywgMC45OTUx
ODMsIDAuOTk1MTg5LCAKKyAgICAgICAgICAgIDAuOTk1MTk1LCAwLjk5NTIwMSwgMC45OTUyMDcs
IDAuOTk1MjEzLCAwLjk5NTIxOSwgMC45OTUyMjUsIDAuOTk1MjMxLCAKKyAgICAgICAgICAgIDAu
OTk1MjM2LCAwLjk5NTI0MiwgMC45OTUyNDgsIDAuOTk1MjU0LCAwLjk5NTI2LCAwLjk5NTI2Niwg
MC45OTUyNzIsIAorICAgICAgICAgICAgMC45OTUyNzcsIDAuOTk1MjgzLCAwLjk5NTI4OSwgMC45
OTUyOTUsIDAuOTk1MzAxLCAwLjk5NTMwNiwgMC45OTUzMTIsIAorICAgICAgICAgICAgMC45OTUz
MTgsIDAuOTk1MzIzLCAwLjk5NTMyOSwgMC45OTUzMzUsIDAuOTk1MzQsIDAuOTk1MzQ2LCAwLjk5
NTM1MiwgCisgICAgICAgICAgICAwLjk5NTM1NywgMC45OTUzNjMsIDAuOTk1MzY5LCAwLjk5NTM3
NCwgMC45OTUzOCwgMC45OTUzODUsIDAuOTk1MzkxLCAKKyAgICAgICAgICAgIDAuOTk1Mzk2LCAw
Ljk5NTQwMiwgMC45OTU0MDcsIDAuOTk1NDEzLCAwLjk5NTQxOCwgMC45OTU0MjQsIDAuOTk1NDI5
LCAKKyAgICAgICAgICAgIDAuOTk1NDM1LCAwLjk5NTQ0LCAwLjk5NTQ0NSwgMC45OTU0NTEsIDAu
OTk1NDU2LCAwLjk5NTQ2MiwgMC45OTU0NjcsIAorICAgICAgICAgICAgMC45OTU0NzIsIDAuOTk1
NDc4LCAwLjk5NTQ4MywgMC45OTU0ODgsIDAuOTk1NDkzLCAwLjk5NTQ5OSwgMC45OTU1MDQsIAor
ICAgICAgICAgICAgMC45OTU1MDksIDAuOTk1NTE1LCAwLjk5NTUyLCAwLjk5NTUyNSwgMC45OTU1
MywgMC45OTU1MzUsIDAuOTk1NTQxLCAwLjk5NTU0NiwgCisgICAgICAgICAgICAwLjk5NTU1MSwg
MC45OTU1NTYsIDAuOTk1NTYxLCAwLjk5NTU2NiwgMC45OTU1NzEsIDAuOTk1NTc3LCAwLjk5NTU4
MiwgCisgICAgICAgICAgICAwLjk5NTU4NywgMC45OTU1OTIsIDAuOTk1NTk3LCAwLjk5NTYwMiwg
MC45OTU2MDcsIDAuOTk1NjEyLCAwLjk5NTYxNywgCisgICAgICAgICAgICAwLjk5NTYyMiwgMC45
OTU2MjcsIDAuOTk1NjMyLCAwLjk5NTYzNywgMC45OTU2NDIsIDAuOTk1NjQ3LCAwLjk5NTY1Miwg
CisgICAgICAgICAgICAwLjk5NTY1NywgMC45OTU2NjEsIDAuOTk1NjY2LCAwLjk5NTY3MSwgMC45
OTU2NzYsIDAuOTk1NjgxLCAwLjk5NTY4NiwgCisgICAgICAgICAgICAwLjk5NTY5MSwgMC45OTU2
OTUsIDAuOTk1NywgMC45OTU3MDUsIDAuOTk1NzEsIDAuOTk1NzE1LCAwLjk5NTcxOSwgMC45OTU3
MjQsIAorICAgICAgICAgICAgMC45OTU3MjksIDAuOTk1NzM0LCAwLjk5NTczOCwgMC45OTU3NDMs
IDAuOTk1NzQ4LCAwLjk5NTc1MywgMC45OTU3NTcsIAorICAgICAgICAgICAgMC45OTU3NjIsIDAu
OTk1NzY3LCAwLjk5NTc3MSwgMC45OTU3NzYsIDAuOTk1NzgxLCAwLjk5NTc4NSwgMC45OTU3OSwg
CisgICAgICAgICAgICAwLjk5NTc5NCwgMC45OTU3OTksIDAuOTk1ODA0LCAwLjk5NTgwOCwgMC45
OTU4MTMsIDAuOTk1ODE3LCAwLjk5NTgyMiwgCisgICAgICAgICAgICAwLjk5NTgyNiwgMC45OTU4
MzEsIDAuOTk1ODM1LCAwLjk5NTg0LCAwLjk5NTg0NCwgMC45OTU4NDksIDAuOTk1ODUzLCAKKyAg
ICAgICAgICAgIDAuOTk1ODU4LCAwLjk5NTg2MiwgMC45OTU4NjcsIDAuOTk1ODcxLCAwLjk5NTg3
NiwgMC45OTU4OCwgMC45OTU4ODUsIAorICAgICAgICAgICAgMC45OTU4ODksIDAuOTk1ODkzLCAw
Ljk5NTg5OCwgMC45OTU5MDIsIDAuOTk1OTA2LCAwLjk5NTkxMSwgMC45OTU5MTUsIAorICAgICAg
ICAgICAgMC45OTU5MiwgMC45OTU5MjQsIDAuOTk1OTI4LCAwLjk5NTkzMiwgMC45OTU5MzcsIDAu
OTk1OTQxLCAwLjk5NTk0NSwgMC45OTU5NSwgCisgICAgICAgICAgICAwLjk5NTk1NCwgMC45OTU5
NTgsIDAuOTk1OTYyLCAwLjk5NTk2NywgMC45OTU5NzEsIDAuOTk1OTc1LCAwLjk5NTk3OSwgCisg
ICAgICAgICAgICAwLjk5NTk4NCwgMC45OTU5ODgsIDAuOTk1OTkyLCAwLjk5NTk5NiwgMC45OTYs
IDAuOTk2MDA0LCAwLjk5NjAwOSwgMC45OTYwMTMsIAorICAgICAgICAgICAgMC45OTYwMTcsIDAu
OTk2MDIxLCAwLjk5NjAyNSwgMC45OTYwMjksIDAuOTk2MDMzLCAwLjk5NjAzNywgMC45OTYwNDEs
IAorICAgICAgICAgICAgMC45OTYwNDYsIDAuOTk2MDUsIDAuOTk2MDU0LCAwLjk5NjA1OCwgMC45
OTYwNjIsIDAuOTk2MDY2LCAwLjk5NjA3LCAwLjk5NjA3NCwgCisgICAgICAgICAgICAwLjk5NjA3
OCwgMC45OTYwODIsIDAuOTk2MDg2LCAwLjk5NjA5LCAwLjk5NjA5NCwgMC45OTYwOTgsIDAuOTk2
MTAyLCAKKyAgICAgICAgICAgIDAuOTk2MTA2LCAwLjk5NjExLCAwLjk5NjExNCwgMC45OTYxMTcs
IDAuOTk2MTIxLCAwLjk5NjEyNSwgMC45OTYxMjksIAorICAgICAgICAgICAgMC45OTYxMzMsIDAu
OTk2MTM3LCAwLjk5NjE0MSwgMC45OTYxNDUsIDAuOTk2MTQ5LCAwLjk5NjE1MiwgMC45OTYxNTYs
IAorICAgICAgICAgICAgMC45OTYxNiwgMC45OTYxNjRdCisKKyMgUnVuLXRpbWUgY29uZmlndXJh
dGlvbiBwYXJhbWV0ZXJzIChjYW4gYmUgc2V0IHdpdGggY29tbWFuZC1saW5lIG9wdGlvbnMpCisK
KyRyZXJ1bj0xCiskaW5uZXI9MQorJHdhcm11cD0xCiskb3V0ZXI9NAorJHF1YW50dW09MTAwMAor
JGluY2x1ZGVTdW5TcGlkZXI9dHJ1ZQorJGluY2x1ZGVMb25nU3BpZGVyPXRydWUKKyRpbmNsdWRl
Vjg9dHJ1ZQorJGluY2x1ZGVLcmFrZW49dHJ1ZQorJGluY2x1ZGVKU0JlbmNoPXRydWUKKyRpbmNs
dWRlSlNSZWdyZXNzPXRydWUKKyRpbmNsdWRlQXNtQmVuY2g9dHJ1ZQorJGluY2x1ZGVEU1BKUz10
cnVlCiskaW5jbHVkZUJyb3dzZXJtYXJrSlM9ZmFsc2UKKyRpbmNsdWRlQnJvd3Nlcm1hcmtET009
ZmFsc2UKKyRpbmNsdWRlT2N0YW5lPXRydWUKKyRpbmNsdWRlQ29tcHJlc3Npb25CZW5jaCA9IHRy
dWUKKyRtZWFzdXJlR0M9ZmFsc2UKKyRiZW5jaG1hcmtQYXR0ZXJuPW5pbAorJHZlcmJvc2l0eT0w
CiskdGltZU1vZGU9OnByZWNpc2VUaW1lCiskZm9yY2VWTUtpbmQ9bmlsCiskYnJpZWY9ZmFsc2UK
KyRzaWxlbnQ9ZmFsc2UKKyRyZW1vdGVIb3N0cz1bXQorJGFsc29Mb2NhbD1mYWxzZQorJHNzaE9w
dGlvbnM9W10KKyR2bXMgPSBbXQorJGVudmlyb25tZW50ID0ge30KKyRuZWVkVG9Db3B5Vk1zID0g
ZmFsc2UKKyRkb250Q29weVZNcyA9IGZhbHNlCiskYWxsRFJUID0gdHJ1ZQorJG91dHB1dE5hbWUg
PSBuaWwKKyRzdW5TcGlkZXJXYXJtdXAgPSB0cnVlCiskY29uZmlnUGF0aCA9IFBhdGhuYW1lLm5l
dyhFTlZbIkhPTUUiXSkgKyAiLnJ1bi1qc2MtYmVuY2htYXJrcyIKKworJHByZXBhcmUgPSB0cnVl
CiskcnVuID0gdHJ1ZQorJGFuYWx5emUgPSBbXQorCisjIEhlbHBmdWwgZnVuY3Rpb25zIGFuZCBj
bGFzc2VzCisKK2RlZiBzbWFsbFVzYWdlCisgIHB1dHMgIlVzZSB0aGUgLS1oZWxwIG9wdGlvbiB0
byBnZXQgYmFzaWMgdXNhZ2UgaW5mb3JtYXRpb24uIgorICBleGl0IDEKK2VuZAorCitkZWYgdXNh
Z2UKKyAgcHV0cyAicnVuLWpzYy1iZW5jaG1hcmtzIFtvcHRpb25zXSA8dm0xPiBbPHZtMj4gLi4u
XSIKKyAgcHV0cworICBwdXRzICJSdW5zIG9uZSBvciBtb3JlIEphdmFTY3JpcHQgcnVudGltZXMg
YWdhaW5zdCBTdW5TcGlkZXIsIFY4LCBhbmQvb3IgS3Jha2VuIgorICBwdXRzICJiZW5jaG1hcmtz
LCBhbmQgcmVwb3J0cyBkZXRhaWxlZCBzdGF0aXN0aWNzLiAgV2hhdCBtYWtlcyBydW4tanNjLWJl
bmNobWFya3MiCisgIHB1dHMgInNwZWNpYWwgaXMgdGhhdCBlYWNoIGJlbmNobWFyay9WTSBjb25m
aWd1cmF0aW9uIGlzIHJ1biBpbiBhIHNpbmdsZSBWTSBpbnZvY2F0aW9uLCIKKyAgcHV0cyAiYW5k
IHRoZSBpbnZvY2F0aW9ucyBhcmUgcnVuIGluIHJhbmRvbSBvcmRlci4gIFRoaXMgbWluaW1pemVz
IHN5c3RlbWF0aWNzIGR1ZSB0byIKKyAgcHV0cyAib25lIGJlbmNobWFyayBwb2xsdXRpbmcgdGhl
IHJ1bm5pbmcgdGltZSBvZiBhbm90aGVyLiAgVGhlIGZpbmUtZ3JhaW5lZCIKKyAgcHV0cyAiaW50
ZXJsZWF2aW5nIG9mIFZNIGludm9jYXRpb25zIGZ1cnRoZXIgbWluaW1pemVzIHN5c3RlbWF0aWNz
IGR1ZSB0byBjaGFuZ2VzIGluIgorICBwdXRzICJ0aGUgcGVyZm9ybWFuY2Ugb3IgYmVoYXZpb3Ig
b2YgeW91ciBtYWNoaW5lLiIKKyAgcHV0cyAKKyAgcHV0cyAiUnVuLWpzYy1iZW5jaG1hcmtzIGlz
IGhpZ2hseSBjb25maWd1cmFibGUuICBZb3UgY2FuIGNvbXBhcmUgYXMgbWFueSBWTXMgYXMgeW91
IgorICBwdXRzICJsaWtlLiAgWW91IGNhbiBjaGFuZ2UgdGhlIGFtb3VudCBvZiB3YXJtLXVwIGl0
ZXJhdGlvbnMsIG51bWJlciBvZiBpdGVyYXRpb25zIgorICBwdXRzICJleGVjdXRlZCBwZXIgVk0g
aW52b2NhdGlvbiwgYW5kIHRoZSBudW1iZXIgb2YgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFy
ay4gIEJ5IgorICBwdXRzICJkZWZhdWx0LCBTdW5TcGlkZXIsIFZNLCBhbmQgS3Jha2VuIGFyZSBh
bGwgcnVuOyBidXQgeW91IGNhbiBydW4gYW55IGNvbWJpbmF0aW9uIgorICBwdXRzICJvZiB0aGVz
ZSBzdWl0ZXMuIgorICBwdXRzCisgIHB1dHMgIlRoZSA8dm0+IHNob3VsZCBiZSBlaXRoZXIgYSBw
YXRoIHRvIGEgSmF2YVNjcmlwdCBydW50aW1lIGV4ZWN1dGFibGUgKHN1Y2ggYXMiCisgIHB1dHMg
ImpzYyksIG9yIGEgc3RyaW5nIG9mIHRoZSBmb3JtIDxuYW1lPjo8cGF0aD4sIHdoZXJlIHRoZSA8
cGF0aD4gaXMgdGhlIHBhdGggdG8iCisgIHB1dHMgInRoZSBleGVjdXRhYmxlIGFuZCA8bmFtZT4g
aXMgdGhlIG5hbWUgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnaXZlIHRoZSIKKyAgcHV0cyAiY29u
ZmlndXJhdGlvbiBmb3IgdGhlIHB1cnBvc2VvZiByZXBvcnRpbmcuICBJZiBubyBuYW1lIGlzIGdp
dmVuLCBhIGdlbmVyaWMgbmFtZSIKKyAgcHV0cyAib2YgdGhlIGZvcm0gQ29uZiM8bj4gd2lsbCBi
ZSBhc2NyaWJlZCB0byB0aGUgY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5LiIKKyAgcHV0cwor
ICBwdXRzICJPcHRpb25zOiIKKyAgcHV0cyAiLS1yZXJ1biA8bj4gICAgICAgICAgU2V0IHRoZSBu
dW1iZXIgb2YgaXRlcmF0aW9ucyBvZiB0aGUgYmVuY2htYXJrIHRoYXQiCisgIHB1dHMgIiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRyaWJ1dGUgdG8gdGhlIG1lYXN1cmVkIHJ1biB0aW1lLiAgRGVm
YXVsdCBpcyAjeyRyZXJ1bn0uIgorICBwdXRzICItLWlubmVyIDxuPiAgICAgICAgICBTZXQgdGhl
IG51bWJlciBvZiBpbm5lciAocGVyLXJ1bnRpbWUtaW52b2NhdGlvbikiCisgIHB1dHMgIiAgICAg
ICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnMuICBEZWZhdWx0IGlzICN7JGlubmVyfS4iCisgIHB1
dHMgIi0tb3V0ZXIgPG4+ICAgICAgICAgIFNldCB0aGUgbnVtYmVyIG9mIHJ1bnRpbWUgaW52b2Nh
dGlvbnMgZm9yIGVhY2ggYmVuY2htYXJrLiIKKyAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAg
RGVmYXVsdCBpcyAjeyRvdXRlcn0uIgorICBwdXRzICItLXdhcm11cCA8bj4gICAgICAgICBTZXQg
dGhlIG51bWJlciBvZiB3YXJtLXVwIHJ1bnMgcGVyIGludm9jYXRpb24uICBEZWZhdWx0IgorICBw
dXRzICIgICAgICAgICAgICAgICAgICAgICBpcyAjeyR3YXJtdXB9LiBUaGlzIGhhcyBhIGRpZmZl
cmVudCBlZmZlY3Qgb24gZGlmZmVyZW50IGtpbmRzIgorICBwdXRzICIgICAgICAgICAgICAgICAg
ICAgICBiZW5jaG1hcmtzLiBTb21lIGJlbmNobWFya3MgaGF2ZSBubyBub3Rpb24gb2Ygd2FybS11
cC4iCisgIHB1dHMgIi0tbm8tc3Mtd2FybXVwICAgICAgIERpc2FibGUgU3VuU3BpZGVyLWJhc2Vk
IHdhcm0tdXAgcnVucy4iCisgIHB1dHMgIi0tcXVhbnR1bSA8bj4gICAgICAgIFNldCB0aGUgZHVy
YXRpb24gaW4gbWlsbGlzZWNvbmRzIGZvciB3aGljaCBhbiBpdGVyYXRpb24gb2YiCisgIHB1dHMg
IiAgICAgICAgICAgICAgICAgICAgIGEgdGhyb3VnaHB1dCBiZW5jaG1hcmsgc2hvdWxkIGJlIHJ1
bi4gIERlZmF1bHQgaXMgI3skcXVhbnR1bX0uIgorICBwdXRzICItLXRpbWluZy1tb2RlICAgICAg
ICBTZXQgdGhlIHdheSB0aGF0IHRpbWUgaXMgbWVhc3VyZWQuICBQb3NzaWJsZSB2YWx1ZXMiCisg
IHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIGFyZSAncHJlY2lzZVRpbWUnIGFuZCAnZGF0ZScu
ICBEZWZhdWx0IGlzICdwcmVjaXNlVGltZScuIgorICBwdXRzICItLWZvcmNlLXZtLWtpbmQgICAg
ICBUdXJuIG9mZiBhdXRvLWRldGVjdGlvbiBvZiBWTSBraW5kLCBhbmQgYXNzdW1lIHRoYXQgaXQg
aXMiCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIHRoZSBvbmUgc3BlY2lmaWVkLiAgVmFs
aWQgYXJndW1lbnRzIGFyZSAnanNjJywgIgorICBwdXRzICIgICAgICAgICAgICAgICAgICAgICAn
RHVtcFJlbmRlclRyZWUnLCBvciAnV2ViS2l0VGVzdFJ1bm5lcicuIgorICBwdXRzICItLWZvcmNl
LXZtLWNvcHkgICAgICBGb3JjZSBWTSBidWlsZHMgdG8gYmUgY29waWVkIHRvIHRoZSB3b3JraW5n
IGRpcmVjdG9yeS4iCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IHJlZHVj
ZSBwYXRob2xvZ2llcyByZXN1bHRpbmcgZnJvbSBwYXRoIG5hbWVzLiIKKyAgcHV0cyAiLS1kb250
LWNvcHktdm1zICAgICAgRG9uJ3QgY29weSBWTXMgZXZlbiB3aGVuIGRvaW5nIGEgcmVtb3RlIGJl
bmNobWFya2luZyBydW47IgorICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkIGFz
c3VtZSB0aGF0IHRoZXkgYXJlIGFscmVhZHkgdGhlcmUuIgorICBwdXRzICItLXN1bnNwaWRlciAg
ICAgICAgICBPbmx5IHJ1biBTdW5TcGlkZXIuIgorICBwdXRzICItLXY4LXNwaWRlciAgICAgICAg
ICBPbmx5IHJ1biBWOC4iCisgIHB1dHMgIi0ta3Jha2VuICAgICAgICAgICAgIE9ubHkgcnVuIEty
YWtlbi4iCisgIHB1dHMgIi0tanMtYmVuY2ggICAgICAgICAgIE9ubHkgcnVuIEpTQmVuY2guIgor
ICBwdXRzICItLWpzLXJlZ3Jlc3MgICAgICAgICBPbmx5IHJ1biBKU1JlZ3Jlc3MuIgorICBwdXRz
ICItLWRzcCAgICAgICAgICAgICAgICBPbmx5IHJ1biBEU1AuIgorICBwdXRzICItLWFzbS1iZW5j
aCAgICAgICAgICBPbmx5IHJ1biBBc21CZW5jaC4iCisgIHB1dHMgIi0tYnJvd3Nlcm1hcmstanMg
ICAgIE9ubHkgcnVuIGJyb3dzZXJtYXJrLWpzLiIKKyAgcHV0cyAiLS1icm93c2VybWFyay1kb20g
ICAgT25seSBydW4gYnJvd3Nlcm1hcmstZG9tLiIKKyAgcHV0cyAiLS1vY3RhbmUgICAgICAgICAg
ICAgT25seSBydW4gT2N0YW5lLiIKKyAgcHV0cyAiLS1jb21wcmVzc2lvbi1iZW5jaCAgT25seSBy
dW4gY29tcHJlc3Npb24gYmVuY2giCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIFRoZSBk
ZWZhdWx0IGlzIHRvIHJ1biBhbGwgYmVuY2htYXJrcy4gVGhlIGFib3ZlIG9wdGlvbnMgY2FuIgor
ICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBiZSBjb21iaW5lZCB0byBydW4gYW55IHN1YnNl
dCAoc28gLS1zdW5zcGlkZXIgLS1kc3Agd2lsbCBydW4iCisgIHB1dHMgIiAgICAgICAgICAgICAg
ICAgICAgIGJvdGggU3VuU3BpZGVyIGFuZCBEU1ApLiIKKyAgcHV0cyAiLS1iZW5jaG1hcmtzICAg
ICAgICAgT25seSBydW4gYmVuY2htYXJrcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcmVndWxhciBleHBy
ZXNzaW9uLiIKKyAgcHV0cyAiLS1tZWFzdXJlLWdjICAgICAgICAgVHVybiBvZmYgbWFudWFsIGNh
bGxzIHRvIGdjKCksIHNvIHRoYXQgR0MgdGltZSBpcyBtZWFzdXJlZC4iCisgIHB1dHMgIiAgICAg
ICAgICAgICAgICAgICAgIFdvcmtzIGJlc3Qgd2l0aCBsYXJnZSB2YWx1ZXMgb2YgLS1pbm5lci4g
IFlvdSBjYW4gYWxzbyBzYXkiCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIC0tbWVhc3Vy
ZS1nYyA8Y29uZj4sIHdoaWNoIHR1cm5zIHRoaXMgb24gZm9yIG9uZSIKKyAgcHV0cyAiICAgICAg
ICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBvbmx5LiIKKyAgcHV0cyAiLS12ZXJib3NlIG9y
IC12ICAgICAgUHJpbnQgbW9yZSBzdHVmZi4iCisgIHB1dHMgIi0tYnJpZWYgICAgICAgICAgICAg
IFByaW50IG9ubHkgdGhlIGZpbmFsIHJlc3VsdCBmb3IgZWFjaCBWTS4iCisgIHB1dHMgIi0tc2ls
ZW50ICAgICAgICAgICAgIERvbid0IHByaW50IHByb2dyZXNzLiBUaGlzIG1pZ2h0IHNsaWdodGx5
IHJlZHVjZSBzb21lIgorICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZSBw
ZXJ0dXJiYXRpb24uIgorICBwdXRzICItLXJlbW90ZSA8c3NoaG9zdHM+ICBQZXJmb3JtIHBlcmZv
cm1hbmNlIG1lYXN1cmVtZW50cyByZW1vdGVseSwgb24gdGhlIGdpdmVuIgorICBwdXRzICIgICAg
ICAgICAgICAgICAgICAgICBTU0ggaG9zdChzKS4gRWFzaWVzdCB3YXkgdG8gdXNlIHRoaXMgaXMg
dG8gc3BlY2lmeSB0aGUgU1NIIgorICBwdXRzICIgICAgICAgICAgICAgICAgICAgICB1c2VyQGhv
c3Qgc3RyaW5nLiBIb3dldmVyLCB5b3UgY2FuIGFsc28gc3VwcGx5IGEgY29tbWEtIgorICBwdXRz
ICIgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0ZWQgbGlzdCBvZiBTU0ggaG9zdHMuIEFsdGVy
bmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoaXMiCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAg
IG9wdGlvbiBtdWx0aXBsZSB0aW1lcyB0byBzcGVjaWZ5IG11bHRpcGxlIGhvc3RzLiBUaGlzIgor
ICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGNvcGllcyB0aGUgV2Vi
S2l0IHJlbGVhc2UgYnVpbGRzIG9mIHRoZSBWTXMiCisgIHB1dHMgIiAgICAgICAgICAgICAgICAg
ICAgIHlvdSBzcGVjaWZpZWQgdG8gYWxsIG9mIHRoZSBob3N0cy4iCisgIHB1dHMgIi0tc3NoLW9w
dGlvbnMgICAgICAgIFBhc3MgYWRkaXRpb25hbCBvcHRpb25zIHRvIFNTSC4iCisgIHB1dHMgIi0t
bG9jYWwgICAgICAgICAgICAgIEFsc28gZG8gYSBsb2NhbCBiZW5jaG1hcmsgcnVuIGV2ZW4gd2hl
biBkb2luZyAtLXJlbW90ZS4iCisgIHB1dHMgIi0tdm1zICAgICAgICAgICAgICAgIFVzZSBhIEpT
T04gZmlsZSB0byBzcGVjaWZ5IHdoaWNoIFZNcyB0byBydW4sIGFzIG9wcG9zZWQgdG8iCisgIHB1
dHMgIiAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnlpbmcgdGhlbSBvbiB0aGUgY29tbWFuZCBs
aW5lLiIKKyAgcHV0cyAiLS1wcmVwYXJlLW9ubHkgICAgICAgT25seSBwcmVwYXJlIHRoZSBydW5z
Y3JpcHQgKGEgc2hlbGwgc2NyaXB0IHRoYXQiCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAg
IGludm9rZXMgdGhlIFZNcyB0byBydW4gYmVuY2htYXJrcykgYnV0IGRvbid0IHJ1biBpdC4iCisg
IHB1dHMgIi0tYW5hbHl6ZSAgICAgICAgICAgIE9ubHkgcmVhZCB0aGUgb3V0cHV0IG9mIHRoZSBy
dW5zY3JpcHQgYnV0IGRvbid0IGRvIGFueXRoaW5nIgorICBwdXRzICIgICAgICAgICAgICAgICAg
ICAgICBlbHNlLiBUaGlzIHJlcXVpcmVzIHBhc3NpbmcgdGhlIHNhbWUgYXJndW1lbnRzIHRoYXQg
eW91IgorICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgd2hlbiBydW5uaW5nIC0t
cHJlcGFyZS1vbmx5LiIKKyAgcHV0cyAiLS1vdXRwdXQtbmFtZSAgICAgICAgQmFzZSBvZiB0aGUg
ZmlsZW5hbWVzIHRvIHB1dCByZXN1bHRzIGludG8uIFdpbGwgd3JpdGUgYSBmaWxlIgorICBwdXRz
ICIgICAgICAgICAgICAgICAgICAgICBjYWxsZWQgPGJhc2U+X3JlcG9ydC50eHQgYW5kIDxiYXNl
Pi5qc29uLiAgQnkgZGVmYXVsdCB0aGlzIgorICBwdXRzICIgICAgICAgICAgICAgICAgICAgICBu
YW1lIGlzIGF1dG9tYXRpY2FsbHkgc3ludGhlc2l6ZWQgZnJvbSB0aGUgbWFjaGluZSBuYW1lLCIK
KyAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAgZGF0ZSwgc2V0IG9mIGJlbmNobWFya3MgcnVu
LCBhbmQgc2V0IG9mIGNvbmZpZ3VyYXRpb25zLiIKKyAgcHV0cyAiLS1lbnZpcm9ubWVudCAgICAg
ICAgSlNPTiBmaWxlIHRoYXQgc3BlY2lmaWVzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhh
dCBzaG91bGQiCisgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgIGJlIHVzZWQgZm9yIHBhcnRp
Y3VsYXIgVk1zIGFuZCBiZW5jaG1hcmtzLiIKKyAgcHV0cyAiLS1jb25maWcgPHBhdGg+ICAgICAg
U3BlY2lmeSB0aGUgcGF0aCBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLiBEZWZhdWx0cyB0byIK
KyAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAgfi8ucnVuLWpzYy1iZW5jaG1hcmtzIgorICBw
dXRzICItLWhlbHAgb3IgLWggICAgICAgICBEaXNwbGF5IHRoaXMgbWVzc2FnZS4iCisgIHB1dHMK
KyAgcHV0cyAiRXhhbXBsZToiCisgIHB1dHMgInJ1bi1qc2MtYmVuY2htYXJrcyBUaXBPZlRyZWU6
L1ZvbHVtZXMvRGF0YS9waXpsby9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIE15
Q2hhbmdlczovVm9sdW1lcy9EYXRhL3BpemxvL3NlY29uZGFyeS9PcGVuU291cmNlL1dlYktpdEJ1
aWxkL1JlbGVhc2UvanNjIgorICBleGl0IDEKK2VuZAorCitkZWYgZmFpbChyZWFzb24pCisgIGlm
IHJlYXNvbi5yZXNwb25kX3RvPyA6YmFja3RyYWNlCisgICAgcHV0cyAiRkFJTEVEOiAje3JlYXNv
bi5pbnNwZWN0fSIKKyAgICBwdXRzICJTdGFjayB0cmFjZToiCisgICAgcHV0cyByZWFzb24uYmFj
a3RyYWNlLmpvaW4oIlxuIikKKyAgZWxzZQorICAgIHB1dHMgIkZBSUxFRDogI3tyZWFzb24uaW5z
cGVjdH0iCisgIGVuZAorICBzbWFsbFVzYWdlCitlbmQKKworZGVmIHF1aWNrRmFpbChyMSxyMikK
KyAgJHN0ZGVyci5wdXRzICIjeyQwfTogI3tyMX0iCisgIHB1dHMKKyAgZmFpbChyMikKK2VuZAor
CitkZWYgaW50QXJnKGFyZ05hbWUsYXJnLG1pbixtYXgpCisgIHJlc3VsdD1hcmcudG9faQorICB1
bmxlc3MgcmVzdWx0LnRvX3MgPT0gYXJnCisgICAgcXVpY2tGYWlsKCJFeHBlY3RlZCBhbiBpbnRl
Z2VyIHZhbHVlIGZvciAje2FyZ05hbWV9LCBidXQgZ290ICN7YXJnfS4iLAorICAgICAgICAgICAg
ICAiSW52YWxpZCBhcmd1bWVudCBmb3IgY29tbWFuZC1saW5lIG9wdGlvbiIpCisgIGVuZAorICBp
ZiBtaW4gYW5kIHJlc3VsdDxtaW4KKyAgICBxdWlja0ZhaWwoIkFyZ3VtZW50IGZvciAje2FyZ05h
bWV9IGNhbm5vdCBiZSBzbWFsbGVyIHRoYW4gI3ttaW59LiIsCisgICAgICAgICAgICAgICJJbnZh
bGlkIGFyZ3VtZW50IGZvciBjb21tYW5kLWxpbmUgb3B0aW9uIikKKyAgZW5kCisgIGlmIG1heCBh
bmQgcmVzdWx0Pm1heAorICAgIHF1aWNrRmFpbCgiQXJndW1lbnQgZm9yICN7YXJnTmFtZX0gY2Fu
bm90IGJlIGdyZWF0ZXIgdGhhbiAje21heH0uIiwKKyAgICAgICAgICAgICAgIkludmFsaWQgYXJn
dW1lbnQgZm9yIGNvbW1hbmQtbGluZSBvcHRpb24iKQorICBlbmQKKyAgcmVzdWx0CitlbmQKKwor
ZGVmIGNvbXB1dGVNZWFuKGFycmF5KQorICBzdW09MC4wCisgIGFycmF5LmVhY2ggeworICAgIHwg
dmFsdWUgfAorICAgIHN1bSArPSB2YWx1ZQorICB9CisgIHN1bS9hcnJheS5sZW5ndGgKK2VuZAor
CitkZWYgY29tcHV0ZUdlb21ldHJpY01lYW4oYXJyYXkpCisgIHN1bSA9IDAuMAorICBhcnJheS5l
YWNoIHsKKyAgICB8IHZhbHVlIHwKKyAgICBzdW0gKz0gTWF0aC5sb2codmFsdWUpCisgIH0KKyAg
TWF0aC5leHAoc3VtICogKDEuMC9hcnJheS5sZW5ndGgpKQorZW5kCisKK2RlZiBjb21wdXRlSGFy
bW9uaWNNZWFuKGFycmF5KQorICAxLjAgLyBjb21wdXRlTWVhbihhcnJheS5jb2xsZWN0eyB8IHZh
bHVlIHwgMS4wIC8gdmFsdWUgfSkKK2VuZAorCitkZWYgY29tcHV0ZVN0ZERldihhcnJheSkKKyAg
Y2FzZSBhcnJheS5sZW5ndGgKKyAgd2hlbiAwCisgICAgMC4wLzAuMAorICB3aGVuIDEKKyAgICAw
LjAKKyAgZWxzZQorICAgIGJlZ2luCisgICAgICBtZWFuPWNvbXB1dGVNZWFuKGFycmF5KQorICAg
ICAgc3VtPTAuMAorICAgICAgYXJyYXkuZWFjaCB7CisgICAgICAgIHwgdmFsdWUgfAorICAgICAg
ICBzdW0gKz0gKHZhbHVlLW1lYW4pKioyCisgICAgICB9CisgICAgICBNYXRoLnNxcnQoc3VtLyhh
cnJheS5sZW5ndGgtMSkpCisgICAgcmVzY3VlCisgICAgICAwLjAvMC4wCisgICAgZW5kCisgIGVu
ZAorZW5kCisKK2NsYXNzIEFycmF5CisgIGRlZiBzaHVmZmxlIQorICAgIHNpemUuZG93bnRvKDEp
IHsgfG58IHB1c2ggZGVsZXRlX2F0KHJhbmQobikpIH0KKyAgICBzZWxmCisgIGVuZAorZW5kCisK
K2RlZiBpbnZlcnNlQmV0YVJlZ3VsYXJpemVkKG4pCisgIElCUl9MT09LVVBbbi0xXQorZW5kCisK
K2RlZiBudW1Ub1N0cihudW0sIGRlY2ltYWxTaGlmdCkKKyAgKCIlLiIgKyAoNCArIGRlY2ltYWxT
aGlmdCkudG9fcyArICJmIikgJSAobnVtLnRvX2YpCitlbmQKKworY2xhc3MgQ2FudFNheQorICBk
ZWYgaW5pdGlhbGl6ZQorICBlbmQKKyAgCisgIGRlZiBzaG9ydEZvcm0KKyAgICAiICIKKyAgZW5k
CisgIAorICBkZWYgbG9uZ0Zvcm0KKyAgICAiIgorICBlbmQKKyAgCisgIGRlZiB0b19zCisgICAg
IiIKKyAgZW5kCitlbmQKKyAgCitjbGFzcyBOb0NoYW5nZQorICBhdHRyX3JlYWRlciA6YW1vdW50
RmFzdGVyCisgIAorICBkZWYgaW5pdGlhbGl6ZShhbW91bnRGYXN0ZXIpCisgICAgQGFtb3VudEZh
c3RlciA9IGFtb3VudEZhc3RlcgorICBlbmQKKyAgCisgIGRlZiBzaG9ydEZvcm0KKyAgICAiICIK
KyAgZW5kCisgIAorICBkZWYgbG9uZ0Zvcm0KKyAgICAiICBtaWdodCBiZSAje251bVRvU3RyKEBh
bW91bnRGYXN0ZXIsIDApfXggZmFzdGVyIgorICBlbmQKKyAgCisgIGRlZiB0b19zCisgICAgaWYg
QGFtb3VudEZhc3RlciA8IDEuMDEKKyAgICAgICIiCisgICAgZWxzZQorICAgICAgbG9uZ0Zvcm0K
KyAgICBlbmQKKyAgZW5kCitlbmQKKworY2xhc3MgRmFzdGVyCisgIGF0dHJfcmVhZGVyIDphbW91
bnRGYXN0ZXIKKyAgCisgIGRlZiBpbml0aWFsaXplKGFtb3VudEZhc3RlcikKKyAgICBAYW1vdW50
RmFzdGVyID0gYW1vdW50RmFzdGVyCisgIGVuZAorICAKKyAgZGVmIHNob3J0Rm9ybQorICAgICJe
IgorICBlbmQKKyAgCisgIGRlZiBsb25nRm9ybQorICAgICJeIGRlZmluaXRlbHkgI3tudW1Ub1N0
cihAYW1vdW50RmFzdGVyLCAwKX14IGZhc3RlciIKKyAgZW5kCisgIAorICBkZWYgdG9fcworICAg
IGxvbmdGb3JtCisgIGVuZAorZW5kCisKK2NsYXNzIFNsb3dlcgorICBhdHRyX3JlYWRlciA6YW1v
dW50U2xvd2VyCisgIAorICBkZWYgaW5pdGlhbGl6ZShhbW91bnRTbG93ZXIpCisgICAgQGFtb3Vu
dFNsb3dlciA9IGFtb3VudFNsb3dlcgorICBlbmQKKyAgCisgIGRlZiBzaG9ydEZvcm0KKyAgICAi
ISIKKyAgZW5kCisgIAorICBkZWYgbG9uZ0Zvcm0KKyAgICAiISBkZWZpbml0ZWx5ICN7bnVtVG9T
dHIoQGFtb3VudFNsb3dlciwgMCl9eCBzbG93ZXIiCisgIGVuZAorICAKKyAgZGVmIHRvX3MKKyAg
ICBsb25nRm9ybQorICBlbmQKK2VuZAorCitjbGFzcyBNYXlCZVNsb3dlcgorICBhdHRyX3JlYWRl
ciA6YW1vdW50U2xvd2VyCisgIAorICBkZWYgaW5pdGlhbGl6ZShhbW91bnRTbG93ZXIpCisgICAg
QGFtb3VudFNsb3dlciA9IGFtb3VudFNsb3dlcgorICBlbmQKKyAgCisgIGRlZiBzaG9ydEZvcm0K
KyAgICAiPyIKKyAgZW5kCisgIAorICBkZWYgbG9uZ0Zvcm0KKyAgICAiPyBtaWdodCBiZSAje251
bVRvU3RyKEBhbW91bnRTbG93ZXIsIDApfXggc2xvd2VyIgorICBlbmQKKyAgCisgIGRlZiB0b19z
CisgICAgaWYgQGFtb3VudFNsb3dlciA8IDEuMDEKKyAgICAgICI/IgorICAgIGVsc2UKKyAgICAg
IGxvbmdGb3JtCisgICAgZW5kCisgIGVuZAorZW5kCisKK2RlZiBqc29uU2FuaXRpemUodmFsdWUp
CisgIGlmIHZhbHVlLmlzX2E/IEZpeG51bQorICAgIHZhbHVlCisgIGVsc2lmIHZhbHVlLmlzX2E/
IEZsb2F0CisgICAgaWYgdmFsdWUubmFuPyBvciB2YWx1ZS5pbmZpbml0ZT8KKyAgICAgIHZhbHVl
LnRvX3MKKyAgICBlbHNlCisgICAgICB2YWx1ZQorICAgIGVuZAorICBlbHNpZiB2YWx1ZS5pc19h
PyBBcnJheQorICAgIHZhbHVlLm1hcHt8dnwganNvblNhbml0aXplKHYpfQorICBlbHNpZiB2YWx1
ZS5uaWw/CisgICAgdmFsdWUKKyAgZWxzZQorICAgIHJhaXNlICJVbnJlY29nbml6ZWQgdmFsdWUg
I3t2YWx1ZS5pbnNwZWN0fSIKKyAgZW5kCitlbmQKKworY2xhc3MgU3RhdHMKKyAgZGVmIGluaXRp
YWxpemUKKyAgICBAYXJyYXkgPSBbXQorICBlbmQKKyAgCisgIGRlZiBhZGQodmFsdWUpCisgICAg
aWYgbm90IHZhbHVlIG9yIG5vdCBAYXJyYXkKKyAgICAgIEBhcnJheSA9IG5pbAorICAgIGVsc2lm
IHZhbHVlLmlzX2E/IEZsb2F0CisgICAgICBpZiB2YWx1ZS5uYW4/IG9yIHZhbHVlLmluZmluaXRl
PworICAgICAgICBAYXJyYXkgPSBuaWwKKyAgICAgIGVsc2UKKyAgICAgICAgQGFycmF5IDw8IHZh
bHVlCisgICAgICBlbmQKKyAgICBlbHNpZiB2YWx1ZS5pc19hPyBTdGF0cworICAgICAgYWRkKHZh
bHVlLmFycmF5KQorICAgIGVsc2lmIHZhbHVlLnJlc3BvbmRfdG8/IDplYWNoCisgICAgICB2YWx1
ZS5lYWNoIHsKKyAgICAgICAgfCB2IHwKKyAgICAgICAgYWRkKHYpCisgICAgICB9CisgICAgZWxz
ZQorICAgICAgQGFycmF5IDw8IHZhbHVlLnRvX2YKKyAgICBlbmQKKyAgZW5kCisgIAorICBkZWYg
c3RhdHVzCisgICAgaWYgQGFycmF5CisgICAgICA6b2sKKyAgICBlbHNlCisgICAgICA6ZXJyb3IK
KyAgICBlbmQKKyAgZW5kCisgIAorICBkZWYgZXJyb3I/CisgICAgIyBUT0RPOiBXZSdyZSBwcm9i
YWJseSBzdGlsbCBub3QgaGFuZGxpbmcgdGhpcyBjYXNlIGNvcnJlY3RseS4gCisgICAgbm90IEBh
cnJheSBvciBAYXJyYXkuZW1wdHk/CisgIGVuZAorICAKKyAgZGVmIG9rPworICAgIG5vdCBub3Qg
QGFycmF5CisgIGVuZAorICAgIAorICBkZWYgYXJyYXkKKyAgICBAYXJyYXkKKyAgZW5kCisgIAor
ICBkZWYgc3VtCisgICAgcmVzdWx0PTAKKyAgICBAYXJyYXkuZWFjaCB7CisgICAgICB8IHZhbHVl
IHwKKyAgICAgIHJlc3VsdCArPSB2YWx1ZQorICAgIH0KKyAgICByZXN1bHQKKyAgZW5kCisgIAor
ICBkZWYgbWluCisgICAgQGFycmF5Lm1pbgorICBlbmQKKyAgCisgIGRlZiBtYXgKKyAgICBAYXJy
YXkubWF4CisgIGVuZAorICAKKyAgZGVmIHNpemUKKyAgICBAYXJyYXkubGVuZ3RoCisgIGVuZAor
ICAKKyAgZGVmIG1lYW4KKyAgICBjb21wdXRlTWVhbihhcnJheSkKKyAgZW5kCisgIAorICBkZWYg
YXJpdGhtZXRpY01lYW4KKyAgICBtZWFuCisgIGVuZAorICAKKyAgZGVmIHN0ZERldgorICAgIGNv
bXB1dGVTdGREZXYoYXJyYXkpCisgIGVuZAorCisgIGRlZiBzdGRFcnIKKyAgICBzdGREZXYvTWF0
aC5zcXJ0KHNpemUpCisgIGVuZAorICAKKyAgIyBDb21wdXRlcyBhIDk1JSBTdHVkZW50J3MgdCBk
aXN0cmlidXRpb24gY29uZmlkZW5jZSBpbnRlcnZhbAorICBkZWYgY29uZkludAorICAgIGlmIHNp
emUgPCAyCisgICAgICAwLjAvMC4wCisgICAgZWxzZQorICAgICAgcmFpc2UgaWYgc2l6ZSA+IDEw
MDAKKyAgICAgIE1hdGguc3FydChzaXplLTEuMCkqc3RkRXJyKk1hdGguc3FydCgtMS4wKzEuMC9p
bnZlcnNlQmV0YVJlZ3VsYXJpemVkKHNpemUtMSkpCisgICAgZW5kCisgIGVuZAorICAKKyAgZGVm
IGxvd2VyCisgICAgbWVhbi1jb25mSW50CisgIGVuZAorICAKKyAgZGVmIHVwcGVyCisgICAgbWVh
bitjb25mSW50CisgIGVuZAorICAKKyAgZGVmIGdlb21ldHJpY01lYW4KKyAgICBjb21wdXRlR2Vv
bWV0cmljTWVhbihhcnJheSkKKyAgZW5kCisgIAorICBkZWYgaGFybW9uaWNNZWFuCisgICAgY29t
cHV0ZUhhcm1vbmljTWVhbihhcnJheSkKKyAgZW5kCisgIAorICBkZWYgY29tcGFyZVRvKG90aGVy
KQorICAgIHJldHVybiBDYW50U2F5Lm5ldyB1bmxlc3Mgb2s/IGFuZCBvdGhlci5vaz8KKyAgICAK
KyAgICBpZiB1cHBlciA8IG90aGVyLmxvd2VyCisgICAgICBGYXN0ZXIubmV3KG90aGVyLm1lYW4v
bWVhbikKKyAgICBlbHNpZiBsb3dlciA+IG90aGVyLnVwcGVyCisgICAgICBTbG93ZXIubmV3KG1l
YW4vb3RoZXIubWVhbikKKyAgICBlbHNpZiBtZWFuID4gb3RoZXIubWVhbgorICAgICAgTWF5QmVT
bG93ZXIubmV3KG1lYW4vb3RoZXIubWVhbikKKyAgICBlbHNlCisgICAgICBOb0NoYW5nZS5uZXco
b3RoZXIubWVhbi9tZWFuKQorICAgIGVuZAorICBlbmQKKyAgCisgIGRlZiB0b19zCisgICAgInNp
emUgPSAje3NpemV9LCBtZWFuID0gI3ttZWFufSwgc3RkRGV2ID0gI3tzdGREZXZ9LCBzdGRFcnIg
PSAje3N0ZEVycn0sIGNvbmZJbnQgPSAje2NvbmZJbnR9IgorICBlbmQKKyAgCisgIGRlZiBqc29u
TWFwCisgICAgaWYgb2s/CisgICAgICB7ImRhdGEiPT5qc29uU2FuaXRpemUoQGFycmF5KSwgIm1l
YW4iPT5qc29uU2FuaXRpemUobWVhbiksICJjb25mSW50Ij0+anNvblNhbml0aXplKGNvbmZJbnQp
fQorICAgIGVsc2UKKyAgICAgICJFUlJPUiIKKyAgICBlbmQKKyAgZW5kCitlbmQKKworZGVmIGRv
dWJsZVB1dHMob3V0MSxvdXQyLG1zZykKKyAgb3V0MS5wdXRzICIje291dDIucGF0aH06ICN7bXNn
fSIgaWYgJHZlcmJvc2l0eT49MworICBvdXQyLnB1dHMgbXNnCitlbmQKKworY2xhc3MgQmVuY2hm
aWxlIDwgRmlsZQorICBAQGNvdW50ZXIgPSAwCisgIAorICBhdHRyX3JlYWRlciA6ZmlsZW5hbWUs
IDpiYXNlbmFtZQorICAKKyAgZGVmIGluaXRpYWxpemUobmFtZSkKKyAgICBAYmFzZW5hbWUsIEBm
aWxlbmFtZSA9IEJlbmNoZmlsZS51bmlxdWVGaWxlbmFtZShuYW1lKQorICAgIHN1cGVyKEBmaWxl
bmFtZSwgInciKQorICBlbmQKKyAgCisgIGRlZiBzZWxmLnVuaXF1ZUZpbGVuYW1lKG5hbWUpCisg
ICAgaWYgbmFtZS5pc19hPyBBcnJheQorICAgICAgYmFzZW5hbWUgPSBuYW1lWzBdICsgQEBjb3Vu
dGVyLnRvX3MgKyBuYW1lWzFdCisgICAgZWxzZQorICAgICAgYmFzZW5hbWUgPSBuYW1lICsgQEBj
b3VudGVyLnRvX3MKKyAgICBlbmQKKyAgICBmaWxlbmFtZSA9IEJFTkNIX0RBVEFfUEFUSCArIGJh
c2VuYW1lCisgICAgQEBjb3VudGVyICs9IDEKKyAgICByYWlzZSAiQmVuY2hmaWxlICN7ZmlsZW5h
bWV9IGFscmVhZHkgZXhpc3RzIiBpZiBGaWxlVGVzdC5leGlzdD8oZmlsZW5hbWUpCisgICAgW2Jh
c2VuYW1lLCBmaWxlbmFtZV0KKyAgZW5kCisgIAorICBkZWYgc2VsZi5jcmVhdGUobmFtZSkKKyAg
ICBmaWxlID0gQmVuY2hmaWxlLm5ldyhuYW1lKQorICAgIHlpZWxkIGZpbGUKKyAgICBmaWxlLmNs
b3NlCisgICAgZmlsZS5iYXNlbmFtZQorICBlbmQKK2VuZAorCiskZGF0YUZpbGVzPXt9CitkZWYg
ZW5zdXJlRmlsZShrZXksIGZpbGVuYW1lKQorICB1bmxlc3MgJGRhdGFGaWxlc1trZXldCisgICAg
JGRhdGFGaWxlc1trZXldID0gQmVuY2hmaWxlLmNyZWF0ZShrZXkpIHsKKyAgICAgIHwgb3V0cCB8
CisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsb3V0cCxJTzo6cmVhZChmaWxlbmFtZSkpCisgICAg
fQorICBlbmQKKyAgJGRhdGFGaWxlc1trZXldCitlbmQKKworIyBIZWxwZXIgZm9yIGZpbGVzIHRo
YXQgY2Fubm90IGJlIHJlbmFtZWQuCiskYWJzb2x1dGVGaWxlcz17fQorZGVmIGVuc3VyZUFic29s
dXRlRmlsZShmaWxlbmFtZSwgYmFzZWRpcj1uaWwpCisgIHJldHVybiBpZiAkYWJzb2x1dGVGaWxl
c1tmaWxlbmFtZV0KKyAgZmlsZW5hbWUgPSBQYXRobmFtZS5uZXcoZmlsZW5hbWUpCisKKyAgZGly
ZWN0b3J5ID0gUGF0aG5hbWUubmV3KCcnKQorICBpZiBiYXNlZGlyIGFuZCBmaWxlbmFtZS5kaXJu
YW1lICE9IGJhc2VkaXIKKyAgICByZW1haW5pbmdQYXRoID0gZmlsZW5hbWUuZGlybmFtZQorICAg
IHdoaWxlIHJlbWFpbmluZ1BhdGggIT0gYmFzZWRpcgorICAgICAgZGlyZWN0b3J5ID0gcmVtYWlu
aW5nUGF0aC5iYXNlbmFtZSArIGRpcmVjdG9yeQorICAgICAgcmVtYWluaW5nUGF0aCA9IHJlbWFp
bmluZ1BhdGguZGlybmFtZQorICAgIGVuZAorICAgIGlmIG5vdCAkYWJzb2x1dGVGaWxlc1tkaXJl
Y3RvcnldCisgICAgICBjbWQgPSAibWtkaXIgLXAgI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKChC
RU5DSF9EQVRBX1BBVEggKyBkaXJlY3RvcnkpLnRvX3MpfSIKKyAgICAgICRzdGRlcnIucHV0cyAi
Pj4gI3tjbWR9IiBpZiAkdmVyYm9zaXR5ID49IDIKKyAgICAgIHJhaXNlIHVubGVzcyBzeXN0ZW0o
Y21kKQorICAgICAgaW50ZXJtZWRpYXRlRGlyZWN0b3J5ID0gUGF0aG5hbWUubmV3KGRpcmVjdG9y
eSkKKyAgICAgIHdoaWxlIGludGVybWVkaWF0ZURpcmVjdG9yeS5iYXNlbmFtZS50b19zICE9ICIu
IgorICAgICAgICAkYWJzb2x1dGVGaWxlc1tpbnRlcm1lZGlhdGVEaXJlY3RvcnldID0gdHJ1ZQor
ICAgICAgICBpbnRlcm1lZGlhdGVEaXJlY3RvcnkgPSBpbnRlcm1lZGlhdGVEaXJlY3RvcnkuZGly
bmFtZQorICAgICAgZW5kCisgICAgZW5kCisgIGVuZAorICAKKyAgY21kID0gImNwICN7U2hlbGx3
b3Jkcy5zaGVsbGVzY2FwZShmaWxlbmFtZS50b19zKX0gI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBl
KChCRU5DSF9EQVRBX1BBVEggKyBkaXJlY3RvcnkgKyBmaWxlbmFtZS5iYXNlbmFtZSkudG9fcyl9
IgorICAkc3RkZXJyLnB1dHMgIj4+ICN7Y21kfSIgaWYgJHZlcmJvc2l0eSA+PSAyCisgIHJhaXNl
IHVubGVzcyBzeXN0ZW0oY21kKQorICAkYWJzb2x1dGVGaWxlc1tmaWxlbmFtZV0gPSB0cnVlCitl
bmQKKworIyBIZWxwZXIgZm9yIGxhcmdlIGJlbmNobWFya3Mgd2l0aCBsb3RzIG9mIGZpbGVzIGFu
ZCBkaXJlY3Rvcmllcy4KK2RlZiBlbnN1cmVCZW5jaG1hcmtGaWxlcyhyb290ZGlyKQorICAgIHRv
UHJvY2VzcyA9IFtyb290ZGlyXQorICAgIHdoaWxlIG5vdCB0b1Byb2Nlc3MuZW1wdHk/CisgICAg
ICBjdXJyZGlyID0gdG9Qcm9jZXNzLnBvcAorICAgICAgRGlyLmZvcmVhY2goY3VycmRpci50b19z
KSB7CisgICAgICAgIHwgZmlsZW5hbWUgfAorICAgICAgICBwYXRoID0gY3VycmRpciArIGZpbGVu
YW1lCisgICAgICAgIG5leHQgaWYgZmlsZW5hbWUubWF0Y2goL15cLi8pCisgICAgICAgIHRvUHJv
Y2Vzcy5wdXNoKHBhdGgpIGlmIEZpbGUuZGlyZWN0b3J5PyhwYXRoLnRvX3MpCisgICAgICAgIGVu
c3VyZUFic29sdXRlRmlsZShwYXRoLCByb290ZGlyKSBpZiBGaWxlLmZpbGU/KHBhdGgudG9fcykK
KyAgICAgIH0KKyAgICBlbmQKK2VuZAorCitjbGFzcyBKU0NvbW1hbmQKKyAgYXR0cl9yZWFkZXIg
OmpzLCA6aHRtbAorICBkZWYgaW5pdGlhbGl6ZShqcywgaHRtbCkKKyAgICBAanMgPSBqcworICAg
IEBodG1sID0gaHRtbAorICBlbmQKK2VuZAorCitkZWYgbG9hZENvbW1hbmRGb3JGaWxlKGtleSwg
ZmlsZW5hbWUpCisgIGZpbGUgPSBlbnN1cmVGaWxlKGtleSwgZmlsZW5hbWUpCisgIEpTQ29tbWFu
ZC5uZXcoImxvYWQoI3tmaWxlLmluc3BlY3R9KTsiLCAiPHNjcmlwdCBzcmM9I3tmaWxlLmluc3Bl
Y3R9Pjwvc2NyaXB0PiIpCitlbmQKKworZGVmIHNpbXBsZUNvbW1hbmQoY29tbWFuZCkKKyAgSlND
b21tYW5kLm5ldyhjb21tYW5kLCAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+I3tj
b21tYW5kfTwvc2NyaXB0PiIpCitlbmQKKworIyBCZW5jaG1hcmsgdGhhdCBjb25zaXN0cyBvZiBh
IHNpbmdsZSBmaWxlIGFuZCBtdXN0IGJlIGxvYWRlZCBpbiBpdHMgb3duIGdsb2JhbCBvYmplY3Qg
ZWFjaAorIyB0aW1lIChpLmUuIHJ1bigpKS4KK2NsYXNzIFNpbmdsZUZpbGVUaW1lZEJlbmNobWFy
a1BhcmFtZXRlcnMKKyAgYXR0cl9yZWFkZXIgOmJlbmNoUGF0aAorICAKKyAgZGVmIGluaXRpYWxp
emUoYmVuY2hQYXRoKQorICAgIEBiZW5jaFBhdGggPSBiZW5jaFBhdGgKKyAgZW5kCisgIAorICBk
ZWYga2luZAorICAgIDpzaW5nbGVGaWxlVGltZWRCZW5jaG1hcmsKKyAgZW5kCitlbmQKKworIyBC
ZW5jaG1hcmsgdGhhdCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBkYXRhIGZpbGVzIHRoYXQgc2hv
dWxkIGJlIGxvYWRlZCBnbG9iYWxseSwgZm9sbG93ZWQKKyMgYnkgYSBjb21tYW5kIHRvIHJ1biB0
aGUgYmVuY2htYXJrLgorY2xhc3MgTXVsdGlGaWxlVGltZWRCZW5jaG1hcmtQYXJhbWV0ZXJzCisg
IGF0dHJfcmVhZGVyIDpkYXRhUGF0aHMsIDpjb21tYW5kCisKKyAgZGVmIGluaXRpYWxpemUoZGF0
YVBhdGhzLCBjb21tYW5kKQorICAgIEBkYXRhUGF0aHMgPSBkYXRhUGF0aHMKKyAgICBAY29tbWFu
ZCA9IGNvbW1hbmQKKyAgZW5kCisgIAorICBkZWYga2luZAorICAgIDptdWx0aUZpbGVUaW1lZEJl
bmNobWFyaworICBlbmQKK2VuZAorCisjIEJlbmNobWFyayB0aGF0IGNvbnNpc3RzIG9mIG9uZSBv
ciBtb3JlIGRhdGEgZmlsZXMgdGhhdCBzaG91bGQgYmUgbG9hZGVkIGdsb2JhbGx5LCBmb2xsb3dl
ZAorIyBieSBhIGNvbW1hbmQgdG8gcnVuIGEgc2hvcnQgdGljayBvZiB0aGUgYmVuY2htYXJrLiBU
aGUgYmVuY2htYXJrIHNob3VsZCBiZSBydW4gZm9yIGFzIG1hbnkKKyMgdGlja3MgYXMgcG9zc2li
bGUsIGZvciBvbmUgcXVhbnR1bSAocXVhbnR1bSBpcyAxMDAwbXMgYnkgZGVmYXVsdCkuCitjbGFz
cyBUaHJvdWdocHV0QmVuY2htYXJrUGFyYW1ldGVycworICBhdHRyX3JlYWRlciA6ZGF0YVBhdGhz
LCA6c2V0VXBDb21tYW5kLCA6Y29tbWFuZCwgOnRlYXJEb3duQ29tbWFuZCwgOmRvV2FybXVwLCA6
ZGV0ZXJtaW5pc3RpYywgOm1pbmltdW1JdGVyYXRpb25zCisKKyAgZGVmIGluaXRpYWxpemUoZGF0
YVBhdGhzLCBzZXRVcENvbW1hbmQsIGNvbW1hbmQsIHRlYXJEb3duQ29tbWFuZCwgZG9XYXJtdXAs
IGRldGVybWluaXN0aWMsIG1pbmltdW1JdGVyYXRpb25zKQorICAgIEBkYXRhUGF0aHMgPSBkYXRh
UGF0aHMKKyAgICBAc2V0VXBDb21tYW5kID0gc2V0VXBDb21tYW5kCisgICAgQGNvbW1hbmQgPSBj
b21tYW5kCisgICAgQHRlYXJEb3duQ29tbWFuZCA9IHRlYXJEb3duQ29tbWFuZAorICAgIEBkb1dh
cm11cCA9IGRvV2FybXVwCisgICAgQGRldGVybWluaXN0aWMgPSBkZXRlcm1pbmlzdGljCisgICAg
QG1pbmltdW1JdGVyYXRpb25zID0gbWluaW11bUl0ZXJhdGlvbnMKKyAgZW5kCisgIAorICBkZWYg
a2luZAorICAgIDp0aHJvdWdocHV0QmVuY2htYXJrCisgIGVuZAorZW5kCisKKyMgQmVuY2htYXJr
IHRoYXQgY2FuIG9ubHkgcnVuIGluIER1bXBSZW5kZXJUcmVlIG9yIFdlYktpdFRlc3RSdW5uZXIs
IHRoYXQgaGFzIGl0cyBvd24gY2FsbGJhY2sgZm9yIHJlcG9ydGluZworIyByZXN1bHRzLiBPdGhl
ciB0aGFuIHRoYXQgaXQncyBqdXN0IGxpa2UgU2luZ2xlRmlsZVRpbWVkQmVuY2htYXJrLgorY2xh
c3MgU2luZ2xlRmlsZVRpbWVkQ2FsbGJhY2tCZW5jaG1hcmtQYXJhbWV0ZXJzCisgIGF0dHJfcmVh
ZGVyIDpjYWxsYmFja0RlY2wsIDpiZW5jaFBhdGgKKyAgCisgIGRlZiBpbml0aWFsaXplKGNhbGxi
YWNrRGVjbCwgYmVuY2hQYXRoKQorICAgIEBjYWxsYmFja0RlY2wgPSBjYWxsYmFja0RlY2wKKyAg
ICBAYmVuY2hQYXRoID0gYmVuY2hQYXRoCisgIGVuZAorICAKKyAgZGVmIGtpbmQKKyAgICA6c2lu
Z2xlRmlsZVRpbWVkQ2FsbGJhY2tCZW5jaG1hcmsKKyAgZW5kCitlbmQKKworZGVmIGVtaXRUaW1l
ckZ1bmN0aW9uQ29kZShmaWxlKQorICBjYXNlICR0aW1lTW9kZQorICB3aGVuIDpwcmVjaXNlVGlt
ZQorICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJmdW5jdGlvbiBfX2JlbmNoZXJfY3VyVGlt
ZU1TKCkgeyIpCisgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgIHJldHVybiBwcmVjaXNl
VGltZSgpKjEwMDAiKQorICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJ9IikKKyAgd2hlbiA6
ZGF0ZQorICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJmdW5jdGlvbiBfX2JlbmNoZXJfY3Vy
VGltZU1TKCkgeyIpCisgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgIHJldHVybiBEYXRl
Lm5vdygpIikKKyAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwifSIpCisgIGVsc2UKKyAgICBy
YWlzZQorICBlbmQKK2VuZAorCitkZWYgZW1pdEJlbmNoUnVuQ29kZUZpbGUobmFtZSwgcGxhbiwg
YmVuY2hQYXJhbXMpCisgIGNhc2UgcGxhbi52bS52bVR5cGUKKyAgd2hlbiA6anNjCisgICAgQmVu
Y2hmaWxlLmNyZWF0ZSgiYmVuY2hlciIpIHsKKyAgICAgIHwgZmlsZSB8CisgICAgICBlbWl0VGlt
ZXJGdW5jdGlvbkNvZGUoZmlsZSkKKyAgICAgIAorICAgICAgaWYgYmVuY2hQYXJhbXMua2luZCA9
PSA6bXVsdGlGaWxlVGltZWRCZW5jaG1hcmsKKyAgICAgICAgYmVuY2hQYXJhbXMuZGF0YVBhdGhz
LmVhY2ggeworICAgICAgICAgIHwgcGF0aCB8CisgICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsImxvYWQoI3twYXRoLmluc3BlY3R9KTsiKQorICAgICAgICB9CisgICAgICAgIGRvdWJs
ZVB1dHMoJHN0ZGVycixmaWxlLCJnYygpOyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixm
aWxlLCJmb3IgKHZhciBfX2JlbmNoZXJfaW5kZXggPSAwOyBfX2JlbmNoZXJfaW5kZXggPCAjeyR3
YXJtdXArJGlubmVyfTsgKytfX2JlbmNoZXJfaW5kZXgpIHsiKQorICAgICAgICBkb3VibGVQdXRz
KCRzdGRlcnIsZmlsZSwiICAgdmFyIF9fYmVmb3JlID0gX19iZW5jaGVyX2N1clRpbWVNUygpOyIp
CisgICAgICAgICRyZXJ1bi50aW1lcyB7CisgICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZp
bGUsIiAgICN7YmVuY2hQYXJhbXMuY29tbWFuZC5qc30iKQorICAgICAgICB9CisgICAgICAgIGRv
dWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICB2YXIgX19hZnRlciA9IF9fYmVuY2hlcl9jdXJUaW1l
TVMoKTsiKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgaWYgKF9fYmVuY2hl
cl9pbmRleCA+PSAjeyR3YXJtdXB9KSBwcmludChcIiN7bmFtZX06ICN7cGxhbi52bX06ICN7cGxh
bi5pdGVyYXRpb259OiBcIiArIChfX2JlbmNoZXJfaW5kZXggLSAjeyR3YXJtdXB9KSArIFwiOiBU
aW1lOiBcIisoX19hZnRlci1fX2JlZm9yZSkpOyIpOworICAgICAgICBkb3VibGVQdXRzKCRzdGRl
cnIsZmlsZSwiICAgZ2MoKTsiKSB1bmxlc3MgcGxhbi52bS5zaG91bGRNZWFzdXJlR0MKKyAgICAg
ICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIn0iKQorICAgICAgZWxzaWYgYmVuY2hQYXJhbXMu
a2luZCA9PSA6dGhyb3VnaHB1dEJlbmNobWFyaworICAgICAgICBlbWl0VGltZXJGdW5jdGlvbkNv
ZGUoZmlsZSkKKyAgICAgICAgYmVuY2hQYXJhbXMuZGF0YVBhdGhzLmVhY2ggeworICAgICAgICAg
IHwgcGF0aCB8CisgICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsImxvYWQoI3twYXRo
Lmluc3BlY3R9KTsiKQorICAgICAgICB9CisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxl
LCIje2JlbmNoUGFyYW1zLnNldFVwQ29tbWFuZC5qc30iKQorICAgICAgICBpZiBiZW5jaFBhcmFt
cy5kb1dhcm11cAorICAgICAgICAgIHdhcm11cCA9ICR3YXJtdXAKKyAgICAgICAgZWxzZQorICAg
ICAgICAgIHdhcm11cCA9IDAKKyAgICAgICAgZW5kCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVy
cixmaWxlLCJmb3IgKHZhciBfX2JlbmNoZXJfaW5kZXggPSAwOyBfX2JlbmNoZXJfaW5kZXggPCAj
e3dhcm11cCArICRpbm5lcn07IF9fYmVuY2hlcl9pbmRleCsrKSB7IikKKyAgICAgICAgZG91Ymxl
UHV0cygkc3RkZXJyLGZpbGUsIiAgICB2YXIgX19iZWZvcmUgPSBfX2JlbmNoZXJfY3VyVGltZU1T
KCk7IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICB2YXIgX19hZnRlciA9
IF9fYmVmb3JlOyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgdmFyIF9f
cnVucyA9IDA7IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICB2YXIgX19l
eHBlY3RlZCA9ICN7JHF1YW50dW19OyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxl
LCIgICAgd2hpbGUgKHRydWUpIHsiKQorICAgICAgICAkcmVydW4udGltZXMgeworICAgICAgICAg
IGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgI3tiZW5jaFBhcmFtcy5jb21tYW5kLmpz
fSIpCisgICAgICAgIH0KKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICBf
X3J1bnMrKzsiKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgIF9fYWZ0
ZXIgPSBfX2JlbmNoZXJfY3VyVGltZU1TKCk7IikKKyAgICAgICAgaWYgYmVuY2hQYXJhbXMuZGV0
ZXJtaW5pc3RpYworICAgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgaWYg
KHRydWUpIHsiKQorICAgICAgICBlbHNlCisgICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZp
bGUsIiAgICAgICBpZiAoX19hZnRlciAtIF9fYmVmb3JlID49IF9fZXhwZWN0ZWQpIHsiKQorICAg
ICAgICBlbmQKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgICAgaWYg
KF9fcnVucyA+PSAje2JlbmNoUGFyYW1zLm1pbmltdW1JdGVyYXRpb25zfSB8fCBfX2JlbmNoZXJf
aW5kZXggPCAje3dhcm11cH0pIikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAg
ICAgICAgICAgICAgIGJyZWFrOyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIg
ICAgICAgICAgIF9fZXhwZWN0ZWQgKz0gI3skcXVhbnR1bX0iKQorICAgICAgICBkb3VibGVQdXRz
KCRzdGRlcnIsZmlsZSwiICAgICAgIH0iKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmls
ZSwiICAgIH0iKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIGlmIChfX2Jl
bmNoZXJfaW5kZXggPj0gI3t3YXJtdXB9KSBwcmludChcIiN7bmFtZX06ICN7cGxhbi52bX06ICN7
cGxhbi5pdGVyYXRpb259OiBcIiArIChfX2JlbmNoZXJfaW5kZXggLSAje3dhcm11cH0pICsgXCI6
IFRpbWU6IFwiKygoX19hZnRlci1fX2JlZm9yZSkvX19ydW5zKSk7IikKKyAgICAgICAgZG91Ymxl
UHV0cygkc3RkZXJyLGZpbGUsIn0iKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwi
I3tiZW5jaFBhcmFtcy50ZWFyRG93bkNvbW1hbmQuanN9IikKKyAgICAgIGVsc2UKKyAgICAgICAg
cmFpc2UgdW5sZXNzIGJlbmNoUGFyYW1zLmtpbmQgPT0gOnNpbmdsZUZpbGVUaW1lZEJlbmNobWFy
aworICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24gX19iZW5jaGVyX3J1
bihfX2JlbmNoZXJfd2hhdCkgeyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIg
ICB2YXIgX19iZW5jaGVyX2JlZm9yZSA9IF9fYmVuY2hlcl9jdXJUaW1lTVMoKTsiKQorICAgICAg
ICAkcmVydW4udGltZXMgeworICAgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICBy
dW4oX19iZW5jaGVyX3doYXQpOyIpCisgICAgICAgIH0KKyAgICAgICAgZG91YmxlUHV0cygkc3Rk
ZXJyLGZpbGUsIiAgIHZhciBfX2JlbmNoZXJfYWZ0ZXIgPSBfX2JlbmNoZXJfY3VyVGltZU1TKCk7
IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgIHJldHVybiBfX2JlbmNoZXJf
YWZ0ZXIgLSBfX2JlbmNoZXJfYmVmb3JlOyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixm
aWxlLCJ9IikKKyAgICAgICAgJHdhcm11cC50aW1lcyB7CisgICAgICAgICAgZG91YmxlUHV0cygk
c3RkZXJyLGZpbGUsIl9fYmVuY2hlcl9ydW4oI3tiZW5jaFBhcmFtcy5iZW5jaFBhdGguaW5zcGVj
dH0pIikKKyAgICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZ2MoKTsiKSB1bmxlc3Mg
cGxhbi52bS5zaG91bGRNZWFzdXJlR0MKKyAgICAgICAgfQorICAgICAgICAkaW5uZXIudGltZXMg
eworICAgICAgICAgIHwgaW5uZXJJbmRleCB8CisgICAgICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsInByaW50KFwiI3tuYW1lfTogI3twbGFuLnZtfTogI3twbGFuLml0ZXJhdGlvbn06ICN7
aW5uZXJJbmRleH06IFRpbWU6IFwiK19fYmVuY2hlcl9ydW4oI3tiZW5jaFBhcmFtcy5iZW5jaFBh
dGguaW5zcGVjdH0pKTsiKQorICAgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJnYygp
OyIpIHVubGVzcyBwbGFuLnZtLnNob3VsZE1lYXN1cmVHQworICAgICAgICB9CisgICAgICBlbmQK
KyAgICB9CisgIHdoZW4gOmR1bXBSZW5kZXJUcmVlLCA6d2Via2l0VGVzdFJ1bm5lcgorICAgIGNh
c2UgJHRpbWVNb2RlCisgICAgd2hlbiA6cHJlY2lzZVRpbWUKKyAgICAgIGN1clRpbWUgPSAiKHRl
c3RSdW5uZXIucHJlY2lzZVRpbWUoKSoxMDAwKSIKKyAgICB3aGVuIDpkYXRlCisgICAgICBjdXJU
aW1lID0gIihEYXRlLm5vdygpKSIKKyAgICBlbHNlCisgICAgICByYWlzZQorICAgIGVuZAorCisg
ICAgbWFpbkNvZGUgPSBCZW5jaGZpbGUuY3JlYXRlKCJiZW5jaGVyIikgeworICAgICAgfCBmaWxl
IHwKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJfX2JlbmNoZXJfY291bnQgPSAwOyIp
CisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24gX19iZW5jaGVyX2RvTmV4
dChyZXN1bHQpIHsiKQorICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBpZiAoX19i
ZW5jaGVyX2NvdW50ID49ICN7JHdhcm11cH0pIikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixm
aWxlLCIgICAgICAgIGRlYnVnKFwiI3tuYW1lfTogI3twbGFuLnZtfTogI3twbGFuLml0ZXJhdGlv
bn06IFwiICsgKF9fYmVuY2hlcl9jb3VudCAtICN7JHdhcm11cH0pICsgXCI6IFRpbWU6IFwiICsg
cmVzdWx0KTsiKQorICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBfX2JlbmNoZXJf
Y291bnQrKzsiKQorICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBpZiAoX19iZW5j
aGVyX2NvdW50IDwgI3skaW5uZXIrJHdhcm11cH0pIikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVy
cixmaWxlLCIgICAgICAgIF9fYmVuY2hlcl9ydW5JbXBsKF9fYmVuY2hlcl9kb05leHQpOyIpCisg
ICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIGVsc2UiKQorICAgICAgZG91YmxlUHV0
cygkc3RkZXJyLGZpbGUsIiAgICAgICAgcXVpdCgpOyIpCisgICAgICBkb3VibGVQdXRzKCRzdGRl
cnIsZmlsZSwifSIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiX19iZW5jaGVyX3J1
bkltcGwoX19iZW5jaGVyX2RvTmV4dCk7IikKKyAgICB9CisgICAgCisgICAgY3NzQ29kZSA9IEJl
bmNoZmlsZS5jcmVhdGUoImJlbmNoZXItY3NzIikgeworICAgICAgfCBmaWxlIHwKKyAgICAgIGRv
dWJsZVB1dHMoJHN0ZGVycixmaWxlLCIucGFzcyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4g
ICAgY29sb3I6IGdyZWVuO1xufVxuLmZhaWwge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAg
IGNvbG9yOiByZWQ7XG59XG5cI2NvbnNvbGUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtc
biAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xufSIpCisgICAgfQorICAgIAorICAgIHByZUNv
ZGUgPSBCZW5jaGZpbGUuY3JlYXRlKCJiZW5jaGVyLXByZSIpIHsKKyAgICAgIHwgZmlsZSB8Cisg
ICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IikK
KyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcpOyIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIs
ZmlsZSwiICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOyIpCisgICAgICBkb3VibGVQdXRz
KCRzdGRlcnIsZmlsZSwifSIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiIikKKyAg
ICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJmdW5jdGlvbiBkZWJ1Zyhtc2cpIikKKyAgICAg
IGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJ7IikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixm
aWxlLCIgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTsiKQor
ICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChcImNvbnNvbGVcIikuYXBwZW5kQ2hpbGQoc3Bhbik7IC8vIGluc2VydCBpdCBmaXJzdCBzbyBY
SFRNTCBrbm93cyB0aGUgbmFtZXNwYWNlIikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxl
LCIgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsiKQorICAgICAgZG91YmxlUHV0
cygkc3RkZXJyLGZpbGUsIn0iKQorICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiIpCisg
ICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiZnVuY3Rpb24gcXVpdCgpIHsiKQorICAgICAg
ZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiKQor
ICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIn0iKQorICAgICAgZG91YmxlUHV0cygkc3Rk
ZXJyLGZpbGUsIiIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiX19iZW5jaGVyX2Nv
bnRpbnVhdGlvbj1udWxsOyIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiIikKKyAg
ICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCJmdW5jdGlvbiByZXBvcnRSZXN1bHQocmVzdWx0
KSB7IikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgX19iZW5jaGVyX2NvbnRp
bnVhdGlvbihyZXN1bHQpOyIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwifSIpCisg
ICAgICBpZiBiZW5jaFBhcmFtcy5raW5kID09IDpzaW5nbGVGaWxlVGltZWRDYWxsYmFja0JlbmNo
bWFyaworICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiIikKKyAgICAgICAgZG91Ymxl
UHV0cygkc3RkZXJyLGZpbGUsYmVuY2hQYXJhbXMuY2FsbGJhY2tEZWNsKQorICAgICAgZW5kCisg
ICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiIikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVy
cixmaWxlLCJmdW5jdGlvbiBfX2JlbmNoZXJfcnVuSW1wbChjb250aW51YXRpb24pIHsiKQorICAg
ICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBmdW5jdGlvbiBkb2l0KCkgeyIpCisgICAg
ICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChcImZyYW1lcGFyZW50XCIpLmlubmVySFRNTCA9IFwiXCI7IikKKyAgICAgIGRvdWJsZVB1dHMo
JHN0ZGVycixmaWxlLCIgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiZnJhbWVwYXJl
bnRcIikuaW5uZXJIVE1MID0gXCI8aWZyYW1lIGlkPSd0ZXN0ZnJhbWUnPlwiOyIpCisgICAgICBk
b3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICB2YXIgdGVzdEZyYW1lID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoXCJ0ZXN0ZnJhbWVcIik7IikKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVy
cixmaWxlLCIgICAgICAgIHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQub3BlbigpOyIpCisgICAg
ICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3Vt
ZW50LndyaXRlKFwiPCFET0NUWVBFIGh0bWw+XFxuPGhlYWQ+PC9oZWFkPjxib2R5PjxkaXYgaWQ9
XFxcImNvbnNvbGVcXFwiPjwvZGl2PlwiKTsiKQorICAgICAgaWYgYmVuY2hQYXJhbXMua2luZCA9
PSA6dGhyb3VnaHB1dEJlbmNobWFyayBvciBiZW5jaFBhcmFtcy5raW5kID09IDptdWx0aUZpbGVU
aW1lZEJlbmNobWFyaworICAgICAgICBiZW5jaFBhcmFtcy5kYXRhUGF0aHMuZWFjaCB7CisgICAg
ICAgICAgfCBwYXRoIHwKKyAgICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAg
ICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiPHNjcmlwdCBzcmM9I3twYXRoLmlu
c3BlY3QuaW5zcGVjdFsxLi4tMl19Pjwvc2NyaXB0PlwiKTsiKQorICAgICAgICB9CisgICAgICBl
bmQKKyAgICAgIGlmIGJlbmNoUGFyYW1zLmtpbmQgPT0gOnRocm91Z2hwdXRCZW5jaG1hcmsKKyAg
ICAgICAgaWYgYmVuY2hQYXJhbXMuZG9XYXJtdXAKKyAgICAgICAgICB3YXJtdXAgPSAkd2FybXVw
CisgICAgICAgIGVsc2UKKyAgICAgICAgICB3YXJtdXAgPSAwCisgICAgICAgIGVuZAorICAgICAg
ICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3Vt
ZW50LndyaXRlKFwiPHNjcmlwdCB0eXBlPVxcXCJ0ZXh0L2phdmFzY3JpcHRcXFwiPlwiKTsiKQor
ICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVu
dERvY3VtZW50LndyaXRlKFwiI3tiZW5jaFBhcmFtcy5zZXRVcENvbW1hbmQuanN9XCIpOyIpCisg
ICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgIHRlc3RGcmFtZS5jb250ZW50
RG9jdW1lbnQud3JpdGUoXCJ2YXIgX19iZW5jaGVyX2JlZm9yZSA9ICN7Y3VyVGltZX07XCIpOyIp
CisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgIHRlc3RGcmFtZS5jb250
ZW50RG9jdW1lbnQud3JpdGUoXCJ2YXIgX19iZW5jaGVyX2FmdGVyID0gX19iZW5jaGVyX2JlZm9y
ZTtcIik7IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgdGVzdEZy
YW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShcInZhciBfX2JlbmNoZXJfZXhwZWN0ZWQgPSAjeyRx
dWFudHVtfTtcIik7IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAg
dGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShcInZhciBfX2JlbmNoZXJfcnVucyA9IDA7
XCIpOyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgIHRlc3RGcmFt
ZS5jb250ZW50RG9jdW1lbnQud3JpdGUoXCJ3aGlsZSAodHJ1ZSkge1wiKTsiKQorICAgICAgICBk
b3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50
LndyaXRlKFwiICAgICN7YmVuY2hQYXJhbXMuY29tbWFuZC5qc31cIik7IikKKyAgICAgICAgZG91
YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC53
cml0ZShcIiAgICBfX2JlbmNoZXJfcnVucysrO1wiKTsiKQorICAgICAgICBkb3VibGVQdXRzKCRz
dGRlcnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiICAg
IF9fYmVuY2hlcl9hZnRlciA9ICN7Y3VyVGltZX07XCIpOyIpCisgICAgICAgIGlmIGJlbmNoUGFy
YW1zLmRldGVybWluaXN0aWMKKyAgICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAg
ICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiICAgIGlmICh0cnVlKSB7XCIp
OyIpCisgICAgICAgIGVsc2UKKyAgICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAg
ICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiICAgIGlmIChfX2JlbmNoZXJf
YWZ0ZXIgLSBfX2JlbmNoZXJfYmVmb3JlID49IF9fYmVuY2hlcl9leHBlY3RlZCkge1wiKTsiKQor
ICAgICAgICBlbmQKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgdGVz
dEZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShcIiAgICAgICAgaWYgKF9fYmVuY2hlcl9ydW5z
ID49ICN7YmVuY2hQYXJhbXMubWluaW11bUl0ZXJhdGlvbnN9IHx8IHdpbmRvdy5wYXJlbnQuX19i
ZW5jaGVyX2NvdW50IDwgI3t3YXJtdXB9KVwiKTsiKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRl
cnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiICAgICAg
ICAgICAgYnJlYWs7XCIpOyIpCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAg
ICAgIHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQud3JpdGUoXCIgICAgICAgIF9fYmVuY2hlcl9l
eHBlY3RlZCArPSAjeyRxdWFudHVtfVwiKTsiKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIs
ZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiICAgIH1cIik7
IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNv
bnRlbnREb2N1bWVudC53cml0ZShcIn1cIik7IikKKyAgICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShcIiN7YmVuY2hQ
YXJhbXMudGVhckRvd25Db21tYW5kLmpzfVwiKTsiKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRl
cnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwid2luZG93
LnBhcmVudC5yZXBvcnRSZXN1bHQoKF9fYmVuY2hlcl9hZnRlciAtIF9fYmVuY2hlcl9iZWZvcmUp
IC8gX19iZW5jaGVyX3J1bnMpO1wiKTsiKQorICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmls
ZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiPC9zY3JpcHQ+XCIp
OyIpCisgICAgICBlbHNlCisgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAg
IHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQud3JpdGUoXCI8c2NyaXB0IHR5cGU9XFxcInRleHQv
amF2YXNjcmlwdFxcXCI+dmFyIF9fYmVuY2hlcl9iZWZvcmUgPSAje2N1clRpbWV9Ozwvc2NyaXB0
PlwiKTsiKQorICAgICAgICBpZiBiZW5jaFBhcmFtcy5raW5kID09IDptdWx0aUZpbGVUaW1lZEJl
bmNobWFyaworICAgICAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAgIHRlc3RG
cmFtZS5jb250ZW50RG9jdW1lbnQud3JpdGUoI3tiZW5jaFBhcmFtcy5jb21tYW5kLmh0bWwuaW5z
cGVjdH0pOyIpCisgICAgICAgIGVsc2UKKyAgICAgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmls
ZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiPHNjcmlwdCBzcmM9
I3tiZW5jaFBhcmFtcy5iZW5jaFBhdGguaW5zcGVjdC5pbnNwZWN0WzEuLi0yXX0+PC9zY3JpcHQ+
XCIpOyIpCisgICAgICAgIGVuZAorICAgICAgICB1bmxlc3MgYmVuY2hQYXJhbXMua2luZCA9PSA6
c2luZ2xlRmlsZVRpbWVkQ2FsbGJhY2tCZW5jaG1hcmsKKyAgICAgICAgICBkb3VibGVQdXRzKCRz
dGRlcnIsZmlsZSwiICAgICAgICB0ZXN0RnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKFwiPHNj
cmlwdCB0eXBlPVxcXCJ0ZXh0L2phdmFzY3JpcHRcXFwiPndpbmRvdy5wYXJlbnQucmVwb3J0UmVz
dWx0KCN7Y3VyVGltZX0gLSBfX2JlbmNoZXJfYmVmb3JlKTs8L3NjcmlwdD5cIik7IikKKyAgICAg
ICAgZW5kCisgICAgICBlbmQKKyAgICAgIGRvdWJsZVB1dHMoJHN0ZGVycixmaWxlLCIgICAgICAg
IHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQud3JpdGUoXCI8L2JvZHk+PC9odG1sPlwiKTsiKQor
ICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICAgICAgdGVzdEZyYW1lLmNvbnRlbnRE
b2N1bWVudC5jbG9zZSgpOyIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAgIH0i
KQorICAgICAgZG91YmxlUHV0cygkc3RkZXJyLGZpbGUsIiAgICBfX2JlbmNoZXJfY29udGludWF0
aW9uID0gY29udGludWF0aW9uOyIpCisgICAgICBkb3VibGVQdXRzKCRzdGRlcnIsZmlsZSwiICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGRvaXQsIDEwKTsiKQorICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsIn0iKQorICAgIH0KKworICAgIEJlbmNoZmlsZS5jcmVhdGUoWyJiZW5jaGVyLWh0bWxk
b2MiLCIuaHRtbCJdKSB7CisgICAgICB8IGZpbGUgfAorICAgICAgZG91YmxlUHV0cygkc3RkZXJy
LGZpbGUsIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL0lFVEYvL0RURCBIVE1MLy9FTlwiPlxu
PGh0bWw+PGhlYWQ+PGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIje2Nzc0NvZGV9XCI+
PHNjcmlwdCBzcmM9XCIje3ByZUNvZGV9XCI+PC9zY3JpcHQ+PC9oZWFkPjxib2R5PjxkaXYgaWQ9
XCJjb25zb2xlXCI+PC9kaXY+PGRpdiBpZD1cImZyYW1lcGFyZW50XCI+PC9kaXY+PHNjcmlwdCBz
cmM9XCIje21haW5Db2RlfVwiPjwvc2NyaXB0PjwvYm9keT48L2h0bWw+IikKKyAgICB9CisgIGVs
c2UKKyAgICByYWlzZQorICBlbmQKK2VuZAorCitkZWYgZW1pdEJlbmNoUnVuQ29kZShuYW1lLCBw
bGFuLCBiZW5jaFBhcmFtcykKKyAgcGxhbi52bS5lbWl0UnVuQ29kZShlbWl0QmVuY2hSdW5Db2Rl
RmlsZShuYW1lLCBwbGFuLCBiZW5jaFBhcmFtcyksIHBsYW4pCitlbmQKKworY2xhc3MgRmlsZUNy
ZWF0b3IKKyAgZGVmIGluaXRpYWxpemUoZmlsZW5hbWUpCisgICAgQGZpbGVuYW1lID0gZmlsZW5h
bWUKKyAgICBAc3RhdGUgPSA6ZW1wdHkKKyAgZW5kCisgIAorICBkZWYgcHV0cyh0ZXh0KQorICAg
ICRzY3JpcHQucHJpbnQgImVjaG8gI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKHRleHQpfSIKKyAg
ICBpZiBAc3RhdGUgPT0gOmVtcHR5CisgICAgICAkc2NyaXB0LnByaW50ICIgPiAiCisgICAgICBA
c3RhdGUgPSA6bm9uRW1wdHkKKyAgICBlbHNlCisgICAgICAkc2NyaXB0LnByaW50ICIgPj4gIgor
ICAgIGVuZAorICAgICRzY3JpcHQucHV0cyAiI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKEBmaWxl
bmFtZSl9IgorICBlbmQKKyAgCisgIGRlZiBjbG9zZQorICAgIGlmIEBzdGF0ZSA9PSA6ZW1wdHkK
KyAgICAgICRzY3JpcHQucHV0cyAicm0gLWYgI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKHRleHQp
fSIKKyAgICAgICRzY3JpcHQucHV0cyAidG91Y2ggI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKHRl
eHQpfSIKKyAgICBlbmQKKyAgZW5kCisgIAorICBkZWYgc2VsZi5vcGVuKGZpbGVuYW1lKQorICAg
IG91dHAgPSBGaWxlQ3JlYXRvci5uZXcoZmlsZW5hbWUpCisgICAgeWllbGQgb3V0cAorICAgIG91
dHAuY2xvc2UKKyAgZW5kCitlbmQKKworZGVmIGVtaXRTZWxmQ29udGFpbmVkQmVuY2hSdW5Db2Rl
KG5hbWUsIHBsYW4sIHRhcmdldEZpbGUsIGNvbmZpZ0ZpbGUsIGJlbmNobWFyaykKKyAgRmlsZUNy
ZWF0b3Iub3Blbihjb25maWdGaWxlKSB7CisgICAgfCBvdXRwIHwKKyAgICBvdXRwLnB1dHMgIl9f
YmVuY2hlcl9tZXNzYWdlID0gXCIje25hbWV9OiAje3BsYW4udm19OiAje3BsYW4uaXRlcmF0aW9u
fTogXCI7IgorICAgIG91dHAucHV0cyAiX19iZW5jaGVyX3dhcm11cCA9ICN7JHdhcm11cH07Igor
ICAgIG91dHAucHV0cyAiX19iZW5jaGVyX2lubmVyID0gI3skaW5uZXJ9OyIKKyAgICBvdXRwLnB1
dHMgIl9fYmVuY2hlcl9iZW5jaG1hcmsgPSAje2JlbmNobWFyay50b19qc29ufTsiCisgICAgY2Fz
ZSAkdGltZU1vZGUKKyAgICB3aGVuIDpwcmVjaXNlVGltZQorICAgICAgb3V0cC5wdXRzICJfX2Jl
bmNoZXJfY3VyVGltZSA9IChmdW5jdGlvbigpeyByZXR1cm4gdGVzdFJ1bm5lci5wcmVjaXNlVGlt
ZSgpICogMTAwMDsgfSk7IgorICAgIHdoZW4gOmRhdGUKKyAgICAgIG91dHAucHV0cyAiX19iZW5j
aGVyX2N1clRpbWUgPSAoZnVuY3Rpb24oKXsgcmV0dXJuIERhdGUubm93KCk7IH0pOyIKKyAgICBl
bHNlCisgICAgICByYWlzZQorICAgIGVuZAorICB9CisgIAorICBwbGFuLnZtLmVtaXRSdW5Db2Rl
KHRhcmdldEZpbGUsIHBsYW4pCitlbmQKKworZGVmIHBsYW5Gb3JEZXNjcmlwdGlvbihzdHJpbmcs
IHBsYW5zLCBiZW5jaEZ1bGxuYW1lLCB2bU5hbWUsIGl0ZXJhdGlvbikKKyAgcmFpc2UgIlVuZXhw
ZWN0ZWQgYmVuY2htYXJrIGZ1bGwgbmFtZTogI3tiZW5jaEZ1bGxuYW1lLmluc3BlY3R9LCBzdHJp
bmc6ICN7c3RyaW5nLmluc3BlY3R9IiB1bmxlc3MgYmVuY2hGdWxsbmFtZSA9fiAvXC8vCisgIHN1
aXRlTmFtZSA9ICR+LnByZV9tYXRjaAorICByZXR1cm4gbmlsIGlmIHN1aXRlTmFtZSA9PSAiV0FS
TVVQIgorICBiZW5jaE5hbWUgPSAkfi5wb3N0X21hdGNoCisgIHJlc3VsdCA9IHBsYW5zLnNlbGVj
dHt8dnwgdi5zdWl0ZS5uYW1lID09IHN1aXRlTmFtZSBhbmQgdi5iZW5jaG1hcmsubmFtZSA9PSBi
ZW5jaE5hbWUgYW5kIHYudm0ubmFtZSA9PSB2bU5hbWUgYW5kIHYuaXRlcmF0aW9uID09IGl0ZXJh
dGlvbn0KKyAgcmFpc2UgIlVuZXhwZWN0ZWQgcmVzdWx0IGRpbWVuc2lvbnM6ICN7cmVzdWx0Lmlu
c3BlY3R9LCBzdHJpbmc6ICN7c3RyaW5nLmluc3BlY3R9IiB1bmxlc3MgcmVzdWx0LnNpemUgPT0g
MQorICByZXN1bHRbMF0KK2VuZAorCitjbGFzcyBQYXJzZWRSZXN1bHQKKyAgYXR0cl9yZWFkZXIg
OnBsYW4sIDppbm5lckluZGV4LCA6dGltZSwgOnJlc3VsdAorICAKKyAgZGVmIGluaXRpYWxpemUo
cGxhbiwgaW5uZXJJbmRleCwgdGltZSkKKyAgICBAcGxhbiA9IHBsYW4KKyAgICBAaW5uZXJJbmRl
eCA9IGlubmVySW5kZXgKKyAgICBpZiB0aW1lID09IDpjcmFzaGVkCisgICAgICBAcmVzdWx0ID0g
OmVycm9yCisgICAgZWxzZQorICAgICAgQHRpbWUgPSB0aW1lCisgICAgICBAcmVzdWx0ID0gOnN1
Y2Nlc3MKKyAgICBlbmQKKyAgICAKKyAgICByYWlzZSB1bmxlc3MgQHBsYW4uaXNfYT8gQmVuY2hQ
bGFuCisgICAgcmFpc2UgdW5sZXNzIEBpbm5lckluZGV4LmlzX2E/IEludGVnZXIKKyAgICByYWlz
ZSB1bmxlc3MgQHRpbWUuaXNfYT8gTnVtZXJpYyBvciBAcmVzdWx0ID09IDplcnJvcgorICBlbmQK
KyAgCisgIGRlZiBiZW5jaG1hcmsKKyAgICBwbGFuLmJlbmNobWFyaworICBlbmQKKyAgCisgIGRl
ZiBzdWl0ZQorICAgIHBsYW4uc3VpdGUKKyAgZW5kCisgIAorICBkZWYgdm0KKyAgICBwbGFuLnZt
CisgIGVuZAorICAKKyAgZGVmIG91dGVySW5kZXgKKyAgICBwbGFuLml0ZXJhdGlvbgorICBlbmQK
KyAgCisgIGRlZiBzZWxmLmNyZWF0ZShwbGFuLCBpbm5lckluZGV4LCB0aW1lKQorICAgIGlmIHBs
YW4KKyAgICAgIFBhcnNlZFJlc3VsdC5uZXcocGxhbiwgaW5uZXJJbmRleCwgdGltZSkKKyAgICBl
bHNlCisgICAgICBuaWwKKyAgICBlbmQKKyAgZW5kCisgIAorICBkZWYgc2VsZi5wYXJzZShwbGFu
cywgc3RyaW5nKQorICAgIGlmIHN0cmluZyA9fiAvKFthLXpBLVowLTlcL18uLV0rKTogKFthLXpB
LVowLTlfIy4gXSspOiAoWzAtOV0rKTogKFswLTldKyk6IFRpbWU6IC8KKyAgICAgIGJlbmNoRnVs
bG5hbWUgPSAkMQorICAgICAgdm1OYW1lID0gJDIKKyAgICAgIG91dGVySW5kZXggPSAkMy50b19p
CisgICAgICBpbm5lckluZGV4ID0gJDQudG9faQorICAgICAgdGltZSA9ICR+LnBvc3RfbWF0Y2gu
dG9fZgorICAgICAgUGFyc2VkUmVzdWx0LmNyZWF0ZShwbGFuRm9yRGVzY3JpcHRpb24oc3RyaW5n
LCBwbGFucywgYmVuY2hGdWxsbmFtZSwgdm1OYW1lLCBvdXRlckluZGV4KSwgaW5uZXJJbmRleCwg
dGltZSkKKyAgICBlbHNpZiBzdHJpbmcgPX4gLyhbYS16QS1aMC05XC9fLi1dKyk6IChbYS16QS1a
MC05XyMuIF0rKTogKFswLTldKyk6IChbMC05XSspOiBDUkFTSEVELworICAgICAgYmVuY2hGdWxs
bmFtZSA9ICQxCisgICAgICB2bU5hbWUgPSAkMgorICAgICAgb3V0ZXJJbmRleCA9ICQzLnRvX2kK
KyAgICAgIGlubmVySW5kZXggPSAkNC50b19pCisgICAgICB0aW1lID0gJH4ucG9zdF9tYXRjaC50
b19mCisgICAgICBQYXJzZWRSZXN1bHQuY3JlYXRlKHBsYW5Gb3JEZXNjcmlwdGlvbihzdHJpbmcs
IHBsYW5zLCBiZW5jaEZ1bGxuYW1lLCB2bU5hbWUsIG91dGVySW5kZXgpLCBpbm5lckluZGV4LCA6
Y3Jhc2hlZCkKKyAgICBlbHNlCisgICAgICBuaWwKKyAgICBlbmQKKyAgZW5kCitlbmQKKworY2xh
c3MgVk0KKyAgQEBleHRyYUVudlNldCA9IHt9CisgIAorICBkZWYgaW5pdGlhbGl6ZShvcmlnUGF0
aCwgbmFtZSwgbmFtZUtpbmQsIHN2blJldmlzaW9uKQorICAgIEBvcmlnUGF0aCA9IG9yaWdQYXRo
LnRvX3MKKyAgICBAcGF0aCA9IG9yaWdQYXRoLnRvX3MKKyAgICBAbmFtZSA9IG5hbWUKKyAgICBA
bmFtZUtpbmQgPSBuYW1lS2luZAorICAgIEBleHRyYUVudiA9IHt9CisgICAgCisgICAgaWYgJGZv
cmNlVk1LaW5kCisgICAgICBAdm1UeXBlID0gJGZvcmNlVk1LaW5kCisgICAgZWxzZQorICAgICAg
aWYgQG9yaWdQYXRoID1+IC9EdW1wUmVuZGVyVHJlZSQvCisgICAgICAgIEB2bVR5cGUgPSA6ZHVt
cFJlbmRlclRyZWUKKyAgICAgIGVsc2lmIEBvcmlnUGF0aCA9fiAvV2ViS2l0VGVzdFJ1bm5lciQv
CisgICAgICAgIEB2bVR5cGUgPSA6d2Via2l0VGVzdFJ1bm5lcgorICAgICAgZWxzZQorICAgICAg
ICBAdm1UeXBlID0gOmpzYworICAgICAgZW5kCisgICAgZW5kCisgICAgCisgICAgQHN2blJldmlz
aW9uID0gc3ZuUmV2aXNpb24KKyAgICAKKyAgICAjIFRyeSB0byBkZXRlY3QgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIFZNLgorICAgIGlmIHBhdGggPX4gL1wvV2ViS2l0QnVpbGRcLyhSZWxlYXNlfERl
YnVnKStcLyhbYS16QS1aXSspJC8KKyAgICAgIEBjaGVja291dFBhdGggPSAkfi5wcmVfbWF0Y2gK
KyAgICAgICMgRklYTUU6IFVzZSBzb21lIHZhcmlhbnQgb2YgdGhpczogCisgICAgICAjIDxiZGFz
aD4gICBkZWYgcmV0cmlldmVfcmV2aXNpb24KKyAgICAgICMgPGJkYXNoPiAgICAgYHBlcmwgLUkj
e0BwYXRofS9Ub29scy9TY3JpcHRzIC1NVkNTVXRpbHMgLWUgJ3ByaW50IHN2blJldmlzaW9uRm9y
RGlyZWN0b3J5KCIje0BwYXRofSIpOydgLnRvX2kKKyAgICAgICMgPGJkYXNoPiAgIGVuZAorICAg
ICAgdW5sZXNzIEBzdm5SZXZpc2lvbgorICAgICAgICBiZWdpbgorICAgICAgICAgIERpci5jaGRp
cihAY2hlY2tvdXRQYXRoKSB7CisgICAgICAgICAgICAkc3RkZXJyLnB1dHMgIj4+IGNkICN7QGNo
ZWNrb3V0UGF0aH0gJiYgc3ZuIGluZm8iIGlmICR2ZXJib3NpdHk+PTIKKyAgICAgICAgICAgIElP
LnBvcGVuKCJzdm4gaW5mbyIsICJyIikgeworICAgICAgICAgICAgICB8IGlucCB8CisgICAgICAg
ICAgICAgIGlucC5lYWNoX2xpbmUgeworICAgICAgICAgICAgICAgIHwgbGluZSB8CisgICAgICAg
ICAgICAgICAgaWYgbGluZSA9fiAvUmV2aXNpb246IChbMC05XSspLworICAgICAgICAgICAgICAg
ICAgQHN2blJldmlzaW9uID0gJDEKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICB1bmxlc3MgQHN2blJldmlz
aW9uCisgICAgICAgICAgICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IHJ1bm5pbmcgc3ZuIGluZm8g
Zm9yICN7bmFtZX0gc2lsZW50bHkgZmFpbGVkLiIKKyAgICAgICAgICBlbmQKKyAgICAgICAgcmVz
Y3VlID0+IGUKKyAgICAgICAgICAjIEZhaWxlZCB0byBkZXRlY3Qgc3ZuIHJldmlzaW9uLgorICAg
ICAgICAgICRzdGRlcnIucHV0cyAiV2FybmluZzogY291bGQgbm90IGdldCBzdm4gcmV2aXNpb24g
aW5mb3JtYXRpb24gZm9yICN7bmFtZX06ICN7ZX0iCisgICAgICAgIGVuZAorICAgICAgZW5kCisg
ICAgZWxzZQorICAgICAgJHN0ZGVyci5wdXRzICJXYXJuaW5nOiBjb3VsZCBub3QgaWRlbnRpZnkg
Y2hlY2tvdXQgbG9jYXRpb24gZm9yICN7bmFtZX0iCisgICAgZW5kCisgICAgCisgICAgaWYgQHBh
dGggPX4gL1wvUmVsZWFzZVwvKFthLXpBLVpdKykkLworICAgICAgQGxpYlBhdGgsIEByZWxhdGl2
ZUJpblBhdGggPSBbJH4ucHJlX21hdGNoKyIvUmVsZWFzZSJdLCAiLi8jeyQxfSIKKyAgICBlbHNp
ZiBAcGF0aCA9fiAvXC9EZWJ1Z1wvKFthLXpBLVpdKykkLworICAgICAgQGxpYlBhdGgsIEByZWxh
dGl2ZUJpblBhdGggPSBbJH4ucHJlX21hdGNoKyIvRGVidWciXSwgIi4vI3skMX0iCisgICAgZWxz
aWYgQHBhdGggPX4gL1wvQ29udGVudHNcL1Jlc291cmNlc1wvKFthLXpBLVpdKykkLworICAgICAg
QGxpYlBhdGggPSBbJH4ucHJlX21hdGNoICsgIi9Db250ZW50cy9SZXNvdXJjZXMiLCAkfi5wcmVf
bWF0Y2ggKyAiL0NvbnRlbnRzL0ZyYW1ld29ya3MiXQorICAgIGVsc2lmIEBwYXRoID1+IC9cL0ph
dmFTY3JpcHRDb3JlLmZyYW1ld29ya1wvUmVzb3VyY2VzXC8oW2EtekEtWl0rKSQvCisgICAgICBA
bGliUGF0aCwgQHJlbGF0aXZlQmluUGF0aCA9IFskfi5wcmVfbWF0Y2hdLCAkJlsxLi4tMV0KKyAg
ICBlbmQKKyAgZW5kCisgIAorICBkZWYgY2FuQ29weUludG9CZW5jaFBhdGgKKyAgICBpZiBAbGli
UGF0aCBhbmQgQHJlbGF0aXZlQmluUGF0aAorICAgICAgdHJ1ZQorICAgIGVsc2UKKyAgICAgIGZh
bHNlCisgICAgZW5kCisgIGVuZAorICAKKyAgZGVmIGFkZEV4dHJhRW52KGtleSwgdmFsKQorICAg
IEBleHRyYUVudltrZXldID0gdmFsCisgICAgQEBleHRyYUVudlNldFtrZXldID0gdHJ1ZQorICBl
bmQKKyAgCisgIGRlZiBjb3B5SW50b0JlbmNoUGF0aAorICAgIHJhaXNlIHVubGVzcyBjYW5Db3B5
SW50b0JlbmNoUGF0aAorICAgIGJhc2VuYW1lLCBmaWxlbmFtZSA9IEJlbmNoZmlsZS51bmlxdWVG
aWxlbmFtZSgidm0iKQorICAgIHJhaXNlIHVubGVzcyBEaXIubWtkaXIoZmlsZW5hbWUpCisgICAg
QGxpYlBhdGguZWFjaCB7CisgICAgICB8IGxpYlBhdGhQYXJ0IHwKKyAgICAgIGNtZCA9ICJjcCAt
YSAje1NoZWxsd29yZHMuc2hlbGxlc2NhcGUobGliUGF0aFBhcnQpfS8qICN7U2hlbGx3b3Jkcy5z
aGVsbGVzY2FwZShmaWxlbmFtZS50b19zKX0iCisgICAgICAkc3RkZXJyLnB1dHMgIj4+ICN7Y21k
fSIgaWYgJHZlcmJvc2l0eT49MgorICAgICAgcmFpc2UgdW5sZXNzIHN5c3RlbShjbWQpCisgICAg
fQorICAgIEBwYXRoID0gIiN7YmFzZW5hbWV9LyN7QHJlbGF0aXZlQmluUGF0aH0iCisgICAgQGxp
YlBhdGggPSBbYmFzZW5hbWVdCisgIGVuZAorICAKKyAgZGVmIHRvX3MKKyAgICBAbmFtZQorICBl
bmQKKyAgCisgIGRlZiBuYW1lCisgICAgQG5hbWUKKyAgZW5kCisgIAorICBkZWYgc2hvdWxkTWVh
c3VyZUdDCisgICAgJG1lYXN1cmVHQyA9PSB0cnVlIG9yICgkbWVhc3VyZUdDID09IG5hbWUpCisg
IGVuZAorICAKKyAgZGVmIG9yaWdQYXRoCisgICAgQG9yaWdQYXRoCisgIGVuZAorICAKKyAgZGVm
IHBhdGgKKyAgICBAcGF0aAorICBlbmQKKyAgCisgIGRlZiBuYW1lS2luZAorICAgIEBuYW1lS2lu
ZAorICBlbmQKKyAgCisgIGRlZiB2bVR5cGUKKyAgICBAdm1UeXBlCisgIGVuZAorICAKKyAgZGVm
IGNoZWNrb3V0UGF0aAorICAgIEBjaGVja291dFBhdGgKKyAgZW5kCisgIAorICBkZWYgc3ZuUmV2
aXNpb24KKyAgICBAc3ZuUmV2aXNpb24KKyAgZW5kCisgIAorICBkZWYgZXh0cmFFbnYKKyAgICBA
ZXh0cmFFbnYKKyAgZW5kCisgIAorICBkZWYgcHJpbnRGdW5jdGlvbgorICAgIGNhc2UgQHZtVHlw
ZQorICAgIHdoZW4gOmpzYworICAgICAgInByaW50IgorICAgIHdoZW4gOmR1bXBSZW5kZXJUcmVl
LCA6d2Via2l0VGVzdFJ1bm5lcgorICAgICAgImRlYnVnIgorICAgIGVsc2UKKyAgICAgIHJhaXNl
IEB2bVR5cGUKKyAgICBlbmQKKyAgZW5kCisgIAorICBkZWYgZW1pdFJ1bkNvZGUoZmlsZVRvUnVu
LCBwbGFuKQorICAgIG15TGliUGF0aCA9IEBsaWJQYXRoCisgICAgbXlMaWJQYXRoID0gW10gdW5s
ZXNzIG15TGliUGF0aAorICAgIEBAZXh0cmFFbnZTZXQua2V5cy5lYWNoIHsKKyAgICAgIHwga2V5
IHwKKyAgICAgICRzY3JpcHQucHV0cyAidW5zZXQgI3tTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKGtl
eSl9IgorICAgIH0KKyAgICAkc2NyaXB0LnB1dHMgImV4cG9ydCBEWUxEX0xJQlJBUllfUEFUSD0j
e1NoZWxsd29yZHMuc2hlbGxlc2NhcGUobXlMaWJQYXRoLmpvaW4oJzonKS50b19zKX0iCisgICAg
JHNjcmlwdC5wdXRzICJleHBvcnQgRFlMRF9GUkFNRVdPUktfUEFUSD0je1NoZWxsd29yZHMuc2hl
bGxlc2NhcGUobXlMaWJQYXRoLmpvaW4oJzonKS50b19zKX0iCisgICAgQGV4dHJhRW52LmVhY2hf
cGFpciB7CisgICAgICB8IGtleSwgdmFsIHwKKyAgICAgICRzY3JpcHQucHV0cyAiZXhwb3J0ICN7
U2hlbGx3b3Jkcy5zaGVsbGVzY2FwZShrZXkpfT0je1NoZWxsd29yZHMuc2hlbGxlc2NhcGUodmFs
KX0iCisgICAgfQorICAgIHBsYW4uZW52aXJvbm1lbnQuZWFjaF9wYWlyIHsKKyAgICAgICAgfCBr
ZXksIHZhbCB8CisgICAgICAgICRzY3JpcHQucHV0cyAiZXhwb3J0ICN7U2hlbGx3b3Jkcy5zaGVs
bGVzY2FwZShrZXkpfT0je1NoZWxsd29yZHMuc2hlbGxlc2NhcGUodmFsKX0iCisgICAgfQorICAg
ICRzY3JpcHQucHV0cyAiI3twYXRofSAje2ZpbGVUb1J1bn0gMj4mMSB8fCB7IgorICAgICRzY3Jp
cHQucHV0cyAiICAgIGVjaG8gIiArIFNoZWxsd29yZHMuc2hlbGxlc2NhcGUoIiN7bmFtZX0gZmFp
bGVkIHRvIHJ1biEiKSArICIgMT4mMiIKKyAgICAkaW5uZXIudGltZXMgeworICAgICAgfCBpdGVy
YXRpb24gfAorICAgICAgJHNjcmlwdC5wdXRzICIgICAgZWNobyAiICsgU2hlbGx3b3Jkcy5zaGVs
bGVzY2FwZSgiI3twbGFuLnByZWZpeH06ICN7aXRlcmF0aW9ufTogQ1JBU0hFRCIpCisgICAgfQor
ICAgICRzY3JpcHQucHV0cyAifSIKKyAgICBwbGFuLmVudmlyb25tZW50LmtleXMuZWFjaCB7Cisg
ICAgICAgIHwga2V5IHwKKyAgICAgICAgJHNjcmlwdC5wdXRzICJleHBvcnQgI3tTaGVsbHdvcmRz
LnNoZWxsZXNjYXBlKGtleSl9PSIKKyAgICB9CisgIGVuZAorZW5kCisKK2NsYXNzIFN0YXRzQWNj
dW11bGF0b3IKKyAgZGVmIGluaXRpYWxpemUKKyAgICBAc3RhdHMgPSBbXQorICAgICgkb3V0ZXIq
JGlubmVyKS50aW1lcyB7CisgICAgICBAc3RhdHMgPDwgU3RhdHMubmV3CisgICAgfQorICBlbmQK
KyAgCisgIGRlZiBzdGF0c0Zvckl0ZXJhdGlvbihvdXRlckl0ZXJhdGlvbiwgaW5uZXJJdGVyYXRp
b24pCisgICAgQHN0YXRzW291dGVySXRlcmF0aW9uKiRpbm5lciArIGlubmVySXRlcmF0aW9uXQor
ICBlbmQKKyAgCisgIGRlZiBzdGF0cworICAgIHJlc3VsdCA9IFN0YXRzLm5ldworICAgIEBzdGF0
cy5lYWNoIHsKKyAgICAgIHwgc3RhdCB8CisgICAgICBpZiBzdGF0Lm9rPworICAgICAgICByZXN1
bHQuYWRkKHlpZWxkIHN0YXQpCisgICAgICBlbHNlCisgICAgICAgIHJlc3VsdC5hZGQobmlsKQor
ICAgICAgZW5kCisgICAgfQorICAgIHJlc3VsdAorICBlbmQKKyAgCisgIGRlZiBnZW9tZXRyaWNN
ZWFuU3RhdHMKKyAgICBzdGF0cyB7CisgICAgICB8IHN0YXQgfAorICAgICAgc3RhdC5nZW9tZXRy
aWNNZWFuCisgICAgfQorICBlbmQKKyAgCisgIGRlZiBhcml0aG1ldGljTWVhblN0YXRzCisgICAg
c3RhdHMgeworICAgICAgfCBzdGF0IHwKKyAgICAgIHN0YXQuYXJpdGhtZXRpY01lYW4KKyAgICB9
CisgIGVuZAorZW5kCisKK21vZHVsZSBCZW5jaG1hcmsKKyAgYXR0cl9hY2Nlc3NvciA6YmVuY2ht
YXJrU3VpdGUKKyAgYXR0cl9yZWFkZXIgOm5hbWUKKyAgCisgIGRlZiBmdWxsbmFtZQorICAgIGJl
bmNobWFya1N1aXRlLm5hbWUgKyAiLyIgKyBuYW1lCisgIGVuZAorICAKKyAgZGVmIHRvX3MKKyAg
ICBmdWxsbmFtZQorICBlbmQKKyAgCisgIGRlZiB3ZWlnaHQKKyAgICAxCisgIGVuZAorICAKKyAg
ZGVmIHdlaWdodFN0cmluZworICAgIHJhaXNlIHVubGVzcyB3ZWlnaHQuaXNfYT8gRml4bnVtCisg
ICAgcmFpc2UgdW5sZXNzIHdlaWdodCA+PSAxCisgICAgaWYgd2VpZ2h0ID09IDEKKyAgICAgICIi
CisgICAgZWxzZQorICAgICAgIngje3dlaWdodH0gIgorICAgIGVuZAorICBlbmQKK2VuZAorCitj
bGFzcyBTdW5TcGlkZXJCZW5jaG1hcmsKKyAgaW5jbHVkZSBCZW5jaG1hcmsKKyAgCisgIGRlZiBp
bml0aWFsaXplKG5hbWUpCisgICAgQG5hbWUgPSBuYW1lCisgIGVuZAorICAKKyAgZGVmIGVtaXRS
dW5Db2RlKHBsYW4pCisgICAgZW1pdEJlbmNoUnVuQ29kZShmdWxsbmFtZSwgcGxhbiwgU2luZ2xl
RmlsZVRpbWVkQmVuY2htYXJrUGFyYW1ldGVycy5uZXcoZW5zdXJlRmlsZSgiU3VuU3BpZGVyLSN7
QG5hbWV9IiwgIiN7U1VOU1BJREVSX1BBVEh9LyN7QG5hbWV9LmpzIikpKQorICBlbmQKK2VuZAor
CitjbGFzcyBMb25nU3BpZGVyQmVuY2htYXJrCisgIGluY2x1ZGUgQmVuY2htYXJrCisgIAorICBk
ZWYgaW5pdGlhbGl6ZShuYW1lKQorICAgIEBuYW1lID0gbmFtZQorICBlbmQKKyAgCisgIGRlZiBl
bWl0UnVuQ29kZShwbGFuKQorICAgIGVtaXRCZW5jaFJ1bkNvZGUoZnVsbG5hbWUsIHBsYW4sIFNp
bmdsZUZpbGVUaW1lZEJlbmNobWFya1BhcmFtZXRlcnMubmV3KGVuc3VyZUZpbGUoIkxvbmdTcGlk
ZXItI3tAbmFtZX0iLCAiI3tMT05HU1BJREVSX1BBVEh9LyN7QG5hbWV9LmpzIikpKQorICBlbmQK
K2VuZAorCitjbGFzcyBWOEJlbmNobWFyaworICBpbmNsdWRlIEJlbmNobWFyaworICAKKyAgZGVm
IGluaXRpYWxpemUobmFtZSkKKyAgICBAbmFtZSA9IG5hbWUKKyAgZW5kCisgIAorICBkZWYgZW1p
dFJ1bkNvZGUocGxhbikKKyAgICBlbWl0QmVuY2hSdW5Db2RlKGZ1bGxuYW1lLCBwbGFuLCBTaW5n
bGVGaWxlVGltZWRCZW5jaG1hcmtQYXJhbWV0ZXJzLm5ldyhlbnN1cmVGaWxlKCJWOC0je0BuYW1l
fSIsICIje1Y4X1BBVEh9L3Y4LSN7QG5hbWV9LmpzIikpKQorICBlbmQKK2VuZAorCitjbGFzcyBW
OFJlYWxCZW5jaG1hcmsKKyAgaW5jbHVkZSBCZW5jaG1hcmsKKyAgCisgIGF0dHJfcmVhZGVyIDp2
OFN1aXRlTmFtZQorICAKKyAgZGVmIGluaXRpYWxpemUodjhTdWl0ZU5hbWUsIG5hbWUsIHdlaWdo
dCwgbWluaW11bUl0ZXJhdGlvbnMpCisgICAgQHY4U3VpdGVOYW1lID0gdjhTdWl0ZU5hbWUKKyAg
ICBAbmFtZSA9IG5hbWUKKyAgICBAd2VpZ2h0ID0gd2VpZ2h0CisgICAgQG1pbmltdW1JdGVyYXRp
b25zID0gbWluaW11bUl0ZXJhdGlvbnMKKyAgZW5kCisgIAorICBkZWYgd2VpZ2h0CisgICAgQHdl
aWdodAorICBlbmQKKyAgCisgIGRlZiBlbWl0UnVuQ29kZShwbGFuKQorICAgIGVtaXRCZW5jaFJ1
bkNvZGUoZnVsbG5hbWUsIHBsYW4sIFRocm91Z2hwdXRCZW5jaG1hcmtQYXJhbWV0ZXJzLm5ldyhb
ImJhc2UiLCBAdjhTdWl0ZU5hbWUsICJqc2MtI3tAbmFtZX0iXS5jb2xsZWN0e3x2fCBlbnN1cmVG
aWxlKCJWOFJlYWwtI3t2fSIsICIje1Y4X1JFQUxfUEFUSH0vI3t2fS5qcyIpfSwgc2ltcGxlQ29t
bWFuZCgianNjU2V0VXAoKTsiKSwgc2ltcGxlQ29tbWFuZCgianNjUnVuKCk7IiksIHNpbXBsZUNv
bW1hbmQoImpzY1RlYXJEb3duKCk7IiksIHRydWUsIGZhbHNlLCBAbWluaW11bUl0ZXJhdGlvbnMp
KQorICBlbmQKK2VuZAorCitjbGFzcyBPY3RhbmVCZW5jaG1hcmsKKyAgaW5jbHVkZSBCZW5jaG1h
cmsKKyAgCisgIGRlZiBpbml0aWFsaXplKGZpbGVzLCBuYW1lLCB3ZWlnaHQsIGRvV2FybXVwLCBk
ZXRlcm1pbmlzdGljLCBtaW5pbXVtSXRlcmF0aW9ucykKKyAgICBAZmlsZXMgPSBmaWxlcworICAg
IEBuYW1lID0gbmFtZQorICAgIEB3ZWlnaHQgPSB3ZWlnaHQKKyAgICBAZG9XYXJtdXAgPSBkb1dh
cm11cAorICAgIEBkZXRlcm1pbmlzdGljID0gZGV0ZXJtaW5pc3RpYworICAgIEBtaW5pbXVtSXRl
cmF0aW9ucyA9IG1pbmltdW1JdGVyYXRpb25zCisgIGVuZAorICAKKyAgZGVmIHdlaWdodAorICAg
IEB3ZWlnaHQKKyAgZW5kCisgIAorICBkZWYgZW1pdFJ1bkNvZGUocGxhbikKKyAgICBmaWxlcyA9
IFtdCisgICAgZmlsZXMgKz0gKFsiYmFzZSJdICsgQGZpbGVzKS5jb2xsZWN0IHsKKyAgICAgIHwg
diB8CisgICAgICBlbnN1cmVGaWxlKCJPY3RhbmUtI3t2fSIsICIje09DVEFORV9QQVRIfS8je3Z9
LmpzIikKKyAgICB9CisgICAgZmlsZXMgKz0gWyJqc2MtI3tAbmFtZX0iXS5jb2xsZWN0IHsKKyAg
ICAgIHwgdiB8CisgICAgICBlbnN1cmVGaWxlKCJPY3RhbmUtI3t2fSIsICIje09DVEFORV9XUkFQ
UEVSX1BBVEh9LyN7dn0uanMiKQorICAgIH0KKyAgICBlbWl0QmVuY2hSdW5Db2RlKGZ1bGxuYW1l
LCBwbGFuLCBUaHJvdWdocHV0QmVuY2htYXJrUGFyYW1ldGVycy5uZXcoZmlsZXMsIHNpbXBsZUNv
bW1hbmQoImpzY1NldFVwKCk7IiksIHNpbXBsZUNvbW1hbmQoImpzY1J1bigpOyIpLCBzaW1wbGVD
b21tYW5kKCJqc2NUZWFyRG93bigpOyIpLCBAZG9XYXJtdXAsIEBkZXRlcm1pbmlzdGljLCBAbWlu
aW11bUl0ZXJhdGlvbnMpKQorICBlbmQKK2VuZAorCitjbGFzcyBLcmFrZW5CZW5jaG1hcmsKKyAg
aW5jbHVkZSBCZW5jaG1hcmsKKyAgCisgIGRlZiBpbml0aWFsaXplKG5hbWUpCisgICAgQG5hbWUg
PSBuYW1lCisgIGVuZAorICAKKyAgZGVmIGVtaXRSdW5Db2RlKHBsYW4pCisgICAgZW1pdEJlbmNo
UnVuQ29kZShmdWxsbmFtZSwgcGxhbiwgTXVsdGlGaWxlVGltZWRCZW5jaG1hcmtQYXJhbWV0ZXJz
Lm5ldyhbZW5zdXJlRmlsZSgiS3Jha2VuRGF0YS0je0BuYW1lfSIsICIje0tSQUtFTl9QQVRIfS8j
e0BuYW1lfS1kYXRhLmpzIildLCBsb2FkQ29tbWFuZEZvckZpbGUoIktyYWtlbi0je0BuYW1lfSIs
ICIje0tSQUtFTl9QQVRIfS8je0BuYW1lfS5qcyIpKSkKKyAgZW5kCitlbmQKKworY2xhc3MgSlNC
ZW5jaEJlbmNobWFyaworICBpbmNsdWRlIEJlbmNobWFyaworICAKKyAgYXR0cl9yZWFkZXIgOmpz
QmVuY2hNb2RlCisgIAorICBkZWYgaW5pdGlhbGl6ZShuYW1lLCBqc0JlbmNoTW9kZSkKKyAgICBA
bmFtZSA9IG5hbWUKKyAgICBAanNCZW5jaE1vZGUgPSBqc0JlbmNoTW9kZQorICBlbmQKKyAgCisg
IGRlZiBlbWl0UnVuQ29kZShwbGFuKQorICAgIGNhbGxiYWNrRGVjbCAgPSAiZnVuY3Rpb24gSlNC
TkdfaGFuZGxlUmVzdWx0KHJlc3VsdCkge1xuIgorICAgIGNhbGxiYWNrRGVjbCArPSAiICAgIGlm
IChyZXN1bHQuZXJyb3IpIHtcbiIKKyAgICBjYWxsYmFja0RlY2wgKz0gIiAgICAgICAgY29uc29s
ZS5sb2coXCJEaWQgbm90IHJ1biBiZW5jaG1hcmsgY29ycmVjdGx5IVwiKTtcbiIKKyAgICBjYWxs
YmFja0RlY2wgKz0gIiAgICAgICAgcXVpdCgpO1xuIgorICAgIGNhbGxiYWNrRGVjbCArPSAiICAg
IH1cbiIKKyAgICBjYWxsYmFja0RlY2wgKz0gIiAgICByZXBvcnRSZXN1bHQocmVzdWx0LnRpbWUp
O1xuIgorICAgIGNhbGxiYWNrRGVjbCArPSAifVxuIgorICAgIGVtaXRCZW5jaFJ1bkNvZGUoZnVs
bG5hbWUsIHBsYW4sIFNpbmdsZUZpbGVUaW1lZENhbGxiYWNrQmVuY2htYXJrUGFyYW1ldGVycy5u
ZXcoY2FsbGJhY2tEZWNsLCBlbnN1cmVGaWxlKCJKU0JlbmNoLSN7QG5hbWV9IiwgIiN7SlNCRU5D
SF9QQVRIfS8je0BuYW1lfS8je0Bqc0JlbmNoTW9kZX0uanMiKSkpCisgIGVuZAorZW5kCisKK2Ns
YXNzIEpTUmVncmVzc0JlbmNobWFyaworICBpbmNsdWRlIEJlbmNobWFyaworICAKKyAgZGVmIGlu
aXRpYWxpemUobmFtZSkKKyAgICBAbmFtZSA9IG5hbWUKKyAgZW5kCisgIAorICBkZWYgZW1pdFJ1
bkNvZGUocGxhbikKKyAgICBlbWl0QmVuY2hSdW5Db2RlKGZ1bGxuYW1lLCBwbGFuLCBTaW5nbGVG
aWxlVGltZWRCZW5jaG1hcmtQYXJhbWV0ZXJzLm5ldyhlbnN1cmVGaWxlKCJKU1JlZ3Jlc3MtI3tA
bmFtZX0iLCAiI3tKU1JFR1JFU1NfUEFUSH0vI3tAbmFtZX0uanMiKSkpCisgIGVuZAorZW5kCisK
K2NsYXNzIEFzbUJlbmNoQmVuY2htYXJrCisgIGluY2x1ZGUgQmVuY2htYXJrCisgIAorICBkZWYg
aW5pdGlhbGl6ZShuYW1lKQorICAgIEBuYW1lID0gbmFtZQorICBlbmQKKyAgCisgIGRlZiBlbWl0
UnVuQ29kZShwbGFuKQorICAgIGVtaXRCZW5jaFJ1bkNvZGUoZnVsbG5hbWUsIHBsYW4sIFNpbmds
ZUZpbGVUaW1lZEJlbmNobWFya1BhcmFtZXRlcnMubmV3KGVuc3VyZUZpbGUoIkFzbUJlbmNoLSN7
QG5hbWV9IiwgIiN7QVNNQkVOQ0hfUEFUSH0vI3tAbmFtZX0uanMiKSkpCisgIGVuZAorZW5kCisK
KworY2xhc3MgQ29tcHJlc3Npb25CZW5jaEJlbmNobWFyaworICBpbmNsdWRlIEJlbmNobWFyawor
ICAKKyAgZGVmIGluaXRpYWxpemUoZmlsZXMsIG5hbWUsIG1vZGVsKQorICAgIEBmaWxlcyA9IGZp
bGVzCisgICAgQG5hbWUgPSBuYW1lOworICAgIEBuYW1lID0gbmFtZSArICItIiArIG1vZGVsIGlm
ICFtb2RlbC5lbXB0eT8KKyAgICBAbmFtZSA9IEBuYW1lLmdzdWIoIiAiLCAiLSIpLmRvd25jYXNl
CisgICAgQHNjcmlwdE5hbWUgPSBuYW1lCisgICAgQHdlaWdodCA9IDEKKyAgICBAZG9XYXJtdXAg
PSB0cnVlCisgICAgQGRldGVybWluaXN0aWMgPSB0cnVlCisgICAgQG1pbmltdW1JdGVyYXRpb25z
ID0gMQorICAgIEBtb2RlbCA9IG1vZGVsCisgIGVuZAorICAKKyAgZGVmIHdlaWdodAorICAgIEB3
ZWlnaHQKKyAgZW5kCisgIAorICBkZWYgZW1pdFJ1bkNvZGUocGxhbikKKyAgICBlbWl0QmVuY2hS
dW5Db2RlKGZ1bGxuYW1lLCBwbGFuLCBUaHJvdWdocHV0QmVuY2htYXJrUGFyYW1ldGVycy5uZXco
KFsiYmFzZSJdICsgQGZpbGVzICsgWyJqc2MtI3tAc2NyaXB0TmFtZX0iXSkuY29sbGVjdHt8dnwg
ZW5zdXJlRmlsZSgiQ29tcHJlc3Npb24tI3t2fSIsICIje0NPTVBSRVNTSU9OQkVOQ0hfUEFUSH0v
I3t2fS5qcyIpfSwgc2ltcGxlQ29tbWFuZCgianNjU2V0VXAoJyN7QG1vZGVsfScpOyIpLCBzaW1w
bGVDb21tYW5kKCJqc2NSdW4oKTsiKSwgc2ltcGxlQ29tbWFuZCgianNjVGVhckRvd24oKTsiKSwg
QGRvV2FybXVwLCBAZGV0ZXJtaW5pc3RpYywgQG1pbmltdW1JdGVyYXRpb25zKSkKKyAgZW5kCitl
bmQKKworY2xhc3MgRFNQSlNGaWx0cnJCZW5jaG1hcmsKKyAgaW5jbHVkZSBCZW5jaG1hcmsKKyAg
CisgIGRlZiBpbml0aWFsaXplKG5hbWUsIGZpbHRlcktleSkKKyAgICBAbmFtZSA9IG5hbWUKKyAg
ICBAZmlsdGVyS2V5ID0gZmlsdGVyS2V5CisgIGVuZAorICAKKyAgZGVmIGVtaXRSdW5Db2RlKHBs
YW4pCisgICAgZW5zdXJlQWJzb2x1dGVGaWxlKERTUEpTX0ZJTFRSUl9QQVRIICsgImZpbHRyci5q
cyIpCisgICAgZW5zdXJlQWJzb2x1dGVGaWxlKERTUEpTX0ZJTFRSUl9QQVRIICsgImZpbHRycl9i
YWNrLmpwZyIpCisgICAgZW5zdXJlQWJzb2x1dGVGaWxlKERTUEpTX0ZJTFRSUl9QQVRIICsgImZp
bHRyci1qcXVlcnkubWluLmpzIikKKyAgICBlbnN1cmVBYnNvbHV0ZUZpbGUoRFNQSlNfRklMVFJS
X1BBVEggKyAiZmlsdHJyLWJlbmNoZXIuaHRtbCIpCisgICAgZW1pdFNlbGZDb250YWluZWRCZW5j
aFJ1bkNvZGUoZnVsbG5hbWUsIHBsYW4sICJmaWx0cnItYmVuY2hlci5odG1sIiwgImJlbmNoZXIt
Y29uZmlnLmpzIiwgQGZpbHRlcktleSkKKyAgZW5kCitlbmQKKworY2xhc3MgRFNQSlNWUDhCZW5j
aG1hcmsKKyAgaW5jbHVkZSBCZW5jaG1hcmsKKyAgCisgIGRlZiBpbml0aWFsaXplCisgICAgQG5h
bWUgPSAicm91dGU5LXZwOCIKKyAgZW5kCisgIAorICBkZWYgd2VpZ2h0CisgICAgNQorICBlbmQK
KyAgCisgIGRlZiBlbWl0UnVuQ29kZShwbGFuKQorICAgIGVuc3VyZUJlbmNobWFya0ZpbGVzKERT
UEpTX1JPVVRFOV9QQVRIKQorICAgIGVtaXRTZWxmQ29udGFpbmVkQmVuY2hSdW5Db2RlKGZ1bGxu
YW1lLCBwbGFuLCAicm91dGU5LWJlbmNoZXIuaHRtbCIsICJiZW5jaGVyLWNvbmZpZy5qcyIsICIi
KQorICBlbmQKK2VuZAorCitjbGFzcyBEU1BTdGFyZmllbGRCZW5jaG1hcmsKKyAgaW5jbHVkZSBC
ZW5jaG1hcmsKKworICBkZWYgaW5pdGlhbGl6ZQorICAgIEBuYW1lID0gInN0YXJmaWVsZCIKKyAg
ZW5kCisgIAorICBkZWYgd2VpZ2h0CisgICAgNQorICBlbmQKKworICBkZWYgZW1pdFJ1bkNvZGUo
cGxhbikKKyAgICBlbnN1cmVCZW5jaG1hcmtGaWxlcyhEU1BKU19TVEFSRklFTERfUEFUSCkKKyAg
ICBlbWl0U2VsZkNvbnRhaW5lZEJlbmNoUnVuQ29kZShmdWxsbmFtZSwgcGxhbiwgInN0YXJmaWVs
ZC1iZW5jaGVyLmh0bWwiLCAiYmVuY2hlci1jb25maWcuanMiLCAiIikKKyAgZW5kCitlbmQKKwor
Y2xhc3MgRFNQSlNKU0xpbnV4QmVuY2htYXJrCisgIGluY2x1ZGUgQmVuY2htYXJrCisgIGRlZiBp
bml0aWFsaXplCisgICAgQG5hbWUgPSAiYmVsbGFyZC1qc2xpbnV4IgorICBlbmQKKworICBkZWYg
d2VpZ2h0CisgICAgNQorICBlbmQKKworICBkZWYgZW1pdFJ1bkNvZGUocGxhbikKKyAgICBlbnN1
cmVCZW5jaG1hcmtGaWxlcyhEU1BKU19KU0xJTlVYX1BBVEgpCisgICAgZW1pdFNlbGZDb250YWlu
ZWRCZW5jaFJ1bkNvZGUoZnVsbG5hbWUsIHBsYW4sICJqc2xpbnV4LWJlbmNoZXIuaHRtbCIsICJi
ZW5jaGVyLWNvbmZpZy5qcyIsICIiKQorICBlbmQKK2VuZAorCitjbGFzcyBEU1BKU1F1YWtlM0Jl
bmNobWFyaworICBpbmNsdWRlIEJlbmNobWFyaworCisgIGRlZiBpbml0aWFsaXplCisgICAgQG5h
bWUgPSAienluYXBzLXF1YWtlMyIKKyAgZW5kCisKKyAgZGVmIHdlaWdodAorICAgIDUKKyAgZW5k
CisKKyAgZGVmIGVtaXRSdW5Db2RlKHBsYW4pCisgICAgZW5zdXJlQmVuY2htYXJrRmlsZXMoRFNQ
SlNfUVVBS0UzX1BBVEgpCisgICAgZW1pdFNlbGZDb250YWluZWRCZW5jaFJ1bkNvZGUoZnVsbG5h
bWUsIHBsYW4sICJxdWFrZS1iZW5jaGVyLmh0bWwiLCAiYmVuY2hlci1jb25maWcuanMiLCAiIikK
KyAgZW5kCitlbmQKKworY2xhc3MgRFNQSlNNYW5kZWxicm90QmVuY2htYXJrCisgIGluY2x1ZGUg
QmVuY2htYXJrCisKKyAgZGVmIGluaXRpYWxpemUKKyAgICBAbmFtZSA9ICJ6eW5hcHMtbWFuZGVs
YnJvdCIKKyAgZW5kCisKKyAgZGVmIHdlaWdodAorICAgIDUKKyAgZW5kCisKKyAgZGVmIGVtaXRS
dW5Db2RlKHBsYW4pCisgICAgZW5zdXJlQmVuY2htYXJrRmlsZXMoRFNQSlNfTUFOREVMQlJPVF9Q
QVRIKQorICAgIGVtaXRTZWxmQ29udGFpbmVkQmVuY2hSdW5Db2RlKGZ1bGxuYW1lLCBwbGFuLCAi
bWFuZGVsYnJvdC1iZW5jaGVyLmh0bWwiLCAiYmVuY2hlci1jb25maWcuanMiLCAiIikKKyAgZW5k
CitlbmQKKworY2xhc3MgRFNQSlNBbW1vSlNBU01CZW5jaG1hcmsKKyAgaW5jbHVkZSBCZW5jaG1h
cmsKKworICBkZWYgaW5pdGlhbGl6ZQorICAgIEBuYW1lID0gImFtbW9qcy1hc20tanMiCisgIGVu
ZAorCisgIGRlZiB3ZWlnaHQKKyAgICA1CisgIGVuZAorCisgIGRlZiBlbWl0UnVuQ29kZShwbGFu
KQorICAgIGVuc3VyZUJlbmNobWFya0ZpbGVzKERTUEpTX0FNTU9KU19BU01KU19QQVRIKQorICAg
IGVtaXRTZWxmQ29udGFpbmVkQmVuY2hSdW5Db2RlKGZ1bGxuYW1lLCBwbGFuLCAiYW1tby1hc21q
cy1iZW5jaGVyLmh0bWwiLCAiYmVuY2hlci1jb25maWcuanMiLCAiIikKKyAgZW5kCitlbmQKKwor
Y2xhc3MgRFNQSlNBbW1vSlNSZWd1bGFyQmVuY2htYXJrCisgIGluY2x1ZGUgQmVuY2htYXJrCisK
KyAgZGVmIGluaXRpYWxpemUKKyAgICBAbmFtZSA9ICJhbW1vanMtcmVndWxhci1qcyIKKyAgZW5k
CisKKyAgZGVmIHdlaWdodAorICAgIDUKKyAgZW5kCisKKyAgZGVmIGVtaXRSdW5Db2RlKHBsYW4p
CisgICAgZW5zdXJlQmVuY2htYXJrRmlsZXMoRFNQSlNfQU1NT0pTX1JFR1VMQVJfUEFUSCkKKyAg
ICBlbWl0U2VsZkNvbnRhaW5lZEJlbmNoUnVuQ29kZShmdWxsbmFtZSwgcGxhbiwgImFtbW8tcmVn
dWxhci1iZW5jaGVyLmh0bWwiLCAiYmVuY2hlci1jb25maWcuanMiLCAiIikKKyAgZW5kCitlbmQK
KworY2xhc3MgQnJvd3Nlcm1hcmtKU0JlbmNobWFyaworICBpbmNsdWRlIEJlbmNobWFyaworICAg
IAorICBkZWYgaW5pdGlhbGl6ZShuYW1lKQorICAgIEBuYW1lID0gbmFtZQorICBlbmQKKyAgCisg
IGRlZiBlbWl0UnVuQ29kZShwbGFuKQorICAgIGVtaXRCZW5jaFJ1bkNvZGUoZnVsbG5hbWUsIHBs
YW4sIFRocm91Z2hwdXRCZW5jaG1hcmtQYXJhbWV0ZXJzLm5ldyhbZW5zdXJlRmlsZShuYW1lLCAi
I3tCUk9XU0VSTUFSS19KU19QQVRIfS8je25hbWV9L3Rlc3QuanMiKSwgZW5zdXJlRmlsZSgiYnJv
d3Nlcm1hcmstYmVuY2hlciIsICIje0JST1dTRVJNQVJLX0pTX1BBVEh9L2Jyb3dzZXJtYXJrLWJl
bmNoZXIuanMiKV0sIHNpbXBsZUNvbW1hbmQoImpzY1NldFVwKCk7IiksIHNpbXBsZUNvbW1hbmQo
ImpzY1J1bigpOyIpLCBzaW1wbGVDb21tYW5kKCJqc2NUZWFyRG93bigpOyIpLCB0cnVlLCAzMikp
CisgIGVuZAorZW5kCisKK2NsYXNzIEJyb3dzZXJtYXJrRE9NQmVuY2htYXJrCisgIGluY2x1ZGUg
QmVuY2htYXJrCisgICAgCisgIGRlZiBpbml0aWFsaXplKG5hbWUpCisgICAgQG5hbWUgPSBuYW1l
CisgIGVuZAorICAKKyAgZGVmIGVtaXRSdW5Db2RlKHBsYW4pCisgICAgZW5zdXJlQmVuY2htYXJr
RmlsZXMoQlJPV1NFUk1BUktfUEFUSCkKKyAgICBlbWl0U2VsZkNvbnRhaW5lZEJlbmNoUnVuQ29k
ZShmdWxsbmFtZSwgcGxhbiwgInRlc3RzL2JlbmNobWFya3MvZG9tLyN7bmFtZX0vaW5kZXguaHRt
bCIsICJiZW5jaGVyLWNvbmZpZy5qcyIsIG5hbWUpCisgIGVuZAorZW5kCisKK2NsYXNzIEJlbmNo
bWFya1N1aXRlCisgIGRlZiBpbml0aWFsaXplKG5hbWUsIHByZWZlcnJlZE1lYW4sIGRlY2ltYWxT
aGlmdCkKKyAgICBAbmFtZSA9IG5hbWUKKyAgICBAcHJlZmVycmVkTWVhbiA9IHByZWZlcnJlZE1l
YW4KKyAgICBAYmVuY2htYXJrcyA9IFtdCisgICAgQHN1YlN1aXRlcyA9IFtdCisgICAgQGRlY2lt
YWxTaGlmdCA9IGRlY2ltYWxTaGlmdAorICBlbmQKKyAgCisgIGRlZiBuYW1lCisgICAgQG5hbWUK
KyAgZW5kCisgIAorICBkZWYgdG9fcworICAgIEBuYW1lCisgIGVuZAorICAKKyAgZGVmIGRlY2lt
YWxTaGlmdAorICAgIEBkZWNpbWFsU2hpZnQKKyAgZW5kCisgIAorICBkZWYgYWRkSWdub3JpbmdQ
YXR0ZXJuKGJlbmNobWFyaykKKyAgICBiZW5jaG1hcmsuYmVuY2htYXJrU3VpdGUgPSBzZWxmCisg
ICAgQGJlbmNobWFya3MgPDwgYmVuY2htYXJrCisgIGVuZAorICAKKyAgZGVmIGFkZChiZW5jaG1h
cmspCisgICAgaWYgbm90ICRiZW5jaG1hcmtQYXR0ZXJuIG9yICIje0BuYW1lfS8je2JlbmNobWFy
ay5uYW1lfSIgPX4gJGJlbmNobWFya1BhdHRlcm4KKyAgICAgICAgYWRkSWdub3JpbmdQYXR0ZXJu
KGJlbmNobWFyaykKKyAgICBlbmQKKyAgZW5kCisgIAorICBkZWYgYWRkU3ViU3VpdGUoc3ViU3Vp
dGUpCisgICAgQHN1YlN1aXRlcyA8PCBzdWJTdWl0ZQorICBlbmQKKyAgCisgIGRlZiBiZW5jaG1h
cmtzCisgICAgQGJlbmNobWFya3MKKyAgZW5kCisgIAorICBkZWYgYmVuY2htYXJrRm9yTmFtZShu
YW1lKQorICAgIHJlc3VsdCA9IEBiZW5jaG1hcmtzLnNlbGVjdHt8dnwgdi5uYW1lID09IG5hbWV9
CisgICAgcmFpc2UgdW5sZXNzIHJlc3VsdC5sZW5ndGggPT0gMQorICAgIHJlc3VsdFswXQorICBl
bmQKKyAgCisgIGRlZiBoYXNCZW5jaG1hcmsoYmVuY2htYXJrKQorICAgIGFycmF5ID0gQGJlbmNo
bWFya3Muc2VsZWN0e3x2fCB2ID09IGJlbmNobWFya30KKyAgICByYWlzZSB1bmxlc3MgYXJyYXku
bGVuZ3RoID09IDEgb3IgYXJyYXkubGVuZ3RoID09IDAKKyAgICBhcnJheS5sZW5ndGggPT0gMQor
ICBlbmQKKyAgCisgIGRlZiBzdWJTdWl0ZXMKKyAgICBAc3ViU3VpdGVzCisgIGVuZAorICAKKyAg
ZGVmIHN1aXRlcworICAgIFtzZWxmXSArIEBzdWJTdWl0ZXMKKyAgZW5kCisgIAorICBkZWYgc3Vp
dGVzV2l0aEJlbmNobWFyayhiZW5jaG1hcmspCisgICAgcmVzdWx0ID0gW3NlbGZdCisgICAgQHN1
YlN1aXRlcy5lYWNoIHsKKyAgICAgIHwgc3ViU3VpdGUgfAorICAgICAgaWYgc3ViU3VpdGUuaGFz
QmVuY2htYXJrKGJlbmNobWFyaykKKyAgICAgICAgcmVzdWx0IDw8IHN1YlN1aXRlCisgICAgICBl
bmQKKyAgICB9CisgICAgcmVzdWx0CisgIGVuZAorICAKKyAgZGVmIGVtcHR5PworICAgIEBiZW5j
aG1hcmtzLmVtcHR5PworICBlbmQKKyAgCisgIGRlZiByZXRhaW5faWYKKyAgICBAYmVuY2htYXJr
cy5kZWxldGVfaWYgeworICAgICAgfCBiZW5jaG1hcmsgfAorICAgICAgbm90IHlpZWxkIGJlbmNo
bWFyaworICAgIH0KKyAgZW5kCisgIAorICBkZWYgcHJlZmVycmVkTWVhbgorICAgIEBwcmVmZXJy
ZWRNZWFuCisgIGVuZAorICAKKyAgZGVmIGNvbXB1dGVNZWFuKHN0YXQpCisgICAgaWYgc3RhdC5v
az8KKyAgICAgIChzdGF0LnNlbmQgQHByZWZlcnJlZE1lYW4pICogKDEwICoqIGRlY2ltYWxTaGlm
dCkKKyAgICBlbHNlCisgICAgICBuaWwKKyAgICBlbmQKKyAgZW5kCitlbmQKKworY2xhc3MgQmVu
Y2hSdW5QbGFuCisgIGRlZiBpbml0aWFsaXplKGJlbmNobWFyaywgdm0sIGl0ZXJhdGlvbikKKyAg
ICBAYmVuY2htYXJrID0gYmVuY2htYXJrCisgICAgQHZtID0gdm0KKyAgICBAaXRlcmF0aW9uID0g
aXRlcmF0aW9uCisgICAgQGVudmlyb25tZW50ID0ge30KKyAgICBpZiAkZW52aXJvbm1lbnQuaGFz
X2tleT8odm0ubmFtZSkKKyAgICAgIGlmICRlbnZpcm9ubWVudFt2bS5uYW1lXS5oYXNfa2V5Pyhi
ZW5jaG1hcmsuYmVuY2htYXJrU3VpdGUubmFtZSkKKyAgICAgICAgaWYgJGVudmlyb25tZW50W3Zt
Lm5hbWVdW2JlbmNobWFyay5iZW5jaG1hcmtTdWl0ZS5uYW1lXS5oYXNfa2V5PyhiZW5jaG1hcmsu
bmFtZSkKKyAgICAgICAgICBAZW52aXJvbm1lbnQgPSAkZW52aXJvbm1lbnRbdm0ubmFtZV1bYmVu
Y2htYXJrLmJlbmNobWFya1N1aXRlLm5hbWVdW2JlbmNobWFyay5uYW1lXQorICAgICAgICBlbmQK
KyAgICAgIGVuZAorICAgIGVuZAorICBlbmQKKyAgCisgIGRlZiBiZW5jaG1hcmsKKyAgICBAYmVu
Y2htYXJrCisgIGVuZAorICAKKyAgZGVmIHN1aXRlCisgICAgQGJlbmNobWFyay5iZW5jaG1hcmtT
dWl0ZQorICBlbmQKKyAgCisgIGRlZiB2bQorICAgIEB2bQorICBlbmQKKyAgCisgIGRlZiBpdGVy
YXRpb24KKyAgICBAaXRlcmF0aW9uCisgIGVuZAorIAorICBkZWYgZW52aXJvbm1lbnQKKyAgICBA
ZW52aXJvbm1lbnQKKyAgZW5kCisgCisgIGRlZiBwcmVmaXgKKyAgICAiI3tAYmVuY2htYXJrLmZ1
bGxuYW1lfTogI3t2bS5uYW1lfTogI3tpdGVyYXRpb259IgorICBlbmQKKyAgCisgIGRlZiBlbWl0
UnVuQ29kZQorICAgIEBiZW5jaG1hcmsuZW1pdFJ1bkNvZGUoc2VsZikKKyAgZW5kCisgIAorICBk
ZWYgdG9fcworICAgIGJlbmNobWFyay50b19zICsgIi8iICsgdm0udG9fcworICBlbmQKK2VuZAor
CitjbGFzcyBCZW5jaG1hcmtPblZNCisgIGRlZiBpbml0aWFsaXplKGJlbmNobWFyaywgc3VpdGVP
blZNLCBzdWJTdWl0ZXNPblZNKQorICAgIEBiZW5jaG1hcmsgPSBiZW5jaG1hcmsKKyAgICBAc3Vp
dGVPblZNID0gc3VpdGVPblZNCisgICAgQHN1YlN1aXRlc09uVk0gPSBzdWJTdWl0ZXNPblZNCisg
ICAgQHN0YXRzID0gU3RhdHMubmV3CisgIGVuZAorICAKKyAgZGVmIHRvX3MKKyAgICAiI3tAYmVu
Y2htYXJrfSBvbiAje0BzdWl0ZU9uVk0udm19IgorICBlbmQKKyAgCisgIGRlZiBiZW5jaG1hcmsK
KyAgICBAYmVuY2htYXJrCisgIGVuZAorICAKKyAgZGVmIHZtCisgICAgQHN1aXRlT25WTS52bQor
ICBlbmQKKyAgCisgIGRlZiB2bVN0YXRzCisgICAgQHN1aXRlT25WTS52bVN0YXRzCisgIGVuZAor
ICAKKyAgZGVmIHN1aXRlCisgICAgQGJlbmNobWFyay5iZW5jaG1hcmtTdWl0ZQorICBlbmQKKyAg
CisgIGRlZiBzdWl0ZU9uVk0KKyAgICBAc3VpdGVPblZNCisgIGVuZAorICAKKyAgZGVmIHN1YlN1
aXRlc09uVk0KKyAgICBAc3ViU3VpdGVzT25WTQorICBlbmQKKyAgCisgIGRlZiBzdGF0cworICAg
IEBzdGF0cworICBlbmQKKyAgCisgIGRlZiBwYXJzZVJlc3VsdChyZXN1bHQpCisgICAgcmFpc2Ug
IlZNIG1pc21hdGNoOyBJJ3ZlIGdvdCAje3ZtfSBhbmQgdGhleSd2ZSBnb3QgI3tyZXN1bHQudm19
IiB1bmxlc3MgcmVzdWx0LnZtID09IHZtCisgICAgcmFpc2UgdW5sZXNzIHJlc3VsdC5iZW5jaG1h
cmsgPT0gQGJlbmNobWFyaworICAgIEBzdGF0cy5hZGQocmVzdWx0LnRpbWUpCisgIGVuZAorZW5k
CisKK2NsYXNzIE5hbWVkU3RhdHNBY2N1bXVsYXRvciA8IFN0YXRzQWNjdW11bGF0b3IKKyAgZGVm
IGluaXRpYWxpemUobmFtZSkKKyAgICBzdXBlcigpCisgICAgQG5hbWUgPSBuYW1lCisgIGVuZAor
ICAKKyAgZGVmIHJlcG9ydGluZ05hbWUKKyAgICBAbmFtZQorICBlbmQKK2VuZAorCitjbGFzcyBT
dWl0ZU9uVk0gPCBTdGF0c0FjY3VtdWxhdG9yCisgIGRlZiBpbml0aWFsaXplKHZtLCB2bVN0YXRz
LCBzdWl0ZSkKKyAgICBzdXBlcigpCisgICAgQHZtID0gdm0KKyAgICBAdm1TdGF0cyA9IHZtU3Rh
dHMKKyAgICBAc3VpdGUgPSBzdWl0ZQorICAgIAorICAgIHJhaXNlIHVubGVzcyBAdm0uaXNfYT8g
Vk0KKyAgICByYWlzZSB1bmxlc3MgQHZtU3RhdHMuaXNfYT8gU3RhdHNBY2N1bXVsYXRvcgorICAg
IHJhaXNlIHVubGVzcyBAc3VpdGUuaXNfYT8gQmVuY2htYXJrU3VpdGUKKyAgZW5kCisgIAorICBk
ZWYgdG9fcworICAgICIje0BzdWl0ZX0gb24gI3tAdm19IgorICBlbmQKKyAgCisgIGRlZiBzdWl0
ZQorICAgIEBzdWl0ZQorICBlbmQKKyAgCisgIGRlZiB2bQorICAgIEB2bQorICBlbmQKKworICBk
ZWYgcmVwb3J0aW5nTmFtZQorICAgIEB2bS5uYW1lCisgIGVuZAorICAKKyAgZGVmIHZtU3RhdHMK
KyAgICByYWlzZSB1bmxlc3MgQHZtU3RhdHMKKyAgICBAdm1TdGF0cworICBlbmQKK2VuZAorCitj
bGFzcyBTdWJTdWl0ZU9uVk0gPCBTdGF0c0FjY3VtdWxhdG9yCisgIGRlZiBpbml0aWFsaXplKHZt
LCBzdWl0ZSkKKyAgICBzdXBlcigpCisgICAgQHZtID0gdm0KKyAgICBAc3VpdGUgPSBzdWl0ZQor
ICAgIHJhaXNlIHVubGVzcyBAdm0uaXNfYT8gVk0KKyAgICByYWlzZSB1bmxlc3MgQHN1aXRlLmlz
X2E/IEJlbmNobWFya1N1aXRlCisgIGVuZAorICAKKyAgZGVmIHRvX3MKKyAgICAiI3tAc3VpdGV9
IG9uICN7QHZtfSIKKyAgZW5kCisgIAorICBkZWYgc3VpdGUKKyAgICBAc3VpdGUKKyAgZW5kCisg
IAorICBkZWYgdm0KKyAgICBAdm0KKyAgZW5kCisgIAorICBkZWYgcmVwb3J0aW5nTmFtZQorICAg
IEB2bS5uYW1lCisgIGVuZAorZW5kCisKK2NsYXNzIEJlbmNoUGxhbgorICBkZWYgaW5pdGlhbGl6
ZShiZW5jaG1hcmtPblZNLCBpdGVyYXRpb24pCisgICAgQGJlbmNobWFya09uVk0gPSBiZW5jaG1h
cmtPblZNCisgICAgQGl0ZXJhdGlvbiA9IGl0ZXJhdGlvbgorICBlbmQKKyAgCisgIGRlZiB0b19z
CisgICAgIiN7QGJlbmNobWFya09uVk19IFwjI3tAaXRlcmF0aW9uKzF9IgorICBlbmQKKyAgCisg
IGRlZiBiZW5jaG1hcmtPblZNCisgICAgQGJlbmNobWFya09uVk0KKyAgZW5kCisgIAorICBkZWYg
YmVuY2htYXJrCisgICAgQGJlbmNobWFya09uVk0uYmVuY2htYXJrCisgIGVuZAorICAKKyAgZGVm
IHN1aXRlCisgICAgQGJlbmNobWFya09uVk0uc3VpdGUKKyAgZW5kCisgIAorICBkZWYgdm0KKyAg
ICBAYmVuY2htYXJrT25WTS52bQorICBlbmQKKyAgCisgIGRlZiBpdGVyYXRpb24KKyAgICBAaXRl
cmF0aW9uCisgIGVuZAorICAKKyAgZGVmIHBhcnNlUmVzdWx0KHJlc3VsdCkKKyAgICByYWlzZSB1
bmxlc3MgcmVzdWx0LnBsYW4gPT0gc2VsZgorICAgIEBiZW5jaG1hcmtPblZNLnBhcnNlUmVzdWx0
KHJlc3VsdCkKKyAgICBiZW5jaG1hcmsud2VpZ2h0LnRpbWVzIHsKKyAgICAgIEBiZW5jaG1hcmtP
blZNLnZtU3RhdHMuc3RhdHNGb3JJdGVyYXRpb24oQGl0ZXJhdGlvbiwgcmVzdWx0LmlubmVySW5k
ZXgpLmFkZChyZXN1bHQudGltZSkKKyAgICAgIEBiZW5jaG1hcmtPblZNLnN1aXRlT25WTS5zdGF0
c0Zvckl0ZXJhdGlvbihAaXRlcmF0aW9uLCByZXN1bHQuaW5uZXJJbmRleCkuYWRkKHJlc3VsdC50
aW1lKQorICAgICAgQGJlbmNobWFya09uVk0uc3ViU3VpdGVzT25WTS5lYWNoIHsKKyAgICAgICAg
fCBzdWJTdWl0ZSB8CisgICAgICAgIHN1YlN1aXRlLnN0YXRzRm9ySXRlcmF0aW9uKEBpdGVyYXRp
b24sIHJlc3VsdC5pbm5lckluZGV4KS5hZGQocmVzdWx0LnRpbWUpCisgICAgICB9CisgICAgfQor
ICBlbmQKK2VuZAorCitkZWYgbHBhZChzdHIsY2hhcnMpCisgIGlmIHN0ci5sZW5ndGg+Y2hhcnMK
KyAgICBzdHIKKyAgZWxzZQorICAgICIlI3tjaGFyc31zIiUoc3RyKQorICBlbmQKK2VuZAorCitk
ZWYgcnBhZChzdHIsY2hhcnMpCisgIHdoaWxlIHN0ci5sZW5ndGggPCBjaGFycworICAgIHN0cis9
IiAiCisgIGVuZAorICBzdHIKK2VuZAorCitkZWYgY2VudGVyKHN0cixjaGFycykKKyAgd2hpbGUg
c3RyLmxlbmd0aDxjaGFycworICAgIHN0cis9IiAiCisgICAgaWYgc3RyLmxlbmd0aDxjaGFycwor
ICAgICAgc3RyPSIgIitzdHIKKyAgICBlbmQKKyAgZW5kCisgIHN0cgorZW5kCisKK2RlZiBzdGF0
c1RvU3RyKHN0YXRzLCBkZWNpbWFsU2hpZnQpCisgIGlmIHN0YXRzLmVycm9yPworICAgIGxwYWQo
Y2VudGVyKCJFUlJPUiIsIDEwKzEwKzIpLCAxMisxMCsyKQorICBlbHNpZiAkaW5uZXIqJG91dGVy
ID09IDEKKyAgICBzdHJpbmcgPSBudW1Ub1N0cihzdGF0cy5tZWFuLCBkZWNpbWFsU2hpZnQpCisg
ICAgcmFpc2UgdW5sZXNzIHN0cmluZyA9fiAvXC4vCisgICAgbGVmdCA9ICR+LnByZV9tYXRjaAor
ICAgIHJpZ2h0ID0gJH4ucG9zdF9tYXRjaAorICAgIGxwYWQobGVmdCwgMTMgLSBkZWNpbWFsU2hp
ZnQpICsgIi4iICsgcnBhZChyaWdodCwgMTAgKyBkZWNpbWFsU2hpZnQpCisgIGVsc2UKKyAgICBs
cGFkKG51bVRvU3RyKHN0YXRzLm1lYW4sIGRlY2ltYWxTaGlmdCksIDEyKSArICIrLSIgKyBycGFk
KG51bVRvU3RyKHN0YXRzLmNvbmZJbnQsIGRlY2ltYWxTaGlmdCksIDEwKQorICBlbmQKK2VuZAor
CitkZWYgcGx1cmFsKG51bSkKKyAgaWYgbnVtID09IDEKKyAgICAiIgorICBlbHNlCisgICAgInMi
CisgIGVuZAorZW5kCisKK2RlZiB3cmFwKHN0ciwgY29sdW1ucykKKyAgYXJyYXkgPSBzdHIuc3Bs
aXQKKyAgcmVzdWx0ID0gIiIKKyAgY3VyTGluZSA9IGFycmF5LnNoaWZ0CisgIGFycmF5LmVhY2gg
eworICAgIHwgY3VyU3RyIHwKKyAgICBpZiAoY3VyTGluZSArICIgIiArIGN1clN0cikuc2l6ZSA+
IGNvbHVtbnMKKyAgICAgIHJlc3VsdCArPSBjdXJMaW5lICsgIlxuIgorICAgICAgY3VyTGluZSA9
IGN1clN0cgorICAgIGVsc2UKKyAgICAgIGN1ckxpbmUgKz0gIiAiICsgY3VyU3RyCisgICAgZW5k
CisgIH0KKyAgcmVzdWx0ICsgY3VyTGluZSArICJcbiIKK2VuZAorICAKK2RlZiBydW5BbmRHZXRS
ZXN1bHRzCisgIHJlc3VsdHMgPSBuaWwKKyAgRGlyLmNoZGlyKEJFTkNIX0RBVEFfUEFUSCkgewor
ICAgICRzdGRlcnIucHV0cyAiPj4gc2ggLi9ydW5zY3JpcHQiIGlmICR2ZXJib3NpdHkgPj0gMgor
ICAgIHJhaXNlICJTY3JpcHQgZGlkIG5vdCBjb21wbGV0ZSBjb3JyZWN0bHk6ICN7JD99IiB1bmxl
c3Mgc3lzdGVtKCJzaCAuL3J1bnNjcmlwdCA+IHJ1bmxvZyIpCisgICAgcmVzdWx0cyA9IElPOjpy
ZWFkKCJydW5sb2ciKQorICB9CisgIHJhaXNlIHVubGVzcyByZXN1bHRzCisgIHJlc3VsdHMKK2Vu
ZAorCitkZWYgcGFyc2VBbmREaXNwbGF5UmVzdWx0cyhyZXN1bHRzKQorICB2bVN0YXRzZXMgPSBb
XQorICAkdm1zLmVhY2ggeworICAgIHwgdm0gfAorICAgIHZtU3RhdHNlcyA8PCBOYW1lZFN0YXRz
QWNjdW11bGF0b3IubmV3KHZtLm5hbWUpCisgIH0KKyAgCisgIHN1aXRlc09uVk1zID0gW10KKyAg
c3VpdGVzT25WTXNGb3JTdWl0ZSA9IHt9CisgIHN1YlN1aXRlc09uVk1zRm9yU3ViU3VpdGUgPSB7
fQorICAkc3VpdGVzLmVhY2ggeworICAgIHwgc3VpdGUgfAorICAgIHN1aXRlc09uVk1zRm9yU3Vp
dGVbc3VpdGVdID0gW10KKyAgICBzdWl0ZS5zdWJTdWl0ZXMuZWFjaCB7CisgICAgICB8IHN1YlN1
aXRlIHwKKyAgICAgIHN1YlN1aXRlc09uVk1zRm9yU3ViU3VpdGVbc3ViU3VpdGVdID0gW10KKyAg
ICB9CisgIH0KKyAgc3VpdGVzT25WTXNGb3JWTSA9IHt9CisgICR2bXMuZWFjaCB7CisgICAgfCB2
bSB8CisgICAgc3VpdGVzT25WTXNGb3JWTVt2bV0gPSBbXQorICB9CisgIAorICBiZW5jaG1hcmtz
T25WTXMgPSBbXQorICBiZW5jaG1hcmtzT25WTXNGb3JCZW5jaG1hcmsgPSB7fQorICAkYmVuY2ht
YXJrcy5lYWNoIHsKKyAgICB8IGJlbmNobWFyayB8CisgICAgYmVuY2htYXJrc09uVk1zRm9yQmVu
Y2htYXJrW2JlbmNobWFya10gPSBbXQorICB9CisgIAorICAkdm1zLmVhY2hfd2l0aF9pbmRleCB7
CisgICAgfCB2bSwgdm1JbmRleCB8CisgICAgdm1TdGF0cyA9IHZtU3RhdHNlc1t2bUluZGV4XQor
ICAgICRzdWl0ZXMuZWFjaCB7CisgICAgICB8IHN1aXRlIHwKKyAgICAgIHN1aXRlT25WTSA9IFN1
aXRlT25WTS5uZXcodm0sIHZtU3RhdHMsIHN1aXRlKQorICAgICAgc3ViU3VpdGVzT25WTSA9IHN1
aXRlLnN1YlN1aXRlcy5tYXAgeworICAgICAgICB8IHN1YlN1aXRlIHwKKyAgICAgICAgcmVzdWx0
ID0gU3ViU3VpdGVPblZNLm5ldyh2bSwgc3ViU3VpdGUpCisgICAgICAgIHN1YlN1aXRlc09uVk1z
Rm9yU3ViU3VpdGVbc3ViU3VpdGVdIDw8IHJlc3VsdAorICAgICAgICByZXN1bHQKKyAgICAgIH0K
KyAgICAgIHN1aXRlc09uVk1zIDw8IHN1aXRlT25WTQorICAgICAgc3VpdGVzT25WTXNGb3JTdWl0
ZVtzdWl0ZV0gPDwgc3VpdGVPblZNCisgICAgICBzdWl0ZXNPblZNc0ZvclZNW3ZtXSA8PCBzdWl0
ZU9uVk0KKyAgICAgIHN1aXRlLmJlbmNobWFya3MuZWFjaCB7CisgICAgICAgIHwgYmVuY2htYXJr
IHwKKyAgICAgICAgc3ViU3VpdGVzT25WTUZvclRoaXNCZW5jaG1hcmsgPSBbXQorICAgICAgICBz
dWJTdWl0ZXNPblZNLmVhY2ggeworICAgICAgICAgIHwgc3ViU3VpdGVPblZNIHwKKyAgICAgICAg
ICBpZiBzdWJTdWl0ZU9uVk0uc3VpdGUuaGFzQmVuY2htYXJrKGJlbmNobWFyaykKKyAgICAgICAg
ICAgIHN1YlN1aXRlc09uVk1Gb3JUaGlzQmVuY2htYXJrIDw8IHN1YlN1aXRlT25WTQorICAgICAg
ICAgIGVuZAorICAgICAgICB9CisgICAgICAgIGJlbmNobWFya09uVk0gPSBCZW5jaG1hcmtPblZN
Lm5ldyhiZW5jaG1hcmssIHN1aXRlT25WTSwgc3ViU3VpdGVzT25WTUZvclRoaXNCZW5jaG1hcmsp
CisgICAgICAgIGJlbmNobWFya3NPblZNcyA8PCBiZW5jaG1hcmtPblZNCisgICAgICAgIGJlbmNo
bWFya3NPblZNc0ZvckJlbmNobWFya1tiZW5jaG1hcmtdIDw8IGJlbmNobWFya09uVk0KKyAgICAg
IH0KKyAgICB9CisgIH0KKyAgCisgIHBsYW5zID0gW10KKyAgYmVuY2htYXJrc09uVk1zLmVhY2gg
eworICAgIHwgYmVuY2htYXJrT25WTSB8CisgICAgJG91dGVyLnRpbWVzIHsKKyAgICAgIHwgaXRl
cmF0aW9uIHwKKyAgICAgIHBsYW5zIDw8IEJlbmNoUGxhbi5uZXcoYmVuY2htYXJrT25WTSwgaXRl
cmF0aW9uKQorICAgIH0KKyAgfQorCisgIGhvc3RuYW1lID0gbmlsCisgIGh3bW9kZWwgPSBuaWwK
KyAgcmVzdWx0cy5lYWNoX2xpbmUgeworICAgIHwgbGluZSB8CisgICAgbGluZS5jaG9tcCEKKyAg
ICBpZiBsaW5lID1+IC9IT1NUTkFNRTooW14uXSspLworICAgICAgaG9zdG5hbWUgPSAkMQorICAg
IGVsc2lmIGxpbmUgPX4gL0hBUkRXQVJFOmh3XC5tb2RlbDogLworICAgICAgaHdtb2RlbCA9ICR+
LnBvc3RfbWF0Y2guY2hvbXAKKyAgICBlbHNlCisgICAgICByZXN1bHQgPSBQYXJzZWRSZXN1bHQu
cGFyc2UocGxhbnMsIGxpbmUpCisgICAgICBpZiByZXN1bHQKKyAgICAgICAgcmVzdWx0LnBsYW4u
cGFyc2VSZXN1bHQocmVzdWx0KQorICAgICAgZW5kCisgICAgZW5kCisgIH0KKyAgCisgICMgQ29t
cHV0ZSB0aGUgZ2VvbWVhbiBvZiB0aGUgcHJlZmVycmVkIG1lYW5zIG9mIHJlc3VsdHMgb24gYSBT
dWl0ZU9uVk0KKyAgb3ZlcmFsbFJlc3VsdHMgPSBbXQorICAkdm1zLmVhY2ggeworICAgIHwgdm0g
fAorICAgIHJlc3VsdCA9IFN0YXRzLm5ldworICAgICRvdXRlci50aW1lcyB7CisgICAgICB8IG91
dGVySW5kZXggfAorICAgICAgJGlubmVyLnRpbWVzIHsKKyAgICAgICAgfCBpbm5lckluZGV4IHwK
KyAgICAgICAgY3VyUmVzdWx0ID0gU3RhdHMubmV3CisgICAgICAgIHN1aXRlc09uVk1zRm9yVk1b
dm1dLmVhY2ggeworICAgICAgICAgIHwgc3VpdGVPblZNIHwKKyAgICAgICAgICAjIEZvciBhIGdp
dmVuIGl0ZXJhdGlvbiwgc3VpdGUsIGFuZCBWTSwgY29tcHV0ZSB0aGUgc3VpdGUncyBwcmVmZXJy
ZWQgbWVhbgorICAgICAgICAgICMgb3ZlciB0aGUgZGF0YSBjb2xsZWN0ZWQgZm9yIGFsbCBiZW5j
aG1hcmtzIGluIHRoYXQgc3VpdGUuIFdlJ2xsIGhhdmUgb25lCisgICAgICAgICAgIyBzYW1wbGUg
cGVyIGJlbmNobWFyay4gRm9yIGV4YW1wbGUgb24gVjggdGhpcyB3aWxsIGJlIHRoZSBnZW9tZWFu
IG9mIDEKKyAgICAgICAgICAjIHNhbXBsZSBmb3IgY3J5cHRvLCAxIHNhbXBsZSBmb3IgZGVsdGFi
bHVlLCBhbmQgc28gb24sIGFuZCAxIHNhbXBsZSBmb3IKKyAgICAgICAgICAjIHNwbGF5LgorICAg
ICAgICAgIGN1clJlc3VsdC5hZGQoc3VpdGVPblZNLnN1aXRlLmNvbXB1dGVNZWFuKHN1aXRlT25W
TS5zdGF0c0Zvckl0ZXJhdGlvbihvdXRlckluZGV4LCBpbm5lckluZGV4KSkpCisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgICMgY3VyUmVzdWx0IG5vdyBob2xkcyAxIHNhbXBsZSBmb3IgZWFj
aCBvZiB0aGUgbWVhbnMgY29tcHV0ZWQgaW4gdGhlIGFib3ZlCisgICAgICAgICMgbG9vcC4gQ29t
cHV0ZSB0aGUgZ2VvbWVhbiBvdmVyIHRoaXMsIGFuZCBzdG9yZSBpdC4KKyAgICAgICAgaWYgY3Vy
UmVzdWx0Lm9rPworICAgICAgICAgIHJlc3VsdC5hZGQoY3VyUmVzdWx0Lmdlb21ldHJpY01lYW4p
CisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXN1bHQuYWRkKG5pbCkKKyAgICAgICAgZW5kCisg
ICAgICB9CisgICAgfQorCisgICAgIyAkb3ZlcmFsbFJlc3VsdHMgd2lsbCBoYXZlIGEgU3RhdHMg
Zm9yIGVhY2ggVk0uIFRoYXQgU3RhdHMgb2JqZWN0IHdpbGwgaG9sZAorICAgICMgJGlubmVyKiRv
dXRlciBnZW9tZWFucywgYWxsb3dpbmcgdXMgdG8gY29tcHV0ZSB0aGUgYXJpdGhtZXRpYyBtZWFu
IGFuZAorICAgICMgY29uZmlkZW5jZSBpbnRlcnZhbCBvZiB0aGUgZ2VvbWVhbnMgb2YgcHJlZmVy
cmVkIG1lYW5zLiBDb252b2x1dGVkLCBidXQKKyAgICAjIHVzZWZ1bCBhbmQgcHJvYmFibHkgc291
bmQuCisgICAgb3ZlcmFsbFJlc3VsdHMgPDwgcmVzdWx0CisgIH0KKyAgCisgIGlmICR2ZXJib3Np
dHkgPj0gMgorICAgIGJlbmNobWFya3NPblZNcy5lYWNoIHsKKyAgICAgIHwgYmVuY2htYXJrT25W
TSB8CisgICAgICAkc3RkZXJyLnB1dHMgIiN7YmVuY2htYXJrT25WTX06ICN7YmVuY2htYXJrT25W
TS5zdGF0c30iCisgICAgfQorICAgIAorICAgICR2bXMuZWFjaF93aXRoX2luZGV4IHsKKyAgICAg
IHwgdm0sIHZtSW5kZXggfAorICAgICAgdm1TdGF0cyA9IHZtU3RhdHNlc1t2bUluZGV4XQorICAg
ICAgJHN0ZGVyci5wdXRzICIje3ZtfSAoYXJpdGhtZXRpY01lYW4pOiAje3ZtU3RhdHMuYXJpdGht
ZXRpY01lYW5TdGF0c30iCisgICAgICAkc3RkZXJyLnB1dHMgIiN7dm19IChnZW9tZXRyaWNNZWFu
KTogI3t2bVN0YXRzLmdlb21ldHJpY01lYW5TdGF0c30iCisgICAgfQorICBlbmQKKworICBpZiAk
b3V0cHV0TmFtZQorICAgIHJlcG9ydE5hbWUgPSAkb3V0cHV0TmFtZQorICBlbHNlCisgICAgcmVw
b3J0TmFtZSA9CisgICAgICAoaWYgKCR2bXMuY29sbGVjdCB7CisgICAgICAgICAgICAgfCB2bSB8
CisgICAgICAgICAgICAgdm0ubmFtZUtpbmQKKyAgICAgICAgICAgfS5pbmRleCA6YXV0bykKKyAg
ICAgICAgICIiCisgICAgICAgZWxzZQorICAgICAgICAgdGV4dCA9ICR2bXMuY29sbGVjdCB7Cisg
ICAgICAgICAgIHwgdm0gfAorICAgICAgICAgICB2bS50b19zCisgICAgICAgICB9LmpvaW4oIl8i
KSArICJfIgorICAgICAgICAgaWYgdGV4dC5zaXplID49IDQwCisgICAgICAgICAgICIiCisgICAg
ICAgICBlbHNlCisgICAgICAgICAgIHRleHQKKyAgICAgICAgIGVuZAorICAgICAgIGVuZCkgKwor
ICAgICAgKCRzdWl0ZXMuY29sbGVjdCB7CisgICAgICAgICB8IHN1aXRlIHwKKyAgICAgICAgIHN1
aXRlLnRvX3MKKyAgICAgICB9LmpvaW4oIiIpKSArICJfIiArCisgICAgICAoaWYgaG9zdG5hbWUK
KyAgICAgICAgIGhvc3RuYW1lICsgIl8iCisgICAgICAgZWxzZQorICAgICAgICAgIiIKKyAgICAg
ICBlbmQpKworICAgICAgKGJlZ2luCisgICAgICAgICB0aW1lID0gVGltZS5ub3cKKyAgICAgICAg
ICIlMDRkJTAyZCUwMmRfJTAyZCUwMmQiICUKKyAgICAgICAgICAgWyB0aW1lLnllYXIsIHRpbWUu
bW9udGgsIHRpbWUuZGF5LAorICAgICAgICAgICAgIHRpbWUuaG91ciwgdGltZS5taW4gXQorICAg
ICAgIGVuZCkKKyAgZW5kCisKKyAgdW5sZXNzICRicmllZgorICAgIHB1dHMgIkdlbmVyYXRpbmcg
YmVuY2htYXJrIHJlcG9ydCBhdCAje0Rpci5wd2R9LyN7cmVwb3J0TmFtZX1fcmVwb3J0LnR4dCIK
KyAgICBwdXRzICJBbmQgcmF3IGRhdGEgYXQgI3tEaXIucHdkfS8je3JlcG9ydE5hbWV9Lmpzb24i
CisgIGVuZAorICAKKyAgb3V0cCA9ICRzdGRvdXQKKyAganNvbiA9IHt9CisgIGJlZ2luCisgICAg
b3V0cCA9IEZpbGUub3BlbihyZXBvcnROYW1lICsgIl9yZXBvcnQudHh0IiwidyIpCisgIHJlc2N1
ZSA9PiBlCisgICAgJHN0ZGVyci5wdXRzICJFcnJvcjogY291bGQgbm90IHNhdmUgcmVwb3J0IHRv
ICN7cmVwb3J0TmFtZX1fcmVwb3J0LnR4dDogI3tlfSIKKyAgICAkc3RkZXJyLnB1dHMKKyAgZW5k
CisgIAorICBkZWYgY3JlYXRlVk1zU3RyaW5nCisgICAgcmVzdWx0ID0gIiIKKyAgICByZXN1bHQg
Kz0gIiAgICIgaWYgJGFsbFN1aXRlcy5zaXplID4gMQorICAgIHJlc3VsdCArPSBycGFkKCIiLCAk
YmVuY2hwYWQgKyAkd2VpZ2h0cGFkKQorICAgIHJlc3VsdCArPSAiICIKKyAgICAkdm1zLnNpemUu
dGltZXMgeworICAgICAgfCBpbmRleCB8CisgICAgICBpZiBpbmRleCAhPSAwCisgICAgICAgIHJl
c3VsdCArPSAiICIrTm9DaGFuZ2UubmV3KDApLnNob3J0Rm9ybQorICAgICAgZW5kCisgICAgICBy
ZXN1bHQgKz0gbHBhZChjZW50ZXIoJHZtc1tpbmRleF0ubmFtZSwgMTArMTArMiksIDEyKzEwKzIp
CisgICAgfQorICAgIHJlc3VsdCArPSAiICAgICIKKyAgICBpZiAkdm1zLnNpemUgPj0gMworICAg
ICAgcmVzdWx0ICs9IGNlbnRlcigiI3skdm1zWy0xXS5uYW1lfSB2LiAjeyR2bXNbMF0ubmFtZX0i
LDI2KQorICAgIGVsc2lmICR2bXMuc2l6ZSA+PSAyCisgICAgICByZXN1bHQgKz0gIiAiKjI2Cisg
ICAgZW5kCisgICAgcmVzdWx0CisgIGVuZAorICAKKyAgZGVmIGFuZEpvaW4obGlzdCkKKyAgICBp
ZiBsaXN0LnNpemUgPT0gMQorICAgICAgbGlzdFswXS50b19zCisgICAgZWxzaWYgbGlzdC5zaXpl
ID09IDIKKyAgICAgICIje2xpc3RbMF19IGFuZCAje2xpc3RbMV19IgorICAgIGVsc2UKKyAgICAg
ICIje2xpc3RbMC4uLTJdLmpvaW4oJywgJyl9LCBhbmQgI3tsaXN0Wy0xXX0iCisgICAgZW5kCisg
IGVuZAorICAKKyAganNvblsidm1zIl0gPSAkdm1zLmNvbGxlY3R7fHZ8IHYubmFtZX0KKyAganNv
blsic3VpdGVzIl0gPSB7fQorICBqc29uWyJydW5sb2ciXSA9IHJlc3VsdHMKKyAgCisgIGNvbHVt
bnMgPSBbY3JlYXRlVk1zU3RyaW5nLnNpemUsIDc4XS5tYXgKKyAgCisgIG91dHAucHJpbnQgIkJl
bmNobWFyayByZXBvcnQgZm9yICIKKyAgb3V0cC5wcmludCBhbmRKb2luKCRzdWl0ZXMpCisgIGlm
IGhvc3RuYW1lCisgICAgb3V0cC5wcmludCAiIG9uICN7aG9zdG5hbWV9IgorICBlbmQKKyAgaWYg
aHdtb2RlbAorICAgIG91dHAucHJpbnQgIiAoI3tod21vZGVsfSkiCisgIGVuZAorICBvdXRwLnB1
dHMgIi4iCisgIG91dHAucHV0cworICAKKyAgb3V0cC5wdXRzICJWTXMgdGVzdGVkOiIKKyAgJHZt
cy5lYWNoIHsKKyAgICB8IHZtIHwKKyAgICBvdXRwLnByaW50ICJcIiN7dm0ubmFtZX1cIiBhdCAj
e3ZtLm9yaWdQYXRofSIKKyAgICBpZiB2bS5zdm5SZXZpc2lvbgorICAgICAgb3V0cC5wcmludCAi
IChyI3t2bS5zdm5SZXZpc2lvbn0pIgorICAgIGVuZAorICAgIG91dHAucHV0cworICAgIHZtLmV4
dHJhRW52LmVhY2hfcGFpciB7CisgICAgICB8IGtleSwgdmFsIHwKKyAgICAgIG91dHAucHV0cyAi
ICAgIGV4cG9ydCAje2tleX09I3t2YWx9IgorICAgIH0KKyAgfQorICAKKyAgb3V0cC5wdXRzCisg
IAorICBvdXRwLnB1dHMgd3JhcCgiQ29sbGVjdGVkICN7JG91dGVyKiRpbm5lcn0gc2FtcGxlI3tw
bHVyYWwoJG91dGVyKiRpbm5lcil9IHBlciBiZW5jaG1hcmsvVk0sICIrCisgICAgICAgICAgICAg
ICAgICJ3aXRoICN7JG91dGVyfSBWTSBpbnZvY2F0aW9uI3twbHVyYWwoJG91dGVyKX0gcGVyIGJl
bmNobWFyay4iKworICAgICAgICAgICAgICAgICAoaWYgJHJlcnVuID4gMSB0aGVuICgiIFJhbiAj
eyRyZXJ1bn0gYmVuY2htYXJrIGl0ZXJhdGlvbnMsIGFuZCBtZWFzdXJlZCB0aGUgIisKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvdGFsIHRpbWUgb2YgdGhvc2UgaXRl
cmF0aW9ucywgZm9yIGVhY2ggc2FtcGxlLiIpCisgICAgICAgICAgICAgICAgICBlbHNlICIiIGVu
ZCkrCisgICAgICAgICAgICAgICAgIChpZiAkbWVhc3VyZUdDID09IHRydWUgdGhlbiAoIiBObyBt
YW51YWwgZ2FyYmFnZSBjb2xsZWN0aW9uIGludm9jYXRpb25zIHdlcmUgIisKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW1pdHRlZC4iKQorICAgICAgICAg
ICAgICAgICAgZWxzaWYgJG1lYXN1cmVHQyB0aGVuICgiIEVtaXR0ZWQgYSBjYWxsIHRvIGdjKCkg
YmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzIGZvciAiKworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYWxsIFZNcyBleGNlcHQgI3skbWVhc3VyZUdDfS4iKQorICAg
ICAgICAgICAgICAgICAgZWxzZSAoIiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4gc2Ft
cGxlIG1lYXN1cmVtZW50cy4iKSBlbmQpKworICAgICAgICAgICAgICAgICAoaWYgJHdhcm11cCA9
PSAwIHRoZW4gKCIgRGlkIG5vdCBpbmNsdWRlIGFueSB3YXJtLXVwIGl0ZXJhdGlvbnM7IG1lYXN1
cmVtZW50cyAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZWdh
biB3aXRoIHRoZSB2ZXJ5IGZpcnN0IGl0ZXJhdGlvbi4iKQorICAgICAgICAgICAgICAgICAgZWxz
ZSAoIiBVc2VkICN7JHdhcm11cCokcmVydW59IGJlbmNobWFyayBpdGVyYXRpb24je3BsdXJhbCgk
d2FybXVwKiRyZXJ1bil9IHBlciBWTSAiKworICAgICAgICAgICAgICAgICAgICAgICAgImludm9j
YXRpb24gZm9yIHdhcm0tdXAuIikgZW5kKSsKKyAgICAgICAgICAgICAgICAgKGNhc2UgJHRpbWVN
b2RlCisgICAgICAgICAgICAgICAgICB3aGVuIDpwcmVjaXNlVGltZSB0aGVuICgiIFVzZWQgdGhl
IGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvIGdldCAiKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pY3Jvc2Vjb25kLWxldmVsIHRpbWlu
Zy4iKQorICAgICAgICAgICAgICAgICAgd2hlbiA6ZGF0ZSB0aGVuICgiIFVzZWQgdGhlIHBvcnRh
YmxlIERhdGUubm93KCkgbWV0aG9kIHRvIGdldCBtaWxsaXNlY29uZC0iKworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibGV2ZWwgdGltaW5nLiIpCisgICAgICAgICAgICAgICAg
ICBlbHNlIHJhaXNlIGVuZCkrCisgICAgICAgICAgICAgICAgICIgUmVwb3J0aW5nIGJlbmNobWFy
ayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5jZSAiKworICAgICAgICAgICAgICAg
ICAiaW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4iLAorICAgICAgICAgICAgICAgICBjb2x1bW5z
KQorICAKKyAgb3V0cC5wdXRzCisgIAorICBkZWYgcHJpbnRWTXMob3V0cCkKKyAgICBvdXRwLnB1
dHMgY3JlYXRlVk1zU3RyaW5nCisgIGVuZAorICAKKyAgZGVmIHN1bW1hcnlTdGF0cyhvdXRwLCBq
c29uLCBqc29uS2V5LCBhY2N1bXVsYXRvcnMsIG5hbWUsIGRlY2ltYWxTaGlmdCwgJnByb2MpCisg
ICAgcmVzdWx0aW5nSnNvbiA9IHt9CisgICAgb3V0cC5wcmludCAiICAgIiBpZiAkYWxsU3VpdGVz
LnNpemUgPiAxCisgICAgb3V0cC5wcmludCBycGFkKG5hbWUsICRiZW5jaHBhZCArICR3ZWlnaHRw
YWQpCisgICAgb3V0cC5wcmludCAiICIKKyAgICBhY2N1bXVsYXRvcnMuc2l6ZS50aW1lcyB7Cisg
ICAgICB8IGluZGV4IHwKKyAgICAgIGlmIGluZGV4ICE9IDAKKyAgICAgICAgb3V0cC5wcmludCAi
ICIrYWNjdW11bGF0b3JzW2luZGV4XS5zdGF0cygmcHJvYykuY29tcGFyZVRvKGFjY3VtdWxhdG9y
c1tpbmRleC0xXS5zdGF0cygmcHJvYykpLnNob3J0Rm9ybQorICAgICAgZW5kCisgICAgICBvdXRw
LnByaW50IHN0YXRzVG9TdHIoYWNjdW11bGF0b3JzW2luZGV4XS5zdGF0cygmcHJvYyksIGRlY2lt
YWxTaGlmdCkKKyAgICAgIHJlc3VsdGluZ0pzb25bYWNjdW11bGF0b3JzW2luZGV4XS5yZXBvcnRp
bmdOYW1lXSA9IGFjY3VtdWxhdG9yc1tpbmRleF0uc3RhdHMoJnByb2MpLmpzb25NYXAKKyAgICB9
CisgICAgaWYgYWNjdW11bGF0b3JzLnNpemU+PTIKKyAgICAgIG91dHAucHJpbnQoIiAgICAiK2Fj
Y3VtdWxhdG9yc1stMV0uc3RhdHMoJnByb2MpLmNvbXBhcmVUbyhhY2N1bXVsYXRvcnNbMF0uc3Rh
dHMoJnByb2MpKS5sb25nRm9ybSkKKyAgICBlbmQKKyAgICBvdXRwLnB1dHMKKyAgICBqc29uW2pz
b25LZXldID0gcmVzdWx0aW5nSnNvbgorICBlbmQKKyAgCisgIGRlZiBtZWFuTmFtZShjdXJyZW50
TWVhbiwgcHJlZmVycmVkTWVhbikKKyAgICByZXN1bHQgPSAiPCN7Y3VycmVudE1lYW59PiIKKyAg
ICBpZiAiI3tjdXJyZW50TWVhbn1NZWFuIiA9PSBwcmVmZXJyZWRNZWFuLnRvX3MKKyAgICAgIHJl
c3VsdCArPSAiICoiCisgICAgZW5kCisgICAgcmVzdWx0CisgIGVuZAorICAKKyAgZGVmIGFsbFN1
bW1hcnlTdGF0cyhvdXRwLCBqc29uLCBhY2N1bXVsYXRvcnMsIHByZWZlcnJlZE1lYW4sIGRlY2lt
YWxTaGlmdCkKKyAgICBzdW1tYXJ5U3RhdHMob3V0cCwganNvbiwgIjxhcml0aG1ldGljPiIsIGFj
Y3VtdWxhdG9ycywgbWVhbk5hbWUoImFyaXRobWV0aWMiLCBwcmVmZXJyZWRNZWFuKSwgZGVjaW1h
bFNoaWZ0KSB7CisgICAgICB8IHN0YXQgfAorICAgICAgc3RhdC5hcml0aG1ldGljTWVhbgorICAg
IH0KKyAgICAKKyAgICBzdW1tYXJ5U3RhdHMob3V0cCwganNvbiwgIjxnZW9tZXRyaWM+IiwgYWNj
dW11bGF0b3JzLCBtZWFuTmFtZSgiZ2VvbWV0cmljIiwgcHJlZmVycmVkTWVhbiksIGRlY2ltYWxT
aGlmdCkgeworICAgICAgfCBzdGF0IHwKKyAgICAgIHN0YXQuZ2VvbWV0cmljTWVhbgorICAgIH0K
KyAgICAKKyAgICBzdW1tYXJ5U3RhdHMob3V0cCwganNvbiwgIjxoYXJtb25pYz4iLCBhY2N1bXVs
YXRvcnMsIG1lYW5OYW1lKCJoYXJtb25pYyIsIHByZWZlcnJlZE1lYW4pLCBkZWNpbWFsU2hpZnQp
IHsKKyAgICAgIHwgc3RhdCB8CisgICAgICBzdGF0Lmhhcm1vbmljTWVhbgorICAgIH0KKyAgZW5k
CisgIAorICAkc3VpdGVzLmVhY2ggeworICAgIHwgc3VpdGUgfAorICAgIHN1aXRlSnNvbiA9IHt9
CisgICAgc3ViU3VpdGVKc29ucyA9IHt9CisgICAgc3VpdGUuc3ViU3VpdGVzLmVhY2ggeworICAg
ICAgfCBzdWJTdWl0ZSB8CisgICAgICBzdWJTdWl0ZUpzb25zW3N1YlN1aXRlXSA9IHt9CisgICAg
fQorICAgIAorICAgIHByaW50Vk1zKG91dHApCisgICAgaWYgJGFsbFN1aXRlcy5zaXplID4gMQor
ICAgICAgb3V0cC5wdXRzKGFuZEpvaW4oc3VpdGUuc3VpdGVzLm1hcHt8dnwgdi5uYW1lfSkgKyAi
OiIpCisgICAgZWxzZQorICAgICAgb3V0cC5wdXRzCisgICAgZW5kCisgICAgc3VpdGUuYmVuY2ht
YXJrcy5lYWNoIHsKKyAgICAgIHwgYmVuY2htYXJrIHwKKyAgICAgIGJlbmNobWFya0pzb24gPSB7
fQorICAgICAgb3V0cC5wcmludCAiICAgIiBpZiAkYWxsU3VpdGVzLnNpemUgPiAxCisgICAgICBv
dXRwLnByaW50IHJwYWQoYmVuY2htYXJrLm5hbWUsICRiZW5jaHBhZCkgKyBycGFkKGJlbmNobWFy
ay53ZWlnaHRTdHJpbmcsICR3ZWlnaHRwYWQpCisgICAgICBpZiBiZW5jaG1hcmsubmFtZS5zaXpl
ID4gJGJlbmNoTmFtZUNsaXAKKyAgICAgICAgb3V0cC5wdXRzCisgICAgICAgIG91dHAucHJpbnQg
IiAgICIgaWYgJGFsbFN1aXRlcy5zaXplID4gMQorICAgICAgICBvdXRwLnByaW50KCgiICIgKiAk
YmVuY2hwYWQpICsgKCIgIiAqICR3ZWlnaHRwYWQpKQorICAgICAgZW5kCisgICAgICBvdXRwLnBy
aW50ICIgIgorICAgICAgbXlDb25maWdzID0gYmVuY2htYXJrc09uVk1zRm9yQmVuY2htYXJrW2Jl
bmNobWFya10KKyAgICAgIG15Q29uZmlncy5zaXplLnRpbWVzIHsKKyAgICAgICAgfCBpbmRleCB8
CisgICAgICAgIGlmIGluZGV4ICE9IDAKKyAgICAgICAgICBvdXRwLnByaW50ICIgIitteUNvbmZp
Z3NbaW5kZXhdLnN0YXRzLmNvbXBhcmVUbyhteUNvbmZpZ3NbaW5kZXgtMV0uc3RhdHMpLnNob3J0
Rm9ybQorICAgICAgICBlbmQKKyAgICAgICAgb3V0cC5wcmludCBzdGF0c1RvU3RyKG15Q29uZmln
c1tpbmRleF0uc3RhdHMsIHN1aXRlLmRlY2ltYWxTaGlmdCkKKyAgICAgICAgYmVuY2htYXJrSnNv
bltteUNvbmZpZ3NbaW5kZXhdLnZtLm5hbWVdID0gbXlDb25maWdzW2luZGV4XS5zdGF0cy5qc29u
TWFwCisgICAgICB9CisgICAgICBpZiAkdm1zLnNpemU+PTIKKyAgICAgICAgb3V0cC5wcmludCgi
ICAgICIrbXlDb25maWdzWy0xXS5zdGF0cy5jb21wYXJlVG8obXlDb25maWdzWzBdLnN0YXRzKS50
b19zKQorICAgICAgZW5kCisgICAgICBvdXRwLnB1dHMKKyAgICAgIHN1aXRlSnNvbltiZW5jaG1h
cmsubmFtZV0gPSBiZW5jaG1hcmtKc29uCisgICAgICBzdWl0ZS5zdWJTdWl0ZXMuZWFjaCB7Cisg
ICAgICAgIHwgc3ViU3VpdGUgfAorICAgICAgICBpZiBzdWJTdWl0ZS5oYXNCZW5jaG1hcmsoYmVu
Y2htYXJrKQorICAgICAgICAgIHN1YlN1aXRlSnNvbnNbc3ViU3VpdGVdW2JlbmNobWFyay5uYW1l
XSA9IGJlbmNobWFya0pzb24KKyAgICAgICAgZW5kCisgICAgICB9CisgICAgfQorICAgIG91dHAu
cHV0cworICAgIHVubGVzcyBzdWl0ZS5zdWJTdWl0ZXMuZW1wdHk/CisgICAgICBzdWl0ZS5zdWJT
dWl0ZXMuZWFjaCB7CisgICAgICAgIHwgc3ViU3VpdGUgfAorICAgICAgICBvdXRwLnB1dHMgIiN7
c3ViU3VpdGUubmFtZX06IgorICAgICAgICBhbGxTdW1tYXJ5U3RhdHMob3V0cCwgc3ViU3VpdGVK
c29uc1tzdWJTdWl0ZV0sIHN1YlN1aXRlc09uVk1zRm9yU3ViU3VpdGVbc3ViU3VpdGVdLCBzdWJT
dWl0ZS5wcmVmZXJyZWRNZWFuLCBzdWJTdWl0ZS5kZWNpbWFsU2hpZnQpCisgICAgICAgIG91dHAu
cHV0cworICAgICAgfQorICAgICAgb3V0cC5wdXRzICIje3N1aXRlLm5hbWV9IGluY2x1ZGluZyAj
e2FuZEpvaW4oc3VpdGUuc3ViU3VpdGVzLm1hcHt8dnwgdi5uYW1lfSl9OiIKKyAgICBlbmQKKyAg
ICBhbGxTdW1tYXJ5U3RhdHMob3V0cCwgc3VpdGVKc29uLCBzdWl0ZXNPblZNc0ZvclN1aXRlW3N1
aXRlXSwgc3VpdGUucHJlZmVycmVkTWVhbiwgc3VpdGUuZGVjaW1hbFNoaWZ0KQorICAgIG91dHAu
cHV0cyBpZiAkYWxsU3VpdGVzLnNpemUgPiAxCisgICAgCisgICAganNvblsic3VpdGVzIl1bc3Vp
dGUubmFtZV0gPSBzdWl0ZUpzb24KKyAgICBzdWl0ZS5zdWJTdWl0ZXMuZWFjaCB7CisgICAgICB8
IHN1YlN1aXRlIHwKKyAgICAgIGpzb25bInN1aXRlcyJdW3N1YlN1aXRlLm5hbWVdID0gc3ViU3Vp
dGVKc29uc1tzdWJTdWl0ZV0KKyAgICB9CisgIH0KKyAgCisgIGlmICRzdWl0ZXMuc2l6ZSA+IDEK
KyAgICBwcmludFZNcyhvdXRwKQorICAgIG91dHAucHV0cyAiQWxsIGJlbmNobWFya3M6IgorICAg
IGFsbFN1bW1hcnlTdGF0cyhvdXRwLCBqc29uLCB2bVN0YXRzZXMsIG5pbCwgMCkKKyAgICAKKyAg
ICBzY2FsZWRSZXN1bHRKc29uID0ge30KKyAgICAKKyAgICBvdXRwLnB1dHMKKyAgICBwcmludFZN
cyhvdXRwKQorICAgIG91dHAucHV0cyAiR2VvbWVhbiBvZiBwcmVmZXJyZWQgbWVhbnM6IgorICAg
IG91dHAucHJpbnQgIiAgICIKKyAgICBvdXRwLnByaW50IHJwYWQoIjxzY2FsZWQtcmVzdWx0PiIs
ICRiZW5jaHBhZCArICR3ZWlnaHRwYWQpCisgICAgb3V0cC5wcmludCAiICIKKyAgICAkdm1zLnNp
emUudGltZXMgeworICAgICAgfCBpbmRleCB8CisgICAgICBpZiBpbmRleCAhPSAwCisgICAgICAg
IG91dHAucHJpbnQgIiAiK292ZXJhbGxSZXN1bHRzW2luZGV4XS5jb21wYXJlVG8ob3ZlcmFsbFJl
c3VsdHNbaW5kZXgtMV0pLnNob3J0Rm9ybQorICAgICAgZW5kCisgICAgICBvdXRwLnByaW50IHN0
YXRzVG9TdHIob3ZlcmFsbFJlc3VsdHNbaW5kZXhdLCAwKQorICAgICAgc2NhbGVkUmVzdWx0SnNv
blskdm1zW2luZGV4XS5uYW1lXSA9IG92ZXJhbGxSZXN1bHRzW2luZGV4XS5qc29uTWFwCisgICAg
fQorICAgIGlmIG92ZXJhbGxSZXN1bHRzLnNpemU+PTIKKyAgICAgIG91dHAucHJpbnQoIiAgICAi
K292ZXJhbGxSZXN1bHRzWy0xXS5jb21wYXJlVG8ob3ZlcmFsbFJlc3VsdHNbMF0pLmxvbmdGb3Jt
KQorICAgIGVuZAorICAgIG91dHAucHV0cworICAgIAorICAgIGpzb25bIjxzY2FsZWQtcmVzdWx0
PiJdID0gc2NhbGVkUmVzdWx0SnNvbgorICBlbmQKKyAgb3V0cC5wdXRzCisgIAorICBpZiBvdXRw
ICE9ICRzdGRvdXQKKyAgICBvdXRwLmNsb3NlCisgIGVuZAorICAKKyAgaWYgb3V0cCAhPSAkc3Rk
b3V0IGFuZCBub3QgJGJyaWVmCisgICAgcHV0cworICAgIEZpbGUub3BlbihyZXBvcnROYW1lICsg
Il9yZXBvcnQudHh0IikgeworICAgICAgfCBpbnAgfAorICAgICAgcHV0cyBpbnAucmVhZAorICAg
IH0KKyAgZW5kCisgIAorICBpZiAkYnJpZWYKKyAgICBwdXRzKG92ZXJhbGxSZXN1bHRzLmNvbGxl
Y3R7fHN0YXRzfCBzdGF0cy5tZWFufS5qb2luKCJcdCIpKQorICAgIHB1dHMob3ZlcmFsbFJlc3Vs
dHMuY29sbGVjdHt8c3RhdHN8IHN0YXRzLmNvbmZJbnR9LmpvaW4oIlx0IikpCisgIGVuZAorICAK
KyAgRmlsZS5vcGVuKHJlcG9ydE5hbWUgKyAiLmpzb24iLCAidyIpIHsKKyAgICB8IG91dHAgfAor
ICAgIG91dHAucHV0cyBqc29uLnRvX2pzb24KKyAgfQorZW5kCisKK2JlZ2luCisgICRzYXdCZW5j
aE9wdGlvbnMgPSBmYWxzZQorICAKKyAgZGVmIHJlc2V0QmVuY2hPcHRpb25zSWZOZWNlc3NhcnkK
KyAgICB1bmxlc3MgJHNhd0JlbmNoT3B0aW9ucworICAgICAgJGluY2x1ZGVTdW5TcGlkZXIgPSBm
YWxzZQorICAgICAgJGluY2x1ZGVMb25nU3BpZGVyID0gZmFsc2UKKyAgICAgICRpbmNsdWRlVjgg
PSBmYWxzZQorICAgICAgJGluY2x1ZGVLcmFrZW4gPSBmYWxzZQorICAgICAgJGluY2x1ZGVKU0Jl
bmNoID0gZmFsc2UKKyAgICAgICRpbmNsdWRlSlNSZWdyZXNzID0gZmFsc2UKKyAgICAgICRpbmNs
dWRlQXNtQmVuY2ggPSBmYWxzZQorICAgICAgJGluY2x1ZGVEU1BKUyA9IGZhbHNlCisgICAgICAk
aW5jbHVkZUJyb3dzZXJtYXJrSlMgPSBmYWxzZQorICAgICAgJGluY2x1ZGVCcm93c2VybWFya0RP
TSA9IGZhbHNlCisgICAgICAkaW5jbHVkZU9jdGFuZSA9IGZhbHNlCisgICAgICAkaW5jbHVkZUNv
bXByZXNzaW9uQmVuY2ggPSBmYWxzZQorICAgICAgJHNhd0JlbmNoT3B0aW9ucyA9IHRydWUKKyAg
ICBlbmQKKyAgZW5kCisgIAorICBHZXRvcHRMb25nLm5ldyhbJy0tcmVydW4nLCBHZXRvcHRMb25n
OjpSRVFVSVJFRF9BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1pbm5lcicsIEdldG9w
dExvbmc6OlJFUVVJUkVEX0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgICAgWyctLW91dGVyJywg
R2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAorICAgICAgICAgICAgICAgICBbJy0td2Fy
bXVwJywgR2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAorICAgICAgICAgICAgICAgICBb
Jy0tbm8tc3Mtd2FybXVwJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAorICAgICAgICAgICAg
ICAgICBbJy0tcXVhbnR1bScsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FSR1VNRU5UXSwKKyAgICAg
ICAgICAgICAgICAgWyctLW1pbmltdW0nLCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0s
CisgICAgICAgICAgICAgICAgIFsnLS10aW1pbmctbW9kZScsIEdldG9wdExvbmc6OlJFUVVJUkVE
X0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgICAgWyctLXN1bnNwaWRlcicsIEdldG9wdExvbmc6
Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgICAgWyctLWxvbmdzcGlkZXInLCBHZXRvcHRM
b25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS12OC1zcGlkZXInLCBHZXRv
cHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1rcmFrZW4nLCBHZXRv
cHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1qcy1iZW5jaCcsIEdl
dG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgICAgWyctLWpzLXJlZ3Jlc3Mn
LCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1hc20tYmVu
Y2gnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1kc3An
LCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1icm93c2Vy
bWFyay1qcycsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgICAgWyct
LWJyb3dzZXJtYXJrLWRvbScsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAg
ICAgICAgWyctLW9jdGFuZScsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAg
ICAgICAgWyctLWNvbXByZXNzaW9uLWJlbmNoJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAor
ICAgICAgICAgICAgICAgICBbJy0tYmVuY2htYXJrcycsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FS
R1VNRU5UXSwKKyAgICAgICAgICAgICAgICAgWyctLW1lYXN1cmUtZ2MnLCBHZXRvcHRMb25nOjpP
UFRJT05BTF9BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1mb3JjZS12bS1raW5kJywg
R2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAorICAgICAgICAgICAgICAgICBbJy0tZm9y
Y2Utdm0tY29weScsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgICAg
WyctLWRvbnQtY29weS12bXMnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAgICAgICAg
ICAgICAgIFsnLS12ZXJib3NlJywgJy12JywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAorICAg
ICAgICAgICAgICAgICBbJy0tYnJpZWYnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAg
ICAgICAgICAgICAgIFsnLS1zaWxlbnQnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCisgICAg
ICAgICAgICAgICAgIFsnLS1yZW1vdGUnLCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0s
CisgICAgICAgICAgICAgICAgIFsnLS1sb2NhbCcsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwK
KyAgICAgICAgICAgICAgICAgWyctLXNzaC1vcHRpb25zJywgR2V0b3B0TG9uZzo6UkVRVUlSRURf
QVJHVU1FTlRdLAorICAgICAgICAgICAgICAgICBbJy0tc2xhdmUnLCBHZXRvcHRMb25nOjpOT19B
UkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1wcmVwYXJlLW9ubHknLCBHZXRvcHRMb25n
OjpOT19BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsnLS1hbmFseXplJywgR2V0b3B0TG9u
Zzo6UkVRVUlSRURfQVJHVU1FTlRdLAorICAgICAgICAgICAgICAgICBbJy0tdm1zJywgR2V0b3B0
TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAorICAgICAgICAgICAgICAgICBbJy0tb3V0cHV0LW5h
bWUnLCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCisgICAgICAgICAgICAgICAgIFsn
LS1lbnZpcm9ubWVudCcsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FSR1VNRU5UXSwKKyAgICAgICAg
ICAgICAgICAgWyctLWNvbmZpZycsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FSR1VNRU5UXSwKKyAg
ICAgICAgICAgICAgICAgWyctLWhlbHAnLCAnLWgnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0p
LmVhY2ggeworICAgIHwgb3B0LCBhcmcgfAorICAgIGNhc2Ugb3B0CisgICAgd2hlbiAnLS1yZXJ1
bicKKyAgICAgICRyZXJ1biA9IGludEFyZyhvcHQsYXJnLDEsbmlsKQorICAgIHdoZW4gJy0taW5u
ZXInCisgICAgICAkaW5uZXIgPSBpbnRBcmcob3B0LGFyZywxLG5pbCkKKyAgICB3aGVuICctLW91
dGVyJworICAgICAgJG91dGVyID0gaW50QXJnKG9wdCxhcmcsMSxuaWwpCisgICAgd2hlbiAnLS13
YXJtdXAnCisgICAgICAkd2FybXVwID0gaW50QXJnKG9wdCxhcmcsMCxuaWwpCisgICAgd2hlbiAn
LS1uby1zcy13YXJtdXAnCisgICAgICAkc3VuU3BpZGVyV2FybXVwID0gZmFsc2UKKyAgICB3aGVu
ICctLXF1YW50dW0nCisgICAgICAkcXVhbnR1bSA9IGludEFyZyhvcHQsYXJnLDEsbmlsKQorICAg
IHdoZW4gJy0tbWluaW11bScKKyAgICAgICRtaW5pbXVtID0gaW50QXJnKG9wdCxhcmcsMSxuaWwp
CisgICAgd2hlbiAnLS10aW1pbmctbW9kZScKKyAgICAgIGlmIGFyZy51cGNhc2UgPT0gIlBSRUNJ
U0VUSU1FIgorICAgICAgICAkdGltZU1vZGUgPSA6cHJlY2lzZVRpbWUKKyAgICAgIGVsc2lmIGFy
Zy51cGNhc2UgPT0gIkRBVEUiCisgICAgICAgICR0aW1lTW9kZSA9IDpkYXRlCisgICAgICBlbHNp
ZiBhcmcudXBjYXNlID09ICJBVVRPIgorICAgICAgICAkdGltZU1vZGUgPSA6YXV0bworICAgICAg
ZWxzZQorICAgICAgICBxdWlja0ZhaWwoIkV4cGVjdGVkIGVpdGhlciAncHJlY2lzZVRpbWUnLCAn
ZGF0ZScsIG9yICdhdXRvJyBmb3IgLS10aW1lLW1vZGUsIGJ1dCBnb3QgJyN7YXJnfScuIiwKKyAg
ICAgICAgICAgICAgICAgICJJbnZhbGlkIGFyZ3VtZW50IGZvciBjb21tYW5kLWxpbmUgb3B0aW9u
IikKKyAgICAgIGVuZAorICAgIHdoZW4gJy0tZm9yY2Utdm0ta2luZCcKKyAgICAgIGlmIGFyZy51
cGNhc2UgPT0gIkpTQyIKKyAgICAgICAgJGZvcmNlVk1LaW5kID0gOmpzYworICAgICAgZWxzaWYg
YXJnLnVwY2FzZSA9PSAiRFVNUFJFTkRFUlRSRUUiCisgICAgICAgICRmb3JjZVZNS2luZCA9IDpk
dW1wUmVuZGVyVHJlZQorICAgICAgZWxzaWYgYXJnLnVwY2FzZSA9PSAiV0VCS0lUVEVTVFJVTk5F
UiIKKyAgICAgICAgJGZvcmNlVk1LaW5kID0gOndlYmtpdFRlc3RSdW5uZXIKKyAgICAgIGVsc2lm
IGFyZy51cGNhc2UgPT0gIkFVVE8iCisgICAgICAgICRmb3JjZVZNS2luZCA9IG5pbAorICAgICAg
ZWxzZQorICAgICAgICBxdWlja0ZhaWwoIkV4cGVjdGVkICdqc2MnLCAnRHVtcFJlbmRlclRyZWUn
LCBvciAnV2ViS2l0VGVzdFJ1bm5lcicgZm9yIC0tZm9yY2Utdm0ta2luZCwgYnV0IGdvdCAnI3th
cmd9Jy4iLAorICAgICAgICAgICAgICAgICAgIkludmFsaWQgYXJndW1lbnQgZm9yIGNvbW1hbmQt
bGluZSBvcHRpb24iKQorICAgICAgZW5kCisgICAgd2hlbiAnLS1mb3JjZS12bS1jb3B5JworICAg
ICAgJG5lZWRUb0NvcHlWTXMgPSB0cnVlCisgICAgd2hlbiAnLS1kb250LWNvcHktdm1zJworICAg
ICAgJGRvbnRDb3B5Vk1zID0gdHJ1ZQorICAgIHdoZW4gJy0tc3Vuc3BpZGVyJworICAgICAgcmVz
ZXRCZW5jaE9wdGlvbnNJZk5lY2Vzc2FyeQorICAgICAgJGluY2x1ZGVTdW5TcGlkZXIgPSB0cnVl
CisgICAgd2hlbiAnLS1sb25nc3BpZGVyJworICAgICAgcmVzZXRCZW5jaE9wdGlvbnNJZk5lY2Vz
c2FyeQorICAgICAgJGluY2x1ZGVMb25nU3BpZGVyID0gdHJ1ZQorICAgIHdoZW4gJy0tdjgtc3Bp
ZGVyJworICAgICAgcmVzZXRCZW5jaE9wdGlvbnNJZk5lY2Vzc2FyeQorICAgICAgJGluY2x1ZGVW
OCA9IHRydWUKKyAgICB3aGVuICctLWtyYWtlbicKKyAgICAgIHJlc2V0QmVuY2hPcHRpb25zSWZO
ZWNlc3NhcnkKKyAgICAgICRpbmNsdWRlS3Jha2VuID0gdHJ1ZQorICAgIHdoZW4gJy0tanMtYmVu
Y2gnCisgICAgICByZXNldEJlbmNoT3B0aW9uc0lmTmVjZXNzYXJ5CisgICAgICAkaW5jbHVkZUpT
QmVuY2ggPSB0cnVlCisgICAgd2hlbiAnLS1qcy1yZWdyZXNzJworICAgICAgcmVzZXRCZW5jaE9w
dGlvbnNJZk5lY2Vzc2FyeQorICAgICAgJGluY2x1ZGVKU1JlZ3Jlc3MgPSB0cnVlCisgICAgd2hl
biAnLS1hc20tYmVuY2gnCisgICAgICByZXNldEJlbmNoT3B0aW9uc0lmTmVjZXNzYXJ5CisgICAg
ICAkaW5jbHVkZUFzbUJlbmNoID0gdHJ1ZQorICAgIHdoZW4gJy0tZHNwJworICAgICAgcmVzZXRC
ZW5jaE9wdGlvbnNJZk5lY2Vzc2FyeQorICAgICAgJGluY2x1ZGVEU1BKUyA9IHRydWUKKyAgICB3
aGVuICctLWJyb3dzZXJtYXJrLWpzJworICAgICAgcmVzZXRCZW5jaE9wdGlvbnNJZk5lY2Vzc2Fy
eQorICAgICAgJGluY2x1ZGVCcm93c2VybWFya0pTID0gdHJ1ZQorICAgIHdoZW4gJy0tYnJvd3Nl
cm1hcmstZG9tJworICAgICAgcmVzZXRCZW5jaE9wdGlvbnNJZk5lY2Vzc2FyeQorICAgICAgJGlu
Y2x1ZGVCcm93c2VybWFya0RPTSA9IHRydWUKKyAgICB3aGVuICctLW9jdGFuZScKKyAgICAgIHJl
c2V0QmVuY2hPcHRpb25zSWZOZWNlc3NhcnkKKyAgICAgICRpbmNsdWRlT2N0YW5lID0gdHJ1ZQor
ICAgIHdoZW4gJy0tY29tcHJlc3Npb24tYmVuY2gnCisgICAgICByZXNldEJlbmNoT3B0aW9uc0lm
TmVjZXNzYXJ5CisgICAgICAkaW5jbHVkZUNvbXByZXNzaW9uQmVuY2ggPSB0cnVlCisgICAgd2hl
biAnLS1iZW5jaG1hcmtzJworICAgICAgJGJlbmNobWFya1BhdHRlcm4gPSBSZWdleHAubmV3KGFy
ZykKKyAgICB3aGVuICctLW1lYXN1cmUtZ2MnCisgICAgICBpZiBhcmcgPT0gJycKKyAgICAgICAg
JG1lYXN1cmVHQyA9IHRydWUKKyAgICAgIGVsc2UKKyAgICAgICAgJG1lYXN1cmVHQyA9IGFyZwor
ICAgICAgZW5kCisgICAgd2hlbiAnLS12ZXJib3NlJworICAgICAgJHZlcmJvc2l0eSArPSAxCisg
ICAgd2hlbiAnLS1icmllZicKKyAgICAgICRicmllZiA9IHRydWUKKyAgICB3aGVuICctLXNpbGVu
dCcKKyAgICAgICRzaWxlbnQgPSB0cnVlCisgICAgd2hlbiAnLS1yZW1vdGUnCisgICAgICAkcmVt
b3RlSG9zdHMgKz0gYXJnLnNwbGl0KCcsJykKKyAgICAgICRuZWVkVG9Db3B5Vk1zID0gdHJ1ZQor
ICAgIHdoZW4gJy0tc3NoLW9wdGlvbnMnCisgICAgICAkc3NoT3B0aW9ucyA8PCBhcmcKKyAgICB3
aGVuICctLWxvY2FsJworICAgICAgJGFsc29Mb2NhbCA9IHRydWUKKyAgICB3aGVuICctLXByZXBh
cmUtb25seScKKyAgICAgICRydW4gPSBmYWxzZQorICAgIHdoZW4gJy0tYW5hbHl6ZScKKyAgICAg
ICRwcmVwYXJlID0gZmFsc2UKKyAgICAgICRydW4gPSBmYWxzZQorICAgICAgJGFuYWx5emUgPDwg
YXJnCisgICAgd2hlbiAnLS1vdXRwdXQtbmFtZScKKyAgICAgICRvdXRwdXROYW1lID0gYXJnCisg
ICAgd2hlbiAnLS12bXMnCisgICAgICBKU09OOjpwYXJzZShJTzo6cmVhZChhcmcpKS5lYWNoIHsK
KyAgICAgICAgfCB2bURlc2NyaXB0aW9uIHwKKyAgICAgICAgcGF0aCA9IFBhdGhuYW1lLm5ldyh2
bURlc2NyaXB0aW9uWyJwYXRoIl0pLnJlYWxwYXRoCisgICAgICAgIGlmIHZtRGVzY3JpcHRpb25b
Im5hbWUiXQorICAgICAgICAgIG5hbWUgPSB2bURlc2NyaXB0aW9uWyJuYW1lIl0KKyAgICAgICAg
ICBuYW1lS2luZCA9IDpnaXZlbgorICAgICAgICBlbHNlCisgICAgICAgICAgbmFtZSA9ICJDb25m
XCMjeyR2bXMubGVuZ3RoKzF9IgorICAgICAgICAgIG5hbWVLaW5kID0gOmF1dG8KKyAgICAgICAg
ZW5kCisgICAgICAgIHZtID0gVk0ubmV3KHBhdGgsIG5hbWUsIG5hbWVLaW5kLCBuaWwpCisgICAg
ICAgIGlmIHZtRGVzY3JpcHRpb25bImVudiJdCisgICAgICAgICAgdm1EZXNjcmlwdGlvblsiZW52
Il0uZWFjaF9wYWlyIHsKKyAgICAgICAgICAgIHwga2V5LCB2YWwgfAorICAgICAgICAgICAgdm0u
YWRkRXh0cmFFbnYoa2V5LCB2YWwpCisgICAgICAgICAgfQorICAgICAgICBlbmQKKyAgICAgICAg
JHZtcyA8PCB2bQorICAgICAgfQorICAgIHdoZW4gJy0tZW52aXJvbm1lbnQnCisgICAgICAkZW52
aXJvbm1lbnQgPSBKU09OOjpwYXJzZShJTzo6cmVhZChhcmcpKQorICAgIHdoZW4gJy0tY29uZmln
JworICAgICAgJGNvbmZpZ1BhdGggPSBQYXRobmFtZS5uZXcoYXJnKQorICAgIHdoZW4gJy0taGVs
cCcKKyAgICAgIHVzYWdlCisgICAgZWxzZQorICAgICAgcmFpc2UgImJhZCBvcHRpb246ICN7b3B0
fSIKKyAgICBlbmQKKyAgfQorICAKKyAgIyBGaWd1cmUgb3V0IHRoZSBjb25maWd1cmF0aW9uCisg
IGlmICRjb25maWdQYXRoLmZpbGU/CisgICAgY29uZmlnID0gSlNPTjo6cGFyc2UoSU86OnJlYWQo
JGNvbmZpZ1BhdGgudG9fcykpCisgIGVsc2UKKyAgICBjb25maWcgPSB7fQorICBlbmQKKyAgT0NU
QU5FX1BBVEggPSBjb25maWdbIk9jdGFuZVBhdGgiXQorICBCUk9XU0VSTUFSS19QQVRIID0gY29u
ZmlnWyJCcm93c2VyTWFya1BhdGgiXQorICBCUk9XU0VSTUFSS19KU19QQVRIID0gY29uZmlnWyJC
cm93c2VyTWFya0pTUGF0aCJdCisgIEJST1dTRVJNQVJLX0RPTV9QQVRIID0gY29uZmlnWyJCcm93
c2VyTWFya0RPTVBhdGgiXQorICBBU01CRU5DSF9QQVRIID0gY29uZmlnWyJBc21CZW5jaFBhdGgi
XQorICBDT01QUkVTU0lPTkJFTkNIX1BBVEggPSBjb25maWdbIkNvbXByZXNzaW9uQmVuY2hQYXRo
Il0KKyAgRFNQSlNfRklMVFJSX1BBVEggPSBjb25maWdbIkRTUEpTRmlsdHJyUGF0aCJdCisgIERT
UEpTX1JPVVRFOV9QQVRIID0gY29uZmlnWyJEU1BKU1JvdXRlOVBhdGgiXQorICBEU1BKU19TVEFS
RklFTERfUEFUSCA9IGNvbmZpZ1siRFNQSlNTdGFyZmllbGRQYXRoIl0KKyAgRFNQSlNfUVVBS0Uz
X1BBVEggPSBjb25maWdbIkRTUEpTUXVha2UzUGF0aCJdCisgIERTUEpTX01BTkRFTEJST1RfUEFU
SCA9IGNvbmZpZ1siRFNQSlNNYW5kZWxicm90UGF0aCJdCisgIERTUEpTX0pTTElOVVhfUEFUSCA9
IGNvbmZpZ1siRFNQSlNMaW51eFBhdGgiXQorICBEU1BKU19BTU1PSlNfQVNNSlNfUEFUSCA9IGNv
bmZpZ1siRFNQSlNBbW1vSlNBc21KU1BhdGgiXQorICBEU1BKU19BTU1PSlNfUkVHVUxBUl9QQVRI
ID0gY29uZmlnWyJEU1BKU0FtbW9KU1JlZ3VsYXJQYXRoIl0KKyAgSlNCRU5DSF9QQVRIID0gY29u
ZmlnWyJKU0JlbmNoUGF0aCJdCisgIEtSQUtFTl9QQVRIID0gY29uZmlnWyJLcmFrZW5QYXRoIl0K
KyAgCisgICMgSWYgdGhlIC0tZG9udC1jb3B5LXZtcyBvcHRpb24gd2FzIHBhc3NlZCwgaXQgb3Zl
cnJpZGVzIHRoZSAtLWZvcmNlLXZtLWNvcHkgb3B0aW9uLgorICBpZiAkZG9udENvcHlWTXMKKyAg
ICAkbmVlZFRvQ29weVZNcyA9IGZhbHNlCisgIGVuZAorICAKKyAgQVJHVi5lYWNoIHsKKyAgICB8
IHZtIHwKKyAgICBpZiB2bSA9fiAvKFthLXpBLVowLTlfIF0rKTovCisgICAgICBuYW1lID0gJDEK
KyAgICAgIG5hbWVLaW5kID0gOmdpdmVuCisgICAgICB2bSA9ICR+LnBvc3RfbWF0Y2gKKyAgICBl
bHNlCisgICAgICBuYW1lID0gIkNvbmZcIyN7JHZtcy5sZW5ndGgrMX0iCisgICAgICBuYW1lS2lu
ZCA9IDphdXRvCisgICAgZW5kCisgICAgZW52cyA9IFtdCisgICAgd2hpbGUgdm0gPX4gLyhbYS16
QS1aMC05X10rKT0oW2EtekEtWjAtOV86XSspOi8KKyAgICAgIGVudnMgPDwgWyQxLCAkMl0KKyAg
ICAgIHZtID0gJH4ucG9zdF9tYXRjaAorICAgIGVuZAorICAgICRzdGRlcnIucHV0cyAiI3tuYW1l
fTogI3t2bX0iIGlmICR2ZXJib3NpdHkgPj0gMQorICAgIHZtID0gVk0ubmV3KFBhdGhuYW1lLm5l
dyh2bSkucmVhbHBhdGgsIG5hbWUsIG5hbWVLaW5kLCBuaWwpCisgICAgZW52cy5lYWNoIHsKKyAg
ICAgIHwgcGFpciB8CisgICAgICB2bS5hZGRFeHRyYUVudihwYWlyWzBdLCBwYWlyWzFdKQorICAg
IH0KKyAgICAkdm1zIDw8IHZtCisgIH0KKyAgCisgIGlmICR2bXMuZW1wdHk/CisgICAgcXVpY2tG
YWlsKCJQbGVhc2Ugc3BlY2lmeSBhdCBsZWFzdCBvbiBjb25maWd1cmFpdG9uIG9uIHRoZSBjb21t
YW5kIGxpbmUuIiwKKyAgICAgICAgICAgICAgIkluc3VmZmljaWVudCBhcmd1bWVudHMiKQorICBl
bmQKKyAgCisgICR2bXMuZWFjaCB7CisgICAgfCB2bSB8CisgICAgaWYgdm0udm1UeXBlID09IDpq
c2MKKyAgICAgICRhbGxEUlQgPSBmYWxzZQorICAgIGVuZAorICB9CisgIAorICBTVU5TUElERVIg
PSBCZW5jaG1hcmtTdWl0ZS5uZXcoIlN1blNwaWRlciIsIDphcml0aG1ldGljTWVhbiwgMCkKKyAg
V0FSTVVQID0gQmVuY2htYXJrU3VpdGUubmV3KCJXQVJNVVAiLCA6YXJpdGhtZXRpY01lYW4sIDAp
CisgIFsiM2QtY3ViZSIsICIzZC1tb3JwaCIsICIzZC1yYXl0cmFjZSIsICJhY2Nlc3MtYmluYXJ5
LXRyZWVzIiwKKyAgICJhY2Nlc3MtZmFubmt1Y2giLCAiYWNjZXNzLW5ib2R5IiwgImFjY2Vzcy1u
c2lldmUiLAorICAgImJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSIsICJiaXRvcHMtYml0cy1pbi1i
eXRlIiwgImJpdG9wcy1iaXR3aXNlLWFuZCIsCisgICAiYml0b3BzLW5zaWV2ZS1iaXRzIiwgImNv
bnRyb2xmbG93LXJlY3Vyc2l2ZSIsICJjcnlwdG8tYWVzIiwKKyAgICJjcnlwdG8tbWQ1IiwgImNy
eXB0by1zaGExIiwgImRhdGUtZm9ybWF0LXRvZnRlIiwgImRhdGUtZm9ybWF0LXhwYXJiIiwKKyAg
ICJtYXRoLWNvcmRpYyIsICJtYXRoLXBhcnRpYWwtc3VtcyIsICJtYXRoLXNwZWN0cmFsLW5vcm0i
LCAicmVnZXhwLWRuYSIsCisgICAic3RyaW5nLWJhc2U2NCIsICJzdHJpbmctZmFzdGEiLCAic3Ry
aW5nLXRhZ2Nsb3VkIiwKKyAgICJzdHJpbmctdW5wYWNrLWNvZGUiLCAic3RyaW5nLXZhbGlkYXRl
LWlucHV0Il0uZWFjaCB7CisgICAgfCBuYW1lIHwKKyAgICBTVU5TUElERVIuYWRkIFN1blNwaWRl
ckJlbmNobWFyay5uZXcobmFtZSkKKyAgICBXQVJNVVAuYWRkSWdub3JpbmdQYXR0ZXJuIFN1blNw
aWRlckJlbmNobWFyay5uZXcobmFtZSkKKyAgfQorCisgIExPTkdTUElERVIgPSBCZW5jaG1hcmtT
dWl0ZS5uZXcoIkxvbmdTcGlkZXIiLCA6Z2VvbWV0cmljTWVhbiwgMCkKKyAgWyIzZC1jdWJlIiwg
IjNkLW1vcnBoIiwgIjNkLXJheXRyYWNlIiwgImFjY2Vzcy1iaW5hcnktdHJlZXMiLAorICAgImFj
Y2Vzcy1mYW5ua3VjaCIsICJhY2Nlc3MtbmJvZHkiLCAiYWNjZXNzLW5zaWV2ZSIsCisgICAiYml0
b3BzLTNiaXQtYml0cy1pbi1ieXRlIiwgImJpdG9wcy1iaXRzLWluLWJ5dGUiLCAiYml0b3BzLW5z
aWV2ZS1iaXRzIiwKKyAgICJjb250cm9sZmxvdy1yZWN1cnNpdmUiLCAiY3J5cHRvLWFlcyIsICJj
cnlwdG8tbWQ1IiwgImNyeXB0by1zaGExIiwKKyAgICJkYXRlLWZvcm1hdC10b2Z0ZSIsICJkYXRl
LWZvcm1hdC14cGFyYiIsICJtYXRoLWNvcmRpYyIsCisgICAibWF0aC1wYXJ0aWFsLXN1bXMiLCAi
bWF0aC1zcGVjdHJhbC1ub3JtIiwgInN0cmluZy1iYXNlNjQiLAorICAgInN0cmluZy1mYXN0YSIs
ICJzdHJpbmctdGFnY2xvdWQiXS5lYWNoIHsKKyAgICB8IG5hbWUgfAorICAgIExPTkdTUElERVIu
YWRkIExvbmdTcGlkZXJCZW5jaG1hcmsubmV3KG5hbWUpCisgIH0KKworICBWOCA9IEJlbmNobWFy
a1N1aXRlLm5ldygiVjhTcGlkZXIiLCA6Z2VvbWV0cmljTWVhbiwgMCkKKyAgWyJjcnlwdG8iLCAi
ZGVsdGFibHVlIiwgImVhcmxleS1ib3llciIsICJyYXl0cmFjZSIsCisgICAicmVnZXhwIiwgInJp
Y2hhcmRzIiwgInNwbGF5Il0uZWFjaCB7CisgICAgfCBuYW1lIHwKKyAgICBWOC5hZGQgVjhCZW5j
aG1hcmsubmV3KG5hbWUpCisgIH0KKworICBPQ1RBTkUgPSBCZW5jaG1hcmtTdWl0ZS5uZXcoIk9j
dGFuZSIsIDpnZW9tZXRyaWNNZWFuLCAxKQorICBbW1siY3J5cHRvIl0sICJlbmNyeXB0IiwgMSwg
dHJ1ZSwgZmFsc2UsIDMyXSwKKyAgIFtbImNyeXB0byJdLCAiZGVjcnlwdCIsIDEsIHRydWUsIGZh
bHNlLCAzMl0sCisgICBbWyJkZWx0YWJsdWUiXSwgImRlbHRhYmx1ZSIsIDIsIHRydWUsIGZhbHNl
LCAzMl0sCisgICBbWyJlYXJsZXktYm95ZXIiXSwgImVhcmxleSIsIDEsIHRydWUsIGZhbHNlLCAz
Ml0sCisgICBbWyJlYXJsZXktYm95ZXIiXSwgImJveWVyIiwgMSwgdHJ1ZSwgZmFsc2UsIDMyXSwK
KyAgIFtbIm5hdmllci1zdG9rZXMiXSwgIm5hdmllci1zdG9rZXMiLCAyLCB0cnVlLCBmYWxzZSwg
MTZdLAorICAgW1sicmF5dHJhY2UiXSwgInJheXRyYWNlIiwgMiwgdHJ1ZSwgZmFsc2UsIDMyXSwK
KyAgIFtbInJpY2hhcmRzIl0sICJyaWNoYXJkcyIsIDIsIHRydWUsIGZhbHNlLCAzMl0sCisgICBb
WyJzcGxheSJdLCAic3BsYXkiLCAyLCB0cnVlLCBmYWxzZSwgMzJdLAorICAgW1sicmVnZXhwIl0s
ICJyZWdleHAiLCAyLCBmYWxzZSwgZmFsc2UsIDE2XSwKKyAgIFtbInBkZmpzIl0sICJwZGZqcyIs
IDIsIGZhbHNlLCBmYWxzZSwgNF0sCisgICBbWyJtYW5kcmVlbCJdLCAibWFuZHJlZWwiLCAyLCBm
YWxzZSwgZmFsc2UsIDRdLAorICAgW1siZ2JlbXUtcGFydDEiLCAiZ2JlbXUtcGFydDIiXSwgImdi
ZW11IiwgMiwgZmFsc2UsIGZhbHNlLCA0XSwKKyAgIFtbImNvZGUtbG9hZCJdLCAiY2xvc3VyZSIs
IDEsIGZhbHNlLCBmYWxzZSwgMTZdLAorICAgW1siY29kZS1sb2FkIl0sICJqcXVlcnkiLCAxLCBm
YWxzZSwgZmFsc2UsIDE2XSwKKyAgIFtbImJveDJkIl0sICJib3gyZCIsIDIsIGZhbHNlLCBmYWxz
ZSwgOF0sCisgICBbWyJ6bGliIiwgInpsaWItZGF0YSJdLCAiemxpYiIsIDIsIGZhbHNlLCB0cnVl
LCAzXSwKKyAgIFtbInR5cGVzY3JpcHQiLCAidHlwZXNjcmlwdC1pbnB1dCIsICJ0eXBlc2NyaXB0
LWNvbXBpbGVyIl0sICJ0eXBlc2NyaXB0IiwgMiwgZmFsc2UsIHRydWUsIDFdXS5lYWNoIHsKKyAg
ICB8IGFyZ3MgfAorICAgIE9DVEFORS5hZGQgT2N0YW5lQmVuY2htYXJrLm5ldygqYXJncykKKyAg
fQorCisgIEtSQUtFTiA9IEJlbmNobWFya1N1aXRlLm5ldygiS3Jha2VuIiwgOmFyaXRobWV0aWNN
ZWFuLCAtMSkKKyAgWyJhaS1hc3RhciIsICJhdWRpby1iZWF0LWRldGVjdGlvbiIsICJhdWRpby1k
ZnQiLCAiYXVkaW8tZmZ0IiwKKyAgICJhdWRpby1vc2NpbGxhdG9yIiwgImltYWdpbmctZGFya3Jv
b20iLCAiaW1hZ2luZy1kZXNhdHVyYXRlIiwKKyAgICJpbWFnaW5nLWdhdXNzaWFuLWJsdXIiLCAi
anNvbi1wYXJzZS1maW5hbmNpYWwiLAorICAgImpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCIsICJz
dGFuZm9yZC1jcnlwdG8tYWVzIiwKKyAgICJzdGFuZm9yZC1jcnlwdG8tY2NtIiwgInN0YW5mb3Jk
LWNyeXB0by1wYmtkZjIiLAorICAgInN0YW5mb3JkLWNyeXB0by1zaGEyNTYtaXRlcmF0aXZlIl0u
ZWFjaCB7CisgICAgfCBuYW1lIHwKKyAgICBLUkFLRU4uYWRkIEtyYWtlbkJlbmNobWFyay5uZXco
bmFtZSkKKyAgfQorICAKKyAgSlNCRU5DSCA9IEJlbmNobWFya1N1aXRlLm5ldygiSlNCZW5jaCIs
IDphcml0aG1ldGljTWVhbiwgMCkKKyAgW1siYW1hem9uIiwgInVybSJdLCBbImZhY2Vib29rIiwg
InVyZW0iXSwgWyJnb29nbGUiLCAidXJlbSJdLCBbInR3aXR0ZXIiLCAidXJlbSJdLAorICAgWyJ5
YWhvbyIsICJ1cmVtIl1dLmVhY2ggeworICAgIHwgbmFtZUFuZE1vZGUgfAorICAgIEpTQkVOQ0gu
YWRkIEpTQmVuY2hCZW5jaG1hcmsubmV3KCpuYW1lQW5kTW9kZSkKKyAgfQorICAKKyAgSlNSRUdS
RVNTID0gQmVuY2htYXJrU3VpdGUubmV3KCJKU1JlZ3Jlc3MiLCA6Z2VvbWV0cmljTWVhbiwgMCkK
KyAgRGlyLmZvcmVhY2goSlNSRUdSRVNTX1BBVEgpIHsKKyAgICB8IGZpbGVuYW1lIHwKKyAgICBp
ZiBmaWxlbmFtZSA9fiAvXC5qcyQvCisgICAgICBuYW1lID0gJH4ucHJlX21hdGNoCisgICAgICBK
U1JFR1JFU1MuYWRkIEpTUmVncmVzc0JlbmNobWFyay5uZXcobmFtZSkKKyAgICBlbmQKKyAgfQor
ICAKKyAgQVNNQkVOQ0ggPSBCZW5jaG1hcmtTdWl0ZS5uZXcoIkFzbUJlbmNoIiwgOmdlb21ldHJp
Y01lYW4sIDApCisgIGlmIEpTQkVOQ0hfUEFUSAorICAgIERpci5mb3JlYWNoKEFTTUJFTkNIX1BB
VEgpIHsKKyAgICAgIHwgZmlsZW5hbWUgfAorICAgICAgaWYgZmlsZW5hbWUgPX4gL1wuanMkLwor
ICAgICAgICBuYW1lID0gJH4ucHJlX21hdGNoCisgICAgICAgIEFTTUJFTkNILmFkZCBBc21CZW5j
aEJlbmNobWFyay5uZXcobmFtZSkKKyAgICAgIGVuZAorICAgIH0KKyAgZW5kCisKKyAgQ09NUFJF
U1NJT05CRU5DSCA9IEJlbmNobWFya1N1aXRlLm5ldygiQ29tcHJlc3Npb25CZW5jaCIsIDpnZW9t
ZXRyaWNNZWFuLCAwKQorICBbW1siaHVmZm1hbiIsICJjb21wcmVzc2lvbi1kYXRhIl0sICJodWZm
bWFuIiwgIiJdLAorICAgW1siYXJpdGhtZXRpYyIsICJjb21wcmVzc2lvbi1kYXRhIl0sICJhcml0
aG1ldGljIiwgIlNpbXBsZSJdLAorICAgW1siYXJpdGhtZXRpYyIsICJjb21wcmVzc2lvbi1kYXRh
Il0sICJhcml0aG1ldGljIiwgIlByZWNpc2UiXSwKKyAgIFtbImFyaXRobWV0aWMiLCAiY29tcHJl
c3Npb24tZGF0YSJdLCAiYXJpdGhtZXRpYyIsICJDb21wbGV4IFByZWNpc2UiXSwKKyAgIFtbImFy
aXRobWV0aWMiLCAiY29tcHJlc3Npb24tZGF0YSJdLCAiYXJpdGhtZXRpYyIsICJQcmVjaXNlIE9y
ZGVyIDAiXSwKKyAgIFtbImFyaXRobWV0aWMiLCAiY29tcHJlc3Npb24tZGF0YSJdLCAiYXJpdGht
ZXRpYyIsICJQcmVjaXNlIE9yZGVyIDEiXSwKKyAgIFtbImFyaXRobWV0aWMiLCAiY29tcHJlc3Np
b24tZGF0YSJdLCAiYXJpdGhtZXRpYyIsICJQcmVjaXNlIE9yZGVyIDIiXSwKKyAgIFtbImFyaXRo
bWV0aWMiLCAiY29tcHJlc3Npb24tZGF0YSJdLCAiYXJpdGhtZXRpYyIsICJTaW1wbGUgT3JkZXIg
MSJdLAorICAgW1siYXJpdGhtZXRpYyIsICJjb21wcmVzc2lvbi1kYXRhIl0sICJhcml0aG1ldGlj
IiwgIlNpbXBsZSBPcmRlciAyIl0sCisgICBbWyJsei1zdHJpbmciLCAiY29tcHJlc3Npb24tZGF0
YSJdLCAibHotc3RyaW5nIiwgIiJdCisgIF0uZWFjaCB7CisgICAgfCBhcmdzIHwKKyAgICBDT01Q
UkVTU0lPTkJFTkNILmFkZCBDb21wcmVzc2lvbkJlbmNoQmVuY2htYXJrLm5ldygqYXJncykKKyAg
fQorCisgIERTUEpTID0gQmVuY2htYXJrU3VpdGUubmV3KCJEU1AiLCA6Z2VvbWV0cmljTWVhbiwg
MCkKKyAgRFNQSlMuYWRkIERTUEpTRmlsdHJyQmVuY2htYXJrLm5ldygiZmlsdHJyLXBvc3Rlcml6
ZS10aW50IiwgImUyIikKKyAgRFNQSlMuYWRkIERTUEpTRmlsdHJyQmVuY2htYXJrLm5ldygiZmls
dHJyLXRpbnQtY29udHJhc3Qtc2F0LWJyaWdodCIsICJlNSIpCisgIERTUEpTLmFkZCBEU1BKU0Zp
bHRyckJlbmNobWFyay5uZXcoImZpbHRyci10aW50LXNhdC1hZGotY29udHItbXVsdCIsICJlNyIp
CisgIERTUEpTLmFkZCBEU1BKU0ZpbHRyckJlbmNobWFyay5uZXcoImZpbHRyci1ibHVyLW92ZXJs
YXktc2F0LWNvbnRyIiwgImU4IikKKyAgRFNQSlMuYWRkIERTUEpTRmlsdHJyQmVuY2htYXJrLm5l
dygiZmlsdHJyLXNhdC1ibHVyLW11bHQtc2hhcnBlbi1jb250ciIsICJlOSIpCisgIERTUEpTLmFk
ZCBEU1BKU0ZpbHRyckJlbmNobWFyay5uZXcoImZpbHRyci1zZXBpYS1iaWFzIiwgImUxMCIpCisg
IERTUEpTLmFkZCBEU1BKU1ZQOEJlbmNobWFyay5uZXcKKyAgRFNQSlMuYWRkIERTUFN0YXJmaWVs
ZEJlbmNobWFyay5uZXcKKyAgRFNQSlMuYWRkIERTUEpTSlNMaW51eEJlbmNobWFyay5uZXcKKyAg
RFNQSlMuYWRkIERTUEpTUXVha2UzQmVuY2htYXJrLm5ldworICBEU1BKUy5hZGQgRFNQSlNNYW5k
ZWxicm90QmVuY2htYXJrLm5ldworICBEU1BKUy5hZGQgRFNQSlNBbW1vSlNBU01CZW5jaG1hcmsu
bmV3CisgIERTUEpTLmFkZCBEU1BKU0FtbW9KU1JlZ3VsYXJCZW5jaG1hcmsubmV3CisKKyAgQlJP
V1NFUk1BUktfSlMgPSBCZW5jaG1hcmtTdWl0ZS5uZXcoIkJyb3dzZXJtYXJrSlMiLCA6Z2VvbWV0
cmljTWVhbiwgMSkKKyAgWyJhcnJheV9ibHVyIiwgImFycmF5X3dlaWdodGVkIiwgInN0cmluZ19j
aGF0IiwgInN0cmluZ19maWx0ZXIiLCAic3RyaW5nX3dlaWdodGVkIl0uZWFjaCB7CisgICAgfCBu
YW1lIHwKKyAgICAgIEJST1dTRVJNQVJLX0pTLmFkZCBCcm93c2VybWFya0pTQmVuY2htYXJrLm5l
dyhuYW1lKQorICB9CisgIAorICBCUk9XU0VSTUFSS19ET00gPSBCZW5jaG1hcmtTdWl0ZS5uZXco
IkJyb3dzZXJtYXJrRE9NIiwgOmdlb21ldHJpY01lYW4sIDEpCisgIFsiYWR2YW5jZWRfc2VhcmNo
IiwgImNyZWF0ZV9zb3VyY2UiLCAiZHluYW1pY19jcmVhdGUiLCAic2VhcmNoIl0uZWFjaCB7Cisg
ICAgfCBuYW1lIHwKKyAgICAgIEJST1dTRVJNQVJLX0RPTS5hZGQgQnJvd3Nlcm1hcmtET01CZW5j
aG1hcmsubmV3KG5hbWUpCisgIH0KKworICAkc3VpdGVzID0gW10KKyAgCisgIGlmICRpbmNsdWRl
U3VuU3BpZGVyIGFuZCBub3QgU1VOU1BJREVSLmVtcHR5PworICAgICRzdWl0ZXMgPDwgU1VOU1BJ
REVSCisgIGVuZAorICAKKyAgaWYgJGluY2x1ZGVMb25nU3BpZGVyIGFuZCBub3QgTE9OR1NQSURF
Ui5lbXB0eT8KKyAgICAkc3VpdGVzIDw8IExPTkdTUElERVIKKyAgZW5kCisgIAorICBpZiAkaW5j
bHVkZVY4IGFuZCBub3QgVjguZW1wdHk/CisgICAgJHN1aXRlcyA8PCBWOAorICBlbmQKKyAgCisg
IGlmICRpbmNsdWRlT2N0YW5lIGFuZCBub3QgT0NUQU5FLmVtcHR5PworICAgIGlmIE9DVEFORV9Q
QVRICisgICAgICAkc3VpdGVzIDw8IE9DVEFORQorICAgIGVsc2UKKyAgICAgICRzdGRlcnIucHV0
cyAiV2FybmluZzogcmVmdXNpbmcgdG8gcnVuIE9jdGFuZSBiZWNhdXNlIFwiT2N0YW5lUGF0aFwi
IGlzbid0IHNldCBpbiAjeyRjb25maWdQYXRofS4iCisgICAgZW5kCisgIGVuZAorICAKKyAgaWYg
JGluY2x1ZGVLcmFrZW4gYW5kIG5vdCBLUkFLRU4uZW1wdHk/CisgICAgaWYgS1JBS0VOX1BBVEgK
KyAgICAgICRzdWl0ZXMgPDwgS1JBS0VOCisgICAgZWxzZQorICAgICAgJHN0ZGVyci5wdXRzICJX
YXJuaW5nOiByZWZ1c2luZyB0byBydW4gS3Jha2VuIGJlY2F1c2UgXCJLcmFrZW5QYXRoXCIgaXNu
J3Qgc2V0IGluICN7JGNvbmZpZ1BhdGh9LiIKKyAgICBlbmQKKyAgZW5kCisgIAorICBpZiAkaW5j
bHVkZUpTQmVuY2ggYW5kIG5vdCBKU0JFTkNILmVtcHR5PworICAgIGlmICRhbGxEUlQKKyAgICAg
IGlmIEpTQkVOQ0hfUEFUSAorICAgICAgICAkc3VpdGVzIDw8IEpTQkVOQ0gKKyAgICAgIGVsc2UK
KyAgICAgICAgJHN0ZGVyci5wdXRzICJXYXJuaW5nOiByZWZ1c2luZyB0byBydW4gSlNCZW5jaCBi
ZWNhdXNlIFwiSlNCZW5jaFBhdGhcIiBpc24ndCBzZXQgaW4gI3skY29uZmlnUGF0aH0iCisgICAg
ICBlbmQKKyAgICBlbHNlCisgICAgICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IHJlZnVzaW5nIHRv
IHJ1biBKU0JlbmNoIGJlY2F1c2Ugbm90IGFsbCBWTXMgYXJlIER1bXBSZW5kZXJUcmVlIG9yIFdl
YktpdFRlc3RSdW5uZXIuIgorICAgIGVuZAorICBlbmQKKyAgCisgIGlmICRpbmNsdWRlSlNSZWdy
ZXNzIGFuZCBub3QgSlNSRUdSRVNTLmVtcHR5PworICAgICRzdWl0ZXMgPDwgSlNSRUdSRVNTCisg
IGVuZAorICAKKyAgaWYgJGluY2x1ZGVBc21CZW5jaCBhbmQgbm90IEFTTUJFTkNILmVtcHR5Pwor
ICAgIGlmIEFTTUJFTkNIX1BBVEgKKyAgICAgICRzdWl0ZXMgPDwgQVNNQkVOQ0gKKyAgICBlbHNl
CisgICAgICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IHJlZnVzaW5nIHRvIHJ1biBBc21CZW5jaCBi
ZWNhdXNlIFwiQXNtQmVuY2hQYXRoXCIgaXNuJ3Qgc2V0IGluICN7JGNvbmZpZ1BhdGh9LiIKKyAg
ICBlbmQKKyAgZW5kCisgIAorICBpZiAkaW5jbHVkZURTUEpTIGFuZCBub3QgRFNQSlMuZW1wdHk/
CisgICAgaWYgJGFsbERSVAorICAgICAgaWYgRFNQSlNfRklMVFJSX1BBVEggYW5kIERTUEpTX1JP
VVRFOV9QQVRIIGFuZCBEU1BKU19TVEFSRklFTERfUEFUSCBhbmQgRFNQSlNfUVVBS0UzX1BBVEgg
YW5kIERTUEpTX01BTkRFTEJST1RfUEFUSCBhbmQgRFNQSlNfSlNMSU5VWF9QQVRIIGFuZCBEU1BK
U19BTU1PSlNfQVNNSlNfUEFUSCBhbmQgRFNQSlNfQU1NT0pTX1JFR1VMQVJfUEFUSAorICAgICAg
ICAkc3VpdGVzIDw8IERTUEpTCisgICAgICBlbHNlCisgICAgICAgICRzdGRlcnIucHV0cyAiV2Fy
bmluZzogcmVmdXNpbmcgdG8gcnVuIERTUEpTIGJlY2F1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcg
aXNuJ3Qgc2V0IGluICN7JGNvbmZpZ1BhdGh9OiBcIkRTUEpTRmlsdHJyUGF0aFwiLCBcIkRTUEpT
Um91dGU5UGF0aFwiLCBcIkRTUEpTU3RhcmZpZWxkUGF0aFwiLCBcIkRTUEpTUXVha2UzUGF0aFwi
LCBcIkRTUEpTTWFuZGVsYnJvdFBhdGhcIiwgXCJEU1BKU0xpbnV4UGF0aFwiLCBcIkRTUEpTQW1t
b0pTQXNtSlNQYXRoXCIsIFwiRFNQSlNBbW1vSlNSZWd1bGFyUGF0aFwiLiIKKyAgICAgIGVuZAor
ICAgIGVsc2UKKyAgICAgICRzdGRlcnIucHV0cyAiV2FybmluZzogcmVmdXNpbmcgdG8gcnVuIERT
UEpTIGJlY2F1c2Ugbm90IGFsbCBWTXMgYXJlIER1bXBSZW5kZXJUcmVlIG9yIFdlYktpdFRlc3RS
dW5uZXIuIgorICAgIGVuZAorICBlbmQKKyAgCisgIGlmICRpbmNsdWRlQnJvd3Nlcm1hcmtKUyBh
bmQgbm90IEJST1dTRVJNQVJLX0pTLmVtcHR5PworICAgIGlmIEJST1dTRVJNQVJLX1BBVEggYW5k
IEJST1dTRVJNQVJLX0pTX1BBVEgKKyAgICAgICRzdWl0ZXMgPDwgQlJPV1NFUk1BUktfSlMKKyAg
ICBlbHNlCisgICAgICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IHJlZnVzaW5nIHRvIHJ1biBCcm93
c2VybWFyay1KUyBiZWNhdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzbid0IHNldCBpbiAjeyRj
b25maWdQYXRofTogXCJCcm93c2VyTWFya1BhdGhcIiBvciBcIkJyb3dzZXJNYXJrSlNQYXRoXCIu
IgorICAgIGVuZAorICBlbmQKKworICBpZiAkaW5jbHVkZUJyb3dzZXJtYXJrRE9NIGFuZCBub3Qg
QlJPV1NFUk1BUktfRE9NLmVtcHR5PworICAgIGlmICRhbGxEUlQKKyAgICAgIGlmIEJST1dTRVJN
QVJLX1BBVEggYW5kIEJST1dTRVJNQVJLX0pTX1BBVEggYW5kIEJST1dTRVJNQVJLX0RPTV9QQVRI
CisgICAgICAgICRzdWl0ZXMgPDwgQlJPV1NFUk1BUktfRE9NCisgICAgICBlbHNlCisgICAgICAg
ICRzdGRlcnIucHV0cyAiV2FybmluZzogcmVmdXNpbmcgdG8gcnVuIEJyb3dzZXJtYXJrLURPTSBi
ZWNhdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzbid0IHNldCBpbiAjeyRjb25maWdQYXRofTog
XCJCcm93c2VyTWFya1BhdGhcIiwgXCJCcm93c2VyTWFya0pTUGF0aFwiLCBvciBcIkJyb3dzZXJN
YXJrRE9NUGF0aFwiLiIKKyAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICRzdGRlcnIucHV0cyAi
V2FybmluZzogcmVmdXNpbmcgdG8gcnVuIEJyb3dzZXJtYXJrLURPTSBiZWNhdXNlIG5vdCBhbGwg
Vk1zIGFyZSBEdW1wUmVuZGVyVHJlZSBvciBXZWJLaXRUZXN0UnVubmVyLiIKKyAgICBlbmQKKyAg
ZW5kCisKKyAgaWYgJGluY2x1ZGVDb21wcmVzc2lvbkJlbmNoIGFuZCBub3QgQ09NUFJFU1NJT05C
RU5DSC5lbXB0eT8KKyAgICBpZiBDT01QUkVTU0lPTkJFTkNIX1BBVEgKKyAgICAgICRzdWl0ZXMg
PDwgQ09NUFJFU1NJT05CRU5DSAorICAgIGVsc2UKKyAgICAgICRzdGRlcnIucHV0cyAiV2Fybmlu
ZzogcmVmdXNpbmcgdG8gcnVuIENvbXByZXNzaW9uQmVuY2ggYmVjYXVzZSBcIkNvbXByZXNzaW9u
QmVuY2hQYXRoXCIgaXNuJ3Qgc2V0IGluICN7JGNvbmZpZ1BhdGh9IgorICAgIGVuZAorICBlbmQK
KworICAkYWxsU3VpdGVzID0gJHN1aXRlcy5tYXB7fHZ8IHYuc3VpdGVzfS5mbGF0dGVuKDEpCisg
IAorICAkYmVuY2htYXJrcyA9IFtdCisgICRzdWl0ZXMuZWFjaCB7CisgICAgfCBzdWl0ZSB8Cisg
ICAgJGJlbmNobWFya3MgKz0gc3VpdGUuYmVuY2htYXJrcworICB9CisgIAorICBpZiAkc3VpdGVz
LmVtcHR5PyBvciAkYmVuY2htYXJrcy5lbXB0eT8KKyAgICAkc3RkZXJyLnB1dHMgIk5vIGJlbmNo
bWFya3MgZm91bmQuICBCYWlsaW5nIG91dC4iCisgICAgZXhpdCAxCisgIGVuZAorICAKKyAgaWYg
JG91dGVyKiRpbm5lciA9PSAxCisgICAgJHN0ZGVyci5wdXRzICJXYXJuaW5nOiB3aWxsIG9ubHkg
Y29sbGVjdCBvbmUgc2FtcGxlIHBlciBiZW5jaG1hcmsvVk0uICBDb25maWRlbmNlIGludGVydmFs
IGNhbGN1bGF0aW9uIHdpbGwgZmFpbC4iCisgIGVuZAorICAKKyAgJHN0ZGVyci5wdXRzICJVc2lu
ZyB0aW1lTW9kZSA9ICN7JHRpbWVNb2RlfS4iIGlmICR2ZXJib3NpdHkgPj0gMQorICAKKyAgJHJ1
blBsYW5zID0gW10KKyAgJHZtcy5lYWNoIHsKKyAgICB8IHZtIHwKKyAgICAkYmVuY2htYXJrcy5l
YWNoIHsKKyAgICAgIHwgYmVuY2htYXJrIHwKKyAgICAgICRvdXRlci50aW1lcyB7CisgICAgICAg
IHwgaXRlcmF0aW9uIHwKKyAgICAgICAgJHJ1blBsYW5zIDw8IEJlbmNoUnVuUGxhbi5uZXcoYmVu
Y2htYXJrLCB2bSwgaXRlcmF0aW9uKQorICAgICAgfQorICAgIH0KKyAgfQorICAKKyAgJHJ1blBs
YW5zLnNodWZmbGUhCisgIAorICBpZiAkc3VuU3BpZGVyV2FybXVwCisgICAgd2FybXVwUGxhbnMg
PSBbXQorICAgICR2bXMuZWFjaCB7CisgICAgICB8IHZtIHwKKyAgICAgIFdBUk1VUC5iZW5jaG1h
cmtzLmVhY2ggeworICAgICAgICB8IGJlbmNobWFyayB8CisgICAgICAgIHdhcm11cFBsYW5zIDw8
IEJlbmNoUnVuUGxhbi5uZXcoYmVuY2htYXJrLCB2bSwgMCkKKyAgICAgIH0KKyAgICB9CisgICAg
CisgICAgJHJ1blBsYW5zID0gd2FybXVwUGxhbnMuc2h1ZmZsZSArICRydW5QbGFucworICBlbmQK
KyAgCisgICRzdWl0ZXBhZCA9ICRzdWl0ZXMuY29sbGVjdCB7CisgICAgfCBzdWl0ZSB8CisgICAg
c3VpdGUudG9fcy5zaXplCisgIH0ubWF4ICsgMQorICAKKyAgJHBsYW5wYWQgPSAkcnVuUGxhbnMu
Y29sbGVjdCB7CisgICAgfCBwbGFuIHwKKyAgICBwbGFuLnRvX3Muc2l6ZQorICB9Lm1heCArIDEK
KyAgCisgIG1heEJlbmNoTmFtZUxlbmd0aCA9CisgICAgKCRiZW5jaG1hcmtzICsgWyI8YXJpdGht
ZXRpYz4gKiIsICI8Z2VvbWV0cmljPiAqIiwgIjxoYXJtb25pYz4gKiJdKS5jb2xsZWN0IHsKKyAg
ICB8IGJlbmNobWFyayB8CisgICAgaWYgYmVuY2htYXJrLnJlc3BvbmRfdG8/IDpuYW1lCisgICAg
ICBiZW5jaG1hcmsubmFtZS5zaXplCisgICAgZWxzZQorICAgICAgYmVuY2htYXJrLnNpemUKKyAg
ICBlbmQKKyAgfS5tYXgKKyAgJGJlbmNoTmFtZUNsaXAgPSA0MAorICAkYmVuY2hwYWQgPSBbbWF4
QmVuY2hOYW1lTGVuZ3RoLCAkYmVuY2hOYW1lQ2xpcF0ubWluICsgMQorICAKKyAgJHdlaWdodHBh
ZCA9ICRiZW5jaG1hcmtzLmNvbGxlY3QgeworICAgIHwgYmVuY2htYXJrIHwKKyAgICBiZW5jaG1h
cmsud2VpZ2h0U3RyaW5nLnNpemUKKyAgfS5tYXgKKworICAkdm1wYWQgPSAkdm1zLmNvbGxlY3Qg
eworICAgIHwgdm0gfAorICAgIHZtLnRvX3Muc2l6ZQorICB9Lm1heCArIDEKKyAgCisgICRhbmFs
eXplLmVhY2hfd2l0aF9pbmRleCB7CisgICAgfCBmaWxlbmFtZSwgaW5kZXggfAorICAgIGlmIGlu
ZGV4ID49IDEKKyAgICAgIHB1dHMKKyAgICBlbmQKKyAgICBwYXJzZUFuZERpc3BsYXlSZXN1bHRz
KElPOjpyZWFkKGZpbGVuYW1lKSkKKyAgfQorICAKKyAgaWYgbm90ICRwcmVwYXJlIGFuZCBub3Qg
JHJ1bgorICAgIGV4aXQgMAorICBlbmQKKyAgCisgIGlmIEZpbGVUZXN0LmV4aXN0PyBCRU5DSF9E
QVRBX1BBVEgKKyAgICBjbWQgPSAicm0gLXJmICN7QkVOQ0hfREFUQV9QQVRIfSIKKyAgICAkc3Rk
ZXJyLnB1dHMgIj4+ICN7Y21kfSIgaWYgJHZlcmJvc2l0eSA+PSAyCisgICAgcmFpc2UgdW5sZXNz
IHN5c3RlbSBjbWQKKyAgZW5kCisgIAorICBEaXIubWtkaXIgQkVOQ0hfREFUQV9QQVRICisgIAor
ICBpZiAkbmVlZFRvQ29weVZNcworICAgIGNhbkNvcHlJbnRvQmVuY2hQYXRoID0gdHJ1ZQorICAg
ICR2bXMuZWFjaCB7CisgICAgICB8IHZtIHwKKyAgICAgIGNhbkNvcHlJbnRvQmVuY2hQYXRoID0g
ZmFsc2UgdW5sZXNzIHZtLmNhbkNvcHlJbnRvQmVuY2hQYXRoCisgICAgfQorICAgIAorICAgIGlm
IGNhbkNvcHlJbnRvQmVuY2hQYXRoCisgICAgICAkdm1zLmVhY2ggeworICAgICAgICB8IHZtIHwK
KyAgICAgICAgJHN0ZGVyci5wdXRzICJDb3B5aW5nICN7dm19IGludG8gI3tCRU5DSF9EQVRBX1BB
VEh9Li4uIgorICAgICAgICB2bS5jb3B5SW50b0JlbmNoUGF0aAorICAgICAgfQorICAgICAgJHN0
ZGVyci5wdXRzICJBbGwgVk1zIGFyZSBpbiBwbGFjZS4iCisgICAgZWxzZQorICAgICAgJHN0ZGVy
ci5wdXRzICJXYXJuaW5nOiBkb24ndCBrbm93IGhvdyB0byBjb3B5IHNvbWUgVk1zIGludG8gI3tC
RU5DSF9EQVRBX1BBVEh9LCBzbyBJIHdvbid0IGRvIGl0LiIKKyAgICBlbmQKKyAgZW5kCisgIAor
ICBpZiAkbWVhc3VyZUdDIGFuZCAkbWVhc3VyZUdDICE9IHRydWUKKyAgICBmb3VuZCA9IGZhbHNl
CisgICAgJHZtcy5lYWNoIHsKKyAgICAgIHwgdm0gfAorICAgICAgaWYgdm0ubmFtZSA9PSAkbWVh
c3VyZUdDCisgICAgICAgIGZvdW5kID0gdHJ1ZQorICAgICAgZW5kCisgICAgfQorICAgIHVubGVz
cyBmb3VuZAorICAgICAgJHN0ZGVyci5wdXRzICJXYXJuaW5nOiAtLW1lYXN1cmUtZ2Mgb3B0aW9u
IGlnbm9yZWQgYmVjYXVzZSBubyBWTSBpcyBuYW1lZCAjeyRtZWFzdXJlR0N9IgorICAgIGVuZAor
ICBlbmQKKyAgCisgIGlmICRwcmVwYXJlCisgICAgRmlsZS5vcGVuKCIje0JFTkNIX0RBVEFfUEFU
SH0vcnVuc2NyaXB0IiwgInciKSB7CisgICAgICB8IGZpbGUgfAorICAgICAgZmlsZS5wdXRzICJl
Y2hvIFwiSE9TVE5BTUU6XFxjXCIiCisgICAgICBmaWxlLnB1dHMgImhvc3RuYW1lIgorICAgICAg
ZmlsZS5wdXRzICJlY2hvIgorICAgICAgZmlsZS5wdXRzICJlY2hvIFwiSEFSRFdBUkU6XFxjXCIi
CisgICAgICBmaWxlLnB1dHMgIi91c3Ivc2Jpbi9zeXNjdGwgaHcubW9kZWwiCisgICAgICBmaWxl
LnB1dHMgImVjaG8iCisgICAgICBmaWxlLnB1dHMgInNldCAtZSIKKyAgICAgICRzY3JpcHQgPSBm
aWxlCisgICAgICAkcnVuUGxhbnMuZWFjaF93aXRoX2luZGV4IHsKKyAgICAgICAgfCBwbGFuLCBp
ZHggfAorICAgICAgICBpZiAkdmVyYm9zaXR5ID09IDAgYW5kIG5vdCAkc2lsZW50CisgICAgICAg
ICAgdGV4dDEgPSBscGFkKGlkeC50b19zLCRydW5QbGFucy5zaXplLnRvX3Muc2l6ZSkrIi8iKyRy
dW5QbGFucy5zaXplLnRvX3MKKyAgICAgICAgICB0ZXh0MiA9IHBsYW4udG9fcworICAgICAgICAg
IGZpbGUucHV0cygiZWNobyAiICsgU2hlbGx3b3Jkcy5zaGVsbGVzY2FwZSgiXHIje3RleHQxfSAj
e3JwYWQodGV4dDIsJHBsYW5wYWQpfSIpICsgIlwiXFxjXCIgMT4mMiIpCisgICAgICAgICAgZmls
ZS5wdXRzKCJlY2hvICIgKyBTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKCJcciN7dGV4dDF9ICN7dGV4
dDJ9IikgKyAiXCJcXGNcIiAxPiYyIikKKyAgICAgICAgZW5kCisgICAgICAgIHBsYW4uZW1pdFJ1
bkNvZGUKKyAgICAgIH0KKyAgICAgIGlmICR2ZXJib3NpdHkgPT0gMCBhbmQgbm90ICRzaWxlbnQK
KyAgICAgICAgZmlsZS5wdXRzKCJlY2hvICIgKyBTaGVsbHdvcmRzLnNoZWxsZXNjYXBlKCJcciN7
JHJ1blBsYW5zLnNpemV9LyN7JHJ1blBsYW5zLnNpemV9ICN7JyAnKigkc3VpdGVwYWQrMSskYmVu
Y2hwYWQrMSskdm1wYWQpfSIpICsgIlwiXFxjXCIgMT4mMiIpCisgICAgICAgIGZpbGUucHV0cygi
ZWNobyAiICsgU2hlbGx3b3Jkcy5zaGVsbGVzY2FwZSgiXHIjeyRydW5QbGFucy5zaXplfS8jeyRy
dW5QbGFucy5zaXplfSIpICsgIiAxPiYyIikKKyAgICAgIGVuZAorICAgIH0KKyAgZW5kCisgIAor
ICBpZiAkcnVuCisgICAgdW5sZXNzICRyZW1vdGVIb3N0cy5lbXB0eT8KKyAgICAgICRzdGRlcnIu
cHV0cyAiUGFja2FnaW5nIGJlbmNobWFya2luZyBkaXJlY3RvcnkgZm9yIHJlbW90ZSBob3N0cy4u
LiIgaWYgJHZlcmJvc2l0eT09MAorICAgICAgRGlyLmNoZGlyKFRFTVBfUEFUSCkgeworICAgICAg
ICBjbWQgPSAidGFyIC1jemYgcGF5bG9hZC50YXIuZ3ogYmVuY2hkYXRhIgorICAgICAgICAkc3Rk
ZXJyLnB1dHMgIj4+ICN7Y21kfSIgaWYgJHZlcmJvc2l0eT49MgorICAgICAgICByYWlzZSB1bmxl
c3Mgc3lzdGVtKGNtZCkKKyAgICAgIH0KKyAgICAgIAorICAgICAgZGVmIGdyb2tIb3N0KGhvc3Qp
CisgICAgICAgIGlmIGhvc3QgPX4gLzooWzAtOV0rKSQvCisgICAgICAgICAgIi1wICIgKyAkMSAr
ICIgIiArIFNoZWxsd29yZHMuc2hlbGxlc2NhcGUoJH4ucHJlX21hdGNoKQorICAgICAgICBlbHNl
CisgICAgICAgICAgU2hlbGx3b3Jkcy5zaGVsbGVzY2FwZShob3N0KQorICAgICAgICBlbmQKKyAg
ICAgIGVuZAorICAgICAgCisgICAgICBkZWYgc3NoUmVhZChob3N0LCBjb21tYW5kKQorICAgICAg
ICBjbWQgPSAic3NoICN7JHNzaE9wdGlvbnMuY29sbGVjdHt8eHwgU2hlbGx3b3Jkcy5zaGVsbGVz
Y2FwZSh4KX0uam9pbignICcpfSAje2dyb2tIb3N0KGhvc3QpfSAje1NoZWxsd29yZHMuc2hlbGxl
c2NhcGUoY29tbWFuZCl9IgorICAgICAgICAkc3RkZXJyLnB1dHMgIj4+ICN7Y21kfSIgaWYgJHZl
cmJvc2l0eT49MgorICAgICAgICByZXN1bHQgPSAiIgorICAgICAgICBJTy5wb3BlbihjbWQsICJy
IikgeworICAgICAgICAgIHwgaW5wIHwKKyAgICAgICAgICBpbnAuZWFjaF9saW5lIHsKKyAgICAg
ICAgICAgIHwgbGluZSB8CisgICAgICAgICAgICAkc3RkZXJyLnB1dHMgIiN7aG9zdH06ICN7bGlu
ZX0iIGlmICR2ZXJib3NpdHk+PTIKKyAgICAgICAgICAgIHJlc3VsdCArPSBsaW5lCisgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIHJhaXNlICIjeyQ/fSIgdW5sZXNzICQ/LnN1Y2Nlc3M/
CisgICAgICAgIHJlc3VsdAorICAgICAgZW5kCisgICAgICAKKyAgICAgIGRlZiBzc2hXcml0ZSho
b3N0LCBjb21tYW5kLCBkYXRhKQorICAgICAgICBjbWQgPSAic3NoICN7JHNzaE9wdGlvbnMuY29s
bGVjdHt8eHwgU2hlbGx3b3Jkcy5zaGVsbGVzY2FwZSh4KX0uam9pbignICcpfSAje2dyb2tIb3N0
KGhvc3QpfSAje1NoZWxsd29yZHMuc2hlbGxlc2NhcGUoY29tbWFuZCl9IgorICAgICAgICAkc3Rk
ZXJyLnB1dHMgIj4+ICN7Y21kfSIgaWYgJHZlcmJvc2l0eT49MgorICAgICAgICBJTy5wb3Blbihj
bWQsICJ3IikgeworICAgICAgICAgIHwgb3V0cCB8CisgICAgICAgICAgb3V0cC53cml0ZShkYXRh
KQorICAgICAgICB9CisgICAgICAgIHJhaXNlICIjeyQ/fSIgdW5sZXNzICQ/LnN1Y2Nlc3M/Cisg
ICAgICBlbmQKKyAgICAgIAorICAgICAgJHJlbW90ZUhvc3RzLmVhY2ggeworICAgICAgICB8IGhv
c3QgfAorICAgICAgICAkc3RkZXJyLnB1dHMgIlNlbmRpbmcgYmVuY2htYXJrIHBheWxvYWQgdG8g
I3tob3N0fS4uLiIgaWYgJHZlcmJvc2l0eT09MAorICAgICAgICAKKyAgICAgICAgcmVtb3RlVGVt
cFBhdGggPSBKU09OOjpwYXJzZShzc2hSZWFkKGhvc3QsICJjYXQgfi8uYmVuY2hlciIpKVsidGVt
cFBhdGgiXQorICAgICAgICByYWlzZSB1bmxlc3MgcmVtb3RlVGVtcFBhdGgKKyAgICAgICAgCisg
ICAgICAgIHNzaFdyaXRlKGhvc3QsICJjZCAje1NoZWxsd29yZHMuc2hlbGxlc2NhcGUocmVtb3Rl
VGVtcFBhdGgpfSAmJiBybSAtcmYgYmVuY2hkYXRhICYmIHRhciAteHoiLCBJTzo6cmVhZCgiI3tU
RU1QX1BBVEh9L3BheWxvYWQudGFyLmd6IikpCisgICAgICAgIAorICAgICAgICAkc3RkZXJyLnB1
dHMgIlJ1bm5pbmcgb24gI3tob3N0fS4uLiIgaWYgJHZlcmJvc2l0eT09MAorICAgICAgICAKKyAg
ICAgICAgcGFyc2VBbmREaXNwbGF5UmVzdWx0cyhzc2hSZWFkKGhvc3QsICJjZCAje1NoZWxsd29y
ZHMuc2hlbGxlc2NhcGUocmVtb3RlVGVtcFBhdGggKyAnL2JlbmNoZGF0YScpfSAmJiBzaCBydW5z
Y3JpcHQiKSkKKyAgICAgIH0KKyAgICBlbmQKKyAgICAKKyAgICBpZiBub3QgJHJlbW90ZUhvc3Rz
LmVtcHR5PyBhbmQgJGFsc29Mb2NhbAorICAgICAgJHN0ZGVyci5wdXRzICJSdW5uaW5nIGxvY2Fs
bHkuLi4iCisgICAgZW5kCisgICAgCisgICAgaWYgJHJlbW90ZUhvc3RzLmVtcHR5PyBvciAkYWxz
b0xvY2FsCisgICAgICBwYXJzZUFuZERpc3BsYXlSZXN1bHRzKHJ1bkFuZEdldFJlc3VsdHMpCisg
ICAgZW5kCisgIGVuZAorICAKKyAgaWYgJHByZXBhcmUgYW5kIG5vdCAkcnVuIGFuZCAkYW5hbHl6
ZS5lbXB0eT8KKyAgICBwdXRzIHdyYXAoIkJlbmNobWFya2luZyBzY3JpcHQgYW5kIGRhdGEgYXJl
IGluICN7QkVOQ0hfREFUQV9QQVRIfS4gWW91IGNhbiBydW4gIisKKyAgICAgICAgICAgICAgInRo
ZSBiZW5jaG1hcmtzIGFuZCBnZXQgdGhlIHJlc3VsdHMgYnkgZG9pbmc6IiwgNzgpCisgICAgcHV0
cworICAgIHB1dHMgImNkICN7QkVOQ0hfREFUQV9QQVRIfSIKKyAgICBwdXRzICJzaCBydW5zY3Jp
cHQgPiByZXN1bHRzLnR4dCIKKyAgICBwdXRzCisgICAgcHV0cyB3cmFwKCJUaGVuIHlvdSBjYW4g
YW5hbHl6ZSB0aGUgcmVzdWx0cyBieSBydW5uaW5nIGJlbmNoZXIgd2l0aCB0aGUgc2FtZSBhcmd1
bWVudHMgIisKKyAgICAgICAgICAgICAgImFzIG5vdywgYnV0IHJlcGxhY2luZyAtLXByZXBhcmUt
b25seSB3aXRoIC0tYW5hbHl6ZSByZXN1bHRzLnR4dC4iLCA3OCkKKyAgZW5kCityZXNjdWUgPT4g
ZQorICBmYWlsKGUpCitlbmQKKyAgCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9TY3JpcHRz
L3J1bi1qc2MtYmVuY2htYXJrcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQojIyAt
MCwwICsxICMjCisqClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>
<flag name="review"
          id="263628"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>