<?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>37632</bug_id>
          
          <creation_ts>2010-04-14 20:28:37 -0700</creation_ts>
          <short_desc>Add a layer of indirection when calling run-webkit-tests to allow testing new-run-webkit-tests on various platforms</short_desc>
          <delta_ts>2010-04-18 14:26:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dpranke</cc>
    
    <cc>wsiegrist</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>212722</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-14 20:28:37 -0700</bug_when>
    <thetext>Add a layer of indirection when calling run-webkit-tests to allow testing new-run-webkit-tests on various platforms without needing to change scripts or restart the buildbot master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212725</commentid>
    <comment_count>1</comment_count>
      <attachid>53402</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-14 20:37:41 -0700</bug_when>
    <thetext>Created attachment 53402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212760</commentid>
    <comment_count>2</comment_count>
      <attachid>53413</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-14 22:50:34 -0700</bug_when>
    <thetext>Created attachment 53413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213442</commentid>
    <comment_count>3</comment_count>
      <attachid>53568</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-16 14:59:05 -0700</bug_when>
    <thetext>Created attachment 53568
Updated patch which doesn&apos;t enable new-run-webkit-tests for any ports yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213526</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-16 17:30:45 -0700</bug_when>
    <thetext>looks basically fine to me, but I&apos;m not a reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213656</commentid>
    <comment_count>5</comment_count>
      <attachid>53568</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-17 13:23:28 -0700</bug_when>
    <thetext>Comment on attachment 53568
Updated patch which doesn&apos;t enable new-run-webkit-tests for any ports yet

Ok.  The diff is hard to read, but it looks reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213794</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 13:34:42 -0700</bug_when>
    <thetext>Committed r57796: &lt;http://trac.webkit.org/changeset/57796&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213795</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 13:36:57 -0700</bug_when>
    <thetext>Landed.  Watching the bots now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213798</commentid>
    <comment_count>8</comment_count>
      <attachid>53633</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 13:56:57 -0700</bug_when>
    <thetext>Created attachment 53633
Fix run-webkit-tests for users who don&apos;t have WebKitTools/Scripts in their path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213799</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 13:59:50 -0700</bug_when>
    <thetext>Committed r57798: &lt;http://trac.webkit.org/changeset/57798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213800</commentid>
    <comment_count>10</comment_count>
      <attachid>53634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 14:10:03 -0700</bug_when>
    <thetext>Created attachment 53634
Make run-webkit-tests exit non-zero if launching harness fails</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213805</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 14:26:00 -0700</bug_when>
    <thetext>Committed r57799: &lt;http://trac.webkit.org/changeset/57799&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53402</attachid>
            <date>2010-04-14 20:37:41 -0700</date>
            <delta_ts>2010-04-14 22:50:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37632-20100414203738.patch</filename>
            <type>text/plain</type>
            <size>167183</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZDgwYTIyLi44OGE1M2IzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDQt
MTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGxheWVyIG9mIGluZGlyZWN0aW9uIHdo
ZW4gY2FsbGluZyBydW4td2Via2l0LXRlc3RzIHRvIGFsbG93IHRlc3RpbmcgbmV3LXJ1bi13ZWJr
aXQtdGVzdHMgb24gdmFyaW91cyBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjMyCisKKyAgICAgICAgVGhpcyB3aWxsIGxldCB1cyB0
ZXN0IGFuZCBmaXggYnVncyBpbiBuZXctcnVuLXdlYmtpdC10ZXN0cworICAgICAgICB3aXRob3V0
IG5lZWRpbmcgdG8gcmVzdGFydCB0aGUgYnVpbGRib3QgbWFzdGVyIGJldHdlZW4gdGVzdHMuCisK
KyAgICAgICAgKiBTY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzOiBDb3BpZWQgZnJvbSBXZWJL
aXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMuCisgICAgICAgICogU2NyaXB0cy9ydW4t
d2Via2l0LXRlc3RzOgorCiAyMDEwLTA0LTE1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwLi5mYWI2MjZhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9vbGQt
cnVuLXdlYmtpdC10ZXN0cwpAQCAtMCwwICsxLDIyNjggQEAKKyMhL3Vzci9iaW4vcGVybAorCisj
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlh
a292IChhcEBueXBvcC5jb20pCisjIENvcHlyaWdodCAoQykgMjAwNyBNYXR0IExpbGVrIChwZXd0
ZXJtb29zZUBnbWFpbC5jb20pCisjIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJp
Y0B3ZWJraXQub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA5IEFuZHJhcyBCZWNzaSAoYmVjc2kuYW5k
cmFzQHN0dWQudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAK
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMg
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisjIFNjcmlwdCB0byBydW4gdGhlIFdlYktpdCBPcGVuIFNvdXJjZSBQ
cm9qZWN0IGxheW91dCB0ZXN0cy4KKworIyBSdW4gYWxsIHRoZSB0ZXN0cyBwYXNzZWQgaW4gb24g
dGhlIGNvbW1hbmQgbGluZS4KKyMgSWYgbm8gdGVzdHMgYXJlIHBhc3NlZCwgZmluZCBhbGwgdGhl
IC5odG1sLCAuc2h0bWwsIC54bWwsIC54aHRtbCwgLnhodG1sbXAsIC5wbCwgLnBocCAoYW5kIHN2
ZykgZmlsZXMgaW4gdGhlIHRlc3QgZGlyZWN0b3J5LgorCisjIFJ1biBlYWNoIHRleHQuCisjIENv
bXBhcmUgYWdhaW5zdCB0aGUgZXhpc3RpbmcgZmlsZSB4eHgtZXhwZWN0ZWQudHh0LgorIyBJZiB0
aGVyZSBpcyBhIG1pc21hdGNoLCBnZW5lcmF0ZSB4eHgtYWN0dWFsLnR4dCBhbmQgeHh4LWRpZmZz
LnR4dC4KKworIyBBdCB0aGUgZW5kLCByZXBvcnQ6CisjICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0
aGF0IGdvdCB0aGUgZXhwZWN0ZWQgcmVzdWx0cworIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhh
dCByYW4sIGJ1dCBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0cworIyAgIHRoZSBudW1i
ZXIgb2YgdGVzdHMgdGhhdCBmYWlsZWQgdG8gcnVuCisjICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0
aGF0IHdlcmUgcnVuIGJ1dCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyB0byBjb21wYXJlIGFnYWlu
c3QKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIEN3ZDsKK3VzZSBEYXRhOjpE
dW1wZXI7Cit1c2UgRmNudGwgcXcoRl9HRVRGTCBGX1NFVEZMIE9fTk9OQkxPQ0spOwordXNlIEZp
bGU6OkJhc2VuYW1lOwordXNlIEZpbGU6OkNvcHk7Cit1c2UgRmlsZTo6RmluZDsKK3VzZSBGaWxl
OjpQYXRoOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwordXNl
IEZpbGU6OlRlbXA7Cit1c2UgRmluZEJpbjsKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2UgSVBDOjpP
cGVuMjsKK3VzZSBJUEM6Ok9wZW4zOwordXNlIFRpbWU6OkhpUmVzIHF3KHRpbWUgdXNsZWVwKTsK
KwordXNlIExpc3Q6OlV0aWwgJ3NodWZmbGUnOworCit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1
c2Ugd2Via2l0cGVybDo6ZmVhdHVyZXM7Cit1c2Ugd2Via2l0cGVybDo6aHR0cGQ7Cit1c2Ugd2Vi
a2l0ZGlyczsKK3VzZSBWQ1NVdGlsczsKK3VzZSBQT1NJWDsKKworc3ViIGJ1aWxkUGxhdGZvcm1S
ZXN1bHRIaWVyYXJjaHkoKTsKK3N1YiBidWlsZFBsYXRmb3JtVGVzdEhpZXJhcmNoeShAKTsKK3N1
YiBjbG9zZUN5Z3BhdGhzKCk7CitzdWIgY2xvc2VEdW1wVG9vbCgpOworc3ViIGNsb3NlV2ViU29j
a2V0U2VydmVyKCk7CitzdWIgY29uZmlndXJlQW5kT3BlbkhUVFBESWZOZWVkZWQoKTsKK3N1YiBj
b3VudEFuZFByaW50TGVha3MoJCQkKTsKK3N1YiBjb3VudEZpbmlzaGVkVGVzdCgkJCQkKTsKK3N1
YiBkZWxldGVFeHBlY3RlZEFuZEFjdHVhbFJlc3VsdHMoJCk7CitzdWIgZHVtcFRvb2xEaWRDcmFz
aCgpOworc3ViIGVwaWxvZ3Vlc0FuZFByb2xvZ3VlcygkJCk7CitzdWIgZXhwZWN0ZWREaXJlY3Rv
cnlGb3JUZXN0KCQ7JDskKTsKK3N1YiBmaWxlTmFtZVdpdGhOdW1iZXIoJCQpOworc3ViIGh0bWxG
b3JSZXN1bHRzU2VjdGlvbihcQCQmKTsKK3N1YiBpc1RleHRPbmx5VGVzdCgkKTsKK3N1YiBsYXVu
Y2hXaXRoRW52KFxAXCUpOworc3ViIHJlc29sdmVBbmRNYWtlVGVzdFJlc3VsdHNEaXJlY3Rvcnko
KTsKK3N1YiBudW1lcmljY21wKCQkKTsKK3N1YiBvcGVuRGlmZlRvb2woKTsKK3N1YiBvcGVuRHVt
cFRvb2woKTsKK3N1YiBwYXJzZUxlYWtzYW5kUHJpbnRVbmlxdWVMZWFrcygpOworc3ViIG9wZW5X
ZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpOworc3ViIHBhdGhjbXAoJCQpOworc3ViIHByaW50RmFp
bHVyZU1lc3NhZ2VGb3JUZXN0KCQkKTsKK3N1YiBwcm9jZXNzSWdub3JlVGVzdHMoJCQpOworc3Vi
IHJlYWRGcm9tRHVtcFRvb2xXaXRoVGltZXIoKiopOworc3ViIHJlYWRTa2lwcGVkRmlsZXMoJCk7
CitzdWIgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJCQpOworc3ViIHNhbXBsZUR1bXBUb29s
KCk7CitzdWIgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCokKTsKK3N1YiBzbG93ZXN0Y21wKCQk
KTsKK3N1YiBzcGxpdHBhdGgoJCk7CitzdWIgc3RyaXBFeHRlbnNpb24oJCk7CitzdWIgc3RyaXBN
ZXRyaWNzKCQkKTsKK3N1YiB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJCQkJCQpOworc3ViIHRvVVJM
KCQpOworc3ViIHRvV2luZG93c1BhdGgoJCk7CitzdWIgdmFsaWRhdGVTa2lwcGVkQXJnKCQkOyQp
Oworc3ViIHdyaXRlVG9GaWxlKCQkKTsKKworIyBBcmd1bWVudCBoYW5kbGluZworbXkgJGFkZFBs
YXRmb3JtRXhjZXB0aW9ucyA9IDA7CitteSAkY29tcGxleFRleHQgPSAwOworbXkgJGV4aXRBZnRl
ck5GYWlsdXJlcyA9IDA7CitteSAkZ2VuZXJhdGVOZXdSZXN1bHRzID0gaXNBcHBsZU1hY1dlYktp
dCgpID8gMSA6IDA7CitteSAkZ3VhcmRNYWxsb2MgPSAnJzsKKyMgRklYTUU6IER5bmFtaWMgSFRU
UC1wb3J0IGNvbmZpZ3VyYXRpb24gaW4gdGhpcyBmaWxlIGlzIHdyb25nLiAgVGhlIHZhcmlvdXMK
KyMgYXBhY2hlIGNvbmZpZyBmaWxlcyBpbiBMYXlvdXRUZXN0cy9odHRwL2NvbmZpZyBnb3Zlcm4g
dGhlIHBvcnQgbnVtYmVycy4KKyMgRHluYW1pYyBjb25maWd1cmF0aW9uIGFzLXdyaXR0ZW4gd2ls
bCBhbHNvIGNhdXNlIHJhbmRvbSBmYWlsdXJlcyBpbgorIyBhbiBJUHY2IGVudmlyb25tZW50LiAg
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEwNC4KK215ICRo
dHRwZFBvcnQgPSA4MDAwOworbXkgJGh0dHBkU1NMUG9ydCA9IDg0NDM7CitteSAkaWdub3JlTWV0
cmljcyA9IDA7CitteSAkd2ViU29ja2V0UG9ydCA9IDg4ODA7CisjIHdzcyBpcyBkaXNhYmxlZCB1
bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgorIyBteSAkd2ViU29ja2V0U2Vj
dXJlUG9ydCA9IDkzMjM7CitteSAkaWdub3JlVGVzdHMgPSAnJzsKK215ICRpdGVyYXRpb25zID0g
MTsKK215ICRsYXVuY2hTYWZhcmkgPSAxOworbXkgJG1lcmdlRGVwdGg7CitteSAkcGl4ZWxUZXN0
cyA9ICcnOworbXkgJHBsYXRmb3JtOworbXkgJHF1aWV0ID0gJyc7CitteSAkcmFuZG9taXplVGVz
dHMgPSAwOworbXkgJHJlcGVhdEVhY2ggPSAxOworbXkgJHJlcG9ydDEwU2xvd2VzdCA9IDA7Citt
eSAkcmVzZXRSZXN1bHRzID0gMDsKK215ICRyZXZlcnNlVGVzdHMgPSAwOworbXkgJHJvb3Q7Citt
eSAkcnVuU2FtcGxlID0gMTsKK215ICRzaG91bGRDaGVja0xlYWtzID0gMDsKK215ICRzaG93SGVs
cCA9IDA7CitteSAkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzID0gaXNDeWd3aW4oKTsKK215ICR0ZXN0
SFRUUCA9IDE7CitteSAkdGVzdE1lZGlhID0gMTsKK215ICR0bXBEaXIgPSAiL3RtcCI7CitteSAk
dGVzdFJlc3VsdHNEaXJlY3RvcnkgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBEaXIsICJsYXlv
dXQtdGVzdC1yZXN1bHRzIik7CitteSAkdGVzdHNQZXJEdW1wVG9vbCA9IDEwMDA7CitteSAkdGhy
ZWFkZWQgPSAwOworIyBEdW1wUmVuZGVyVHJlZSBoYXMgYW4gaW50ZXJuYWwgdGltZW91dCBvZiAz
MCBzZWNvbmRzLCBzbyB0aGlzIG11c3QgYmUgPiAzMC4KK215ICR0aW1lb3V0U2Vjb25kcyA9IDM1
OworbXkgJHRvbGVyYW5jZSA9IDA7CitteSAkdHJlYXRTa2lwcGVkID0gImRlZmF1bHQiOworbXkg
JHVzZVJlbW90ZUxpbmtzVG9UZXN0cyA9IDA7CitteSAkdXNlVmFsZ3JpbmQgPSAwOworbXkgJHZl
cmJvc2UgPSAwOworbXkgJHNob3VsZFdhaXRGb3JIVFRQRCA9IDA7CisKK215IEBsZWFrc0ZpbGVu
YW1lczsKKworaWYgKGlzV2luZG93cygpIHx8IGlzTXN5cygpKSB7CisgICAgcHJpbnQgIlRoaXMg
c2NyaXB0IGhhcyB0byBiZSBydW4gdW5kZXIgQ3lnd2luIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS5c
biI7CisgICAgZXhpdCAxOworfQorCisjIERlZmF1bHQgdG8gLS1uby1odHRwIGZvciB3eCBmb3Ig
bm93LgorJHRlc3RIVFRQID0gMCBpZiAoaXNXeCgpKTsKKworbXkgJGV4cGVjdGVkVGFnID0gImV4
cGVjdGVkIjsKK215ICRhY3R1YWxUYWcgPSAiYWN0dWFsIjsKK215ICRwcmV0dHlEaWZmVGFnID0g
InByZXR0eS1kaWZmIjsKK215ICRkaWZmc1RhZyA9ICJkaWZmcyI7CitteSAkZXJyb3JUYWcgPSAi
c3RkZXJyIjsKKworbXkgQG1hY1BsYXRmb3JtcyA9ICgibWFjLXRpZ2VyIiwgIm1hYy1sZW9wYXJk
IiwgIm1hYy1zbm93bGVvcGFyZCIsICJtYWMiKTsKKworaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkg
eworICAgIGlmIChpc1RpZ2VyKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gIm1hYy10aWdlciI7
CisgICAgICAgICR0b2xlcmFuY2UgPSAxLjA7CisgICAgfSBlbHNpZiAoaXNMZW9wYXJkKCkpIHsK
KyAgICAgICAgJHBsYXRmb3JtID0gIm1hYy1sZW9wYXJkIjsKKyAgICAgICAgJHRvbGVyYW5jZSA9
IDAuMTsKKyAgICB9IGVsc2lmIChpc1Nub3dMZW9wYXJkKCkpIHsKKyAgICAgICAgJHBsYXRmb3Jt
ID0gIm1hYy1zbm93bGVvcGFyZCI7CisgICAgICAgICR0b2xlcmFuY2UgPSAwLjE7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgJHBsYXRmb3JtID0gIm1hYyI7CisgICAgfQorfSBlbHNpZiAoaXNRdCgp
KSB7CisgICAgaWYgKGlzRGFyd2luKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gInF0LW1hYyI7
CisgICAgfSBlbHNpZiAoaXNMaW51eCgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICJxdC1saW51
eCI7CisgICAgfSBlbHNpZiAoaXNXaW5kb3dzKCkgfHwgaXNDeWd3aW4oKSkgeworICAgICAgICAk
cGxhdGZvcm0gPSAicXQtd2luIjsKKyAgICB9IGVsc2UgeworICAgICAgICAkcGxhdGZvcm0gPSAi
cXQiOworICAgIH0KK30gZWxzaWYgKGlzR3RrKCkpIHsKKyAgICAkcGxhdGZvcm0gPSAiZ3RrIjsK
KyAgICBpZiAoISRFTlZ7IldFQktJVF9URVNURk9OVFMifSkgeworICAgICAgICBwcmludCAiVGhl
IFdFQktJVF9URVNURk9OVFMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGRlZmluZWQuXG4i
OworICAgICAgICBwcmludCAiWW91IG11c3Qgc2V0IGl0IGJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0
cy5cbiI7CisgICAgICAgIHByaW50ICJVc2UgZ2l0IHRvIGdyYWIgdGhlIGFjdHVhbCBmb250cyBm
cm9tIGh0dHA6Ly9naXRvcmlvdXMub3JnL3F0d2Via2l0L3Rlc3Rmb250c1xuIjsKKyAgICAgICAg
ZXhpdCAxOworICAgIH0KK30gZWxzaWYgKGlzV3goKSkgeworICAgICRwbGF0Zm9ybSA9ICJ3eCI7
Cit9IGVsc2lmIChpc0N5Z3dpbigpKSB7CisgICAgJHBsYXRmb3JtID0gIndpbiI7Cit9CisKK2lm
ICghZGVmaW5lZCgkcGxhdGZvcm0pKSB7CisgICAgcHJpbnQgIldBUk5JTkc6IFlvdXIgcGxhdGZv
cm0gaXMgbm90IHJlY29nbml6ZWQuIEFueSBwbGF0Zm9ybS1zcGVjaWZpYyByZXN1bHRzIHdpbGwg
YmUgZ2VuZXJhdGVkIGluIHBsYXRmb3JtL3VuZGVmaW5lZC5cbiI7CisgICAgJHBsYXRmb3JtID0g
InVuZGVmaW5lZCI7Cit9CisKK215ICRwcm9ncmFtTmFtZSA9IGJhc2VuYW1lKCQwKTsKK215ICRs
YXVuY2hTYWZhcmlEZWZhdWx0ID0gJGxhdW5jaFNhZmFyaSA/ICJsYXVuY2giIDogImRvIG5vdCBs
YXVuY2giOworbXkgJGh0dHBEZWZhdWx0ID0gJHRlc3RIVFRQID8gInJ1biIgOiAiZG8gbm90IHJ1
biI7CitteSAkc2FtcGxlRGVmYXVsdCA9ICRydW5TYW1wbGUgPyAicnVuIiA6ICJkbyBub3QgcnVu
IjsKKworbXkgJHVzYWdlID0gPDxFT0Y7CitVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBb
dGVzdGRpcnx0ZXN0cGF0aCAuLi5dCisgIC0tYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMgICAgICAg
UHV0IG5ldyByZXN1bHRzIGZvciBub24tcGxhdGZvcm0tc3BlY2lmaWMgZmFpbGluZyB0ZXN0cyBp
bnRvIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyByZXN1bHRzIGRpcmVjdG9yeQorICAtLWNvbXBsZXgt
dGV4dCAgICAgICAgICAgICAgICAgIFVzZSB0aGUgY29tcGxleCB0ZXh0IGNvZGUgcGF0aCBmb3Ig
YWxsIHRleHQgKE1hYyBPUyBYIGFuZCBXaW5kb3dzIG9ubHkpCisgIC1jfC0tY29uZmlndXJhdGlv
biBjb25maWcgICAgICAgU2V0IER1bXBSZW5kZXJUcmVlIGJ1aWxkIGNvbmZpZ3VyYXRpb24KKyAg
LWd8LS1ndWFyZC1tYWxsb2MgICAgICAgICAgICAgICBFbmFibGUgbWFsbG9jIGd1YXJkCisgIC0t
ZXhpdC1hZnRlci1uLWZhaWx1cmVzIE4gICAgICAgRXhpdCBhZnRlciB0aGUgZmlyc3QgTiBmYWls
dXJlcyBpbnN0ZWFkIG9mIHJ1bm5pbmcgYWxsIHRlc3RzCisgIC1ofC0taGVscCAgICAgICAgICAg
ICAgICAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZQorICAtLVtuby1daHR0cCAgICAgICAg
ICAgICAgICAgICAgIFJ1biAob3IgZG8gbm90IHJ1bikgaHR0cCB0ZXN0cyAoZGVmYXVsdDogJGh0
dHBEZWZhdWx0KQorICAtLVtuby1dd2FpdC1mb3ItaHR0cGQgICAgICAgICAgIFdhaXQgZm9yIGh0
dHBkIGlmIHNvbWUgb3RoZXIgdGVzdCBzZXNzaW9uIGlzIHVzaW5nIGl0IGFscmVhZHkgKHNhbWUg
YXMgV0VCS0lUX1dBSVRfRk9SX0hUVFBEPTEpLiAoZGVmYXVsdDogJHNob3VsZFdhaXRGb3JIVFRQ
RCkgCisgIC1pfC0taWdub3JlLXRlc3RzICAgICAgICAgICAgICAgQ29tbWEtc2VwYXJhdGVkIGxp
c3Qgb2YgZGlyZWN0b3JpZXMgb3IgdGVzdHMgdG8gaWdub3JlCisgIC0taXRlcmF0aW9ucyBuICAg
ICAgICAgICAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgc2V0IG9mIHRlc3RzIChl
LmcuIEFCQ0FCQ0FCQykKKyAgLS1bbm8tXWxhdW5jaC1zYWZhcmkgICAgICAgICAgICBMYXVuY2gg
KG9yIGRvIG5vdCBsYXVuY2gpIFNhZmFyaSB0byBkaXNwbGF5IHRlc3QgcmVzdWx0cyAoZGVmYXVs
dDogJGxhdW5jaFNhZmFyaURlZmF1bHQpCisgIC1sfC0tbGVha3MgICAgICAgICAgICAgICAgICAg
ICAgRW5hYmxlIGxlYWtzIGNoZWNraW5nCisgIC0tW25vLV1uZXctdGVzdC1yZXN1bHRzICAgICAg
ICAgR2VuZXJhdGUgcmVzdWx0cyBmb3IgbmV3IHRlc3RzCisgIC0tbnRobHkgbiAgICAgICAgICAg
ICAgICAgICAgICAgUmVzdGFydCBEdW1wUmVuZGVyVHJlZSBldmVyeSBuIHRlc3RzIChkZWZhdWx0
OiAkdGVzdHNQZXJEdW1wVG9vbCkKKyAgLXB8LS1waXhlbC10ZXN0cyAgICAgICAgICAgICAgICBF
bmFibGUgcGl4ZWwgdGVzdHMKKyAgLS10b2xlcmFuY2UgdCAgICAgICAgICAgICAgICAgICBJZ25v
cmUgaW1hZ2UgZGlmZmVyZW5jZXMgbGVzcyB0aGFuIHRoaXMgcGVyY2VudGFnZSAoZGVmYXVsdDog
JHRvbGVyYW5jZSkKKyAgLS1wbGF0Zm9ybSAgICAgICAgICAgICAgICAgICAgICBPdmVycmlkZSB0
aGUgZGV0ZWN0ZWQgcGxhdGZvcm0gdG8gdXNlIGZvciB0ZXN0cyBhbmQgcmVzdWx0cyAoZGVmYXVs
dDogJHBsYXRmb3JtKQorICAtLXBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYiBzZXJ2
ZXIgcG9ydCB0byB1c2Ugd2l0aCBodHRwIHRlc3RzCisgIC1xfC0tcXVpZXQgICAgICAgICAgICAg
ICAgICAgICAgTGVzcyB2ZXJib3NlIG91dHB1dAorICAtLXJlc2V0LXJlc3VsdHMgICAgICAgICAg
ICAgICAgIFJlc2V0IEFMTCByZXN1bHRzIChpbmNsdWRpbmcgcGl4ZWwgdGVzdHMgaWYgLS1waXhl
bC10ZXN0cyBpcyBzZXQpCisgIC1vfC0tcmVzdWx0cy1kaXJlY3RvcnkgICAgICAgICAgT3V0cHV0
IHJlc3VsdHMgZGlyZWN0b3J5IChkZWZhdWx0OiAkdGVzdFJlc3VsdHNEaXJlY3RvcnkpCisgIC0t
cmFuZG9tICAgICAgICAgICAgICAgICAgICAgICAgUnVuIHRoZSB0ZXN0cyBpbiBhIHJhbmRvbSBv
cmRlcgorICAtLXJlcGVhdC1lYWNoIG4gICAgICAgICAgICAgICAgIE51bWJlciBvZiB0aW1lcyB0
byBydW4gZWFjaCB0ZXN0IChlLmcuIEFBQUJCQkNDQykKKyAgLS1yZXZlcnNlICAgICAgICAgICAg
ICAgICAgICAgICBSdW4gdGhlIHRlc3RzIGluIHJldmVyc2UgYWxwaGFiZXRpY2FsIG9yZGVyCisg
IC0tcm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCB0byByb290IHRvb2xzIGJ1aWxk
CisgIC0tW25vLV1zYW1wbGUtb24tdGltZW91dCAgICAgICAgUnVuIHNhbXBsZSBvbiB0aW1lb3V0
IChkZWZhdWx0OiAkc2FtcGxlRGVmYXVsdCkgKE1hYyBPUyBYIG9ubHkpCisgIC0xfC0tc2luZ2x5
ICAgICAgICAgICAgICAgICAgICAgSXNvbGF0ZSBlYWNoIHRlc3QgY2FzZSBydW4gKGltcGxpZXMg
LS1udGhseSAxIC0tdmVyYm9zZSkKKyAgLS1za2lwcGVkPVtkZWZhdWx0fGlnbm9yZXxvbmx5XSBT
cGVjaWZpZXMgaG93IHRvIHRyZWF0IHRoZSBTa2lwcGVkIGZpbGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBUZXN0cy9kaXJlY3RvcmllcyBsaXN0ZWQgaW4g
dGhlIFNraXBwZWQgZmlsZSBhcmUgbm90IHRlc3RlZAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlnbm9yZTogIFRoZSBTa2lwcGVkIGZpbGUgaXMgaWdub3JlZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHk6ICAgIE9ubHkgdGhvc2UgdGVzdHMv
ZGlyZWN0b3JpZXMgbGlzdGVkIGluIHRoZSBTa2lwcGVkIGZpbGUgd2lsbCBiZSBydW4KKyAgLS1z
bG93ZXN0ICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnQgdGhlIDEwIHNsb3dlc3QgdGVzdHMK
KyAgLS1pZ25vcmUtbWV0cmljcyAgICAgICAgICAgICAgICBJZ25vcmUgbWV0cmljcyBpbiB0ZXN0
cworICAtLVtuby1dc3RyaXAtZWRpdGluZy1jYWxsYmFja3MgIFJlbW92ZSBlZGl0aW5nIGNhbGxi
YWNrcyBmcm9tIGV4cGVjdGVkIHJlc3VsdHMKKyAgLXR8LS10aHJlYWRlZCAgICAgICAgICAgICAg
ICAgICBSdW4gYSBjb25jdXJyZW50IEphdmFTY3JpcHQgdGhlYWQgd2l0aCBlYWNoIHRlc3QKKyAg
LS10aW1lb3V0IHQgICAgICAgICAgICAgICAgICAgICBTZXRzIHRoZSBudW1iZXIgb2Ygc2Vjb25k
cyBiZWZvcmUgYSB0ZXN0IHRpbWVzIG91dCAoZGVmYXVsdDogJHRpbWVvdXRTZWNvbmRzKQorICAt
LXZhbGdyaW5kICAgICAgICAgICAgICAgICAgICAgIFJ1biBEdW1wUmVuZGVyVHJlZSBpbnNpZGUg
dmFsZ3JpbmQgKFF0L0xpbnV4IG9ubHkpCisgIC12fC0tdmVyYm9zZSAgICAgICAgICAgICAgICAg
ICAgTW9yZSB2ZXJib3NlIG91dHB1dCAob3ZlcnJpZGVzIC0tcXVpZXQpCisgIC1tfC0tbWVyZ2Ut
bGVhay1kZXB0aCBhcmcgICAgICAgTWVyZ2VzIGxlYWsgY2FsbFN0YWNrcyBhbmQgcHJpbnRzIHRo
ZSBudW1iZXIgb2YgdW5pcXVlIGxlYWtzIGJlbmVhdGggYSBjYWxsc3RhY2sgZGVwdGggb2YgYXJn
LiAgRGVmYXVsdHMgdG8gNS4KKyAgLS11c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzICAgICBMaW5r
IHRvIHRlc3QgZmlsZXMgd2l0aGluIHRoZSBTVk4gcmVwb3NpdG9yeSBpbiB0aGUgcmVzdWx0cy4K
K0VPRgorCitzZXRDb25maWd1cmF0aW9uKCk7CisKK215ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0
T3B0aW9ucygKKyAgICAnYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMnID0+IFwkYWRkUGxhdGZvcm1F
eGNlcHRpb25zLAorICAgICdjb21wbGV4LXRleHQnID0+IFwkY29tcGxleFRleHQsCisgICAgJ2V4
aXQtYWZ0ZXItbi1mYWlsdXJlcz1pJyA9PiBcJGV4aXRBZnRlck5GYWlsdXJlcywKKyAgICAnZ3Vh
cmQtbWFsbG9jfGcnID0+IFwkZ3VhcmRNYWxsb2MsCisgICAgJ2hlbHB8aCcgPT4gXCRzaG93SGVs
cCwKKyAgICAnaHR0cCEnID0+IFwkdGVzdEhUVFAsCisgICAgJ3dhaXQtZm9yLWh0dHBkIScgPT4g
XCRzaG91bGRXYWl0Rm9ySFRUUEQsCisgICAgJ2lnbm9yZS1tZXRyaWNzIScgPT4gXCRpZ25vcmVN
ZXRyaWNzLAorICAgICdpZ25vcmUtdGVzdHN8aT1zJyA9PiBcJGlnbm9yZVRlc3RzLAorICAgICdp
dGVyYXRpb25zPWknID0+IFwkaXRlcmF0aW9ucywKKyAgICAnbGF1bmNoLXNhZmFyaSEnID0+IFwk
bGF1bmNoU2FmYXJpLAorICAgICdsZWFrc3xsJyA9PiBcJHNob3VsZENoZWNrTGVha3MsCisgICAg
J21lcmdlLWxlYWstZGVwdGh8bTo1JyA9PiBcJG1lcmdlRGVwdGgsCisgICAgJ25ldy10ZXN0LXJl
c3VsdHMhJyA9PiBcJGdlbmVyYXRlTmV3UmVzdWx0cywKKyAgICAnbnRobHk9aScgPT4gXCR0ZXN0
c1BlckR1bXBUb29sLAorICAgICdwaXhlbC10ZXN0c3xwJyA9PiBcJHBpeGVsVGVzdHMsCisgICAg
J3BsYXRmb3JtPXMnID0+IFwkcGxhdGZvcm0sCisgICAgJ3BvcnQ9aScgPT4gXCRodHRwZFBvcnQs
CisgICAgJ3F1aWV0fHEnID0+IFwkcXVpZXQsCisgICAgJ3JhbmRvbScgPT4gXCRyYW5kb21pemVU
ZXN0cywKKyAgICAncmVwZWF0LWVhY2g9aScgPT4gXCRyZXBlYXRFYWNoLAorICAgICdyZXNldC1y
ZXN1bHRzJyA9PiBcJHJlc2V0UmVzdWx0cywKKyAgICAncmVzdWx0cy1kaXJlY3Rvcnl8bz1zJyA9
PiBcJHRlc3RSZXN1bHRzRGlyZWN0b3J5LAorICAgICdyZXZlcnNlJyA9PiBcJHJldmVyc2VUZXN0
cywKKyAgICAncm9vdD1zJyA9PiBcJHJvb3QsCisgICAgJ3NhbXBsZS1vbi10aW1lb3V0IScgPT4g
XCRydW5TYW1wbGUsCisgICAgJ3NpbmdseXwxJyA9PiBzdWIgeyAkdGVzdHNQZXJEdW1wVG9vbCA9
IDE7IH0sCisgICAgJ3NraXBwZWQ9cycgPT4gXCZ2YWxpZGF0ZVNraXBwZWRBcmcsCisgICAgJ3Ns
b3dlc3QnID0+IFwkcmVwb3J0MTBTbG93ZXN0LAorICAgICdzdHJpcC1lZGl0aW5nLWNhbGxiYWNr
cyEnID0+IFwkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzLAorICAgICd0aHJlYWRlZHx0JyA9PiBcJHRo
cmVhZGVkLAorICAgICd0aW1lb3V0PWknID0+IFwkdGltZW91dFNlY29uZHMsCisgICAgJ3RvbGVy
YW5jZT1mJyA9PiBcJHRvbGVyYW5jZSwKKyAgICAndXNlLXJlbW90ZS1saW5rcy10by10ZXN0cycg
PT4gXCR1c2VSZW1vdGVMaW5rc1RvVGVzdHMsCisgICAgJ3ZhbGdyaW5kJyA9PiBcJHVzZVZhbGdy
aW5kLAorICAgICd2ZXJib3NlfHYnID0+IFwkdmVyYm9zZSwKKyk7CisKK2lmICghJGdldE9wdGlv
bnNSZXN1bHQgfHwgJHNob3dIZWxwKSB7CisgICAgcHJpbnQgU1RERVJSICR1c2FnZTsKKyAgICBl
eGl0IDE7Cit9CisKK215ICRpZ25vcmVTa2lwcGVkID0gJHRyZWF0U2tpcHBlZCBlcSAiaWdub3Jl
IjsKK215ICRza2lwcGVkT25seSA9ICR0cmVhdFNraXBwZWQgZXEgIm9ubHkiOworCitteSAkY29u
ZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24oKTsKKworIyBXZSBuZWVkIGFuIGVudmlyb25tZW50
IHZhcmlhYmxlIHRvIGJlIGFibGUgdG8gZW5hYmxlIHRoZSBmZWF0dXJlIHBlci1zbGF2ZQorJHNo
b3VsZFdhaXRGb3JIVFRQRCA9ICRFTlZ7IldFQktJVF9XQUlUX0ZPUl9IVFRQRCJ9IHVubGVzcyAo
JHNob3VsZFdhaXRGb3JIVFRQRCk7CiskdmVyYm9zZSA9IDEgaWYgJHRlc3RzUGVyRHVtcFRvb2wg
PT0gMTsKKworaWYgKCRzaG91bGRDaGVja0xlYWtzICYmICR0ZXN0c1BlckR1bXBUb29sID4gMTAw
MCkgeworICAgIHByaW50IFNUREVSUiAiXG5XQVJOSU5HOiBSdW5uaW5nIG1vcmUgdGhhbiAxMDAw
IHRlc3RzIGF0IGEgdGltZSB3aXRoIE1hbGxvY1N0YWNrTG9nZ2luZyBlbmFibGVkIG1heSBjYXVz
ZSBhIGNyYXNoLlxuXG4iOworfQorCisjIFN0YWNrIGxvZ2dpbmcgZG9lcyBub3QgcGxheSB3ZWxs
IHdpdGggUXVpY2tUaW1lIG9uIFRpZ2VyIChyZGFyOi8vcHJvYmxlbS81NTM3MTU3KQorJHRlc3RN
ZWRpYSA9IDAgaWYgJHNob3VsZENoZWNrTGVha3MgJiYgaXNUaWdlcigpOworCisjIEdlbmVyYXRp
bmcgcmVtb3RlIGxpbmtzIGNhdXNlcyBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBzcGV3IG9uIEdUSyBi
dWlsZCBib3QKKyR1c2VSZW1vdGVMaW5rc1RvVGVzdHMgPSAwIGlmIGlzR3RrKCk7CisKK3NldENv
bmZpZ3VyYXRpb25Qcm9kdWN0RGlyKEN3ZDo6YWJzX3BhdGgoJHJvb3QpKSBpZiAoZGVmaW5lZCgk
cm9vdCkpOworbXkgJHByb2R1Y3REaXIgPSBwcm9kdWN0RGlyKCk7CiskcHJvZHVjdERpciAuPSAi
L2JpbiIgaWYgaXNRdCgpOworJHByb2R1Y3REaXIgLj0gIi9Qcm9ncmFtcyIgaWYgaXNHdGsoKTsK
KworY2hkaXJXZWJLaXQoKTsKKworaWYgKCFkZWZpbmVkKCRyb290KSkgeworICAgIHByaW50IFNU
REVSUiAiUnVubmluZyBidWlsZC1kdW1wcmVuZGVydHJlZVxuIjsKKworICAgIGxvY2FsICpERVZO
VUxMOworICAgIG15ICgkY2hpbGRJbiwgJGNoaWxkT3V0LCAkY2hpbGRFcnIpOworICAgIGlmICgk
cXVpZXQpIHsKKyAgICAgICAgb3BlbihERVZOVUxMLCAiPiIsIEZpbGU6OlNwZWMtPmRldm51bGwo
KSkgb3IgZGllICJGYWlsZWQgdG8gb3BlbiAvZGV2L251bGwiOworICAgICAgICAkY2hpbGRPdXQg
PSAiPiZERVZOVUxMIjsKKyAgICAgICAgJGNoaWxkRXJyID0gIj4mREVWTlVMTCI7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgIyBXaGVuIG5vdCBxdWlldCwgbGV0IHRoZSBjaGlsZCB1c2Ugb3VyIHN0
ZG91dC9zdGRlcnIuCisgICAgICAgICRjaGlsZE91dCA9ICI+JlNURE9VVCI7CisgICAgICAgICRj
aGlsZEVyciA9ICI+JlNUREVSUiI7CisgICAgfQorCisgICAgbXkgQGFyZ3MgPSBhcmd1bWVudHNG
b3JDb25maWd1cmF0aW9uKCk7CisgICAgbXkgJGJ1aWxkUHJvY2VzcyA9IG9wZW4zKCRjaGlsZElu
LCAkY2hpbGRPdXQsICRjaGlsZEVyciwgIldlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJl
bmRlcnRyZWUiLCBAYXJncykgb3IgZGllICJGYWlsZWQgdG8gcnVuIGJ1aWxkLWR1bXByZW5kZXJ0
cmVlIjsKKyAgICBjbG9zZSgkY2hpbGRJbik7CisgICAgd2FpdHBpZCAkYnVpbGRQcm9jZXNzLCAw
OworICAgIG15ICRidWlsZFJlc3VsdCA9ICQ/OworICAgIGNsb3NlKCRjaGlsZE91dCk7CisgICAg
Y2xvc2UoJGNoaWxkRXJyKTsKKworICAgIGNsb3NlIERFVk5VTEwgaWYgKCRxdWlldCk7CisKKyAg
ICBpZiAoJGJ1aWxkUmVzdWx0KSB7CisgICAgICAgIHByaW50IFNUREVSUiAiQ29tcGlsaW5nIER1
bXBSZW5kZXJUcmVlIGZhaWxlZCFcbiI7CisgICAgICAgIGV4aXQgZXhpdFN0YXR1cygkYnVpbGRS
ZXN1bHQpOworICAgIH0KK30KKworbXkgJGR1bXBUb29sTmFtZSA9ICJEdW1wUmVuZGVyVHJlZSI7
CiskZHVtcFRvb2xOYW1lIC49ICJfZGVidWciIGlmIGlzQ3lnd2luKCkgJiYgY29uZmlndXJhdGlv
bkZvclZpc3VhbFN0dWRpbygpICF+IC9eUmVsZWFzZXxEZWJ1Z19JbnRlcm5hbCQvOworbXkgJGR1
bXBUb29sID0gIiRwcm9kdWN0RGlyLyRkdW1wVG9vbE5hbWUiOworZGllICJjYW4ndCBmaW5kIGV4
ZWN1dGFibGUgJGR1bXBUb29sTmFtZSAobG9va2VkIGluICRwcm9kdWN0RGlyKVxuIiB1bmxlc3Mg
LXggJGR1bXBUb29sOworCitteSAkaW1hZ2VEaWZmVG9vbCA9ICIkcHJvZHVjdERpci9JbWFnZURp
ZmYiOworJGltYWdlRGlmZlRvb2wgLj0gIl9kZWJ1ZyIgaWYgaXNDeWd3aW4oKSAmJiBjb25maWd1
cmF0aW9uRm9yVmlzdWFsU3R1ZGlvKCkgIX4gL15SZWxlYXNlfERlYnVnX0ludGVybmFsJC87Citk
aWUgImNhbid0IGZpbmQgZXhlY3V0YWJsZSAkaW1hZ2VEaWZmVG9vbCAobG9va2VkIGluICRwcm9k
dWN0RGlyKVxuIiBpZiAkcGl4ZWxUZXN0cyAmJiAhLXggJGltYWdlRGlmZlRvb2w7CisKK2NoZWNr
RnJhbWV3b3JrcygpIHVubGVzcyBpc0N5Z3dpbigpOworCitpZiAoaXNBcHBsZU1hY1dlYktpdCgp
KSB7CisgICAgcHVzaCBASU5DLCAkcHJvZHVjdERpcjsKKyAgICByZXF1aXJlIER1bXBSZW5kZXJU
cmVlU3VwcG9ydDsKK30KKworbXkgJGxheW91dFRlc3RzTmFtZSA9ICJMYXlvdXRUZXN0cyI7Citt
eSAkdGVzdERpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJGxheW91dFRlc3RzTmFtZSk7
CitteSAkZXhwZWN0ZWREaXJlY3RvcnkgPSAkdGVzdERpcmVjdG9yeTsKK215ICRwbGF0Zm9ybUJh
c2VEaXJlY3RvcnkgPSBjYXRkaXIoJHRlc3REaXJlY3RvcnksICJwbGF0Zm9ybSIpOworbXkgJHBs
YXRmb3JtVGVzdERpcmVjdG9yeSA9IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0b3J5LCAkcGxh
dGZvcm0pOworbXkgQHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5ID0gYnVpbGRQbGF0Zm9ybVJlc3Vs
dEhpZXJhcmNoeSgpOworbXkgQHBsYXRmb3JtVGVzdEhpZXJhcmNoeSA9IGJ1aWxkUGxhdGZvcm1U
ZXN0SGllcmFyY2h5KEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSk7CisKKyRleHBlY3RlZERpcmVj
dG9yeSA9ICRFTlZ7IldlYktpdEV4cGVjdGVkVGVzdFJlc3VsdHNEaXJlY3RvcnkifSBpZiAkRU5W
eyJXZWJLaXRFeHBlY3RlZFRlc3RSZXN1bHRzRGlyZWN0b3J5In07CisKKyR0ZXN0UmVzdWx0c0Rp
cmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJHRlc3RSZXN1bHRzRGlyZWN0b3J5KTsKK215
ICR0ZXN0UmVzdWx0cyA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlc3RSZXN1bHRzRGlyZWN0b3J5
LCAicmVzdWx0cy5odG1sIik7CisKK2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKKyAgICBwcmlu
dCBTVERFUlIgIkNvbXBpbGluZyBKYXZhIHRlc3RzXG4iOworICAgIG15ICRqYXZhVGVzdHNEaXJl
Y3RvcnkgPSBjYXRkaXIoJHRlc3REaXJlY3RvcnksICJqYXZhIik7CisKKyAgICBpZiAoc3lzdGVt
KCIvdXNyL2Jpbi9tYWtlIiwgIi1DIiwgIiRqYXZhVGVzdHNEaXJlY3RvcnkiKSkgeworICAgICAg
ICBleGl0IDE7CisgICAgfQorfQorCisKK3ByaW50ICJSdW5uaW5nIHRlc3RzIGZyb20gJHRlc3RE
aXJlY3RvcnlcbiI7CitpZiAoJHBpeGVsVGVzdHMpIHsKKyAgICBwcmludCAiRW5hYmxpbmcgcGl4
ZWwgdGVzdHMgd2l0aCBhIHRvbGVyYW5jZSBvZiAkdG9sZXJhbmNlJVxuIjsKKyAgICBpZiAoaXNE
YXJ3aW4oKSkgeworICAgICAgICBwcmludCAiV0FSTklORzogVGVtcG9yYXJpbHkgY2hhbmdpbmcg
dGhlIG1haW4gZGlzcGxheSBjb2xvciBwcm9maWxlOlxuIjsKKyAgICAgICAgcHJpbnQgIlx0VGhl
IGNvbG9ycyBvbiB5b3VyIHNjcmVlbiB3aWxsIGNoYW5nZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRo
ZSB0ZXN0aW5nLlxuIjsKKyAgICAgICAgcHJpbnQgIlx0VGhpcyBhbGxvd3MgdGhlIHBpeGVsIHRl
c3RzIHRvIGhhdmUgY29uc2lzdGVudCBjb2xvciB2YWx1ZXMgYWNyb3NzIGFsbCBtYWNoaW5lcy5c
biI7CisgICAgICAgIAorICAgICAgICBpZiAoaXNQZXJpYW5JbnN0YWxsZWQoKSkgeworICAgICAg
ICAgICAgcHJpbnQgIldBUk5JTkc6IFBlcmlhbidzIFF1aWNrVGltZSBjb21wb25lbnQgaXMgaW5z
dGFsbGVkIGFuZCB0aGlzIG1heSBhZmZlY3QgcGl4ZWwgdGVzdCByZXN1bHRzIVxuIjsKKyAgICAg
ICAgICAgIHByaW50ICJcdFlvdSBzaG91bGQgYXZvaWQgZ2VuZXJhdGluZyBuZXcgcGl4ZWwgcmVz
dWx0cyBpbiB0aGlzIGVudmlyb25tZW50LlxuIjsKKyAgICAgICAgICAgIHByaW50ICJcdFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTUgZm9yIGRldGFpbHMu
XG4iOworICAgICAgICB9CisgICAgfQorfQorCitzeXN0ZW0gImxuIiwgIi1zIiwgJHRlc3REaXJl
Y3RvcnksICIvdG1wL0xheW91dFRlc3RzIiB1bmxlc3MgLXggIi90bXAvTGF5b3V0VGVzdHMiOwor
CitteSAlaWdub3JlZEZpbGVzID0gKCAicmVzdWx0cy5odG1sIiA9PiAxICk7CitteSAlaWdub3Jl
ZERpcmVjdG9yaWVzID0gbWFwIHsgJF8gPT4gMSB9IHF3KHBsYXRmb3JtKTsKK215ICVpZ25vcmVk
TG9jYWxEaXJlY3RvcmllcyA9IG1hcCB7ICRfID0+IDEgfSBxdyguc3ZuIF9zdm4gcmVzb3VyY2Vz
IHNjcmlwdC10ZXN0cyk7CitteSAlc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMgPSBtYXAgeyAkXyA9
PiAxIH0gcXcoaHRtbCBzaHRtbCB4bWwgeGh0bWwgeGh0bWxtcCBwbCBwaHApOworCitpZiAoIWNo
ZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJNYXRoTUwiLCAwKSkgeworICAgICRpZ25vcmVkRGly
ZWN0b3JpZXN7J21hdGhtbCd9ID0gMTsKK30KKworIyBGSVhNRTogV2Ugc2hvdWxkIGZpeCB3ZWJr
aXRwZXJsL2ZlYXR1cmVzLnBtOmhhc0ZlYXR1cmUoKSB0byBkbyB0aGUgY29ycmVjdCBmZWF0dXJl
IGRldGVjdGlvbiBmb3IgQ3lnd2luLgoraWYgKGNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJT
VkciLCAwKSkgeworICAgICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3snc3ZnJ30gPSAxOworfSBl
bHNpZiAoaXNDeWd3aW4oKSkgeworICAgICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3snc3ZnJ30g
PSAxOworfSBlbHNlIHsKKyAgICAkaWdub3JlZExvY2FsRGlyZWN0b3JpZXN7J3N2Zyd9ID0gMTsK
K30KKworaWYgKCEkdGVzdEhUVFApIHsKKyAgICAkaWdub3JlZERpcmVjdG9yaWVzeydodHRwJ30g
PSAxOworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J3dlYnNvY2tldCd9ID0gMTsKK30KKworaWYg
KCEkdGVzdE1lZGlhKSB7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snbWVkaWEnfSA9IDE7Cisg
ICAgJGlnbm9yZWREaXJlY3Rvcmllc3snaHR0cC90ZXN0cy9tZWRpYSd9ID0gMTsKK30KKworbXkg
JHN1cHBvcnRlZEZlYXR1cmVzUmVzdWx0ID0gIiI7CisKK2lmIChpc0N5Z3dpbigpKSB7CisgICAg
IyBDb2xsZWN0IHN1cHBvcnRlZCBmZWF0dXJlcyBsaXN0CisgICAgc2V0UGF0aEZvclJ1bm5pbmdX
ZWJLaXRBcHAoXCVFTlYpOworICAgIG15ICRzdXBwb3J0ZWRGZWF0dXJlc0NvbW1hbmQgPSAkZHVt
cFRvb2wgLiAiIC0tcHJpbnQtc3VwcG9ydGVkLWZlYXR1cmVzIDI+JjEiOworICAgICRzdXBwb3J0
ZWRGZWF0dXJlc1Jlc3VsdCA9IGAkc3VwcG9ydGVkRmVhdHVyZXNDb21tYW5kIDI+JjFgOworfQor
CitteSAkaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IDA7CitteSAkaGFzM0RSZW5kZXJpbmcg
PSAwOworCitpZiAoaXNDeWd3aW4oKSkgeworICAgICRoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
ID0gJHN1cHBvcnRlZEZlYXR1cmVzUmVzdWx0ID1+IC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nLzsK
KyAgICAkaGFzM0RSZW5kZXJpbmcgPSAkc3VwcG9ydGVkRmVhdHVyZXNSZXN1bHQgPX4gLzNEUmVu
ZGVyaW5nLzsKK30gZWxzZSB7CisgICAgJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBjaGVj
a1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmciLCAwKTsKKyAg
ICAkaGFzM0RSZW5kZXJpbmcgPSBjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiM0QgUmVuZGVy
aW5nIiwgMCk7Cit9CisKK2lmICghJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpIHsKKyAgICAk
aWdub3JlZERpcmVjdG9yaWVzeydjb21wb3NpdGluZyd9ID0gMTsKK30KKworaWYgKCEkaGFzM0RS
ZW5kZXJpbmcpIHsKKyAgICAkaWdub3JlZERpcmVjdG9yaWVzeydhbmltYXRpb25zLzNkJ30gPSAx
OworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J3RyYW5zZm9ybXMvM2QnfSA9IDE7Cit9CisKK2lm
ICghY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIjNEIENhbnZhcyIsIDApKSB7CisgICAgJGln
bm9yZWREaXJlY3Rvcmllc3snZmFzdC9jYW52YXMvd2ViZ2wnfSA9IDE7Cit9CisKK2lmIChjaGVj
a1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiV01MIiwgMCkpIHsKKyAgICAkc3VwcG9ydGVkRmlsZUV4
dGVuc2lvbnN7J3dtbCd9ID0gMTsKK30gZWxzZSB7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3sn
aHR0cC90ZXN0cy93bWwnfSA9IDE7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snZmFzdC93bWwn
fSA9IDE7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snd21sJ30gPSAxOworfQorCitpZiAoIWNo
ZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJYSFRNTE1QIiwgMCkpIHsKKyAgICAkaWdub3JlZERp
cmVjdG9yaWVzeydmYXN0L3hodG1sbXAnfSA9IDE7Cit9CisKK3Byb2Nlc3NJZ25vcmVUZXN0cygk
aWdub3JlVGVzdHMsICJpZ25vcmUtdGVzdHMiKSBpZiAkaWdub3JlVGVzdHM7CitpZiAoISRpZ25v
cmVTa2lwcGVkKSB7CisgICAgaWYgKCEkc2tpcHBlZE9ubHkgfHwgQEFSR1YgPT0gMCkgeworICAg
ICAgICByZWFkU2tpcHBlZEZpbGVzKCIiKTsKKyAgICB9IGVsc2UgeworICAgICAgICAjIFNpbmNl
IHJlYWRTa2lwcGVkRmlsZXMoKSBhcHBlbmRzIHRvIEBBUkdWLCB3ZSBtdXN0IHVzZSBhIGZvcmVh
Y2gKKyAgICAgICAgIyBsb29wIHNvIHRoYXQgd2Ugb25seSBpdGVyYXRlIG92ZXIgdGhlIG9yaWdp
bmFsIGFyZ3VtZW50IGxpc3QuCisgICAgICAgIGZvcmVhY2ggbXkgJGFyZ251bSAoMCAuLiAkI0FS
R1YpIHsKKyAgICAgICAgICAgIHJlYWRTa2lwcGVkRmlsZXMoc2hpZnQgQEFSR1YpOworICAgICAg
ICB9CisgICAgfQorfQorCitteSBAdGVzdHMgPSBmaW5kVGVzdHNUb1J1bigpOworCitkaWUgIm5v
IHRlc3RzIHRvIHJ1blxuIiBpZiAhQHRlc3RzOworCitteSAlY291bnRzOworbXkgJXRlc3RzOwor
bXkgJWltYWdlc1ByZXNlbnQ7CitteSAlaW1hZ2VEaWZmZXJlbmNlczsKK215ICVkdXJhdGlvbnM7
CitteSAkY291bnQgPSAwOworbXkgJGxlYWtzT3V0cHV0RmlsZU51bWJlciA9IDE7CitteSAkdG90
YWxMZWFrcyA9IDA7CisKK215IEB0b29sQXJncyA9ICgpOworcHVzaCBAdG9vbEFyZ3MsICItLXBp
eGVsLXRlc3RzIiBpZiAkcGl4ZWxUZXN0czsKK3B1c2ggQHRvb2xBcmdzLCAiLS10aHJlYWRlZCIg
aWYgJHRocmVhZGVkOworcHVzaCBAdG9vbEFyZ3MsICItLWNvbXBsZXgtdGV4dCIgaWYgJGNvbXBs
ZXhUZXh0OworcHVzaCBAdG9vbEFyZ3MsICItIjsKKworbXkgQGRpZmZUb29sQXJncyA9ICgpOwor
cHVzaCBAZGlmZlRvb2xBcmdzLCAiLS10b2xlcmFuY2UiLCAkdG9sZXJhbmNlOworCiskfCA9IDE7
CisKK215ICRkdW1wVG9vbFBJRDsKK215ICRpc0R1bXBUb29sT3BlbiA9IDA7CitteSAkZHVtcFRv
b2xDcmFzaGVkID0gMDsKK215ICRpbWFnZURpZmZUb29sUElEOworbXkgJGlzRGlmZlRvb2xPcGVu
ID0gMDsKKworbXkgJGF0TGluZVN0YXJ0ID0gMTsKK215ICRsYXN0RGlyZWN0b3J5ID0gIiI7CisK
K215ICRpc0h0dHBkT3BlbiA9IDA7CitteSAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMDsKK215
ICR3ZWJTb2NrZXRTZXJ2ZXJQSUQgPSAwOworbXkgJGZhaWxlZFRvU3RhcnRXZWJTb2NrZXRTZXJ2
ZXIgPSAwOworIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5
T3BlblNTTC4KKyMgbXkgJHdlYlNvY2tldFNlY3VyZVNlcnZlclBJRCA9IDA7CisKK3N1YiBjYXRj
aF9waXBlIHsgJGR1bXBUb29sQ3Jhc2hlZCA9IDE7IH0KKyRTSUd7IlBJUEUifSA9ICJjYXRjaF9w
aXBlIjsKKworcHJpbnQgIlRlc3RpbmcgIiwgc2NhbGFyIEB0ZXN0cywgIiB0ZXN0IGNhc2VzIjsK
K3ByaW50ICIgJGl0ZXJhdGlvbnMgdGltZXMiIGlmICgkaXRlcmF0aW9ucyA+IDEpOworcHJpbnQg
IiwgcmVwZWF0aW5nIGVhY2ggdGVzdCAkcmVwZWF0RWFjaCB0aW1lcyIgaWYgKCRyZXBlYXRFYWNo
ID4gMSk7CitwcmludCAiLlxuIjsKKworbXkgJG92ZXJhbGxTdGFydFRpbWUgPSB0aW1lOworCitt
eSAlZXhwZWN0ZWRSZXN1bHRQYXRoczsKKworbXkgQG9yaWdpbmFsVGVzdHMgPSBAdGVzdHM7Cisj
IEFkZCBpbmRpdmlkdWFsIHRlc3QgcmVwZXRpdGlvbnMKK2lmICgkcmVwZWF0RWFjaCA+IDEpIHsK
KyAgICBAdGVzdHMgPSAoKTsKKyAgICBmb3JlYWNoIG15ICR0ZXN0IChAb3JpZ2luYWxUZXN0cykg
eworICAgICAgICBmb3IgKG15ICRpID0gMDsgJGkgPCAkcmVwZWF0RWFjaDsgJGkrKykgeworICAg
ICAgICAgICAgcHVzaChAdGVzdHMsICR0ZXN0KTsKKyAgICAgICAgfQorICAgIH0KK30KKyMgQWRk
IHRlc3Qgc2V0IHJlcGV0aXRpb25zCitmb3IgKG15ICRpID0gMTsgJGkgPCAkaXRlcmF0aW9uczsg
JGkrKykgeworICAgIHB1c2goQHRlc3RzLCBAb3JpZ2luYWxUZXN0cyk7Cit9CisKK2ZvciBteSAk
dGVzdCAoQHRlc3RzKSB7CisgICAgbXkgJG5ld0R1bXBUb29sID0gbm90ICRpc0R1bXBUb29sT3Bl
bjsKKyAgICBvcGVuRHVtcFRvb2woKTsKKworICAgIG15ICRiYXNlID0gc3RyaXBFeHRlbnNpb24o
JHRlc3QpOworICAgIG15ICRleHBlY3RlZEV4dGVuc2lvbiA9ICIudHh0IjsKKyAgICAKKyAgICBt
eSAkZGlyID0gJGJhc2U7CisgICAgJGRpciA9fiBzfC9bXi9dKyR8fDsKKworICAgIGlmICgkbmV3
RHVtcFRvb2wgfHwgJGRpciBuZSAkbGFzdERpcmVjdG9yeSkgeworICAgICAgICBmb3JlYWNoIG15
ICRsb2d1ZSAoZXBpbG9ndWVzQW5kUHJvbG9ndWVzKCRuZXdEdW1wVG9vbCA/ICIiIDogJGxhc3RE
aXJlY3RvcnksICRkaXIpKSB7CisgICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAg
ICAgICAgICAgICRsb2d1ZSA9IHRvV2luZG93c1BhdGgoJGxvZ3VlKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgJGxvZ3VlID0gY2Fub25wYXRoKCRsb2d1ZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBw
cmludCAicnVubmluZyBlcGlsb2d1ZSBvciBwcm9sb2d1ZSAkbG9ndWVcbiI7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBwcmludCBPVVQgIiRsb2d1ZVxuIjsKKyAgICAgICAgICAgICMgVGhy
b3cgYXdheSBvdXRwdXQgZnJvbSBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgICAgICMgT25jZSBm
b3IgdGhlIHRlc3Qgb3V0cHV0IGFuZCBvbmNlIGZvciBwaXhlbCByZXN1bHRzIChlbXB0eSkKKyAg
ICAgICAgICAgIHdoaWxlICg8SU4+KSB7CisgICAgICAgICAgICAgICAgbGFzdCBpZiAvI0VPRi87
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoPElOPikgeworICAgICAgICAgICAg
ICAgIGxhc3QgaWYgLyNFT0YvOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAgIHByaW50ICJydW5uaW5nICR0ZXN0IC0+ICI7Cisg
ICAgICAgICRhdExpbmVTdGFydCA9IDA7CisgICAgfSBlbHNpZiAoISRxdWlldCkgeworICAgICAg
ICBpZiAoJGRpciBuZSAkbGFzdERpcmVjdG9yeSkgeworICAgICAgICAgICAgcHJpbnQgIlxuIiB1
bmxlc3MgJGF0TGluZVN0YXJ0OworICAgICAgICAgICAgcHJpbnQgIiRkaXIgIjsKKyAgICAgICAg
fQorICAgICAgICBwcmludCAiLiI7CisgICAgICAgICRhdExpbmVTdGFydCA9IDA7CisgICAgfQor
CisgICAgJGxhc3REaXJlY3RvcnkgPSAkZGlyOworCisgICAgbXkgJHJlc3VsdDsKKworICAgIG15
ICRzdGFydFRpbWUgPSB0aW1lIGlmICRyZXBvcnQxMFNsb3dlc3Q7CisKKyAgICAjIFRyeSB0byBy
ZWFkIGV4cGVjdGVkIGhhc2ggZmlsZSBmb3IgcGl4ZWwgdGVzdHMKKyAgICBteSAkc3VmZml4RXhw
ZWN0ZWRIYXNoID0gIiI7CisgICAgaWYgKCRwaXhlbFRlc3RzICYmICEkcmVzZXRSZXN1bHRzKSB7
CisgICAgICAgIG15ICRleHBlY3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0
KCRiYXNlLCAwLCAicG5nIik7CisgICAgICAgIGlmIChvcGVuIEVYUEVDVEVESEFTSCwgIiRleHBl
Y3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5jaGVja3N1bSIpIHsKKyAgICAgICAgICAg
IG15ICRleHBlY3RlZEhhc2ggPSA8RVhQRUNURURIQVNIPjsKKyAgICAgICAgICAgIGNob21wKCRl
eHBlY3RlZEhhc2gpOworICAgICAgICAgICAgY2xvc2UgRVhQRUNURURIQVNIOworICAgICAgICAg
ICAgCisgICAgICAgICAgICAjIEZvcm1hdCBleHBlY3RlZCBoYXNoIGludG8gYSBzdWZmaXggc3Ry
aW5nIHRoYXQgaXMgYXBwZW5kZWQgdG8gdGhlIHBhdGggLyBVUkwgcGFzc2VkIHRvIERSVAorICAg
ICAgICAgICAgJHN1ZmZpeEV4cGVjdGVkSGFzaCA9ICInJGV4cGVjdGVkSGFzaCI7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoJHRlc3QgPX4gL15odHRwXC8vKSB7CisgICAgICAgIGNvbmZp
Z3VyZUFuZE9wZW5IVFRQRElmTmVlZGVkKCk7CisgICAgICAgIGlmICgkdGVzdCAhfiAvXmh0dHBc
L3Rlc3RzXC9sb2NhbFwvLyAmJiAkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9zc2xcLy8gJiYgJHRl
c3QgIX4gL15odHRwXC90ZXN0c1wvd21sXC8vICYmICR0ZXN0ICF+IC9eaHR0cFwvdGVzdHNcL21l
ZGlhXC8vKSB7CisgICAgICAgICAgICBteSAkcGF0aCA9IGNhbm9ucGF0aCgkdGVzdCk7CisgICAg
ICAgICAgICAkcGF0aCA9fiBzL15odHRwXC90ZXN0c1wvLy87CisgICAgICAgICAgICBwcmludCBP
VVQgImh0dHA6Ly8xMjcuMC4wLjE6JGh0dHBkUG9ydC8kcGF0aCRzdWZmaXhFeHBlY3RlZEhhc2hc
biI7CisgICAgICAgIH0gZWxzaWYgKCR0ZXN0ID1+IC9eaHR0cFwvdGVzdHNcL3NzbFwvLykgewor
ICAgICAgICAgICAgbXkgJHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOworICAgICAgICAgICAgJHBh
dGggPX4gcy9eaHR0cFwvdGVzdHNcLy8vOworICAgICAgICAgICAgcHJpbnQgT1VUICJodHRwczov
LzEyNy4wLjAuMTokaHR0cGRTU0xQb3J0LyRwYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxuIjsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG15ICR0ZXN0UGF0aCA9ICIkdGVzdERpcmVjdG9y
eS8kdGVzdCI7CisgICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAgICAgICAgICAg
ICR0ZXN0UGF0aCA9IHRvV2luZG93c1BhdGgoJHRlc3RQYXRoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludCBPVVQgIiR0ZXN0UGF0aCRzdWZmaXhFeHBl
Y3RlZEhhc2hcbiI7CisgICAgICAgIH0KKyAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndlYnNvY2tl
dFwvLykgeworICAgICAgICBpZiAoJHRlc3QgPX4gL153ZWJzb2NrZXRcL3Rlc3RzXC9sb2NhbFwv
LykgeworICAgICAgICAgICAgbXkgJHRlc3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IjsK
KyAgICAgICAgICAgIGlmIChpc0N5Z3dpbigpKSB7CisgICAgICAgICAgICAgICAgJHRlc3RQYXRo
ID0gdG9XaW5kb3dzUGF0aCgkdGVzdFBhdGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAkdGVzdFBhdGggPSBjYW5vbnBhdGgoJHRlc3RQYXRoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHByaW50IE9VVCAiJHRlc3RQYXRoXG4iOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgaWYgKG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpKSB7CisgICAg
ICAgICAgICAgICAgbXkgJHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOworICAgICAgICAgICAgICAg
IGlmICgkdGVzdCA9fiAvXndlYnNvY2tldFwvdGVzdHNcL3NzbFwvLykgeworICAgICAgICAgICAg
ICAgICAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlP
cGVuU1NMLgorICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVycm9yOiB3c3MgaXMg
ZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4iOworICAgICAg
ICAgICAgICAgICAgICAjIHByaW50IE9VVCAiaHR0cHM6Ly8xMjcuMC4wLjE6JHdlYlNvY2tldFNl
Y3VyZVBvcnQvJHBhdGhcbiI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHJpbnQgT1VUICJodHRwOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0LyRwYXRo
XG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgIyBXZSBmYWlsZWQgdG8gbGF1bmNoIHRoZSBXZWJTb2NrZXQgc2VydmVyLiAgRGlzcGxh
eSBhIHVzZWZ1bCBlcnJvciBtZXNzYWdlIHJhdGhlciB0aGFuIGF0dGVtcHRpbmcKKyAgICAgICAg
ICAgICAgICAjIHRvIHJ1biB0ZXN0cyB0aGF0IGV4cGVjdCB0aGUgc2VydmVyIHRvIGJlIGF2YWls
YWJsZS4KKyAgICAgICAgICAgICAgICBteSAkZXJyb3JNZXNzYWdlUGF0aCA9ICIkdGVzdERpcmVj
dG9yeS93ZWJzb2NrZXQvcmVzb3VyY2VzL3NlcnZlci1mYWlsZWQtdG8tc3RhcnQuaHRtbCI7Cisg
ICAgICAgICAgICAgICAgJGVycm9yTWVzc2FnZVBhdGggPSBpc0N5Z3dpbigpID8gdG9XaW5kb3dz
UGF0aCgkZXJyb3JNZXNzYWdlUGF0aCkgOiBjYW5vbnBhdGgoJGVycm9yTWVzc2FnZVBhdGgpOwor
ICAgICAgICAgICAgICAgIHByaW50IE9VVCAiJGVycm9yTWVzc2FnZVBhdGhcbiI7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBteSAkdGVzdFBhdGggPSAi
JHRlc3REaXJlY3RvcnkvJHRlc3QiOworICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAg
ICAgICAgJHRlc3RQYXRoID0gdG9XaW5kb3dzUGF0aCgkdGVzdFBhdGgpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7CisgICAg
ICAgIH0KKyAgICAgICAgcHJpbnQgT1VUICIkdGVzdFBhdGgkc3VmZml4RXhwZWN0ZWRIYXNoXG4i
IGlmIGRlZmluZWQgJHRlc3RQYXRoOworICAgIH0KKworICAgICMgRHVtcFJlbmRlclRyZWUgaXMg
ZXhwZWN0ZWQgdG8gZHVtcCB0d28gImJsb2NrcyIgdG8gc3Rkb3V0IGZvciBlYWNoIHRlc3QuCisg
ICAgIyBFYWNoIGJsb2NrIGlzIHRlcm1pbmF0ZWQgYnkgYSAjRU9GIG9uIGEgbGluZSBieSBpdHNl
bGYuCisgICAgIyBUaGUgZmlyc3QgYmxvY2sgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVzdCAoaW4g
dGV4dCwgUmVuZGVyVHJlZSBvciBvdGhlciBmb3JtYXRzKS4KKyAgICAjIFRoZSBzZWNvbmQgYmxv
Y2sgaXMgZm9yIG9wdGlvbmFsIHBpeGVsIGRhdGEgaW4gUE5HIGZvcm1hdCwgYW5kIG1heSBiZSBl
bXB0eSBpZgorICAgICMgcGl4ZWwgdGVzdHMgYXJlIG5vdCBiZWluZyBydW4sIG9yIHRoZSB0ZXN0
IGRvZXMgbm90IGR1bXAgcGl4ZWxzIChlLmcuIHRleHQgdGVzdHMpLgorICAgIG15ICRyZWFkUmVz
dWx0cyA9IHJlYWRGcm9tRHVtcFRvb2xXaXRoVGltZXIoSU4sIEVSUk9SKTsKKworICAgIG15ICRh
Y3R1YWwgPSAkcmVhZFJlc3VsdHMtPntvdXRwdXR9OworICAgIG15ICRlcnJvciA9ICRyZWFkUmVz
dWx0cy0+e2Vycm9yfTsKKworICAgICRleHBlY3RlZEV4dGVuc2lvbiA9ICRyZWFkUmVzdWx0cy0+
e2V4dGVuc2lvbn07CisgICAgbXkgJGV4cGVjdGVkRmlsZU5hbWUgPSAiJGJhc2UtJGV4cGVjdGVk
VGFnLiRleHBlY3RlZEV4dGVuc2lvbiI7CisKKyAgICBteSAkaXNUZXh0ID0gaXNUZXh0T25seVRl
c3QoJGFjdHVhbCk7CisKKyAgICBteSAkZXhwZWN0ZWREaXIgPSBleHBlY3RlZERpcmVjdG9yeUZv
clRlc3QoJGJhc2UsICRpc1RleHQsICRleHBlY3RlZEV4dGVuc2lvbik7CisgICAgJGV4cGVjdGVk
UmVzdWx0UGF0aHN7JGJhc2V9ID0gIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSI7CisK
KyAgICB1bmxlc3MgKCRyZWFkUmVzdWx0cy0+e3N0YXR1c30gZXEgInN1Y2Nlc3MiKSB7CisgICAg
ICAgIG15ICRjcmFzaGVkID0gJHJlYWRSZXN1bHRzLT57c3RhdHVzfSBlcSAiY3Jhc2hlZCI7Cisg
ICAgICAgIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgkdGVzdCwgJGJhc2UsICRjcmFzaGVkLCAkYWN0
dWFsLCAkZXJyb3IpOworICAgICAgICBjb3VudEZpbmlzaGVkVGVzdCgkdGVzdCwgJGJhc2UsICRj
cmFzaGVkID8gImNyYXNoIiA6ICJ0aW1lZG91dCIsIDApOworICAgICAgICBuZXh0OworICAgIH0K
KworICAgICRkdXJhdGlvbnN7JHRlc3R9ID0gdGltZSAtICRzdGFydFRpbWUgaWYgJHJlcG9ydDEw
U2xvd2VzdDsKKworICAgIG15ICRleHBlY3RlZDsKKworICAgIGlmICghJHJlc2V0UmVzdWx0cyAm
JiBvcGVuIEVYUEVDVEVELCAiPCIsICIkZXhwZWN0ZWREaXIvJGV4cGVjdGVkRmlsZU5hbWUiKSB7
CisgICAgICAgICRleHBlY3RlZCA9ICIiOworICAgICAgICB3aGlsZSAoPEVYUEVDVEVEPikgewor
ICAgICAgICAgICAgbmV4dCBpZiAkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzICYmICRfID1+IC9eRURJ
VElORyBERUxFR0FURTovOworICAgICAgICAgICAgJGV4cGVjdGVkIC49ICRfOworICAgICAgICB9
CisgICAgICAgIGNsb3NlIEVYUEVDVEVEOworICAgIH0KKworICAgIGlmICgkaWdub3JlTWV0cmlj
cyAmJiAhJGlzVGV4dCAmJiBkZWZpbmVkICRleHBlY3RlZCkgeworICAgICAgICAoJGFjdHVhbCwg
JGV4cGVjdGVkKSA9IHN0cmlwTWV0cmljcygkYWN0dWFsLCAkZXhwZWN0ZWQpOworICAgIH0KKwor
ICAgIGlmICgkc2hvdWxkQ2hlY2tMZWFrcyAmJiAkdGVzdHNQZXJEdW1wVG9vbCA9PSAxKSB7Cisg
ICAgICAgIHByaW50ICIgICAgICAgICR0ZXN0IC0+ICI7CisgICAgfQorCisgICAgbXkgJGFjdHVh
bFBORyA9ICIiOworICAgIG15ICRkaWZmUE5HID0gIiI7CisgICAgbXkgJGRpZmZQZXJjZW50YWdl
ID0gMDsKKyAgICBteSAkZGlmZlJlc3VsdCA9ICJwYXNzZWQiOworCisgICAgbXkgJGFjdHVhbEhh
c2ggPSAiIjsKKyAgICBteSAkZXhwZWN0ZWRIYXNoID0gIiI7CisgICAgbXkgJGFjdHVhbFBOR1Np
emUgPSAwOworCisgICAgd2hpbGUgKDxJTj4pIHsKKyAgICAgICAgbGFzdCBpZiAvI0VPRi87Cisg
ICAgICAgIGlmICgvQWN0dWFsSGFzaDogKFthLWYwLTldezMyfSkvKSB7CisgICAgICAgICAgICAk
YWN0dWFsSGFzaCA9ICQxOworICAgICAgICB9IGVsc2lmICgvRXhwZWN0ZWRIYXNoOiAoW2EtZjAt
OV17MzJ9KS8pIHsKKyAgICAgICAgICAgICRleHBlY3RlZEhhc2ggPSAkMTsKKyAgICAgICAgfSBl
bHNpZiAoL0NvbnRlbnQtTGVuZ3RoOiAoXGQrKVxzKi8pIHsKKyAgICAgICAgICAgICRhY3R1YWxQ
TkdTaXplID0gJDE7CisgICAgICAgICAgICByZWFkKElOLCAkYWN0dWFsUE5HLCAkYWN0dWFsUE5H
U2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoJHZlcmJvc2UgJiYgJHBpeGVsVGVz
dHMgJiYgISRyZXNldFJlc3VsdHMgJiYgJGFjdHVhbFBOR1NpemUpIHsKKyAgICAgICAgaWYgKCRh
Y3R1YWxIYXNoIGVxICIiICYmICRleHBlY3RlZEhhc2ggZXEgIiIpIHsKKyAgICAgICAgICAgIHBy
aW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogYWN0dWFsICYgZXhwZWN0
ZWQgcGl4ZWwgaGFzaGVzIGFyZSBtaXNzaW5nISIpOworICAgICAgICB9IGVsc2lmICgkYWN0dWFs
SGFzaCBlcSAiIikgeworICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRl
c3QsICJXQVJOSU5HOiBhY3R1YWwgcGl4ZWwgaGFzaCBpcyBtaXNzaW5nISIpOworICAgICAgICB9
IGVsc2lmICgkZXhwZWN0ZWRIYXNoIGVxICIiKSB7CisgICAgICAgICAgICBwcmludEZhaWx1cmVN
ZXNzYWdlRm9yVGVzdCgkdGVzdCwgIldBUk5JTkc6IGV4cGVjdGVkIHBpeGVsIGhhc2ggaXMgbWlz
c2luZyEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgkYWN0dWFsUE5HU2l6ZSA+IDAp
IHsKKyAgICAgICAgbXkgJGV4cGVjdGVkUGl4ZWxEaXIgPSBleHBlY3RlZERpcmVjdG9yeUZvclRl
c3QoJGJhc2UsIDAsICJwbmciKTsKKworICAgICAgICBpZiAoISRyZXNldFJlc3VsdHMgJiYgKCRl
eHBlY3RlZEhhc2ggbmUgJGFjdHVhbEhhc2ggfHwgKCRhY3R1YWxIYXNoIGVxICIiICYmICRleHBl
Y3RlZEhhc2ggZXEgIiIpKSkgeworICAgICAgICAgICAgaWYgKC1mICIkZXhwZWN0ZWRQaXhlbERp
ci8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIikgeworICAgICAgICAgICAgICAgIG15ICRleHBlY3Rl
ZFBOR1NpemUgPSAtcyAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyI7
CisgICAgICAgICAgICAgICAgbXkgJGV4cGVjdGVkUE5HID0gIiI7CisgICAgICAgICAgICAgICAg
b3BlbiBFWFBFQ1RFRFBORywgIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5w
bmciOworICAgICAgICAgICAgICAgIHJlYWQoRVhQRUNURURQTkcsICRleHBlY3RlZFBORywgJGV4
cGVjdGVkUE5HU2l6ZSk7CisKKyAgICAgICAgICAgICAgICBvcGVuRGlmZlRvb2woKTsKKyAgICAg
ICAgICAgICAgICBwcmludCBESUZGT1VUICJDb250ZW50LUxlbmd0aDogJGFjdHVhbFBOR1NpemVc
biI7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRk9VVCAkYWN0dWFsUE5HOworCisgICAgICAg
ICAgICAgICAgcHJpbnQgRElGRk9VVCAiQ29udGVudC1MZW5ndGg6ICRleHBlY3RlZFBOR1NpemVc
biI7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRk9VVCAkZXhwZWN0ZWRQTkc7CisKKyAgICAg
ICAgICAgICAgICB3aGlsZSAoPERJRkZJTj4pIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdCBp
ZiAvXmVycm9yLyB8fCAvXmRpZmY6LzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKC9Db250ZW50
LUxlbmd0aDogKFxkKylccyovKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFkKERJRkZJ
TiwgJGRpZmZQTkcsICQxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgIGlmICgvXmRpZmY6ICguKyklIChwYXNzZWR8ZmFpbGVkKS8p
IHsKKyAgICAgICAgICAgICAgICAgICAgJGRpZmZQZXJjZW50YWdlID0gJDEgKyAwOworICAgICAg
ICAgICAgICAgICAgICAkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0gPSAkZGlmZlBlcmNlbnRhZ2U7
CisgICAgICAgICAgICAgICAgICAgICRkaWZmUmVzdWx0ID0gJDI7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghJGRpZmZQZXJjZW50YWdl
KSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0
LCAicGl4ZWwgaGFzaCBmYWlsZWQgKGJ1dCBwaXhlbCB0ZXN0IHN0aWxsIHBhc3NlcykiKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgeworICAgICAg
ICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogZXhw
ZWN0ZWQgaW1hZ2UgaXMgbWlzc2luZyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICgkcmVzZXRSZXN1bHRzIHx8ICEtZiAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2Ut
JGV4cGVjdGVkVGFnLnBuZyIpIHsKKyAgICAgICAgICAgIG1rcGF0aCBjYXRmaWxlKCRleHBlY3Rl
ZFBpeGVsRGlyLCBkaXJuYW1lKCRiYXNlKSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4cGVjdGVk
UGl4ZWxEaXI7CisgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVkUGl4ZWxEaXIvJGJh
c2UtJGV4cGVjdGVkVGFnLnBuZyIsICRhY3R1YWxQTkcpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCRhY3R1YWxIYXNoIG5lICIiICYmICgkcmVzZXRSZXN1bHRzIHx8ICEtZiAiJGV4cGVjdGVk
UGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLmNoZWNrc3VtIikpIHsKKyAgICAgICAgICAgIHdy
aXRlVG9GaWxlKCIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcuY2hlY2tzdW0i
LCAkYWN0dWFsSGFzaCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZHVtcFRvb2xEaWRD
cmFzaCgpKSB7CisgICAgICAgICRyZXN1bHQgPSAiY3Jhc2giOworICAgICAgICB0ZXN0Q3Jhc2hl
ZE9yVGltZWRPdXQoJHRlc3QsICRiYXNlLCAxLCAkYWN0dWFsLCAkZXJyb3IpOworICAgIH0gZWxz
aWYgKCFkZWZpbmVkICRleHBlY3RlZCkgeworICAgICAgICBpZiAoJHZlcmJvc2UpIHsKKyAgICAg
ICAgICAgIHByaW50ICJuZXcgIiAuICgkcmVzZXRSZXN1bHRzID8gInJlc3VsdCIgOiAidGVzdCIp
IC4iXG4iOworICAgICAgICAgICAgJGF0TGluZVN0YXJ0ID0gMTsKKyAgICAgICAgfQorICAgICAg
ICAkcmVzdWx0ID0gIm5ldyI7CisKKyAgICAgICAgaWYgKCRnZW5lcmF0ZU5ld1Jlc3VsdHMgfHwg
JHJlc2V0UmVzdWx0cykgeworICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJGV4cGVjdGVkRGly
LCBkaXJuYW1lKCRiYXNlKSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4cGVjdGVkRGlyOworICAg
ICAgICAgICAgd3JpdGVUb0ZpbGUoIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSIsICRh
Y3R1YWwpOworICAgICAgICB9CisgICAgICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0
cygkYmFzZSk7CisgICAgICAgIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCRiYXNlLCAkYWN0
dWFsKTsKKyAgICAgICAgaWYgKCEkcmVzZXRSZXN1bHRzKSB7CisgICAgICAgICAgICAjIEFsd2F5
cyBwcmludCB0aGUgZmlsZSBuYW1lIGZvciBuZXcgdGVzdHMsIGFzIHRoZXkgd2lsbCBwcm9iYWJs
eSBuZWVkIHNvbWUgbWFudWFsIGluc3BlY3Rpb24uCisgICAgICAgICAgICAjIGluIHZlcmJvc2Ug
bW9kZSB3ZSBhbHJlYWR5IHByaW50ZWQgdGhlIHRlc3QgY2FzZSwgc28gbm8gbmVlZCB0byBkbyBp
dCBhZ2Fpbi4KKyAgICAgICAgICAgIHVubGVzcyAoJHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAg
ICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgICAgICAgICAgICAgcHJpbnQg
IiR0ZXN0IC0+ICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBteSAkcmVzdWx0c0RpciA9
IGNhdGRpcigkZXhwZWN0ZWREaXIsIGRpcm5hbWUoJGJhc2UpKTsKKyAgICAgICAgICAgIGlmICgk
Z2VuZXJhdGVOZXdSZXN1bHRzKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIm5ldyAocmVzdWx0
cyBnZW5lcmF0ZWQgaW4gJHJlc3VsdHNEaXIpXG4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBwcmludCAibmV3XG4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
JGF0TGluZVN0YXJ0ID0gMTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhY3R1YWwgZXEgJGV4
cGVjdGVkICYmICRkaWZmUmVzdWx0IGVxICJwYXNzZWQiKSB7CisgICAgICAgIGlmICgkdmVyYm9z
ZSkgeworICAgICAgICAgICAgcHJpbnQgInN1Y2NlZWRlZFxuIjsKKyAgICAgICAgICAgICRhdExp
bmVTdGFydCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCA9ICJtYXRjaCI7CisgICAg
ICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgJHJlc3VsdCA9ICJtaXNtYXRjaCI7CisKKyAgICAgICAgbXkgJHBpeGVsVGVzdEZh
aWxlZCA9ICRwaXhlbFRlc3RzICYmICRkaWZmUE5HICYmICRkaWZmUE5HIG5lICIiOworICAgICAg
ICBteSAkdGVzdEZhaWxlZCA9ICRhY3R1YWwgbmUgJGV4cGVjdGVkOworCisgICAgICAgIG15ICRt
ZXNzYWdlID0gISR0ZXN0RmFpbGVkID8gInBpeGVsIHRlc3QgZmFpbGVkIiA6ICJmYWlsZWQiOwor
CisgICAgICAgIGlmICgoJHRlc3RGYWlsZWQgfHwgJHBpeGVsVGVzdEZhaWxlZCkgJiYgJGFkZFBs
YXRmb3JtRXhjZXB0aW9ucykgeworICAgICAgICAgICAgbXkgJHRlc3RCYXNlID0gY2F0ZmlsZSgk
dGVzdERpcmVjdG9yeSwgJGJhc2UpOworICAgICAgICAgICAgbXkgJGV4cGVjdGVkQmFzZSA9IGNh
dGZpbGUoJGV4cGVjdGVkRGlyLCAkYmFzZSk7CisgICAgICAgICAgICBteSAkdGVzdElzTWF4aW1h
bGx5UGxhdGZvcm1TcGVjaWZpYyA9ICR0ZXN0QmFzZSA9fiBtfF5cUSRwbGF0Zm9ybVRlc3REaXJl
Y3RvcnlcRS98OworICAgICAgICAgICAgbXkgJGV4cGVjdGVkUmVzdWx0SXNNYXhpbWFsbHlQbGF0
Zm9ybVNwZWNpZmljID0gJGV4cGVjdGVkQmFzZSA9fiBtfF5cUSRwbGF0Zm9ybVRlc3REaXJlY3Rv
cnlcRS98OworICAgICAgICAgICAgaWYgKCEkdGVzdElzTWF4aW1hbGx5UGxhdGZvcm1TcGVjaWZp
YyAmJiAhJGV4cGVjdGVkUmVzdWx0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmljKSB7CisgICAg
ICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgZGlybmFt
ZSgkYmFzZSkpOworICAgICAgICAgICAgICAgIGlmICgkdGVzdEZhaWxlZCkgeworICAgICAgICAg
ICAgICAgICAgICBteSAkZXhwZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0
b3J5LCAiJGV4cGVjdGVkRmlsZU5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVUb0Zp
bGUoIiRleHBlY3RlZEZpbGUiLCAkYWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaWYgKCRwaXhlbFRlc3RGYWlsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JGV4cGVjdGVkRmlsZSA9IGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgIiRiYXNlLSRl
eHBlY3RlZFRhZy5jaGVja3N1bSIpOworICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgi
JGV4cGVjdGVkRmlsZSIsICRhY3R1YWxIYXNoKTsKKworICAgICAgICAgICAgICAgICAgICAkZXhw
ZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGJhc2UtJGV4cGVj
dGVkVGFnLnBuZyIpOworICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVk
RmlsZSIsICRhY3R1YWxQTkcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAk
bWVzc2FnZSAuPSAiIChyZXN1bHRzIGdlbmVyYXRlZCBpbiAkcGxhdGZvcm1UZXN0RGlyZWN0b3J5
KSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcmludEZhaWx1cmVNZXNz
YWdlRm9yVGVzdCgkdGVzdCwgJG1lc3NhZ2UpOworCisgICAgICAgIG15ICRkaXIgPSAiJHRlc3RS
ZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKKyAgICAgICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9y
IGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICAgICAgbXkg
JHRlc3ROYW1lID0gJDE7CisgICAgICAgIG1rcGF0aCAkZGlyOworCisgICAgICAgIGRlbGV0ZUV4
cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisgICAgICAgIHJlY29yZEFjdHVhbFJlc3Vs
dHNBbmREaWZmKCRiYXNlLCAkYWN0dWFsKTsKKworICAgICAgICBpZiAoJHBpeGVsVGVzdEZhaWxl
ZCkgeworICAgICAgICAgICAgJGltYWdlc1ByZXNlbnR7JGJhc2V9ID0gMTsKKworICAgICAgICAg
ICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFnLnBu
ZyIsICRhY3R1YWxQTkcpOworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0Rp
cmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcucG5nIiwgJGRpZmZQTkcpOworCisgICAgICAgICAgICBt
eSAkZXhwZWN0ZWRQaXhlbERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwgMCwg
InBuZyIpOworICAgICAgICAgICAgY29weSgiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVj
dGVkVGFnLnBuZyIsICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnLnBu
ZyIpOworCisgICAgICAgICAgICBvcGVuIERJRkZIVE1MLCAiPiR0ZXN0UmVzdWx0c0RpcmVjdG9y
eS8kYmFzZS0kZGlmZnNUYWcuaHRtbCIgb3IgZGllOworICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjxodG1sPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8aGVhZD5cbiI7Cisg
ICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRpdGxlPiRiYXNlIEltYWdlIENvbXBhcmU8L3Rp
dGxlPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8c2NyaXB0IGxhbmd1YWdlPVwi
SmF2YXNjcmlwdFwiIHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbiI7CisgICAgICAgICAgICBw
cmludCBESUZGSFRNTCAidmFyIGN1cnJlbnRJbWFnZSA9IDA7XG4iOworICAgICAgICAgICAgcHJp
bnQgRElGRkhUTUwgInZhciBpbWFnZU5hbWVzID0gbmV3IEFycmF5KFwiQWN0dWFsXCIsIFwiRXhw
ZWN0ZWRcIik7XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgInZhciBpbWFnZVBhdGhz
ID0gbmV3IEFycmF5KFwiJHRlc3ROYW1lLSRhY3R1YWxUYWcucG5nXCIsIFwiJHRlc3ROYW1lLSRl
eHBlY3RlZFRhZy5wbmdcIik7XG4iOworICAgICAgICAgICAgaWYgKC1mICIkdGVzdERpcmVjdG9y
eS8kYmFzZS13M2MucG5nIikgeworICAgICAgICAgICAgICAgIGNvcHkoIiR0ZXN0RGlyZWN0b3J5
LyRiYXNlLXczYy5wbmciLCAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLXczYy5wbmciKTsK
KyAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VOYW1lcy5wdXNoKFwiVzNDXCIp
O1xuIjsKKyAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VQYXRocy5wdXNoKFwi
JHRlc3ROYW1lLXczYy5wbmdcIik7XG4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJp
bnQgRElGRkhUTUwgImZ1bmN0aW9uIGFuaW1hdGVJbWFnZSgpIHtcbiI7CisgICAgICAgICAgICBw
cmludCBESUZGSFRNTCAiICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
YW5pbWF0ZWRJbWFnZVwiKTtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIHZh
ciBpbWFnZVRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImltYWdlVGV4dFwiKTtcbiI7
CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIGltYWdlLnNyYyA9IGltYWdlUGF0aHNb
Y3VycmVudEltYWdlXTtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIGltYWdl
VGV4dC5pbm5lckhUTUwgPSBpbWFnZU5hbWVzW2N1cnJlbnRJbWFnZV0gKyBcIiBJbWFnZVwiO1xu
IjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgY3VycmVudEltYWdlID0gKGN1cnJl
bnRJbWFnZSArIDEpICUgaW1hZ2VOYW1lcy5sZW5ndGg7XG4iOworICAgICAgICAgICAgcHJpbnQg
RElGRkhUTUwgIiAgICBzZXRUaW1lb3V0KCdhbmltYXRlSW1hZ2UoKScsMjAwMCk7XG4iOworICAg
ICAgICAgICAgcHJpbnQgRElGRkhUTUwgIn1cbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRN
TCAiPC9zY3JpcHQ+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvaGVhZD5cbiI7
CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPGJvZHkgb25Mb2FkPVwiYW5pbWF0ZUltYWdl
KCk7XCI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0YWJsZT5cbiI7CisgICAg
ICAgICAgICBpZiAoJGRpZmZQZXJjZW50YWdlKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgRElG
RkhUTUwgIjx0cj5cbiI7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD5EaWZm
ZXJlbmNlIGJldHdlZW4gaW1hZ2VzOiA8YSBocmVmPVwiJHRlc3ROYW1lLSRkaWZmc1RhZy5wbmdc
Ij4kZGlmZlBlcmNlbnRhZ2UlPC9hPjwvdGQ+XG4iOworICAgICAgICAgICAgICAgIHByaW50IERJ
RkZIVE1MICI8L3RyPlxuIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50IERJRkZI
VE1MICI8dHI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD48YSBocmVmPVwi
IiAuIHRvVVJMKCIkdGVzdERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPnRlc3QgZmlsZTwvYT48L3Rk
PlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKKyAgICAgICAgICAg
IHByaW50IERJRkZIVE1MICI8dHI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0
ZCBpZD1cImltYWdlVGV4dFwiIHN0eWxlPVwidGV4dC13ZWlnaHQ6IGJvbGQ7XCI+QWN0dWFsIElt
YWdlPC90ZD5cbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC90cj5cbiI7CisgICAg
ICAgICAgICBwcmludCBESUZGSFRNTCAiPHRyPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZI
VE1MICI8dGQ+PGltZyBzcmM9XCIkdGVzdE5hbWUtJGFjdHVhbFRhZy5wbmdcIiBpZD1cImFuaW1h
dGVkSW1hZ2VcIj48L3RkPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxu
IjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RhYmxlPlxuIjsKKyAgICAgICAgICAg
IHByaW50IERJRkZIVE1MICI8L2JvZHk+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwg
IjwvaHRtbD5cbiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoJGVycm9yKSB7CisgICAg
ICAgIG15ICRkaXIgPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKKyAgICAgICAgJGRp
ciA9fiBzfC8oW14vXSspJHx8IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20g
YmFzZVxuIjsKKyAgICAgICAgbWtwYXRoICRkaXI7CisgICAgICAgIAorICAgICAgICB3cml0ZVRv
RmlsZSgiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRlcnJvclRhZy50eHQiLCAkZXJyb3Ip
OworICAgICAgICAKKyAgICAgICAgJGNvdW50c3tlcnJvcn0rKzsKKyAgICAgICAgcHVzaCBAeyR0
ZXN0c3tlcnJvcn19LCAkdGVzdDsKKyAgICB9CisKKyAgICBjb3VudEZpbmlzaGVkVGVzdCgkdGVz
dCwgJGJhc2UsICRyZXN1bHQsICRpc1RleHQpOworCisgICAgIyAtLXJlc2V0LXJlc3VsdHMgZG9l
cyBub3QgY2hlY2sgcGFzcyB2cy4gZmFpbCwgc28gZXhpdEFmdGVyTkZhaWx1cmVzIG1ha2VzIG5v
IHNlbnNlIHdpdGggLS1yZXNldC1yZXN1bHRzLgorICAgIGlmICgkZXhpdEFmdGVyTkZhaWx1cmVz
ICYmICEkcmVzZXRSZXN1bHRzKSB7CisgICAgICAgIG15ICRwYXNzQ291bnQgPSAkY291bnRze21h
dGNofSB8fCAwOyAjICRjb3VudHN7bWF0Y2h9IHdpbGwgYmUgdW5kZWZpbmVkIGlmIHdlJ3ZlIG5v
dCB5ZXQgcGFzc2VkIGEgdGVzdCAoZS5nLiB0aGUgZmlyc3QgdGVzdCBmYWlscykuCisgICAgICAg
IG15ICRmYWlsdXJlQ291bnQgPSAkY291bnQgLSAkcGFzc0NvdW50OyAjICJGYWlsdXJlIiBoZXJl
IGluY2x1ZGVzIG5ldyB0ZXN0cywgdGltZW91dHMsIGNyYXNoZXMsIGV0Yy4KKyAgICAgICAgaWYg
KCRmYWlsdXJlQ291bnQgPj0gJGV4aXRBZnRlck5GYWlsdXJlcykgeworICAgICAgICAgICAgcHJp
bnQgIlxuRXhpdGluZyBlYXJseSBhZnRlciAkZmFpbHVyZUNvdW50IGZhaWx1cmVzLiAkY291bnQg
dGVzdHMgcnVuLiI7CisgICAgICAgICAgICBjbG9zZUR1bXBUb29sKCk7CisgICAgICAgICAgICBs
YXN0OworICAgICAgICB9CisgICAgfQorfQorbXkgJHRvdGFsVGVzdGluZ1RpbWUgPSB0aW1lIC0g
JG92ZXJhbGxTdGFydFRpbWU7CitteSAkd2FpdFRpbWUgPSBnZXRXYWl0VGltZSgpOworaWYgKCR3
YWl0VGltZSA+IDAuMSkgeworICAgIG15ICRub3JtYWxpemVkVGVzdGluZ1RpbWUgPSAkdG90YWxU
ZXN0aW5nVGltZSAtICR3YWl0VGltZTsKKyAgICBwcmludGYgIlxuJTAuMmZzIEhUVFBEIHdhaXRp
bmcgdGltZVxuIiwgJHdhaXRUaW1lIC4gIiI7CisgICAgcHJpbnRmICIlMC4yZnMgbm9ybWFsaXpl
ZCB0ZXN0aW5nIHRpbWUiLCAkbm9ybWFsaXplZFRlc3RpbmdUaW1lIC4gIiI7Cit9CitwcmludGYg
IlxuJTAuMmZzIHRvdGFsIHRlc3RpbmcgdGltZVxuIiwgJHRvdGFsVGVzdGluZ1RpbWUgLiAiIjsK
KworISRpc0R1bXBUb29sT3BlbiB8fCBkaWUgIkZhaWxlZCB0byBjbG9zZSAkZHVtcFRvb2xOYW1l
LlxuIjsKKworJGlzSHR0cGRPcGVuID0gIWNsb3NlSFRUUEQoKTsKK2Nsb3NlV2ViU29ja2V0U2Vy
dmVyKCk7CisKKyMgQmVjYXVzZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhpcyBzY3JpcHQgYXJl
IHJ1bm5pbmcgY29uY3VycmVudGx5IHdlIGNhbm5vdCAKKyMgc2FmZWx5IGRlbGV0ZSB0aGlzIHN5
bWxpbmsuCisjIHN5c3RlbSAicm0gL3RtcC9MYXlvdXRUZXN0cyI7CisKKyMgRklYTUU6IERvIHdl
IHJlYWxseSB3YW50IHRvIGNoZWNrIHRoZSBpbWFnZS1jb21wYXJpc29uIHRvb2wgZm9yIGxlYWtz
IGV2ZXJ5IHRpbWU/CitpZiAoJGlzRGlmZlRvb2xPcGVuICYmICRzaG91bGRDaGVja0xlYWtzKSB7
CisgICAgJHRvdGFsTGVha3MgKz0gY291bnRBbmRQcmludExlYWtzKCJJbWFnZURpZmYiLCAkaW1h
Z2VEaWZmVG9vbFBJRCwgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS9JbWFnZURpZmYtbGVha3MudHh0
Iik7Cit9CisKK2lmICgkdG90YWxMZWFrcykgeworICAgIGlmICgkbWVyZ2VEZXB0aCkgeworICAg
ICAgICBwYXJzZUxlYWtzYW5kUHJpbnRVbmlxdWVMZWFrcygpOworICAgIH0gZWxzZSB7IAorICAg
ICAgICBwcmludCAiXG5XQVJOSU5HOiAkdG90YWxMZWFrcyB0b3RhbCBsZWFrcyBmb3VuZCFcbiI7
CisgICAgICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwgbGVha3MgcmVzdWx0cy5c
biIgaWYgKCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKKyAgICB9Cit9CisKK2Nsb3NlIElO
OworY2xvc2UgT1VUOworY2xvc2UgRVJST1I7CisKK2lmICgkcmVwb3J0MTBTbG93ZXN0KSB7Cisg
ICAgcHJpbnQgIlxuXG5UaGUgMTAgc2xvd2VzdCB0ZXN0czpcblxuIjsKKyAgICBteSAkY291bnQg
PSAwOworICAgIGZvciBteSAkdGVzdCAoc29ydCBzbG93ZXN0Y21wIGtleXMgJWR1cmF0aW9ucykg
eworICAgICAgICBwcmludGYgIiUwLjJmIHNlY3M6ICVzXG4iLCAkZHVyYXRpb25zeyR0ZXN0fSwg
JHRlc3Q7CisgICAgICAgIGxhc3QgaWYgKyskY291bnQgPT0gMTA7CisgICAgfQorfQorCitwcmlu
dCAiXG4iOworCitpZiAoJHNraXBwZWRPbmx5ICYmICRjb3VudHN7Im1hdGNoIn0pIHsKKyAgICBw
cmludCAiVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgaW4gdGhlIFNraXBwZWQgZmlsZSAoIiAuIEZp
bGU6OlNwZWMtPmFiczJyZWwoIiRwbGF0Zm9ybVRlc3REaXJlY3RvcnkvU2tpcHBlZCIsICR0ZXN0
RGlyZWN0b3J5KSAuICIpLCBidXQgc3VjY2VlZGVkOlxuIjsKKyAgICBmb3JlYWNoIG15ICR0ZXN0
IChAeyR0ZXN0c3sibWF0Y2gifX0pIHsKKyAgICAgICAgcHJpbnQgIiAgJHRlc3RcbiI7CisgICAg
fQorfQorCitpZiAoJHJlc2V0UmVzdWx0cyB8fCAoJGNvdW50c3ttYXRjaH0gJiYgJGNvdW50c3tt
YXRjaH0gPT0gJGNvdW50KSkgeworICAgIHByaW50ICJhbGwgJGNvdW50IHRlc3QgY2FzZXMgc3Vj
Y2VlZGVkXG4iOworICAgIHVubGluayAkdGVzdFJlc3VsdHM7CisgICAgZXhpdDsKK30KKworcHJp
bnRSZXN1bHRzKCk7CisKK21rcGF0aCAkdGVzdFJlc3VsdHNEaXJlY3Rvcnk7CisKK29wZW4gSFRN
TCwgIj4iLCAkdGVzdFJlc3VsdHMgb3IgZGllICJGYWlsZWQgdG8gb3BlbiAkdGVzdFJlc3VsdHMu
ICQhIjsKK3ByaW50IEhUTUwgIjxodG1sPlxuIjsKK3ByaW50IEhUTUwgIjxoZWFkPlxuIjsKK3By
aW50IEhUTUwgIjx0aXRsZT5MYXlvdXQgVGVzdCBSZXN1bHRzPC90aXRsZT5cbiI7CitwcmludCBI
VE1MICI8L2hlYWQ+XG4iOworcHJpbnQgSFRNTCAiPGJvZHk+XG4iOworCitpZiAoJGlnbm9yZU1l
dHJpY3MpIHsKKyAgICBwcmludCBIVE1MICI8aDQ+VGVzdGVkIHdpdGggbWV0cmljcyBpZ25vcmVk
LjwvaDQ+IjsKK30KKworcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7
bWlzbWF0Y2h9fSwgIlRlc3RzIHdoZXJlIHJlc3VsdHMgZGlkIG5vdCBtYXRjaCBleHBlY3RlZCBy
ZXN1bHRzIiwgXCZsaW5rc0Zvck1pc21hdGNoVGVzdCk7CitwcmludCBIVE1MIGh0bWxGb3JSZXN1
bHRzU2VjdGlvbihAeyR0ZXN0c3t0aW1lZG91dH19LCAiVGVzdHMgdGhhdCB0aW1lZCBvdXQiLCBc
JmxpbmtzRm9yRXJyb3JUZXN0KTsKK3ByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9uKEB7
JHRlc3Rze2NyYXNofX0sICJUZXN0cyB0aGF0IGNhdXNlZCB0aGUgRHVtcFJlbmRlclRyZWUgdG9v
bCB0byBjcmFzaCIsIFwmbGlua3NGb3JFcnJvclRlc3QpOworcHJpbnQgSFRNTCBodG1sRm9yUmVz
dWx0c1NlY3Rpb24oQHskdGVzdHN7ZXJyb3J9fSwgIlRlc3RzIHRoYXQgaGFkIHN0ZGVyciBvdXRw
dXQiLCBcJmxpbmtzRm9yRXJyb3JUZXN0KTsKK3ByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0
aW9uKEB7JHRlc3Rze25ld319LCAiVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyAo
cHJvYmFibHkgbmV3KSIsIFwmbGlua3NGb3JOZXdUZXN0KTsKKworcHJpbnQgSFRNTCAiPC9ib2R5
PlxuIjsKK3ByaW50IEhUTUwgIjwvaHRtbD5cbiI7CitjbG9zZSBIVE1MOworCitteSBAY29uZmln
dXJhdGlvbkFyZ3MgPSBhcmd1bWVudHNGb3JDb25maWd1cmF0aW9uKCk7CisKK2lmIChpc0d0aygp
KSB7CisgIHN5c3RlbSAiV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIiLCBAY29uZmln
dXJhdGlvbkFyZ3MsICJmaWxlOi8vIi4kdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKK30g
ZWxzaWYgKGlzUXQoKSkgeworICB1bnNoaWZ0IEBjb25maWd1cmF0aW9uQXJncywgcXcoLWdyYXBo
aWNzc3lzdGVtIHJhc3RlciAtc3R5bGUgd2luZG93cyk7CisgIGlmIChpc0N5Z3dpbigpKSB7Cisg
ICAgJHRlc3RSZXN1bHRzID0gIi8iIC4gdG9XaW5kb3dzUGF0aCgkdGVzdFJlc3VsdHMpOworICAg
ICR0ZXN0UmVzdWx0cyA9fiBzL1xcL1wvL2c7CisgIH0KKyAgc3lzdGVtICJXZWJLaXRUb29scy9T
Y3JpcHRzL3J1bi1sYXVuY2hlciIsIEBjb25maWd1cmF0aW9uQXJncywgImZpbGU6Ly8iLiR0ZXN0
UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOworfSBlbHNpZiAoaXNDeWd3aW4oKSkgeworICBzeXN0
ZW0gImN5Z3N0YXJ0IiwgJHRlc3RSZXN1bHRzIGlmICRsYXVuY2hTYWZhcmk7Cit9IGVsc2Ugewor
ICBzeXN0ZW0gIldlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXNhZmFyaSIsIEBjb25maWd1cmF0aW9u
QXJncywgIi1OU09wZW4iLCAkdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKK30KKworY2xv
c2VDeWdwYXRocygpIGlmIGlzQ3lnd2luKCk7CisKK2V4aXQgMTsKKworc3ViIGNvdW50QW5kUHJp
bnRMZWFrcygkJCQpCit7CisgICAgbXkgKCRkdW1wVG9vbE5hbWUsICRkdW1wVG9vbFBJRCwgJGxl
YWtzRmlsZVBhdGgpID0gQF87CisKKyAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7
CisgICAgJGF0TGluZVN0YXJ0ID0gMTsKKworICAgICMgV2UgYXJlIGV4Y2x1ZGluZyB0aGUgZm9s
bG93aW5nIHJlcG9ydGVkIGxlYWtzIHNvIHRoZXkgZG9uJ3QgZ2V0IGluIG91ciB3YXkgd2hlbiBs
b29raW5nIGZvciBXZWJLaXQgbGVha3M6CisgICAgIyBUaGlzIGFsbG93cyB1cyBpZ25vcmUga25v
d24gbGVha3MgYW5kIG9ubHkgYmUgYWxlcnRlZCB3aGVuIG5ldyBsZWFrcyBvY2N1ci4gU29tZSBs
ZWFrcyBhcmUgaW4gdGhlIG9sZAorICAgICMgdmVyc2lvbnMgb2YgdGhlIHN5c3RlbSBmcmFtZXdv
cmtzIHRoYXQgYXJlIGJlaW5nIHVzZWQgYnkgdGhlIGxlYWtzIGJvdHMuIEV2ZW4gdGhvdWdoIGEg
bGVhayBoYXMgYmVlbgorICAgICMgZml4ZWQsIGl0IHdpbGwgYmUgbGlzdGVkIGhlcmUgdW50aWwg
dGhlIGJvdCBoYXMgYmVlbiB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIGZyYW1ld29ya3MuCisKKyAg
ICBteSBAdHlwZXNUb0V4Y2x1ZGUgPSAoCisgICAgKTsKKworICAgIG15IEBjYWxsU3RhY2tzVG9F
eGNsdWRlID0gKAorICAgICAgICAiRmxhc2hfRW5mb3JjZUxvY2FsU2VjdXJpdHkiICMgbGVha3Mg
aW4gRmxhc2ggcGx1Zy1pbiBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDQ5NzQ3CisgICAgKTsKKwor
ICAgIGlmIChpc1RpZ2VyKCkpIHsKKyAgICAgICAgIyBMZWFrIGxpc3QgZm9yIHRoZSB2ZXJzaW9u
IG9mIFRpZ2VyIHVzZWQgb24gdGhlIGJ1aWxkIGJvdC4KKyAgICAgICAgcHVzaCBAY2FsbFN0YWNr
c1RvRXhjbHVkZSwgKAorICAgICAgICAgICAgIkNGUnVuTG9vcFJ1blNwZWNpZmljIFxcfCBtYWxs
b2Nfem9uZV9tYWxsb2MiLCAiQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgXFx8IENGQWxsb2NhdG9yQWxs
b2NhdGUgIiwgIyBsZWFrIGluIENGUnVuTG9vcFJ1blNwZWNpZmljLCByZGFyOi8vcHJvYmxlbS80
NjcwODM5CisgICAgICAgICAgICAiQ0dJbWFnZVNvdXJjZUdldFByb3BlcnRpZXNBdEluZGV4Iiwg
IyBsZWFrIGluIEltYWdlSU8sIHJkYXI6Ly9wcm9ibGVtLzQ2Mjg4MDkKKyAgICAgICAgICAgICJG
T0dldENvdmVyZWRVbmljb2RlQ2hhcnMiLCAjIGxlYWsgaW4gQVRTLCByZGFyOi8vcHJvYmxlbS8z
OTQzNjA0CisgICAgICAgICAgICAiR2V0TGluZURpcmVjdGlvblByZWZlcmVuY2UiLCAiSW5pdFVu
aWNvZGVVdGlsaXRpZXMiLCAjIGxlYWtzIHRvb2wgZmFsc2VseSByZXBvcnRpbmcgbGVhayBpbiBD
Rk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyLCByZGFyOi8vcHJvYmxlbS80OTY0NzkwCisg
ICAgICAgICAgICAiSUNDRlByZWZXcmFwcGVyOjpHZXRQcmVmRGljdGlvbmFyeSIsICMgbGVha3Mg
aW4gSW50ZXJuZXQgQ29uZmlnLiBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDQ5Nzk0CisgICAgICAg
ICAgICAiTlNIVFRQVVJMUHJvdG9jb2wgc2V0UmVzcG9uc2VIZWFkZXI6IiwgIyBsZWFrIGluIG11
bHRpcGFydC9taXhlZC1yZXBsYWNlIGhhbmRsaW5nIGluIEZvdW5kYXRpb24sIG5vIFJhZGFyLCBi
dXQgZml4ZWQgaW4gTGVvcGFyZAorICAgICAgICAgICAgIk5TVVJMQ2FjaGUgY2FjaGVkUmVzcG9u
c2VGb3JSZXF1ZXN0IiwgIyBsZWFrIGluIENGVVJMIGNhY2hlLCByZGFyOi8vcHJvYmxlbS80NzY4
NDMwCisgICAgICAgICAgICAiUENGcmFnUHJlcGFyZUNsb3N1cmVGcm9tRmlsZSIsICMgbGVhayBp
biBDb2RlIEZyYWdtZW50IE1hbmFnZXIsIHJkYXI6Ly9wcm9ibGVtLzM0MjY5OTgKKyAgICAgICAg
ICAgICJXZWJDb3JlOjpTZWxlY3Rpb246OnRvUmFuZ2UiLCAjIGJ1ZyBpbiAnbGVha3MnLCByZGFy
Oi8vcHJvYmxlbS80OTY3OTQ5CisgICAgICAgICAgICAiV2ViQ29yZTo6U3VicmVzb3VyY2VMb2Fk
ZXI6OmNyZWF0ZSIsICMgYnVnIGluICdsZWFrcycsIHJkYXI6Ly9wcm9ibGVtLzQ5ODU4MDYKKyAg
ICAgICAgICAgICJfQ0ZQcmVmZXJlbmNlc0RvbWFpbkRlZXBDb3B5RGljdGlvbmFyeSIsICMgbGVh
ayBpbiBDRlByZWZlcmVuY2VzLCByZGFyOi8vcHJvYmxlbS80MjIwNzg2CisgICAgICAgICAgICAi
X29iamNfbXNnRm9yd2FyZCIsICMgbGVhayBpbiBOU1NwZWxsQ2hlY2tlciwgcmRhcjovL3Byb2Js
ZW0vNDk2NTI3OAorICAgICAgICAgICAgImdsZEdldFN0cmluZyIsICMgbGVhayBpbiBPcGVuR0ws
IHJkYXI6Ly9wcm9ibGVtLzUwMTM2OTkKKyAgICAgICAgICAgICJfc2V0RGVmYXVsdFVzZXJJbmZv
RnJvbVVSTCIsICMgbGVhayBpbiBOU0hUVFBBdXRoZW50aWNhdG9yLCByZGFyOi8vcHJvYmxlbS81
NTQ2NDUzIAorICAgICAgICAgICAgIlNTTEhhbmRzaGFrZSIsICMgbGVhayBpbiBTU0wsIHJkYXI6
Ly9wcm9ibGVtLzU1NDY0NDAgCisgICAgICAgICAgICAiU2VjQ2VydGlmaWNhdGVDcmVhdGVGcm9t
RGF0YSIsICMgbGVhayBpbiBTU0wgY29kZSwgcmRhcjovL3Byb2JsZW0vNDQ2NDM5NworICAgICAg
ICApOworICAgICAgICBwdXNoIEB0eXBlc1RvRXhjbHVkZSwgKAorICAgICAgICAgICAgIlRIUkQi
LCAjIGJ1ZyBpbiAnbGVha3MnLCByZGFyOi8vcHJvYmxlbS8zMzg3NzgzCisgICAgICAgICAgICAi
RFJIVCIsICMgZGl0dG8gKGVuZGlhbiBsaXR0bGUgaGF0ZSBpKQorICAgICAgICApOworICAgIH0K
KworICAgIGlmIChpc0xlb3BhcmQoKSkgeworICAgICAgICAjIExlYWsgbGlzdCBmb3IgdGhlIHZl
cnNpb24gb2YgTGVvcGFyZCB1c2VkIG9uIHRoZSBidWlsZCBib3QuCisgICAgICAgIHB1c2ggQGNh
bGxTdGFja3NUb0V4Y2x1ZGUsICgKKyAgICAgICAgICAgICJDRkhUVFBNZXNzYWdlQXBwZW5kQnl0
ZXMiLCAjIGxlYWsgaW4gQ0ZOZXR3b3JrLCByZGFyOi8vcHJvYmxlbS81NDM1OTEyCisgICAgICAg
ICAgICAic2VuZERpZFJlY2VpdmVEYXRhQ2FsbGJhY2siLCAjIGxlYWsgaW4gQ0ZOZXR3b3JrLCBy
ZGFyOi8vcHJvYmxlbS81NDQxNjE5CisgICAgICAgICAgICAiX0NGSFRUUFJlYWRTdHJlYW1SZWFk
TWFyayIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE0NjgKKyAgICAg
ICAgICAgICJodHRwUHJvdG9jb2xTdGFydCIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9w
cm9ibGVtLzU0Njg4MzcKKyAgICAgICAgICAgICJfQ0ZVUkxDb25uZWN0aW9uU2VuZENhbGxiYWNr
cyIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE2MDAKKyAgICAgICAg
ICAgICJEaXNwYXRjaFFUTXNnIiwgIyBsZWFrIGluIFF1aWNrVGltZSwgUFBDIG9ubHksIHJkYXI6
Ly9wcm9ibGVtLzU2NjcxMzIKKyAgICAgICAgICAgICJRVE1vdmllQ29udGVudFZpZXcgY3JlYXRl
VmlzdWFsQ29udGV4dCIsICMgbGVhayBpbiBRdWlja1RpbWUsIFBQQyBvbmx5LCByZGFyOi8vcHJv
YmxlbS81NjY3MTMyCisgICAgICAgICAgICAiX0NvcHlBcmNoaXRlY3R1cmVzRm9ySlZNVmVyc2lv
biIsICMgbGVhayBpbiBKYXZhLCByZGFyOi8vcHJvYmxlbS81OTEwODIzCisgICAgICAgICk7Cisg
ICAgfQorCisgICAgaWYgKGlzU25vd0xlb3BhcmQoKSkgeworICAgICAgICBwdXNoIEBjYWxsU3Rh
Y2tzVG9FeGNsdWRlLCAoCisgICAgICAgICAgICAicmVhZE1ha2VyTm90ZVByb3BzIiwgIyA8cmRh
cjovL3Byb2JsZW0vNzE1NjQzMj4gbGVhayBpbiBJbWFnZUlPCisgICAgICAgICAgICAiUVRLaXRN
b3ZpZUNvbnRyb2xsZXJWaWV3IGNvbXBsZXRlVUlTZXR1cCIsICMgPHJkYXI6Ly9wcm9ibGVtLzcx
NTUxNTY+IGxlYWsgaW4gUVRLaXQKKyAgICAgICAgICAgICJnZXRWTUluaXRBcmdzIiwgIyA8cmRh
cjovL3Byb2JsZW0vNzcxNDQ0ND4gbGVhayBpbiBKYXZhCisgICAgICAgICAgICAiSmF2YV9qYXZh
X2xhbmdfU3lzdGVtX2luaXRQcm9wZXJ0aWVzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzcxNDQ2NT4g
bGVhayBpbiBKYXZhCisgICAgICAgICk7CisgICAgfQorCisgICAgbXkgJGxlYWtzVG9vbCA9IHNv
dXJjZURpcigpIC4gIi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi1sZWFrcyI7CisgICAgbXkgJGV4
Y2x1ZGVTdHJpbmcgPSAiLS1leGNsdWRlLWNhbGxzdGFjayAnIiAuIChqb2luICInIC0tZXhjbHVk
ZS1jYWxsc3RhY2sgJyIsIEBjYWxsU3RhY2tzVG9FeGNsdWRlKSAuICInIjsKKyAgICAkZXhjbHVk
ZVN0cmluZyAuPSAiIC0tZXhjbHVkZS10eXBlICciIC4gKGpvaW4gIicgLS1leGNsdWRlLXR5cGUg
JyIsIEB0eXBlc1RvRXhjbHVkZSkgLiAiJyIgaWYgQHR5cGVzVG9FeGNsdWRlOworCisgICAgcHJp
bnQgIiA/IGNoZWNraW5nIGZvciBsZWFrcyBpbiAkZHVtcFRvb2xOYW1lXG4iOworICAgIG15ICRs
ZWFrc091dHB1dCA9IGAkbGVha3NUb29sICRleGNsdWRlU3RyaW5nICRkdW1wVG9vbFBJRGA7Cisg
ICAgbXkgKCRjb3VudCwgJGJ5dGVzKSA9ICRsZWFrc091dHB1dCA9fiAvUHJvY2VzcyAkZHVtcFRv
b2xQSUQ6IChcZCspIGxlYWtzPyBmb3IgKFxkKykgdG90YWwvOworICAgIG15ICgkZXhjbHVkZWQp
ID0gJGxlYWtzT3V0cHV0ID1+IC8oXGQrKSBsZWFrcz8gZXhjbHVkZWQvOworCisgICAgbXkgJGFk
anVzdGVkQ291bnQgPSAkY291bnQ7CisgICAgJGFkanVzdGVkQ291bnQgLT0gJGV4Y2x1ZGVkIGlm
ICRleGNsdWRlZDsKKworICAgIGlmICghJGFkanVzdGVkQ291bnQpIHsKKyAgICAgICAgcHJpbnQg
IiAtIG5vIGxlYWtzIGZvdW5kXG4iOworICAgICAgICB1bmxpbmsgJGxlYWtzRmlsZVBhdGg7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0gZWxzZSB7CisgICAgICAgIG15ICRkaXIgPSAkbGVha3NG
aWxlUGF0aDsKKyAgICAgICAgJGRpciA9fiBzfC9bXi9dKyR8fCBvciBkaWU7CisgICAgICAgIG1r
cGF0aCAkZGlyOworCisgICAgICAgIGlmICgkZXhjbHVkZWQpIHsKKyAgICAgICAgICAgIHByaW50
ICIgKyAkYWRqdXN0ZWRDb3VudCBsZWFrcyAoJGJ5dGVzIGJ5dGVzIGluY2x1ZGluZyAkZXhjbHVk
ZWQgZXhjbHVkZWQgbGVha3MpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhc
biI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludCAiICsgJGNvdW50IGxlYWtz
ICgkYnl0ZXMgYnl0ZXMpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhcbiI7
CisgICAgICAgIH0KKworICAgICAgICB3cml0ZVRvRmlsZSgkbGVha3NGaWxlUGF0aCwgJGxlYWtz
T3V0cHV0KTsKKyAgICAgICAgCisgICAgICAgIHB1c2ggQGxlYWtzRmlsZW5hbWVzLCAkbGVha3NG
aWxlUGF0aDsKKyAgICB9CisKKyAgICByZXR1cm4gJGFkanVzdGVkQ291bnQ7Cit9CisKK3N1YiB3
cml0ZVRvRmlsZSgkJCkKK3sKKyAgICBteSAoJGZpbGVQYXRoLCAkY29udGVudHMpID0gQF87Cisg
ICAgb3BlbiBORVdGSUxFLCAiPiIsICIkZmlsZVBhdGgiIG9yIGRpZSAiQ291bGQgbm90IGNyZWF0
ZSAkZmlsZVBhdGguICQhXG4iOworICAgIHByaW50IE5FV0ZJTEUgJGNvbnRlbnRzOworICAgIGNs
b3NlIE5FV0ZJTEU7Cit9CisKKyMgQnJlYWsgdXAgYSBwYXRoIGludG8gdGhlIGRpcmVjdG9yeSAo
d2l0aCBzbGFzaCkgYW5kIGJhc2UgbmFtZS4KK3N1YiBzcGxpdHBhdGgoJCkKK3sKKyAgICBteSAo
JHBhdGgpID0gQF87CisKKyAgICBteSAkcGF0aFNlcGFyYXRvciA9ICIvIjsKKyAgICBteSAkZGly
bmFtZSA9IGRpcm5hbWUoJHBhdGgpIC4gJHBhdGhTZXBhcmF0b3I7CisgICAgJGRpcm5hbWUgPSAi
IiBpZiAkZGlybmFtZSBlcSAiLiIgLiAkcGF0aFNlcGFyYXRvcjsKKworICAgIHJldHVybiAoJGRp
cm5hbWUsIGJhc2VuYW1lKCRwYXRoKSk7Cit9CisKKyMgU29ydCBmaXJzdCBieSBkaXJlY3Rvcnks
IHRoZW4gYnkgZmlsZSwgc28gYWxsIHBhdGhzIGluIG9uZSBkaXJlY3RvcnkgYXJlIGdyb3VwZWQK
KyMgcmF0aGVyIHRoYW4gYmVpbmcgaW50ZXJzcGVyc2VkIHdpdGggaXRlbXMgZnJvbSBzdWJkaXJl
Y3Rvcmllcy4KKyMgVXNlIG51bWVyaWNjbXAgdG8gc29ydCBkaXJlY3RvcnkgYW5kIGZpbGVuYW1l
cyB0byBtYWtlIG9yZGVyIGxvZ2ljYWwuCitzdWIgcGF0aGNtcCgkJCkKK3sKKyAgICBteSAoJHBh
dGhhLCAkcGF0aGIpID0gQF87CisKKyAgICBteSAoJGRpcmEsICRuYW1lYSkgPSBzcGxpdHBhdGgo
JHBhdGhhKTsKKyAgICBteSAoJGRpcmIsICRuYW1lYikgPSBzcGxpdHBhdGgoJHBhdGhiKTsKKwor
ICAgIHJldHVybiBudW1lcmljY21wKCRkaXJhLCAkZGlyYikgaWYgJGRpcmEgbmUgJGRpcmI7Cisg
ICAgcmV0dXJuIG51bWVyaWNjbXAoJG5hbWVhLCAkbmFtZWIpOworfQorCisjIFNvcnQgbnVtZXJp
YyBwYXJ0cyBvZiBzdHJpbmdzIGFzIG51bWJlcnMsIG90aGVyIHBhcnRzIGFzIHN0cmluZ3MuCisj
IE1ha2VzIDEuMzMgY29tZSBhZnRlciAxLjMsIHdoaWNoIGlzIGNvb2wuCitzdWIgbnVtZXJpY2Nt
cCgkJCkKK3sKKyAgICBteSAoJGFhLCAkYmIpID0gQF87CisKKyAgICBteSBAYSA9IHNwbGl0IC8o
XGQrKS8sICRhYTsKKyAgICBteSBAYiA9IHNwbGl0IC8oXGQrKS8sICRiYjsKKworICAgICMgQ29t
cGFyZSBvbmUgY2h1bmsgYXQgYSB0aW1lLgorICAgICMgRWFjaCBjaHVuayBpcyBlaXRoZXIgYWxs
IG51bWVyaWMgZGlnaXRzLCBvciBhbGwgbm90IG51bWVyaWMgZGlnaXRzLgorICAgIHdoaWxlIChA
YSAmJiBAYikgeworICAgICAgICBteSAkYSA9IHNoaWZ0IEBhOworICAgICAgICBteSAkYiA9IHNo
aWZ0IEBiOworICAgICAgICAKKyAgICAgICAgIyBVc2UgbnVtZXJpYyBjb21wYXJpc29uIGlmIGNo
dW5rcyBhcmUgbm9uLWVxdWFsIG51bWJlcnMuCisgICAgICAgIHJldHVybiAkYSA8PT4gJGIgaWYg
JGEgPX4gL15cZC8gJiYgJGIgPX4gL15cZC8gJiYgJGEgIT0gJGI7CisKKyAgICAgICAgIyBVc2Ug
c3RyaW5nIGNvbXBhcmlzb24gaWYgY2h1bmtzIGFyZSBhbnkgb3RoZXIga2luZCBvZiBub24tZXF1
YWwgc3RyaW5nLgorICAgICAgICByZXR1cm4gJGEgY21wICRiIGlmICRhIG5lICRiOworICAgIH0K
KyAgICAKKyAgICAjIE9uZSBvZiB0aGUgdHdvIGlzIG5vdyBlbXB0eTsgY29tcGFyZSBsZW5ndGhz
IGZvciByZXN1bHQgaW4gdGhpcyBjYXNlLgorICAgIHJldHVybiBAYSA8PT4gQGI7Cit9CisKKyMg
U29ydCBzbG93ZXN0IHRlc3RzIGZpcnN0Lgorc3ViIHNsb3dlc3RjbXAoJCQpCit7CisgICAgbXkg
KCR0ZXN0YSwgJHRlc3RiKSA9IEBfOworCisgICAgbXkgJGR1cmEgPSAkZHVyYXRpb25zeyR0ZXN0
YX07CisgICAgbXkgJGR1cmIgPSAkZHVyYXRpb25zeyR0ZXN0Yn07CisgICAgcmV0dXJuICRkdXJi
IDw9PiAkZHVyYSBpZiAkZHVyYSAhPSAkZHVyYjsKKyAgICByZXR1cm4gcGF0aGNtcCgkdGVzdGEs
ICR0ZXN0Yik7Cit9CisKK3N1YiBsYXVuY2hXaXRoRW52KFxAXCUpCit7CisgICAgbXkgKCRhcmdz
LCAkZW52KSA9IEBfOworCisgICAgIyBEdW1wIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGFzIHBl
cmwgY29kZSBhbmQgdGhlbiBwdXQgaXQgaW4gcXVvdGVzIHNvIGl0IGlzIG9uZSBwYXJhbWV0ZXIu
CisgICAgbXkgJGVudmlyb25tZW50RHVtcGVyID0gRGF0YTo6RHVtcGVyLT5uZXcoW1wleyRlbnZ9
XSwgW3F3KCpFTlYpXSk7CisgICAgJGVudmlyb25tZW50RHVtcGVyLT5JbmRlbnQoMCk7CisgICAg
JGVudmlyb25tZW50RHVtcGVyLT5QdXJpdHkoMSk7CisgICAgbXkgJGFsbEVudlZhcnMgPSAkZW52
aXJvbm1lbnREdW1wZXItPkR1bXAoKTsKKyAgICB1bnNoaWZ0IEB7JGFyZ3N9LCAiXCIkYWxsRW52
VmFyc1wiIjsKKworICAgIG15ICRleGVjU2NyaXB0ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShzb3Vy
Y2VEaXIoKSwgcXcoV2ViS2l0VG9vbHMgU2NyaXB0cyBleGVjQXBwV2l0aEVudikpOworICAgIHVu
c2hpZnQgQHskYXJnc30sICRleGVjU2NyaXB0OworICAgIHJldHVybiBAeyRhcmdzfTsKK30KKwor
c3ViIHJlc29sdmVBbmRNYWtlVGVzdFJlc3VsdHNEaXJlY3RvcnkoKQoreworICAgIG15ICRhYnNU
ZXN0UmVzdWx0c0RpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoZ2xvYiAkdGVzdFJlc3Vs
dHNEaXJlY3RvcnkpOworICAgIG1rcGF0aCAkYWJzVGVzdFJlc3VsdHNEaXJlY3Rvcnk7CisgICAg
cmV0dXJuICRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeTsKK30KKworc3ViIG9wZW5EaWZmVG9vbCgp
Cit7CisgICAgcmV0dXJuIGlmICRpc0RpZmZUb29sT3BlbjsKKyAgICByZXR1cm4gaWYgISRwaXhl
bFRlc3RzOworCisgICAgbXkgJUNMRUFOX0VOVjsKKyAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNr
TG9nZ2luZ30gPSAxIGlmICRzaG91bGRDaGVja0xlYWtzOworICAgICRpbWFnZURpZmZUb29sUElE
ID0gb3BlbjIoXCpESUZGSU4sIFwqRElGRk9VVCwgJGltYWdlRGlmZlRvb2wsIGxhdW5jaFdpdGhF
bnYoQGRpZmZUb29sQXJncywgJUNMRUFOX0VOVikpIG9yIGRpZSAidW5hYmxlIHRvIG9wZW4gJGlt
YWdlRGlmZlRvb2xcbiI7CisgICAgJGlzRGlmZlRvb2xPcGVuID0gMTsKK30KKworc3ViIG9wZW5E
dW1wVG9vbCgpCit7CisgICAgcmV0dXJuIGlmICRpc0R1bXBUb29sT3BlbjsKKworICAgIG15ICVD
TEVBTl9FTlY7CisKKyAgICAjIEdlbmVyaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgaWYg
KGRlZmluZWQgJEVOVnsnV0VCS0lUX1RFU1RGT05UUyd9KSB7CisgICAgICAgICRDTEVBTl9FTlZ7
V0VCS0lUX1RFU1RGT05UU30gPSAkRU5WeydXRUJLSVRfVEVTVEZPTlRTJ307CisgICAgfQorCisg
ICAgIyB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgZWFjaCBEdW1wUmVuZGVydHJlZSAt
IG5lZWRlZCBmb3IgcnVubmluZyBtb3JlIER1bXBSZW5kZXJUcmVlIGluIHBhcmFsbGVsCisgICAg
JENMRUFOX0VOVntEVU1QUkVOREVSVFJFRV9URU1QfSA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoJ0R1
bXBSZW5kZXJUcmVlLVhYWFhYWCcsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+IDEpOworICAgICRD
TEVBTl9FTlZ7WE1MX0NBVEFMT0dfRklMRVN9ID0gIiI7ICMgd29yayBhcm91bmQgbWlzc2luZyAv
ZXRjL2NhdGFsb2cgPHJkYXI6Ly9wcm9ibGVtLzQyOTI5OTU+CisKKyAgICAjIFBsYXRmb3JtIHNw
ZXNpZmljcworICAgIGlmIChpc0xpbnV4KCkpIHsKKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsn
RElTUExBWSd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We0RJU1BMQVl9ID0gJEVOVnsnRElT
UExBWSd9OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJENMRUFOX0VOVntESVNQTEFZ
fSA9ICI6MSI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnWEFVVEhPUklU
WSd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We1hBVVRIT1JJVFl9ID0gJEVOVnsnWEFVVEhP
UklUWSd9OworICAgICAgICB9CisKKyAgICAgICAgJENMRUFOX0VOVntIT01FfSA9ICRFTlZ7J0hP
TUUnfTsKKworICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydMRF9MSUJSQVJZX1BBVEgnfSkgewor
ICAgICAgICAgICAgJENMRUFOX0VOVntMRF9MSUJSQVJZX1BBVEh9ID0gJEVOVnsnTERfTElCUkFS
WV9QQVRIJ307CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnREJVU19TRVNT
SU9OX0JVU19BRERSRVNTJ30pIHsKKyAgICAgICAgICAgICRDTEVBTl9FTlZ7REJVU19TRVNTSU9O
X0JVU19BRERSRVNTfSA9ICRFTlZ7J0RCVVNfU0VTU0lPTl9CVVNfQUREUkVTUyd9OworICAgICAg
ICB9CisgICAgfSBlbHNpZiAoaXNEYXJ3aW4oKSkgeworICAgICAgICBpZiAoZGVmaW5lZCAkRU5W
eydEWUxEX0xJQlJBUllfUEFUSCd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We0RZTERfTElC
UkFSWV9QQVRIfSA9ICRFTlZ7J0RZTERfTElCUkFSWV9QQVRIJ307CisgICAgICAgIH0KKworICAg
ICAgICAkQ0xFQU5fRU5We0RZTERfRlJBTUVXT1JLX1BBVEh9ID0gJHByb2R1Y3REaXI7CisgICAg
ICAgICRDTEVBTl9FTlZ7RFlMRF9JTlNFUlRfTElCUkFSSUVTfSA9ICIvdXNyL2xpYi9saWJnbWFs
bG9jLmR5bGliIiBpZiAkZ3VhcmRNYWxsb2M7CisgICAgfSBlbHNpZiAoaXNDeWd3aW4oKSkgewor
ICAgICAgICAkQ0xFQU5fRU5We0hPTUVEUklWRX0gPSAkRU5WeydIT01FRFJJVkUnfTsKKyAgICAg
ICAgJENMRUFOX0VOVntIT01FUEFUSH0gPSAkRU5WeydIT01FUEFUSCd9OworCisgICAgICAgIHNl
dFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlQ0xFQU5fRU5WKTsKKyAgICB9CisKKyAgICAjIFBv
cnQgc3Blc2lmaWNzCisgICAgaWYgKGlzUXQoKSkgeworICAgICAgICAkQ0xFQU5fRU5We1FUV0VC
S0lUX1BMVUdJTl9QQVRIfSA9IHByb2R1Y3REaXIoKSAuICIvbGliL3BsdWdpbnMiOworICAgIH0K
KyAgICAKKyAgICBteSBAYXJncyA9ICgkZHVtcFRvb2wsIEB0b29sQXJncyk7CisgICAgaWYgKGlz
QXBwbGVNYWNXZWJLaXQoKSBhbmQgIWlzVGlnZXIoKSkgeyAKKyAgICAgICAgdW5zaGlmdCBAYXJn
cywgImFyY2giLCAiLSIgLiBhcmNoaXRlY3R1cmUoKTsgICAgICAgICAgICAgCisgICAgfQorCisg
ICAgaWYgKCR1c2VWYWxncmluZCkgeworICAgICAgICB1bnNoaWZ0IEBhcmdzLCAidmFsZ3JpbmQi
LCAiLS1zdXBwcmVzc2lvbnM9JHBsYXRmb3JtQmFzZURpcmVjdG9yeS9xdC9TdXBwcmVzc2VkVmFs
Z3JpbmRFcnJvcnMiOworICAgIH0gCisKKyAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9nZ2lu
Z30gPSAxIGlmICRzaG91bGRDaGVja0xlYWtzOworCisgICAgJGR1bXBUb29sUElEID0gb3BlbjMo
XCpPVVQsIFwqSU4sIFwqRVJST1IsIGxhdW5jaFdpdGhFbnYoQGFyZ3MsICVDTEVBTl9FTlYpKSBv
ciBkaWUgIkZhaWxlZCB0byBzdGFydCB0b29sOiAkZHVtcFRvb2xcbiI7CisgICAgJGlzRHVtcFRv
b2xPcGVuID0gMTsKKyAgICAkZHVtcFRvb2xDcmFzaGVkID0gMDsKK30KKworc3ViIGNsb3NlRHVt
cFRvb2woKQoreworICAgIHJldHVybiBpZiAhJGlzRHVtcFRvb2xPcGVuOworCisgICAgY2xvc2Ug
SU47CisgICAgY2xvc2UgT1VUOworICAgIHdhaXRwaWQgJGR1bXBUb29sUElELCAwOworICAgIAor
ICAgICMgY2hlY2sgZm9yIFdlYkNvcmUgY291bnRlciBsZWFrcy4KKyAgICBpZiAoJHNob3VsZENo
ZWNrTGVha3MpIHsKKyAgICAgICAgd2hpbGUgKDxFUlJPUj4pIHsKKyAgICAgICAgICAgIHByaW50
OworICAgICAgICB9CisgICAgfQorICAgIGNsb3NlIEVSUk9SOworICAgICRpc0R1bXBUb29sT3Bl
biA9IDA7Cit9CisKK3N1YiBkdW1wVG9vbERpZENyYXNoKCkKK3sKKyAgICByZXR1cm4gMSBpZiAk
ZHVtcFRvb2xDcmFzaGVkOworICAgIHJldHVybiAwIHVubGVzcyAkaXNEdW1wVG9vbE9wZW47Cisg
ICAgbXkgJHBpZCA9IHdhaXRwaWQoLTEsIFdOT0hBTkcpOworICAgIHJldHVybiAxIGlmICgkcGlk
ID09ICRkdW1wVG9vbFBJRCk7CisKKyAgICAjIE9uIE1hYyBPUyBYLCBjcmFzaGluZyBtYXkgYmUg
c2lnbmlmaWNhbnRseSBkZWxheWVkIGJ5IGNyYXNoIHJlcG9ydGVyLgorICAgIHJldHVybiAwIHVu
bGVzcyBpc0FwcGxlTWFjV2ViS2l0KCk7CisKKyAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBw
b3J0Ojpwcm9jZXNzSXNDcmFzaGluZygkZHVtcFRvb2xQSUQpOworfQorCitzdWIgY29uZmlndXJl
QW5kT3BlbkhUVFBESWZOZWVkZWQoKQoreworICAgIHJldHVybiBpZiAkaXNIdHRwZE9wZW47Cisg
ICAgbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0
c0RpcmVjdG9yeSgpOworICAgIG15ICRsaXN0ZW4gPSAiMTI3LjAuMC4xOiRodHRwZFBvcnQiOwor
ICAgIG15IEBhcmdzID0gKAorICAgICAgICAiLWMiLCAiQ3VzdG9tTG9nIFwiJGFic1Rlc3RSZXN1
bHRzRGlyZWN0b3J5L2FjY2Vzc19sb2cudHh0XCIgY29tbW9uIiwKKyAgICAgICAgIi1jIiwgIkVy
cm9yTG9nIFwiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5L2Vycm9yX2xvZy50eHRcIiIsCisgICAg
ICAgICItQyIsICJMaXN0ZW4gJGxpc3RlbiIKKyAgICApOworCisgICAgbXkgQGRlZmF1bHRBcmdz
ID0gZ2V0RGVmYXVsdENvbmZpZ0ZvclRlc3REaXJlY3RvcnkoJHRlc3REaXJlY3RvcnkpOworICAg
IEBhcmdzID0gKEBkZWZhdWx0QXJncywgQGFyZ3MpOworCisgICAgd2FpdEZvckhUVFBETG9jaygp
IGlmICRzaG91bGRXYWl0Rm9ySFRUUEQ7CisgICAgJGlzSHR0cGRPcGVuID0gb3BlbkhUVFBEKEBh
cmdzKTsKK30KKworc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpCit7CisgICAgcmV0
dXJuIDEgaWYgJGlzV2ViU29ja2V0U2VydmVyT3BlbjsKKyAgICByZXR1cm4gMCBpZiAkZmFpbGVk
VG9TdGFydFdlYlNvY2tldFNlcnZlcjsKKworICAgIG15ICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoID0g
Ii91c3IvYmluL3B5dGhvbiI7CisgICAgbXkgJHdlYlNvY2tldFB5dGhvblBhdGggPSAiV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0IjsKKyAgICBteSAk
d2ViU29ja2V0SGFuZGxlckRpciA9ICIkdGVzdERpcmVjdG9yeSI7CisgICAgbXkgJHdlYlNvY2tl
dEhhbmRsZXJTY2FuRGlyID0gIiR0ZXN0RGlyZWN0b3J5L3dlYnNvY2tldC90ZXN0cyI7CisgICAg
bXkgJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlID0gIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpci9o
YW5kbGVyX21hcC50eHQiOworICAgIG15ICRzc2xDZXJ0aWZpY2F0ZSA9ICIkdGVzdERpcmVjdG9y
eS9odHRwL2NvbmYvd2Via2l0LWh0dHBkLnBlbSI7CisgICAgbXkgJGFic1Rlc3RSZXN1bHRzRGly
ZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOworICAgIG15ICRs
b2dGaWxlID0gIiRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeS9weXdlYnNvY2tldF9sb2cudHh0IjsK
KworICAgIG15IEBhcmdzID0gKAorICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IiwK
KyAgICAgICAgIi0tc2VydmVyLWhvc3QiLCAiMTI3LjAuMC4xIiwKKyAgICAgICAgIi0tcG9ydCIs
ICIkd2ViU29ja2V0UG9ydCIsCisgICAgICAgICItLWRvY3VtZW50LXJvb3QiLCAiJHdlYlNvY2tl
dEhhbmRsZXJEaXIiLAorICAgICAgICAiLS1zY2FuLWRpciIsICIkd2ViU29ja2V0SGFuZGxlclNj
YW5EaXIiLAorICAgICAgICAiLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlIiwgIiR3ZWJTb2Nr
ZXRIYW5kbGVyTWFwRmlsZSIsCisgICAgICAgICItLWNnaS1wYXRocyIsICIvd2Vic29ja2V0L3Rl
c3RzIiwKKyAgICAgICAgIi0tbG9nLWZpbGUiLCAiJGxvZ0ZpbGUiLAorICAgICAgICAiLS1zdHJp
Y3QiLAorICAgICk7CisgICAgIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBz
dXBwb3J0IHB5T3BlblNTTC4KKyAgICAjIG15IEBhcmdzU2VjdXJlID0gKAorICAgICMgICAgICJX
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkiLAorICAgICMgICAgICItcCIsICIkd2ViU29ja2V0U2Vj
dXJlUG9ydCIsCisgICAgIyAgICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKKyAgICAj
ICAgICAiLXQiLAorICAgICMgICAgICItayIsICIkc3NsQ2VydGlmaWNhdGUiLAorICAgICMgICAg
ICItYyIsICIkc3NsQ2VydGlmaWNhdGUiLAorICAgICMgKTsKKworICAgICRFTlZ7IlBZVEhPTlBB
VEgifSA9ICR3ZWJTb2NrZXRQeXRob25QYXRoOworICAgICR3ZWJTb2NrZXRTZXJ2ZXJQSUQgPSBv
cGVuMyhcKldFQlNPQ0tFVFNFUlZFUl9JTiwgXCpXRUJTT0NLRVRTRVJWRVJfT1VULCBcKldFQlNP
Q0tFVFNFUlZFUl9FUlIsICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoLCBAYXJncyk7CisgICAgIyB3c3Mg
aXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KKyAgICAj
ICR3ZWJTb2NrZXRTZWN1cmVTZXJ2ZXJQSUQgPSBvcGVuMyhcKldFQlNPQ0tFVFNFQ1VSRVNFUlZF
Ul9JTiwgXCpXRUJTT0NLRVRTRUNVUkVTRVJWRVJfT1VULCBcKldFQlNPQ0tFVFNFQ1VSRVNFUlZF
Ul9FUlIsICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoLCBAYXJnc1NlY3VyZSk7CisgICAgIyBteSBAbGlz
dGVuID0gKCJodHRwOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0IiwgImh0dHBzOi8vMTI3LjAu
MC4xOiR3ZWJTb2NrZXRTZWN1cmVQb3J0Iik7CisgICAgbXkgQGxpc3RlbiA9ICgiaHR0cDovLzEy
Ny4wLjAuMTokd2ViU29ja2V0UG9ydCIpOworICAgIGZvciAobXkgJGkgPSAwOyAkaSA8IEBsaXN0
ZW47ICRpKyspIHsKKyAgICAgICAgbXkgJHJldHJ5Q291bnQgPSAxMDsKKyAgICAgICAgd2hpbGUg
KHN5c3RlbSgiL3Vzci9iaW4vY3VybCAtayAtcSAtLXNpbGVudCAtLXN0ZGVyciAtIC0tb3V0cHV0
IC9kZXYvbnVsbCAkbGlzdGVuWyRpXSIpICYmICRyZXRyeUNvdW50KSB7CisgICAgICAgICAgICBz
bGVlcCAxOworICAgICAgICAgICAgLS0kcmV0cnlDb3VudDsKKyAgICAgICAgfQorICAgICAgICB1
bmxlc3MgKCRyZXRyeUNvdW50KSB7CisgICAgICAgICAgICBwcmludCBTVERFUlIgIlRpbWVkIG91
dCB3YWl0aW5nIGZvciBXZWJTb2NrZXRTZXJ2ZXIgdG8gc3RhcnQuXG4iOworICAgICAgICAgICAg
JGZhaWxlZFRvU3RhcnRXZWJTb2NrZXRTZXJ2ZXIgPSAxOworICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMTsKKyAg
ICByZXR1cm4gMTsKK30KKworc3ViIGNsb3NlV2ViU29ja2V0U2VydmVyKCkKK3sKKyAgICByZXR1
cm4gaWYgISRpc1dlYlNvY2tldFNlcnZlck9wZW47CisKKyAgICBjbG9zZSBXRUJTT0NLRVRTRVJW
RVJfSU47CisgICAgY2xvc2UgV0VCU09DS0VUU0VSVkVSX09VVDsKKyAgICBjbG9zZSBXRUJTT0NL
RVRTRVJWRVJfRVJSOworICAgIGtpbGwgMTUsICR3ZWJTb2NrZXRTZXJ2ZXJQSUQ7CisKKyAgICAj
IHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgor
ICAgICMgY2xvc2UgV0VCU09DS0VUU0VDVVJFU0VSVkVSX0lOOworICAgICMgY2xvc2UgV0VCU09D
S0VUU0VDVVJFU0VSVkVSX09VVDsKKyAgICAjIGNsb3NlIFdFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9F
UlI7CisgICAgIyBraWxsIDE1LCAkd2ViU29ja2V0U2VjdXJlU2VydmVyUElEOworCisgICAgJGlz
V2ViU29ja2V0U2VydmVyT3BlbiA9IDA7Cit9CisKK3N1YiBmaWxlTmFtZVdpdGhOdW1iZXIoJCQp
Cit7CisgICAgbXkgKCRiYXNlLCAkbnVtYmVyKSA9IEBfOworICAgIHJldHVybiAiJGJhc2UkbnVt
YmVyIiBpZiAoJG51bWJlciA+IDEpOworICAgIHJldHVybiAkYmFzZTsKK30KKworc3ViIHByb2Nl
c3NJZ25vcmVUZXN0cygkJCkKK3sKKyAgICBteSBAaWdub3JlTGlzdCA9IHNwbGl0KC9ccyosXHMq
Lywgc2hpZnQpOworICAgIG15ICRsaXN0TmFtZSA9IHNoaWZ0OworCisgICAgbXkgJGRpc2FibGVk
U3VmZml4ID0gIi1kaXNhYmxlZCI7CisKKyAgICBteSAkYWRkSWdub3JlZERpcmVjdG9yaWVzID0g
c3ViIHsKKyAgICAgICAgcmV0dXJuICgpIGlmIGV4aXN0cyAkaWdub3JlZExvY2FsRGlyZWN0b3Jp
ZXN7YmFzZW5hbWUoJEZpbGU6OkZpbmQ6OmRpcil9OworICAgICAgICAkaWdub3JlZERpcmVjdG9y
aWVze0ZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6OmRpciwgJHRlc3REaXJlY3Rvcnkp
fSA9IDE7CisgICAgICAgIHJldHVybiBAXzsKKyAgICB9OworICAgIGZvcmVhY2ggbXkgJGl0ZW0g
KEBpZ25vcmVMaXN0KSB7CisgICAgICAgIG15ICRwYXRoID0gY2F0ZmlsZSgkdGVzdERpcmVjdG9y
eSwgJGl0ZW0pOyAKKyAgICAgICAgaWYgKC1kICRwYXRoKSB7CisgICAgICAgICAgICAkaWdub3Jl
ZERpcmVjdG9yaWVzeyRpdGVtfSA9IDE7CisgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9
PiAkYWRkSWdub3JlZERpcmVjdG9yaWVzLCB3YW50ZWQgPT4gc3ViIHt9IH0sICRwYXRoKTsKKyAg
ICAgICAgfQorICAgICAgICBlbHNpZiAoLWYgJHBhdGgpIHsKKyAgICAgICAgICAgICRpZ25vcmVk
RmlsZXN7JGl0ZW19ID0gMTsKKyAgICAgICAgfSBlbHNpZiAoLWYgJHBhdGggLiAkZGlzYWJsZWRT
dWZmaXgpIHsKKyAgICAgICAgICAgICMgVGhlIHRlc3QgaXMgZGlzYWJsZWQsIHNvIGRvIG5vdGhp
bmcuCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludCAiJGxpc3ROYW1lIGxpc3Qg
Y29udGFpbmVkICckaXRlbScsIGJ1dCBubyBmaWxlIG9mIHRoYXQgbmFtZSBjb3VsZCBiZSBmb3Vu
ZFxuIjsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIHN0cmlwRXh0ZW5zaW9uKCQpCit7Cisg
ICAgbXkgKCR0ZXN0KSA9IEBfOworCisgICAgJHRlc3QgPX4gcy9cLlthLXpBLVpdKyQvLzsKKyAg
ICByZXR1cm4gJHRlc3Q7Cit9CisKK3N1YiBpc1RleHRPbmx5VGVzdCgkKQoreworICAgIG15ICgk
YWN0dWFsKSA9IEBfOworICAgIG15ICRpc1RleHQ7CisgICAgaWYgKCRhY3R1YWwgPX4gL15sYXll
ciBhdC9tcykgeworICAgICAgICAkaXNUZXh0ID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICAk
aXNUZXh0ID0gMTsKKyAgICB9CisgICAgcmV0dXJuICRpc1RleHQ7Cit9CisKK3N1YiBleHBlY3Rl
ZERpcmVjdG9yeUZvclRlc3QoJDskOyQpCit7CisgICAgbXkgKCRiYXNlLCAkaXNUZXh0LCAkZXhw
ZWN0ZWRFeHRlbnNpb24pID0gQF87CisKKyAgICBteSBAZGlyZWN0b3JpZXMgPSBAcGxhdGZvcm1S
ZXN1bHRIaWVyYXJjaHk7CisgICAgcHVzaCBAZGlyZWN0b3JpZXMsIG1hcCB7IGNhdGRpcigkcGxh
dGZvcm1CYXNlRGlyZWN0b3J5LCAkXykgfSBxdyhtYWMtc25vd2xlb3BhcmQgbWFjKSBpZiBpc0N5
Z3dpbigpOworICAgIHB1c2ggQGRpcmVjdG9yaWVzLCAkZXhwZWN0ZWREaXJlY3Rvcnk7CisKKyAg
ICAjIElmIHdlIGFscmVhZHkgaGF2ZSBleHBlY3RlZCByZXN1bHRzLCBqdXN0IHJldHVybiB0aGVp
ciBsb2NhdGlvbi4KKyAgICBmb3JlYWNoIG15ICRkaXJlY3RvcnkgKEBkaXJlY3Rvcmllcykgewor
ICAgICAgICByZXR1cm4gJGRpcmVjdG9yeSBpZiAoLWYgIiRkaXJlY3RvcnkvJGJhc2UtJGV4cGVj
dGVkVGFnLiRleHBlY3RlZEV4dGVuc2lvbiIpOworICAgIH0KKworICAgICMgRm9yIGNyb3NzLXBs
YXRmb3JtIHRlc3RzLCB0ZXh0LW9ubHkgcmVzdWx0cyBzaG91bGQgZ28gaW4gdGhlIGNyb3NzLXBs
YXRmb3JtIGRpcmVjdG9yeSwKKyAgICAjIHdoaWxlIHJlbmRlciB0cmVlIGR1bXBzIHNob3VsZCBn
byBpbiB0aGUgbGVhc3Qtc3BlY2lmaWMgcGxhdGZvcm0gZGlyZWN0b3J5LgorICAgIHJldHVybiAk
aXNUZXh0ID8gJGV4cGVjdGVkRGlyZWN0b3J5IDogJHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5WyQj
cGxhdGZvcm1SZXN1bHRIaWVyYXJjaHldOworfQorCitzdWIgY291bnRGaW5pc2hlZFRlc3QoJCQk
JCkKK3sKKyAgICBteSAoJHRlc3QsICRiYXNlLCAkcmVzdWx0LCAkaXNUZXh0KSA9IEBfOworCisg
ICAgaWYgKCgkY291bnQgKyAxKSAlICR0ZXN0c1BlckR1bXBUb29sID09IDAgfHwgJGNvdW50ID09
ICQjdGVzdHMpIHsKKyAgICAgICAgaWYgKCRzaG91bGRDaGVja0xlYWtzKSB7CisgICAgICAgICAg
ICBteSAkZmlsZU5hbWU7CisgICAgICAgICAgICBpZiAoJHRlc3RzUGVyRHVtcFRvb2wgPT0gMSkg
eworICAgICAgICAgICAgICAgICRmaWxlTmFtZSA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJh
c2UtbGVha3MudHh0IjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJGZp
bGVOYW1lID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8iIC4gZmlsZU5hbWVXaXRoTnVtYmVyKCRk
dW1wVG9vbE5hbWUsICRsZWFrc091dHB1dEZpbGVOdW1iZXIpIC4gIi1sZWFrcy50eHQiOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgbXkgJGxlYWtDb3VudCA9IGNvdW50QW5kUHJpbnRMZWFr
cygkZHVtcFRvb2xOYW1lLCAkZHVtcFRvb2xQSUQsICRmaWxlTmFtZSk7CisgICAgICAgICAgICAk
dG90YWxMZWFrcyArPSAkbGVha0NvdW50OworICAgICAgICAgICAgJGxlYWtzT3V0cHV0RmlsZU51
bWJlcisrIGlmICgkbGVha0NvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGNsb3NlRHVtcFRv
b2woKTsKKyAgICB9CisgICAgCisgICAgJGNvdW50Kys7CisgICAgJGNvdW50c3skcmVzdWx0fSsr
OworICAgIHB1c2ggQHskdGVzdHN7JHJlc3VsdH19LCAkdGVzdDsKK30KKworc3ViIHRlc3RDcmFz
aGVkT3JUaW1lZE91dCgkJCQkJCkKK3sKKyAgICBteSAoJHRlc3QsICRiYXNlLCAkZGlkQ3Jhc2gs
ICRhY3R1YWwsICRlcnJvcikgPSBAXzsKKworICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0
KCR0ZXN0LCAkZGlkQ3Jhc2ggPyAiY3Jhc2hlZCIgOiAidGltZWQgb3V0Iik7CisKKyAgICBzYW1w
bGVEdW1wVG9vbCgpIHVubGVzcyAkZGlkQ3Jhc2g7CisKKyAgICBteSAkZGlyID0gIiR0ZXN0UmVz
dWx0c0RpcmVjdG9yeS8kYmFzZSI7CisgICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9yIGRpZSAi
RmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICBta3BhdGggJGRpcjsK
KworICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisKKyAgICBpZiAo
ZGVmaW5lZCgkZXJyb3IpICYmIGxlbmd0aCgkZXJyb3IpKSB7CisgICAgICAgIHdyaXRlVG9GaWxl
KCIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGVycm9yVGFnLnR4dCIsICRlcnJvcik7Cisg
ICAgfQorCisgICAgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJGJhc2UsICRhY3R1YWwpOwor
CisgICAga2lsbCA5LCAkZHVtcFRvb2xQSUQgdW5sZXNzICRkaWRDcmFzaDsKKworICAgIGNsb3Nl
RHVtcFRvb2woKTsKK30KKworc3ViIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCQkKQorewor
ICAgIG15ICgkdGVzdCwgJGRlc2NyaXB0aW9uKSA9IEBfOworCisgICAgdW5sZXNzICgkdmVyYm9z
ZSkgeworICAgICAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgICAgIHBy
aW50ICIkdGVzdCAtPiAiOworICAgIH0KKyAgICBwcmludCAiJGRlc2NyaXB0aW9uXG4iOworICAg
ICRhdExpbmVTdGFydCA9IDE7Cit9CisKK215ICVjeWdwYXRocyA9ICgpOworCitzdWIgb3BlbkN5
Z3BhdGhJZk5lZWRlZCgkKQoreworICAgIG15ICgkb3B0aW9ucykgPSBAXzsKKworICAgIHJldHVy
biB1bmxlc3MgaXNDeWd3aW4oKTsKKyAgICByZXR1cm4gJGN5Z3BhdGhzeyRvcHRpb25zfSBpZiAk
Y3lncGF0aHN7JG9wdGlvbnN9ICYmICRjeWdwYXRoc3skb3B0aW9uc30tPnsib3BlbiJ9OworCisg
ICAgbG9jYWwgKCpDWUdQQVRISU4sICpDWUdQQVRIT1VUKTsKKyAgICBteSAkcGlkID0gb3BlbjIo
XCpDWUdQQVRISU4sIFwqQ1lHUEFUSE9VVCwgImN5Z3BhdGggLWYgLSAkb3B0aW9ucyIpOworICAg
IG15ICRjeWdwYXRoID0gIHsKKyAgICAgICAgInBpZCIgPT4gJHBpZCwKKyAgICAgICAgImluIiA9
PiAqQ1lHUEFUSElOLAorICAgICAgICAib3V0IiA9PiAqQ1lHUEFUSE9VVCwKKyAgICAgICAgIm9w
ZW4iID0+IDEKKyAgICB9OworCisgICAgJGN5Z3BhdGhzeyRvcHRpb25zfSA9ICRjeWdwYXRoOwor
CisgICAgcmV0dXJuICRjeWdwYXRoOworfQorCitzdWIgY2xvc2VDeWdwYXRocygpCit7CisgICAg
cmV0dXJuIHVubGVzcyBpc0N5Z3dpbigpOworCisgICAgZm9yZWFjaCBteSAkY3lncGF0aCAodmFs
dWVzKCVjeWdwYXRocykpIHsKKyAgICAgICAgY2xvc2UgJGN5Z3BhdGgtPnsiaW4ifTsKKyAgICAg
ICAgY2xvc2UgJGN5Z3BhdGgtPnsib3V0In07CisgICAgICAgIHdhaXRwaWQoJGN5Z3BhdGgtPnsi
cGlkIn0sIDApOworICAgICAgICAkY3lncGF0aC0+eyJvcGVuIn0gPSAwOworCisgICAgfQorfQor
CitzdWIgY29udmVydFBhdGhVc2luZ0N5Z3BhdGgoJCQpCit7CisgICAgbXkgKCRwYXRoLCAkb3B0
aW9ucykgPSBAXzsKKworICAgICMgY3lncGF0aCAtZiAoYXQgbGVhc3QgaW4gQ3lnd2luIDEuNykg
Y29udmVydHMgc3BhY2VzIGludG8gbmV3bGluZXMuIFdlIHJlbW92ZSBzcGFjZXMgaGVyZSBhbmQK
KyAgICAjIGFkZCB0aGVtIGJhY2sgaW4gYWZ0ZXIgY29udmVyc2lvbiB0byB3b3JrIGFyb3VuZCB0
aGlzLgorICAgIG15ICRzcGFjZVN1YnN0aXR1dGUgPSAiX19OT1RBU1BBQ0VfXyI7CisgICAgJHBh
dGggPX4gcy8gL1xRJHNwYWNlU3Vic3RpdHV0ZVxFL2c7CisKKyAgICBteSAkY3lncGF0aCA9IG9w
ZW5DeWdwYXRoSWZOZWVkZWQoJG9wdGlvbnMpOworICAgIGxvY2FsICppbkZIID0gJGN5Z3BhdGgt
PnsiaW4ifTsKKyAgICBsb2NhbCAqb3V0RkggPSAkY3lncGF0aC0+eyJvdXQifTsKKyAgICBwcmlu
dCBvdXRGSCAkcGF0aCAuICJcbiI7CisgICAgbXkgJGNvbnZlcnRlZFBhdGggPSA8aW5GSD47Cisg
ICAgY2hvbXAoJGNvbnZlcnRlZFBhdGgpIGlmIGRlZmluZWQgJGNvbnZlcnRlZFBhdGg7CisKKyAg
ICAkY29udmVydGVkUGF0aCA9fiBzL1xRJHNwYWNlU3Vic3RpdHV0ZVxFLyAvZzsKKyAgICByZXR1
cm4gJGNvbnZlcnRlZFBhdGg7Cit9CisKK3N1YiB0b1dpbmRvd3NQYXRoKCQpCit7CisgICAgbXkg
KCRwYXRoKSA9IEBfOworICAgIHJldHVybiB1bmxlc3MgaXNDeWd3aW4oKTsKKworICAgIHJldHVy
biBjb252ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkcGF0aCwgIi13Iik7Cit9CisKK3N1YiB0b1VSTCgk
KQoreworICAgIG15ICgkcGF0aCkgPSBAXzsKKworICAgIGlmICgkdXNlUmVtb3RlTGlua3NUb1Rl
c3RzKSB7CisgICAgICAgIG15ICRyZWxhdGl2ZVBhdGggPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRw
YXRoLCAkdGVzdERpcmVjdG9yeSk7CisKKyAgICAgICAgIyBJZiB0aGUgZmlsZSBpcyBiZWxvdyB0
aGUgdGVzdCBkaXJlY3RvcnkgdGhlbiBjb252ZXJ0IGl0IGludG8gYSBsaW5rIHRvIHRoZSBmaWxl
IGluIFNWTgorICAgICAgICBpZiAoJHJlbGF0aXZlUGF0aCAhfiAvXlwuXC5cLy8pIHsKKyAgICAg
ICAgICAgIG15ICRyZXZpc2lvbiA9IHN2blJldmlzaW9uRm9yRGlyZWN0b3J5KCR0ZXN0RGlyZWN0
b3J5KTsKKyAgICAgICAgICAgIG15ICRzdm5QYXRoID0gcGF0aFJlbGF0aXZlVG9TVk5SZXBvc2l0
b3J5Um9vdEZvclBhdGgoJHBhdGgpOworICAgICAgICAgICAgcmV0dXJuICJodHRwOi8vdHJhYy53
ZWJraXQub3JnL2V4cG9ydC8kcmV2aXNpb24vJHN2blBhdGgiOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuICRwYXRoIHVubGVzcyBpc0N5Z3dpbigpOworCisgICAgcmV0dXJuICJmaWxl
Oi8vLyIgLiBjb252ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkcGF0aCwgIi1tIik7Cit9CisKK3N1YiB2
YWxpZGF0ZVNraXBwZWRBcmcoJCQ7JCkKK3sKKyAgICBteSAoJG9wdGlvbiwgJHZhbHVlLCAkdmFs
dWUyKSA9IEBfOworICAgIG15ICV2YWxpZFNraXBwZWRWYWx1ZXMgPSBtYXAgeyAkXyA9PiAxIH0g
cXcoZGVmYXVsdCBpZ25vcmUgb25seSk7CisgICAgJHZhbHVlID0gbGMoJHZhbHVlKTsKKyAgICBk
aWUgIkludmFsaWQgYXJndW1lbnQgJyIgLiAkdmFsdWUgLiAiJyBmb3Igb3B0aW9uICRvcHRpb24i
IHVubGVzcyAkdmFsaWRTa2lwcGVkVmFsdWVzeyR2YWx1ZX07CisgICAgJHRyZWF0U2tpcHBlZCA9
ICR2YWx1ZTsKK30KKworc3ViIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihcQCQmKQoreworICAgIG15
ICgkdGVzdHMsICRkZXNjcmlwdGlvbiwgJGxpbmtHZXR0ZXIpID0gQF87CisKKyAgICBteSBAaHRt
bCA9ICgpOworICAgIHJldHVybiBqb2luKCJcbiIsIEBodG1sKSB1bmxlc3MgQHskdGVzdHN9Owor
CisgICAgcHVzaCBAaHRtbCwgIjxwPiRkZXNjcmlwdGlvbjo8L3A+IjsKKyAgICBwdXNoIEBodG1s
LCAiPHRhYmxlPiI7CisgICAgZm9yZWFjaCBteSAkdGVzdCAoQHskdGVzdHN9KSB7CisgICAgICAg
IHB1c2ggQGh0bWwsICI8dHI+IjsKKyAgICAgICAgcHVzaCBAaHRtbCwgIjx0ZD48YSBocmVmPVwi
IiAuIHRvVVJMKCIkdGVzdERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPiR0ZXN0PC9hPjwvdGQ+IjsK
KyAgICAgICAgZm9yZWFjaCBteSAkbGluayAoQHsmeyRsaW5rR2V0dGVyfSgkdGVzdCl9KSB7Cisg
ICAgICAgICAgICBwdXNoIEBodG1sLCAiPHRkPjxhIGhyZWY9XCIkbGluay0+e2hyZWZ9XCI+JGxp
bmstPnt0ZXh0fTwvYT48L3RkPiI7CisgICAgICAgIH0KKyAgICAgICAgcHVzaCBAaHRtbCwgIjwv
dHI+IjsKKyAgICB9CisgICAgcHVzaCBAaHRtbCwgIjwvdGFibGU+IjsKKworICAgIHJldHVybiBq
b2luKCJcbiIsIEBodG1sKTsKK30KKworc3ViIGxpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1
bHRzKCQpCit7CisgICAgbXkgKCRiYXNlKSA9IEBfOworCisgICAgbXkgQGxpbmtzID0gKCk7CisK
KyAgICByZXR1cm4gXEBsaW5rcyB1bmxlc3MgLXMgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFz
ZS0kZGlmZnNUYWcudHh0IjsKKyAgICAKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4
cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFt
ZSwgJGV4cGVjdGVkUmVzdWx0c0RpcmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9
IGZpbGVwYXJzZSgkZXhwZWN0ZWRSZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOworCisgICAgcHVz
aCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0RXh0
ZW5zaW9uIiwgdGV4dCA9PiAiZXhwZWN0ZWQiIH07CisgICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9
PiAiJGJhc2UtJGFjdHVhbFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gImFj
dHVhbCIgfTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcudHh0
IiwgdGV4dCA9PiAiZGlmZiIgfTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0k
cHJldHR5RGlmZlRhZy5odG1sIiwgdGV4dCA9PiAicHJldHR5IGRpZmYiIH07CisKKyAgICByZXR1
cm4gXEBsaW5rczsKK30KKworc3ViIGxpbmtzRm9yTWlzbWF0Y2hUZXN0Cit7CisgICAgbXkgKCR0
ZXN0KSA9IEBfOworCisgICAgbXkgQGxpbmtzID0gKCk7CisKKyAgICBteSAkYmFzZSA9IHN0cmlw
RXh0ZW5zaW9uKCR0ZXN0KTsKKworICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtzRm9yRXhwZWN0ZWRB
bmRBY3R1YWxSZXN1bHRzKCRiYXNlKX07CisgICAgcmV0dXJuIFxAbGlua3MgdW5sZXNzICRwaXhl
bFRlc3RzICYmICRpbWFnZXNQcmVzZW50eyRiYXNlfTsKKworICAgIHB1c2ggQGxpbmtzLCB7IGhy
ZWYgPT4gIiRiYXNlLSRleHBlY3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJleHBlY3RlZCBpbWFnZSIg
fTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcuaHRtbCIsIHRl
eHQgPT4gImltYWdlIGRpZmZzIiB9OworICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNl
LSRkaWZmc1RhZy5wbmciLCB0ZXh0ID0+ICIkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0lIiB9Owor
CisgICAgcmV0dXJuIFxAbGlua3M7Cit9CisKK3N1YiBsaW5rc0ZvckVycm9yVGVzdAoreworICAg
IG15ICgkdGVzdCkgPSBAXzsKKworICAgIG15IEBsaW5rcyA9ICgpOworCisgICAgbXkgJGJhc2Ug
PSBzdHJpcEV4dGVuc2lvbigkdGVzdCk7CisKKyAgICBwdXNoIEBsaW5rcywgQHtsaW5rc0ZvckV4
cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSl9OworICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYg
PT4gIiRiYXNlLSRlcnJvclRhZy50eHQiLCB0ZXh0ID0+ICJzdGRlcnIiIH07CisKKyAgICByZXR1
cm4gXEBsaW5rczsKK30KKworc3ViIGxpbmtzRm9yTmV3VGVzdAoreworICAgIG15ICgkdGVzdCkg
PSBAXzsKKworICAgIG15IEBsaW5rcyA9ICgpOworCisgICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVu
c2lvbigkdGVzdCk7CisKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVz
dWx0UGF0aHN7JGJhc2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVj
dGVkUmVzdWx0c0RpcmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJz
ZSgkZXhwZWN0ZWRSZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOworCisgICAgcHVzaCBAbGlua3Ms
IHsgaHJlZiA9PiAiJGJhc2UtJGFjdHVhbFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRl
eHQgPT4gInJlc3VsdCIgfTsKKyAgICBpZiAoJHBpeGVsVGVzdHMgJiYgJGltYWdlc1ByZXNlbnR7
JGJhc2V9KSB7CisgICAgICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRleHBlY3Rl
ZFRhZy5wbmciLCB0ZXh0ID0+ICJpbWFnZSIgfTsKKyAgICB9CisKKyAgICByZXR1cm4gXEBsaW5r
czsKK30KKworc3ViIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkKQoreworICAgIG15
ICgkYmFzZSkgPSBAXzsKKworICAgIHVubGluayAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNl
LSRhY3R1YWxUYWcudHh0IjsKKyAgICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFz
ZS0kZGlmZnNUYWcudHh0IjsKKyAgICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFz
ZS0kZXJyb3JUYWcudHh0IjsKK30KKworc3ViIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCQk
KQoreworICAgIG15ICgkYmFzZSwgJGFjdHVhbFJlc3VsdHMpID0gQF87CisKKyAgICByZXR1cm4g
dW5sZXNzIGRlZmluZWQoJGFjdHVhbFJlc3VsdHMpICYmIGxlbmd0aCgkYWN0dWFsUmVzdWx0cyk7
CisKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJh
c2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZU1pbnVzRXh0ZW5zaW9uLCAkZXhw
ZWN0ZWRSZXN1bHREaXJlY3RvcnlQYXRoLCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0gZmls
ZXBhcnNlKCRleHBlY3RlZFJlc3VsdFBhdGgsIHFye1wuW14uXSskfSk7CisgICAgbXkgJGFjdHVh
bFJlc3VsdHNQYXRoID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFnJGV4
cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIjsKKyAgICBteSAkY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0
aCA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVz
dWx0RXh0ZW5zaW9uIjsKKworICAgIG1rcGF0aChkaXJuYW1lKCRhY3R1YWxSZXN1bHRzUGF0aCkp
OworICAgIHdyaXRlVG9GaWxlKCIkYWN0dWFsUmVzdWx0c1BhdGgiLCAkYWN0dWFsUmVzdWx0cyk7
CisKKyAgICBpZiAoLWYgJGV4cGVjdGVkUmVzdWx0UGF0aCkgeworICAgICAgICBjb3B5KCIkZXhw
ZWN0ZWRSZXN1bHRQYXRoIiwgIiRjb3BpZWRFeHBlY3RlZFJlc3VsdHNQYXRoIik7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgb3BlbiBFTVBUWSwgIj4kY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0aCI7
CisgICAgICAgIGNsb3NlIEVNUFRZOworICAgIH0KKworICAgIG15ICRkaWZmT3VwdXRCYXNlUGF0
aCA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UiOworICAgIG15ICRkaWZmT3V0cHV0UGF0
aCA9ICIkZGlmZk91cHV0QmFzZVBhdGgtJGRpZmZzVGFnLnR4dCI7CisgICAgc3lzdGVtICJkaWZm
IC11IFwiJGNvcGllZEV4cGVjdGVkUmVzdWx0c1BhdGhcIiBcIiRhY3R1YWxSZXN1bHRzUGF0aFwi
ID4gXCIkZGlmZk91dHB1dFBhdGhcIiI7CisKKyAgICBteSAkcHJldHR5RGlmZk91dHB1dFBhdGgg
PSAiJGRpZmZPdXB1dEJhc2VQYXRoLSRwcmV0dHlEaWZmVGFnLmh0bWwiOworICAgIG15ICRwcmV0
dHlQYXRjaFBhdGggPSAiQnVnc1NpdGUvUHJldHR5UGF0Y2gvIjsKKyAgICBteSAkcHJldHRpZnlQ
YXRoID0gIiRwcmV0dHlQYXRjaFBhdGgvcHJldHRpZnkucmIiOworICAgIHN5c3RlbSAicnVieSAt
SSBcIiRwcmV0dHlQYXRjaFBhdGhcIiBcIiRwcmV0dGlmeVBhdGhcIiBcIiRkaWZmT3V0cHV0UGF0
aFwiID4gXCIkcHJldHR5RGlmZk91dHB1dFBhdGhcIiI7Cit9CisKK3N1YiBidWlsZFBsYXRmb3Jt
UmVzdWx0SGllcmFyY2h5KCkKK3sKKyAgICBta3BhdGgoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSkg
aWYgKCRwbGF0Zm9ybSBlcSAidW5kZWZpbmVkIiAmJiAhLWQgIiRwbGF0Zm9ybVRlc3REaXJlY3Rv
cnkiKTsKKworICAgIG15IEBwbGF0Zm9ybXM7CisgICAgaWYgKCRwbGF0Zm9ybSA9fiAvXm1hYy0v
KSB7CisgICAgICAgIG15ICRpOworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBAbWFjUGxhdGZv
cm1zOyAkaSsrKSB7CisgICAgICAgICAgICBsYXN0IGlmICRtYWNQbGF0Zm9ybXNbJGldIGVxICRw
bGF0Zm9ybTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDsgJGkgPCBAbWFjUGxhdGZvcm1zOyAk
aSsrKSB7CisgICAgICAgICAgICBwdXNoIEBwbGF0Zm9ybXMsICRtYWNQbGF0Zm9ybXNbJGldOwor
ICAgICAgICB9CisgICAgfSBlbHNpZiAoJHBsYXRmb3JtID1+IC9ecXQtLykgeworICAgICAgICBw
dXNoIEBwbGF0Zm9ybXMsICRwbGF0Zm9ybTsKKyAgICAgICAgcHVzaCBAcGxhdGZvcm1zLCAicXQi
OworICAgIH0gZWxzZSB7CisgICAgICAgIEBwbGF0Zm9ybXMgPSAkcGxhdGZvcm07CisgICAgfQor
CisgICAgbXkgQGhpZXJhcmNoeTsKKyAgICBmb3IgKG15ICRpID0gMDsgJGkgPCBAcGxhdGZvcm1z
OyAkaSsrKSB7CisgICAgICAgIG15ICRzY29wZWQgPSBjYXRkaXIoJHBsYXRmb3JtQmFzZURpcmVj
dG9yeSwgJHBsYXRmb3Jtc1skaV0pOworICAgICAgICBwdXNoKEBoaWVyYXJjaHksICRzY29wZWQp
IGlmICgtZCAkc2NvcGVkKTsKKyAgICB9CisKKyAgICByZXR1cm4gQGhpZXJhcmNoeTsKK30KKwor
c3ViIGJ1aWxkUGxhdGZvcm1UZXN0SGllcmFyY2h5KEApCit7CisgICAgbXkgKEBwbGF0Zm9ybUhp
ZXJhcmNoeSkgPSBAXzsKKyAgICByZXR1cm4gQHBsYXRmb3JtSGllcmFyY2h5IGlmIChAcGxhdGZv
cm1IaWVyYXJjaHkgPCAyKTsKKworICAgIHJldHVybiAoJHBsYXRmb3JtSGllcmFyY2h5WzBdLCAk
cGxhdGZvcm1IaWVyYXJjaHlbJCNwbGF0Zm9ybUhpZXJhcmNoeV0pOworfQorCitzdWIgZXBpbG9n
dWVzQW5kUHJvbG9ndWVzKCQkKQoreworICAgIG15ICgkbGFzdERpcmVjdG9yeSwgJGRpcmVjdG9y
eSkgPSBAXzsKKyAgICBteSBAbGFzdENvbXBvbmVudHMgPSBzcGxpdCgnLycsICRsYXN0RGlyZWN0
b3J5KTsKKyAgICBteSBAY29tcG9uZW50cyA9IHNwbGl0KCcvJywgJGRpcmVjdG9yeSk7CisKKyAg
ICB3aGlsZSAoQGxhc3RDb21wb25lbnRzKSB7CisgICAgICAgIGlmICghZGVmaW5lZCgkY29tcG9u
ZW50c1swXSkgfHwgJGxhc3RDb21wb25lbnRzWzBdIG5lICRjb21wb25lbnRzWzBdKSB7CisgICAg
ICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIHNoaWZ0IEBjb21wb25lbnRzOworICAg
ICAgICBzaGlmdCBAbGFzdENvbXBvbmVudHM7CisgICAgfQorCisgICAgbXkgQHJlc3VsdDsKKyAg
ICBteSAkbGVhdmluZyA9ICRsYXN0RGlyZWN0b3J5OworICAgIGZvcmVhY2ggKEBsYXN0Q29tcG9u
ZW50cykgeworICAgICAgICBteSAkZXBpbG9ndWUgPSAkbGVhdmluZyAuICIvcmVzb3VyY2VzL3J1
bi13ZWJraXQtdGVzdHMtZXBpbG9ndWUuaHRtbCI7CisgICAgICAgIGZvcmVhY2ggKEBwbGF0Zm9y
bVJlc3VsdEhpZXJhcmNoeSkgeworICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIoJF8s
ICRlcGlsb2d1ZSkgaWYgKHN0YXQoY2F0ZGlyKCRfLCAkZXBpbG9ndWUpKSk7CisgICAgICAgIH0K
KyAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1ZSkg
aWYgKHN0YXQoY2F0ZGlyKCR0ZXN0RGlyZWN0b3J5LCAkZXBpbG9ndWUpKSk7CisgICAgICAgICRs
ZWF2aW5nID1+IHN8KF5cfC8pW14vXSskfHw7CisgICAgfQorCisgICAgbXkgJGVudGVyaW5nID0g
JGxlYXZpbmc7CisgICAgZm9yZWFjaCAoQGNvbXBvbmVudHMpIHsKKyAgICAgICAgJGVudGVyaW5n
IC49ICcvJyAuICRfOworICAgICAgICBteSAkcHJvbG9ndWUgPSAkZW50ZXJpbmcgLiAiL3Jlc291
cmNlcy9ydW4td2Via2l0LXRlc3RzLXByb2xvZ3VlLmh0bWwiOworICAgICAgICBwdXNoIEByZXN1
bHQsIGNhdGRpcigkdGVzdERpcmVjdG9yeSwgJHByb2xvZ3VlKSBpZiAoc3RhdChjYXRkaXIoJHRl
c3REaXJlY3RvcnksICRwcm9sb2d1ZSkpKTsKKyAgICAgICAgZm9yZWFjaCAocmV2ZXJzZSBAcGxh
dGZvcm1SZXN1bHRIaWVyYXJjaHkpIHsKKyAgICAgICAgICAgIHB1c2ggQHJlc3VsdCwgY2F0ZGly
KCRfLCAkcHJvbG9ndWUpIGlmIChzdGF0KGNhdGRpcigkXywgJHByb2xvZ3VlKSkpOworICAgICAg
ICB9CisgICAgfQorICAgIHJldHVybiBAcmVzdWx0OworfQorICAgIAorc3ViIHBhcnNlTGVha3Nh
bmRQcmludFVuaXF1ZUxlYWtzKCkKK3sKKyAgICByZXR1cm4gdW5sZXNzIEBsZWFrc0ZpbGVuYW1l
czsKKyAgICAgCisgICAgbXkgJG1lcmdlZEZpbGVuYW1lcyA9IGpvaW4gIiAiLCBAbGVha3NGaWxl
bmFtZXM7CisgICAgbXkgJHBhcnNlTWFsbG9jSGlzdG9yeVRvb2wgPSBzb3VyY2VEaXIoKSAuICIv
V2ViS2l0VG9vbHMvU2NyaXB0cy9wYXJzZS1tYWxsb2MtaGlzdG9yeSI7CisgICAgCisgICAgb3Bl
biBNRVJHRURfTEVBS1MsICJjYXQgJG1lcmdlZEZpbGVuYW1lcyB8ICRwYXJzZU1hbGxvY0hpc3Rv
cnlUb29sIC0tbWVyZ2UtZGVwdGggJG1lcmdlRGVwdGggIC0gfCIgOworICAgIG15IEBsZWFrTGlu
ZXMgPSA8TUVSR0VEX0xFQUtTPjsKKyAgICBjbG9zZSBNRVJHRURfTEVBS1M7CisgICAgCisgICAg
bXkgJHVuaXF1ZUxlYWtDb3VudCA9IDA7CisgICAgbXkgJHRvdGFsQnl0ZXM7CisgICAgZm9yZWFj
aCBteSAkbGluZSAoQGxlYWtMaW5lcykgeworICAgICAgICArKyR1bmlxdWVMZWFrQ291bnQgaWYg
KCRsaW5lID1+IC9eKFxkKilcc2NhbGxzLyk7CisgICAgICAgICR0b3RhbEJ5dGVzID0gJDEgaWYg
JGxpbmUgPX4gL150b3RhbFw6XHMoLiopXHNcKC87CisgICAgfQorICAgIAorICAgIHByaW50ICJc
bldBUk5JTkc6ICR0b3RhbExlYWtzIHRvdGFsIGxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICR0
b3RhbEJ5dGVzIVxuIjsKKyAgICBwcmludCAiV0FSTklORzogJHVuaXF1ZUxlYWtDb3VudCB1bmlx
dWUgbGVha3MgZm91bmQhXG4iOworICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwg
bGVha3MgcmVzdWx0cy5cbiIgaWYgKCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKKyAgICAK
K30KKworc3ViIGV4dGVuc2lvbkZvck1pbWVUeXBlKCQpCit7CisgICAgbXkgKCRtaW1lVHlwZSkg
PSBAXzsKKworICAgIGlmICgkbWltZVR5cGUgZXEgImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSIp
IHsKKyAgICAgICAgcmV0dXJuICJ3ZWJhcmNoaXZlIjsKKyAgICB9IGVsc2lmICgkbWltZVR5cGUg
ZXEgImFwcGxpY2F0aW9uL3BkZiIpIHsKKyAgICAgICAgcmV0dXJuICJwZGYiOworICAgIH0KKyAg
ICByZXR1cm4gInR4dCI7Cit9CisKKyMgUmVhZCB1cCB0byB0aGUgZmlyc3QgI0VPRiAodGhlIGNv
bnRlbnQgYmxvY2sgb2YgdGhlIHRlc3QpLCBvciB1bnRpbCBkZXRlY3RpbmcgY3Jhc2hlcyBvciB0
aW1lb3V0cy4KK3N1YiByZWFkRnJvbUR1bXBUb29sV2l0aFRpbWVyKCoqKQoreworICAgIG15ICgk
ZmhJbiwgJGZoRXJyb3IpID0gQF87CisKKyAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZo
SW4sIDEpOworICAgIHNldEZpbGVIYW5kbGVOb25CbG9ja2luZygkZmhFcnJvciwgMSk7CisKKyAg
ICBteSAkbWF4aW11bVNlY29uZHNXaXRob3V0T3V0cHV0ID0gJHRpbWVvdXRTZWNvbmRzOworICAg
ICRtYXhpbXVtU2Vjb25kc1dpdGhvdXRPdXRwdXQgKj0gMTAgaWYgJGd1YXJkTWFsbG9jOworICAg
IG15ICRtaWNyb3NlY29uZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4gPSAxMDAwOworCisgICAg
bXkgJHRpbWVPZkxhc3RTdWNjZXNzZnVsUmVhZCA9IHRpbWU7CisKKyAgICBteSBAb3V0cHV0ID0g
KCk7CisgICAgbXkgQGVycm9yID0gKCk7CisgICAgbXkgJHN0YXR1cyA9ICJzdWNjZXNzIjsKKyAg
ICBteSAkbWltZVR5cGUgPSAidGV4dC9wbGFpbiI7CisgICAgIyBXZSBkb24ndCBoYXZlIGEgdmVy
eSBnb29kIHdheSB0byBrbm93IHdoZW4gdGhlICJoZWFkZXJzIiBzdG9wCisgICAgIyBhbmQgdGhl
IGNvbnRlbnQgc3RhcnRzLCBzbyB3ZSB1c2UgdGhpcyBhcyBhIGhhY2s6CisgICAgbXkgJGhhdmVT
ZWVuQ29udGVudFR5cGUgPSAwOworICAgIG15ICRoYXZlU2VlbkVvZkluID0gMDsKKyAgICBteSAk
aGF2ZVNlZW5Fb2ZFcnJvciA9IDA7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAodGlt
ZSAtICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1bFJlYWQgPiAkbWF4aW11bVNlY29uZHNXaXRob3V0T3V0
cHV0KSB7CisgICAgICAgICAgICAkc3RhdHVzID0gZHVtcFRvb2xEaWRDcmFzaCgpID8gImNyYXNo
ZWQiIDogInRpbWVkT3V0IjsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKworICAgICAg
ICAjIE9uY2Ugd2UndmUgc2VlbiB0aGUgRU9GLCB3ZSBtdXN0IG5vdCByZWFkIGFueW1vcmUuCisg
ICAgICAgIG15ICRsaW5lSW4gPSByZWFkbGluZSgkZmhJbikgdW5sZXNzICRoYXZlU2VlbkVvZklu
OworICAgICAgICBteSAkbGluZUVycm9yID0gcmVhZGxpbmUoJGZoRXJyb3IpIHVubGVzcyAkaGF2
ZVNlZW5Fb2ZFcnJvcjsKKyAgICAgICAgaWYgKCFkZWZpbmVkKCRsaW5lSW4pICYmICFkZWZpbmVk
KCRsaW5lRXJyb3IpKSB7CisgICAgICAgICAgICBsYXN0IGlmICgkaGF2ZVNlZW5Fb2ZJbiAmJiAk
aGF2ZVNlZW5Fb2ZFcnJvcik7CisKKyAgICAgICAgICAgIGlmICgkISAhPSBFQUdBSU4pIHsKKyAg
ICAgICAgICAgICAgICAkc3RhdHVzID0gImNyYXNoZWQiOworICAgICAgICAgICAgICAgIGxhc3Q7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgTm8gZGF0YSByZWFkeQorICAgICAgICAg
ICAgdXNsZWVwKCRtaWNyb3NlY29uZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4pOworICAgICAg
ICAgICAgbmV4dDsKKyAgICAgICAgfQorCisgICAgICAgICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1bFJl
YWQgPSB0aW1lOworCisgICAgICAgIGlmIChkZWZpbmVkKCRsaW5lSW4pKSB7CisgICAgICAgICAg
ICBpZiAoISRoYXZlU2VlbkNvbnRlbnRUeXBlICYmICRsaW5lSW4gPX4gL15Db250ZW50LVR5cGU6
IChcUyspJC8pIHsKKyAgICAgICAgICAgICAgICAkbWltZVR5cGUgPSAkMTsKKyAgICAgICAgICAg
ICAgICAkaGF2ZVNlZW5Db250ZW50VHlwZSA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkbGlu
ZUluID1+IC8jRU9GLykgeworICAgICAgICAgICAgICAgICRoYXZlU2VlbkVvZkluID0gMTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaCBAb3V0cHV0LCAkbGluZUlu
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVkKCRsaW5lRXJy
b3IpKSB7CisgICAgICAgICAgICBpZiAoJGxpbmVFcnJvciA9fiAvI0VPRi8pIHsKKyAgICAgICAg
ICAgICAgICAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHB1c2ggQGVycm9yLCAkbGluZUVycm9yOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEluLCAwKTsK
KyAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZoRXJyb3IsIDApOworICAgIHJldHVybiB7
CisgICAgICAgIG91dHB1dCA9PiBqb2luKCIiLCBAb3V0cHV0KSwKKyAgICAgICAgZXJyb3IgPT4g
am9pbigiIiwgQGVycm9yKSwKKyAgICAgICAgc3RhdHVzID0+ICRzdGF0dXMsCisgICAgICAgIG1p
bWVUeXBlID0+ICRtaW1lVHlwZSwKKyAgICAgICAgZXh0ZW5zaW9uID0+IGV4dGVuc2lvbkZvck1p
bWVUeXBlKCRtaW1lVHlwZSkKKyAgICB9OworfQorCitzdWIgc2V0RmlsZUhhbmRsZU5vbkJsb2Nr
aW5nKCokKQoreworICAgIG15ICgkZmgsICRub25CbG9ja2luZykgPSBAXzsKKworICAgIG15ICRm
bGFncyA9IGZjbnRsKCRmaCwgRl9HRVRGTCwgMCkgb3IgZGllICJDb3VsZG4ndCBnZXQgZmlsZWhh
bmRsZSBmbGFncyI7CisKKyAgICBpZiAoJG5vbkJsb2NraW5nKSB7CisgICAgICAgICRmbGFncyB8
PSBPX05PTkJMT0NLOworICAgIH0gZWxzZSB7CisgICAgICAgICRmbGFncyAmPSB+T19OT05CTE9D
SzsKKyAgICB9CisKKyAgICBmY250bCgkZmgsIEZfU0VURkwsICRmbGFncykgb3IgZGllICJDb3Vs
ZG4ndCBzZXQgZmlsZWhhbmRsZSBmbGFncyI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIHNh
bXBsZUR1bXBUb29sKCkKK3sKKyAgICByZXR1cm4gdW5sZXNzIGlzQXBwbGVNYWNXZWJLaXQoKTsK
KyAgICByZXR1cm4gdW5sZXNzICRydW5TYW1wbGU7CisKKyAgICBteSAkb3V0cHV0RGlyZWN0b3J5
ID0gIiRFTlZ7SE9NRX0vTGlicmFyeS9Mb2dzL0R1bXBSZW5kZXJUcmVlIjsKKyAgICAtZCAkb3V0
cHV0RGlyZWN0b3J5IG9yIG1rZGlyICRvdXRwdXREaXJlY3Rvcnk7CisKKyAgICBteSAkb3V0cHV0
RmlsZSA9ICIkb3V0cHV0RGlyZWN0b3J5L0hhbmdSZXBvcnQudHh0IjsKKyAgICBzeXN0ZW0gIi91
c3IvYmluL3NhbXBsZSIsICRkdW1wVG9vbFBJRCwgcXcoMTAgMTAgLWZpbGUpLCAkb3V0cHV0Rmls
ZTsKK30KKworc3ViIHN0cmlwTWV0cmljcygkJCkKK3sKKyAgICBteSAoJGFjdHVhbCwgJGV4cGVj
dGVkKSA9IEBfOworCisgICAgZm9yZWFjaCBteSAkcmVzdWx0ICgkYWN0dWFsLCAkZXhwZWN0ZWQp
IHsKKyAgICAgICAgJHJlc3VsdCA9fiBzL2F0IFwoLT9bMC05XSssLT9bMC05XStcKSAqLy9nOwor
ICAgICAgICAkcmVzdWx0ID1+IHMvc2l6ZSAtP1swLTldK3gtP1swLTldKyAqLy9nOworICAgICAg
ICAkcmVzdWx0ID1+IHMvdGV4dCBydW4gd2lkdGggLT9bMC05XSs6IC8vZzsKKyAgICAgICAgJHJl
c3VsdCA9fiBzL3RleHQgcnVuIHdpZHRoIC0/WzAtOV0rIFthLXpBLVogXSs6IC8vZzsKKyAgICAg
ICAgJHJlc3VsdCA9fiBzL1JlbmRlckJ1dHRvbiB7QlVUVE9OfSAuKi9SZW5kZXJCdXR0b24ge0JV
VFRPTn0vZzsKKyAgICAgICAgJHJlc3VsdCA9fiBzL1JlbmRlckltYWdlIHtJTlBVVH0gLiovUmVu
ZGVySW1hZ2Uge0lOUFVUfS9nOworICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVyQmxvY2sge0lO
UFVUfSAuKi9SZW5kZXJCbG9jayB7SU5QVVR9L2c7CisgICAgICAgICRyZXN1bHQgPX4gcy9SZW5k
ZXJUZXh0Q29udHJvbCB7SU5QVVR9IC4qL1JlbmRlclRleHRDb250cm9sIHtJTlBVVH0vZzsKKyAg
ICAgICAgJHJlc3VsdCA9fiBzL1woWzAtOV0rcHgvcHgvZzsKKyAgICAgICAgJHJlc3VsdCA9fiBz
LyAqIiAqXG4gKyIgKi8gL2c7CisgICAgICAgICRyZXN1bHQgPX4gcy8iICskLyIvZzsKKworICAg
ICAgICAkcmVzdWx0ID1+IHMvLSAvLS9nOworICAgICAgICAkcmVzdWx0ID1+IHMvXG4oICopIlxz
Ky9cbiQxIi9nOworICAgICAgICAkcmVzdWx0ID1+IHMvXHMrIlxuLyJcbi9nOworICAgICAgICAk
cmVzdWx0ID1+IHMvc2Nyb2xsV2lkdGggWzAtOV0rL3Njcm9sbFdpZHRoL2c7CisgICAgICAgICRy
ZXN1bHQgPX4gcy9zY3JvbGxIZWlnaHQgWzAtOV0rL3Njcm9sbEhlaWdodC9nOworICAgIH0KKwor
ICAgIHJldHVybiAoJGFjdHVhbCwgJGV4cGVjdGVkKTsKK30KKworc3ViIGZpbGVTaG91bGRCZUln
bm9yZWQKK3sKKyAgICBteSAoJGZpbGVQYXRoKSA9IEBfOworICAgIGZvcmVhY2ggbXkgJGlnbm9y
ZWREaXIgKGtleXMgJWlnbm9yZWREaXJlY3RvcmllcykgeworICAgICAgICBpZiAoJGZpbGVQYXRo
ID1+IG0vXiRpZ25vcmVkRGlyLykgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiByZWFkU2tpcHBlZEZpbGVzKCQpCit7Cisg
ICAgbXkgKCRjb25zdHJhaW50UGF0aCkgPSBAXzsKKworICAgIGZvcmVhY2ggbXkgJGxldmVsIChA
cGxhdGZvcm1UZXN0SGllcmFyY2h5KSB7CisgICAgICAgIGlmIChvcGVuIFNLSVBQRUQsICI8Iiwg
IiRsZXZlbC9Ta2lwcGVkIikgeworICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAg
ICAgICAgICAgbXkgKCRkaXIsICRuYW1lKSA9IHNwbGl0cGF0aCgkbGV2ZWwpOworICAgICAgICAg
ICAgICAgIHByaW50ICJTa2lwcGVkIHRlc3RzIGluICRuYW1lOlxuIjsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgd2hpbGUgKDxTS0lQUEVEPikgeworICAgICAgICAgICAgICAgIG15ICRz
a2lwcGVkID0gJF87CisgICAgICAgICAgICAgICAgY2hvbXAgJHNraXBwZWQ7CisgICAgICAgICAg
ICAgICAgJHNraXBwZWQgPX4gcy9eWyBcblxyXSsvLzsKKyAgICAgICAgICAgICAgICAkc2tpcHBl
ZCA9fiBzL1sgXG5ccl0rJC8vOworICAgICAgICAgICAgICAgIGlmICgkc2tpcHBlZCAmJiAkc2tp
cHBlZCAhfiAvXiMvKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkc2tpcHBlZE9ubHkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlsZVNob3VsZEJlSWdub3JlZCgkc2tpcHBl
ZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRjb25zdHJhaW50UGF0aCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFsd2F5cyBhZGQgJHNraXBwZWQg
c2luY2Ugbm8gY29uc3RyYWludCBwYXRoIHdhcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGlu
ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRza2lwcGVkID1+IC9eKCRj
b25zdHJhaW50UGF0aCkvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRk
ICRza2lwcGVkIG9ubHkgaWYgaXQgbWF0Y2hlcyB0aGUgY3VycmVudCBwYXRoIGNvbnN0cmFpbnQs
IGUuZy4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIi0tc2tpcHBlZD1vbmx5
IGRpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIgb24gdGhlIHNraXBwZWQgbGlzdC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb25zdHJhaW50UGF0aCA9fiAvXigkc2tp
cHBlZCkvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkIGN1cnJlbnQg
cGF0aCBjb25zdHJhaW50IGlmIGl0IGlzIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgc2tpcCBsaXN0
IGVudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGUuZy4sICItLXNraXBw
ZWQ9b25seSBkaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGlyMSIgb24gdGhlIHNraXBwZWQgbGlzdC4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJGNvbnN0cmFpbnRQ
YXRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50ICIgICAgJHNraXBwZWRcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZlcmJv
c2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVkXG4i
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcHJv
Y2Vzc0lnbm9yZVRlc3RzKCRza2lwcGVkLCAiU2tpcHBlZCIpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2xvc2Ug
U0tJUFBFRDsKKyAgICAgICAgfQorICAgIH0KK30KKworbXkgQHRlc3RzRm91bmQ7CisKK3N1YiBk
aXJlY3RvcnlGaWx0ZXIKK3sKKyAgICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVkTG9jYWxE
aXJlY3Rvcmllc3tiYXNlbmFtZSgkRmlsZTo6RmluZDo6ZGlyKX07CisgICAgcmV0dXJuICgpIGlm
IGV4aXN0cyAkaWdub3JlZERpcmVjdG9yaWVze0ZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZp
bmQ6OmRpciwgJHRlc3REaXJlY3RvcnkpfTsKKyAgICByZXR1cm4gQF87Cit9CisKK3N1YiBmaWxl
RmlsdGVyCit7CisgICAgbXkgJGZpbGVuYW1lID0gJF87CisgICAgaWYgKCRmaWxlbmFtZSA9fiAv
XC4oW14uXSspJC8pIHsKKyAgICAgICAgaWYgKGV4aXN0cyAkc3VwcG9ydGVkRmlsZUV4dGVuc2lv
bnN7JDF9KSB7CisgICAgICAgICAgICBteSAkcGF0aCA9IEZpbGU6OlNwZWMtPmFiczJyZWwoY2F0
ZmlsZSgkRmlsZTo6RmluZDo6ZGlyLCAkZmlsZW5hbWUpLCAkdGVzdERpcmVjdG9yeSk7CisgICAg
ICAgICAgICBwdXNoIEB0ZXN0c0ZvdW5kLCAkcGF0aCBpZiAhZXhpc3RzICRpZ25vcmVkRmlsZXN7
JHBhdGh9OworICAgICAgICB9CisgICAgfQorfQorCitzdWIgZmluZFRlc3RzVG9SdW4KK3sKKyAg
ICBteSBAdGVzdHNUb1J1biA9ICgpOworCisgICAgZm9yIG15ICR0ZXN0IChAQVJHVikgeworICAg
ICAgICAkdGVzdCA9fiBzL14oJGxheW91dFRlc3RzTmFtZXwkdGVzdERpcmVjdG9yeSlcLy8vOwor
ICAgICAgICBteSAkZnVsbFBhdGggPSBjYXRmaWxlKCR0ZXN0RGlyZWN0b3J5LCAkdGVzdCk7Cisg
ICAgICAgIGlmIChmaWxlX25hbWVfaXNfYWJzb2x1dGUoJHRlc3QpKSB7CisgICAgICAgICAgICBw
cmludCAiY2FuJ3QgcnVuIHRlc3QgJHRlc3Qgb3V0c2lkZSAkdGVzdERpcmVjdG9yeVxuIjsKKyAg
ICAgICAgfSBlbHNpZiAoLWYgJGZ1bGxQYXRoKSB7CisgICAgICAgICAgICBteSAoJGZpbGVuYW1l
LCAkcGF0aG5hbWUsICRmaWxlRXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkdGVzdCwgcXJ7XC5bXi5d
KyR9KTsKKyAgICAgICAgICAgIGlmICghZXhpc3RzICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3tz
dWJzdHIoJGZpbGVFeHRlbnNpb24sIDEpfSkgeworICAgICAgICAgICAgICAgIHByaW50ICJ0ZXN0
ICR0ZXN0IGRvZXMgbm90IGhhdmUgYSBzdXBwb3J0ZWQgZXh0ZW5zaW9uXG4iOworICAgICAgICAg
ICAgfSBlbHNpZiAoJHRlc3RIVFRQIHx8ICRwYXRobmFtZSAhfiAvXmh0dHBcLy8pIHsKKyAgICAg
ICAgICAgICAgICBwdXNoIEB0ZXN0c1RvUnVuLCAkdGVzdDsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNpZiAoLWQgJGZ1bGxQYXRoKSB7CisgICAgICAgICAgICBAdGVzdHNGb3VuZCA9ICgp
OworICAgICAgICAgICAgZmluZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdh
bnRlZCA9PiBcJmZpbGVGaWx0ZXIgfSwgJGZ1bGxQYXRoKTsKKyAgICAgICAgICAgIGZvciBteSAk
bGV2ZWwgKEBwbGF0Zm9ybVRlc3RIaWVyYXJjaHkpIHsKKyAgICAgICAgICAgICAgICBteSAkcGxh
dGZvcm1QYXRoID0gY2F0ZmlsZSgkbGV2ZWwsICR0ZXN0KTsKKyAgICAgICAgICAgICAgICBmaW5k
KHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRl
ciB9LCAkcGxhdGZvcm1QYXRoKSBpZiAoLWQgJHBsYXRmb3JtUGF0aCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBwdXNoIEB0ZXN0c1RvUnVuLCBzb3J0IHBhdGhjbXAgQHRlc3RzRm91bmQ7
CisgICAgICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgcHJpbnQgInRlc3QgJHRlc3Qgbm90IGZvdW5kXG4iOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKCFzY2FsYXIgQEFSR1YpIHsKKyAgICAgICAgQHRlc3RzRm91bmQgPSAoKTsKKyAg
ICAgICAgZmluZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdhbnRlZCA9PiBc
JmZpbGVGaWx0ZXIgfSwgJHRlc3REaXJlY3RvcnkpOworICAgICAgICBmb3IgbXkgJGxldmVsIChA
cGxhdGZvcm1UZXN0SGllcmFyY2h5KSB7CisgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9
PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkbGV2ZWwpOwor
ICAgICAgICB9CisgICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0aGNtcCBAdGVzdHNG
b3VuZDsKKyAgICAgICAgQHRlc3RzRm91bmQgPSAoKTsKKworICAgICAgICAjIFdlIG5lZWQgdG8g
bWluaW1pemUgdGhlIHRpbWUgd2hlbiBBcGFjaGUgYW5kIFdlYlNvY2tldFNlcnZlciBpcyBsb2Nr
ZWQgYnkgdGVzdHMKKyAgICAgICAgIyBzbyBydW4gdGhlbSBsYXN0IGlmIG5vIGV4cGxpY2l0IG9y
ZGVyIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCisgICAgICAgIG15IEBodHRw
VGVzdHM7CisgICAgICAgIG15IEB3ZWJzb2NrZXRUZXN0czsKKyAgICAgICAgbXkgQG90aGVyVGVz
dHM7CisgICAgICAgIGZvcmVhY2ggbXkgJHRlc3QgKEB0ZXN0c1RvUnVuKSB7CisgICAgICAgICAg
ICBpZiAoJHRlc3QgPX4gL15odHRwXC8vKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaHR0cFRl
c3RzLCAkdGVzdCk7CisgICAgICAgICAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndlYnNvY2tldFwv
LykgeworICAgICAgICAgICAgICAgIHB1c2goQHdlYnNvY2tldFRlc3RzLCAkdGVzdCk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQG90aGVyVGVzdHMsICR0ZXN0
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBAdGVzdHNUb1J1biA9IChAb3Ro
ZXJUZXN0cywgQGh0dHBUZXN0cywgQHdlYnNvY2tldFRlc3RzKTsKKyAgICB9CisKKyAgICAjIFJl
dmVyc2UgdGhlIHRlc3RzCisgICAgQHRlc3RzVG9SdW4gPSByZXZlcnNlIEB0ZXN0c1RvUnVuIGlm
ICRyZXZlcnNlVGVzdHM7CisKKyAgICAjIFNodWZmbGUgdGhlIGFycmF5CisgICAgQHRlc3RzVG9S
dW4gPSBzaHVmZmxlKEB0ZXN0c1RvUnVuKSBpZiAkcmFuZG9taXplVGVzdHM7CisKKyAgICByZXR1
cm4gQHRlc3RzVG9SdW47Cit9CisKK3N1YiBwcmludFJlc3VsdHMKK3sKKyAgICBteSAldGV4dCA9
ICgKKyAgICAgICAgbWF0Y2ggPT4gInN1Y2NlZWRlZCIsCisgICAgICAgIG1pc21hdGNoID0+ICJo
YWQgaW5jb3JyZWN0IGxheW91dCIsCisgICAgICAgIG5ldyA9PiAid2VyZSBuZXciLAorICAgICAg
ICB0aW1lZG91dCA9PiAidGltZWQgb3V0IiwKKyAgICAgICAgY3Jhc2ggPT4gImNyYXNoZWQiLAor
ICAgICAgICBlcnJvciA9PiAiaGFkIHN0ZGVyciBvdXRwdXQiCisgICAgKTsKKworICAgIGZvciBt
eSAkdHlwZSAoIm1hdGNoIiwgIm1pc21hdGNoIiwgIm5ldyIsICJ0aW1lZG91dCIsICJjcmFzaCIs
ICJlcnJvciIpIHsKKyAgICAgICAgbXkgJHR5cGVDb3VudCA9ICRjb3VudHN7JHR5cGV9OworICAg
ICAgICBuZXh0IHVubGVzcyAkdHlwZUNvdW50OworICAgICAgICBteSAkdHlwZVRleHQgPSAkdGV4
dHskdHlwZX07CisgICAgICAgIG15ICRtZXNzYWdlOworICAgICAgICBpZiAoJHR5cGVDb3VudCA9
PSAxKSB7CisgICAgICAgICAgICAkdHlwZVRleHQgPX4gcy93ZXJlL3dhcy87CisgICAgICAgICAg
ICAkbWVzc2FnZSA9IHNwcmludGYgIjEgdGVzdCBjYXNlICglZCUlKSAlc1xuIiwgMSAqIDEwMCAv
ICRjb3VudCwgJHR5cGVUZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG1lc3Nh
Z2UgPSBzcHJpbnRmICIlZCB0ZXN0IGNhc2VzICglZCUlKSAlc1xuIiwgJHR5cGVDb3VudCwgJHR5
cGVDb3VudCAqIDEwMCAvICRjb3VudCwgJHR5cGVUZXh0OworICAgICAgICB9CisgICAgICAgICRt
ZXNzYWdlID1+IHMtXCgwJVwpLSg8MSUpLTsKKyAgICAgICAgcHJpbnQgJG1lc3NhZ2U7CisgICAg
fQorfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCmluZGV4IGZhYjYyNmEuLjNkNDQ5
MjIgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKQEAgLTEsMjI2OCArMSw0MyBA
QAogIyEvdXNyL2Jpbi9wZXJsCi0KLSMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChD
KSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKLSMgQ29weXJpZ2h0IChD
KSAyMDA3IE1hdHQgTGlsZWsgKHBld3Rlcm1vb3NlQGdtYWlsLmNvbSkKLSMgQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMDkg
QW5kcmFzIEJlY3NpIChiZWNzaS5hbmRyYXNAc3R1ZC51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgogIwotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0jIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0jIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCi0jICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0jICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgogIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotIyBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0jIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotIyBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBTY3JpcHQgdG8g
cnVuIHRoZSBXZWJLaXQgT3BlbiBTb3VyY2UgUHJvamVjdCBsYXlvdXQgdGVzdHMuCi0KLSMgUnVu
IGFsbCB0aGUgdGVzdHMgcGFzc2VkIGluIG9uIHRoZSBjb21tYW5kIGxpbmUuCi0jIElmIG5vIHRl
c3RzIGFyZSBwYXNzZWQsIGZpbmQgYWxsIHRoZSAuaHRtbCwgLnNodG1sLCAueG1sLCAueGh0bWws
IC54aHRtbG1wLCAucGwsIC5waHAgKGFuZCBzdmcpIGZpbGVzIGluIHRoZSB0ZXN0IGRpcmVjdG9y
eS4KLQotIyBSdW4gZWFjaCB0ZXh0LgotIyBDb21wYXJlIGFnYWluc3QgdGhlIGV4aXN0aW5nIGZp
bGUgeHh4LWV4cGVjdGVkLnR4dC4KLSMgSWYgdGhlcmUgaXMgYSBtaXNtYXRjaCwgZ2VuZXJhdGUg
eHh4LWFjdHVhbC50eHQgYW5kIHh4eC1kaWZmcy50eHQuCi0KLSMgQXQgdGhlIGVuZCwgcmVwb3J0
OgotIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBnb3QgdGhlIGV4cGVjdGVkIHJlc3VsdHMK
LSMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgcmFuLCBidXQgZGlkIG5vdCBnZXQgdGhlIGV4
cGVjdGVkIHJlc3VsdHMKLSMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgZmFpbGVkIHRvIHJ1
bgotIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCB3ZXJlIHJ1biBidXQgaGFkIG5vIGV4cGVj
dGVkIHJlc3VsdHMgdG8gY29tcGFyZSBhZ2FpbnN0CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIGZpbGUgaXMgYSB0ZW1wb3JhcnkgaGFjay4K
KyMgSXQgd2lsbCBiZSByZW1vdmVkIGFzIHNvb24gYXMgYWxsIHBsYXRmb3JtcyBhcmUgYXJlIHJl
YWR5IHRvIG1vdmUgdG8KKyMgbmV3LXJ1bi13ZWJraXQtdGVzdHMgYW5kIHdlIGNhbiB0aGVuIHVw
ZGF0ZSB0aGUgYnVpbGRib3RzIHRvIGV4cGxpY2l0bHkKKyMgY2FsbCBvbGQtcnVuLXdlYmtpdC10
ZXN0cyBmb3IgYW55IHBsYXRmb3JtcyB3aGljaCB3aWxsIG5ldmVyIHN1cHBvcnQKKyMgYSBQeXRo
b24gcnVuLXdlYmtpdC10ZXN0cy4KKworIyBUaGlzIGlzIGludGVudGlvbmFsbHkgd3JpdHRlbiBp
biBQZXJsIHRvIGd1YXJhbnRlZSBzdXBwb3J0IG9uCisjIHRoZSBzYW1lIHNldCBvZiBwbGF0Zm9y
bXMgYXMgb2xkLXJ1bi13ZWJraXQtdGVzdHMgY3VycmVudGx5IHN1cHBvcnRzLgogCiB1c2Ugc3Ry
aWN0OwogdXNlIHdhcm5pbmdzOwogCi11c2UgQ3dkOwotdXNlIERhdGE6OkR1bXBlcjsKLXVzZSBG
Y250bCBxdyhGX0dFVEZMIEZfU0VURkwgT19OT05CTE9DSyk7Ci11c2UgRmlsZTo6QmFzZW5hbWU7
Ci11c2UgRmlsZTo6Q29weTsKLXVzZSBGaWxlOjpGaW5kOwotdXNlIEZpbGU6OlBhdGg7Ci11c2Ug
RmlsZTo6U3BlYzsKLXVzZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnM7Ci11c2UgRmlsZTo6VGVtcDsK
LXVzZSBGaW5kQmluOwotdXNlIEdldG9wdDo6TG9uZzsKLXVzZSBJUEM6Ok9wZW4yOwotdXNlIElQ
Qzo6T3BlbjM7Ci11c2UgVGltZTo6SGlSZXMgcXcodGltZSB1c2xlZXApOwotCi11c2UgTGlzdDo6
VXRpbCAnc2h1ZmZsZSc7Ci0KLXVzZSBsaWIgJEZpbmRCaW46OkJpbjsKLXVzZSB3ZWJraXRwZXJs
OjpmZWF0dXJlczsKLXVzZSB3ZWJraXRwZXJsOjpodHRwZDsKLXVzZSB3ZWJraXRkaXJzOwotdXNl
IFZDU1V0aWxzOwotdXNlIFBPU0lYOwotCi1zdWIgYnVpbGRQbGF0Zm9ybVJlc3VsdEhpZXJhcmNo
eSgpOwotc3ViIGJ1aWxkUGxhdGZvcm1UZXN0SGllcmFyY2h5KEApOwotc3ViIGNsb3NlQ3lncGF0
aHMoKTsKLXN1YiBjbG9zZUR1bXBUb29sKCk7Ci1zdWIgY2xvc2VXZWJTb2NrZXRTZXJ2ZXIoKTsK
LXN1YiBjb25maWd1cmVBbmRPcGVuSFRUUERJZk5lZWRlZCgpOwotc3ViIGNvdW50QW5kUHJpbnRM
ZWFrcygkJCQpOwotc3ViIGNvdW50RmluaXNoZWRUZXN0KCQkJCQpOwotc3ViIGRlbGV0ZUV4cGVj
dGVkQW5kQWN0dWFsUmVzdWx0cygkKTsKLXN1YiBkdW1wVG9vbERpZENyYXNoKCk7Ci1zdWIgZXBp
bG9ndWVzQW5kUHJvbG9ndWVzKCQkKTsKLXN1YiBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJDsk
OyQpOwotc3ViIGZpbGVOYW1lV2l0aE51bWJlcigkJCk7Ci1zdWIgaHRtbEZvclJlc3VsdHNTZWN0
aW9uKFxAJCYpOwotc3ViIGlzVGV4dE9ubHlUZXN0KCQpOwotc3ViIGxhdW5jaFdpdGhFbnYoXEBc
JSk7Ci1zdWIgcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwotc3ViIG51bWVy
aWNjbXAoJCQpOwotc3ViIG9wZW5EaWZmVG9vbCgpOwotc3ViIG9wZW5EdW1wVG9vbCgpOwotc3Vi
IHBhcnNlTGVha3NhbmRQcmludFVuaXF1ZUxlYWtzKCk7Ci1zdWIgb3BlbldlYlNvY2tldFNlcnZl
cklmTmVlZGVkKCk7Ci1zdWIgcGF0aGNtcCgkJCk7Ci1zdWIgcHJpbnRGYWlsdXJlTWVzc2FnZUZv
clRlc3QoJCQpOwotc3ViIHByb2Nlc3NJZ25vcmVUZXN0cygkJCk7Ci1zdWIgcmVhZEZyb21EdW1w
VG9vbFdpdGhUaW1lcigqKik7Ci1zdWIgcmVhZFNraXBwZWRGaWxlcygkKTsKLXN1YiByZWNvcmRB
Y3R1YWxSZXN1bHRzQW5kRGlmZigkJCk7Ci1zdWIgc2FtcGxlRHVtcFRvb2woKTsKLXN1YiBzZXRG
aWxlSGFuZGxlTm9uQmxvY2tpbmcoKiQpOwotc3ViIHNsb3dlc3RjbXAoJCQpOwotc3ViIHNwbGl0
cGF0aCgkKTsKLXN1YiBzdHJpcEV4dGVuc2lvbigkKTsKLXN1YiBzdHJpcE1ldHJpY3MoJCQpOwot
c3ViIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgkJCQkJCk7Ci1zdWIgdG9VUkwoJCk7Ci1zdWIgdG9X
aW5kb3dzUGF0aCgkKTsKLXN1YiB2YWxpZGF0ZVNraXBwZWRBcmcoJCQ7JCk7Ci1zdWIgd3JpdGVU
b0ZpbGUoJCQpOwotCi0jIEFyZ3VtZW50IGhhbmRsaW5nCi1teSAkYWRkUGxhdGZvcm1FeGNlcHRp
b25zID0gMDsKLW15ICRjb21wbGV4VGV4dCA9IDA7Ci1teSAkZXhpdEFmdGVyTkZhaWx1cmVzID0g
MDsKLW15ICRnZW5lcmF0ZU5ld1Jlc3VsdHMgPSBpc0FwcGxlTWFjV2ViS2l0KCkgPyAxIDogMDsK
LW15ICRndWFyZE1hbGxvYyA9ICcnOwotIyBGSVhNRTogRHluYW1pYyBIVFRQLXBvcnQgY29uZmln
dXJhdGlvbiBpbiB0aGlzIGZpbGUgaXMgd3JvbmcuICBUaGUgdmFyaW91cwotIyBhcGFjaGUgY29u
ZmlnIGZpbGVzIGluIExheW91dFRlc3RzL2h0dHAvY29uZmlnIGdvdmVybiB0aGUgcG9ydCBudW1i
ZXJzLgotIyBEeW5hbWljIGNvbmZpZ3VyYXRpb24gYXMtd3JpdHRlbiB3aWxsIGFsc28gY2F1c2Ug
cmFuZG9tIGZhaWx1cmVzIGluCi0jIGFuIElQdjYgZW52aXJvbm1lbnQuICBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTA0LgotbXkgJGh0dHBkUG9ydCA9IDgw
MDA7Ci1teSAkaHR0cGRTU0xQb3J0ID0gODQ0MzsKLW15ICRpZ25vcmVNZXRyaWNzID0gMDsKLW15
ICR3ZWJTb2NrZXRQb3J0ID0gODg4MDsKLSMgd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0
Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuCi0jIG15ICR3ZWJTb2NrZXRTZWN1cmVQb3J0ID0gOTMy
MzsKLW15ICRpZ25vcmVUZXN0cyA9ICcnOwotbXkgJGl0ZXJhdGlvbnMgPSAxOwotbXkgJGxhdW5j
aFNhZmFyaSA9IDE7Ci1teSAkbWVyZ2VEZXB0aDsKLW15ICRwaXhlbFRlc3RzID0gJyc7Ci1teSAk
cGxhdGZvcm07Ci1teSAkcXVpZXQgPSAnJzsKLW15ICRyYW5kb21pemVUZXN0cyA9IDA7Ci1teSAk
cmVwZWF0RWFjaCA9IDE7Ci1teSAkcmVwb3J0MTBTbG93ZXN0ID0gMDsKLW15ICRyZXNldFJlc3Vs
dHMgPSAwOwotbXkgJHJldmVyc2VUZXN0cyA9IDA7Ci1teSAkcm9vdDsKLW15ICRydW5TYW1wbGUg
PSAxOwotbXkgJHNob3VsZENoZWNrTGVha3MgPSAwOwotbXkgJHNob3dIZWxwID0gMDsKLW15ICRz
dHJpcEVkaXRpbmdDYWxsYmFja3MgPSBpc0N5Z3dpbigpOwotbXkgJHRlc3RIVFRQID0gMTsKLW15
ICR0ZXN0TWVkaWEgPSAxOwotbXkgJHRtcERpciA9ICIvdG1wIjsKLW15ICR0ZXN0UmVzdWx0c0Rp
cmVjdG9yeSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcERpciwgImxheW91dC10ZXN0LXJlc3Vs
dHMiKTsKLW15ICR0ZXN0c1BlckR1bXBUb29sID0gMTAwMDsKLW15ICR0aHJlYWRlZCA9IDA7Ci0j
IER1bXBSZW5kZXJUcmVlIGhhcyBhbiBpbnRlcm5hbCB0aW1lb3V0IG9mIDMwIHNlY29uZHMsIHNv
IHRoaXMgbXVzdCBiZSA+IDMwLgotbXkgJHRpbWVvdXRTZWNvbmRzID0gMzU7Ci1teSAkdG9sZXJh
bmNlID0gMDsKLW15ICR0cmVhdFNraXBwZWQgPSAiZGVmYXVsdCI7Ci1teSAkdXNlUmVtb3RlTGlu
a3NUb1Rlc3RzID0gMDsKLW15ICR1c2VWYWxncmluZCA9IDA7Ci1teSAkdmVyYm9zZSA9IDA7Ci1t
eSAkc2hvdWxkV2FpdEZvckhUVFBEID0gMDsKLQotbXkgQGxlYWtzRmlsZW5hbWVzOwotCi1pZiAo
aXNXaW5kb3dzKCkgfHwgaXNNc3lzKCkpIHsKLSAgICBwcmludCAiVGhpcyBzY3JpcHQgaGFzIHRv
IGJlIHJ1biB1bmRlciBDeWd3aW4gdG8gZnVuY3Rpb24gY29ycmVjdGx5LlxuIjsKLSAgICBleGl0
IDE7Ci19Ci0KLSMgRGVmYXVsdCB0byAtLW5vLWh0dHAgZm9yIHd4IGZvciBub3cuCi0kdGVzdEhU
VFAgPSAwIGlmIChpc1d4KCkpOwotCi1teSAkZXhwZWN0ZWRUYWcgPSAiZXhwZWN0ZWQiOwotbXkg
JGFjdHVhbFRhZyA9ICJhY3R1YWwiOwotbXkgJHByZXR0eURpZmZUYWcgPSAicHJldHR5LWRpZmYi
OwotbXkgJGRpZmZzVGFnID0gImRpZmZzIjsKLW15ICRlcnJvclRhZyA9ICJzdGRlcnIiOwotCi1t
eSBAbWFjUGxhdGZvcm1zID0gKCJtYWMtdGlnZXIiLCAibWFjLWxlb3BhcmQiLCAibWFjLXNub3ds
ZW9wYXJkIiwgIm1hYyIpOwotCi1pZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7Ci0gICAgaWYgKGlz
VGlnZXIoKSkgewotICAgICAgICAkcGxhdGZvcm0gPSAibWFjLXRpZ2VyIjsKLSAgICAgICAgJHRv
bGVyYW5jZSA9IDEuMDsKLSAgICB9IGVsc2lmIChpc0xlb3BhcmQoKSkgewotICAgICAgICAkcGxh
dGZvcm0gPSAibWFjLWxlb3BhcmQiOwotICAgICAgICAkdG9sZXJhbmNlID0gMC4xOwotICAgIH0g
ZWxzaWYgKGlzU25vd0xlb3BhcmQoKSkgewotICAgICAgICAkcGxhdGZvcm0gPSAibWFjLXNub3ds
ZW9wYXJkIjsKLSAgICAgICAgJHRvbGVyYW5jZSA9IDAuMTsKLSAgICB9IGVsc2UgewotICAgICAg
ICAkcGxhdGZvcm0gPSAibWFjIjsKLSAgICB9Ci19IGVsc2lmIChpc1F0KCkpIHsKLSAgICBpZiAo
aXNEYXJ3aW4oKSkgewotICAgICAgICAkcGxhdGZvcm0gPSAicXQtbWFjIjsKLSAgICB9IGVsc2lm
IChpc0xpbnV4KCkpIHsKLSAgICAgICAgJHBsYXRmb3JtID0gInF0LWxpbnV4IjsKLSAgICB9IGVs
c2lmIChpc1dpbmRvd3MoKSB8fCBpc0N5Z3dpbigpKSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJx
dC13aW4iOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJxdCI7Ci0gICAgfQot
fSBlbHNpZiAoaXNHdGsoKSkgewotICAgICRwbGF0Zm9ybSA9ICJndGsiOwotICAgIGlmICghJEVO
VnsiV0VCS0lUX1RFU1RGT05UUyJ9KSB7Ci0gICAgICAgIHByaW50ICJUaGUgV0VCS0lUX1RFU1RG
T05UUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QgZGVmaW5lZC5cbiI7Ci0gICAgICAgIHBy
aW50ICJZb3UgbXVzdCBzZXQgaXQgYmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3RzLlxuIjsKLSAgICAg
ICAgcHJpbnQgIlVzZSBnaXQgdG8gZ3JhYiB0aGUgYWN0dWFsIGZvbnRzIGZyb20gaHR0cDovL2dp
dG9yaW91cy5vcmcvcXR3ZWJraXQvdGVzdGZvbnRzXG4iOwotICAgICAgICBleGl0IDE7Ci0gICAg
fQotfSBlbHNpZiAoaXNXeCgpKSB7Ci0gICAgJHBsYXRmb3JtID0gInd4IjsKLX0gZWxzaWYgKGlz
Q3lnd2luKCkpIHsKLSAgICAkcGxhdGZvcm0gPSAid2luIjsKLX0KLQotaWYgKCFkZWZpbmVkKCRw
bGF0Zm9ybSkpIHsKLSAgICBwcmludCAiV0FSTklORzogWW91ciBwbGF0Zm9ybSBpcyBub3QgcmVj
b2duaXplZC4gQW55IHBsYXRmb3JtLXNwZWNpZmljIHJlc3VsdHMgd2lsbCBiZSBnZW5lcmF0ZWQg
aW4gcGxhdGZvcm0vdW5kZWZpbmVkLlxuIjsKLSAgICAkcGxhdGZvcm0gPSAidW5kZWZpbmVkIjsK
LX0KLQotbXkgJHByb2dyYW1OYW1lID0gYmFzZW5hbWUoJDApOwotbXkgJGxhdW5jaFNhZmFyaURl
ZmF1bHQgPSAkbGF1bmNoU2FmYXJpID8gImxhdW5jaCIgOiAiZG8gbm90IGxhdW5jaCI7Ci1teSAk
aHR0cERlZmF1bHQgPSAkdGVzdEhUVFAgPyAicnVuIiA6ICJkbyBub3QgcnVuIjsKLW15ICRzYW1w
bGVEZWZhdWx0ID0gJHJ1blNhbXBsZSA/ICJydW4iIDogImRvIG5vdCBydW4iOwotCi1teSAkdXNh
Z2UgPSA8PEVPRjsKLVVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFt0ZXN0ZGlyfHRlc3Rw
YXRoIC4uLl0KLSAgLS1hZGQtcGxhdGZvcm0tZXhjZXB0aW9ucyAgICAgICBQdXQgbmV3IHJlc3Vs
dHMgZm9yIG5vbi1wbGF0Zm9ybS1zcGVjaWZpYyBmYWlsaW5nIHRlc3RzIGludG8gdGhlIHBsYXRm
b3JtLXNwZWNpZmljIHJlc3VsdHMgZGlyZWN0b3J5Ci0gIC0tY29tcGxleC10ZXh0ICAgICAgICAg
ICAgICAgICAgVXNlIHRoZSBjb21wbGV4IHRleHQgY29kZSBwYXRoIGZvciBhbGwgdGV4dCAoTWFj
IE9TIFggYW5kIFdpbmRvd3Mgb25seSkKLSAgLWN8LS1jb25maWd1cmF0aW9uIGNvbmZpZyAgICAg
ICBTZXQgRHVtcFJlbmRlclRyZWUgYnVpbGQgY29uZmlndXJhdGlvbgotICAtZ3wtLWd1YXJkLW1h
bGxvYyAgICAgICAgICAgICAgIEVuYWJsZSBtYWxsb2MgZ3VhcmQKLSAgLS1leGl0LWFmdGVyLW4t
ZmFpbHVyZXMgTiAgICAgICBFeGl0IGFmdGVyIHRoZSBmaXJzdCBOIGZhaWx1cmVzIGluc3RlYWQg
b2YgcnVubmluZyBhbGwgdGVzdHMKLSAgLWh8LS1oZWxwICAgICAgICAgICAgICAgICAgICAgICBT
aG93IHRoaXMgaGVscCBtZXNzYWdlCi0gIC0tW25vLV1odHRwICAgICAgICAgICAgICAgICAgICAg
UnVuIChvciBkbyBub3QgcnVuKSBodHRwIHRlc3RzIChkZWZhdWx0OiAkaHR0cERlZmF1bHQpCi0g
IC0tW25vLV13YWl0LWZvci1odHRwZCAgICAgICAgICAgV2FpdCBmb3IgaHR0cGQgaWYgc29tZSBv
dGhlciB0ZXN0IHNlc3Npb24gaXMgdXNpbmcgaXQgYWxyZWFkeSAoc2FtZSBhcyBXRUJLSVRfV0FJ
VF9GT1JfSFRUUEQ9MSkuIChkZWZhdWx0OiAkc2hvdWxkV2FpdEZvckhUVFBEKSAKLSAgLWl8LS1p
Z25vcmUtdGVzdHMgICAgICAgICAgICAgICBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3Rv
cmllcyBvciB0ZXN0cyB0byBpZ25vcmUKLSAgLS1pdGVyYXRpb25zIG4gICAgICAgICAgICAgICAg
ICBOdW1iZXIgb2YgdGltZXMgdG8gcnVuIHRoZSBzZXQgb2YgdGVzdHMgKGUuZy4gQUJDQUJDQUJD
KQotICAtLVtuby1dbGF1bmNoLXNhZmFyaSAgICAgICAgICAgIExhdW5jaCAob3IgZG8gbm90IGxh
dW5jaCkgU2FmYXJpIHRvIGRpc3BsYXkgdGVzdCByZXN1bHRzIChkZWZhdWx0OiAkbGF1bmNoU2Fm
YXJpRGVmYXVsdCkKLSAgLWx8LS1sZWFrcyAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgbGVh
a3MgY2hlY2tpbmcKLSAgLS1bbm8tXW5ldy10ZXN0LXJlc3VsdHMgICAgICAgICBHZW5lcmF0ZSBy
ZXN1bHRzIGZvciBuZXcgdGVzdHMKLSAgLS1udGhseSBuICAgICAgICAgICAgICAgICAgICAgICBS
ZXN0YXJ0IER1bXBSZW5kZXJUcmVlIGV2ZXJ5IG4gdGVzdHMgKGRlZmF1bHQ6ICR0ZXN0c1BlckR1
bXBUb29sKQotICAtcHwtLXBpeGVsLXRlc3RzICAgICAgICAgICAgICAgIEVuYWJsZSBwaXhlbCB0
ZXN0cwotICAtLXRvbGVyYW5jZSB0ICAgICAgICAgICAgICAgICAgIElnbm9yZSBpbWFnZSBkaWZm
ZXJlbmNlcyBsZXNzIHRoYW4gdGhpcyBwZXJjZW50YWdlIChkZWZhdWx0OiAkdG9sZXJhbmNlKQot
ICAtLXBsYXRmb3JtICAgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlIHRoZSBkZXRlY3RlZCBw
bGF0Zm9ybSB0byB1c2UgZm9yIHRlc3RzIGFuZCByZXN1bHRzIChkZWZhdWx0OiAkcGxhdGZvcm0p
Ci0gIC0tcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViIHNlcnZlciBwb3J0IHRvIHVz
ZSB3aXRoIGh0dHAgdGVzdHMKLSAgLXF8LS1xdWlldCAgICAgICAgICAgICAgICAgICAgICBMZXNz
IHZlcmJvc2Ugb3V0cHV0Ci0gIC0tcmVzZXQtcmVzdWx0cyAgICAgICAgICAgICAgICAgUmVzZXQg
QUxMIHJlc3VsdHMgKGluY2x1ZGluZyBwaXhlbCB0ZXN0cyBpZiAtLXBpeGVsLXRlc3RzIGlzIHNl
dCkKLSAgLW98LS1yZXN1bHRzLWRpcmVjdG9yeSAgICAgICAgICBPdXRwdXQgcmVzdWx0cyBkaXJl
Y3RvcnkgKGRlZmF1bHQ6ICR0ZXN0UmVzdWx0c0RpcmVjdG9yeSkKLSAgLS1yYW5kb20gICAgICAg
ICAgICAgICAgICAgICAgICBSdW4gdGhlIHRlc3RzIGluIGEgcmFuZG9tIG9yZGVyCi0gIC0tcmVw
ZWF0LWVhY2ggbiAgICAgICAgICAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRvIHJ1biBlYWNoIHRl
c3QgKGUuZy4gQUFBQkJCQ0NDKQotICAtLXJldmVyc2UgICAgICAgICAgICAgICAgICAgICAgIFJ1
biB0aGUgdGVzdHMgaW4gcmV2ZXJzZSBhbHBoYWJldGljYWwgb3JkZXIKLSAgLS1yb290ICAgICAg
ICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIHJvb3QgdG9vbHMgYnVpbGQKLSAgLS1bbm8tXXNh
bXBsZS1vbi10aW1lb3V0ICAgICAgICBSdW4gc2FtcGxlIG9uIHRpbWVvdXQgKGRlZmF1bHQ6ICRz
YW1wbGVEZWZhdWx0KSAoTWFjIE9TIFggb25seSkKLSAgLTF8LS1zaW5nbHkgICAgICAgICAgICAg
ICAgICAgICBJc29sYXRlIGVhY2ggdGVzdCBjYXNlIHJ1biAoaW1wbGllcyAtLW50aGx5IDEgLS12
ZXJib3NlKQotICAtLXNraXBwZWQ9W2RlZmF1bHR8aWdub3JlfG9ubHldIFNwZWNpZmllcyBob3cg
dG8gdHJlYXQgdGhlIFNraXBwZWQgZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6IFRlc3RzL2RpcmVjdG9yaWVzIGxpc3RlZCBpbiB0aGUgU2tpcHBlZCBm
aWxlIGFyZSBub3QgdGVzdGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWdub3JlOiAgVGhlIFNraXBwZWQgZmlsZSBpcyBpZ25vcmVkCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb25seTogICAgT25seSB0aG9zZSB0ZXN0cy9kaXJlY3RvcmllcyBs
aXN0ZWQgaW4gdGhlIFNraXBwZWQgZmlsZSB3aWxsIGJlIHJ1bgotICAtLXNsb3dlc3QgICAgICAg
ICAgICAgICAgICAgICAgIFJlcG9ydCB0aGUgMTAgc2xvd2VzdCB0ZXN0cwotICAtLWlnbm9yZS1t
ZXRyaWNzICAgICAgICAgICAgICAgIElnbm9yZSBtZXRyaWNzIGluIHRlc3RzCi0gIC0tW25vLV1z
dHJpcC1lZGl0aW5nLWNhbGxiYWNrcyAgUmVtb3ZlIGVkaXRpbmcgY2FsbGJhY2tzIGZyb20gZXhw
ZWN0ZWQgcmVzdWx0cwotICAtdHwtLXRocmVhZGVkICAgICAgICAgICAgICAgICAgIFJ1biBhIGNv
bmN1cnJlbnQgSmF2YVNjcmlwdCB0aGVhZCB3aXRoIGVhY2ggdGVzdAotICAtLXRpbWVvdXQgdCAg
ICAgICAgICAgICAgICAgICAgIFNldHMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGJlZm9yZSBhIHRl
c3QgdGltZXMgb3V0IChkZWZhdWx0OiAkdGltZW91dFNlY29uZHMpCi0gIC0tdmFsZ3JpbmQgICAg
ICAgICAgICAgICAgICAgICAgUnVuIER1bXBSZW5kZXJUcmVlIGluc2lkZSB2YWxncmluZCAoUXQv
TGludXggb25seSkKLSAgLXZ8LS12ZXJib3NlICAgICAgICAgICAgICAgICAgICBNb3JlIHZlcmJv
c2Ugb3V0cHV0IChvdmVycmlkZXMgLS1xdWlldCkKLSAgLW18LS1tZXJnZS1sZWFrLWRlcHRoIGFy
ZyAgICAgICBNZXJnZXMgbGVhayBjYWxsU3RhY2tzIGFuZCBwcmludHMgdGhlIG51bWJlciBvZiB1
bmlxdWUgbGVha3MgYmVuZWF0aCBhIGNhbGxzdGFjayBkZXB0aCBvZiBhcmcuICBEZWZhdWx0cyB0
byA1LgotICAtLXVzZS1yZW1vdGUtbGlua3MtdG8tdGVzdHMgICAgIExpbmsgdG8gdGVzdCBmaWxl
cyB3aXRoaW4gdGhlIFNWTiByZXBvc2l0b3J5IGluIHRoZSByZXN1bHRzLgotRU9GCi0KLXNldENv
bmZpZ3VyYXRpb24oKTsKLQotbXkgJGdldE9wdGlvbnNSZXN1bHQgPSBHZXRPcHRpb25zKAotICAg
ICdhZGQtcGxhdGZvcm0tZXhjZXB0aW9ucycgPT4gXCRhZGRQbGF0Zm9ybUV4Y2VwdGlvbnMsCi0g
ICAgJ2NvbXBsZXgtdGV4dCcgPT4gXCRjb21wbGV4VGV4dCwKLSAgICAnZXhpdC1hZnRlci1uLWZh
aWx1cmVzPWknID0+IFwkZXhpdEFmdGVyTkZhaWx1cmVzLAotICAgICdndWFyZC1tYWxsb2N8Zycg
PT4gXCRndWFyZE1hbGxvYywKLSAgICAnaGVscHxoJyA9PiBcJHNob3dIZWxwLAotICAgICdodHRw
IScgPT4gXCR0ZXN0SFRUUCwKLSAgICAnd2FpdC1mb3ItaHR0cGQhJyA9PiBcJHNob3VsZFdhaXRG
b3JIVFRQRCwKLSAgICAnaWdub3JlLW1ldHJpY3MhJyA9PiBcJGlnbm9yZU1ldHJpY3MsCi0gICAg
J2lnbm9yZS10ZXN0c3xpPXMnID0+IFwkaWdub3JlVGVzdHMsCi0gICAgJ2l0ZXJhdGlvbnM9aScg
PT4gXCRpdGVyYXRpb25zLAotICAgICdsYXVuY2gtc2FmYXJpIScgPT4gXCRsYXVuY2hTYWZhcmks
Ci0gICAgJ2xlYWtzfGwnID0+IFwkc2hvdWxkQ2hlY2tMZWFrcywKLSAgICAnbWVyZ2UtbGVhay1k
ZXB0aHxtOjUnID0+IFwkbWVyZ2VEZXB0aCwKLSAgICAnbmV3LXRlc3QtcmVzdWx0cyEnID0+IFwk
Z2VuZXJhdGVOZXdSZXN1bHRzLAotICAgICdudGhseT1pJyA9PiBcJHRlc3RzUGVyRHVtcFRvb2ws
Ci0gICAgJ3BpeGVsLXRlc3RzfHAnID0+IFwkcGl4ZWxUZXN0cywKLSAgICAncGxhdGZvcm09cycg
PT4gXCRwbGF0Zm9ybSwKLSAgICAncG9ydD1pJyA9PiBcJGh0dHBkUG9ydCwKLSAgICAncXVpZXR8
cScgPT4gXCRxdWlldCwKLSAgICAncmFuZG9tJyA9PiBcJHJhbmRvbWl6ZVRlc3RzLAotICAgICdy
ZXBlYXQtZWFjaD1pJyA9PiBcJHJlcGVhdEVhY2gsCi0gICAgJ3Jlc2V0LXJlc3VsdHMnID0+IFwk
cmVzZXRSZXN1bHRzLAotICAgICdyZXN1bHRzLWRpcmVjdG9yeXxvPXMnID0+IFwkdGVzdFJlc3Vs
dHNEaXJlY3RvcnksCi0gICAgJ3JldmVyc2UnID0+IFwkcmV2ZXJzZVRlc3RzLAotICAgICdyb290
PXMnID0+IFwkcm9vdCwKLSAgICAnc2FtcGxlLW9uLXRpbWVvdXQhJyA9PiBcJHJ1blNhbXBsZSwK
LSAgICAnc2luZ2x5fDEnID0+IHN1YiB7ICR0ZXN0c1BlckR1bXBUb29sID0gMTsgfSwKLSAgICAn
c2tpcHBlZD1zJyA9PiBcJnZhbGlkYXRlU2tpcHBlZEFyZywKLSAgICAnc2xvd2VzdCcgPT4gXCRy
ZXBvcnQxMFNsb3dlc3QsCi0gICAgJ3N0cmlwLWVkaXRpbmctY2FsbGJhY2tzIScgPT4gXCRzdHJp
cEVkaXRpbmdDYWxsYmFja3MsCi0gICAgJ3RocmVhZGVkfHQnID0+IFwkdGhyZWFkZWQsCi0gICAg
J3RpbWVvdXQ9aScgPT4gXCR0aW1lb3V0U2Vjb25kcywKLSAgICAndG9sZXJhbmNlPWYnID0+IFwk
dG9sZXJhbmNlLAotICAgICd1c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzJyA9PiBcJHVzZVJlbW90
ZUxpbmtzVG9UZXN0cywKLSAgICAndmFsZ3JpbmQnID0+IFwkdXNlVmFsZ3JpbmQsCi0gICAgJ3Zl
cmJvc2V8dicgPT4gXCR2ZXJib3NlLAotKTsKLQotaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCB8fCAk
c2hvd0hlbHApIHsKLSAgICBwcmludCBTVERFUlIgJHVzYWdlOwotICAgIGV4aXQgMTsKLX0KLQot
bXkgJGlnbm9yZVNraXBwZWQgPSAkdHJlYXRTa2lwcGVkIGVxICJpZ25vcmUiOwotbXkgJHNraXBw
ZWRPbmx5ID0gJHRyZWF0U2tpcHBlZCBlcSAib25seSI7Ci0KLW15ICRjb25maWd1cmF0aW9uID0g
Y29uZmlndXJhdGlvbigpOwotCi0jIFdlIG5lZWQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
YmUgYWJsZSB0byBlbmFibGUgdGhlIGZlYXR1cmUgcGVyLXNsYXZlCi0kc2hvdWxkV2FpdEZvckhU
VFBEID0gJEVOVnsiV0VCS0lUX1dBSVRfRk9SX0hUVFBEIn0gdW5sZXNzICgkc2hvdWxkV2FpdEZv
ckhUVFBEKTsKLSR2ZXJib3NlID0gMSBpZiAkdGVzdHNQZXJEdW1wVG9vbCA9PSAxOwotCi1pZiAo
JHNob3VsZENoZWNrTGVha3MgJiYgJHRlc3RzUGVyRHVtcFRvb2wgPiAxMDAwKSB7Ci0gICAgcHJp
bnQgU1RERVJSICJcbldBUk5JTkc6IFJ1bm5pbmcgbW9yZSB0aGFuIDEwMDAgdGVzdHMgYXQgYSB0
aW1lIHdpdGggTWFsbG9jU3RhY2tMb2dnaW5nIGVuYWJsZWQgbWF5IGNhdXNlIGEgY3Jhc2guXG5c
biI7Ci19Ci0KLSMgU3RhY2sgbG9nZ2luZyBkb2VzIG5vdCBwbGF5IHdlbGwgd2l0aCBRdWlja1Rp
bWUgb24gVGlnZXIgKHJkYXI6Ly9wcm9ibGVtLzU1MzcxNTcpCi0kdGVzdE1lZGlhID0gMCBpZiAk
c2hvdWxkQ2hlY2tMZWFrcyAmJiBpc1RpZ2VyKCk7Ci0KLSMgR2VuZXJhdGluZyByZW1vdGUgbGlu
a3MgY2F1c2VzIGEgbG90IG9mIHVubmVjZXNzYXJ5IHNwZXcgb24gR1RLIGJ1aWxkIGJvdAotJHVz
ZVJlbW90ZUxpbmtzVG9UZXN0cyA9IDAgaWYgaXNHdGsoKTsKLQotc2V0Q29uZmlndXJhdGlvblBy
b2R1Y3REaXIoQ3dkOjphYnNfcGF0aCgkcm9vdCkpIGlmIChkZWZpbmVkKCRyb290KSk7Ci1teSAk
cHJvZHVjdERpciA9IHByb2R1Y3REaXIoKTsKLSRwcm9kdWN0RGlyIC49ICIvYmluIiBpZiBpc1F0
KCk7Ci0kcHJvZHVjdERpciAuPSAiL1Byb2dyYW1zIiBpZiBpc0d0aygpOwotCi1jaGRpcldlYktp
dCgpOwotCi1pZiAoIWRlZmluZWQoJHJvb3QpKSB7Ci0gICAgcHJpbnQgU1RERVJSICJSdW5uaW5n
IGJ1aWxkLWR1bXByZW5kZXJ0cmVlXG4iOwotCi0gICAgbG9jYWwgKkRFVk5VTEw7Ci0gICAgbXkg
KCRjaGlsZEluLCAkY2hpbGRPdXQsICRjaGlsZEVycik7Ci0gICAgaWYgKCRxdWlldCkgewotICAg
ICAgICBvcGVuKERFVk5VTEwsICI+IiwgRmlsZTo6U3BlYy0+ZGV2bnVsbCgpKSBvciBkaWUgIkZh
aWxlZCB0byBvcGVuIC9kZXYvbnVsbCI7Ci0gICAgICAgICRjaGlsZE91dCA9ICI+JkRFVk5VTEwi
OwotICAgICAgICAkY2hpbGRFcnIgPSAiPiZERVZOVUxMIjsKLSAgICB9IGVsc2UgewotICAgICAg
ICAjIFdoZW4gbm90IHF1aWV0LCBsZXQgdGhlIGNoaWxkIHVzZSBvdXIgc3Rkb3V0L3N0ZGVyci4K
LSAgICAgICAgJGNoaWxkT3V0ID0gIj4mU1RET1VUIjsKLSAgICAgICAgJGNoaWxkRXJyID0gIj4m
U1RERVJSIjsKLSAgICB9Ci0KLSAgICBteSBAYXJncyA9IGFyZ3VtZW50c0ZvckNvbmZpZ3VyYXRp
b24oKTsKLSAgICBteSAkYnVpbGRQcm9jZXNzID0gb3BlbjMoJGNoaWxkSW4sICRjaGlsZE91dCwg
JGNoaWxkRXJyLCAiV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZSIsIEBh
cmdzKSBvciBkaWUgIkZhaWxlZCB0byBydW4gYnVpbGQtZHVtcHJlbmRlcnRyZWUiOwotICAgIGNs
b3NlKCRjaGlsZEluKTsKLSAgICB3YWl0cGlkICRidWlsZFByb2Nlc3MsIDA7Ci0gICAgbXkgJGJ1
aWxkUmVzdWx0ID0gJD87Ci0gICAgY2xvc2UoJGNoaWxkT3V0KTsKLSAgICBjbG9zZSgkY2hpbGRF
cnIpOwotCi0gICAgY2xvc2UgREVWTlVMTCBpZiAoJHF1aWV0KTsKLQotICAgIGlmICgkYnVpbGRS
ZXN1bHQpIHsKLSAgICAgICAgcHJpbnQgU1RERVJSICJDb21waWxpbmcgRHVtcFJlbmRlclRyZWUg
ZmFpbGVkIVxuIjsKLSAgICAgICAgZXhpdCBleGl0U3RhdHVzKCRidWlsZFJlc3VsdCk7Ci0gICAg
fQotfQotCi1teSAkZHVtcFRvb2xOYW1lID0gIkR1bXBSZW5kZXJUcmVlIjsKLSRkdW1wVG9vbE5h
bWUgLj0gIl9kZWJ1ZyIgaWYgaXNDeWd3aW4oKSAmJiBjb25maWd1cmF0aW9uRm9yVmlzdWFsU3R1
ZGlvKCkgIX4gL15SZWxlYXNlfERlYnVnX0ludGVybmFsJC87Ci1teSAkZHVtcFRvb2wgPSAiJHBy
b2R1Y3REaXIvJGR1bXBUb29sTmFtZSI7Ci1kaWUgImNhbid0IGZpbmQgZXhlY3V0YWJsZSAkZHVt
cFRvb2xOYW1lIChsb29rZWQgaW4gJHByb2R1Y3REaXIpXG4iIHVubGVzcyAteCAkZHVtcFRvb2w7
Ci0KLW15ICRpbWFnZURpZmZUb29sID0gIiRwcm9kdWN0RGlyL0ltYWdlRGlmZiI7Ci0kaW1hZ2VE
aWZmVG9vbCAuPSAiX2RlYnVnIiBpZiBpc0N5Z3dpbigpICYmIGNvbmZpZ3VyYXRpb25Gb3JWaXN1
YWxTdHVkaW8oKSAhfiAvXlJlbGVhc2V8RGVidWdfSW50ZXJuYWwkLzsKLWRpZSAiY2FuJ3QgZmlu
ZCBleGVjdXRhYmxlICRpbWFnZURpZmZUb29sIChsb29rZWQgaW4gJHByb2R1Y3REaXIpXG4iIGlm
ICRwaXhlbFRlc3RzICYmICEteCAkaW1hZ2VEaWZmVG9vbDsKLQotY2hlY2tGcmFtZXdvcmtzKCkg
dW5sZXNzIGlzQ3lnd2luKCk7Ci0KLWlmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKLSAgICBwdXNo
IEBJTkMsICRwcm9kdWN0RGlyOwotICAgIHJlcXVpcmUgRHVtcFJlbmRlclRyZWVTdXBwb3J0Owot
fQotCi1teSAkbGF5b3V0VGVzdHNOYW1lID0gIkxheW91dFRlc3RzIjsKLW15ICR0ZXN0RGlyZWN0
b3J5ID0gRmlsZTo6U3BlYy0+cmVsMmFicygkbGF5b3V0VGVzdHNOYW1lKTsKLW15ICRleHBlY3Rl
ZERpcmVjdG9yeSA9ICR0ZXN0RGlyZWN0b3J5OwotbXkgJHBsYXRmb3JtQmFzZURpcmVjdG9yeSA9
IGNhdGRpcigkdGVzdERpcmVjdG9yeSwgInBsYXRmb3JtIik7Ci1teSAkcGxhdGZvcm1UZXN0RGly
ZWN0b3J5ID0gY2F0ZGlyKCRwbGF0Zm9ybUJhc2VEaXJlY3RvcnksICRwbGF0Zm9ybSk7Ci1teSBA
cGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkgPSBidWlsZFBsYXRmb3JtUmVzdWx0SGllcmFyY2h5KCk7
Ci1teSBAcGxhdGZvcm1UZXN0SGllcmFyY2h5ID0gYnVpbGRQbGF0Zm9ybVRlc3RIaWVyYXJjaHko
QHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5KTsKLQotJGV4cGVjdGVkRGlyZWN0b3J5ID0gJEVOVnsi
V2ViS2l0RXhwZWN0ZWRUZXN0UmVzdWx0c0RpcmVjdG9yeSJ9IGlmICRFTlZ7IldlYktpdEV4cGVj
dGVkVGVzdFJlc3VsdHNEaXJlY3RvcnkifTsKLQotJHRlc3RSZXN1bHRzRGlyZWN0b3J5ID0gRmls
ZTo6U3BlYy0+cmVsMmFicygkdGVzdFJlc3VsdHNEaXJlY3RvcnkpOwotbXkgJHRlc3RSZXN1bHRz
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdGVzdFJlc3VsdHNEaXJlY3RvcnksICJyZXN1bHRzLmh0
bWwiKTsKLQotaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgewotICAgIHByaW50IFNUREVSUiAiQ29t
cGlsaW5nIEphdmEgdGVzdHNcbiI7Ci0gICAgbXkgJGphdmFUZXN0c0RpcmVjdG9yeSA9IGNhdGRp
cigkdGVzdERpcmVjdG9yeSwgImphdmEiKTsKLQotICAgIGlmIChzeXN0ZW0oIi91c3IvYmluL21h
a2UiLCAiLUMiLCAiJGphdmFUZXN0c0RpcmVjdG9yeSIpKSB7Ci0gICAgICAgIGV4aXQgMTsKLSAg
ICB9Ci19Ci0KLQotcHJpbnQgIlJ1bm5pbmcgdGVzdHMgZnJvbSAkdGVzdERpcmVjdG9yeVxuIjsK
LWlmICgkcGl4ZWxUZXN0cykgewotICAgIHByaW50ICJFbmFibGluZyBwaXhlbCB0ZXN0cyB3aXRo
IGEgdG9sZXJhbmNlIG9mICR0b2xlcmFuY2UlXG4iOwotICAgIGlmIChpc0RhcndpbigpKSB7Ci0g
ICAgICAgIHByaW50ICJXQVJOSU5HOiBUZW1wb3JhcmlseSBjaGFuZ2luZyB0aGUgbWFpbiBkaXNw
bGF5IGNvbG9yIHByb2ZpbGU6XG4iOwotICAgICAgICBwcmludCAiXHRUaGUgY29sb3JzIG9uIHlv
dXIgc2NyZWVuIHdpbGwgY2hhbmdlIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHRlc3RpbmcuXG4i
OwotICAgICAgICBwcmludCAiXHRUaGlzIGFsbG93cyB0aGUgcGl4ZWwgdGVzdHMgdG8gaGF2ZSBj
b25zaXN0ZW50IGNvbG9yIHZhbHVlcyBhY3Jvc3MgYWxsIG1hY2hpbmVzLlxuIjsKLSAgICAgICAg
Ci0gICAgICAgIGlmIChpc1Blcmlhbkluc3RhbGxlZCgpKSB7Ci0gICAgICAgICAgICBwcmludCAi
V0FSTklORzogUGVyaWFuJ3MgUXVpY2tUaW1lIGNvbXBvbmVudCBpcyBpbnN0YWxsZWQgYW5kIHRo
aXMgbWF5IGFmZmVjdCBwaXhlbCB0ZXN0IHJlc3VsdHMhXG4iOwotICAgICAgICAgICAgcHJpbnQg
Ilx0WW91IHNob3VsZCBhdm9pZCBnZW5lcmF0aW5nIG5ldyBwaXhlbCByZXN1bHRzIGluIHRoaXMg
ZW52aXJvbm1lbnQuXG4iOwotICAgICAgICAgICAgcHJpbnQgIlx0U2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNSBmb3IgZGV0YWlscy5cbiI7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLXN5c3RlbSAibG4iLCAiLXMiLCAkdGVzdERpcmVjdG9yeSwgIi90bXAv
TGF5b3V0VGVzdHMiIHVubGVzcyAteCAiL3RtcC9MYXlvdXRUZXN0cyI7Ci0KLW15ICVpZ25vcmVk
RmlsZXMgPSAoICJyZXN1bHRzLmh0bWwiID0+IDEgKTsKLW15ICVpZ25vcmVkRGlyZWN0b3JpZXMg
PSBtYXAgeyAkXyA9PiAxIH0gcXcocGxhdGZvcm0pOwotbXkgJWlnbm9yZWRMb2NhbERpcmVjdG9y
aWVzID0gbWFwIHsgJF8gPT4gMSB9IHF3KC5zdm4gX3N2biByZXNvdXJjZXMgc2NyaXB0LXRlc3Rz
KTsKLW15ICVzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9ucyA9IG1hcCB7ICRfID0+IDEgfSBxdyhodG1s
IHNodG1sIHhtbCB4aHRtbCB4aHRtbG1wIHBsIHBocCk7Ci0KLWlmICghY2hlY2tXZWJDb3JlRmVh
dHVyZVN1cHBvcnQoIk1hdGhNTCIsIDApKSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snbWF0
aG1sJ30gPSAxOwotfQotCi0jIEZJWE1FOiBXZSBzaG91bGQgZml4IHdlYmtpdHBlcmwvZmVhdHVy
ZXMucG06aGFzRmVhdHVyZSgpIHRvIGRvIHRoZSBjb3JyZWN0IGZlYXR1cmUgZGV0ZWN0aW9uIGZv
ciBDeWd3aW4uCi1pZiAoY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIlNWRyIsIDApKSB7Ci0g
ICAgJHN1cHBvcnRlZEZpbGVFeHRlbnNpb25zeydzdmcnfSA9IDE7Ci19IGVsc2lmIChpc0N5Z3dp
bigpKSB7Ci0gICAgJHN1cHBvcnRlZEZpbGVFeHRlbnNpb25zeydzdmcnfSA9IDE7Ci19IGVsc2Ug
ewotICAgICRpZ25vcmVkTG9jYWxEaXJlY3Rvcmllc3snc3ZnJ30gPSAxOwotfQotCi1pZiAoISR0
ZXN0SFRUUCkgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2h0dHAnfSA9IDE7Ci0gICAgJGln
bm9yZWREaXJlY3Rvcmllc3snd2Vic29ja2V0J30gPSAxOwotfQotCi1pZiAoISR0ZXN0TWVkaWEp
IHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydtZWRpYSd9ID0gMTsKLSAgICAkaWdub3JlZERp
cmVjdG9yaWVzeydodHRwL3Rlc3RzL21lZGlhJ30gPSAxOwotfQotCi1teSAkc3VwcG9ydGVkRmVh
dHVyZXNSZXN1bHQgPSAiIjsKLQotaWYgKGlzQ3lnd2luKCkpIHsKLSAgICAjIENvbGxlY3Qgc3Vw
cG9ydGVkIGZlYXR1cmVzIGxpc3QKLSAgICBzZXRQYXRoRm9yUnVubmluZ1dlYktpdEFwcChcJUVO
Vik7Ci0gICAgbXkgJHN1cHBvcnRlZEZlYXR1cmVzQ29tbWFuZCA9ICRkdW1wVG9vbCAuICIgLS1w
cmludC1zdXBwb3J0ZWQtZmVhdHVyZXMgMj4mMSI7Ci0gICAgJHN1cHBvcnRlZEZlYXR1cmVzUmVz
dWx0ID0gYCRzdXBwb3J0ZWRGZWF0dXJlc0NvbW1hbmQgMj4mMWA7Ci19Ci0KLW15ICRoYXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nID0gMDsKLW15ICRoYXMzRFJlbmRlcmluZyA9IDA7Ci0KLWlmIChp
c0N5Z3dpbigpKSB7Ci0gICAgJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSAkc3VwcG9ydGVk
RmVhdHVyZXNSZXN1bHQgPX4gL0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcvOwotICAgICRoYXMzRFJl
bmRlcmluZyA9ICRzdXBwb3J0ZWRGZWF0dXJlc1Jlc3VsdCA9fiAvM0RSZW5kZXJpbmcvOwotfSBl
bHNlIHsKLSAgICAkaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IGNoZWNrV2ViQ29yZUZlYXR1
cmVTdXBwb3J0KCJBY2NlbGVyYXRlZCBDb21wb3NpdGluZyIsIDApOwotICAgICRoYXMzRFJlbmRl
cmluZyA9IGNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCIzRCBSZW5kZXJpbmciLCAwKTsKLX0K
LQotaWYgKCEkaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZykgewotICAgICRpZ25vcmVkRGlyZWN0
b3JpZXN7J2NvbXBvc2l0aW5nJ30gPSAxOwotfQotCi1pZiAoISRoYXMzRFJlbmRlcmluZykgewot
ICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2FuaW1hdGlvbnMvM2QnfSA9IDE7Ci0gICAgJGlnbm9y
ZWREaXJlY3Rvcmllc3sndHJhbnNmb3Jtcy8zZCd9ID0gMTsKLX0KLQotaWYgKCFjaGVja1dlYkNv
cmVGZWF0dXJlU3VwcG9ydCgiM0QgQ2FudmFzIiwgMCkpIHsKLSAgICAkaWdub3JlZERpcmVjdG9y
aWVzeydmYXN0L2NhbnZhcy93ZWJnbCd9ID0gMTsKLX0KLQotaWYgKGNoZWNrV2ViQ29yZUZlYXR1
cmVTdXBwb3J0KCJXTUwiLCAwKSkgewotICAgICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3snd21s
J30gPSAxOwotfSBlbHNlIHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydodHRwL3Rlc3RzL3dt
bCd9ID0gMTsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydmYXN0L3dtbCd9ID0gMTsKLSAgICAk
aWdub3JlZERpcmVjdG9yaWVzeyd3bWwnfSA9IDE7Ci19Ci0KLWlmICghY2hlY2tXZWJDb3JlRmVh
dHVyZVN1cHBvcnQoIlhIVE1MTVAiLCAwKSkgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2Zh
c3QveGh0bWxtcCd9ID0gMTsKLX0KLQotcHJvY2Vzc0lnbm9yZVRlc3RzKCRpZ25vcmVUZXN0cywg
Imlnbm9yZS10ZXN0cyIpIGlmICRpZ25vcmVUZXN0czsKLWlmICghJGlnbm9yZVNraXBwZWQpIHsK
LSAgICBpZiAoISRza2lwcGVkT25seSB8fCBAQVJHViA9PSAwKSB7Ci0gICAgICAgIHJlYWRTa2lw
cGVkRmlsZXMoIiIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICMgU2luY2UgcmVhZFNraXBwZWRG
aWxlcygpIGFwcGVuZHMgdG8gQEFSR1YsIHdlIG11c3QgdXNlIGEgZm9yZWFjaAotICAgICAgICAj
IGxvb3Agc28gdGhhdCB3ZSBvbmx5IGl0ZXJhdGUgb3ZlciB0aGUgb3JpZ2luYWwgYXJndW1lbnQg
bGlzdC4KLSAgICAgICAgZm9yZWFjaCBteSAkYXJnbnVtICgwIC4uICQjQVJHVikgewotICAgICAg
ICAgICAgcmVhZFNraXBwZWRGaWxlcyhzaGlmdCBAQVJHVik7Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0KLW15IEB0ZXN0cyA9IGZpbmRUZXN0c1RvUnVuKCk7Ci0KLWRpZSAibm8gdGVzdHMgdG8gcnVu
XG4iIGlmICFAdGVzdHM7Ci0KLW15ICVjb3VudHM7Ci1teSAldGVzdHM7Ci1teSAlaW1hZ2VzUHJl
c2VudDsKLW15ICVpbWFnZURpZmZlcmVuY2VzOwotbXkgJWR1cmF0aW9uczsKLW15ICRjb3VudCA9
IDA7Ci1teSAkbGVha3NPdXRwdXRGaWxlTnVtYmVyID0gMTsKLW15ICR0b3RhbExlYWtzID0gMDsK
LQotbXkgQHRvb2xBcmdzID0gKCk7Ci1wdXNoIEB0b29sQXJncywgIi0tcGl4ZWwtdGVzdHMiIGlm
ICRwaXhlbFRlc3RzOwotcHVzaCBAdG9vbEFyZ3MsICItLXRocmVhZGVkIiBpZiAkdGhyZWFkZWQ7
Ci1wdXNoIEB0b29sQXJncywgIi0tY29tcGxleC10ZXh0IiBpZiAkY29tcGxleFRleHQ7Ci1wdXNo
IEB0b29sQXJncywgIi0iOwotCi1teSBAZGlmZlRvb2xBcmdzID0gKCk7Ci1wdXNoIEBkaWZmVG9v
bEFyZ3MsICItLXRvbGVyYW5jZSIsICR0b2xlcmFuY2U7Ci0KLSR8ID0gMTsKLQotbXkgJGR1bXBU
b29sUElEOwotbXkgJGlzRHVtcFRvb2xPcGVuID0gMDsKLW15ICRkdW1wVG9vbENyYXNoZWQgPSAw
OwotbXkgJGltYWdlRGlmZlRvb2xQSUQ7Ci1teSAkaXNEaWZmVG9vbE9wZW4gPSAwOwotCi1teSAk
YXRMaW5lU3RhcnQgPSAxOwotbXkgJGxhc3REaXJlY3RvcnkgPSAiIjsKLQotbXkgJGlzSHR0cGRP
cGVuID0gMDsKLW15ICRpc1dlYlNvY2tldFNlcnZlck9wZW4gPSAwOwotbXkgJHdlYlNvY2tldFNl
cnZlclBJRCA9IDA7Ci1teSAkZmFpbGVkVG9TdGFydFdlYlNvY2tldFNlcnZlciA9IDA7Ci0jIHdz
cyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotIyBt
eSAkd2ViU29ja2V0U2VjdXJlU2VydmVyUElEID0gMDsKLQotc3ViIGNhdGNoX3BpcGUgeyAkZHVt
cFRvb2xDcmFzaGVkID0gMTsgfQotJFNJR3siUElQRSJ9ID0gImNhdGNoX3BpcGUiOwotCi1wcmlu
dCAiVGVzdGluZyAiLCBzY2FsYXIgQHRlc3RzLCAiIHRlc3QgY2FzZXMiOwotcHJpbnQgIiAkaXRl
cmF0aW9ucyB0aW1lcyIgaWYgKCRpdGVyYXRpb25zID4gMSk7Ci1wcmludCAiLCByZXBlYXRpbmcg
ZWFjaCB0ZXN0ICRyZXBlYXRFYWNoIHRpbWVzIiBpZiAoJHJlcGVhdEVhY2ggPiAxKTsKLXByaW50
ICIuXG4iOwotCi1teSAkb3ZlcmFsbFN0YXJ0VGltZSA9IHRpbWU7Ci0KLW15ICVleHBlY3RlZFJl
c3VsdFBhdGhzOwotCi1teSBAb3JpZ2luYWxUZXN0cyA9IEB0ZXN0czsKLSMgQWRkIGluZGl2aWR1
YWwgdGVzdCByZXBldGl0aW9ucwotaWYgKCRyZXBlYXRFYWNoID4gMSkgewotICAgIEB0ZXN0cyA9
ICgpOwotICAgIGZvcmVhY2ggbXkgJHRlc3QgKEBvcmlnaW5hbFRlc3RzKSB7Ci0gICAgICAgIGZv
ciAobXkgJGkgPSAwOyAkaSA8ICRyZXBlYXRFYWNoOyAkaSsrKSB7Ci0gICAgICAgICAgICBwdXNo
KEB0ZXN0cywgJHRlc3QpOwotICAgICAgICB9Ci0gICAgfQotfQotIyBBZGQgdGVzdCBzZXQgcmVw
ZXRpdGlvbnMKLWZvciAobXkgJGkgPSAxOyAkaSA8ICRpdGVyYXRpb25zOyAkaSsrKSB7Ci0gICAg
cHVzaChAdGVzdHMsIEBvcmlnaW5hbFRlc3RzKTsKLX0KLQotZm9yIG15ICR0ZXN0IChAdGVzdHMp
IHsKLSAgICBteSAkbmV3RHVtcFRvb2wgPSBub3QgJGlzRHVtcFRvb2xPcGVuOwotICAgIG9wZW5E
dW1wVG9vbCgpOwotCi0gICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lvbigkdGVzdCk7Ci0gICAg
bXkgJGV4cGVjdGVkRXh0ZW5zaW9uID0gIi50eHQiOwotICAgIAotICAgIG15ICRkaXIgPSAkYmFz
ZTsKLSAgICAkZGlyID1+IHN8L1teL10rJHx8OwotCi0gICAgaWYgKCRuZXdEdW1wVG9vbCB8fCAk
ZGlyIG5lICRsYXN0RGlyZWN0b3J5KSB7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGxvZ3VlIChlcGls
b2d1ZXNBbmRQcm9sb2d1ZXMoJG5ld0R1bXBUb29sID8gIiIgOiAkbGFzdERpcmVjdG9yeSwgJGRp
cikpIHsKLSAgICAgICAgICAgIGlmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICAgICAgICAgJGxv
Z3VlID0gdG9XaW5kb3dzUGF0aCgkbG9ndWUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAkbG9ndWUgPSBjYW5vbnBhdGgoJGxvZ3VlKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmICgkdmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHByaW50ICJydW5uaW5n
IGVwaWxvZ3VlIG9yIHByb2xvZ3VlICRsb2d1ZVxuIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHByaW50IE9VVCAiJGxvZ3VlXG4iOwotICAgICAgICAgICAgIyBUaHJvdyBhd2F5IG91dHB1
dCBmcm9tIER1bXBSZW5kZXJUcmVlLgotICAgICAgICAgICAgIyBPbmNlIGZvciB0aGUgdGVzdCBv
dXRwdXQgYW5kIG9uY2UgZm9yIHBpeGVsIHJlc3VsdHMgKGVtcHR5KQotICAgICAgICAgICAgd2hp
bGUgKDxJTj4pIHsKLSAgICAgICAgICAgICAgICBsYXN0IGlmIC8jRU9GLzsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHdoaWxlICg8SU4+KSB7Ci0gICAgICAgICAgICAgICAgbGFzdCBpZiAv
I0VPRi87Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoJHZlcmJv
c2UpIHsKLSAgICAgICAgcHJpbnQgInJ1bm5pbmcgJHRlc3QgLT4gIjsKLSAgICAgICAgJGF0TGlu
ZVN0YXJ0ID0gMDsKLSAgICB9IGVsc2lmICghJHF1aWV0KSB7Ci0gICAgICAgIGlmICgkZGlyIG5l
ICRsYXN0RGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5l
U3RhcnQ7Ci0gICAgICAgICAgICBwcmludCAiJGRpciAiOwotICAgICAgICB9Ci0gICAgICAgIHBy
aW50ICIuIjsKLSAgICAgICAgJGF0TGluZVN0YXJ0ID0gMDsKLSAgICB9Ci0KLSAgICAkbGFzdERp
cmVjdG9yeSA9ICRkaXI7Ci0KLSAgICBteSAkcmVzdWx0OwotCi0gICAgbXkgJHN0YXJ0VGltZSA9
IHRpbWUgaWYgJHJlcG9ydDEwU2xvd2VzdDsKLQotICAgICMgVHJ5IHRvIHJlYWQgZXhwZWN0ZWQg
aGFzaCBmaWxlIGZvciBwaXhlbCB0ZXN0cwotICAgIG15ICRzdWZmaXhFeHBlY3RlZEhhc2ggPSAi
IjsKLSAgICBpZiAoJHBpeGVsVGVzdHMgJiYgISRyZXNldFJlc3VsdHMpIHsKLSAgICAgICAgbXkg
JGV4cGVjdGVkUGl4ZWxEaXIgPSBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJGJhc2UsIDAsICJw
bmciKTsKLSAgICAgICAgaWYgKG9wZW4gRVhQRUNURURIQVNILCAiJGV4cGVjdGVkUGl4ZWxEaXIv
JGJhc2UtJGV4cGVjdGVkVGFnLmNoZWNrc3VtIikgewotICAgICAgICAgICAgbXkgJGV4cGVjdGVk
SGFzaCA9IDxFWFBFQ1RFREhBU0g+OwotICAgICAgICAgICAgY2hvbXAoJGV4cGVjdGVkSGFzaCk7
Ci0gICAgICAgICAgICBjbG9zZSBFWFBFQ1RFREhBU0g7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgICMgRm9ybWF0IGV4cGVjdGVkIGhhc2ggaW50byBhIHN1ZmZpeCBzdHJpbmcgdGhhdCBpcyBh
cHBlbmRlZCB0byB0aGUgcGF0aCAvIFVSTCBwYXNzZWQgdG8gRFJUCi0gICAgICAgICAgICAkc3Vm
Zml4RXhwZWN0ZWRIYXNoID0gIickZXhwZWN0ZWRIYXNoIjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIGlmICgkdGVzdCA9fiAvXmh0dHBcLy8pIHsKLSAgICAgICAgY29uZmlndXJlQW5kT3BlbkhU
VFBESWZOZWVkZWQoKTsKLSAgICAgICAgaWYgKCR0ZXN0ICF+IC9eaHR0cFwvdGVzdHNcL2xvY2Fs
XC8vICYmICR0ZXN0ICF+IC9eaHR0cFwvdGVzdHNcL3NzbFwvLyAmJiAkdGVzdCAhfiAvXmh0dHBc
L3Rlc3RzXC93bWxcLy8gJiYgJHRlc3QgIX4gL15odHRwXC90ZXN0c1wvbWVkaWFcLy8pIHsKLSAg
ICAgICAgICAgIG15ICRwYXRoID0gY2Fub25wYXRoKCR0ZXN0KTsKLSAgICAgICAgICAgICRwYXRo
ID1+IHMvXmh0dHBcL3Rlc3RzXC8vLzsKLSAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cDovLzEy
Ny4wLjAuMTokaHR0cGRQb3J0LyRwYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxuIjsKLSAgICAgICAg
fSBlbHNpZiAoJHRlc3QgPX4gL15odHRwXC90ZXN0c1wvc3NsXC8vKSB7Ci0gICAgICAgICAgICBt
eSAkcGF0aCA9IGNhbm9ucGF0aCgkdGVzdCk7Ci0gICAgICAgICAgICAkcGF0aCA9fiBzL15odHRw
XC90ZXN0c1wvLy87Ci0gICAgICAgICAgICBwcmludCBPVVQgImh0dHBzOi8vMTI3LjAuMC4xOiRo
dHRwZFNTTFBvcnQvJHBhdGgkc3VmZml4RXhwZWN0ZWRIYXNoXG4iOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgbXkgJHRlc3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IjsKLSAg
ICAgICAgICAgIGlmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICAgICAgICAgJHRlc3RQYXRoID0g
dG9XaW5kb3dzUGF0aCgkdGVzdFBhdGgpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAkdGVzdFBhdGggPSBjYW5vbnBhdGgoJHRlc3RQYXRoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHByaW50IE9VVCAiJHRlc3RQYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxuIjsK
LSAgICAgICAgfQotICAgIH0gZWxzaWYgKCR0ZXN0ID1+IC9ed2Vic29ja2V0XC8vKSB7Ci0gICAg
ICAgIGlmICgkdGVzdCA9fiAvXndlYnNvY2tldFwvdGVzdHNcL2xvY2FsXC8vKSB7Ci0gICAgICAg
ICAgICBteSAkdGVzdFBhdGggPSAiJHRlc3REaXJlY3RvcnkvJHRlc3QiOwotICAgICAgICAgICAg
aWYgKGlzQ3lnd2luKCkpIHsKLSAgICAgICAgICAgICAgICAkdGVzdFBhdGggPSB0b1dpbmRvd3NQ
YXRoKCR0ZXN0UGF0aCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICR0
ZXN0UGF0aCA9IGNhbm9ucGF0aCgkdGVzdFBhdGgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcHJpbnQgT1VUICIkdGVzdFBhdGhcbiI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBpZiAob3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVkKCkpIHsKLSAgICAgICAgICAgICAgICBt
eSAkcGF0aCA9IGNhbm9ucGF0aCgkdGVzdCk7Ci0gICAgICAgICAgICAgICAgaWYgKCR0ZXN0ID1+
IC9ed2Vic29ja2V0XC90ZXN0c1wvc3NsXC8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICMgd3Nz
IGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRXJyb3I6IHdzcyBpcyBkaXNhYmxlZCB1bnRp
bCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLiI7Ci0gICAgICAgICAgICAgICAgICAg
ICMgcHJpbnQgT1VUICJodHRwczovLzEyNy4wLjAuMTokd2ViU29ja2V0U2VjdXJlUG9ydC8kcGF0
aFxuIjsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwcmlu
dCBPVVQgImh0dHA6Ly8xMjcuMC4wLjE6JHdlYlNvY2tldFBvcnQvJHBhdGhcbiI7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAjIFdlIGZh
aWxlZCB0byBsYXVuY2ggdGhlIFdlYlNvY2tldCBzZXJ2ZXIuICBEaXNwbGF5IGEgdXNlZnVsIGVy
cm9yIG1lc3NhZ2UgcmF0aGVyIHRoYW4gYXR0ZW1wdGluZwotICAgICAgICAgICAgICAgICMgdG8g
cnVuIHRlc3RzIHRoYXQgZXhwZWN0IHRoZSBzZXJ2ZXIgdG8gYmUgYXZhaWxhYmxlLgotICAgICAg
ICAgICAgICAgIG15ICRlcnJvck1lc3NhZ2VQYXRoID0gIiR0ZXN0RGlyZWN0b3J5L3dlYnNvY2tl
dC9yZXNvdXJjZXMvc2VydmVyLWZhaWxlZC10by1zdGFydC5odG1sIjsKLSAgICAgICAgICAgICAg
ICAkZXJyb3JNZXNzYWdlUGF0aCA9IGlzQ3lnd2luKCkgPyB0b1dpbmRvd3NQYXRoKCRlcnJvck1l
c3NhZ2VQYXRoKSA6IGNhbm9ucGF0aCgkZXJyb3JNZXNzYWdlUGF0aCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQgT1VUICIkZXJyb3JNZXNzYWdlUGF0aFxuIjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICR0ZXN0UGF0aCA9ICIkdGVzdERpcmVjdG9y
eS8kdGVzdCI7Ci0gICAgICAgIGlmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICAgICAkdGVzdFBh
dGggPSB0b1dpbmRvd3NQYXRoKCR0ZXN0UGF0aCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAkdGVzdFBhdGggPSBjYW5vbnBhdGgoJHRlc3RQYXRoKTsKLSAgICAgICAgfQotICAgICAg
ICBwcmludCBPVVQgIiR0ZXN0UGF0aCRzdWZmaXhFeHBlY3RlZEhhc2hcbiIgaWYgZGVmaW5lZCAk
dGVzdFBhdGg7Ci0gICAgfQotCi0gICAgIyBEdW1wUmVuZGVyVHJlZSBpcyBleHBlY3RlZCB0byBk
dW1wIHR3byAiYmxvY2tzIiB0byBzdGRvdXQgZm9yIGVhY2ggdGVzdC4KLSAgICAjIEVhY2ggYmxv
Y2sgaXMgdGVybWluYXRlZCBieSBhICNFT0Ygb24gYSBsaW5lIGJ5IGl0c2VsZi4KLSAgICAjIFRo
ZSBmaXJzdCBibG9jayBpcyB0aGUgb3V0cHV0IG9mIHRoZSB0ZXN0IChpbiB0ZXh0LCBSZW5kZXJU
cmVlIG9yIG90aGVyIGZvcm1hdHMpLgotICAgICMgVGhlIHNlY29uZCBibG9jayBpcyBmb3Igb3B0
aW9uYWwgcGl4ZWwgZGF0YSBpbiBQTkcgZm9ybWF0LCBhbmQgbWF5IGJlIGVtcHR5IGlmCi0gICAg
IyBwaXhlbCB0ZXN0cyBhcmUgbm90IGJlaW5nIHJ1biwgb3IgdGhlIHRlc3QgZG9lcyBub3QgZHVt
cCBwaXhlbHMgKGUuZy4gdGV4dCB0ZXN0cykuCi0gICAgbXkgJHJlYWRSZXN1bHRzID0gcmVhZEZy
b21EdW1wVG9vbFdpdGhUaW1lcihJTiwgRVJST1IpOwotCi0gICAgbXkgJGFjdHVhbCA9ICRyZWFk
UmVzdWx0cy0+e291dHB1dH07Ci0gICAgbXkgJGVycm9yID0gJHJlYWRSZXN1bHRzLT57ZXJyb3J9
OwotCi0gICAgJGV4cGVjdGVkRXh0ZW5zaW9uID0gJHJlYWRSZXN1bHRzLT57ZXh0ZW5zaW9ufTsK
LSAgICBteSAkZXhwZWN0ZWRGaWxlTmFtZSA9ICIkYmFzZS0kZXhwZWN0ZWRUYWcuJGV4cGVjdGVk
RXh0ZW5zaW9uIjsKLQotICAgIG15ICRpc1RleHQgPSBpc1RleHRPbmx5VGVzdCgkYWN0dWFsKTsK
LQotICAgIG15ICRleHBlY3RlZERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwg
JGlzVGV4dCwgJGV4cGVjdGVkRXh0ZW5zaW9uKTsKLSAgICAkZXhwZWN0ZWRSZXN1bHRQYXRoc3sk
YmFzZX0gPSAiJGV4cGVjdGVkRGlyLyRleHBlY3RlZEZpbGVOYW1lIjsKLQotICAgIHVubGVzcyAo
JHJlYWRSZXN1bHRzLT57c3RhdHVzfSBlcSAic3VjY2VzcyIpIHsKLSAgICAgICAgbXkgJGNyYXNo
ZWQgPSAkcmVhZFJlc3VsdHMtPntzdGF0dXN9IGVxICJjcmFzaGVkIjsKLSAgICAgICAgdGVzdENy
YXNoZWRPclRpbWVkT3V0KCR0ZXN0LCAkYmFzZSwgJGNyYXNoZWQsICRhY3R1YWwsICRlcnJvcik7
Ci0gICAgICAgIGNvdW50RmluaXNoZWRUZXN0KCR0ZXN0LCAkYmFzZSwgJGNyYXNoZWQgPyAiY3Jh
c2giIDogInRpbWVkb3V0IiwgMCk7Ci0gICAgICAgIG5leHQ7Ci0gICAgfQotCi0gICAgJGR1cmF0
aW9uc3skdGVzdH0gPSB0aW1lIC0gJHN0YXJ0VGltZSBpZiAkcmVwb3J0MTBTbG93ZXN0OwotCi0g
ICAgbXkgJGV4cGVjdGVkOwotCi0gICAgaWYgKCEkcmVzZXRSZXN1bHRzICYmIG9wZW4gRVhQRUNU
RUQsICI8IiwgIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSIpIHsKLSAgICAgICAgJGV4
cGVjdGVkID0gIiI7Ci0gICAgICAgIHdoaWxlICg8RVhQRUNURUQ+KSB7Ci0gICAgICAgICAgICBu
ZXh0IGlmICRzdHJpcEVkaXRpbmdDYWxsYmFja3MgJiYgJF8gPX4gL15FRElUSU5HIERFTEVHQVRF
Oi87Ci0gICAgICAgICAgICAkZXhwZWN0ZWQgLj0gJF87Ci0gICAgICAgIH0KLSAgICAgICAgY2xv
c2UgRVhQRUNURUQ7Ci0gICAgfQotCi0gICAgaWYgKCRpZ25vcmVNZXRyaWNzICYmICEkaXNUZXh0
ICYmIGRlZmluZWQgJGV4cGVjdGVkKSB7Ci0gICAgICAgICgkYWN0dWFsLCAkZXhwZWN0ZWQpID0g
c3RyaXBNZXRyaWNzKCRhY3R1YWwsICRleHBlY3RlZCk7Ci0gICAgfQotCi0gICAgaWYgKCRzaG91
bGRDaGVja0xlYWtzICYmICR0ZXN0c1BlckR1bXBUb29sID09IDEpIHsKLSAgICAgICAgcHJpbnQg
IiAgICAgICAgJHRlc3QgLT4gIjsKLSAgICB9Ci0KLSAgICBteSAkYWN0dWFsUE5HID0gIiI7Ci0g
ICAgbXkgJGRpZmZQTkcgPSAiIjsKLSAgICBteSAkZGlmZlBlcmNlbnRhZ2UgPSAwOwotICAgIG15
ICRkaWZmUmVzdWx0ID0gInBhc3NlZCI7Ci0KLSAgICBteSAkYWN0dWFsSGFzaCA9ICIiOwotICAg
IG15ICRleHBlY3RlZEhhc2ggPSAiIjsKLSAgICBteSAkYWN0dWFsUE5HU2l6ZSA9IDA7Ci0KLSAg
ICB3aGlsZSAoPElOPikgewotICAgICAgICBsYXN0IGlmIC8jRU9GLzsKLSAgICAgICAgaWYgKC9B
Y3R1YWxIYXNoOiAoW2EtZjAtOV17MzJ9KS8pIHsKLSAgICAgICAgICAgICRhY3R1YWxIYXNoID0g
JDE7Ci0gICAgICAgIH0gZWxzaWYgKC9FeHBlY3RlZEhhc2g6IChbYS1mMC05XXszMn0pLykgewot
ICAgICAgICAgICAgJGV4cGVjdGVkSGFzaCA9ICQxOwotICAgICAgICB9IGVsc2lmICgvQ29udGVu
dC1MZW5ndGg6IChcZCspXHMqLykgewotICAgICAgICAgICAgJGFjdHVhbFBOR1NpemUgPSAkMTsK
LSAgICAgICAgICAgIHJlYWQoSU4sICRhY3R1YWxQTkcsICRhY3R1YWxQTkdTaXplKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGlmICgkdmVyYm9zZSAmJiAkcGl4ZWxUZXN0cyAmJiAhJHJlc2V0
UmVzdWx0cyAmJiAkYWN0dWFsUE5HU2l6ZSkgewotICAgICAgICBpZiAoJGFjdHVhbEhhc2ggZXEg
IiIgJiYgJGV4cGVjdGVkSGFzaCBlcSAiIikgewotICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVz
c2FnZUZvclRlc3QoJHRlc3QsICJXQVJOSU5HOiBhY3R1YWwgJiBleHBlY3RlZCBwaXhlbCBoYXNo
ZXMgYXJlIG1pc3NpbmchIik7Ci0gICAgICAgIH0gZWxzaWYgKCRhY3R1YWxIYXNoIGVxICIiKSB7
Ci0gICAgICAgICAgICBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkdGVzdCwgIldBUk5JTkc6
IGFjdHVhbCBwaXhlbCBoYXNoIGlzIG1pc3NpbmchIik7Ci0gICAgICAgIH0gZWxzaWYgKCRleHBl
Y3RlZEhhc2ggZXEgIiIpIHsKLSAgICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0
KCR0ZXN0LCAiV0FSTklORzogZXhwZWN0ZWQgcGl4ZWwgaGFzaCBpcyBtaXNzaW5nISIpOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCRhY3R1YWxQTkdTaXplID4gMCkgewotICAgICAgICBt
eSAkZXhwZWN0ZWRQaXhlbERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwgMCwg
InBuZyIpOwotCi0gICAgICAgIGlmICghJHJlc2V0UmVzdWx0cyAmJiAoJGV4cGVjdGVkSGFzaCBu
ZSAkYWN0dWFsSGFzaCB8fCAoJGFjdHVhbEhhc2ggZXEgIiIgJiYgJGV4cGVjdGVkSGFzaCBlcSAi
IikpKSB7Ci0gICAgICAgICAgICBpZiAoLWYgIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBl
Y3RlZFRhZy5wbmciKSB7Ci0gICAgICAgICAgICAgICAgbXkgJGV4cGVjdGVkUE5HU2l6ZSA9IC1z
ICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIjsKLSAgICAgICAgICAg
ICAgICBteSAkZXhwZWN0ZWRQTkcgPSAiIjsKLSAgICAgICAgICAgICAgICBvcGVuIEVYUEVDVEVE
UE5HLCAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyI7Ci0gICAgICAg
ICAgICAgICAgcmVhZChFWFBFQ1RFRFBORywgJGV4cGVjdGVkUE5HLCAkZXhwZWN0ZWRQTkdTaXpl
KTsKLQotICAgICAgICAgICAgICAgIG9wZW5EaWZmVG9vbCgpOwotICAgICAgICAgICAgICAgIHBy
aW50IERJRkZPVVQgIkNvbnRlbnQtTGVuZ3RoOiAkYWN0dWFsUE5HU2l6ZVxuIjsKLSAgICAgICAg
ICAgICAgICBwcmludCBESUZGT1VUICRhY3R1YWxQTkc7Ci0KLSAgICAgICAgICAgICAgICBwcmlu
dCBESUZGT1VUICJDb250ZW50LUxlbmd0aDogJGV4cGVjdGVkUE5HU2l6ZVxuIjsKLSAgICAgICAg
ICAgICAgICBwcmludCBESUZGT1VUICRleHBlY3RlZFBORzsKLQotICAgICAgICAgICAgICAgIHdo
aWxlICg8RElGRklOPikgewotICAgICAgICAgICAgICAgICAgICBsYXN0IGlmIC9eZXJyb3IvIHx8
IC9eZGlmZjovOwotICAgICAgICAgICAgICAgICAgICBpZiAoL0NvbnRlbnQtTGVuZ3RoOiAoXGQr
KVxzKi8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlYWQoRElGRklOLCAkZGlmZlBORywg
JDEpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgaWYgKC9eZGlmZjogKC4rKSUgKHBhc3NlZHxmYWlsZWQpLykgewotICAgICAgICAg
ICAgICAgICAgICAkZGlmZlBlcmNlbnRhZ2UgPSAkMSArIDA7Ci0gICAgICAgICAgICAgICAgICAg
ICRpbWFnZURpZmZlcmVuY2VzeyRiYXNlfSA9ICRkaWZmUGVyY2VudGFnZTsKLSAgICAgICAgICAg
ICAgICAgICAgJGRpZmZSZXN1bHQgPSAkMjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCEkZGlmZlBlcmNlbnRhZ2UpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICJwaXhlbCBoYXNo
IGZhaWxlZCAoYnV0IHBpeGVsIHRlc3Qgc3RpbGwgcGFzc2VzKSIpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJp
bnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICJXQVJOSU5HOiBleHBlY3RlZCBpbWFnZSBp
cyBtaXNzaW5nISIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCRy
ZXNldFJlc3VsdHMgfHwgIS1mICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcu
cG5nIikgewotICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJGV4cGVjdGVkUGl4ZWxEaXIsIGRp
cm5hbWUoJGJhc2UpKSBpZiAkdGVzdERpcmVjdG9yeSBuZSAkZXhwZWN0ZWRQaXhlbERpcjsKLSAg
ICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRU
YWcucG5nIiwgJGFjdHVhbFBORyk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoJGFjdHVhbEhh
c2ggbmUgIiIgJiYgKCRyZXNldFJlc3VsdHMgfHwgIS1mICIkZXhwZWN0ZWRQaXhlbERpci8kYmFz
ZS0kZXhwZWN0ZWRUYWcuY2hlY2tzdW0iKSkgewotICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRl
eHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5jaGVja3N1bSIsICRhY3R1YWxIYXNo
KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChkdW1wVG9vbERpZENyYXNoKCkpIHsKLSAg
ICAgICAgJHJlc3VsdCA9ICJjcmFzaCI7Ci0gICAgICAgIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgk
dGVzdCwgJGJhc2UsIDEsICRhY3R1YWwsICRlcnJvcik7Ci0gICAgfSBlbHNpZiAoIWRlZmluZWQg
JGV4cGVjdGVkKSB7Ci0gICAgICAgIGlmICgkdmVyYm9zZSkgewotICAgICAgICAgICAgcHJpbnQg
Im5ldyAiIC4gKCRyZXNldFJlc3VsdHMgPyAicmVzdWx0IiA6ICJ0ZXN0IikgLiJcbiI7Ci0gICAg
ICAgICAgICAkYXRMaW5lU3RhcnQgPSAxOwotICAgICAgICB9Ci0gICAgICAgICRyZXN1bHQgPSAi
bmV3IjsKLQotICAgICAgICBpZiAoJGdlbmVyYXRlTmV3UmVzdWx0cyB8fCAkcmVzZXRSZXN1bHRz
KSB7Ci0gICAgICAgICAgICBta3BhdGggY2F0ZmlsZSgkZXhwZWN0ZWREaXIsIGRpcm5hbWUoJGJh
c2UpKSBpZiAkdGVzdERpcmVjdG9yeSBuZSAkZXhwZWN0ZWREaXI7Ci0gICAgICAgICAgICB3cml0
ZVRvRmlsZSgiJGV4cGVjdGVkRGlyLyRleHBlY3RlZEZpbGVOYW1lIiwgJGFjdHVhbCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKTsKLSAg
ICAgICAgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJGJhc2UsICRhY3R1YWwpOwotICAgICAg
ICBpZiAoISRyZXNldFJlc3VsdHMpIHsKLSAgICAgICAgICAgICMgQWx3YXlzIHByaW50IHRoZSBm
aWxlIG5hbWUgZm9yIG5ldyB0ZXN0cywgYXMgdGhleSB3aWxsIHByb2JhYmx5IG5lZWQgc29tZSBt
YW51YWwgaW5zcGVjdGlvbi4KLSAgICAgICAgICAgICMgaW4gdmVyYm9zZSBtb2RlIHdlIGFscmVh
ZHkgcHJpbnRlZCB0aGUgdGVzdCBjYXNlLCBzbyBubyBuZWVkIHRvIGRvIGl0IGFnYWluLgotICAg
ICAgICAgICAgdW5sZXNzICgkdmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHByaW50ICJcbiIg
dW5sZXNzICRhdExpbmVTdGFydDsKLSAgICAgICAgICAgICAgICBwcmludCAiJHRlc3QgLT4gIjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG15ICRyZXN1bHRzRGlyID0gY2F0ZGlyKCRleHBl
Y3RlZERpciwgZGlybmFtZSgkYmFzZSkpOwotICAgICAgICAgICAgaWYgKCRnZW5lcmF0ZU5ld1Jl
c3VsdHMpIHsKLSAgICAgICAgICAgICAgICBwcmludCAibmV3IChyZXN1bHRzIGdlbmVyYXRlZCBp
biAkcmVzdWx0c0RpcilcbiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IHByaW50ICJuZXdcbiI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAkYXRMaW5lU3RhcnQg
PSAxOwotICAgICAgICB9Ci0gICAgfSBlbHNpZiAoJGFjdHVhbCBlcSAkZXhwZWN0ZWQgJiYgJGRp
ZmZSZXN1bHQgZXEgInBhc3NlZCIpIHsKLSAgICAgICAgaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAg
ICAgICBwcmludCAic3VjY2VlZGVkXG4iOwotICAgICAgICAgICAgJGF0TGluZVN0YXJ0ID0gMTsK
LSAgICAgICAgfQotICAgICAgICAkcmVzdWx0ID0gIm1hdGNoIjsKLSAgICAgICAgZGVsZXRlRXhw
ZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICAkcmVz
dWx0ID0gIm1pc21hdGNoIjsKLQotICAgICAgICBteSAkcGl4ZWxUZXN0RmFpbGVkID0gJHBpeGVs
VGVzdHMgJiYgJGRpZmZQTkcgJiYgJGRpZmZQTkcgbmUgIiI7Ci0gICAgICAgIG15ICR0ZXN0RmFp
bGVkID0gJGFjdHVhbCBuZSAkZXhwZWN0ZWQ7Ci0KLSAgICAgICAgbXkgJG1lc3NhZ2UgPSAhJHRl
c3RGYWlsZWQgPyAicGl4ZWwgdGVzdCBmYWlsZWQiIDogImZhaWxlZCI7Ci0KLSAgICAgICAgaWYg
KCgkdGVzdEZhaWxlZCB8fCAkcGl4ZWxUZXN0RmFpbGVkKSAmJiAkYWRkUGxhdGZvcm1FeGNlcHRp
b25zKSB7Ci0gICAgICAgICAgICBteSAkdGVzdEJhc2UgPSBjYXRmaWxlKCR0ZXN0RGlyZWN0b3J5
LCAkYmFzZSk7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRCYXNlID0gY2F0ZmlsZSgkZXhwZWN0
ZWREaXIsICRiYXNlKTsKLSAgICAgICAgICAgIG15ICR0ZXN0SXNNYXhpbWFsbHlQbGF0Zm9ybVNw
ZWNpZmljID0gJHRlc3RCYXNlID1+IG18XlxRJHBsYXRmb3JtVGVzdERpcmVjdG9yeVxFL3w7Ci0g
ICAgICAgICAgICBteSAkZXhwZWN0ZWRSZXN1bHRJc01heGltYWxseVBsYXRmb3JtU3BlY2lmaWMg
PSAkZXhwZWN0ZWRCYXNlID1+IG18XlxRJHBsYXRmb3JtVGVzdERpcmVjdG9yeVxFL3w7Ci0gICAg
ICAgICAgICBpZiAoISR0ZXN0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmljICYmICEkZXhwZWN0
ZWRSZXN1bHRJc01heGltYWxseVBsYXRmb3JtU3BlY2lmaWMpIHsKLSAgICAgICAgICAgICAgICBt
a3BhdGggY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCBkaXJuYW1lKCRiYXNlKSk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCR0ZXN0RmFpbGVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG15
ICRleHBlY3RlZEZpbGUgPSBjYXRmaWxlKCRwbGF0Zm9ybVRlc3REaXJlY3RvcnksICIkZXhwZWN0
ZWRGaWxlTmFtZSIpOwotICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVk
RmlsZSIsICRhY3R1YWwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAo
JHBpeGVsVGVzdEZhaWxlZCkgewotICAgICAgICAgICAgICAgICAgICBteSAkZXhwZWN0ZWRGaWxl
ID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGJhc2UtJGV4cGVjdGVkVGFnLmNo
ZWNrc3VtIik7Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRGaWxl
IiwgJGFjdHVhbEhhc2gpOwotCi0gICAgICAgICAgICAgICAgICAgICRleHBlY3RlZEZpbGUgPSBj
YXRmaWxlKCRwbGF0Zm9ybVRlc3REaXJlY3RvcnksICIkYmFzZS0kZXhwZWN0ZWRUYWcucG5nIik7
Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRGaWxlIiwgJGFjdHVh
bFBORyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICIg
KHJlc3VsdHMgZ2VuZXJhdGVkIGluICRwbGF0Zm9ybVRlc3REaXJlY3RvcnkpIjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0
ZXN0LCAkbWVzc2FnZSk7Ci0KLSAgICAgICAgbXkgJGRpciA9ICIkdGVzdFJlc3VsdHNEaXJlY3Rv
cnkvJGJhc2UiOwotICAgICAgICAkZGlyID1+IHN8LyhbXi9dKykkfHwgb3IgZGllICJGYWlsZWQg
dG8gZmluZCB0ZXN0IG5hbWUgZnJvbSBiYXNlXG4iOwotICAgICAgICBteSAkdGVzdE5hbWUgPSAk
MTsKLSAgICAgICAgbWtwYXRoICRkaXI7Ci0KLSAgICAgICAgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1
YWxSZXN1bHRzKCRiYXNlKTsKLSAgICAgICAgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJGJh
c2UsICRhY3R1YWwpOwotCi0gICAgICAgIGlmICgkcGl4ZWxUZXN0RmFpbGVkKSB7Ci0gICAgICAg
ICAgICAkaW1hZ2VzUHJlc2VudHskYmFzZX0gPSAxOwotCi0gICAgICAgICAgICB3cml0ZVRvRmls
ZSgiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRhY3R1YWxUYWcucG5nIiwgJGFjdHVhbFBO
Ryk7Ci0gICAgICAgICAgICB3cml0ZVRvRmlsZSgiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNl
LSRkaWZmc1RhZy5wbmciLCAkZGlmZlBORyk7Ci0KLSAgICAgICAgICAgIG15ICRleHBlY3RlZFBp
eGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNlLCAwLCAicG5nIik7Ci0gICAg
ICAgICAgICBjb3B5KCIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIiwg
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIik7Ci0KLSAgICAg
ICAgICAgIG9wZW4gRElGRkhUTUwsICI+JHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRkaWZm
c1RhZy5odG1sIiBvciBkaWU7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPGh0bWw+XG4i
OwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjxoZWFkPlxuIjsKLSAgICAgICAgICAgIHBy
aW50IERJRkZIVE1MICI8dGl0bGU+JGJhc2UgSW1hZ2UgQ29tcGFyZTwvdGl0bGU+XG4iOwotICAg
ICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjxzY3JpcHQgbGFuZ3VhZ2U9XCJKYXZhc2NyaXB0XCIg
dHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1M
ICJ2YXIgY3VycmVudEltYWdlID0gMDtcbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAi
dmFyIGltYWdlTmFtZXMgPSBuZXcgQXJyYXkoXCJBY3R1YWxcIiwgXCJFeHBlY3RlZFwiKTtcbiI7
Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAidmFyIGltYWdlUGF0aHMgPSBuZXcgQXJyYXko
XCIkdGVzdE5hbWUtJGFjdHVhbFRhZy5wbmdcIiwgXCIkdGVzdE5hbWUtJGV4cGVjdGVkVGFnLnBu
Z1wiKTtcbiI7Ci0gICAgICAgICAgICBpZiAoLWYgIiR0ZXN0RGlyZWN0b3J5LyRiYXNlLXczYy5w
bmciKSB7Ci0gICAgICAgICAgICAgICAgY29weSgiJHRlc3REaXJlY3RvcnkvJGJhc2UtdzNjLnBu
ZyIsICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtdzNjLnBuZyIpOwotICAgICAgICAgICAg
ICAgIHByaW50IERJRkZIVE1MICJpbWFnZU5hbWVzLnB1c2goXCJXM0NcIik7XG4iOwotICAgICAg
ICAgICAgICAgIHByaW50IERJRkZIVE1MICJpbWFnZVBhdGhzLnB1c2goXCIkdGVzdE5hbWUtdzNj
LnBuZ1wiKTtcbiI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAi
ZnVuY3Rpb24gYW5pbWF0ZUltYWdlKCkge1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1M
ICIgICAgdmFyIGltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhbmltYXRlZEltYWdl
XCIpO1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgdmFyIGltYWdlVGV4dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaW1hZ2VUZXh0XCIpO1xuIjsKLSAgICAgICAgICAg
IHByaW50IERJRkZIVE1MICIgICAgaW1hZ2Uuc3JjID0gaW1hZ2VQYXRoc1tjdXJyZW50SW1hZ2Vd
O1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgaW1hZ2VUZXh0LmlubmVySFRN
TCA9IGltYWdlTmFtZXNbY3VycmVudEltYWdlXSArIFwiIEltYWdlXCI7XG4iOwotICAgICAgICAg
ICAgcHJpbnQgRElGRkhUTUwgIiAgICBjdXJyZW50SW1hZ2UgPSAoY3VycmVudEltYWdlICsgMSkg
JSBpbWFnZU5hbWVzLmxlbmd0aDtcbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAg
IHNldFRpbWVvdXQoJ2FuaW1hdGVJbWFnZSgpJywyMDAwKTtcbiI7Ci0gICAgICAgICAgICBwcmlu
dCBESUZGSFRNTCAifVxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3NjcmlwdD5c
biI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC9oZWFkPlxuIjsKLSAgICAgICAgICAg
IHByaW50IERJRkZIVE1MICI8Ym9keSBvbkxvYWQ9XCJhbmltYXRlSW1hZ2UoKTtcIj5cbiI7Ci0g
ICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRhYmxlPlxuIjsKLSAgICAgICAgICAgIGlmICgk
ZGlmZlBlcmNlbnRhZ2UpIHsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRyPlxu
IjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRkPkRpZmZlcmVuY2UgYmV0d2Vl
biBpbWFnZXM6IDxhIGhyZWY9XCIkdGVzdE5hbWUtJGRpZmZzVGFnLnBuZ1wiPiRkaWZmUGVyY2Vu
dGFnZSU8L2E+PC90ZD5cbiI7Ci0gICAgICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdHI+
XG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0cj5cbiI7
Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRkPjxhIGhyZWY9XCIiIC4gdG9VUkwoIiR0
ZXN0RGlyZWN0b3J5LyR0ZXN0IikgLiAiXCI+dGVzdCBmaWxlPC9hPjwvdGQ+XG4iOwotICAgICAg
ICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdHI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjx0cj5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRkIGlkPVwiaW1hZ2VU
ZXh0XCIgc3R5bGU9XCJ0ZXh0LXdlaWdodDogYm9sZDtcIj5BY3R1YWwgSW1hZ2U8L3RkPlxuIjsK
LSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKLSAgICAgICAgICAgIHByaW50
IERJRkZIVE1MICI8dHI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD48aW1n
IHNyYz1cIiR0ZXN0TmFtZS0kYWN0dWFsVGFnLnBuZ1wiIGlkPVwiYW5pbWF0ZWRJbWFnZVwiPjwv
dGQ+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdHI+XG4iOwotICAgICAgICAg
ICAgcHJpbnQgRElGRkhUTUwgIjwvdGFibGU+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjwvYm9keT5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC9odG1sPlxuIjsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgkZXJyb3IpIHsKLSAgICAgICAgbXkgJGRpciA9
ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UiOwotICAgICAgICAkZGlyID1+IHN8LyhbXi9d
KykkfHwgb3IgZGllICJGYWlsZWQgdG8gZmluZCB0ZXN0IG5hbWUgZnJvbSBiYXNlXG4iOwotICAg
ICAgICBta3BhdGggJGRpcjsKLSAgICAgICAgCi0gICAgICAgIHdyaXRlVG9GaWxlKCIkdGVzdFJl
c3VsdHNEaXJlY3RvcnkvJGJhc2UtJGVycm9yVGFnLnR4dCIsICRlcnJvcik7Ci0gICAgICAgIAot
ICAgICAgICAkY291bnRze2Vycm9yfSsrOwotICAgICAgICBwdXNoIEB7JHRlc3Rze2Vycm9yfX0s
ICR0ZXN0OwotICAgIH0KLQotICAgIGNvdW50RmluaXNoZWRUZXN0KCR0ZXN0LCAkYmFzZSwgJHJl
c3VsdCwgJGlzVGV4dCk7Ci0KLSAgICAjIC0tcmVzZXQtcmVzdWx0cyBkb2VzIG5vdCBjaGVjayBw
YXNzIHZzLiBmYWlsLCBzbyBleGl0QWZ0ZXJORmFpbHVyZXMgbWFrZXMgbm8gc2Vuc2Ugd2l0aCAt
LXJlc2V0LXJlc3VsdHMuCi0gICAgaWYgKCRleGl0QWZ0ZXJORmFpbHVyZXMgJiYgISRyZXNldFJl
c3VsdHMpIHsKLSAgICAgICAgbXkgJHBhc3NDb3VudCA9ICRjb3VudHN7bWF0Y2h9IHx8IDA7ICMg
JGNvdW50c3ttYXRjaH0gd2lsbCBiZSB1bmRlZmluZWQgaWYgd2UndmUgbm90IHlldCBwYXNzZWQg
YSB0ZXN0IChlLmcuIHRoZSBmaXJzdCB0ZXN0IGZhaWxzKS4KLSAgICAgICAgbXkgJGZhaWx1cmVD
b3VudCA9ICRjb3VudCAtICRwYXNzQ291bnQ7ICMgIkZhaWx1cmUiIGhlcmUgaW5jbHVkZXMgbmV3
IHRlc3RzLCB0aW1lb3V0cywgY3Jhc2hlcywgZXRjLgotICAgICAgICBpZiAoJGZhaWx1cmVDb3Vu
dCA+PSAkZXhpdEFmdGVyTkZhaWx1cmVzKSB7Ci0gICAgICAgICAgICBwcmludCAiXG5FeGl0aW5n
IGVhcmx5IGFmdGVyICRmYWlsdXJlQ291bnQgZmFpbHVyZXMuICRjb3VudCB0ZXN0cyBydW4uIjsK
LSAgICAgICAgICAgIGNsb3NlRHVtcFRvb2woKTsKLSAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci1teSAkdG90YWxUZXN0aW5nVGltZSA9IHRpbWUgLSAkb3ZlcmFsbFN0YXJ0
VGltZTsKLW15ICR3YWl0VGltZSA9IGdldFdhaXRUaW1lKCk7Ci1pZiAoJHdhaXRUaW1lID4gMC4x
KSB7Ci0gICAgbXkgJG5vcm1hbGl6ZWRUZXN0aW5nVGltZSA9ICR0b3RhbFRlc3RpbmdUaW1lIC0g
JHdhaXRUaW1lOwotICAgIHByaW50ZiAiXG4lMC4yZnMgSFRUUEQgd2FpdGluZyB0aW1lXG4iLCAk
d2FpdFRpbWUgLiAiIjsKLSAgICBwcmludGYgIiUwLjJmcyBub3JtYWxpemVkIHRlc3RpbmcgdGlt
ZSIsICRub3JtYWxpemVkVGVzdGluZ1RpbWUgLiAiIjsKLX0KLXByaW50ZiAiXG4lMC4yZnMgdG90
YWwgdGVzdGluZyB0aW1lXG4iLCAkdG90YWxUZXN0aW5nVGltZSAuICIiOwotCi0hJGlzRHVtcFRv
b2xPcGVuIHx8IGRpZSAiRmFpbGVkIHRvIGNsb3NlICRkdW1wVG9vbE5hbWUuXG4iOwotCi0kaXNI
dHRwZE9wZW4gPSAhY2xvc2VIVFRQRCgpOwotY2xvc2VXZWJTb2NrZXRTZXJ2ZXIoKTsKLQotIyBC
ZWNhdXNlIG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGlzIHNjcmlwdCBhcmUgcnVubmluZyBjb25j
dXJyZW50bHkgd2UgY2Fubm90IAotIyBzYWZlbHkgZGVsZXRlIHRoaXMgc3ltbGluay4KLSMgc3lz
dGVtICJybSAvdG1wL0xheW91dFRlc3RzIjsKLQotIyBGSVhNRTogRG8gd2UgcmVhbGx5IHdhbnQg
dG8gY2hlY2sgdGhlIGltYWdlLWNvbXBhcmlzb24gdG9vbCBmb3IgbGVha3MgZXZlcnkgdGltZT8K
LWlmICgkaXNEaWZmVG9vbE9wZW4gJiYgJHNob3VsZENoZWNrTGVha3MpIHsKLSAgICAkdG90YWxM
ZWFrcyArPSBjb3VudEFuZFByaW50TGVha3MoIkltYWdlRGlmZiIsICRpbWFnZURpZmZUb29sUElE
LCAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5L0ltYWdlRGlmZi1sZWFrcy50eHQiKTsKLX0KLQotaWYg
KCR0b3RhbExlYWtzKSB7Ci0gICAgaWYgKCRtZXJnZURlcHRoKSB7Ci0gICAgICAgIHBhcnNlTGVh
a3NhbmRQcmludFVuaXF1ZUxlYWtzKCk7Ci0gICAgfSBlbHNlIHsgCi0gICAgICAgIHByaW50ICJc
bldBUk5JTkc6ICR0b3RhbExlYWtzIHRvdGFsIGxlYWtzIGZvdW5kIVxuIjsKLSAgICAgICAgcHJp
bnQgIlNlZSBhYm92ZSBmb3IgaW5kaXZpZHVhbCBsZWFrcyByZXN1bHRzLlxuIiBpZiAoJGxlYWtz
T3V0cHV0RmlsZU51bWJlciA+IDIpOwotICAgIH0KLX0KLQotY2xvc2UgSU47Ci1jbG9zZSBPVVQ7
Ci1jbG9zZSBFUlJPUjsKLQotaWYgKCRyZXBvcnQxMFNsb3dlc3QpIHsKLSAgICBwcmludCAiXG5c
blRoZSAxMCBzbG93ZXN0IHRlc3RzOlxuXG4iOwotICAgIG15ICRjb3VudCA9IDA7Ci0gICAgZm9y
IG15ICR0ZXN0IChzb3J0IHNsb3dlc3RjbXAga2V5cyAlZHVyYXRpb25zKSB7Ci0gICAgICAgIHBy
aW50ZiAiJTAuMmYgc2VjczogJXNcbiIsICRkdXJhdGlvbnN7JHRlc3R9LCAkdGVzdDsKLSAgICAg
ICAgbGFzdCBpZiArKyRjb3VudCA9PSAxMDsKLSAgICB9Ci19Ci0KLXByaW50ICJcbiI7Ci0KLWlm
ICgkc2tpcHBlZE9ubHkgJiYgJGNvdW50c3sibWF0Y2gifSkgewotICAgIHByaW50ICJUaGUgZm9s
bG93aW5nIHRlc3RzIGFyZSBpbiB0aGUgU2tpcHBlZCBmaWxlICgiIC4gRmlsZTo6U3BlYy0+YWJz
MnJlbCgiJHBsYXRmb3JtVGVzdERpcmVjdG9yeS9Ta2lwcGVkIiwgJHRlc3REaXJlY3RvcnkpIC4g
IiksIGJ1dCBzdWNjZWVkZWQ6XG4iOwotICAgIGZvcmVhY2ggbXkgJHRlc3QgKEB7JHRlc3RzeyJt
YXRjaCJ9fSkgewotICAgICAgICBwcmludCAiICAkdGVzdFxuIjsKLSAgICB9Ci19Ci0KLWlmICgk
cmVzZXRSZXN1bHRzIHx8ICgkY291bnRze21hdGNofSAmJiAkY291bnRze21hdGNofSA9PSAkY291
bnQpKSB7Ci0gICAgcHJpbnQgImFsbCAkY291bnQgdGVzdCBjYXNlcyBzdWNjZWVkZWRcbiI7Ci0g
ICAgdW5saW5rICR0ZXN0UmVzdWx0czsKLSAgICBleGl0OwotfQotCi1wcmludFJlc3VsdHMoKTsK
LQotbWtwYXRoICR0ZXN0UmVzdWx0c0RpcmVjdG9yeTsKLQotb3BlbiBIVE1MLCAiPiIsICR0ZXN0
UmVzdWx0cyBvciBkaWUgIkZhaWxlZCB0byBvcGVuICR0ZXN0UmVzdWx0cy4gJCEiOwotcHJpbnQg
SFRNTCAiPGh0bWw+XG4iOwotcHJpbnQgSFRNTCAiPGhlYWQ+XG4iOwotcHJpbnQgSFRNTCAiPHRp
dGxlPkxheW91dCBUZXN0IFJlc3VsdHM8L3RpdGxlPlxuIjsKLXByaW50IEhUTUwgIjwvaGVhZD5c
biI7Ci1wcmludCBIVE1MICI8Ym9keT5cbiI7Ci0KLWlmICgkaWdub3JlTWV0cmljcykgewotICAg
IHByaW50IEhUTUwgIjxoND5UZXN0ZWQgd2l0aCBtZXRyaWNzIGlnbm9yZWQuPC9oND4iOwotfQot
Ci1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihAeyR0ZXN0c3ttaXNtYXRjaH19LCAi
VGVzdHMgd2hlcmUgcmVzdWx0cyBkaWQgbm90IG1hdGNoIGV4cGVjdGVkIHJlc3VsdHMiLCBcJmxp
bmtzRm9yTWlzbWF0Y2hUZXN0KTsKLXByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9uKEB7
JHRlc3Rze3RpbWVkb3V0fX0sICJUZXN0cyB0aGF0IHRpbWVkIG91dCIsIFwmbGlua3NGb3JFcnJv
clRlc3QpOwotcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7Y3Jhc2h9
fSwgIlRlc3RzIHRoYXQgY2F1c2VkIHRoZSBEdW1wUmVuZGVyVHJlZSB0b29sIHRvIGNyYXNoIiwg
XCZsaW5rc0ZvckVycm9yVGVzdCk7Ci1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihA
eyR0ZXN0c3tlcnJvcn19LCAiVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1dCIsIFwmbGlua3NG
b3JFcnJvclRlc3QpOwotcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7
bmV3fX0sICJUZXN0cyB0aGF0IGhhZCBubyBleHBlY3RlZCByZXN1bHRzIChwcm9iYWJseSBuZXcp
IiwgXCZsaW5rc0Zvck5ld1Rlc3QpOwotCi1wcmludCBIVE1MICI8L2JvZHk+XG4iOwotcHJpbnQg
SFRNTCAiPC9odG1sPlxuIjsKLWNsb3NlIEhUTUw7Ci0KLW15IEBjb25maWd1cmF0aW9uQXJncyA9
IGFyZ3VtZW50c0ZvckNvbmZpZ3VyYXRpb24oKTsKLQotaWYgKGlzR3RrKCkpIHsKLSAgc3lzdGVt
ICJXZWJLaXRUb29scy9TY3JpcHRzL3J1bi1sYXVuY2hlciIsIEBjb25maWd1cmF0aW9uQXJncywg
ImZpbGU6Ly8iLiR0ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfSBlbHNpZiAoaXNRdCgp
KSB7Ci0gIHVuc2hpZnQgQGNvbmZpZ3VyYXRpb25BcmdzLCBxdygtZ3JhcGhpY3NzeXN0ZW0gcmFz
dGVyIC1zdHlsZSB3aW5kb3dzKTsKLSAgaWYgKGlzQ3lnd2luKCkpIHsKLSAgICAkdGVzdFJlc3Vs
dHMgPSAiLyIgLiB0b1dpbmRvd3NQYXRoKCR0ZXN0UmVzdWx0cyk7Ci0gICAgJHRlc3RSZXN1bHRz
ID1+IHMvXFwvXC8vZzsKLSAgfQotICBzeXN0ZW0gIldlYktpdFRvb2xzL1NjcmlwdHMvcnVuLWxh
dW5jaGVyIiwgQGNvbmZpZ3VyYXRpb25BcmdzLCAiZmlsZTovLyIuJHRlc3RSZXN1bHRzIGlmICRs
YXVuY2hTYWZhcmk7Ci19IGVsc2lmIChpc0N5Z3dpbigpKSB7Ci0gIHN5c3RlbSAiY3lnc3RhcnQi
LCAkdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKLX0gZWxzZSB7Ci0gIHN5c3RlbSAiV2Vi
S2l0VG9vbHMvU2NyaXB0cy9ydW4tc2FmYXJpIiwgQGNvbmZpZ3VyYXRpb25BcmdzLCAiLU5TT3Bl
biIsICR0ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfQotCi1jbG9zZUN5Z3BhdGhzKCkg
aWYgaXNDeWd3aW4oKTsKLQotZXhpdCAxOwotCi1zdWIgY291bnRBbmRQcmludExlYWtzKCQkJCkK
LXsKLSAgICBteSAoJGR1bXBUb29sTmFtZSwgJGR1bXBUb29sUElELCAkbGVha3NGaWxlUGF0aCkg
PSBAXzsKLQotICAgIHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsKLSAgICAkYXRMaW5l
U3RhcnQgPSAxOwotCi0gICAgIyBXZSBhcmUgZXhjbHVkaW5nIHRoZSBmb2xsb3dpbmcgcmVwb3J0
ZWQgbGVha3Mgc28gdGhleSBkb24ndCBnZXQgaW4gb3VyIHdheSB3aGVuIGxvb2tpbmcgZm9yIFdl
YktpdCBsZWFrczoKLSAgICAjIFRoaXMgYWxsb3dzIHVzIGlnbm9yZSBrbm93biBsZWFrcyBhbmQg
b25seSBiZSBhbGVydGVkIHdoZW4gbmV3IGxlYWtzIG9jY3VyLiBTb21lIGxlYWtzIGFyZSBpbiB0
aGUgb2xkCi0gICAgIyB2ZXJzaW9ucyBvZiB0aGUgc3lzdGVtIGZyYW1ld29ya3MgdGhhdCBhcmUg
YmVpbmcgdXNlZCBieSB0aGUgbGVha3MgYm90cy4gRXZlbiB0aG91Z2ggYSBsZWFrIGhhcyBiZWVu
Ci0gICAgIyBmaXhlZCwgaXQgd2lsbCBiZSBsaXN0ZWQgaGVyZSB1bnRpbCB0aGUgYm90IGhhcyBi
ZWVuIHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgZnJhbWV3b3Jrcy4KLQotICAgIG15IEB0eXBlc1Rv
RXhjbHVkZSA9ICgKLSAgICApOwotCi0gICAgbXkgQGNhbGxTdGFja3NUb0V4Y2x1ZGUgPSAoCi0g
ICAgICAgICJGbGFzaF9FbmZvcmNlTG9jYWxTZWN1cml0eSIgIyBsZWFrcyBpbiBGbGFzaCBwbHVn
LWluIGNvZGUsIHJkYXI6Ly9wcm9ibGVtLzQ0NDk3NDcKLSAgICApOwotCi0gICAgaWYgKGlzVGln
ZXIoKSkgewotICAgICAgICAjIExlYWsgbGlzdCBmb3IgdGhlIHZlcnNpb24gb2YgVGlnZXIgdXNl
ZCBvbiB0aGUgYnVpbGQgYm90LgotICAgICAgICBwdXNoIEBjYWxsU3RhY2tzVG9FeGNsdWRlLCAo
Ci0gICAgICAgICAgICAiQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgXFx8IG1hbGxvY196b25lX21hbGxv
YyIsICJDRlJ1bkxvb3BSdW5TcGVjaWZpYyBcXHwgQ0ZBbGxvY2F0b3JBbGxvY2F0ZSAiLCAjIGxl
YWsgaW4gQ0ZSdW5Mb29wUnVuU3BlY2lmaWMsIHJkYXI6Ly9wcm9ibGVtLzQ2NzA4MzkKLSAgICAg
ICAgICAgICJDR0ltYWdlU291cmNlR2V0UHJvcGVydGllc0F0SW5kZXgiLCAjIGxlYWsgaW4gSW1h
Z2VJTywgcmRhcjovL3Byb2JsZW0vNDYyODgwOQotICAgICAgICAgICAgIkZPR2V0Q292ZXJlZFVu
aWNvZGVDaGFycyIsICMgbGVhayBpbiBBVFMsIHJkYXI6Ly9wcm9ibGVtLzM5NDM2MDQKLSAgICAg
ICAgICAgICJHZXRMaW5lRGlyZWN0aW9uUHJlZmVyZW5jZSIsICJJbml0VW5pY29kZVV0aWxpdGll
cyIsICMgbGVha3MgdG9vbCBmYWxzZWx5IHJlcG9ydGluZyBsZWFrIGluIENGTm90aWZpY2F0aW9u
Q2VudGVyQWRkT2JzZXJ2ZXIsIHJkYXI6Ly9wcm9ibGVtLzQ5NjQ3OTAKLSAgICAgICAgICAgICJJ
Q0NGUHJlZldyYXBwZXI6OkdldFByZWZEaWN0aW9uYXJ5IiwgIyBsZWFrcyBpbiBJbnRlcm5ldCBD
b25maWcuIGNvZGUsIHJkYXI6Ly9wcm9ibGVtLzQ0NDk3OTQKLSAgICAgICAgICAgICJOU0hUVFBV
UkxQcm90b2NvbCBzZXRSZXNwb25zZUhlYWRlcjoiLCAjIGxlYWsgaW4gbXVsdGlwYXJ0L21peGVk
LXJlcGxhY2UgaGFuZGxpbmcgaW4gRm91bmRhdGlvbiwgbm8gUmFkYXIsIGJ1dCBmaXhlZCBpbiBM
ZW9wYXJkCi0gICAgICAgICAgICAiTlNVUkxDYWNoZSBjYWNoZWRSZXNwb25zZUZvclJlcXVlc3Qi
LCAjIGxlYWsgaW4gQ0ZVUkwgY2FjaGUsIHJkYXI6Ly9wcm9ibGVtLzQ3Njg0MzAKLSAgICAgICAg
ICAgICJQQ0ZyYWdQcmVwYXJlQ2xvc3VyZUZyb21GaWxlIiwgIyBsZWFrIGluIENvZGUgRnJhZ21l
bnQgTWFuYWdlciwgcmRhcjovL3Byb2JsZW0vMzQyNjk5OAotICAgICAgICAgICAgIldlYkNvcmU6
OlNlbGVjdGlvbjo6dG9SYW5nZSIsICMgYnVnIGluICdsZWFrcycsIHJkYXI6Ly9wcm9ibGVtLzQ5
Njc5NDkKLSAgICAgICAgICAgICJXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlIiwg
IyBidWcgaW4gJ2xlYWtzJywgcmRhcjovL3Byb2JsZW0vNDk4NTgwNgotICAgICAgICAgICAgIl9D
RlByZWZlcmVuY2VzRG9tYWluRGVlcENvcHlEaWN0aW9uYXJ5IiwgIyBsZWFrIGluIENGUHJlZmVy
ZW5jZXMsIHJkYXI6Ly9wcm9ibGVtLzQyMjA3ODYKLSAgICAgICAgICAgICJfb2JqY19tc2dGb3J3
YXJkIiwgIyBsZWFrIGluIE5TU3BlbGxDaGVja2VyLCByZGFyOi8vcHJvYmxlbS80OTY1Mjc4Ci0g
ICAgICAgICAgICAiZ2xkR2V0U3RyaW5nIiwgIyBsZWFrIGluIE9wZW5HTCwgcmRhcjovL3Byb2Js
ZW0vNTAxMzY5OQotICAgICAgICAgICAgIl9zZXREZWZhdWx0VXNlckluZm9Gcm9tVVJMIiwgIyBs
ZWFrIGluIE5TSFRUUEF1dGhlbnRpY2F0b3IsIHJkYXI6Ly9wcm9ibGVtLzU1NDY0NTMgCi0gICAg
ICAgICAgICAiU1NMSGFuZHNoYWtlIiwgIyBsZWFrIGluIFNTTCwgcmRhcjovL3Byb2JsZW0vNTU0
NjQ0MCAKLSAgICAgICAgICAgICJTZWNDZXJ0aWZpY2F0ZUNyZWF0ZUZyb21EYXRhIiwgIyBsZWFr
IGluIFNTTCBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDY0Mzk3Ci0gICAgICAgICk7Ci0gICAgICAg
IHB1c2ggQHR5cGVzVG9FeGNsdWRlLCAoCi0gICAgICAgICAgICAiVEhSRCIsICMgYnVnIGluICds
ZWFrcycsIHJkYXI6Ly9wcm9ibGVtLzMzODc3ODMKLSAgICAgICAgICAgICJEUkhUIiwgIyBkaXR0
byAoZW5kaWFuIGxpdHRsZSBoYXRlIGkpCi0gICAgICAgICk7Ci0gICAgfQotCi0gICAgaWYgKGlz
TGVvcGFyZCgpKSB7Ci0gICAgICAgICMgTGVhayBsaXN0IGZvciB0aGUgdmVyc2lvbiBvZiBMZW9w
YXJkIHVzZWQgb24gdGhlIGJ1aWxkIGJvdC4KLSAgICAgICAgcHVzaCBAY2FsbFN0YWNrc1RvRXhj
bHVkZSwgKAotICAgICAgICAgICAgIkNGSFRUUE1lc3NhZ2VBcHBlbmRCeXRlcyIsICMgbGVhayBp
biBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0MzU5MTIKLSAgICAgICAgICAgICJzZW5kRGlk
UmVjZWl2ZURhdGFDYWxsYmFjayIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVt
LzU0NDE2MTkKLSAgICAgICAgICAgICJfQ0ZIVFRQUmVhZFN0cmVhbVJlYWRNYXJrIiwgIyBsZWFr
IGluIENGTmV0d29yaywgcmRhcjovL3Byb2JsZW0vNTQ0MTQ2OAotICAgICAgICAgICAgImh0dHBQ
cm90b2NvbFN0YXJ0IiwgIyBsZWFrIGluIENGTmV0d29yaywgcmRhcjovL3Byb2JsZW0vNTQ2ODgz
NwotICAgICAgICAgICAgIl9DRlVSTENvbm5lY3Rpb25TZW5kQ2FsbGJhY2tzIiwgIyBsZWFrIGlu
IENGTmV0d29yaywgcmRhcjovL3Byb2JsZW0vNTQ0MTYwMAotICAgICAgICAgICAgIkRpc3BhdGNo
UVRNc2ciLCAjIGxlYWsgaW4gUXVpY2tUaW1lLCBQUEMgb25seSwgcmRhcjovL3Byb2JsZW0vNTY2
NzEzMgotICAgICAgICAgICAgIlFUTW92aWVDb250ZW50VmlldyBjcmVhdGVWaXN1YWxDb250ZXh0
IiwgIyBsZWFrIGluIFF1aWNrVGltZSwgUFBDIG9ubHksIHJkYXI6Ly9wcm9ibGVtLzU2NjcxMzIK
LSAgICAgICAgICAgICJfQ29weUFyY2hpdGVjdHVyZXNGb3JKVk1WZXJzaW9uIiwgIyBsZWFrIGlu
IEphdmEsIHJkYXI6Ly9wcm9ibGVtLzU5MTA4MjMKLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBp
ZiAoaXNTbm93TGVvcGFyZCgpKSB7Ci0gICAgICAgIHB1c2ggQGNhbGxTdGFja3NUb0V4Y2x1ZGUs
ICgKLSAgICAgICAgICAgICJyZWFkTWFrZXJOb3RlUHJvcHMiLCAjIDxyZGFyOi8vcHJvYmxlbS83
MTU2NDMyPiBsZWFrIGluIEltYWdlSU8KLSAgICAgICAgICAgICJRVEtpdE1vdmllQ29udHJvbGxl
clZpZXcgY29tcGxldGVVSVNldHVwIiwgIyA8cmRhcjovL3Byb2JsZW0vNzE1NTE1Nj4gbGVhayBp
biBRVEtpdAotICAgICAgICAgICAgImdldFZNSW5pdEFyZ3MiLCAjIDxyZGFyOi8vcHJvYmxlbS83
NzE0NDQ0PiBsZWFrIGluIEphdmEKLSAgICAgICAgICAgICJKYXZhX2phdmFfbGFuZ19TeXN0ZW1f
aW5pdFByb3BlcnRpZXMiLCAjIDxyZGFyOi8vcHJvYmxlbS83NzE0NDY1PiBsZWFrIGluIEphdmEK
LSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBteSAkbGVha3NUb29sID0gc291cmNlRGlyKCkgLiAi
L1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLWxlYWtzIjsKLSAgICBteSAkZXhjbHVkZVN0cmluZyA9
ICItLWV4Y2x1ZGUtY2FsbHN0YWNrICciIC4gKGpvaW4gIicgLS1leGNsdWRlLWNhbGxzdGFjayAn
IiwgQGNhbGxTdGFja3NUb0V4Y2x1ZGUpIC4gIiciOwotICAgICRleGNsdWRlU3RyaW5nIC49ICIg
LS1leGNsdWRlLXR5cGUgJyIgLiAoam9pbiAiJyAtLWV4Y2x1ZGUtdHlwZSAnIiwgQHR5cGVzVG9F
eGNsdWRlKSAuICInIiBpZiBAdHlwZXNUb0V4Y2x1ZGU7Ci0KLSAgICBwcmludCAiID8gY2hlY2tp
bmcgZm9yIGxlYWtzIGluICRkdW1wVG9vbE5hbWVcbiI7Ci0gICAgbXkgJGxlYWtzT3V0cHV0ID0g
YCRsZWFrc1Rvb2wgJGV4Y2x1ZGVTdHJpbmcgJGR1bXBUb29sUElEYDsKLSAgICBteSAoJGNvdW50
LCAkYnl0ZXMpID0gJGxlYWtzT3V0cHV0ID1+IC9Qcm9jZXNzICRkdW1wVG9vbFBJRDogKFxkKykg
bGVha3M/IGZvciAoXGQrKSB0b3RhbC87Ci0gICAgbXkgKCRleGNsdWRlZCkgPSAkbGVha3NPdXRw
dXQgPX4gLyhcZCspIGxlYWtzPyBleGNsdWRlZC87Ci0KLSAgICBteSAkYWRqdXN0ZWRDb3VudCA9
ICRjb3VudDsKLSAgICAkYWRqdXN0ZWRDb3VudCAtPSAkZXhjbHVkZWQgaWYgJGV4Y2x1ZGVkOwot
Ci0gICAgaWYgKCEkYWRqdXN0ZWRDb3VudCkgewotICAgICAgICBwcmludCAiIC0gbm8gbGVha3Mg
Zm91bmRcbiI7Ci0gICAgICAgIHVubGluayAkbGVha3NGaWxlUGF0aDsKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJGRpciA9ICRsZWFrc0ZpbGVQYXRoOwotICAg
ICAgICAkZGlyID1+IHN8L1teL10rJHx8IG9yIGRpZTsKLSAgICAgICAgbWtwYXRoICRkaXI7Ci0K
LSAgICAgICAgaWYgKCRleGNsdWRlZCkgewotICAgICAgICAgICAgcHJpbnQgIiArICRhZGp1c3Rl
ZENvdW50IGxlYWtzICgkYnl0ZXMgYnl0ZXMgaW5jbHVkaW5nICRleGNsdWRlZCBleGNsdWRlZCBs
ZWFrcykgd2VyZSBmb3VuZCwgZGV0YWlscyBpbiAkbGVha3NGaWxlUGF0aFxuIjsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ICIgKyAkY291bnQgbGVha3MgKCRieXRlcyBieXRl
cykgd2VyZSBmb3VuZCwgZGV0YWlscyBpbiAkbGVha3NGaWxlUGF0aFxuIjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHdyaXRlVG9GaWxlKCRsZWFrc0ZpbGVQYXRoLCAkbGVha3NPdXRwdXQpOwotICAg
ICAgICAKLSAgICAgICAgcHVzaCBAbGVha3NGaWxlbmFtZXMsICRsZWFrc0ZpbGVQYXRoOwotICAg
IH0KLQotICAgIHJldHVybiAkYWRqdXN0ZWRDb3VudDsKLX0KLQotc3ViIHdyaXRlVG9GaWxlKCQk
KQotewotICAgIG15ICgkZmlsZVBhdGgsICRjb250ZW50cykgPSBAXzsKLSAgICBvcGVuIE5FV0ZJ
TEUsICI+IiwgIiRmaWxlUGF0aCIgb3IgZGllICJDb3VsZCBub3QgY3JlYXRlICRmaWxlUGF0aC4g
JCFcbiI7Ci0gICAgcHJpbnQgTkVXRklMRSAkY29udGVudHM7Ci0gICAgY2xvc2UgTkVXRklMRTsK
LX0KLQotIyBCcmVhayB1cCBhIHBhdGggaW50byB0aGUgZGlyZWN0b3J5ICh3aXRoIHNsYXNoKSBh
bmQgYmFzZSBuYW1lLgotc3ViIHNwbGl0cGF0aCgkKQotewotICAgIG15ICgkcGF0aCkgPSBAXzsK
LQotICAgIG15ICRwYXRoU2VwYXJhdG9yID0gIi8iOwotICAgIG15ICRkaXJuYW1lID0gZGlybmFt
ZSgkcGF0aCkgLiAkcGF0aFNlcGFyYXRvcjsKLSAgICAkZGlybmFtZSA9ICIiIGlmICRkaXJuYW1l
IGVxICIuIiAuICRwYXRoU2VwYXJhdG9yOwotCi0gICAgcmV0dXJuICgkZGlybmFtZSwgYmFzZW5h
bWUoJHBhdGgpKTsKLX0KLQotIyBTb3J0IGZpcnN0IGJ5IGRpcmVjdG9yeSwgdGhlbiBieSBmaWxl
LCBzbyBhbGwgcGF0aHMgaW4gb25lIGRpcmVjdG9yeSBhcmUgZ3JvdXBlZAotIyByYXRoZXIgdGhh
biBiZWluZyBpbnRlcnNwZXJzZWQgd2l0aCBpdGVtcyBmcm9tIHN1YmRpcmVjdG9yaWVzLgotIyBV
c2UgbnVtZXJpY2NtcCB0byBzb3J0IGRpcmVjdG9yeSBhbmQgZmlsZW5hbWVzIHRvIG1ha2Ugb3Jk
ZXIgbG9naWNhbC4KLXN1YiBwYXRoY21wKCQkKQotewotICAgIG15ICgkcGF0aGEsICRwYXRoYikg
PSBAXzsKLQotICAgIG15ICgkZGlyYSwgJG5hbWVhKSA9IHNwbGl0cGF0aCgkcGF0aGEpOwotICAg
IG15ICgkZGlyYiwgJG5hbWViKSA9IHNwbGl0cGF0aCgkcGF0aGIpOwotCi0gICAgcmV0dXJuIG51
bWVyaWNjbXAoJGRpcmEsICRkaXJiKSBpZiAkZGlyYSBuZSAkZGlyYjsKLSAgICByZXR1cm4gbnVt
ZXJpY2NtcCgkbmFtZWEsICRuYW1lYik7Ci19Ci0KLSMgU29ydCBudW1lcmljIHBhcnRzIG9mIHN0
cmluZ3MgYXMgbnVtYmVycywgb3RoZXIgcGFydHMgYXMgc3RyaW5ncy4KLSMgTWFrZXMgMS4zMyBj
b21lIGFmdGVyIDEuMywgd2hpY2ggaXMgY29vbC4KLXN1YiBudW1lcmljY21wKCQkKQotewotICAg
IG15ICgkYWEsICRiYikgPSBAXzsKLQotICAgIG15IEBhID0gc3BsaXQgLyhcZCspLywgJGFhOwot
ICAgIG15IEBiID0gc3BsaXQgLyhcZCspLywgJGJiOwotCi0gICAgIyBDb21wYXJlIG9uZSBjaHVu
ayBhdCBhIHRpbWUuCi0gICAgIyBFYWNoIGNodW5rIGlzIGVpdGhlciBhbGwgbnVtZXJpYyBkaWdp
dHMsIG9yIGFsbCBub3QgbnVtZXJpYyBkaWdpdHMuCi0gICAgd2hpbGUgKEBhICYmIEBiKSB7Ci0g
ICAgICAgIG15ICRhID0gc2hpZnQgQGE7Ci0gICAgICAgIG15ICRiID0gc2hpZnQgQGI7Ci0gICAg
ICAgIAotICAgICAgICAjIFVzZSBudW1lcmljIGNvbXBhcmlzb24gaWYgY2h1bmtzIGFyZSBub24t
ZXF1YWwgbnVtYmVycy4KLSAgICAgICAgcmV0dXJuICRhIDw9PiAkYiBpZiAkYSA9fiAvXlxkLyAm
JiAkYiA9fiAvXlxkLyAmJiAkYSAhPSAkYjsKLQotICAgICAgICAjIFVzZSBzdHJpbmcgY29tcGFy
aXNvbiBpZiBjaHVua3MgYXJlIGFueSBvdGhlciBraW5kIG9mIG5vbi1lcXVhbCBzdHJpbmcuCi0g
ICAgICAgIHJldHVybiAkYSBjbXAgJGIgaWYgJGEgbmUgJGI7Ci0gICAgfQotICAgIAotICAgICMg
T25lIG9mIHRoZSB0d28gaXMgbm93IGVtcHR5OyBjb21wYXJlIGxlbmd0aHMgZm9yIHJlc3VsdCBp
biB0aGlzIGNhc2UuCi0gICAgcmV0dXJuIEBhIDw9PiBAYjsKLX0KLQotIyBTb3J0IHNsb3dlc3Qg
dGVzdHMgZmlyc3QuCi1zdWIgc2xvd2VzdGNtcCgkJCkKLXsKLSAgICBteSAoJHRlc3RhLCAkdGVz
dGIpID0gQF87Ci0KLSAgICBteSAkZHVyYSA9ICRkdXJhdGlvbnN7JHRlc3RhfTsKLSAgICBteSAk
ZHVyYiA9ICRkdXJhdGlvbnN7JHRlc3RifTsKLSAgICByZXR1cm4gJGR1cmIgPD0+ICRkdXJhIGlm
ICRkdXJhICE9ICRkdXJiOwotICAgIHJldHVybiBwYXRoY21wKCR0ZXN0YSwgJHRlc3RiKTsKLX0K
LQotc3ViIGxhdW5jaFdpdGhFbnYoXEBcJSkKLXsKLSAgICBteSAoJGFyZ3MsICRlbnYpID0gQF87
Ci0KLSAgICAjIER1bXAgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgYXMgcGVybCBjb2RlIGFuZCB0
aGVuIHB1dCBpdCBpbiBxdW90ZXMgc28gaXQgaXMgb25lIHBhcmFtZXRlci4KLSAgICBteSAkZW52
aXJvbm1lbnREdW1wZXIgPSBEYXRhOjpEdW1wZXItPm5ldyhbXCV7JGVudn1dLCBbcXcoKkVOVild
KTsKLSAgICAkZW52aXJvbm1lbnREdW1wZXItPkluZGVudCgwKTsKLSAgICAkZW52aXJvbm1lbnRE
dW1wZXItPlB1cml0eSgxKTsKLSAgICBteSAkYWxsRW52VmFycyA9ICRlbnZpcm9ubWVudER1bXBl
ci0+RHVtcCgpOwotICAgIHVuc2hpZnQgQHskYXJnc30sICJcIiRhbGxFbnZWYXJzXCIiOwotCi0g
ICAgbXkgJGV4ZWNTY3JpcHQgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKHNvdXJjZURpcigpLCBxdyhX
ZWJLaXRUb29scyBTY3JpcHRzIGV4ZWNBcHBXaXRoRW52KSk7Ci0gICAgdW5zaGlmdCBAeyRhcmdz
fSwgJGV4ZWNTY3JpcHQ7Ci0gICAgcmV0dXJuIEB7JGFyZ3N9OwotfQotCi1zdWIgcmVzb2x2ZUFu
ZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpCi17Ci0gICAgbXkgJGFic1Rlc3RSZXN1bHRzRGly
ZWN0b3J5ID0gRmlsZTo6U3BlYy0+cmVsMmFicyhnbG9iICR0ZXN0UmVzdWx0c0RpcmVjdG9yeSk7
Ci0gICAgbWtwYXRoICRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeTsKLSAgICByZXR1cm4gJGFic1Rl
c3RSZXN1bHRzRGlyZWN0b3J5OwotfQotCi1zdWIgb3BlbkRpZmZUb29sKCkKLXsKLSAgICByZXR1
cm4gaWYgJGlzRGlmZlRvb2xPcGVuOwotICAgIHJldHVybiBpZiAhJHBpeGVsVGVzdHM7Ci0KLSAg
ICBteSAlQ0xFQU5fRU5WOwotICAgICRDTEVBTl9FTlZ7TWFsbG9jU3RhY2tMb2dnaW5nfSA9IDEg
aWYgJHNob3VsZENoZWNrTGVha3M7Ci0gICAgJGltYWdlRGlmZlRvb2xQSUQgPSBvcGVuMihcKkRJ
RkZJTiwgXCpESUZGT1VULCAkaW1hZ2VEaWZmVG9vbCwgbGF1bmNoV2l0aEVudihAZGlmZlRvb2xB
cmdzLCAlQ0xFQU5fRU5WKSkgb3IgZGllICJ1bmFibGUgdG8gb3BlbiAkaW1hZ2VEaWZmVG9vbFxu
IjsKLSAgICAkaXNEaWZmVG9vbE9wZW4gPSAxOwotfQotCi1zdWIgb3BlbkR1bXBUb29sKCkKLXsK
LSAgICByZXR1cm4gaWYgJGlzRHVtcFRvb2xPcGVuOwotCi0gICAgbXkgJUNMRUFOX0VOVjsKLQot
ICAgICMgR2VuZXJpYyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKLSAgICBpZiAoZGVmaW5lZCAkRU5W
eydXRUJLSVRfVEVTVEZPTlRTJ30pIHsKLSAgICAgICAgJENMRUFOX0VOVntXRUJLSVRfVEVTVEZP
TlRTfSA9ICRFTlZ7J1dFQktJVF9URVNURk9OVFMnfTsKLSAgICB9Ci0KLSAgICAjIHVuaXF1ZSB0
ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBlYWNoIER1bXBSZW5kZXJ0cmVlIC0gbmVlZGVkIGZvciBy
dW5uaW5nIG1vcmUgRHVtcFJlbmRlclRyZWUgaW4gcGFyYWxsZWwKLSAgICAkQ0xFQU5fRU5We0RV
TVBSRU5ERVJUUkVFX1RFTVB9ID0gRmlsZTo6VGVtcDo6dGVtcGRpcignRHVtcFJlbmRlclRyZWUt
WFhYWFhYJywgVE1QRElSID0+IDEsIENMRUFOVVAgPT4gMSk7Ci0gICAgJENMRUFOX0VOVntYTUxf
Q0FUQUxPR19GSUxFU30gPSAiIjsgIyB3b3JrIGFyb3VuZCBtaXNzaW5nIC9ldGMvY2F0YWxvZyA8
cmRhcjovL3Byb2JsZW0vNDI5Mjk5NT4KLQotICAgICMgUGxhdGZvcm0gc3Blc2lmaWNzCi0gICAg
aWYgKGlzTGludXgoKSkgewotICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydESVNQTEFZJ30pIHsK
LSAgICAgICAgICAgICRDTEVBTl9FTlZ7RElTUExBWX0gPSAkRU5WeydESVNQTEFZJ307Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkQ0xFQU5fRU5We0RJU1BMQVl9ID0gIjoxIjsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydYQVVUSE9SSVRZJ30pIHsKLSAgICAg
ICAgICAgICRDTEVBTl9FTlZ7WEFVVEhPUklUWX0gPSAkRU5WeydYQVVUSE9SSVRZJ307Ci0gICAg
ICAgIH0KLQotICAgICAgICAkQ0xFQU5fRU5We0hPTUV9ID0gJEVOVnsnSE9NRSd9OwotCi0gICAg
ICAgIGlmIChkZWZpbmVkICRFTlZ7J0xEX0xJQlJBUllfUEFUSCd9KSB7Ci0gICAgICAgICAgICAk
Q0xFQU5fRU5We0xEX0xJQlJBUllfUEFUSH0gPSAkRU5WeydMRF9MSUJSQVJZX1BBVEgnfTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydEQlVTX1NFU1NJT05fQlVTX0FERFJF
U1MnfSkgewotICAgICAgICAgICAgJENMRUFOX0VOVntEQlVTX1NFU1NJT05fQlVTX0FERFJFU1N9
ID0gJEVOVnsnREJVU19TRVNTSU9OX0JVU19BRERSRVNTJ307Ci0gICAgICAgIH0KLSAgICB9IGVs
c2lmIChpc0RhcndpbigpKSB7Ci0gICAgICAgIGlmIChkZWZpbmVkICRFTlZ7J0RZTERfTElCUkFS
WV9QQVRIJ30pIHsKLSAgICAgICAgICAgICRDTEVBTl9FTlZ7RFlMRF9MSUJSQVJZX1BBVEh9ID0g
JEVOVnsnRFlMRF9MSUJSQVJZX1BBVEgnfTsKLSAgICAgICAgfQotCi0gICAgICAgICRDTEVBTl9F
TlZ7RFlMRF9GUkFNRVdPUktfUEFUSH0gPSAkcHJvZHVjdERpcjsKLSAgICAgICAgJENMRUFOX0VO
VntEWUxEX0lOU0VSVF9MSUJSQVJJRVN9ID0gIi91c3IvbGliL2xpYmdtYWxsb2MuZHlsaWIiIGlm
ICRndWFyZE1hbGxvYzsKLSAgICB9IGVsc2lmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICRDTEVB
Tl9FTlZ7SE9NRURSSVZFfSA9ICRFTlZ7J0hPTUVEUklWRSd9OwotICAgICAgICAkQ0xFQU5fRU5W
e0hPTUVQQVRIfSA9ICRFTlZ7J0hPTUVQQVRIJ307Ci0KLSAgICAgICAgc2V0UGF0aEZvclJ1bm5p
bmdXZWJLaXRBcHAoXCVDTEVBTl9FTlYpOwotICAgIH0KLQotICAgICMgUG9ydCBzcGVzaWZpY3MK
LSAgICBpZiAoaXNRdCgpKSB7Ci0gICAgICAgICRDTEVBTl9FTlZ7UVRXRUJLSVRfUExVR0lOX1BB
VEh9ID0gcHJvZHVjdERpcigpIC4gIi9saWIvcGx1Z2lucyI7Ci0gICAgfQotICAgIAotICAgIG15
IEBhcmdzID0gKCRkdW1wVG9vbCwgQHRvb2xBcmdzKTsKLSAgICBpZiAoaXNBcHBsZU1hY1dlYktp
dCgpIGFuZCAhaXNUaWdlcigpKSB7IAotICAgICAgICB1bnNoaWZ0IEBhcmdzLCAiYXJjaCIsICIt
IiAuIGFyY2hpdGVjdHVyZSgpOyAgICAgICAgICAgICAKLSAgICB9Ci0KLSAgICBpZiAoJHVzZVZh
bGdyaW5kKSB7Ci0gICAgICAgIHVuc2hpZnQgQGFyZ3MsICJ2YWxncmluZCIsICItLXN1cHByZXNz
aW9ucz0kcGxhdGZvcm1CYXNlRGlyZWN0b3J5L3F0L1N1cHByZXNzZWRWYWxncmluZEVycm9ycyI7
Ci0gICAgfSAKLQotICAgICRDTEVBTl9FTlZ7TWFsbG9jU3RhY2tMb2dnaW5nfSA9IDEgaWYgJHNo
b3VsZENoZWNrTGVha3M7Ci0KLSAgICAkZHVtcFRvb2xQSUQgPSBvcGVuMyhcKk9VVCwgXCpJTiwg
XCpFUlJPUiwgbGF1bmNoV2l0aEVudihAYXJncywgJUNMRUFOX0VOVikpIG9yIGRpZSAiRmFpbGVk
IHRvIHN0YXJ0IHRvb2w6ICRkdW1wVG9vbFxuIjsKLSAgICAkaXNEdW1wVG9vbE9wZW4gPSAxOwot
ICAgICRkdW1wVG9vbENyYXNoZWQgPSAwOwotfQotCi1zdWIgY2xvc2VEdW1wVG9vbCgpCi17Ci0g
ICAgcmV0dXJuIGlmICEkaXNEdW1wVG9vbE9wZW47Ci0KLSAgICBjbG9zZSBJTjsKLSAgICBjbG9z
ZSBPVVQ7Ci0gICAgd2FpdHBpZCAkZHVtcFRvb2xQSUQsIDA7Ci0gICAgCi0gICAgIyBjaGVjayBm
b3IgV2ViQ29yZSBjb3VudGVyIGxlYWtzLgotICAgIGlmICgkc2hvdWxkQ2hlY2tMZWFrcykgewot
ICAgICAgICB3aGlsZSAoPEVSUk9SPikgewotICAgICAgICAgICAgcHJpbnQ7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgY2xvc2UgRVJST1I7Ci0gICAgJGlzRHVtcFRvb2xPcGVuID0gMDsKLX0KLQot
c3ViIGR1bXBUb29sRGlkQ3Jhc2goKQotewotICAgIHJldHVybiAxIGlmICRkdW1wVG9vbENyYXNo
ZWQ7Ci0gICAgcmV0dXJuIDAgdW5sZXNzICRpc0R1bXBUb29sT3BlbjsKLSAgICBteSAkcGlkID0g
d2FpdHBpZCgtMSwgV05PSEFORyk7Ci0gICAgcmV0dXJuIDEgaWYgKCRwaWQgPT0gJGR1bXBUb29s
UElEKTsKLQotICAgICMgT24gTWFjIE9TIFgsIGNyYXNoaW5nIG1heSBiZSBzaWduaWZpY2FudGx5
IGRlbGF5ZWQgYnkgY3Jhc2ggcmVwb3J0ZXIuCi0gICAgcmV0dXJuIDAgdW5sZXNzIGlzQXBwbGVN
YWNXZWJLaXQoKTsKLQotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnByb2Nlc3NJ
c0NyYXNoaW5nKCRkdW1wVG9vbFBJRCk7Ci19Ci0KLXN1YiBjb25maWd1cmVBbmRPcGVuSFRUUERJ
Zk5lZWRlZCgpCi17Ci0gICAgcmV0dXJuIGlmICRpc0h0dHBkT3BlbjsKLSAgICBteSAkYWJzVGVz
dFJlc3VsdHNEaXJlY3RvcnkgPSByZXNvbHZlQW5kTWFrZVRlc3RSZXN1bHRzRGlyZWN0b3J5KCk7
Ci0gICAgbXkgJGxpc3RlbiA9ICIxMjcuMC4wLjE6JGh0dHBkUG9ydCI7Ci0gICAgbXkgQGFyZ3Mg
PSAoCi0gICAgICAgICItYyIsICJDdXN0b21Mb2cgXCIkYWJzVGVzdFJlc3VsdHNEaXJlY3Rvcnkv
YWNjZXNzX2xvZy50eHRcIiBjb21tb24iLAotICAgICAgICAiLWMiLCAiRXJyb3JMb2cgXCIkYWJz
VGVzdFJlc3VsdHNEaXJlY3RvcnkvZXJyb3JfbG9nLnR4dFwiIiwKLSAgICAgICAgIi1DIiwgIkxp
c3RlbiAkbGlzdGVuIgotICAgICk7Ci0KLSAgICBteSBAZGVmYXVsdEFyZ3MgPSBnZXREZWZhdWx0
Q29uZmlnRm9yVGVzdERpcmVjdG9yeSgkdGVzdERpcmVjdG9yeSk7Ci0gICAgQGFyZ3MgPSAoQGRl
ZmF1bHRBcmdzLCBAYXJncyk7Ci0KLSAgICB3YWl0Rm9ySFRUUERMb2NrKCkgaWYgJHNob3VsZFdh
aXRGb3JIVFRQRDsKLSAgICAkaXNIdHRwZE9wZW4gPSBvcGVuSFRUUEQoQGFyZ3MpOwotfQotCi1z
dWIgb3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVkKCkKLXsKLSAgICByZXR1cm4gMSBpZiAkaXNX
ZWJTb2NrZXRTZXJ2ZXJPcGVuOwotICAgIHJldHVybiAwIGlmICRmYWlsZWRUb1N0YXJ0V2ViU29j
a2V0U2VydmVyOwotCi0gICAgbXkgJHdlYlNvY2tldFNlcnZlclBhdGggPSAiL3Vzci9iaW4vcHl0
aG9uIjsKLSAgICBteSAkd2ViU29ja2V0UHl0aG9uUGF0aCA9ICJXZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQiOwotICAgIG15ICR3ZWJTb2NrZXRIYW5k
bGVyRGlyID0gIiR0ZXN0RGlyZWN0b3J5IjsKLSAgICBteSAkd2ViU29ja2V0SGFuZGxlclNjYW5E
aXIgPSAiJHRlc3REaXJlY3Rvcnkvd2Vic29ja2V0L3Rlc3RzIjsKLSAgICBteSAkd2ViU29ja2V0
SGFuZGxlck1hcEZpbGUgPSAiJHdlYlNvY2tldEhhbmRsZXJTY2FuRGlyL2hhbmRsZXJfbWFwLnR4
dCI7Ci0gICAgbXkgJHNzbENlcnRpZmljYXRlID0gIiR0ZXN0RGlyZWN0b3J5L2h0dHAvY29uZi93
ZWJraXQtaHR0cGQucGVtIjsKLSAgICBteSAkYWJzVGVzdFJlc3VsdHNEaXJlY3RvcnkgPSByZXNv
bHZlQW5kTWFrZVRlc3RSZXN1bHRzRGlyZWN0b3J5KCk7Ci0gICAgbXkgJGxvZ0ZpbGUgPSAiJGFi
c1Rlc3RSZXN1bHRzRGlyZWN0b3J5L3B5d2Vic29ja2V0X2xvZy50eHQiOwotCi0gICAgbXkgQGFy
Z3MgPSAoCi0gICAgICAgICJXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkiLAotICAgICAgICAiLS1z
ZXJ2ZXItaG9zdCIsICIxMjcuMC4wLjEiLAotICAgICAgICAiLS1wb3J0IiwgIiR3ZWJTb2NrZXRQ
b3J0IiwKLSAgICAgICAgIi0tZG9jdW1lbnQtcm9vdCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIs
Ci0gICAgICAgICItLXNjYW4tZGlyIiwgIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpciIsCi0gICAg
ICAgICItLXdlYnNvY2staGFuZGxlcnMtbWFwLWZpbGUiLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBG
aWxlIiwKLSAgICAgICAgIi0tY2dpLXBhdGhzIiwgIi93ZWJzb2NrZXQvdGVzdHMiLAotICAgICAg
ICAiLS1sb2ctZmlsZSIsICIkbG9nRmlsZSIsCi0gICAgICAgICItLXN0cmljdCIsCi0gICAgKTsK
LSAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVu
U1NMLgotICAgICMgbXkgQGFyZ3NTZWN1cmUgPSAoCi0gICAgIyAgICAgIldlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3Rh
bmRhbG9uZS5weSIsCi0gICAgIyAgICAgIi1wIiwgIiR3ZWJTb2NrZXRTZWN1cmVQb3J0IiwKLSAg
ICAjICAgICAiLWQiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAotICAgICMgICAgICItdCIsCi0g
ICAgIyAgICAgIi1rIiwgIiRzc2xDZXJ0aWZpY2F0ZSIsCi0gICAgIyAgICAgIi1jIiwgIiRzc2xD
ZXJ0aWZpY2F0ZSIsCi0gICAgIyApOwotCi0gICAgJEVOVnsiUFlUSE9OUEFUSCJ9ID0gJHdlYlNv
Y2tldFB5dGhvblBhdGg7Ci0gICAgJHdlYlNvY2tldFNlcnZlclBJRCA9IG9wZW4zKFwqV0VCU09D
S0VUU0VSVkVSX0lOLCBcKldFQlNPQ0tFVFNFUlZFUl9PVVQsIFwqV0VCU09DS0VUU0VSVkVSX0VS
UiwgJHdlYlNvY2tldFNlcnZlclBhdGgsIEBhcmdzKTsKLSAgICAjIHdzcyBpcyBkaXNhYmxlZCB1
bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotICAgICMgJHdlYlNvY2tldFNl
Y3VyZVNlcnZlclBJRCA9IG9wZW4zKFwqV0VCU09DS0VUU0VDVVJFU0VSVkVSX0lOLCBcKldFQlNP
Q0tFVFNFQ1VSRVNFUlZFUl9PVVQsIFwqV0VCU09DS0VUU0VDVVJFU0VSVkVSX0VSUiwgJHdlYlNv
Y2tldFNlcnZlclBhdGgsIEBhcmdzU2VjdXJlKTsKLSAgICAjIG15IEBsaXN0ZW4gPSAoImh0dHA6
Ly8xMjcuMC4wLjE6JHdlYlNvY2tldFBvcnQiLCAiaHR0cHM6Ly8xMjcuMC4wLjE6JHdlYlNvY2tl
dFNlY3VyZVBvcnQiKTsKLSAgICBteSBAbGlzdGVuID0gKCJodHRwOi8vMTI3LjAuMC4xOiR3ZWJT
b2NrZXRQb3J0Iik7Ci0gICAgZm9yIChteSAkaSA9IDA7ICRpIDwgQGxpc3RlbjsgJGkrKykgewot
ICAgICAgICBteSAkcmV0cnlDb3VudCA9IDEwOwotICAgICAgICB3aGlsZSAoc3lzdGVtKCIvdXNy
L2Jpbi9jdXJsIC1rIC1xIC0tc2lsZW50IC0tc3RkZXJyIC0gLS1vdXRwdXQgL2Rldi9udWxsICRs
aXN0ZW5bJGldIikgJiYgJHJldHJ5Q291bnQpIHsKLSAgICAgICAgICAgIHNsZWVwIDE7Ci0gICAg
ICAgICAgICAtLSRyZXRyeUNvdW50OwotICAgICAgICB9Ci0gICAgICAgIHVubGVzcyAoJHJldHJ5
Q291bnQpIHsKLSAgICAgICAgICAgIHByaW50IFNUREVSUiAiVGltZWQgb3V0IHdhaXRpbmcgZm9y
IFdlYlNvY2tldFNlcnZlciB0byBzdGFydC5cbiI7Ci0gICAgICAgICAgICAkZmFpbGVkVG9TdGFy
dFdlYlNvY2tldFNlcnZlciA9IDE7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgICRpc1dlYlNvY2tldFNlcnZlck9wZW4gPSAxOwotICAgIHJldHVybiAxOwot
fQotCi1zdWIgY2xvc2VXZWJTb2NrZXRTZXJ2ZXIoKQotewotICAgIHJldHVybiBpZiAhJGlzV2Vi
U29ja2V0U2VydmVyT3BlbjsKLQotICAgIGNsb3NlIFdFQlNPQ0tFVFNFUlZFUl9JTjsKLSAgICBj
bG9zZSBXRUJTT0NLRVRTRVJWRVJfT1VUOwotICAgIGNsb3NlIFdFQlNPQ0tFVFNFUlZFUl9FUlI7
Ci0gICAga2lsbCAxNSwgJHdlYlNvY2tldFNlcnZlclBJRDsKLQotICAgICMgd3NzIGlzIGRpc2Fi
bGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuCi0gICAgIyBjbG9zZSBX
RUJTT0NLRVRTRUNVUkVTRVJWRVJfSU47Ci0gICAgIyBjbG9zZSBXRUJTT0NLRVRTRUNVUkVTRVJW
RVJfT1VUOwotICAgICMgY2xvc2UgV0VCU09DS0VUU0VDVVJFU0VSVkVSX0VSUjsKLSAgICAjIGtp
bGwgMTUsICR3ZWJTb2NrZXRTZWN1cmVTZXJ2ZXJQSUQ7Ci0KLSAgICAkaXNXZWJTb2NrZXRTZXJ2
ZXJPcGVuID0gMDsKLX0KLQotc3ViIGZpbGVOYW1lV2l0aE51bWJlcigkJCkKLXsKLSAgICBteSAo
JGJhc2UsICRudW1iZXIpID0gQF87Ci0gICAgcmV0dXJuICIkYmFzZSRudW1iZXIiIGlmICgkbnVt
YmVyID4gMSk7Ci0gICAgcmV0dXJuICRiYXNlOwotfQotCi1zdWIgcHJvY2Vzc0lnbm9yZVRlc3Rz
KCQkKQotewotICAgIG15IEBpZ25vcmVMaXN0ID0gc3BsaXQoL1xzKixccyovLCBzaGlmdCk7Ci0g
ICAgbXkgJGxpc3ROYW1lID0gc2hpZnQ7Ci0KLSAgICBteSAkZGlzYWJsZWRTdWZmaXggPSAiLWRp
c2FibGVkIjsKLQotICAgIG15ICRhZGRJZ25vcmVkRGlyZWN0b3JpZXMgPSBzdWIgewotICAgICAg
ICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVkTG9jYWxEaXJlY3Rvcmllc3tiYXNlbmFtZSgk
RmlsZTo6RmluZDo6ZGlyKX07Ci0gICAgICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7RmlsZTo6U3Bl
Yy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6ZGlyLCAkdGVzdERpcmVjdG9yeSl9ID0gMTsKLSAgICAg
ICAgcmV0dXJuIEBfOwotICAgIH07Ci0gICAgZm9yZWFjaCBteSAkaXRlbSAoQGlnbm9yZUxpc3Qp
IHsKLSAgICAgICAgbXkgJHBhdGggPSBjYXRmaWxlKCR0ZXN0RGlyZWN0b3J5LCAkaXRlbSk7IAot
ICAgICAgICBpZiAoLWQgJHBhdGgpIHsKLSAgICAgICAgICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7
JGl0ZW19ID0gMTsKLSAgICAgICAgICAgIGZpbmQoeyBwcmVwcm9jZXNzID0+ICRhZGRJZ25vcmVk
RGlyZWN0b3JpZXMsIHdhbnRlZCA9PiBzdWIge30gfSwgJHBhdGgpOwotICAgICAgICB9Ci0gICAg
ICAgIGVsc2lmICgtZiAkcGF0aCkgewotICAgICAgICAgICAgJGlnbm9yZWRGaWxlc3skaXRlbX0g
PSAxOwotICAgICAgICB9IGVsc2lmICgtZiAkcGF0aCAuICRkaXNhYmxlZFN1ZmZpeCkgewotICAg
ICAgICAgICAgIyBUaGUgdGVzdCBpcyBkaXNhYmxlZCwgc28gZG8gbm90aGluZy4KLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ICIkbGlzdE5hbWUgbGlzdCBjb250YWluZWQgJyRp
dGVtJywgYnV0IG5vIGZpbGUgb2YgdGhhdCBuYW1lIGNvdWxkIGJlIGZvdW5kXG4iOwotICAgICAg
ICB9Ci0gICAgfQotfQotCi1zdWIgc3RyaXBFeHRlbnNpb24oJCkKLXsKLSAgICBteSAoJHRlc3Qp
ID0gQF87Ci0KLSAgICAkdGVzdCA9fiBzL1wuW2EtekEtWl0rJC8vOwotICAgIHJldHVybiAkdGVz
dDsKLX0KLQotc3ViIGlzVGV4dE9ubHlUZXN0KCQpCi17Ci0gICAgbXkgKCRhY3R1YWwpID0gQF87
Ci0gICAgbXkgJGlzVGV4dDsKLSAgICBpZiAoJGFjdHVhbCA9fiAvXmxheWVyIGF0L21zKSB7Ci0g
ICAgICAgICRpc1RleHQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRpc1RleHQgPSAxOwot
ICAgIH0KLSAgICByZXR1cm4gJGlzVGV4dDsKLX0KLQotc3ViIGV4cGVjdGVkRGlyZWN0b3J5Rm9y
VGVzdCgkOyQ7JCkKLXsKLSAgICBteSAoJGJhc2UsICRpc1RleHQsICRleHBlY3RlZEV4dGVuc2lv
bikgPSBAXzsKLQotICAgIG15IEBkaXJlY3RvcmllcyA9IEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNo
eTsKLSAgICBwdXNoIEBkaXJlY3RvcmllcywgbWFwIHsgY2F0ZGlyKCRwbGF0Zm9ybUJhc2VEaXJl
Y3RvcnksICRfKSB9IHF3KG1hYy1zbm93bGVvcGFyZCBtYWMpIGlmIGlzQ3lnd2luKCk7Ci0gICAg
cHVzaCBAZGlyZWN0b3JpZXMsICRleHBlY3RlZERpcmVjdG9yeTsKLQotICAgICMgSWYgd2UgYWxy
ZWFkeSBoYXZlIGV4cGVjdGVkIHJlc3VsdHMsIGp1c3QgcmV0dXJuIHRoZWlyIGxvY2F0aW9uLgot
ICAgIGZvcmVhY2ggbXkgJGRpcmVjdG9yeSAoQGRpcmVjdG9yaWVzKSB7Ci0gICAgICAgIHJldHVy
biAkZGlyZWN0b3J5IGlmICgtZiAiJGRpcmVjdG9yeS8kYmFzZS0kZXhwZWN0ZWRUYWcuJGV4cGVj
dGVkRXh0ZW5zaW9uIik7Ci0gICAgfQotCi0gICAgIyBGb3IgY3Jvc3MtcGxhdGZvcm0gdGVzdHMs
IHRleHQtb25seSByZXN1bHRzIHNob3VsZCBnbyBpbiB0aGUgY3Jvc3MtcGxhdGZvcm0gZGlyZWN0
b3J5LAotICAgICMgd2hpbGUgcmVuZGVyIHRyZWUgZHVtcHMgc2hvdWxkIGdvIGluIHRoZSBsZWFz
dC1zcGVjaWZpYyBwbGF0Zm9ybSBkaXJlY3RvcnkuCi0gICAgcmV0dXJuICRpc1RleHQgPyAkZXhw
ZWN0ZWREaXJlY3RvcnkgOiAkcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHlbJCNwbGF0Zm9ybVJlc3Vs
dEhpZXJhcmNoeV07Ci19Ci0KLXN1YiBjb3VudEZpbmlzaGVkVGVzdCgkJCQkKQotewotICAgIG15
ICgkdGVzdCwgJGJhc2UsICRyZXN1bHQsICRpc1RleHQpID0gQF87Ci0KLSAgICBpZiAoKCRjb3Vu
dCArIDEpICUgJHRlc3RzUGVyRHVtcFRvb2wgPT0gMCB8fCAkY291bnQgPT0gJCN0ZXN0cykgewot
ICAgICAgICBpZiAoJHNob3VsZENoZWNrTGVha3MpIHsKLSAgICAgICAgICAgIG15ICRmaWxlTmFt
ZTsKLSAgICAgICAgICAgIGlmICgkdGVzdHNQZXJEdW1wVG9vbCA9PSAxKSB7Ci0gICAgICAgICAg
ICAgICAgJGZpbGVOYW1lID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS1sZWFrcy50eHQi
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkZmlsZU5hbWUgPSAiJHRl
c3RSZXN1bHRzRGlyZWN0b3J5LyIgLiBmaWxlTmFtZVdpdGhOdW1iZXIoJGR1bXBUb29sTmFtZSwg
JGxlYWtzT3V0cHV0RmlsZU51bWJlcikgLiAiLWxlYWtzLnR4dCI7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBteSAkbGVha0NvdW50ID0gY291bnRBbmRQcmludExlYWtzKCRkdW1wVG9vbE5h
bWUsICRkdW1wVG9vbFBJRCwgJGZpbGVOYW1lKTsKLSAgICAgICAgICAgICR0b3RhbExlYWtzICs9
ICRsZWFrQ291bnQ7Ci0gICAgICAgICAgICAkbGVha3NPdXRwdXRGaWxlTnVtYmVyKysgaWYgKCRs
ZWFrQ291bnQpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2xvc2VEdW1wVG9vbCgpOwotICAgIH0K
LSAgICAKLSAgICAkY291bnQrKzsKLSAgICAkY291bnRzeyRyZXN1bHR9Kys7Ci0gICAgcHVzaCBA
eyR0ZXN0c3skcmVzdWx0fX0sICR0ZXN0OwotfQotCi1zdWIgdGVzdENyYXNoZWRPclRpbWVkT3V0
KCQkJCQkKQotewotICAgIG15ICgkdGVzdCwgJGJhc2UsICRkaWRDcmFzaCwgJGFjdHVhbCwgJGVy
cm9yKSA9IEBfOwotCi0gICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICRkaWRD
cmFzaCA/ICJjcmFzaGVkIiA6ICJ0aW1lZCBvdXQiKTsKLQotICAgIHNhbXBsZUR1bXBUb29sKCkg
dW5sZXNzICRkaWRDcmFzaDsKLQotICAgIG15ICRkaXIgPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5
LyRiYXNlIjsKLSAgICAkZGlyID1+IHN8LyhbXi9dKykkfHwgb3IgZGllICJGYWlsZWQgdG8gZmlu
ZCB0ZXN0IG5hbWUgZnJvbSBiYXNlXG4iOwotICAgIG1rcGF0aCAkZGlyOwotCi0gICAgZGVsZXRl
RXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKTsKLQotICAgIGlmIChkZWZpbmVkKCRlcnJv
cikgJiYgbGVuZ3RoKCRlcnJvcikpIHsKLSAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0
c0RpcmVjdG9yeS8kYmFzZS0kZXJyb3JUYWcudHh0IiwgJGVycm9yKTsKLSAgICB9Ci0KLSAgICBy
ZWNvcmRBY3R1YWxSZXN1bHRzQW5kRGlmZigkYmFzZSwgJGFjdHVhbCk7Ci0KLSAgICBraWxsIDks
ICRkdW1wVG9vbFBJRCB1bmxlc3MgJGRpZENyYXNoOwotCi0gICAgY2xvc2VEdW1wVG9vbCgpOwot
fQotCi1zdWIgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJCQpCi17Ci0gICAgbXkgKCR0ZXN0
LCAkZGVzY3JpcHRpb24pID0gQF87Ci0KLSAgICB1bmxlc3MgKCR2ZXJib3NlKSB7Ci0gICAgICAg
IHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsKLSAgICAgICAgcHJpbnQgIiR0ZXN0IC0+
ICI7Ci0gICAgfQotICAgIHByaW50ICIkZGVzY3JpcHRpb25cbiI7Ci0gICAgJGF0TGluZVN0YXJ0
ID0gMTsKLX0KLQotbXkgJWN5Z3BhdGhzID0gKCk7Ci0KLXN1YiBvcGVuQ3lncGF0aElmTmVlZGVk
KCQpCi17Ci0gICAgbXkgKCRvcHRpb25zKSA9IEBfOwotCi0gICAgcmV0dXJuIHVubGVzcyBpc0N5
Z3dpbigpOwotICAgIHJldHVybiAkY3lncGF0aHN7JG9wdGlvbnN9IGlmICRjeWdwYXRoc3skb3B0
aW9uc30gJiYgJGN5Z3BhdGhzeyRvcHRpb25zfS0+eyJvcGVuIn07Ci0KLSAgICBsb2NhbCAoKkNZ
R1BBVEhJTiwgKkNZR1BBVEhPVVQpOwotICAgIG15ICRwaWQgPSBvcGVuMihcKkNZR1BBVEhJTiwg
XCpDWUdQQVRIT1VULCAiY3lncGF0aCAtZiAtICRvcHRpb25zIik7Ci0gICAgbXkgJGN5Z3BhdGgg
PSAgewotICAgICAgICAicGlkIiA9PiAkcGlkLAotICAgICAgICAiaW4iID0+ICpDWUdQQVRISU4s
Ci0gICAgICAgICJvdXQiID0+ICpDWUdQQVRIT1VULAotICAgICAgICAib3BlbiIgPT4gMQotICAg
IH07Ci0KLSAgICAkY3lncGF0aHN7JG9wdGlvbnN9ID0gJGN5Z3BhdGg7Ci0KLSAgICByZXR1cm4g
JGN5Z3BhdGg7Ci19Ci0KLXN1YiBjbG9zZUN5Z3BhdGhzKCkKLXsKLSAgICByZXR1cm4gdW5sZXNz
IGlzQ3lnd2luKCk7Ci0KLSAgICBmb3JlYWNoIG15ICRjeWdwYXRoICh2YWx1ZXMoJWN5Z3BhdGhz
KSkgewotICAgICAgICBjbG9zZSAkY3lncGF0aC0+eyJpbiJ9OwotICAgICAgICBjbG9zZSAkY3ln
cGF0aC0+eyJvdXQifTsKLSAgICAgICAgd2FpdHBpZCgkY3lncGF0aC0+eyJwaWQifSwgMCk7Ci0g
ICAgICAgICRjeWdwYXRoLT57Im9wZW4ifSA9IDA7Ci0KLSAgICB9Ci19Ci0KLXN1YiBjb252ZXJ0
UGF0aFVzaW5nQ3lncGF0aCgkJCkKLXsKLSAgICBteSAoJHBhdGgsICRvcHRpb25zKSA9IEBfOwot
Ci0gICAgIyBjeWdwYXRoIC1mIChhdCBsZWFzdCBpbiBDeWd3aW4gMS43KSBjb252ZXJ0cyBzcGFj
ZXMgaW50byBuZXdsaW5lcy4gV2UgcmVtb3ZlIHNwYWNlcyBoZXJlIGFuZAotICAgICMgYWRkIHRo
ZW0gYmFjayBpbiBhZnRlciBjb252ZXJzaW9uIHRvIHdvcmsgYXJvdW5kIHRoaXMuCi0gICAgbXkg
JHNwYWNlU3Vic3RpdHV0ZSA9ICJfX05PVEFTUEFDRV9fIjsKLSAgICAkcGF0aCA9fiBzLyAvXFEk
c3BhY2VTdWJzdGl0dXRlXEUvZzsKLQotICAgIG15ICRjeWdwYXRoID0gb3BlbkN5Z3BhdGhJZk5l
ZWRlZCgkb3B0aW9ucyk7Ci0gICAgbG9jYWwgKmluRkggPSAkY3lncGF0aC0+eyJpbiJ9OwotICAg
IGxvY2FsICpvdXRGSCA9ICRjeWdwYXRoLT57Im91dCJ9OwotICAgIHByaW50IG91dEZIICRwYXRo
IC4gIlxuIjsKLSAgICBteSAkY29udmVydGVkUGF0aCA9IDxpbkZIPjsKLSAgICBjaG9tcCgkY29u
dmVydGVkUGF0aCkgaWYgZGVmaW5lZCAkY29udmVydGVkUGF0aDsKLQotICAgICRjb252ZXJ0ZWRQ
YXRoID1+IHMvXFEkc3BhY2VTdWJzdGl0dXRlXEUvIC9nOwotICAgIHJldHVybiAkY29udmVydGVk
UGF0aDsKLX0KLQotc3ViIHRvV2luZG93c1BhdGgoJCkKLXsKLSAgICBteSAoJHBhdGgpID0gQF87
Ci0gICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dpbigpOwotCi0gICAgcmV0dXJuIGNvbnZlcnRQYXRo
VXNpbmdDeWdwYXRoKCRwYXRoLCAiLXciKTsKLX0KLQotc3ViIHRvVVJMKCQpCi17Ci0gICAgbXkg
KCRwYXRoKSA9IEBfOwotCi0gICAgaWYgKCR1c2VSZW1vdGVMaW5rc1RvVGVzdHMpIHsKLSAgICAg
ICAgbXkgJHJlbGF0aXZlUGF0aCA9IEZpbGU6OlNwZWMtPmFiczJyZWwoJHBhdGgsICR0ZXN0RGly
ZWN0b3J5KTsKLQotICAgICAgICAjIElmIHRoZSBmaWxlIGlzIGJlbG93IHRoZSB0ZXN0IGRpcmVj
dG9yeSB0aGVuIGNvbnZlcnQgaXQgaW50byBhIGxpbmsgdG8gdGhlIGZpbGUgaW4gU1ZOCi0gICAg
ICAgIGlmICgkcmVsYXRpdmVQYXRoICF+IC9eXC5cLlwvLykgewotICAgICAgICAgICAgbXkgJHJl
dmlzaW9uID0gc3ZuUmV2aXNpb25Gb3JEaXJlY3RvcnkoJHRlc3REaXJlY3RvcnkpOwotICAgICAg
ICAgICAgbXkgJHN2blBhdGggPSBwYXRoUmVsYXRpdmVUb1NWTlJlcG9zaXRvcnlSb290Rm9yUGF0
aCgkcGF0aCk7Ci0gICAgICAgICAgICByZXR1cm4gImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvZXhw
b3J0LyRyZXZpc2lvbi8kc3ZuUGF0aCI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4g
JHBhdGggdW5sZXNzIGlzQ3lnd2luKCk7Ci0KLSAgICByZXR1cm4gImZpbGU6Ly8vIiAuIGNvbnZl
cnRQYXRoVXNpbmdDeWdwYXRoKCRwYXRoLCAiLW0iKTsKLX0KLQotc3ViIHZhbGlkYXRlU2tpcHBl
ZEFyZygkJDskKQotewotICAgIG15ICgkb3B0aW9uLCAkdmFsdWUsICR2YWx1ZTIpID0gQF87Ci0g
ICAgbXkgJXZhbGlkU2tpcHBlZFZhbHVlcyA9IG1hcCB7ICRfID0+IDEgfSBxdyhkZWZhdWx0IGln
bm9yZSBvbmx5KTsKLSAgICAkdmFsdWUgPSBsYygkdmFsdWUpOwotICAgIGRpZSAiSW52YWxpZCBh
cmd1bWVudCAnIiAuICR2YWx1ZSAuICInIGZvciBvcHRpb24gJG9wdGlvbiIgdW5sZXNzICR2YWxp
ZFNraXBwZWRWYWx1ZXN7JHZhbHVlfTsKLSAgICAkdHJlYXRTa2lwcGVkID0gJHZhbHVlOwotfQot
Ci1zdWIgaHRtbEZvclJlc3VsdHNTZWN0aW9uKFxAJCYpCi17Ci0gICAgbXkgKCR0ZXN0cywgJGRl
c2NyaXB0aW9uLCAkbGlua0dldHRlcikgPSBAXzsKLQotICAgIG15IEBodG1sID0gKCk7Ci0gICAg
cmV0dXJuIGpvaW4oIlxuIiwgQGh0bWwpIHVubGVzcyBAeyR0ZXN0c307Ci0KLSAgICBwdXNoIEBo
dG1sLCAiPHA+JGRlc2NyaXB0aW9uOjwvcD4iOwotICAgIHB1c2ggQGh0bWwsICI8dGFibGU+IjsK
LSAgICBmb3JlYWNoIG15ICR0ZXN0IChAeyR0ZXN0c30pIHsKLSAgICAgICAgcHVzaCBAaHRtbCwg
Ijx0cj4iOwotICAgICAgICBwdXNoIEBodG1sLCAiPHRkPjxhIGhyZWY9XCIiIC4gdG9VUkwoIiR0
ZXN0RGlyZWN0b3J5LyR0ZXN0IikgLiAiXCI+JHRlc3Q8L2E+PC90ZD4iOwotICAgICAgICBmb3Jl
YWNoIG15ICRsaW5rIChAeyZ7JGxpbmtHZXR0ZXJ9KCR0ZXN0KX0pIHsKLSAgICAgICAgICAgIHB1
c2ggQGh0bWwsICI8dGQ+PGEgaHJlZj1cIiRsaW5rLT57aHJlZn1cIj4kbGluay0+e3RleHR9PC9h
PjwvdGQ+IjsKLSAgICAgICAgfQotICAgICAgICBwdXNoIEBodG1sLCAiPC90cj4iOwotICAgIH0K
LSAgICBwdXNoIEBodG1sLCAiPC90YWJsZT4iOwotCi0gICAgcmV0dXJuIGpvaW4oIlxuIiwgQGh0
bWwpOwotfQotCi1zdWIgbGlua3NGb3JFeHBlY3RlZEFuZEFjdHVhbFJlc3VsdHMoJCkKLXsKLSAg
ICBteSAoJGJhc2UpID0gQF87Ci0KLSAgICBteSBAbGlua3MgPSAoKTsKLQotICAgIHJldHVybiBc
QGxpbmtzIHVubGVzcyAtcyAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRkaWZmc1RhZy50
eHQiOwotICAgIAotICAgIG15ICRleHBlY3RlZFJlc3VsdFBhdGggPSAkZXhwZWN0ZWRSZXN1bHRQ
YXRoc3skYmFzZX07Ci0gICAgbXkgKCRleHBlY3RlZFJlc3VsdEZpbGVOYW1lLCAkZXhwZWN0ZWRS
ZXN1bHRzRGlyZWN0b3J5LCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0gZmlsZXBhcnNlKCRl
eHBlY3RlZFJlc3VsdFBhdGgsIHFye1wuW14uXSskfSk7Ci0KLSAgICBwdXNoIEBsaW5rcywgeyBo
cmVmID0+ICIkYmFzZS0kZXhwZWN0ZWRUYWckZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24iLCB0ZXh0
ID0+ICJleHBlY3RlZCIgfTsKLSAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kYWN0
dWFsVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIiwgdGV4dCA9PiAiYWN0dWFsIiB9OwotICAg
IHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRkaWZmc1RhZy50eHQiLCB0ZXh0ID0+ICJk
aWZmIiB9OwotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRwcmV0dHlEaWZmVGFn
Lmh0bWwiLCB0ZXh0ID0+ICJwcmV0dHkgZGlmZiIgfTsKLQotICAgIHJldHVybiBcQGxpbmtzOwot
fQotCi1zdWIgbGlua3NGb3JNaXNtYXRjaFRlc3QKLXsKLSAgICBteSAoJHRlc3QpID0gQF87Ci0K
LSAgICBteSBAbGlua3MgPSAoKTsKLQotICAgIG15ICRiYXNlID0gc3RyaXBFeHRlbnNpb24oJHRl
c3QpOwotCi0gICAgcHVzaCBAbGlua3MsIEB7bGlua3NGb3JFeHBlY3RlZEFuZEFjdHVhbFJlc3Vs
dHMoJGJhc2UpfTsKLSAgICByZXR1cm4gXEBsaW5rcyB1bmxlc3MgJHBpeGVsVGVzdHMgJiYgJGlt
YWdlc1ByZXNlbnR7JGJhc2V9OwotCi0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2Ut
JGV4cGVjdGVkVGFnLnBuZyIsIHRleHQgPT4gImV4cGVjdGVkIGltYWdlIiB9OwotICAgIHB1c2gg
QGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRkaWZmc1RhZy5odG1sIiwgdGV4dCA9PiAiaW1hZ2Ug
ZGlmZnMiIH07Ci0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGRpZmZzVGFnLnBu
ZyIsIHRleHQgPT4gIiRpbWFnZURpZmZlcmVuY2VzeyRiYXNlfSUiIH07Ci0KLSAgICByZXR1cm4g
XEBsaW5rczsKLX0KLQotc3ViIGxpbmtzRm9yRXJyb3JUZXN0Ci17Ci0gICAgbXkgKCR0ZXN0KSA9
IEBfOwotCi0gICAgbXkgQGxpbmtzID0gKCk7Ci0KLSAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5z
aW9uKCR0ZXN0KTsKLQotICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1
YWxSZXN1bHRzKCRiYXNlKX07Ci0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGVy
cm9yVGFnLnR4dCIsIHRleHQgPT4gInN0ZGVyciIgfTsKLQotICAgIHJldHVybiBcQGxpbmtzOwot
fQotCi1zdWIgbGlua3NGb3JOZXdUZXN0Ci17Ci0gICAgbXkgKCR0ZXN0KSA9IEBfOwotCi0gICAg
bXkgQGxpbmtzID0gKCk7Ci0KLSAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsK
LQotICAgIG15ICRleHBlY3RlZFJlc3VsdFBhdGggPSAkZXhwZWN0ZWRSZXN1bHRQYXRoc3skYmFz
ZX07Ci0gICAgbXkgKCRleHBlY3RlZFJlc3VsdEZpbGVOYW1lLCAkZXhwZWN0ZWRSZXN1bHRzRGly
ZWN0b3J5LCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0gZmlsZXBhcnNlKCRleHBlY3RlZFJl
c3VsdFBhdGgsIHFye1wuW14uXSskfSk7Ci0KLSAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIk
YmFzZS0kYWN0dWFsVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIiwgdGV4dCA9PiAicmVzdWx0
IiB9OwotICAgIGlmICgkcGl4ZWxUZXN0cyAmJiAkaW1hZ2VzUHJlc2VudHskYmFzZX0pIHsKLSAg
ICAgICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIsIHRl
eHQgPT4gImltYWdlIiB9OwotICAgIH0KLQotICAgIHJldHVybiBcQGxpbmtzOwotfQotCi1zdWIg
ZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCQpCi17Ci0gICAgbXkgKCRiYXNlKSA9IEBf
OwotCi0gICAgdW5saW5rICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGFjdHVhbFRhZy50
eHQiOwotICAgIHVubGluayAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRkaWZmc1RhZy50
eHQiOwotICAgIHVubGluayAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRlcnJvclRhZy50
eHQiOwotfQotCi1zdWIgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJCQpCi17Ci0gICAgbXkg
KCRiYXNlLCAkYWN0dWFsUmVzdWx0cykgPSBAXzsKLQotICAgIHJldHVybiB1bmxlc3MgZGVmaW5l
ZCgkYWN0dWFsUmVzdWx0cykgJiYgbGVuZ3RoKCRhY3R1YWxSZXN1bHRzKTsKLQotICAgIG15ICRl
eHBlY3RlZFJlc3VsdFBhdGggPSAkZXhwZWN0ZWRSZXN1bHRQYXRoc3skYmFzZX07Ci0gICAgbXkg
KCRleHBlY3RlZFJlc3VsdEZpbGVOYW1lTWludXNFeHRlbnNpb24sICRleHBlY3RlZFJlc3VsdERp
cmVjdG9yeVBhdGgsICRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbikgPSBmaWxlcGFyc2UoJGV4cGVj
dGVkUmVzdWx0UGF0aCwgcXJ7XC5bXi5dKyR9KTsKLSAgICBteSAkYWN0dWFsUmVzdWx0c1BhdGgg
PSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRhY3R1YWxUYWckZXhwZWN0ZWRSZXN1bHRF
eHRlbnNpb24iOwotICAgIG15ICRjb3BpZWRFeHBlY3RlZFJlc3VsdHNQYXRoID0gIiR0ZXN0UmVz
dWx0c0RpcmVjdG9yeS8kYmFzZS0kZXhwZWN0ZWRUYWckZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24i
OwotCi0gICAgbWtwYXRoKGRpcm5hbWUoJGFjdHVhbFJlc3VsdHNQYXRoKSk7Ci0gICAgd3JpdGVU
b0ZpbGUoIiRhY3R1YWxSZXN1bHRzUGF0aCIsICRhY3R1YWxSZXN1bHRzKTsKLQotICAgIGlmICgt
ZiAkZXhwZWN0ZWRSZXN1bHRQYXRoKSB7Ci0gICAgICAgIGNvcHkoIiRleHBlY3RlZFJlc3VsdFBh
dGgiLCAiJGNvcGllZEV4cGVjdGVkUmVzdWx0c1BhdGgiKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBvcGVuIEVNUFRZLCAiPiRjb3BpZWRFeHBlY3RlZFJlc3VsdHNQYXRoIjsKLSAgICAgICAgY2xv
c2UgRU1QVFk7Ci0gICAgfQotCi0gICAgbXkgJGRpZmZPdXB1dEJhc2VQYXRoID0gIiR0ZXN0UmVz
dWx0c0RpcmVjdG9yeS8kYmFzZSI7Ci0gICAgbXkgJGRpZmZPdXRwdXRQYXRoID0gIiRkaWZmT3Vw
dXRCYXNlUGF0aC0kZGlmZnNUYWcudHh0IjsKLSAgICBzeXN0ZW0gImRpZmYgLXUgXCIkY29waWVk
RXhwZWN0ZWRSZXN1bHRzUGF0aFwiIFwiJGFjdHVhbFJlc3VsdHNQYXRoXCIgPiBcIiRkaWZmT3V0
cHV0UGF0aFwiIjsKLQotICAgIG15ICRwcmV0dHlEaWZmT3V0cHV0UGF0aCA9ICIkZGlmZk91cHV0
QmFzZVBhdGgtJHByZXR0eURpZmZUYWcuaHRtbCI7Ci0gICAgbXkgJHByZXR0eVBhdGNoUGF0aCA9
ICJCdWdzU2l0ZS9QcmV0dHlQYXRjaC8iOwotICAgIG15ICRwcmV0dGlmeVBhdGggPSAiJHByZXR0
eVBhdGNoUGF0aC9wcmV0dGlmeS5yYiI7Ci0gICAgc3lzdGVtICJydWJ5IC1JIFwiJHByZXR0eVBh
dGNoUGF0aFwiIFwiJHByZXR0aWZ5UGF0aFwiIFwiJGRpZmZPdXRwdXRQYXRoXCIgPiBcIiRwcmV0
dHlEaWZmT3V0cHV0UGF0aFwiIjsKLX0KLQotc3ViIGJ1aWxkUGxhdGZvcm1SZXN1bHRIaWVyYXJj
aHkoKQotewotICAgIG1rcGF0aCgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5KSBpZiAoJHBsYXRmb3Jt
IGVxICJ1bmRlZmluZWQiICYmICEtZCAiJHBsYXRmb3JtVGVzdERpcmVjdG9yeSIpOwotCi0gICAg
bXkgQHBsYXRmb3JtczsKLSAgICBpZiAoJHBsYXRmb3JtID1+IC9ebWFjLS8pIHsKLSAgICAgICAg
bXkgJGk7Ci0gICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IEBtYWNQbGF0Zm9ybXM7ICRpKyspIHsK
LSAgICAgICAgICAgIGxhc3QgaWYgJG1hY1BsYXRmb3Jtc1skaV0gZXEgJHBsYXRmb3JtOwotICAg
ICAgICB9Ci0gICAgICAgIGZvciAoOyAkaSA8IEBtYWNQbGF0Zm9ybXM7ICRpKyspIHsKLSAgICAg
ICAgICAgIHB1c2ggQHBsYXRmb3JtcywgJG1hY1BsYXRmb3Jtc1skaV07Ci0gICAgICAgIH0KLSAg
ICB9IGVsc2lmICgkcGxhdGZvcm0gPX4gL15xdC0vKSB7Ci0gICAgICAgIHB1c2ggQHBsYXRmb3Jt
cywgJHBsYXRmb3JtOwotICAgICAgICBwdXNoIEBwbGF0Zm9ybXMsICJxdCI7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgQHBsYXRmb3JtcyA9ICRwbGF0Zm9ybTsKLSAgICB9Ci0KLSAgICBteSBAaGll
cmFyY2h5OwotICAgIGZvciAobXkgJGkgPSAwOyAkaSA8IEBwbGF0Zm9ybXM7ICRpKyspIHsKLSAg
ICAgICAgbXkgJHNjb3BlZCA9IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0b3J5LCAkcGxhdGZv
cm1zWyRpXSk7Ci0gICAgICAgIHB1c2goQGhpZXJhcmNoeSwgJHNjb3BlZCkgaWYgKC1kICRzY29w
ZWQpOwotICAgIH0KLQotICAgIHJldHVybiBAaGllcmFyY2h5OwotfQotCi1zdWIgYnVpbGRQbGF0
Zm9ybVRlc3RIaWVyYXJjaHkoQCkKLXsKLSAgICBteSAoQHBsYXRmb3JtSGllcmFyY2h5KSA9IEBf
OwotICAgIHJldHVybiBAcGxhdGZvcm1IaWVyYXJjaHkgaWYgKEBwbGF0Zm9ybUhpZXJhcmNoeSA8
IDIpOwotCi0gICAgcmV0dXJuICgkcGxhdGZvcm1IaWVyYXJjaHlbMF0sICRwbGF0Zm9ybUhpZXJh
cmNoeVskI3BsYXRmb3JtSGllcmFyY2h5XSk7Ci19Ci0KLXN1YiBlcGlsb2d1ZXNBbmRQcm9sb2d1
ZXMoJCQpCi17Ci0gICAgbXkgKCRsYXN0RGlyZWN0b3J5LCAkZGlyZWN0b3J5KSA9IEBfOwotICAg
IG15IEBsYXN0Q29tcG9uZW50cyA9IHNwbGl0KCcvJywgJGxhc3REaXJlY3RvcnkpOwotICAgIG15
IEBjb21wb25lbnRzID0gc3BsaXQoJy8nLCAkZGlyZWN0b3J5KTsKLQotICAgIHdoaWxlIChAbGFz
dENvbXBvbmVudHMpIHsKLSAgICAgICAgaWYgKCFkZWZpbmVkKCRjb21wb25lbnRzWzBdKSB8fCAk
bGFzdENvbXBvbmVudHNbMF0gbmUgJGNvbXBvbmVudHNbMF0pIHsKLSAgICAgICAgICAgIGxhc3Q7
Ci0gICAgICAgIH0KLSAgICAgICAgc2hpZnQgQGNvbXBvbmVudHM7Ci0gICAgICAgIHNoaWZ0IEBs
YXN0Q29tcG9uZW50czsKLSAgICB9Ci0KLSAgICBteSBAcmVzdWx0OwotICAgIG15ICRsZWF2aW5n
ID0gJGxhc3REaXJlY3Rvcnk7Ci0gICAgZm9yZWFjaCAoQGxhc3RDb21wb25lbnRzKSB7Ci0gICAg
ICAgIG15ICRlcGlsb2d1ZSA9ICRsZWF2aW5nIC4gIi9yZXNvdXJjZXMvcnVuLXdlYmtpdC10ZXN0
cy1lcGlsb2d1ZS5odG1sIjsKLSAgICAgICAgZm9yZWFjaCAoQHBsYXRmb3JtUmVzdWx0SGllcmFy
Y2h5KSB7Ci0gICAgICAgICAgICBwdXNoIEByZXN1bHQsIGNhdGRpcigkXywgJGVwaWxvZ3VlKSBp
ZiAoc3RhdChjYXRkaXIoJF8sICRlcGlsb2d1ZSkpKTsKLSAgICAgICAgfQotICAgICAgICBwdXNo
IEByZXN1bHQsIGNhdGRpcigkdGVzdERpcmVjdG9yeSwgJGVwaWxvZ3VlKSBpZiAoc3RhdChjYXRk
aXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1ZSkpKTsKLSAgICAgICAgJGxlYXZpbmcgPX4gc3wo
Xlx8LylbXi9dKyR8fDsKLSAgICB9Ci0KLSAgICBteSAkZW50ZXJpbmcgPSAkbGVhdmluZzsKLSAg
ICBmb3JlYWNoIChAY29tcG9uZW50cykgewotICAgICAgICAkZW50ZXJpbmcgLj0gJy8nIC4gJF87
Ci0gICAgICAgIG15ICRwcm9sb2d1ZSA9ICRlbnRlcmluZyAuICIvcmVzb3VyY2VzL3J1bi13ZWJr
aXQtdGVzdHMtcHJvbG9ndWUuaHRtbCI7Ci0gICAgICAgIHB1c2ggQHJlc3VsdCwgY2F0ZGlyKCR0
ZXN0RGlyZWN0b3J5LCAkcHJvbG9ndWUpIGlmIChzdGF0KGNhdGRpcigkdGVzdERpcmVjdG9yeSwg
JHByb2xvZ3VlKSkpOwotICAgICAgICBmb3JlYWNoIChyZXZlcnNlIEBwbGF0Zm9ybVJlc3VsdEhp
ZXJhcmNoeSkgewotICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIoJF8sICRwcm9sb2d1
ZSkgaWYgKHN0YXQoY2F0ZGlyKCRfLCAkcHJvbG9ndWUpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIEByZXN1bHQ7Ci19Ci0gICAgCi1zdWIgcGFyc2VMZWFrc2FuZFByaW50VW5pcXVl
TGVha3MoKQotewotICAgIHJldHVybiB1bmxlc3MgQGxlYWtzRmlsZW5hbWVzOwotICAgICAKLSAg
ICBteSAkbWVyZ2VkRmlsZW5hbWVzID0gam9pbiAiICIsIEBsZWFrc0ZpbGVuYW1lczsKLSAgICBt
eSAkcGFyc2VNYWxsb2NIaXN0b3J5VG9vbCA9IHNvdXJjZURpcigpIC4gIi9XZWJLaXRUb29scy9T
Y3JpcHRzL3BhcnNlLW1hbGxvYy1oaXN0b3J5IjsKLSAgICAKLSAgICBvcGVuIE1FUkdFRF9MRUFL
UywgImNhdCAkbWVyZ2VkRmlsZW5hbWVzIHwgJHBhcnNlTWFsbG9jSGlzdG9yeVRvb2wgLS1tZXJn
ZS1kZXB0aCAkbWVyZ2VEZXB0aCAgLSB8IiA7Ci0gICAgbXkgQGxlYWtMaW5lcyA9IDxNRVJHRURf
TEVBS1M+OwotICAgIGNsb3NlIE1FUkdFRF9MRUFLUzsKLSAgICAKLSAgICBteSAkdW5pcXVlTGVh
a0NvdW50ID0gMDsKLSAgICBteSAkdG90YWxCeXRlczsKLSAgICBmb3JlYWNoIG15ICRsaW5lIChA
bGVha0xpbmVzKSB7Ci0gICAgICAgICsrJHVuaXF1ZUxlYWtDb3VudCBpZiAoJGxpbmUgPX4gL14o
XGQqKVxzY2FsbHMvKTsKLSAgICAgICAgJHRvdGFsQnl0ZXMgPSAkMSBpZiAkbGluZSA9fiAvXnRv
dGFsXDpccyguKilcc1woLzsKLSAgICB9Ci0gICAgCi0gICAgcHJpbnQgIlxuV0FSTklORzogJHRv
dGFsTGVha3MgdG90YWwgbGVha3MgZm91bmQgZm9yIGEgdG90YWwgb2YgJHRvdGFsQnl0ZXMhXG4i
OwotICAgIHByaW50ICJXQVJOSU5HOiAkdW5pcXVlTGVha0NvdW50IHVuaXF1ZSBsZWFrcyBmb3Vu
ZCFcbiI7Ci0gICAgcHJpbnQgIlNlZSBhYm92ZSBmb3IgaW5kaXZpZHVhbCBsZWFrcyByZXN1bHRz
LlxuIiBpZiAoJGxlYWtzT3V0cHV0RmlsZU51bWJlciA+IDIpOwotICAgIAotfQotCi1zdWIgZXh0
ZW5zaW9uRm9yTWltZVR5cGUoJCkKLXsKLSAgICBteSAoJG1pbWVUeXBlKSA9IEBfOwotCi0gICAg
aWYgKCRtaW1lVHlwZSBlcSAiYXBwbGljYXRpb24veC13ZWJhcmNoaXZlIikgewotICAgICAgICBy
ZXR1cm4gIndlYmFyY2hpdmUiOwotICAgIH0gZWxzaWYgKCRtaW1lVHlwZSBlcSAiYXBwbGljYXRp
b24vcGRmIikgewotICAgICAgICByZXR1cm4gInBkZiI7Ci0gICAgfQotICAgIHJldHVybiAidHh0
IjsKLX0KLQotIyBSZWFkIHVwIHRvIHRoZSBmaXJzdCAjRU9GICh0aGUgY29udGVudCBibG9jayBv
ZiB0aGUgdGVzdCksIG9yIHVudGlsIGRldGVjdGluZyBjcmFzaGVzIG9yIHRpbWVvdXRzLgotc3Vi
IHJlYWRGcm9tRHVtcFRvb2xXaXRoVGltZXIoKiopCi17Ci0gICAgbXkgKCRmaEluLCAkZmhFcnJv
cikgPSBAXzsKLQotICAgIHNldEZpbGVIYW5kbGVOb25CbG9ja2luZygkZmhJbiwgMSk7Ci0gICAg
c2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEVycm9yLCAxKTsKLQotICAgIG15ICRtYXhpbXVt
U2Vjb25kc1dpdGhvdXRPdXRwdXQgPSAkdGltZW91dFNlY29uZHM7Ci0gICAgJG1heGltdW1TZWNv
bmRzV2l0aG91dE91dHB1dCAqPSAxMCBpZiAkZ3VhcmRNYWxsb2M7Ci0gICAgbXkgJG1pY3Jvc2Vj
b25kc1RvV2FpdEJlZm9yZVJlYWRpbmdBZ2FpbiA9IDEwMDA7Ci0KLSAgICBteSAkdGltZU9mTGFz
dFN1Y2Nlc3NmdWxSZWFkID0gdGltZTsKLQotICAgIG15IEBvdXRwdXQgPSAoKTsKLSAgICBteSBA
ZXJyb3IgPSAoKTsKLSAgICBteSAkc3RhdHVzID0gInN1Y2Nlc3MiOwotICAgIG15ICRtaW1lVHlw
ZSA9ICJ0ZXh0L3BsYWluIjsKLSAgICAjIFdlIGRvbid0IGhhdmUgYSB2ZXJ5IGdvb2Qgd2F5IHRv
IGtub3cgd2hlbiB0aGUgImhlYWRlcnMiIHN0b3AKLSAgICAjIGFuZCB0aGUgY29udGVudCBzdGFy
dHMsIHNvIHdlIHVzZSB0aGlzIGFzIGEgaGFjazoKLSAgICBteSAkaGF2ZVNlZW5Db250ZW50VHlw
ZSA9IDA7Ci0gICAgbXkgJGhhdmVTZWVuRW9mSW4gPSAwOwotICAgIG15ICRoYXZlU2VlbkVvZkVy
cm9yID0gMDsKLQotICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIGlmICh0aW1lIC0gJHRpbWVPZkxh
c3RTdWNjZXNzZnVsUmVhZCA+ICRtYXhpbXVtU2Vjb25kc1dpdGhvdXRPdXRwdXQpIHsKLSAgICAg
ICAgICAgICRzdGF0dXMgPSBkdW1wVG9vbERpZENyYXNoKCkgPyAiY3Jhc2hlZCIgOiAidGltZWRP
dXQiOwotICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotCi0gICAgICAgICMgT25jZSB3ZSd2
ZSBzZWVuIHRoZSBFT0YsIHdlIG11c3Qgbm90IHJlYWQgYW55bW9yZS4KLSAgICAgICAgbXkgJGxp
bmVJbiA9IHJlYWRsaW5lKCRmaEluKSB1bmxlc3MgJGhhdmVTZWVuRW9mSW47Ci0gICAgICAgIG15
ICRsaW5lRXJyb3IgPSByZWFkbGluZSgkZmhFcnJvcikgdW5sZXNzICRoYXZlU2VlbkVvZkVycm9y
OwotICAgICAgICBpZiAoIWRlZmluZWQoJGxpbmVJbikgJiYgIWRlZmluZWQoJGxpbmVFcnJvcikp
IHsKLSAgICAgICAgICAgIGxhc3QgaWYgKCRoYXZlU2VlbkVvZkluICYmICRoYXZlU2VlbkVvZkVy
cm9yKTsKLQotICAgICAgICAgICAgaWYgKCQhICE9IEVBR0FJTikgewotICAgICAgICAgICAgICAg
ICRzdGF0dXMgPSAiY3Jhc2hlZCI7Ci0gICAgICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgIyBObyBkYXRhIHJlYWR5Ci0gICAgICAgICAgICB1c2xlZXAoJG1p
Y3Jvc2Vjb25kc1RvV2FpdEJlZm9yZVJlYWRpbmdBZ2Fpbik7Ci0gICAgICAgICAgICBuZXh0Owot
ICAgICAgICB9Ci0KLSAgICAgICAgJHRpbWVPZkxhc3RTdWNjZXNzZnVsUmVhZCA9IHRpbWU7Ci0K
LSAgICAgICAgaWYgKGRlZmluZWQoJGxpbmVJbikpIHsKLSAgICAgICAgICAgIGlmICghJGhhdmVT
ZWVuQ29udGVudFR5cGUgJiYgJGxpbmVJbiA9fiAvXkNvbnRlbnQtVHlwZTogKFxTKykkLykgewot
ICAgICAgICAgICAgICAgICRtaW1lVHlwZSA9ICQxOwotICAgICAgICAgICAgICAgICRoYXZlU2Vl
bkNvbnRlbnRUeXBlID0gMTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRsaW5lSW4gPX4gLyNFT0Yv
KSB7Ci0gICAgICAgICAgICAgICAgJGhhdmVTZWVuRW9mSW4gPSAxOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoIEBvdXRwdXQsICRsaW5lSW47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRlZmluZWQoJGxpbmVFcnJvcikpIHsKLSAgICAg
ICAgICAgIGlmICgkbGluZUVycm9yID1+IC8jRU9GLykgewotICAgICAgICAgICAgICAgICRoYXZl
U2VlbkVvZkVycm9yID0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
cHVzaCBAZXJyb3IsICRsaW5lRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZoSW4sIDApOwotICAgIHNldEZpbGVI
YW5kbGVOb25CbG9ja2luZygkZmhFcnJvciwgMCk7Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgb3V0
cHV0ID0+IGpvaW4oIiIsIEBvdXRwdXQpLAotICAgICAgICBlcnJvciA9PiBqb2luKCIiLCBAZXJy
b3IpLAotICAgICAgICBzdGF0dXMgPT4gJHN0YXR1cywKLSAgICAgICAgbWltZVR5cGUgPT4gJG1p
bWVUeXBlLAotICAgICAgICBleHRlbnNpb24gPT4gZXh0ZW5zaW9uRm9yTWltZVR5cGUoJG1pbWVU
eXBlKQotICAgIH07Ci19Ci0KLXN1YiBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoKiQpCi17Ci0g
ICAgbXkgKCRmaCwgJG5vbkJsb2NraW5nKSA9IEBfOwotCi0gICAgbXkgJGZsYWdzID0gZmNudGwo
JGZoLCBGX0dFVEZMLCAwKSBvciBkaWUgIkNvdWxkbid0IGdldCBmaWxlaGFuZGxlIGZsYWdzIjsK
LQotICAgIGlmICgkbm9uQmxvY2tpbmcpIHsKLSAgICAgICAgJGZsYWdzIHw9IE9fTk9OQkxPQ0s7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgJGZsYWdzICY9IH5PX05PTkJMT0NLOwotICAgIH0KLQot
ICAgIGZjbnRsKCRmaCwgRl9TRVRGTCwgJGZsYWdzKSBvciBkaWUgIkNvdWxkbid0IHNldCBmaWxl
aGFuZGxlIGZsYWdzIjsKLQotICAgIHJldHVybiAxOwotfQotCi1zdWIgc2FtcGxlRHVtcFRvb2wo
KQotewotICAgIHJldHVybiB1bmxlc3MgaXNBcHBsZU1hY1dlYktpdCgpOwotICAgIHJldHVybiB1
bmxlc3MgJHJ1blNhbXBsZTsKLQotICAgIG15ICRvdXRwdXREaXJlY3RvcnkgPSAiJEVOVntIT01F
fS9MaWJyYXJ5L0xvZ3MvRHVtcFJlbmRlclRyZWUiOwotICAgIC1kICRvdXRwdXREaXJlY3Rvcnkg
b3IgbWtkaXIgJG91dHB1dERpcmVjdG9yeTsKLQotICAgIG15ICRvdXRwdXRGaWxlID0gIiRvdXRw
dXREaXJlY3RvcnkvSGFuZ1JlcG9ydC50eHQiOwotICAgIHN5c3RlbSAiL3Vzci9iaW4vc2FtcGxl
IiwgJGR1bXBUb29sUElELCBxdygxMCAxMCAtZmlsZSksICRvdXRwdXRGaWxlOwotfQotCi1zdWIg
c3RyaXBNZXRyaWNzKCQkKQotewotICAgIG15ICgkYWN0dWFsLCAkZXhwZWN0ZWQpID0gQF87Ci0K
LSAgICBmb3JlYWNoIG15ICRyZXN1bHQgKCRhY3R1YWwsICRleHBlY3RlZCkgewotICAgICAgICAk
cmVzdWx0ID1+IHMvYXQgXCgtP1swLTldKywtP1swLTldK1wpICovL2c7Ci0gICAgICAgICRyZXN1
bHQgPX4gcy9zaXplIC0/WzAtOV0reC0/WzAtOV0rICovL2c7Ci0gICAgICAgICRyZXN1bHQgPX4g
cy90ZXh0IHJ1biB3aWR0aCAtP1swLTldKzogLy9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvdGV4
dCBydW4gd2lkdGggLT9bMC05XSsgW2EtekEtWiBdKzogLy9nOwotICAgICAgICAkcmVzdWx0ID1+
IHMvUmVuZGVyQnV0dG9uIHtCVVRUT059IC4qL1JlbmRlckJ1dHRvbiB7QlVUVE9OfS9nOwotICAg
ICAgICAkcmVzdWx0ID1+IHMvUmVuZGVySW1hZ2Uge0lOUFVUfSAuKi9SZW5kZXJJbWFnZSB7SU5Q
VVR9L2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9SZW5kZXJCbG9jayB7SU5QVVR9IC4qL1JlbmRl
ckJsb2NrIHtJTlBVVH0vZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL1JlbmRlclRleHRDb250cm9s
IHtJTlBVVH0gLiovUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfS9nOwotICAgICAgICAkcmVzdWx0
ID1+IHMvXChbMC05XStweC9weC9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvICoiICpcbiArIiAq
LyAvZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzLyIgKyQvIi9nOwotCi0gICAgICAgICRyZXN1bHQg
PX4gcy8tIC8tL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9cbiggKikiXHMrL1xuJDEiL2c7Ci0g
ICAgICAgICRyZXN1bHQgPX4gcy9ccysiXG4vIlxuL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9z
Y3JvbGxXaWR0aCBbMC05XSsvc2Nyb2xsV2lkdGgvZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL3Nj
cm9sbEhlaWdodCBbMC05XSsvc2Nyb2xsSGVpZ2h0L2c7Ci0gICAgfQotCi0gICAgcmV0dXJuICgk
YWN0dWFsLCAkZXhwZWN0ZWQpOwotfQotCi1zdWIgZmlsZVNob3VsZEJlSWdub3JlZAotewotICAg
IG15ICgkZmlsZVBhdGgpID0gQF87Ci0gICAgZm9yZWFjaCBteSAkaWdub3JlZERpciAoa2V5cyAl
aWdub3JlZERpcmVjdG9yaWVzKSB7Ci0gICAgICAgIGlmICgkZmlsZVBhdGggPX4gbS9eJGlnbm9y
ZWREaXIvKSB7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gMDsKLX0KLQotc3ViIHJlYWRTa2lwcGVkRmlsZXMoJCkKLXsKLSAgICBteSAoJGNvbnN0
cmFpbnRQYXRoKSA9IEBfOwotCi0gICAgZm9yZWFjaCBteSAkbGV2ZWwgKEBwbGF0Zm9ybVRlc3RI
aWVyYXJjaHkpIHsKLSAgICAgICAgaWYgKG9wZW4gU0tJUFBFRCwgIjwiLCAiJGxldmVsL1NraXBw
ZWQiKSB7Ci0gICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBteSAo
JGRpciwgJG5hbWUpID0gc3BsaXRwYXRoKCRsZXZlbCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQg
IlNraXBwZWQgdGVzdHMgaW4gJG5hbWU6XG4iOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICB3aGlsZSAoPFNLSVBQRUQ+KSB7Ci0gICAgICAgICAgICAgICAgbXkgJHNraXBwZWQgPSAkXzsK
LSAgICAgICAgICAgICAgICBjaG9tcCAkc2tpcHBlZDsKLSAgICAgICAgICAgICAgICAkc2tpcHBl
ZCA9fiBzL15bIFxuXHJdKy8vOwotICAgICAgICAgICAgICAgICRza2lwcGVkID1+IHMvWyBcblxy
XSskLy87Ci0gICAgICAgICAgICAgICAgaWYgKCRza2lwcGVkICYmICRza2lwcGVkICF+IC9eIy8p
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRza2lwcGVkT25seSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFmaWxlU2hvdWxkQmVJZ25vcmVkKCRza2lwcGVkKSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghJGNvbnN0cmFpbnRQYXRoKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgQWx3YXlzIGFkZCAkc2tpcHBlZCBzaW5jZSBubyBjb25z
dHJhaW50IHBhdGggd2FzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tpcHBlZCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHNraXBwZWQgPX4gL14oJGNvbnN0cmFpbnRQYXRo
KS8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBZGQgJHNraXBwZWQgb25s
eSBpZiBpdCBtYXRjaGVzIHRoZSBjdXJyZW50IHBhdGggY29uc3RyYWludCwgZS5nLiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiLS1za2lwcGVkPW9ubHkgZGlyMSIgd2l0aCAi
ZGlyMS9maWxlMS5odG1sIiBvbiB0aGUgc2tpcHBlZCBsaXN0LgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tpcHBlZCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoJGNvbnN0cmFpbnRQYXRoID1+IC9eKCRza2lwcGVkKS8pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBZGQgY3VycmVudCBwYXRoIGNvbnN0cmFp
bnQgaWYgaXQgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBza2lwIGxpc3QgZW50cnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZS5nLiwgIi0tc2tpcHBlZD1vbmx5IGRpcjEv
ZGlyMi9kaXIzIiB3aXRoICJkaXIxIiBvbiB0aGUgc2tpcHBlZCBsaXN0LgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkY29uc3RyYWludFBhdGgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tp
cHBlZFxuIjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdmVyYm9zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ICIgICAgJHNraXBwZWRcbiI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzSWdub3JlVGVz
dHMoJHNraXBwZWQsICJTa2lwcGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZSBTS0lQUEVEOwotICAg
ICAgICB9Ci0gICAgfQotfQotCi1teSBAdGVzdHNGb3VuZDsKLQotc3ViIGRpcmVjdG9yeUZpbHRl
cgotewotICAgIHJldHVybiAoKSBpZiBleGlzdHMgJGlnbm9yZWRMb2NhbERpcmVjdG9yaWVze2Jh
c2VuYW1lKCRGaWxlOjpGaW5kOjpkaXIpfTsKLSAgICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25v
cmVkRGlyZWN0b3JpZXN7RmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6ZGlyLCAkdGVz
dERpcmVjdG9yeSl9OwotICAgIHJldHVybiBAXzsKLX0KLQotc3ViIGZpbGVGaWx0ZXIKLXsKLSAg
ICBteSAkZmlsZW5hbWUgPSAkXzsKLSAgICBpZiAoJGZpbGVuYW1lID1+IC9cLihbXi5dKykkLykg
ewotICAgICAgICBpZiAoZXhpc3RzICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3skMX0pIHsKLSAg
ICAgICAgICAgIG15ICRwYXRoID0gRmlsZTo6U3BlYy0+YWJzMnJlbChjYXRmaWxlKCRGaWxlOjpG
aW5kOjpkaXIsICRmaWxlbmFtZSksICR0ZXN0RGlyZWN0b3J5KTsKLSAgICAgICAgICAgIHB1c2gg
QHRlc3RzRm91bmQsICRwYXRoIGlmICFleGlzdHMgJGlnbm9yZWRGaWxlc3skcGF0aH07Ci0gICAg
ICAgIH0KLSAgICB9Ci19Ci0KLXN1YiBmaW5kVGVzdHNUb1J1bgotewotICAgIG15IEB0ZXN0c1Rv
UnVuID0gKCk7Ci0KLSAgICBmb3IgbXkgJHRlc3QgKEBBUkdWKSB7Ci0gICAgICAgICR0ZXN0ID1+
IHMvXigkbGF5b3V0VGVzdHNOYW1lfCR0ZXN0RGlyZWN0b3J5KVwvLy87Ci0gICAgICAgIG15ICRm
dWxsUGF0aCA9IGNhdGZpbGUoJHRlc3REaXJlY3RvcnksICR0ZXN0KTsKLSAgICAgICAgaWYgKGZp
bGVfbmFtZV9pc19hYnNvbHV0ZSgkdGVzdCkpIHsKLSAgICAgICAgICAgIHByaW50ICJjYW4ndCBy
dW4gdGVzdCAkdGVzdCBvdXRzaWRlICR0ZXN0RGlyZWN0b3J5XG4iOwotICAgICAgICB9IGVsc2lm
ICgtZiAkZnVsbFBhdGgpIHsKLSAgICAgICAgICAgIG15ICgkZmlsZW5hbWUsICRwYXRobmFtZSwg
JGZpbGVFeHRlbnNpb24pID0gZmlsZXBhcnNlKCR0ZXN0LCBxcntcLlteLl0rJH0pOwotICAgICAg
ICAgICAgaWYgKCFleGlzdHMgJHN1cHBvcnRlZEZpbGVFeHRlbnNpb25ze3N1YnN0cigkZmlsZUV4
dGVuc2lvbiwgMSl9KSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQgInRlc3QgJHRlc3QgZG9lcyBu
b3QgaGF2ZSBhIHN1cHBvcnRlZCBleHRlbnNpb25cbiI7Ci0gICAgICAgICAgICB9IGVsc2lmICgk
dGVzdEhUVFAgfHwgJHBhdGhuYW1lICF+IC9eaHR0cFwvLykgewotICAgICAgICAgICAgICAgIHB1
c2ggQHRlc3RzVG9SdW4sICR0ZXN0OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgt
ZCAkZnVsbFBhdGgpIHsKLSAgICAgICAgICAgIEB0ZXN0c0ZvdW5kID0gKCk7Ci0gICAgICAgICAg
ICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmls
ZUZpbHRlciB9LCAkZnVsbFBhdGgpOwotICAgICAgICAgICAgZm9yIG15ICRsZXZlbCAoQHBsYXRm
b3JtVGVzdEhpZXJhcmNoeSkgewotICAgICAgICAgICAgICAgIG15ICRwbGF0Zm9ybVBhdGggPSBj
YXRmaWxlKCRsZXZlbCwgJHRlc3QpOwotICAgICAgICAgICAgICAgIGZpbmQoeyBwcmVwcm9jZXNz
ID0+IFwmZGlyZWN0b3J5RmlsdGVyLCB3YW50ZWQgPT4gXCZmaWxlRmlsdGVyIH0sICRwbGF0Zm9y
bVBhdGgpIGlmICgtZCAkcGxhdGZvcm1QYXRoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0aGNtcCBAdGVzdHNGb3VuZDsKLSAgICAgICAgICAg
IEB0ZXN0c0ZvdW5kID0gKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCAi
dGVzdCAkdGVzdCBub3QgZm91bmRcbiI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIXNj
YWxhciBAQVJHVikgewotICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOwotICAgICAgICBmaW5kKHsg
cHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9
LCAkdGVzdERpcmVjdG9yeSk7Ci0gICAgICAgIGZvciBteSAkbGV2ZWwgKEBwbGF0Zm9ybVRlc3RI
aWVyYXJjaHkpIHsKLSAgICAgICAgICAgIGZpbmQoeyBwcmVwcm9jZXNzID0+IFwmZGlyZWN0b3J5
RmlsdGVyLCB3YW50ZWQgPT4gXCZmaWxlRmlsdGVyIH0sICRsZXZlbCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcHVzaCBAdGVzdHNUb1J1biwgc29ydCBwYXRoY21wIEB0ZXN0c0ZvdW5kOwotICAgICAg
ICBAdGVzdHNGb3VuZCA9ICgpOwotCi0gICAgICAgICMgV2UgbmVlZCB0byBtaW5pbWl6ZSB0aGUg
dGltZSB3aGVuIEFwYWNoZSBhbmQgV2ViU29ja2V0U2VydmVyIGlzIGxvY2tlZCBieSB0ZXN0cwot
ICAgICAgICAjIHNvIHJ1biB0aGVtIGxhc3QgaWYgbm8gZXhwbGljaXQgb3JkZXIgd2FzIHNwZWNp
ZmllZCBpbiB0aGUgYXJndW1lbnQgbGlzdC4KLSAgICAgICAgbXkgQGh0dHBUZXN0czsKLSAgICAg
ICAgbXkgQHdlYnNvY2tldFRlc3RzOwotICAgICAgICBteSBAb3RoZXJUZXN0czsKLSAgICAgICAg
Zm9yZWFjaCBteSAkdGVzdCAoQHRlc3RzVG9SdW4pIHsKLSAgICAgICAgICAgIGlmICgkdGVzdCA9
fiAvXmh0dHBcLy8pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBodHRwVGVzdHMsICR0ZXN0KTsK
LSAgICAgICAgICAgIH0gZWxzaWYgKCR0ZXN0ID1+IC9ed2Vic29ja2V0XC8vKSB7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAd2Vic29ja2V0VGVzdHMsICR0ZXN0KTsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAb3RoZXJUZXN0cywgJHRlc3QpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIEB0ZXN0c1RvUnVuID0gKEBvdGhlclRlc3RzLCBAaHR0
cFRlc3RzLCBAd2Vic29ja2V0VGVzdHMpOwotICAgIH0KLQotICAgICMgUmV2ZXJzZSB0aGUgdGVz
dHMKLSAgICBAdGVzdHNUb1J1biA9IHJldmVyc2UgQHRlc3RzVG9SdW4gaWYgJHJldmVyc2VUZXN0
czsKLQotICAgICMgU2h1ZmZsZSB0aGUgYXJyYXkKLSAgICBAdGVzdHNUb1J1biA9IHNodWZmbGUo
QHRlc3RzVG9SdW4pIGlmICRyYW5kb21pemVUZXN0czsKLQotICAgIHJldHVybiBAdGVzdHNUb1J1
bjsKLX0KLQotc3ViIHByaW50UmVzdWx0cwotewotICAgIG15ICV0ZXh0ID0gKAotICAgICAgICBt
YXRjaCA9PiAic3VjY2VlZGVkIiwKLSAgICAgICAgbWlzbWF0Y2ggPT4gImhhZCBpbmNvcnJlY3Qg
bGF5b3V0IiwKLSAgICAgICAgbmV3ID0+ICJ3ZXJlIG5ldyIsCi0gICAgICAgIHRpbWVkb3V0ID0+
ICJ0aW1lZCBvdXQiLAotICAgICAgICBjcmFzaCA9PiAiY3Jhc2hlZCIsCi0gICAgICAgIGVycm9y
ID0+ICJoYWQgc3RkZXJyIG91dHB1dCIKLSAgICApOwotCi0gICAgZm9yIG15ICR0eXBlICgibWF0
Y2giLCAibWlzbWF0Y2giLCAibmV3IiwgInRpbWVkb3V0IiwgImNyYXNoIiwgImVycm9yIikgewot
ICAgICAgICBteSAkdHlwZUNvdW50ID0gJGNvdW50c3skdHlwZX07Ci0gICAgICAgIG5leHQgdW5s
ZXNzICR0eXBlQ291bnQ7Ci0gICAgICAgIG15ICR0eXBlVGV4dCA9ICR0ZXh0eyR0eXBlfTsKLSAg
ICAgICAgbXkgJG1lc3NhZ2U7Ci0gICAgICAgIGlmICgkdHlwZUNvdW50ID09IDEpIHsKLSAgICAg
ICAgICAgICR0eXBlVGV4dCA9fiBzL3dlcmUvd2FzLzsKLSAgICAgICAgICAgICRtZXNzYWdlID0g
c3ByaW50ZiAiMSB0ZXN0IGNhc2UgKCVkJSUpICVzXG4iLCAxICogMTAwIC8gJGNvdW50LCAkdHlw
ZVRleHQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkbWVzc2FnZSA9IHNwcmludGYg
IiVkIHRlc3QgY2FzZXMgKCVkJSUpICVzXG4iLCAkdHlwZUNvdW50LCAkdHlwZUNvdW50ICogMTAw
IC8gJGNvdW50LCAkdHlwZVRleHQ7Ci0gICAgICAgIH0KLSAgICAgICAgJG1lc3NhZ2UgPX4gcy1c
KDAlXCktKDwxJSktOwotICAgICAgICBwcmludCAkbWVzc2FnZTsKLSAgICB9Ci19CitteSAkaGFy
bmVzc05hbWUgPSAicnVuLXdlYmtpdC10ZXN0cyI7CitleGVjKCRoYXJuZXNzTmFtZSwgQEFSR1Yp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53413</attachid>
            <date>2010-04-14 22:50:34 -0700</date>
            <delta_ts>2010-04-16 14:58:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37632-20100414225030.patch</filename>
            <type>text/plain</type>
            <size>173604</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjOWI2YjFkLi5lZjBmMzM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDQt
MTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGxheWVyIG9mIGluZGlyZWN0aW9uIHdo
ZW4gY2FsbGluZyBydW4td2Via2l0LXRlc3RzIHRvCisgICAgICAgIGFsbG93IHRlc3RpbmcgbmV3
LXJ1bi13ZWJraXQtdGVzdHMgb24gdmFyaW91cyBwbGF0Zm9ybXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzYzMgorCisgICAgICAgIFRoaXMgd2ls
bCBsZXQgdXMgdGVzdCBhbmQgZml4IGJ1Z3MgaW4gbmV3LXJ1bi13ZWJraXQtdGVzdHMKKyAgICAg
ICAgd2l0aG91dCBuZWVkaW5nIHRvIHJlc3RhcnQgdGhlIGJ1aWxkYm90IG1hc3RlciBiZXR3ZWVu
IHRlc3RzLgorCisgICAgICAgIFRoaXMgYWxzbyB0dXJucyBvbiBuZXctcnVuLXdlYmtpdC10ZXN0
cyBmb3IgdGhlIFNub3cgTGVvcGFyZCBib3RzLgorICAgICAgICBXZSdsbCB0dXJuIGl0IG9mZiBh
Z2FpbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZy4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1
bi13ZWJraXQtdGVzdHM6IENvcGllZCBmcm9tIFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtp
dC10ZXN0cy4KKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJraXQtdGVzdHM6CisgICAgICAgICAt
IEEgbmV3IHNjcmlwdCB3aGljaCBkZWNpZGVzIHdoZXRoZXIgdG8gcnVuIG5ldy0gb3Igb2xkLQor
ICAgICAgICAgICBydW4td2Via2l0LXRlc3RzIGJhc2VkIG9uIHRoZSBwbGF0Zm9ybS4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Ogor
ICAgICAgICAgLSBBZGQgc29tZSBkdW1teSBhcmd1bWVudCBoYW5kbGluZyBmb3IgYXJndW1lbnRz
IHdoaWNoCisgICAgICAgICAgIG9sZC1ydW4td2Via2l0LXRlc3RzIHN1cHBvcnRzIGJ1dCBuZXct
cnVuLXdlYmtpdC10ZXN0cworICAgICAgICAgICBkb2VzIG5vdCB5ZXQuCisKIDIwMTAtMDQtMTQg
IEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL29sZC1ydW4td2Via2l0LXRlc3RzIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdl
YmtpdC10ZXN0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYWI2MjZhCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0
cwpAQCAtMCwwICsxLDIyNjggQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5j
b20pCisjIENvcHlyaWdodCAoQykgMjAwNyBNYXR0IExpbGVrIChwZXd0ZXJtb29zZUBnbWFpbC5j
b20pCisjIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgor
IyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA5IEFuZHJhcyBCZWNzaSAoYmVjc2kuYW5kcmFzQHN0dWQudS1zemVn
ZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMgMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjIFNjcmlwdCB0byBydW4gdGhlIFdlYktpdCBPcGVuIFNvdXJjZSBQcm9qZWN0IGxheW91dCB0
ZXN0cy4KKworIyBSdW4gYWxsIHRoZSB0ZXN0cyBwYXNzZWQgaW4gb24gdGhlIGNvbW1hbmQgbGlu
ZS4KKyMgSWYgbm8gdGVzdHMgYXJlIHBhc3NlZCwgZmluZCBhbGwgdGhlIC5odG1sLCAuc2h0bWws
IC54bWwsIC54aHRtbCwgLnhodG1sbXAsIC5wbCwgLnBocCAoYW5kIHN2ZykgZmlsZXMgaW4gdGhl
IHRlc3QgZGlyZWN0b3J5LgorCisjIFJ1biBlYWNoIHRleHQuCisjIENvbXBhcmUgYWdhaW5zdCB0
aGUgZXhpc3RpbmcgZmlsZSB4eHgtZXhwZWN0ZWQudHh0LgorIyBJZiB0aGVyZSBpcyBhIG1pc21h
dGNoLCBnZW5lcmF0ZSB4eHgtYWN0dWFsLnR4dCBhbmQgeHh4LWRpZmZzLnR4dC4KKworIyBBdCB0
aGUgZW5kLCByZXBvcnQ6CisjICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IGdvdCB0aGUgZXhw
ZWN0ZWQgcmVzdWx0cworIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCByYW4sIGJ1dCBkaWQg
bm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0cworIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhh
dCBmYWlsZWQgdG8gcnVuCisjICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IHdlcmUgcnVuIGJ1
dCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyB0byBjb21wYXJlIGFnYWluc3QKKwordXNlIHN0cmlj
dDsKK3VzZSB3YXJuaW5nczsKKwordXNlIEN3ZDsKK3VzZSBEYXRhOjpEdW1wZXI7Cit1c2UgRmNu
dGwgcXcoRl9HRVRGTCBGX1NFVEZMIE9fTk9OQkxPQ0spOwordXNlIEZpbGU6OkJhc2VuYW1lOwor
dXNlIEZpbGU6OkNvcHk7Cit1c2UgRmlsZTo6RmluZDsKK3VzZSBGaWxlOjpQYXRoOwordXNlIEZp
bGU6OlNwZWM7Cit1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwordXNlIEZpbGU6OlRlbXA7Cit1
c2UgRmluZEJpbjsKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2UgSVBDOjpPcGVuMjsKK3VzZSBJUEM6
Ok9wZW4zOwordXNlIFRpbWU6OkhpUmVzIHF3KHRpbWUgdXNsZWVwKTsKKwordXNlIExpc3Q6OlV0
aWwgJ3NodWZmbGUnOworCit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0cGVybDo6
ZmVhdHVyZXM7Cit1c2Ugd2Via2l0cGVybDo6aHR0cGQ7Cit1c2Ugd2Via2l0ZGlyczsKK3VzZSBW
Q1NVdGlsczsKK3VzZSBQT1NJWDsKKworc3ViIGJ1aWxkUGxhdGZvcm1SZXN1bHRIaWVyYXJjaHko
KTsKK3N1YiBidWlsZFBsYXRmb3JtVGVzdEhpZXJhcmNoeShAKTsKK3N1YiBjbG9zZUN5Z3BhdGhz
KCk7CitzdWIgY2xvc2VEdW1wVG9vbCgpOworc3ViIGNsb3NlV2ViU29ja2V0U2VydmVyKCk7Citz
dWIgY29uZmlndXJlQW5kT3BlbkhUVFBESWZOZWVkZWQoKTsKK3N1YiBjb3VudEFuZFByaW50TGVh
a3MoJCQkKTsKK3N1YiBjb3VudEZpbmlzaGVkVGVzdCgkJCQkKTsKK3N1YiBkZWxldGVFeHBlY3Rl
ZEFuZEFjdHVhbFJlc3VsdHMoJCk7CitzdWIgZHVtcFRvb2xEaWRDcmFzaCgpOworc3ViIGVwaWxv
Z3Vlc0FuZFByb2xvZ3VlcygkJCk7CitzdWIgZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCQ7JDsk
KTsKK3N1YiBmaWxlTmFtZVdpdGhOdW1iZXIoJCQpOworc3ViIGh0bWxGb3JSZXN1bHRzU2VjdGlv
bihcQCQmKTsKK3N1YiBpc1RleHRPbmx5VGVzdCgkKTsKK3N1YiBsYXVuY2hXaXRoRW52KFxAXCUp
Oworc3ViIHJlc29sdmVBbmRNYWtlVGVzdFJlc3VsdHNEaXJlY3RvcnkoKTsKK3N1YiBudW1lcmlj
Y21wKCQkKTsKK3N1YiBvcGVuRGlmZlRvb2woKTsKK3N1YiBvcGVuRHVtcFRvb2woKTsKK3N1YiBw
YXJzZUxlYWtzYW5kUHJpbnRVbmlxdWVMZWFrcygpOworc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXJJ
Zk5lZWRlZCgpOworc3ViIHBhdGhjbXAoJCQpOworc3ViIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JU
ZXN0KCQkKTsKK3N1YiBwcm9jZXNzSWdub3JlVGVzdHMoJCQpOworc3ViIHJlYWRGcm9tRHVtcFRv
b2xXaXRoVGltZXIoKiopOworc3ViIHJlYWRTa2lwcGVkRmlsZXMoJCk7CitzdWIgcmVjb3JkQWN0
dWFsUmVzdWx0c0FuZERpZmYoJCQpOworc3ViIHNhbXBsZUR1bXBUb29sKCk7CitzdWIgc2V0Rmls
ZUhhbmRsZU5vbkJsb2NraW5nKCokKTsKK3N1YiBzbG93ZXN0Y21wKCQkKTsKK3N1YiBzcGxpdHBh
dGgoJCk7CitzdWIgc3RyaXBFeHRlbnNpb24oJCk7CitzdWIgc3RyaXBNZXRyaWNzKCQkKTsKK3N1
YiB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJCQkJCQpOworc3ViIHRvVVJMKCQpOworc3ViIHRvV2lu
ZG93c1BhdGgoJCk7CitzdWIgdmFsaWRhdGVTa2lwcGVkQXJnKCQkOyQpOworc3ViIHdyaXRlVG9G
aWxlKCQkKTsKKworIyBBcmd1bWVudCBoYW5kbGluZworbXkgJGFkZFBsYXRmb3JtRXhjZXB0aW9u
cyA9IDA7CitteSAkY29tcGxleFRleHQgPSAwOworbXkgJGV4aXRBZnRlck5GYWlsdXJlcyA9IDA7
CitteSAkZ2VuZXJhdGVOZXdSZXN1bHRzID0gaXNBcHBsZU1hY1dlYktpdCgpID8gMSA6IDA7Citt
eSAkZ3VhcmRNYWxsb2MgPSAnJzsKKyMgRklYTUU6IER5bmFtaWMgSFRUUC1wb3J0IGNvbmZpZ3Vy
YXRpb24gaW4gdGhpcyBmaWxlIGlzIHdyb25nLiAgVGhlIHZhcmlvdXMKKyMgYXBhY2hlIGNvbmZp
ZyBmaWxlcyBpbiBMYXlvdXRUZXN0cy9odHRwL2NvbmZpZyBnb3Zlcm4gdGhlIHBvcnQgbnVtYmVy
cy4KKyMgRHluYW1pYyBjb25maWd1cmF0aW9uIGFzLXdyaXR0ZW4gd2lsbCBhbHNvIGNhdXNlIHJh
bmRvbSBmYWlsdXJlcyBpbgorIyBhbiBJUHY2IGVudmlyb25tZW50LiAgU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEwNC4KK215ICRodHRwZFBvcnQgPSA4MDAw
OworbXkgJGh0dHBkU1NMUG9ydCA9IDg0NDM7CitteSAkaWdub3JlTWV0cmljcyA9IDA7CitteSAk
d2ViU29ja2V0UG9ydCA9IDg4ODA7CisjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZv
cm1zIHN1cHBvcnQgcHlPcGVuU1NMLgorIyBteSAkd2ViU29ja2V0U2VjdXJlUG9ydCA9IDkzMjM7
CitteSAkaWdub3JlVGVzdHMgPSAnJzsKK215ICRpdGVyYXRpb25zID0gMTsKK215ICRsYXVuY2hT
YWZhcmkgPSAxOworbXkgJG1lcmdlRGVwdGg7CitteSAkcGl4ZWxUZXN0cyA9ICcnOworbXkgJHBs
YXRmb3JtOworbXkgJHF1aWV0ID0gJyc7CitteSAkcmFuZG9taXplVGVzdHMgPSAwOworbXkgJHJl
cGVhdEVhY2ggPSAxOworbXkgJHJlcG9ydDEwU2xvd2VzdCA9IDA7CitteSAkcmVzZXRSZXN1bHRz
ID0gMDsKK215ICRyZXZlcnNlVGVzdHMgPSAwOworbXkgJHJvb3Q7CitteSAkcnVuU2FtcGxlID0g
MTsKK215ICRzaG91bGRDaGVja0xlYWtzID0gMDsKK215ICRzaG93SGVscCA9IDA7CitteSAkc3Ry
aXBFZGl0aW5nQ2FsbGJhY2tzID0gaXNDeWd3aW4oKTsKK215ICR0ZXN0SFRUUCA9IDE7CitteSAk
dGVzdE1lZGlhID0gMTsKK215ICR0bXBEaXIgPSAiL3RtcCI7CitteSAkdGVzdFJlc3VsdHNEaXJl
Y3RvcnkgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBEaXIsICJsYXlvdXQtdGVzdC1yZXN1bHRz
Iik7CitteSAkdGVzdHNQZXJEdW1wVG9vbCA9IDEwMDA7CitteSAkdGhyZWFkZWQgPSAwOworIyBE
dW1wUmVuZGVyVHJlZSBoYXMgYW4gaW50ZXJuYWwgdGltZW91dCBvZiAzMCBzZWNvbmRzLCBzbyB0
aGlzIG11c3QgYmUgPiAzMC4KK215ICR0aW1lb3V0U2Vjb25kcyA9IDM1OworbXkgJHRvbGVyYW5j
ZSA9IDA7CitteSAkdHJlYXRTa2lwcGVkID0gImRlZmF1bHQiOworbXkgJHVzZVJlbW90ZUxpbmtz
VG9UZXN0cyA9IDA7CitteSAkdXNlVmFsZ3JpbmQgPSAwOworbXkgJHZlcmJvc2UgPSAwOworbXkg
JHNob3VsZFdhaXRGb3JIVFRQRCA9IDA7CisKK215IEBsZWFrc0ZpbGVuYW1lczsKKworaWYgKGlz
V2luZG93cygpIHx8IGlzTXN5cygpKSB7CisgICAgcHJpbnQgIlRoaXMgc2NyaXB0IGhhcyB0byBi
ZSBydW4gdW5kZXIgQ3lnd2luIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS5cbiI7CisgICAgZXhpdCAx
OworfQorCisjIERlZmF1bHQgdG8gLS1uby1odHRwIGZvciB3eCBmb3Igbm93LgorJHRlc3RIVFRQ
ID0gMCBpZiAoaXNXeCgpKTsKKworbXkgJGV4cGVjdGVkVGFnID0gImV4cGVjdGVkIjsKK215ICRh
Y3R1YWxUYWcgPSAiYWN0dWFsIjsKK215ICRwcmV0dHlEaWZmVGFnID0gInByZXR0eS1kaWZmIjsK
K215ICRkaWZmc1RhZyA9ICJkaWZmcyI7CitteSAkZXJyb3JUYWcgPSAic3RkZXJyIjsKKworbXkg
QG1hY1BsYXRmb3JtcyA9ICgibWFjLXRpZ2VyIiwgIm1hYy1sZW9wYXJkIiwgIm1hYy1zbm93bGVv
cGFyZCIsICJtYWMiKTsKKworaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgeworICAgIGlmIChpc1Rp
Z2VyKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gIm1hYy10aWdlciI7CisgICAgICAgICR0b2xl
cmFuY2UgPSAxLjA7CisgICAgfSBlbHNpZiAoaXNMZW9wYXJkKCkpIHsKKyAgICAgICAgJHBsYXRm
b3JtID0gIm1hYy1sZW9wYXJkIjsKKyAgICAgICAgJHRvbGVyYW5jZSA9IDAuMTsKKyAgICB9IGVs
c2lmIChpc1Nub3dMZW9wYXJkKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gIm1hYy1zbm93bGVv
cGFyZCI7CisgICAgICAgICR0b2xlcmFuY2UgPSAwLjE7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
JHBsYXRmb3JtID0gIm1hYyI7CisgICAgfQorfSBlbHNpZiAoaXNRdCgpKSB7CisgICAgaWYgKGlz
RGFyd2luKCkpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gInF0LW1hYyI7CisgICAgfSBlbHNpZiAo
aXNMaW51eCgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICJxdC1saW51eCI7CisgICAgfSBlbHNp
ZiAoaXNXaW5kb3dzKCkgfHwgaXNDeWd3aW4oKSkgeworICAgICAgICAkcGxhdGZvcm0gPSAicXQt
d2luIjsKKyAgICB9IGVsc2UgeworICAgICAgICAkcGxhdGZvcm0gPSAicXQiOworICAgIH0KK30g
ZWxzaWYgKGlzR3RrKCkpIHsKKyAgICAkcGxhdGZvcm0gPSAiZ3RrIjsKKyAgICBpZiAoISRFTlZ7
IldFQktJVF9URVNURk9OVFMifSkgeworICAgICAgICBwcmludCAiVGhlIFdFQktJVF9URVNURk9O
VFMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGRlZmluZWQuXG4iOworICAgICAgICBwcmlu
dCAiWW91IG11c3Qgc2V0IGl0IGJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0cy5cbiI7CisgICAgICAg
IHByaW50ICJVc2UgZ2l0IHRvIGdyYWIgdGhlIGFjdHVhbCBmb250cyBmcm9tIGh0dHA6Ly9naXRv
cmlvdXMub3JnL3F0d2Via2l0L3Rlc3Rmb250c1xuIjsKKyAgICAgICAgZXhpdCAxOworICAgIH0K
K30gZWxzaWYgKGlzV3goKSkgeworICAgICRwbGF0Zm9ybSA9ICJ3eCI7Cit9IGVsc2lmIChpc0N5
Z3dpbigpKSB7CisgICAgJHBsYXRmb3JtID0gIndpbiI7Cit9CisKK2lmICghZGVmaW5lZCgkcGxh
dGZvcm0pKSB7CisgICAgcHJpbnQgIldBUk5JTkc6IFlvdXIgcGxhdGZvcm0gaXMgbm90IHJlY29n
bml6ZWQuIEFueSBwbGF0Zm9ybS1zcGVjaWZpYyByZXN1bHRzIHdpbGwgYmUgZ2VuZXJhdGVkIGlu
IHBsYXRmb3JtL3VuZGVmaW5lZC5cbiI7CisgICAgJHBsYXRmb3JtID0gInVuZGVmaW5lZCI7Cit9
CisKK215ICRwcm9ncmFtTmFtZSA9IGJhc2VuYW1lKCQwKTsKK215ICRsYXVuY2hTYWZhcmlEZWZh
dWx0ID0gJGxhdW5jaFNhZmFyaSA/ICJsYXVuY2giIDogImRvIG5vdCBsYXVuY2giOworbXkgJGh0
dHBEZWZhdWx0ID0gJHRlc3RIVFRQID8gInJ1biIgOiAiZG8gbm90IHJ1biI7CitteSAkc2FtcGxl
RGVmYXVsdCA9ICRydW5TYW1wbGUgPyAicnVuIiA6ICJkbyBub3QgcnVuIjsKKworbXkgJHVzYWdl
ID0gPDxFT0Y7CitVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbdGVzdGRpcnx0ZXN0cGF0
aCAuLi5dCisgIC0tYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMgICAgICAgUHV0IG5ldyByZXN1bHRz
IGZvciBub24tcGxhdGZvcm0tc3BlY2lmaWMgZmFpbGluZyB0ZXN0cyBpbnRvIHRoZSBwbGF0Zm9y
bS1zcGVjaWZpYyByZXN1bHRzIGRpcmVjdG9yeQorICAtLWNvbXBsZXgtdGV4dCAgICAgICAgICAg
ICAgICAgIFVzZSB0aGUgY29tcGxleCB0ZXh0IGNvZGUgcGF0aCBmb3IgYWxsIHRleHQgKE1hYyBP
UyBYIGFuZCBXaW5kb3dzIG9ubHkpCisgIC1jfC0tY29uZmlndXJhdGlvbiBjb25maWcgICAgICAg
U2V0IER1bXBSZW5kZXJUcmVlIGJ1aWxkIGNvbmZpZ3VyYXRpb24KKyAgLWd8LS1ndWFyZC1tYWxs
b2MgICAgICAgICAgICAgICBFbmFibGUgbWFsbG9jIGd1YXJkCisgIC0tZXhpdC1hZnRlci1uLWZh
aWx1cmVzIE4gICAgICAgRXhpdCBhZnRlciB0aGUgZmlyc3QgTiBmYWlsdXJlcyBpbnN0ZWFkIG9m
IHJ1bm5pbmcgYWxsIHRlc3RzCisgIC1ofC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgU2hv
dyB0aGlzIGhlbHAgbWVzc2FnZQorICAtLVtuby1daHR0cCAgICAgICAgICAgICAgICAgICAgIFJ1
biAob3IgZG8gbm90IHJ1bikgaHR0cCB0ZXN0cyAoZGVmYXVsdDogJGh0dHBEZWZhdWx0KQorICAt
LVtuby1dd2FpdC1mb3ItaHR0cGQgICAgICAgICAgIFdhaXQgZm9yIGh0dHBkIGlmIHNvbWUgb3Ro
ZXIgdGVzdCBzZXNzaW9uIGlzIHVzaW5nIGl0IGFscmVhZHkgKHNhbWUgYXMgV0VCS0lUX1dBSVRf
Rk9SX0hUVFBEPTEpLiAoZGVmYXVsdDogJHNob3VsZFdhaXRGb3JIVFRQRCkgCisgIC1pfC0taWdu
b3JlLXRlc3RzICAgICAgICAgICAgICAgQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3Jp
ZXMgb3IgdGVzdHMgdG8gaWdub3JlCisgIC0taXRlcmF0aW9ucyBuICAgICAgICAgICAgICAgICAg
TnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgc2V0IG9mIHRlc3RzIChlLmcuIEFCQ0FCQ0FCQykK
KyAgLS1bbm8tXWxhdW5jaC1zYWZhcmkgICAgICAgICAgICBMYXVuY2ggKG9yIGRvIG5vdCBsYXVu
Y2gpIFNhZmFyaSB0byBkaXNwbGF5IHRlc3QgcmVzdWx0cyAoZGVmYXVsdDogJGxhdW5jaFNhZmFy
aURlZmF1bHQpCisgIC1sfC0tbGVha3MgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGxlYWtz
IGNoZWNraW5nCisgIC0tW25vLV1uZXctdGVzdC1yZXN1bHRzICAgICAgICAgR2VuZXJhdGUgcmVz
dWx0cyBmb3IgbmV3IHRlc3RzCisgIC0tbnRobHkgbiAgICAgICAgICAgICAgICAgICAgICAgUmVz
dGFydCBEdW1wUmVuZGVyVHJlZSBldmVyeSBuIHRlc3RzIChkZWZhdWx0OiAkdGVzdHNQZXJEdW1w
VG9vbCkKKyAgLXB8LS1waXhlbC10ZXN0cyAgICAgICAgICAgICAgICBFbmFibGUgcGl4ZWwgdGVz
dHMKKyAgLS10b2xlcmFuY2UgdCAgICAgICAgICAgICAgICAgICBJZ25vcmUgaW1hZ2UgZGlmZmVy
ZW5jZXMgbGVzcyB0aGFuIHRoaXMgcGVyY2VudGFnZSAoZGVmYXVsdDogJHRvbGVyYW5jZSkKKyAg
LS1wbGF0Zm9ybSAgICAgICAgICAgICAgICAgICAgICBPdmVycmlkZSB0aGUgZGV0ZWN0ZWQgcGxh
dGZvcm0gdG8gdXNlIGZvciB0ZXN0cyBhbmQgcmVzdWx0cyAoZGVmYXVsdDogJHBsYXRmb3JtKQor
ICAtLXBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYiBzZXJ2ZXIgcG9ydCB0byB1c2Ug
d2l0aCBodHRwIHRlc3RzCisgIC1xfC0tcXVpZXQgICAgICAgICAgICAgICAgICAgICAgTGVzcyB2
ZXJib3NlIG91dHB1dAorICAtLXJlc2V0LXJlc3VsdHMgICAgICAgICAgICAgICAgIFJlc2V0IEFM
TCByZXN1bHRzIChpbmNsdWRpbmcgcGl4ZWwgdGVzdHMgaWYgLS1waXhlbC10ZXN0cyBpcyBzZXQp
CisgIC1vfC0tcmVzdWx0cy1kaXJlY3RvcnkgICAgICAgICAgT3V0cHV0IHJlc3VsdHMgZGlyZWN0
b3J5IChkZWZhdWx0OiAkdGVzdFJlc3VsdHNEaXJlY3RvcnkpCisgIC0tcmFuZG9tICAgICAgICAg
ICAgICAgICAgICAgICAgUnVuIHRoZSB0ZXN0cyBpbiBhIHJhbmRvbSBvcmRlcgorICAtLXJlcGVh
dC1lYWNoIG4gICAgICAgICAgICAgICAgIE51bWJlciBvZiB0aW1lcyB0byBydW4gZWFjaCB0ZXN0
IChlLmcuIEFBQUJCQkNDQykKKyAgLS1yZXZlcnNlICAgICAgICAgICAgICAgICAgICAgICBSdW4g
dGhlIHRlc3RzIGluIHJldmVyc2UgYWxwaGFiZXRpY2FsIG9yZGVyCisgIC0tcm9vdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGF0aCB0byByb290IHRvb2xzIGJ1aWxkCisgIC0tW25vLV1zYW1w
bGUtb24tdGltZW91dCAgICAgICAgUnVuIHNhbXBsZSBvbiB0aW1lb3V0IChkZWZhdWx0OiAkc2Ft
cGxlRGVmYXVsdCkgKE1hYyBPUyBYIG9ubHkpCisgIC0xfC0tc2luZ2x5ICAgICAgICAgICAgICAg
ICAgICAgSXNvbGF0ZSBlYWNoIHRlc3QgY2FzZSBydW4gKGltcGxpZXMgLS1udGhseSAxIC0tdmVy
Ym9zZSkKKyAgLS1za2lwcGVkPVtkZWZhdWx0fGlnbm9yZXxvbmx5XSBTcGVjaWZpZXMgaG93IHRv
IHRyZWF0IHRoZSBTa2lwcGVkIGZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OiBUZXN0cy9kaXJlY3RvcmllcyBsaXN0ZWQgaW4gdGhlIFNraXBwZWQgZmls
ZSBhcmUgbm90IHRlc3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGln
bm9yZTogIFRoZSBTa2lwcGVkIGZpbGUgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9ubHk6ICAgIE9ubHkgdGhvc2UgdGVzdHMvZGlyZWN0b3JpZXMgbGlz
dGVkIGluIHRoZSBTa2lwcGVkIGZpbGUgd2lsbCBiZSBydW4KKyAgLS1zbG93ZXN0ICAgICAgICAg
ICAgICAgICAgICAgICBSZXBvcnQgdGhlIDEwIHNsb3dlc3QgdGVzdHMKKyAgLS1pZ25vcmUtbWV0
cmljcyAgICAgICAgICAgICAgICBJZ25vcmUgbWV0cmljcyBpbiB0ZXN0cworICAtLVtuby1dc3Ry
aXAtZWRpdGluZy1jYWxsYmFja3MgIFJlbW92ZSBlZGl0aW5nIGNhbGxiYWNrcyBmcm9tIGV4cGVj
dGVkIHJlc3VsdHMKKyAgLXR8LS10aHJlYWRlZCAgICAgICAgICAgICAgICAgICBSdW4gYSBjb25j
dXJyZW50IEphdmFTY3JpcHQgdGhlYWQgd2l0aCBlYWNoIHRlc3QKKyAgLS10aW1lb3V0IHQgICAg
ICAgICAgICAgICAgICAgICBTZXRzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgYSB0ZXN0
IHRpbWVzIG91dCAoZGVmYXVsdDogJHRpbWVvdXRTZWNvbmRzKQorICAtLXZhbGdyaW5kICAgICAg
ICAgICAgICAgICAgICAgIFJ1biBEdW1wUmVuZGVyVHJlZSBpbnNpZGUgdmFsZ3JpbmQgKFF0L0xp
bnV4IG9ubHkpCisgIC12fC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgICAgTW9yZSB2ZXJib3Nl
IG91dHB1dCAob3ZlcnJpZGVzIC0tcXVpZXQpCisgIC1tfC0tbWVyZ2UtbGVhay1kZXB0aCBhcmcg
ICAgICAgTWVyZ2VzIGxlYWsgY2FsbFN0YWNrcyBhbmQgcHJpbnRzIHRoZSBudW1iZXIgb2YgdW5p
cXVlIGxlYWtzIGJlbmVhdGggYSBjYWxsc3RhY2sgZGVwdGggb2YgYXJnLiAgRGVmYXVsdHMgdG8g
NS4KKyAgLS11c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzICAgICBMaW5rIHRvIHRlc3QgZmlsZXMg
d2l0aGluIHRoZSBTVk4gcmVwb3NpdG9yeSBpbiB0aGUgcmVzdWx0cy4KK0VPRgorCitzZXRDb25m
aWd1cmF0aW9uKCk7CisKK215ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0T3B0aW9ucygKKyAgICAn
YWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMnID0+IFwkYWRkUGxhdGZvcm1FeGNlcHRpb25zLAorICAg
ICdjb21wbGV4LXRleHQnID0+IFwkY29tcGxleFRleHQsCisgICAgJ2V4aXQtYWZ0ZXItbi1mYWls
dXJlcz1pJyA9PiBcJGV4aXRBZnRlck5GYWlsdXJlcywKKyAgICAnZ3VhcmQtbWFsbG9jfGcnID0+
IFwkZ3VhcmRNYWxsb2MsCisgICAgJ2hlbHB8aCcgPT4gXCRzaG93SGVscCwKKyAgICAnaHR0cCEn
ID0+IFwkdGVzdEhUVFAsCisgICAgJ3dhaXQtZm9yLWh0dHBkIScgPT4gXCRzaG91bGRXYWl0Rm9y
SFRUUEQsCisgICAgJ2lnbm9yZS1tZXRyaWNzIScgPT4gXCRpZ25vcmVNZXRyaWNzLAorICAgICdp
Z25vcmUtdGVzdHN8aT1zJyA9PiBcJGlnbm9yZVRlc3RzLAorICAgICdpdGVyYXRpb25zPWknID0+
IFwkaXRlcmF0aW9ucywKKyAgICAnbGF1bmNoLXNhZmFyaSEnID0+IFwkbGF1bmNoU2FmYXJpLAor
ICAgICdsZWFrc3xsJyA9PiBcJHNob3VsZENoZWNrTGVha3MsCisgICAgJ21lcmdlLWxlYWstZGVw
dGh8bTo1JyA9PiBcJG1lcmdlRGVwdGgsCisgICAgJ25ldy10ZXN0LXJlc3VsdHMhJyA9PiBcJGdl
bmVyYXRlTmV3UmVzdWx0cywKKyAgICAnbnRobHk9aScgPT4gXCR0ZXN0c1BlckR1bXBUb29sLAor
ICAgICdwaXhlbC10ZXN0c3xwJyA9PiBcJHBpeGVsVGVzdHMsCisgICAgJ3BsYXRmb3JtPXMnID0+
IFwkcGxhdGZvcm0sCisgICAgJ3BvcnQ9aScgPT4gXCRodHRwZFBvcnQsCisgICAgJ3F1aWV0fHEn
ID0+IFwkcXVpZXQsCisgICAgJ3JhbmRvbScgPT4gXCRyYW5kb21pemVUZXN0cywKKyAgICAncmVw
ZWF0LWVhY2g9aScgPT4gXCRyZXBlYXRFYWNoLAorICAgICdyZXNldC1yZXN1bHRzJyA9PiBcJHJl
c2V0UmVzdWx0cywKKyAgICAncmVzdWx0cy1kaXJlY3Rvcnl8bz1zJyA9PiBcJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LAorICAgICdyZXZlcnNlJyA9PiBcJHJldmVyc2VUZXN0cywKKyAgICAncm9vdD1z
JyA9PiBcJHJvb3QsCisgICAgJ3NhbXBsZS1vbi10aW1lb3V0IScgPT4gXCRydW5TYW1wbGUsCisg
ICAgJ3NpbmdseXwxJyA9PiBzdWIgeyAkdGVzdHNQZXJEdW1wVG9vbCA9IDE7IH0sCisgICAgJ3Nr
aXBwZWQ9cycgPT4gXCZ2YWxpZGF0ZVNraXBwZWRBcmcsCisgICAgJ3Nsb3dlc3QnID0+IFwkcmVw
b3J0MTBTbG93ZXN0LAorICAgICdzdHJpcC1lZGl0aW5nLWNhbGxiYWNrcyEnID0+IFwkc3RyaXBF
ZGl0aW5nQ2FsbGJhY2tzLAorICAgICd0aHJlYWRlZHx0JyA9PiBcJHRocmVhZGVkLAorICAgICd0
aW1lb3V0PWknID0+IFwkdGltZW91dFNlY29uZHMsCisgICAgJ3RvbGVyYW5jZT1mJyA9PiBcJHRv
bGVyYW5jZSwKKyAgICAndXNlLXJlbW90ZS1saW5rcy10by10ZXN0cycgPT4gXCR1c2VSZW1vdGVM
aW5rc1RvVGVzdHMsCisgICAgJ3ZhbGdyaW5kJyA9PiBcJHVzZVZhbGdyaW5kLAorICAgICd2ZXJi
b3NlfHYnID0+IFwkdmVyYm9zZSwKKyk7CisKK2lmICghJGdldE9wdGlvbnNSZXN1bHQgfHwgJHNo
b3dIZWxwKSB7CisgICAgcHJpbnQgU1RERVJSICR1c2FnZTsKKyAgICBleGl0IDE7Cit9CisKK215
ICRpZ25vcmVTa2lwcGVkID0gJHRyZWF0U2tpcHBlZCBlcSAiaWdub3JlIjsKK215ICRza2lwcGVk
T25seSA9ICR0cmVhdFNraXBwZWQgZXEgIm9ubHkiOworCitteSAkY29uZmlndXJhdGlvbiA9IGNv
bmZpZ3VyYXRpb24oKTsKKworIyBXZSBuZWVkIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGJl
IGFibGUgdG8gZW5hYmxlIHRoZSBmZWF0dXJlIHBlci1zbGF2ZQorJHNob3VsZFdhaXRGb3JIVFRQ
RCA9ICRFTlZ7IldFQktJVF9XQUlUX0ZPUl9IVFRQRCJ9IHVubGVzcyAoJHNob3VsZFdhaXRGb3JI
VFRQRCk7CiskdmVyYm9zZSA9IDEgaWYgJHRlc3RzUGVyRHVtcFRvb2wgPT0gMTsKKworaWYgKCRz
aG91bGRDaGVja0xlYWtzICYmICR0ZXN0c1BlckR1bXBUb29sID4gMTAwMCkgeworICAgIHByaW50
IFNUREVSUiAiXG5XQVJOSU5HOiBSdW5uaW5nIG1vcmUgdGhhbiAxMDAwIHRlc3RzIGF0IGEgdGlt
ZSB3aXRoIE1hbGxvY1N0YWNrTG9nZ2luZyBlbmFibGVkIG1heSBjYXVzZSBhIGNyYXNoLlxuXG4i
OworfQorCisjIFN0YWNrIGxvZ2dpbmcgZG9lcyBub3QgcGxheSB3ZWxsIHdpdGggUXVpY2tUaW1l
IG9uIFRpZ2VyIChyZGFyOi8vcHJvYmxlbS81NTM3MTU3KQorJHRlc3RNZWRpYSA9IDAgaWYgJHNo
b3VsZENoZWNrTGVha3MgJiYgaXNUaWdlcigpOworCisjIEdlbmVyYXRpbmcgcmVtb3RlIGxpbmtz
IGNhdXNlcyBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBzcGV3IG9uIEdUSyBidWlsZCBib3QKKyR1c2VS
ZW1vdGVMaW5rc1RvVGVzdHMgPSAwIGlmIGlzR3RrKCk7CisKK3NldENvbmZpZ3VyYXRpb25Qcm9k
dWN0RGlyKEN3ZDo6YWJzX3BhdGgoJHJvb3QpKSBpZiAoZGVmaW5lZCgkcm9vdCkpOworbXkgJHBy
b2R1Y3REaXIgPSBwcm9kdWN0RGlyKCk7CiskcHJvZHVjdERpciAuPSAiL2JpbiIgaWYgaXNRdCgp
OworJHByb2R1Y3REaXIgLj0gIi9Qcm9ncmFtcyIgaWYgaXNHdGsoKTsKKworY2hkaXJXZWJLaXQo
KTsKKworaWYgKCFkZWZpbmVkKCRyb290KSkgeworICAgIHByaW50IFNUREVSUiAiUnVubmluZyBi
dWlsZC1kdW1wcmVuZGVydHJlZVxuIjsKKworICAgIGxvY2FsICpERVZOVUxMOworICAgIG15ICgk
Y2hpbGRJbiwgJGNoaWxkT3V0LCAkY2hpbGRFcnIpOworICAgIGlmICgkcXVpZXQpIHsKKyAgICAg
ICAgb3BlbihERVZOVUxMLCAiPiIsIEZpbGU6OlNwZWMtPmRldm51bGwoKSkgb3IgZGllICJGYWls
ZWQgdG8gb3BlbiAvZGV2L251bGwiOworICAgICAgICAkY2hpbGRPdXQgPSAiPiZERVZOVUxMIjsK
KyAgICAgICAgJGNoaWxkRXJyID0gIj4mREVWTlVMTCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
IyBXaGVuIG5vdCBxdWlldCwgbGV0IHRoZSBjaGlsZCB1c2Ugb3VyIHN0ZG91dC9zdGRlcnIuCisg
ICAgICAgICRjaGlsZE91dCA9ICI+JlNURE9VVCI7CisgICAgICAgICRjaGlsZEVyciA9ICI+JlNU
REVSUiI7CisgICAgfQorCisgICAgbXkgQGFyZ3MgPSBhcmd1bWVudHNGb3JDb25maWd1cmF0aW9u
KCk7CisgICAgbXkgJGJ1aWxkUHJvY2VzcyA9IG9wZW4zKCRjaGlsZEluLCAkY2hpbGRPdXQsICRj
aGlsZEVyciwgIldlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUiLCBAYXJn
cykgb3IgZGllICJGYWlsZWQgdG8gcnVuIGJ1aWxkLWR1bXByZW5kZXJ0cmVlIjsKKyAgICBjbG9z
ZSgkY2hpbGRJbik7CisgICAgd2FpdHBpZCAkYnVpbGRQcm9jZXNzLCAwOworICAgIG15ICRidWls
ZFJlc3VsdCA9ICQ/OworICAgIGNsb3NlKCRjaGlsZE91dCk7CisgICAgY2xvc2UoJGNoaWxkRXJy
KTsKKworICAgIGNsb3NlIERFVk5VTEwgaWYgKCRxdWlldCk7CisKKyAgICBpZiAoJGJ1aWxkUmVz
dWx0KSB7CisgICAgICAgIHByaW50IFNUREVSUiAiQ29tcGlsaW5nIER1bXBSZW5kZXJUcmVlIGZh
aWxlZCFcbiI7CisgICAgICAgIGV4aXQgZXhpdFN0YXR1cygkYnVpbGRSZXN1bHQpOworICAgIH0K
K30KKworbXkgJGR1bXBUb29sTmFtZSA9ICJEdW1wUmVuZGVyVHJlZSI7CiskZHVtcFRvb2xOYW1l
IC49ICJfZGVidWciIGlmIGlzQ3lnd2luKCkgJiYgY29uZmlndXJhdGlvbkZvclZpc3VhbFN0dWRp
bygpICF+IC9eUmVsZWFzZXxEZWJ1Z19JbnRlcm5hbCQvOworbXkgJGR1bXBUb29sID0gIiRwcm9k
dWN0RGlyLyRkdW1wVG9vbE5hbWUiOworZGllICJjYW4ndCBmaW5kIGV4ZWN1dGFibGUgJGR1bXBU
b29sTmFtZSAobG9va2VkIGluICRwcm9kdWN0RGlyKVxuIiB1bmxlc3MgLXggJGR1bXBUb29sOwor
CitteSAkaW1hZ2VEaWZmVG9vbCA9ICIkcHJvZHVjdERpci9JbWFnZURpZmYiOworJGltYWdlRGlm
ZlRvb2wgLj0gIl9kZWJ1ZyIgaWYgaXNDeWd3aW4oKSAmJiBjb25maWd1cmF0aW9uRm9yVmlzdWFs
U3R1ZGlvKCkgIX4gL15SZWxlYXNlfERlYnVnX0ludGVybmFsJC87CitkaWUgImNhbid0IGZpbmQg
ZXhlY3V0YWJsZSAkaW1hZ2VEaWZmVG9vbCAobG9va2VkIGluICRwcm9kdWN0RGlyKVxuIiBpZiAk
cGl4ZWxUZXN0cyAmJiAhLXggJGltYWdlRGlmZlRvb2w7CisKK2NoZWNrRnJhbWV3b3JrcygpIHVu
bGVzcyBpc0N5Z3dpbigpOworCitpZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7CisgICAgcHVzaCBA
SU5DLCAkcHJvZHVjdERpcjsKKyAgICByZXF1aXJlIER1bXBSZW5kZXJUcmVlU3VwcG9ydDsKK30K
KworbXkgJGxheW91dFRlc3RzTmFtZSA9ICJMYXlvdXRUZXN0cyI7CitteSAkdGVzdERpcmVjdG9y
eSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJGxheW91dFRlc3RzTmFtZSk7CitteSAkZXhwZWN0ZWRE
aXJlY3RvcnkgPSAkdGVzdERpcmVjdG9yeTsKK215ICRwbGF0Zm9ybUJhc2VEaXJlY3RvcnkgPSBj
YXRkaXIoJHRlc3REaXJlY3RvcnksICJwbGF0Zm9ybSIpOworbXkgJHBsYXRmb3JtVGVzdERpcmVj
dG9yeSA9IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0b3J5LCAkcGxhdGZvcm0pOworbXkgQHBs
YXRmb3JtUmVzdWx0SGllcmFyY2h5ID0gYnVpbGRQbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSgpOwor
bXkgQHBsYXRmb3JtVGVzdEhpZXJhcmNoeSA9IGJ1aWxkUGxhdGZvcm1UZXN0SGllcmFyY2h5KEBw
bGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSk7CisKKyRleHBlY3RlZERpcmVjdG9yeSA9ICRFTlZ7Ildl
YktpdEV4cGVjdGVkVGVzdFJlc3VsdHNEaXJlY3RvcnkifSBpZiAkRU5WeyJXZWJLaXRFeHBlY3Rl
ZFRlc3RSZXN1bHRzRGlyZWN0b3J5In07CisKKyR0ZXN0UmVzdWx0c0RpcmVjdG9yeSA9IEZpbGU6
OlNwZWMtPnJlbDJhYnMoJHRlc3RSZXN1bHRzRGlyZWN0b3J5KTsKK215ICR0ZXN0UmVzdWx0cyA9
IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlc3RSZXN1bHRzRGlyZWN0b3J5LCAicmVzdWx0cy5odG1s
Iik7CisKK2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKKyAgICBwcmludCBTVERFUlIgIkNvbXBp
bGluZyBKYXZhIHRlc3RzXG4iOworICAgIG15ICRqYXZhVGVzdHNEaXJlY3RvcnkgPSBjYXRkaXIo
JHRlc3REaXJlY3RvcnksICJqYXZhIik7CisKKyAgICBpZiAoc3lzdGVtKCIvdXNyL2Jpbi9tYWtl
IiwgIi1DIiwgIiRqYXZhVGVzdHNEaXJlY3RvcnkiKSkgeworICAgICAgICBleGl0IDE7CisgICAg
fQorfQorCisKK3ByaW50ICJSdW5uaW5nIHRlc3RzIGZyb20gJHRlc3REaXJlY3RvcnlcbiI7Citp
ZiAoJHBpeGVsVGVzdHMpIHsKKyAgICBwcmludCAiRW5hYmxpbmcgcGl4ZWwgdGVzdHMgd2l0aCBh
IHRvbGVyYW5jZSBvZiAkdG9sZXJhbmNlJVxuIjsKKyAgICBpZiAoaXNEYXJ3aW4oKSkgeworICAg
ICAgICBwcmludCAiV0FSTklORzogVGVtcG9yYXJpbHkgY2hhbmdpbmcgdGhlIG1haW4gZGlzcGxh
eSBjb2xvciBwcm9maWxlOlxuIjsKKyAgICAgICAgcHJpbnQgIlx0VGhlIGNvbG9ycyBvbiB5b3Vy
IHNjcmVlbiB3aWxsIGNoYW5nZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0aW5nLlxuIjsK
KyAgICAgICAgcHJpbnQgIlx0VGhpcyBhbGxvd3MgdGhlIHBpeGVsIHRlc3RzIHRvIGhhdmUgY29u
c2lzdGVudCBjb2xvciB2YWx1ZXMgYWNyb3NzIGFsbCBtYWNoaW5lcy5cbiI7CisgICAgICAgIAor
ICAgICAgICBpZiAoaXNQZXJpYW5JbnN0YWxsZWQoKSkgeworICAgICAgICAgICAgcHJpbnQgIldB
Uk5JTkc6IFBlcmlhbidzIFF1aWNrVGltZSBjb21wb25lbnQgaXMgaW5zdGFsbGVkIGFuZCB0aGlz
IG1heSBhZmZlY3QgcGl4ZWwgdGVzdCByZXN1bHRzIVxuIjsKKyAgICAgICAgICAgIHByaW50ICJc
dFlvdSBzaG91bGQgYXZvaWQgZ2VuZXJhdGluZyBuZXcgcGl4ZWwgcmVzdWx0cyBpbiB0aGlzIGVu
dmlyb25tZW50LlxuIjsKKyAgICAgICAgICAgIHByaW50ICJcdFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTUgZm9yIGRldGFpbHMuXG4iOworICAgICAgICB9
CisgICAgfQorfQorCitzeXN0ZW0gImxuIiwgIi1zIiwgJHRlc3REaXJlY3RvcnksICIvdG1wL0xh
eW91dFRlc3RzIiB1bmxlc3MgLXggIi90bXAvTGF5b3V0VGVzdHMiOworCitteSAlaWdub3JlZEZp
bGVzID0gKCAicmVzdWx0cy5odG1sIiA9PiAxICk7CitteSAlaWdub3JlZERpcmVjdG9yaWVzID0g
bWFwIHsgJF8gPT4gMSB9IHF3KHBsYXRmb3JtKTsKK215ICVpZ25vcmVkTG9jYWxEaXJlY3Rvcmll
cyA9IG1hcCB7ICRfID0+IDEgfSBxdyguc3ZuIF9zdm4gcmVzb3VyY2VzIHNjcmlwdC10ZXN0cyk7
CitteSAlc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMgPSBtYXAgeyAkXyA9PiAxIH0gcXcoaHRtbCBz
aHRtbCB4bWwgeGh0bWwgeGh0bWxtcCBwbCBwaHApOworCitpZiAoIWNoZWNrV2ViQ29yZUZlYXR1
cmVTdXBwb3J0KCJNYXRoTUwiLCAwKSkgeworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J21hdGht
bCd9ID0gMTsKK30KKworIyBGSVhNRTogV2Ugc2hvdWxkIGZpeCB3ZWJraXRwZXJsL2ZlYXR1cmVz
LnBtOmhhc0ZlYXR1cmUoKSB0byBkbyB0aGUgY29ycmVjdCBmZWF0dXJlIGRldGVjdGlvbiBmb3Ig
Q3lnd2luLgoraWYgKGNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJTVkciLCAwKSkgeworICAg
ICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3snc3ZnJ30gPSAxOworfSBlbHNpZiAoaXNDeWd3aW4o
KSkgeworICAgICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3snc3ZnJ30gPSAxOworfSBlbHNlIHsK
KyAgICAkaWdub3JlZExvY2FsRGlyZWN0b3JpZXN7J3N2Zyd9ID0gMTsKK30KKworaWYgKCEkdGVz
dEhUVFApIHsKKyAgICAkaWdub3JlZERpcmVjdG9yaWVzeydodHRwJ30gPSAxOworICAgICRpZ25v
cmVkRGlyZWN0b3JpZXN7J3dlYnNvY2tldCd9ID0gMTsKK30KKworaWYgKCEkdGVzdE1lZGlhKSB7
CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snbWVkaWEnfSA9IDE7CisgICAgJGlnbm9yZWREaXJl
Y3Rvcmllc3snaHR0cC90ZXN0cy9tZWRpYSd9ID0gMTsKK30KKworbXkgJHN1cHBvcnRlZEZlYXR1
cmVzUmVzdWx0ID0gIiI7CisKK2lmIChpc0N5Z3dpbigpKSB7CisgICAgIyBDb2xsZWN0IHN1cHBv
cnRlZCBmZWF0dXJlcyBsaXN0CisgICAgc2V0UGF0aEZvclJ1bm5pbmdXZWJLaXRBcHAoXCVFTlYp
OworICAgIG15ICRzdXBwb3J0ZWRGZWF0dXJlc0NvbW1hbmQgPSAkZHVtcFRvb2wgLiAiIC0tcHJp
bnQtc3VwcG9ydGVkLWZlYXR1cmVzIDI+JjEiOworICAgICRzdXBwb3J0ZWRGZWF0dXJlc1Jlc3Vs
dCA9IGAkc3VwcG9ydGVkRmVhdHVyZXNDb21tYW5kIDI+JjFgOworfQorCitteSAkaGFzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZyA9IDA7CitteSAkaGFzM0RSZW5kZXJpbmcgPSAwOworCitpZiAoaXND
eWd3aW4oKSkgeworICAgICRoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gJHN1cHBvcnRlZEZl
YXR1cmVzUmVzdWx0ID1+IC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nLzsKKyAgICAkaGFzM0RSZW5k
ZXJpbmcgPSAkc3VwcG9ydGVkRmVhdHVyZXNSZXN1bHQgPX4gLzNEUmVuZGVyaW5nLzsKK30gZWxz
ZSB7CisgICAgJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBjaGVja1dlYkNvcmVGZWF0dXJl
U3VwcG9ydCgiQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmciLCAwKTsKKyAgICAkaGFzM0RSZW5kZXJp
bmcgPSBjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiM0QgUmVuZGVyaW5nIiwgMCk7Cit9CisK
K2lmICghJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpIHsKKyAgICAkaWdub3JlZERpcmVjdG9y
aWVzeydjb21wb3NpdGluZyd9ID0gMTsKK30KKworaWYgKCEkaGFzM0RSZW5kZXJpbmcpIHsKKyAg
ICAkaWdub3JlZERpcmVjdG9yaWVzeydhbmltYXRpb25zLzNkJ30gPSAxOworICAgICRpZ25vcmVk
RGlyZWN0b3JpZXN7J3RyYW5zZm9ybXMvM2QnfSA9IDE7Cit9CisKK2lmICghY2hlY2tXZWJDb3Jl
RmVhdHVyZVN1cHBvcnQoIjNEIENhbnZhcyIsIDApKSB7CisgICAgJGlnbm9yZWREaXJlY3Rvcmll
c3snZmFzdC9jYW52YXMvd2ViZ2wnfSA9IDE7Cit9CisKK2lmIChjaGVja1dlYkNvcmVGZWF0dXJl
U3VwcG9ydCgiV01MIiwgMCkpIHsKKyAgICAkc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnN7J3dtbCd9
ID0gMTsKK30gZWxzZSB7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snaHR0cC90ZXN0cy93bWwn
fSA9IDE7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snZmFzdC93bWwnfSA9IDE7CisgICAgJGln
bm9yZWREaXJlY3Rvcmllc3snd21sJ30gPSAxOworfQorCitpZiAoIWNoZWNrV2ViQ29yZUZlYXR1
cmVTdXBwb3J0KCJYSFRNTE1QIiwgMCkpIHsKKyAgICAkaWdub3JlZERpcmVjdG9yaWVzeydmYXN0
L3hodG1sbXAnfSA9IDE7Cit9CisKK3Byb2Nlc3NJZ25vcmVUZXN0cygkaWdub3JlVGVzdHMsICJp
Z25vcmUtdGVzdHMiKSBpZiAkaWdub3JlVGVzdHM7CitpZiAoISRpZ25vcmVTa2lwcGVkKSB7Cisg
ICAgaWYgKCEkc2tpcHBlZE9ubHkgfHwgQEFSR1YgPT0gMCkgeworICAgICAgICByZWFkU2tpcHBl
ZEZpbGVzKCIiKTsKKyAgICB9IGVsc2UgeworICAgICAgICAjIFNpbmNlIHJlYWRTa2lwcGVkRmls
ZXMoKSBhcHBlbmRzIHRvIEBBUkdWLCB3ZSBtdXN0IHVzZSBhIGZvcmVhY2gKKyAgICAgICAgIyBs
b29wIHNvIHRoYXQgd2Ugb25seSBpdGVyYXRlIG92ZXIgdGhlIG9yaWdpbmFsIGFyZ3VtZW50IGxp
c3QuCisgICAgICAgIGZvcmVhY2ggbXkgJGFyZ251bSAoMCAuLiAkI0FSR1YpIHsKKyAgICAgICAg
ICAgIHJlYWRTa2lwcGVkRmlsZXMoc2hpZnQgQEFSR1YpOworICAgICAgICB9CisgICAgfQorfQor
CitteSBAdGVzdHMgPSBmaW5kVGVzdHNUb1J1bigpOworCitkaWUgIm5vIHRlc3RzIHRvIHJ1blxu
IiBpZiAhQHRlc3RzOworCitteSAlY291bnRzOworbXkgJXRlc3RzOworbXkgJWltYWdlc1ByZXNl
bnQ7CitteSAlaW1hZ2VEaWZmZXJlbmNlczsKK215ICVkdXJhdGlvbnM7CitteSAkY291bnQgPSAw
OworbXkgJGxlYWtzT3V0cHV0RmlsZU51bWJlciA9IDE7CitteSAkdG90YWxMZWFrcyA9IDA7CisK
K215IEB0b29sQXJncyA9ICgpOworcHVzaCBAdG9vbEFyZ3MsICItLXBpeGVsLXRlc3RzIiBpZiAk
cGl4ZWxUZXN0czsKK3B1c2ggQHRvb2xBcmdzLCAiLS10aHJlYWRlZCIgaWYgJHRocmVhZGVkOwor
cHVzaCBAdG9vbEFyZ3MsICItLWNvbXBsZXgtdGV4dCIgaWYgJGNvbXBsZXhUZXh0OworcHVzaCBA
dG9vbEFyZ3MsICItIjsKKworbXkgQGRpZmZUb29sQXJncyA9ICgpOworcHVzaCBAZGlmZlRvb2xB
cmdzLCAiLS10b2xlcmFuY2UiLCAkdG9sZXJhbmNlOworCiskfCA9IDE7CisKK215ICRkdW1wVG9v
bFBJRDsKK215ICRpc0R1bXBUb29sT3BlbiA9IDA7CitteSAkZHVtcFRvb2xDcmFzaGVkID0gMDsK
K215ICRpbWFnZURpZmZUb29sUElEOworbXkgJGlzRGlmZlRvb2xPcGVuID0gMDsKKworbXkgJGF0
TGluZVN0YXJ0ID0gMTsKK215ICRsYXN0RGlyZWN0b3J5ID0gIiI7CisKK215ICRpc0h0dHBkT3Bl
biA9IDA7CitteSAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMDsKK215ICR3ZWJTb2NrZXRTZXJ2
ZXJQSUQgPSAwOworbXkgJGZhaWxlZFRvU3RhcnRXZWJTb2NrZXRTZXJ2ZXIgPSAwOworIyB3c3Mg
aXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KKyMgbXkg
JHdlYlNvY2tldFNlY3VyZVNlcnZlclBJRCA9IDA7CisKK3N1YiBjYXRjaF9waXBlIHsgJGR1bXBU
b29sQ3Jhc2hlZCA9IDE7IH0KKyRTSUd7IlBJUEUifSA9ICJjYXRjaF9waXBlIjsKKworcHJpbnQg
IlRlc3RpbmcgIiwgc2NhbGFyIEB0ZXN0cywgIiB0ZXN0IGNhc2VzIjsKK3ByaW50ICIgJGl0ZXJh
dGlvbnMgdGltZXMiIGlmICgkaXRlcmF0aW9ucyA+IDEpOworcHJpbnQgIiwgcmVwZWF0aW5nIGVh
Y2ggdGVzdCAkcmVwZWF0RWFjaCB0aW1lcyIgaWYgKCRyZXBlYXRFYWNoID4gMSk7CitwcmludCAi
LlxuIjsKKworbXkgJG92ZXJhbGxTdGFydFRpbWUgPSB0aW1lOworCitteSAlZXhwZWN0ZWRSZXN1
bHRQYXRoczsKKworbXkgQG9yaWdpbmFsVGVzdHMgPSBAdGVzdHM7CisjIEFkZCBpbmRpdmlkdWFs
IHRlc3QgcmVwZXRpdGlvbnMKK2lmICgkcmVwZWF0RWFjaCA+IDEpIHsKKyAgICBAdGVzdHMgPSAo
KTsKKyAgICBmb3JlYWNoIG15ICR0ZXN0IChAb3JpZ2luYWxUZXN0cykgeworICAgICAgICBmb3Ig
KG15ICRpID0gMDsgJGkgPCAkcmVwZWF0RWFjaDsgJGkrKykgeworICAgICAgICAgICAgcHVzaChA
dGVzdHMsICR0ZXN0KTsKKyAgICAgICAgfQorICAgIH0KK30KKyMgQWRkIHRlc3Qgc2V0IHJlcGV0
aXRpb25zCitmb3IgKG15ICRpID0gMTsgJGkgPCAkaXRlcmF0aW9uczsgJGkrKykgeworICAgIHB1
c2goQHRlc3RzLCBAb3JpZ2luYWxUZXN0cyk7Cit9CisKK2ZvciBteSAkdGVzdCAoQHRlc3RzKSB7
CisgICAgbXkgJG5ld0R1bXBUb29sID0gbm90ICRpc0R1bXBUb29sT3BlbjsKKyAgICBvcGVuRHVt
cFRvb2woKTsKKworICAgIG15ICRiYXNlID0gc3RyaXBFeHRlbnNpb24oJHRlc3QpOworICAgIG15
ICRleHBlY3RlZEV4dGVuc2lvbiA9ICIudHh0IjsKKyAgICAKKyAgICBteSAkZGlyID0gJGJhc2U7
CisgICAgJGRpciA9fiBzfC9bXi9dKyR8fDsKKworICAgIGlmICgkbmV3RHVtcFRvb2wgfHwgJGRp
ciBuZSAkbGFzdERpcmVjdG9yeSkgeworICAgICAgICBmb3JlYWNoIG15ICRsb2d1ZSAoZXBpbG9n
dWVzQW5kUHJvbG9ndWVzKCRuZXdEdW1wVG9vbCA/ICIiIDogJGxhc3REaXJlY3RvcnksICRkaXIp
KSB7CisgICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAgICAgICAgICAgICRsb2d1
ZSA9IHRvV2luZG93c1BhdGgoJGxvZ3VlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgJGxvZ3VlID0gY2Fub25wYXRoKCRsb2d1ZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoJHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBwcmludCAicnVubmluZyBl
cGlsb2d1ZSBvciBwcm9sb2d1ZSAkbG9ndWVcbiI7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBwcmludCBPVVQgIiRsb2d1ZVxuIjsKKyAgICAgICAgICAgICMgVGhyb3cgYXdheSBvdXRwdXQg
ZnJvbSBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgICAgICMgT25jZSBmb3IgdGhlIHRlc3Qgb3V0
cHV0IGFuZCBvbmNlIGZvciBwaXhlbCByZXN1bHRzIChlbXB0eSkKKyAgICAgICAgICAgIHdoaWxl
ICg8SU4+KSB7CisgICAgICAgICAgICAgICAgbGFzdCBpZiAvI0VPRi87CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB3aGlsZSAoPElOPikgeworICAgICAgICAgICAgICAgIGxhc3QgaWYgLyNF
T0YvOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCR2ZXJib3Nl
KSB7CisgICAgICAgIHByaW50ICJydW5uaW5nICR0ZXN0IC0+ICI7CisgICAgICAgICRhdExpbmVT
dGFydCA9IDA7CisgICAgfSBlbHNpZiAoISRxdWlldCkgeworICAgICAgICBpZiAoJGRpciBuZSAk
bGFzdERpcmVjdG9yeSkgeworICAgICAgICAgICAgcHJpbnQgIlxuIiB1bmxlc3MgJGF0TGluZVN0
YXJ0OworICAgICAgICAgICAgcHJpbnQgIiRkaXIgIjsKKyAgICAgICAgfQorICAgICAgICBwcmlu
dCAiLiI7CisgICAgICAgICRhdExpbmVTdGFydCA9IDA7CisgICAgfQorCisgICAgJGxhc3REaXJl
Y3RvcnkgPSAkZGlyOworCisgICAgbXkgJHJlc3VsdDsKKworICAgIG15ICRzdGFydFRpbWUgPSB0
aW1lIGlmICRyZXBvcnQxMFNsb3dlc3Q7CisKKyAgICAjIFRyeSB0byByZWFkIGV4cGVjdGVkIGhh
c2ggZmlsZSBmb3IgcGl4ZWwgdGVzdHMKKyAgICBteSAkc3VmZml4RXhwZWN0ZWRIYXNoID0gIiI7
CisgICAgaWYgKCRwaXhlbFRlc3RzICYmICEkcmVzZXRSZXN1bHRzKSB7CisgICAgICAgIG15ICRl
eHBlY3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNlLCAwLCAicG5n
Iik7CisgICAgICAgIGlmIChvcGVuIEVYUEVDVEVESEFTSCwgIiRleHBlY3RlZFBpeGVsRGlyLyRi
YXNlLSRleHBlY3RlZFRhZy5jaGVja3N1bSIpIHsKKyAgICAgICAgICAgIG15ICRleHBlY3RlZEhh
c2ggPSA8RVhQRUNURURIQVNIPjsKKyAgICAgICAgICAgIGNob21wKCRleHBlY3RlZEhhc2gpOwor
ICAgICAgICAgICAgY2xvc2UgRVhQRUNURURIQVNIOworICAgICAgICAgICAgCisgICAgICAgICAg
ICAjIEZvcm1hdCBleHBlY3RlZCBoYXNoIGludG8gYSBzdWZmaXggc3RyaW5nIHRoYXQgaXMgYXBw
ZW5kZWQgdG8gdGhlIHBhdGggLyBVUkwgcGFzc2VkIHRvIERSVAorICAgICAgICAgICAgJHN1ZmZp
eEV4cGVjdGVkSGFzaCA9ICInJGV4cGVjdGVkSGFzaCI7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoJHRlc3QgPX4gL15odHRwXC8vKSB7CisgICAgICAgIGNvbmZpZ3VyZUFuZE9wZW5IVFRQ
RElmTmVlZGVkKCk7CisgICAgICAgIGlmICgkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9sb2NhbFwv
LyAmJiAkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9zc2xcLy8gJiYgJHRlc3QgIX4gL15odHRwXC90
ZXN0c1wvd21sXC8vICYmICR0ZXN0ICF+IC9eaHR0cFwvdGVzdHNcL21lZGlhXC8vKSB7CisgICAg
ICAgICAgICBteSAkcGF0aCA9IGNhbm9ucGF0aCgkdGVzdCk7CisgICAgICAgICAgICAkcGF0aCA9
fiBzL15odHRwXC90ZXN0c1wvLy87CisgICAgICAgICAgICBwcmludCBPVVQgImh0dHA6Ly8xMjcu
MC4wLjE6JGh0dHBkUG9ydC8kcGF0aCRzdWZmaXhFeHBlY3RlZEhhc2hcbiI7CisgICAgICAgIH0g
ZWxzaWYgKCR0ZXN0ID1+IC9eaHR0cFwvdGVzdHNcL3NzbFwvLykgeworICAgICAgICAgICAgbXkg
JHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOworICAgICAgICAgICAgJHBhdGggPX4gcy9eaHR0cFwv
dGVzdHNcLy8vOworICAgICAgICAgICAgcHJpbnQgT1VUICJodHRwczovLzEyNy4wLjAuMTokaHR0
cGRTU0xQb3J0LyRwYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxuIjsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIG15ICR0ZXN0UGF0aCA9ICIkdGVzdERpcmVjdG9yeS8kdGVzdCI7CisgICAg
ICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAgICAgICAgICAgICR0ZXN0UGF0aCA9IHRv
V2luZG93c1BhdGgoJHRlc3RQYXRoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBwcmludCBPVVQgIiR0ZXN0UGF0aCRzdWZmaXhFeHBlY3RlZEhhc2hcbiI7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndlYnNvY2tldFwvLykgeworICAgICAg
ICBpZiAoJHRlc3QgPX4gL153ZWJzb2NrZXRcL3Rlc3RzXC9sb2NhbFwvLykgeworICAgICAgICAg
ICAgbXkgJHRlc3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IjsKKyAgICAgICAgICAgIGlm
IChpc0N5Z3dpbigpKSB7CisgICAgICAgICAgICAgICAgJHRlc3RQYXRoID0gdG9XaW5kb3dzUGF0
aCgkdGVzdFBhdGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkdGVz
dFBhdGggPSBjYW5vbnBhdGgoJHRlc3RQYXRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHByaW50IE9VVCAiJHRlc3RQYXRoXG4iOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
aWYgKG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpKSB7CisgICAgICAgICAgICAgICAgbXkg
JHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOworICAgICAgICAgICAgICAgIGlmICgkdGVzdCA9fiAv
XndlYnNvY2tldFwvdGVzdHNcL3NzbFwvLykgeworICAgICAgICAgICAgICAgICAgICAjIHdzcyBp
cyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgorICAgICAg
ICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVycm9yOiB3c3MgaXMgZGlzYWJsZWQgdW50aWwg
YWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4iOworICAgICAgICAgICAgICAgICAgICAj
IHByaW50IE9VVCAiaHR0cHM6Ly8xMjcuMC4wLjE6JHdlYlNvY2tldFNlY3VyZVBvcnQvJHBhdGhc
biI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQg
T1VUICJodHRwOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0LyRwYXRoXG4iOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIyBXZSBmYWls
ZWQgdG8gbGF1bmNoIHRoZSBXZWJTb2NrZXQgc2VydmVyLiAgRGlzcGxheSBhIHVzZWZ1bCBlcnJv
ciBtZXNzYWdlIHJhdGhlciB0aGFuIGF0dGVtcHRpbmcKKyAgICAgICAgICAgICAgICAjIHRvIHJ1
biB0ZXN0cyB0aGF0IGV4cGVjdCB0aGUgc2VydmVyIHRvIGJlIGF2YWlsYWJsZS4KKyAgICAgICAg
ICAgICAgICBteSAkZXJyb3JNZXNzYWdlUGF0aCA9ICIkdGVzdERpcmVjdG9yeS93ZWJzb2NrZXQv
cmVzb3VyY2VzL3NlcnZlci1mYWlsZWQtdG8tc3RhcnQuaHRtbCI7CisgICAgICAgICAgICAgICAg
JGVycm9yTWVzc2FnZVBhdGggPSBpc0N5Z3dpbigpID8gdG9XaW5kb3dzUGF0aCgkZXJyb3JNZXNz
YWdlUGF0aCkgOiBjYW5vbnBhdGgoJGVycm9yTWVzc2FnZVBhdGgpOworICAgICAgICAgICAgICAg
IHByaW50IE9VVCAiJGVycm9yTWVzc2FnZVBhdGhcbiI7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9IGVsc2UgeworICAgICAgICBteSAkdGVzdFBhdGggPSAiJHRlc3REaXJlY3Rvcnkv
JHRlc3QiOworICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAgICAgICAgJHRlc3RQYXRo
ID0gdG9XaW5kb3dzUGF0aCgkdGVzdFBhdGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7CisgICAgICAgIH0KKyAgICAgICAg
cHJpbnQgT1VUICIkdGVzdFBhdGgkc3VmZml4RXhwZWN0ZWRIYXNoXG4iIGlmIGRlZmluZWQgJHRl
c3RQYXRoOworICAgIH0KKworICAgICMgRHVtcFJlbmRlclRyZWUgaXMgZXhwZWN0ZWQgdG8gZHVt
cCB0d28gImJsb2NrcyIgdG8gc3Rkb3V0IGZvciBlYWNoIHRlc3QuCisgICAgIyBFYWNoIGJsb2Nr
IGlzIHRlcm1pbmF0ZWQgYnkgYSAjRU9GIG9uIGEgbGluZSBieSBpdHNlbGYuCisgICAgIyBUaGUg
Zmlyc3QgYmxvY2sgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVzdCAoaW4gdGV4dCwgUmVuZGVyVHJl
ZSBvciBvdGhlciBmb3JtYXRzKS4KKyAgICAjIFRoZSBzZWNvbmQgYmxvY2sgaXMgZm9yIG9wdGlv
bmFsIHBpeGVsIGRhdGEgaW4gUE5HIGZvcm1hdCwgYW5kIG1heSBiZSBlbXB0eSBpZgorICAgICMg
cGl4ZWwgdGVzdHMgYXJlIG5vdCBiZWluZyBydW4sIG9yIHRoZSB0ZXN0IGRvZXMgbm90IGR1bXAg
cGl4ZWxzIChlLmcuIHRleHQgdGVzdHMpLgorICAgIG15ICRyZWFkUmVzdWx0cyA9IHJlYWRGcm9t
RHVtcFRvb2xXaXRoVGltZXIoSU4sIEVSUk9SKTsKKworICAgIG15ICRhY3R1YWwgPSAkcmVhZFJl
c3VsdHMtPntvdXRwdXR9OworICAgIG15ICRlcnJvciA9ICRyZWFkUmVzdWx0cy0+e2Vycm9yfTsK
KworICAgICRleHBlY3RlZEV4dGVuc2lvbiA9ICRyZWFkUmVzdWx0cy0+e2V4dGVuc2lvbn07Cisg
ICAgbXkgJGV4cGVjdGVkRmlsZU5hbWUgPSAiJGJhc2UtJGV4cGVjdGVkVGFnLiRleHBlY3RlZEV4
dGVuc2lvbiI7CisKKyAgICBteSAkaXNUZXh0ID0gaXNUZXh0T25seVRlc3QoJGFjdHVhbCk7CisK
KyAgICBteSAkZXhwZWN0ZWREaXIgPSBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJGJhc2UsICRp
c1RleHQsICRleHBlY3RlZEV4dGVuc2lvbik7CisgICAgJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJh
c2V9ID0gIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSI7CisKKyAgICB1bmxlc3MgKCRy
ZWFkUmVzdWx0cy0+e3N0YXR1c30gZXEgInN1Y2Nlc3MiKSB7CisgICAgICAgIG15ICRjcmFzaGVk
ID0gJHJlYWRSZXN1bHRzLT57c3RhdHVzfSBlcSAiY3Jhc2hlZCI7CisgICAgICAgIHRlc3RDcmFz
aGVkT3JUaW1lZE91dCgkdGVzdCwgJGJhc2UsICRjcmFzaGVkLCAkYWN0dWFsLCAkZXJyb3IpOwor
ICAgICAgICBjb3VudEZpbmlzaGVkVGVzdCgkdGVzdCwgJGJhc2UsICRjcmFzaGVkID8gImNyYXNo
IiA6ICJ0aW1lZG91dCIsIDApOworICAgICAgICBuZXh0OworICAgIH0KKworICAgICRkdXJhdGlv
bnN7JHRlc3R9ID0gdGltZSAtICRzdGFydFRpbWUgaWYgJHJlcG9ydDEwU2xvd2VzdDsKKworICAg
IG15ICRleHBlY3RlZDsKKworICAgIGlmICghJHJlc2V0UmVzdWx0cyAmJiBvcGVuIEVYUEVDVEVE
LCAiPCIsICIkZXhwZWN0ZWREaXIvJGV4cGVjdGVkRmlsZU5hbWUiKSB7CisgICAgICAgICRleHBl
Y3RlZCA9ICIiOworICAgICAgICB3aGlsZSAoPEVYUEVDVEVEPikgeworICAgICAgICAgICAgbmV4
dCBpZiAkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzICYmICRfID1+IC9eRURJVElORyBERUxFR0FURTov
OworICAgICAgICAgICAgJGV4cGVjdGVkIC49ICRfOworICAgICAgICB9CisgICAgICAgIGNsb3Nl
IEVYUEVDVEVEOworICAgIH0KKworICAgIGlmICgkaWdub3JlTWV0cmljcyAmJiAhJGlzVGV4dCAm
JiBkZWZpbmVkICRleHBlY3RlZCkgeworICAgICAgICAoJGFjdHVhbCwgJGV4cGVjdGVkKSA9IHN0
cmlwTWV0cmljcygkYWN0dWFsLCAkZXhwZWN0ZWQpOworICAgIH0KKworICAgIGlmICgkc2hvdWxk
Q2hlY2tMZWFrcyAmJiAkdGVzdHNQZXJEdW1wVG9vbCA9PSAxKSB7CisgICAgICAgIHByaW50ICIg
ICAgICAgICR0ZXN0IC0+ICI7CisgICAgfQorCisgICAgbXkgJGFjdHVhbFBORyA9ICIiOworICAg
IG15ICRkaWZmUE5HID0gIiI7CisgICAgbXkgJGRpZmZQZXJjZW50YWdlID0gMDsKKyAgICBteSAk
ZGlmZlJlc3VsdCA9ICJwYXNzZWQiOworCisgICAgbXkgJGFjdHVhbEhhc2ggPSAiIjsKKyAgICBt
eSAkZXhwZWN0ZWRIYXNoID0gIiI7CisgICAgbXkgJGFjdHVhbFBOR1NpemUgPSAwOworCisgICAg
d2hpbGUgKDxJTj4pIHsKKyAgICAgICAgbGFzdCBpZiAvI0VPRi87CisgICAgICAgIGlmICgvQWN0
dWFsSGFzaDogKFthLWYwLTldezMyfSkvKSB7CisgICAgICAgICAgICAkYWN0dWFsSGFzaCA9ICQx
OworICAgICAgICB9IGVsc2lmICgvRXhwZWN0ZWRIYXNoOiAoW2EtZjAtOV17MzJ9KS8pIHsKKyAg
ICAgICAgICAgICRleHBlY3RlZEhhc2ggPSAkMTsKKyAgICAgICAgfSBlbHNpZiAoL0NvbnRlbnQt
TGVuZ3RoOiAoXGQrKVxzKi8pIHsKKyAgICAgICAgICAgICRhY3R1YWxQTkdTaXplID0gJDE7Cisg
ICAgICAgICAgICByZWFkKElOLCAkYWN0dWFsUE5HLCAkYWN0dWFsUE5HU2l6ZSk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoJHZlcmJvc2UgJiYgJHBpeGVsVGVzdHMgJiYgISRyZXNldFJl
c3VsdHMgJiYgJGFjdHVhbFBOR1NpemUpIHsKKyAgICAgICAgaWYgKCRhY3R1YWxIYXNoIGVxICIi
ICYmICRleHBlY3RlZEhhc2ggZXEgIiIpIHsKKyAgICAgICAgICAgIHByaW50RmFpbHVyZU1lc3Nh
Z2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogYWN0dWFsICYgZXhwZWN0ZWQgcGl4ZWwgaGFzaGVz
IGFyZSBtaXNzaW5nISIpOworICAgICAgICB9IGVsc2lmICgkYWN0dWFsSGFzaCBlcSAiIikgewor
ICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICJXQVJOSU5HOiBh
Y3R1YWwgcGl4ZWwgaGFzaCBpcyBtaXNzaW5nISIpOworICAgICAgICB9IGVsc2lmICgkZXhwZWN0
ZWRIYXNoIGVxICIiKSB7CisgICAgICAgICAgICBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgk
dGVzdCwgIldBUk5JTkc6IGV4cGVjdGVkIHBpeGVsIGhhc2ggaXMgbWlzc2luZyEiKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmICgkYWN0dWFsUE5HU2l6ZSA+IDApIHsKKyAgICAgICAgbXkg
JGV4cGVjdGVkUGl4ZWxEaXIgPSBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJGJhc2UsIDAsICJw
bmciKTsKKworICAgICAgICBpZiAoISRyZXNldFJlc3VsdHMgJiYgKCRleHBlY3RlZEhhc2ggbmUg
JGFjdHVhbEhhc2ggfHwgKCRhY3R1YWxIYXNoIGVxICIiICYmICRleHBlY3RlZEhhc2ggZXEgIiIp
KSkgeworICAgICAgICAgICAgaWYgKC1mICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0
ZWRUYWcucG5nIikgeworICAgICAgICAgICAgICAgIG15ICRleHBlY3RlZFBOR1NpemUgPSAtcyAi
JGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyI7CisgICAgICAgICAgICAg
ICAgbXkgJGV4cGVjdGVkUE5HID0gIiI7CisgICAgICAgICAgICAgICAgb3BlbiBFWFBFQ1RFRFBO
RywgIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5wbmciOworICAgICAgICAg
ICAgICAgIHJlYWQoRVhQRUNURURQTkcsICRleHBlY3RlZFBORywgJGV4cGVjdGVkUE5HU2l6ZSk7
CisKKyAgICAgICAgICAgICAgICBvcGVuRGlmZlRvb2woKTsKKyAgICAgICAgICAgICAgICBwcmlu
dCBESUZGT1VUICJDb250ZW50LUxlbmd0aDogJGFjdHVhbFBOR1NpemVcbiI7CisgICAgICAgICAg
ICAgICAgcHJpbnQgRElGRk9VVCAkYWN0dWFsUE5HOworCisgICAgICAgICAgICAgICAgcHJpbnQg
RElGRk9VVCAiQ29udGVudC1MZW5ndGg6ICRleHBlY3RlZFBOR1NpemVcbiI7CisgICAgICAgICAg
ICAgICAgcHJpbnQgRElGRk9VVCAkZXhwZWN0ZWRQTkc7CisKKyAgICAgICAgICAgICAgICB3aGls
ZSAoPERJRkZJTj4pIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdCBpZiAvXmVycm9yLyB8fCAv
XmRpZmY6LzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKC9Db250ZW50LUxlbmd0aDogKFxkKylc
cyovKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFkKERJRkZJTiwgJGRpZmZQTkcsICQx
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGlmICgvXmRpZmY6ICguKyklIChwYXNzZWR8ZmFpbGVkKS8pIHsKKyAgICAgICAgICAg
ICAgICAgICAgJGRpZmZQZXJjZW50YWdlID0gJDEgKyAwOworICAgICAgICAgICAgICAgICAgICAk
aW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0gPSAkZGlmZlBlcmNlbnRhZ2U7CisgICAgICAgICAgICAg
ICAgICAgICRkaWZmUmVzdWx0ID0gJDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmICghJGRpZmZQZXJjZW50YWdlKSB7CisgICAgICAgICAg
ICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAicGl4ZWwgaGFzaCBm
YWlsZWQgKGJ1dCBwaXhlbCB0ZXN0IHN0aWxsIHBhc3NlcykiKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgICAgIHByaW50
RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogZXhwZWN0ZWQgaW1hZ2UgaXMg
bWlzc2luZyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgkcmVz
ZXRSZXN1bHRzIHx8ICEtZiAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBu
ZyIpIHsKKyAgICAgICAgICAgIG1rcGF0aCBjYXRmaWxlKCRleHBlY3RlZFBpeGVsRGlyLCBkaXJu
YW1lKCRiYXNlKSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4cGVjdGVkUGl4ZWxEaXI7CisgICAg
ICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFn
LnBuZyIsICRhY3R1YWxQTkcpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCRhY3R1YWxIYXNo
IG5lICIiICYmICgkcmVzZXRSZXN1bHRzIHx8ICEtZiAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2Ut
JGV4cGVjdGVkVGFnLmNoZWNrc3VtIikpIHsKKyAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhw
ZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcuY2hlY2tzdW0iLCAkYWN0dWFsSGFzaCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZHVtcFRvb2xEaWRDcmFzaCgpKSB7CisgICAg
ICAgICRyZXN1bHQgPSAiY3Jhc2giOworICAgICAgICB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJHRl
c3QsICRiYXNlLCAxLCAkYWN0dWFsLCAkZXJyb3IpOworICAgIH0gZWxzaWYgKCFkZWZpbmVkICRl
eHBlY3RlZCkgeworICAgICAgICBpZiAoJHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHByaW50ICJu
ZXcgIiAuICgkcmVzZXRSZXN1bHRzID8gInJlc3VsdCIgOiAidGVzdCIpIC4iXG4iOworICAgICAg
ICAgICAgJGF0TGluZVN0YXJ0ID0gMTsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0ID0gIm5l
dyI7CisKKyAgICAgICAgaWYgKCRnZW5lcmF0ZU5ld1Jlc3VsdHMgfHwgJHJlc2V0UmVzdWx0cykg
eworICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJGV4cGVjdGVkRGlyLCBkaXJuYW1lKCRiYXNl
KSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4cGVjdGVkRGlyOworICAgICAgICAgICAgd3JpdGVU
b0ZpbGUoIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSIsICRhY3R1YWwpOworICAgICAg
ICB9CisgICAgICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisgICAg
ICAgIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCRiYXNlLCAkYWN0dWFsKTsKKyAgICAgICAg
aWYgKCEkcmVzZXRSZXN1bHRzKSB7CisgICAgICAgICAgICAjIEFsd2F5cyBwcmludCB0aGUgZmls
ZSBuYW1lIGZvciBuZXcgdGVzdHMsIGFzIHRoZXkgd2lsbCBwcm9iYWJseSBuZWVkIHNvbWUgbWFu
dWFsIGluc3BlY3Rpb24uCisgICAgICAgICAgICAjIGluIHZlcmJvc2UgbW9kZSB3ZSBhbHJlYWR5
IHByaW50ZWQgdGhlIHRlc3QgY2FzZSwgc28gbm8gbmVlZCB0byBkbyBpdCBhZ2Fpbi4KKyAgICAg
ICAgICAgIHVubGVzcyAoJHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBwcmludCAiXG4iIHVu
bGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgICAgICAgICAgICAgcHJpbnQgIiR0ZXN0IC0+ICI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBteSAkcmVzdWx0c0RpciA9IGNhdGRpcigkZXhwZWN0
ZWREaXIsIGRpcm5hbWUoJGJhc2UpKTsKKyAgICAgICAgICAgIGlmICgkZ2VuZXJhdGVOZXdSZXN1
bHRzKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIm5ldyAocmVzdWx0cyBnZW5lcmF0ZWQgaW4g
JHJlc3VsdHNEaXIpXG4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBw
cmludCAibmV3XG4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJGF0TGluZVN0YXJ0ID0g
MTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhY3R1YWwgZXEgJGV4cGVjdGVkICYmICRkaWZm
UmVzdWx0IGVxICJwYXNzZWQiKSB7CisgICAgICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICAg
ICAgcHJpbnQgInN1Y2NlZWRlZFxuIjsKKyAgICAgICAgICAgICRhdExpbmVTdGFydCA9IDE7Cisg
ICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCA9ICJtYXRjaCI7CisgICAgICAgIGRlbGV0ZUV4cGVj
dGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJHJlc3Vs
dCA9ICJtaXNtYXRjaCI7CisKKyAgICAgICAgbXkgJHBpeGVsVGVzdEZhaWxlZCA9ICRwaXhlbFRl
c3RzICYmICRkaWZmUE5HICYmICRkaWZmUE5HIG5lICIiOworICAgICAgICBteSAkdGVzdEZhaWxl
ZCA9ICRhY3R1YWwgbmUgJGV4cGVjdGVkOworCisgICAgICAgIG15ICRtZXNzYWdlID0gISR0ZXN0
RmFpbGVkID8gInBpeGVsIHRlc3QgZmFpbGVkIiA6ICJmYWlsZWQiOworCisgICAgICAgIGlmICgo
JHRlc3RGYWlsZWQgfHwgJHBpeGVsVGVzdEZhaWxlZCkgJiYgJGFkZFBsYXRmb3JtRXhjZXB0aW9u
cykgeworICAgICAgICAgICAgbXkgJHRlc3RCYXNlID0gY2F0ZmlsZSgkdGVzdERpcmVjdG9yeSwg
JGJhc2UpOworICAgICAgICAgICAgbXkgJGV4cGVjdGVkQmFzZSA9IGNhdGZpbGUoJGV4cGVjdGVk
RGlyLCAkYmFzZSk7CisgICAgICAgICAgICBteSAkdGVzdElzTWF4aW1hbGx5UGxhdGZvcm1TcGVj
aWZpYyA9ICR0ZXN0QmFzZSA9fiBtfF5cUSRwbGF0Zm9ybVRlc3REaXJlY3RvcnlcRS98OworICAg
ICAgICAgICAgbXkgJGV4cGVjdGVkUmVzdWx0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmljID0g
JGV4cGVjdGVkQmFzZSA9fiBtfF5cUSRwbGF0Zm9ybVRlc3REaXJlY3RvcnlcRS98OworICAgICAg
ICAgICAgaWYgKCEkdGVzdElzTWF4aW1hbGx5UGxhdGZvcm1TcGVjaWZpYyAmJiAhJGV4cGVjdGVk
UmVzdWx0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmljKSB7CisgICAgICAgICAgICAgICAgbWtw
YXRoIGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgZGlybmFtZSgkYmFzZSkpOworICAg
ICAgICAgICAgICAgIGlmICgkdGVzdEZhaWxlZCkgeworICAgICAgICAgICAgICAgICAgICBteSAk
ZXhwZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGV4cGVjdGVk
RmlsZU5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRleHBlY3RlZEZp
bGUiLCAkYWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRw
aXhlbFRlc3RGYWlsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGV4cGVjdGVkRmlsZSA9
IGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgIiRiYXNlLSRleHBlY3RlZFRhZy5jaGVj
a3N1bSIpOworICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVkRmlsZSIs
ICRhY3R1YWxIYXNoKTsKKworICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWRGaWxlID0gY2F0
ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIpOwor
ICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVkRmlsZSIsICRhY3R1YWxQ
TkcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAiIChy
ZXN1bHRzIGdlbmVyYXRlZCBpbiAkcGxhdGZvcm1UZXN0RGlyZWN0b3J5KSI7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKworICAgICAgICBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkdGVz
dCwgJG1lc3NhZ2UpOworCisgICAgICAgIG15ICRkaXIgPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5
LyRiYXNlIjsKKyAgICAgICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9yIGRpZSAiRmFpbGVkIHRv
IGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICAgICAgbXkgJHRlc3ROYW1lID0gJDE7
CisgICAgICAgIG1rcGF0aCAkZGlyOworCisgICAgICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFs
UmVzdWx0cygkYmFzZSk7CisgICAgICAgIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCRiYXNl
LCAkYWN0dWFsKTsKKworICAgICAgICBpZiAoJHBpeGVsVGVzdEZhaWxlZCkgeworICAgICAgICAg
ICAgJGltYWdlc1ByZXNlbnR7JGJhc2V9ID0gMTsKKworICAgICAgICAgICAgd3JpdGVUb0ZpbGUo
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFnLnBuZyIsICRhY3R1YWxQTkcp
OworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0k
ZGlmZnNUYWcucG5nIiwgJGRpZmZQTkcpOworCisgICAgICAgICAgICBteSAkZXhwZWN0ZWRQaXhl
bERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwgMCwgInBuZyIpOworICAgICAg
ICAgICAgY29weSgiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIsICIk
dGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIpOworCisgICAgICAg
ICAgICBvcGVuIERJRkZIVE1MLCAiPiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNU
YWcuaHRtbCIgb3IgZGllOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjxodG1sPlxuIjsK
KyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8aGVhZD5cbiI7CisgICAgICAgICAgICBwcmlu
dCBESUZGSFRNTCAiPHRpdGxlPiRiYXNlIEltYWdlIENvbXBhcmU8L3RpdGxlPlxuIjsKKyAgICAg
ICAgICAgIHByaW50IERJRkZIVE1MICI8c2NyaXB0IGxhbmd1YWdlPVwiSmF2YXNjcmlwdFwiIHR5
cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAi
dmFyIGN1cnJlbnRJbWFnZSA9IDA7XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgInZh
ciBpbWFnZU5hbWVzID0gbmV3IEFycmF5KFwiQWN0dWFsXCIsIFwiRXhwZWN0ZWRcIik7XG4iOwor
ICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgInZhciBpbWFnZVBhdGhzID0gbmV3IEFycmF5KFwi
JHRlc3ROYW1lLSRhY3R1YWxUYWcucG5nXCIsIFwiJHRlc3ROYW1lLSRleHBlY3RlZFRhZy5wbmdc
Iik7XG4iOworICAgICAgICAgICAgaWYgKC1mICIkdGVzdERpcmVjdG9yeS8kYmFzZS13M2MucG5n
IikgeworICAgICAgICAgICAgICAgIGNvcHkoIiR0ZXN0RGlyZWN0b3J5LyRiYXNlLXczYy5wbmci
LCAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLXczYy5wbmciKTsKKyAgICAgICAgICAgICAg
ICBwcmludCBESUZGSFRNTCAiaW1hZ2VOYW1lcy5wdXNoKFwiVzNDXCIpO1xuIjsKKyAgICAgICAg
ICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VQYXRocy5wdXNoKFwiJHRlc3ROYW1lLXczYy5w
bmdcIik7XG4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgImZ1
bmN0aW9uIGFuaW1hdGVJbWFnZSgpIHtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAi
ICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYW5pbWF0ZWRJbWFnZVwi
KTtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIHZhciBpbWFnZVRleHQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChcImltYWdlVGV4dFwiKTtcbiI7CisgICAgICAgICAgICBw
cmludCBESUZGSFRNTCAiICAgIGltYWdlLnNyYyA9IGltYWdlUGF0aHNbY3VycmVudEltYWdlXTtc
biI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIGltYWdlVGV4dC5pbm5lckhUTUwg
PSBpbWFnZU5hbWVzW2N1cnJlbnRJbWFnZV0gKyBcIiBJbWFnZVwiO1xuIjsKKyAgICAgICAgICAg
IHByaW50IERJRkZIVE1MICIgICAgY3VycmVudEltYWdlID0gKGN1cnJlbnRJbWFnZSArIDEpICUg
aW1hZ2VOYW1lcy5sZW5ndGg7XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIiAgICBz
ZXRUaW1lb3V0KCdhbmltYXRlSW1hZ2UoKScsMjAwMCk7XG4iOworICAgICAgICAgICAgcHJpbnQg
RElGRkhUTUwgIn1cbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC9zY3JpcHQ+XG4i
OworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvaGVhZD5cbiI7CisgICAgICAgICAgICBw
cmludCBESUZGSFRNTCAiPGJvZHkgb25Mb2FkPVwiYW5pbWF0ZUltYWdlKCk7XCI+XG4iOworICAg
ICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0YWJsZT5cbiI7CisgICAgICAgICAgICBpZiAoJGRp
ZmZQZXJjZW50YWdlKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0cj5cbiI7
CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD5EaWZmZXJlbmNlIGJldHdlZW4g
aW1hZ2VzOiA8YSBocmVmPVwiJHRlc3ROYW1lLSRkaWZmc1RhZy5wbmdcIj4kZGlmZlBlcmNlbnRh
Z2UlPC9hPjwvdGQ+XG4iOworICAgICAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxu
IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8dHI+XG4iOwor
ICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD48YSBocmVmPVwiIiAuIHRvVVJMKCIkdGVz
dERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPnRlc3QgZmlsZTwvYT48L3RkPlxuIjsKKyAgICAgICAg
ICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1M
ICI8dHI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZCBpZD1cImltYWdlVGV4
dFwiIHN0eWxlPVwidGV4dC13ZWlnaHQ6IGJvbGQ7XCI+QWN0dWFsIEltYWdlPC90ZD5cbiI7Cisg
ICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC90cj5cbiI7CisgICAgICAgICAgICBwcmludCBE
SUZGSFRNTCAiPHRyPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8dGQ+PGltZyBz
cmM9XCIkdGVzdE5hbWUtJGFjdHVhbFRhZy5wbmdcIiBpZD1cImFuaW1hdGVkSW1hZ2VcIj48L3Rk
PlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKKyAgICAgICAgICAg
IHByaW50IERJRkZIVE1MICI8L3RhYmxlPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1M
ICI8L2JvZHk+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvaHRtbD5cbiI7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoJGVycm9yKSB7CisgICAgICAgIG15ICRkaXIgPSAi
JHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKKyAgICAgICAgJGRpciA9fiBzfC8oW14vXSsp
JHx8IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICAg
ICAgbWtwYXRoICRkaXI7CisgICAgICAgIAorICAgICAgICB3cml0ZVRvRmlsZSgiJHRlc3RSZXN1
bHRzRGlyZWN0b3J5LyRiYXNlLSRlcnJvclRhZy50eHQiLCAkZXJyb3IpOworICAgICAgICAKKyAg
ICAgICAgJGNvdW50c3tlcnJvcn0rKzsKKyAgICAgICAgcHVzaCBAeyR0ZXN0c3tlcnJvcn19LCAk
dGVzdDsKKyAgICB9CisKKyAgICBjb3VudEZpbmlzaGVkVGVzdCgkdGVzdCwgJGJhc2UsICRyZXN1
bHQsICRpc1RleHQpOworCisgICAgIyAtLXJlc2V0LXJlc3VsdHMgZG9lcyBub3QgY2hlY2sgcGFz
cyB2cy4gZmFpbCwgc28gZXhpdEFmdGVyTkZhaWx1cmVzIG1ha2VzIG5vIHNlbnNlIHdpdGggLS1y
ZXNldC1yZXN1bHRzLgorICAgIGlmICgkZXhpdEFmdGVyTkZhaWx1cmVzICYmICEkcmVzZXRSZXN1
bHRzKSB7CisgICAgICAgIG15ICRwYXNzQ291bnQgPSAkY291bnRze21hdGNofSB8fCAwOyAjICRj
b3VudHN7bWF0Y2h9IHdpbGwgYmUgdW5kZWZpbmVkIGlmIHdlJ3ZlIG5vdCB5ZXQgcGFzc2VkIGEg
dGVzdCAoZS5nLiB0aGUgZmlyc3QgdGVzdCBmYWlscykuCisgICAgICAgIG15ICRmYWlsdXJlQ291
bnQgPSAkY291bnQgLSAkcGFzc0NvdW50OyAjICJGYWlsdXJlIiBoZXJlIGluY2x1ZGVzIG5ldyB0
ZXN0cywgdGltZW91dHMsIGNyYXNoZXMsIGV0Yy4KKyAgICAgICAgaWYgKCRmYWlsdXJlQ291bnQg
Pj0gJGV4aXRBZnRlck5GYWlsdXJlcykgeworICAgICAgICAgICAgcHJpbnQgIlxuRXhpdGluZyBl
YXJseSBhZnRlciAkZmFpbHVyZUNvdW50IGZhaWx1cmVzLiAkY291bnQgdGVzdHMgcnVuLiI7Cisg
ICAgICAgICAgICBjbG9zZUR1bXBUb29sKCk7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9
CisgICAgfQorfQorbXkgJHRvdGFsVGVzdGluZ1RpbWUgPSB0aW1lIC0gJG92ZXJhbGxTdGFydFRp
bWU7CitteSAkd2FpdFRpbWUgPSBnZXRXYWl0VGltZSgpOworaWYgKCR3YWl0VGltZSA+IDAuMSkg
eworICAgIG15ICRub3JtYWxpemVkVGVzdGluZ1RpbWUgPSAkdG90YWxUZXN0aW5nVGltZSAtICR3
YWl0VGltZTsKKyAgICBwcmludGYgIlxuJTAuMmZzIEhUVFBEIHdhaXRpbmcgdGltZVxuIiwgJHdh
aXRUaW1lIC4gIiI7CisgICAgcHJpbnRmICIlMC4yZnMgbm9ybWFsaXplZCB0ZXN0aW5nIHRpbWUi
LCAkbm9ybWFsaXplZFRlc3RpbmdUaW1lIC4gIiI7Cit9CitwcmludGYgIlxuJTAuMmZzIHRvdGFs
IHRlc3RpbmcgdGltZVxuIiwgJHRvdGFsVGVzdGluZ1RpbWUgLiAiIjsKKworISRpc0R1bXBUb29s
T3BlbiB8fCBkaWUgIkZhaWxlZCB0byBjbG9zZSAkZHVtcFRvb2xOYW1lLlxuIjsKKworJGlzSHR0
cGRPcGVuID0gIWNsb3NlSFRUUEQoKTsKK2Nsb3NlV2ViU29ja2V0U2VydmVyKCk7CisKKyMgQmVj
YXVzZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhpcyBzY3JpcHQgYXJlIHJ1bm5pbmcgY29uY3Vy
cmVudGx5IHdlIGNhbm5vdCAKKyMgc2FmZWx5IGRlbGV0ZSB0aGlzIHN5bWxpbmsuCisjIHN5c3Rl
bSAicm0gL3RtcC9MYXlvdXRUZXN0cyI7CisKKyMgRklYTUU6IERvIHdlIHJlYWxseSB3YW50IHRv
IGNoZWNrIHRoZSBpbWFnZS1jb21wYXJpc29uIHRvb2wgZm9yIGxlYWtzIGV2ZXJ5IHRpbWU/Citp
ZiAoJGlzRGlmZlRvb2xPcGVuICYmICRzaG91bGRDaGVja0xlYWtzKSB7CisgICAgJHRvdGFsTGVh
a3MgKz0gY291bnRBbmRQcmludExlYWtzKCJJbWFnZURpZmYiLCAkaW1hZ2VEaWZmVG9vbFBJRCwg
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS9JbWFnZURpZmYtbGVha3MudHh0Iik7Cit9CisKK2lmICgk
dG90YWxMZWFrcykgeworICAgIGlmICgkbWVyZ2VEZXB0aCkgeworICAgICAgICBwYXJzZUxlYWtz
YW5kUHJpbnRVbmlxdWVMZWFrcygpOworICAgIH0gZWxzZSB7IAorICAgICAgICBwcmludCAiXG5X
QVJOSU5HOiAkdG90YWxMZWFrcyB0b3RhbCBsZWFrcyBmb3VuZCFcbiI7CisgICAgICAgIHByaW50
ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwgbGVha3MgcmVzdWx0cy5cbiIgaWYgKCRsZWFrc091
dHB1dEZpbGVOdW1iZXIgPiAyKTsKKyAgICB9Cit9CisKK2Nsb3NlIElOOworY2xvc2UgT1VUOwor
Y2xvc2UgRVJST1I7CisKK2lmICgkcmVwb3J0MTBTbG93ZXN0KSB7CisgICAgcHJpbnQgIlxuXG5U
aGUgMTAgc2xvd2VzdCB0ZXN0czpcblxuIjsKKyAgICBteSAkY291bnQgPSAwOworICAgIGZvciBt
eSAkdGVzdCAoc29ydCBzbG93ZXN0Y21wIGtleXMgJWR1cmF0aW9ucykgeworICAgICAgICBwcmlu
dGYgIiUwLjJmIHNlY3M6ICVzXG4iLCAkZHVyYXRpb25zeyR0ZXN0fSwgJHRlc3Q7CisgICAgICAg
IGxhc3QgaWYgKyskY291bnQgPT0gMTA7CisgICAgfQorfQorCitwcmludCAiXG4iOworCitpZiAo
JHNraXBwZWRPbmx5ICYmICRjb3VudHN7Im1hdGNoIn0pIHsKKyAgICBwcmludCAiVGhlIGZvbGxv
d2luZyB0ZXN0cyBhcmUgaW4gdGhlIFNraXBwZWQgZmlsZSAoIiAuIEZpbGU6OlNwZWMtPmFiczJy
ZWwoIiRwbGF0Zm9ybVRlc3REaXJlY3RvcnkvU2tpcHBlZCIsICR0ZXN0RGlyZWN0b3J5KSAuICIp
LCBidXQgc3VjY2VlZGVkOlxuIjsKKyAgICBmb3JlYWNoIG15ICR0ZXN0IChAeyR0ZXN0c3sibWF0
Y2gifX0pIHsKKyAgICAgICAgcHJpbnQgIiAgJHRlc3RcbiI7CisgICAgfQorfQorCitpZiAoJHJl
c2V0UmVzdWx0cyB8fCAoJGNvdW50c3ttYXRjaH0gJiYgJGNvdW50c3ttYXRjaH0gPT0gJGNvdW50
KSkgeworICAgIHByaW50ICJhbGwgJGNvdW50IHRlc3QgY2FzZXMgc3VjY2VlZGVkXG4iOworICAg
IHVubGluayAkdGVzdFJlc3VsdHM7CisgICAgZXhpdDsKK30KKworcHJpbnRSZXN1bHRzKCk7CisK
K21rcGF0aCAkdGVzdFJlc3VsdHNEaXJlY3Rvcnk7CisKK29wZW4gSFRNTCwgIj4iLCAkdGVzdFJl
c3VsdHMgb3IgZGllICJGYWlsZWQgdG8gb3BlbiAkdGVzdFJlc3VsdHMuICQhIjsKK3ByaW50IEhU
TUwgIjxodG1sPlxuIjsKK3ByaW50IEhUTUwgIjxoZWFkPlxuIjsKK3ByaW50IEhUTUwgIjx0aXRs
ZT5MYXlvdXQgVGVzdCBSZXN1bHRzPC90aXRsZT5cbiI7CitwcmludCBIVE1MICI8L2hlYWQ+XG4i
OworcHJpbnQgSFRNTCAiPGJvZHk+XG4iOworCitpZiAoJGlnbm9yZU1ldHJpY3MpIHsKKyAgICBw
cmludCBIVE1MICI8aDQ+VGVzdGVkIHdpdGggbWV0cmljcyBpZ25vcmVkLjwvaDQ+IjsKK30KKwor
cHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7bWlzbWF0Y2h9fSwgIlRl
c3RzIHdoZXJlIHJlc3VsdHMgZGlkIG5vdCBtYXRjaCBleHBlY3RlZCByZXN1bHRzIiwgXCZsaW5r
c0Zvck1pc21hdGNoVGVzdCk7CitwcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihAeyR0
ZXN0c3t0aW1lZG91dH19LCAiVGVzdHMgdGhhdCB0aW1lZCBvdXQiLCBcJmxpbmtzRm9yRXJyb3JU
ZXN0KTsKK3ByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9uKEB7JHRlc3Rze2NyYXNofX0s
ICJUZXN0cyB0aGF0IGNhdXNlZCB0aGUgRHVtcFJlbmRlclRyZWUgdG9vbCB0byBjcmFzaCIsIFwm
bGlua3NGb3JFcnJvclRlc3QpOworcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHsk
dGVzdHN7ZXJyb3J9fSwgIlRlc3RzIHRoYXQgaGFkIHN0ZGVyciBvdXRwdXQiLCBcJmxpbmtzRm9y
RXJyb3JUZXN0KTsKK3ByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9uKEB7JHRlc3Rze25l
d319LCAiVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyAocHJvYmFibHkgbmV3KSIs
IFwmbGlua3NGb3JOZXdUZXN0KTsKKworcHJpbnQgSFRNTCAiPC9ib2R5PlxuIjsKK3ByaW50IEhU
TUwgIjwvaHRtbD5cbiI7CitjbG9zZSBIVE1MOworCitteSBAY29uZmlndXJhdGlvbkFyZ3MgPSBh
cmd1bWVudHNGb3JDb25maWd1cmF0aW9uKCk7CisKK2lmIChpc0d0aygpKSB7CisgIHN5c3RlbSAi
V2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIiLCBAY29uZmlndXJhdGlvbkFyZ3MsICJm
aWxlOi8vIi4kdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKK30gZWxzaWYgKGlzUXQoKSkg
eworICB1bnNoaWZ0IEBjb25maWd1cmF0aW9uQXJncywgcXcoLWdyYXBoaWNzc3lzdGVtIHJhc3Rl
ciAtc3R5bGUgd2luZG93cyk7CisgIGlmIChpc0N5Z3dpbigpKSB7CisgICAgJHRlc3RSZXN1bHRz
ID0gIi8iIC4gdG9XaW5kb3dzUGF0aCgkdGVzdFJlc3VsdHMpOworICAgICR0ZXN0UmVzdWx0cyA9
fiBzL1xcL1wvL2c7CisgIH0KKyAgc3lzdGVtICJXZWJLaXRUb29scy9TY3JpcHRzL3J1bi1sYXVu
Y2hlciIsIEBjb25maWd1cmF0aW9uQXJncywgImZpbGU6Ly8iLiR0ZXN0UmVzdWx0cyBpZiAkbGF1
bmNoU2FmYXJpOworfSBlbHNpZiAoaXNDeWd3aW4oKSkgeworICBzeXN0ZW0gImN5Z3N0YXJ0Iiwg
JHRlc3RSZXN1bHRzIGlmICRsYXVuY2hTYWZhcmk7Cit9IGVsc2UgeworICBzeXN0ZW0gIldlYktp
dFRvb2xzL1NjcmlwdHMvcnVuLXNhZmFyaSIsIEBjb25maWd1cmF0aW9uQXJncywgIi1OU09wZW4i
LCAkdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKK30KKworY2xvc2VDeWdwYXRocygpIGlm
IGlzQ3lnd2luKCk7CisKK2V4aXQgMTsKKworc3ViIGNvdW50QW5kUHJpbnRMZWFrcygkJCQpCit7
CisgICAgbXkgKCRkdW1wVG9vbE5hbWUsICRkdW1wVG9vbFBJRCwgJGxlYWtzRmlsZVBhdGgpID0g
QF87CisKKyAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgJGF0TGluZVN0
YXJ0ID0gMTsKKworICAgICMgV2UgYXJlIGV4Y2x1ZGluZyB0aGUgZm9sbG93aW5nIHJlcG9ydGVk
IGxlYWtzIHNvIHRoZXkgZG9uJ3QgZ2V0IGluIG91ciB3YXkgd2hlbiBsb29raW5nIGZvciBXZWJL
aXQgbGVha3M6CisgICAgIyBUaGlzIGFsbG93cyB1cyBpZ25vcmUga25vd24gbGVha3MgYW5kIG9u
bHkgYmUgYWxlcnRlZCB3aGVuIG5ldyBsZWFrcyBvY2N1ci4gU29tZSBsZWFrcyBhcmUgaW4gdGhl
IG9sZAorICAgICMgdmVyc2lvbnMgb2YgdGhlIHN5c3RlbSBmcmFtZXdvcmtzIHRoYXQgYXJlIGJl
aW5nIHVzZWQgYnkgdGhlIGxlYWtzIGJvdHMuIEV2ZW4gdGhvdWdoIGEgbGVhayBoYXMgYmVlbgor
ICAgICMgZml4ZWQsIGl0IHdpbGwgYmUgbGlzdGVkIGhlcmUgdW50aWwgdGhlIGJvdCBoYXMgYmVl
biB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIGZyYW1ld29ya3MuCisKKyAgICBteSBAdHlwZXNUb0V4
Y2x1ZGUgPSAoCisgICAgKTsKKworICAgIG15IEBjYWxsU3RhY2tzVG9FeGNsdWRlID0gKAorICAg
ICAgICAiRmxhc2hfRW5mb3JjZUxvY2FsU2VjdXJpdHkiICMgbGVha3MgaW4gRmxhc2ggcGx1Zy1p
biBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDQ5NzQ3CisgICAgKTsKKworICAgIGlmIChpc1RpZ2Vy
KCkpIHsKKyAgICAgICAgIyBMZWFrIGxpc3QgZm9yIHRoZSB2ZXJzaW9uIG9mIFRpZ2VyIHVzZWQg
b24gdGhlIGJ1aWxkIGJvdC4KKyAgICAgICAgcHVzaCBAY2FsbFN0YWNrc1RvRXhjbHVkZSwgKAor
ICAgICAgICAgICAgIkNGUnVuTG9vcFJ1blNwZWNpZmljIFxcfCBtYWxsb2Nfem9uZV9tYWxsb2Mi
LCAiQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgXFx8IENGQWxsb2NhdG9yQWxsb2NhdGUgIiwgIyBsZWFr
IGluIENGUnVuTG9vcFJ1blNwZWNpZmljLCByZGFyOi8vcHJvYmxlbS80NjcwODM5CisgICAgICAg
ICAgICAiQ0dJbWFnZVNvdXJjZUdldFByb3BlcnRpZXNBdEluZGV4IiwgIyBsZWFrIGluIEltYWdl
SU8sIHJkYXI6Ly9wcm9ibGVtLzQ2Mjg4MDkKKyAgICAgICAgICAgICJGT0dldENvdmVyZWRVbmlj
b2RlQ2hhcnMiLCAjIGxlYWsgaW4gQVRTLCByZGFyOi8vcHJvYmxlbS8zOTQzNjA0CisgICAgICAg
ICAgICAiR2V0TGluZURpcmVjdGlvblByZWZlcmVuY2UiLCAiSW5pdFVuaWNvZGVVdGlsaXRpZXMi
LCAjIGxlYWtzIHRvb2wgZmFsc2VseSByZXBvcnRpbmcgbGVhayBpbiBDRk5vdGlmaWNhdGlvbkNl
bnRlckFkZE9ic2VydmVyLCByZGFyOi8vcHJvYmxlbS80OTY0NzkwCisgICAgICAgICAgICAiSUND
RlByZWZXcmFwcGVyOjpHZXRQcmVmRGljdGlvbmFyeSIsICMgbGVha3MgaW4gSW50ZXJuZXQgQ29u
ZmlnLiBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDQ5Nzk0CisgICAgICAgICAgICAiTlNIVFRQVVJM
UHJvdG9jb2wgc2V0UmVzcG9uc2VIZWFkZXI6IiwgIyBsZWFrIGluIG11bHRpcGFydC9taXhlZC1y
ZXBsYWNlIGhhbmRsaW5nIGluIEZvdW5kYXRpb24sIG5vIFJhZGFyLCBidXQgZml4ZWQgaW4gTGVv
cGFyZAorICAgICAgICAgICAgIk5TVVJMQ2FjaGUgY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0Iiwg
IyBsZWFrIGluIENGVVJMIGNhY2hlLCByZGFyOi8vcHJvYmxlbS80NzY4NDMwCisgICAgICAgICAg
ICAiUENGcmFnUHJlcGFyZUNsb3N1cmVGcm9tRmlsZSIsICMgbGVhayBpbiBDb2RlIEZyYWdtZW50
IE1hbmFnZXIsIHJkYXI6Ly9wcm9ibGVtLzM0MjY5OTgKKyAgICAgICAgICAgICJXZWJDb3JlOjpT
ZWxlY3Rpb246OnRvUmFuZ2UiLCAjIGJ1ZyBpbiAnbGVha3MnLCByZGFyOi8vcHJvYmxlbS80OTY3
OTQ5CisgICAgICAgICAgICAiV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSIsICMg
YnVnIGluICdsZWFrcycsIHJkYXI6Ly9wcm9ibGVtLzQ5ODU4MDYKKyAgICAgICAgICAgICJfQ0ZQ
cmVmZXJlbmNlc0RvbWFpbkRlZXBDb3B5RGljdGlvbmFyeSIsICMgbGVhayBpbiBDRlByZWZlcmVu
Y2VzLCByZGFyOi8vcHJvYmxlbS80MjIwNzg2CisgICAgICAgICAgICAiX29iamNfbXNnRm9yd2Fy
ZCIsICMgbGVhayBpbiBOU1NwZWxsQ2hlY2tlciwgcmRhcjovL3Byb2JsZW0vNDk2NTI3OAorICAg
ICAgICAgICAgImdsZEdldFN0cmluZyIsICMgbGVhayBpbiBPcGVuR0wsIHJkYXI6Ly9wcm9ibGVt
LzUwMTM2OTkKKyAgICAgICAgICAgICJfc2V0RGVmYXVsdFVzZXJJbmZvRnJvbVVSTCIsICMgbGVh
ayBpbiBOU0hUVFBBdXRoZW50aWNhdG9yLCByZGFyOi8vcHJvYmxlbS81NTQ2NDUzIAorICAgICAg
ICAgICAgIlNTTEhhbmRzaGFrZSIsICMgbGVhayBpbiBTU0wsIHJkYXI6Ly9wcm9ibGVtLzU1NDY0
NDAgCisgICAgICAgICAgICAiU2VjQ2VydGlmaWNhdGVDcmVhdGVGcm9tRGF0YSIsICMgbGVhayBp
biBTU0wgY29kZSwgcmRhcjovL3Byb2JsZW0vNDQ2NDM5NworICAgICAgICApOworICAgICAgICBw
dXNoIEB0eXBlc1RvRXhjbHVkZSwgKAorICAgICAgICAgICAgIlRIUkQiLCAjIGJ1ZyBpbiAnbGVh
a3MnLCByZGFyOi8vcHJvYmxlbS8zMzg3NzgzCisgICAgICAgICAgICAiRFJIVCIsICMgZGl0dG8g
KGVuZGlhbiBsaXR0bGUgaGF0ZSBpKQorICAgICAgICApOworICAgIH0KKworICAgIGlmIChpc0xl
b3BhcmQoKSkgeworICAgICAgICAjIExlYWsgbGlzdCBmb3IgdGhlIHZlcnNpb24gb2YgTGVvcGFy
ZCB1c2VkIG9uIHRoZSBidWlsZCBib3QuCisgICAgICAgIHB1c2ggQGNhbGxTdGFja3NUb0V4Y2x1
ZGUsICgKKyAgICAgICAgICAgICJDRkhUVFBNZXNzYWdlQXBwZW5kQnl0ZXMiLCAjIGxlYWsgaW4g
Q0ZOZXR3b3JrLCByZGFyOi8vcHJvYmxlbS81NDM1OTEyCisgICAgICAgICAgICAic2VuZERpZFJl
Y2VpdmVEYXRhQ2FsbGJhY2siLCAjIGxlYWsgaW4gQ0ZOZXR3b3JrLCByZGFyOi8vcHJvYmxlbS81
NDQxNjE5CisgICAgICAgICAgICAiX0NGSFRUUFJlYWRTdHJlYW1SZWFkTWFyayIsICMgbGVhayBp
biBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE0NjgKKyAgICAgICAgICAgICJodHRwUHJv
dG9jb2xTdGFydCIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0Njg4MzcK
KyAgICAgICAgICAgICJfQ0ZVUkxDb25uZWN0aW9uU2VuZENhbGxiYWNrcyIsICMgbGVhayBpbiBD
Rk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE2MDAKKyAgICAgICAgICAgICJEaXNwYXRjaFFU
TXNnIiwgIyBsZWFrIGluIFF1aWNrVGltZSwgUFBDIG9ubHksIHJkYXI6Ly9wcm9ibGVtLzU2Njcx
MzIKKyAgICAgICAgICAgICJRVE1vdmllQ29udGVudFZpZXcgY3JlYXRlVmlzdWFsQ29udGV4dCIs
ICMgbGVhayBpbiBRdWlja1RpbWUsIFBQQyBvbmx5LCByZGFyOi8vcHJvYmxlbS81NjY3MTMyCisg
ICAgICAgICAgICAiX0NvcHlBcmNoaXRlY3R1cmVzRm9ySlZNVmVyc2lvbiIsICMgbGVhayBpbiBK
YXZhLCByZGFyOi8vcHJvYmxlbS81OTEwODIzCisgICAgICAgICk7CisgICAgfQorCisgICAgaWYg
KGlzU25vd0xlb3BhcmQoKSkgeworICAgICAgICBwdXNoIEBjYWxsU3RhY2tzVG9FeGNsdWRlLCAo
CisgICAgICAgICAgICAicmVhZE1ha2VyTm90ZVByb3BzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzE1
NjQzMj4gbGVhayBpbiBJbWFnZUlPCisgICAgICAgICAgICAiUVRLaXRNb3ZpZUNvbnRyb2xsZXJW
aWV3IGNvbXBsZXRlVUlTZXR1cCIsICMgPHJkYXI6Ly9wcm9ibGVtLzcxNTUxNTY+IGxlYWsgaW4g
UVRLaXQKKyAgICAgICAgICAgICJnZXRWTUluaXRBcmdzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzcx
NDQ0ND4gbGVhayBpbiBKYXZhCisgICAgICAgICAgICAiSmF2YV9qYXZhX2xhbmdfU3lzdGVtX2lu
aXRQcm9wZXJ0aWVzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzcxNDQ2NT4gbGVhayBpbiBKYXZhCisg
ICAgICAgICk7CisgICAgfQorCisgICAgbXkgJGxlYWtzVG9vbCA9IHNvdXJjZURpcigpIC4gIi9X
ZWJLaXRUb29scy9TY3JpcHRzL3J1bi1sZWFrcyI7CisgICAgbXkgJGV4Y2x1ZGVTdHJpbmcgPSAi
LS1leGNsdWRlLWNhbGxzdGFjayAnIiAuIChqb2luICInIC0tZXhjbHVkZS1jYWxsc3RhY2sgJyIs
IEBjYWxsU3RhY2tzVG9FeGNsdWRlKSAuICInIjsKKyAgICAkZXhjbHVkZVN0cmluZyAuPSAiIC0t
ZXhjbHVkZS10eXBlICciIC4gKGpvaW4gIicgLS1leGNsdWRlLXR5cGUgJyIsIEB0eXBlc1RvRXhj
bHVkZSkgLiAiJyIgaWYgQHR5cGVzVG9FeGNsdWRlOworCisgICAgcHJpbnQgIiA/IGNoZWNraW5n
IGZvciBsZWFrcyBpbiAkZHVtcFRvb2xOYW1lXG4iOworICAgIG15ICRsZWFrc091dHB1dCA9IGAk
bGVha3NUb29sICRleGNsdWRlU3RyaW5nICRkdW1wVG9vbFBJRGA7CisgICAgbXkgKCRjb3VudCwg
JGJ5dGVzKSA9ICRsZWFrc091dHB1dCA9fiAvUHJvY2VzcyAkZHVtcFRvb2xQSUQ6IChcZCspIGxl
YWtzPyBmb3IgKFxkKykgdG90YWwvOworICAgIG15ICgkZXhjbHVkZWQpID0gJGxlYWtzT3V0cHV0
ID1+IC8oXGQrKSBsZWFrcz8gZXhjbHVkZWQvOworCisgICAgbXkgJGFkanVzdGVkQ291bnQgPSAk
Y291bnQ7CisgICAgJGFkanVzdGVkQ291bnQgLT0gJGV4Y2x1ZGVkIGlmICRleGNsdWRlZDsKKwor
ICAgIGlmICghJGFkanVzdGVkQ291bnQpIHsKKyAgICAgICAgcHJpbnQgIiAtIG5vIGxlYWtzIGZv
dW5kXG4iOworICAgICAgICB1bmxpbmsgJGxlYWtzRmlsZVBhdGg7CisgICAgICAgIHJldHVybiAw
OworICAgIH0gZWxzZSB7CisgICAgICAgIG15ICRkaXIgPSAkbGVha3NGaWxlUGF0aDsKKyAgICAg
ICAgJGRpciA9fiBzfC9bXi9dKyR8fCBvciBkaWU7CisgICAgICAgIG1rcGF0aCAkZGlyOworCisg
ICAgICAgIGlmICgkZXhjbHVkZWQpIHsKKyAgICAgICAgICAgIHByaW50ICIgKyAkYWRqdXN0ZWRD
b3VudCBsZWFrcyAoJGJ5dGVzIGJ5dGVzIGluY2x1ZGluZyAkZXhjbHVkZWQgZXhjbHVkZWQgbGVh
a3MpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhcbiI7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBwcmludCAiICsgJGNvdW50IGxlYWtzICgkYnl0ZXMgYnl0ZXMp
IHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhcbiI7CisgICAgICAgIH0KKwor
ICAgICAgICB3cml0ZVRvRmlsZSgkbGVha3NGaWxlUGF0aCwgJGxlYWtzT3V0cHV0KTsKKyAgICAg
ICAgCisgICAgICAgIHB1c2ggQGxlYWtzRmlsZW5hbWVzLCAkbGVha3NGaWxlUGF0aDsKKyAgICB9
CisKKyAgICByZXR1cm4gJGFkanVzdGVkQ291bnQ7Cit9CisKK3N1YiB3cml0ZVRvRmlsZSgkJCkK
K3sKKyAgICBteSAoJGZpbGVQYXRoLCAkY29udGVudHMpID0gQF87CisgICAgb3BlbiBORVdGSUxF
LCAiPiIsICIkZmlsZVBhdGgiIG9yIGRpZSAiQ291bGQgbm90IGNyZWF0ZSAkZmlsZVBhdGguICQh
XG4iOworICAgIHByaW50IE5FV0ZJTEUgJGNvbnRlbnRzOworICAgIGNsb3NlIE5FV0ZJTEU7Cit9
CisKKyMgQnJlYWsgdXAgYSBwYXRoIGludG8gdGhlIGRpcmVjdG9yeSAod2l0aCBzbGFzaCkgYW5k
IGJhc2UgbmFtZS4KK3N1YiBzcGxpdHBhdGgoJCkKK3sKKyAgICBteSAoJHBhdGgpID0gQF87CisK
KyAgICBteSAkcGF0aFNlcGFyYXRvciA9ICIvIjsKKyAgICBteSAkZGlybmFtZSA9IGRpcm5hbWUo
JHBhdGgpIC4gJHBhdGhTZXBhcmF0b3I7CisgICAgJGRpcm5hbWUgPSAiIiBpZiAkZGlybmFtZSBl
cSAiLiIgLiAkcGF0aFNlcGFyYXRvcjsKKworICAgIHJldHVybiAoJGRpcm5hbWUsIGJhc2VuYW1l
KCRwYXRoKSk7Cit9CisKKyMgU29ydCBmaXJzdCBieSBkaXJlY3RvcnksIHRoZW4gYnkgZmlsZSwg
c28gYWxsIHBhdGhzIGluIG9uZSBkaXJlY3RvcnkgYXJlIGdyb3VwZWQKKyMgcmF0aGVyIHRoYW4g
YmVpbmcgaW50ZXJzcGVyc2VkIHdpdGggaXRlbXMgZnJvbSBzdWJkaXJlY3Rvcmllcy4KKyMgVXNl
IG51bWVyaWNjbXAgdG8gc29ydCBkaXJlY3RvcnkgYW5kIGZpbGVuYW1lcyB0byBtYWtlIG9yZGVy
IGxvZ2ljYWwuCitzdWIgcGF0aGNtcCgkJCkKK3sKKyAgICBteSAoJHBhdGhhLCAkcGF0aGIpID0g
QF87CisKKyAgICBteSAoJGRpcmEsICRuYW1lYSkgPSBzcGxpdHBhdGgoJHBhdGhhKTsKKyAgICBt
eSAoJGRpcmIsICRuYW1lYikgPSBzcGxpdHBhdGgoJHBhdGhiKTsKKworICAgIHJldHVybiBudW1l
cmljY21wKCRkaXJhLCAkZGlyYikgaWYgJGRpcmEgbmUgJGRpcmI7CisgICAgcmV0dXJuIG51bWVy
aWNjbXAoJG5hbWVhLCAkbmFtZWIpOworfQorCisjIFNvcnQgbnVtZXJpYyBwYXJ0cyBvZiBzdHJp
bmdzIGFzIG51bWJlcnMsIG90aGVyIHBhcnRzIGFzIHN0cmluZ3MuCisjIE1ha2VzIDEuMzMgY29t
ZSBhZnRlciAxLjMsIHdoaWNoIGlzIGNvb2wuCitzdWIgbnVtZXJpY2NtcCgkJCkKK3sKKyAgICBt
eSAoJGFhLCAkYmIpID0gQF87CisKKyAgICBteSBAYSA9IHNwbGl0IC8oXGQrKS8sICRhYTsKKyAg
ICBteSBAYiA9IHNwbGl0IC8oXGQrKS8sICRiYjsKKworICAgICMgQ29tcGFyZSBvbmUgY2h1bmsg
YXQgYSB0aW1lLgorICAgICMgRWFjaCBjaHVuayBpcyBlaXRoZXIgYWxsIG51bWVyaWMgZGlnaXRz
LCBvciBhbGwgbm90IG51bWVyaWMgZGlnaXRzLgorICAgIHdoaWxlIChAYSAmJiBAYikgeworICAg
ICAgICBteSAkYSA9IHNoaWZ0IEBhOworICAgICAgICBteSAkYiA9IHNoaWZ0IEBiOworICAgICAg
ICAKKyAgICAgICAgIyBVc2UgbnVtZXJpYyBjb21wYXJpc29uIGlmIGNodW5rcyBhcmUgbm9uLWVx
dWFsIG51bWJlcnMuCisgICAgICAgIHJldHVybiAkYSA8PT4gJGIgaWYgJGEgPX4gL15cZC8gJiYg
JGIgPX4gL15cZC8gJiYgJGEgIT0gJGI7CisKKyAgICAgICAgIyBVc2Ugc3RyaW5nIGNvbXBhcmlz
b24gaWYgY2h1bmtzIGFyZSBhbnkgb3RoZXIga2luZCBvZiBub24tZXF1YWwgc3RyaW5nLgorICAg
ICAgICByZXR1cm4gJGEgY21wICRiIGlmICRhIG5lICRiOworICAgIH0KKyAgICAKKyAgICAjIE9u
ZSBvZiB0aGUgdHdvIGlzIG5vdyBlbXB0eTsgY29tcGFyZSBsZW5ndGhzIGZvciByZXN1bHQgaW4g
dGhpcyBjYXNlLgorICAgIHJldHVybiBAYSA8PT4gQGI7Cit9CisKKyMgU29ydCBzbG93ZXN0IHRl
c3RzIGZpcnN0Lgorc3ViIHNsb3dlc3RjbXAoJCQpCit7CisgICAgbXkgKCR0ZXN0YSwgJHRlc3Ri
KSA9IEBfOworCisgICAgbXkgJGR1cmEgPSAkZHVyYXRpb25zeyR0ZXN0YX07CisgICAgbXkgJGR1
cmIgPSAkZHVyYXRpb25zeyR0ZXN0Yn07CisgICAgcmV0dXJuICRkdXJiIDw9PiAkZHVyYSBpZiAk
ZHVyYSAhPSAkZHVyYjsKKyAgICByZXR1cm4gcGF0aGNtcCgkdGVzdGEsICR0ZXN0Yik7Cit9CisK
K3N1YiBsYXVuY2hXaXRoRW52KFxAXCUpCit7CisgICAgbXkgKCRhcmdzLCAkZW52KSA9IEBfOwor
CisgICAgIyBEdW1wIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGFzIHBlcmwgY29kZSBhbmQgdGhl
biBwdXQgaXQgaW4gcXVvdGVzIHNvIGl0IGlzIG9uZSBwYXJhbWV0ZXIuCisgICAgbXkgJGVudmly
b25tZW50RHVtcGVyID0gRGF0YTo6RHVtcGVyLT5uZXcoW1wleyRlbnZ9XSwgW3F3KCpFTlYpXSk7
CisgICAgJGVudmlyb25tZW50RHVtcGVyLT5JbmRlbnQoMCk7CisgICAgJGVudmlyb25tZW50RHVt
cGVyLT5QdXJpdHkoMSk7CisgICAgbXkgJGFsbEVudlZhcnMgPSAkZW52aXJvbm1lbnREdW1wZXIt
PkR1bXAoKTsKKyAgICB1bnNoaWZ0IEB7JGFyZ3N9LCAiXCIkYWxsRW52VmFyc1wiIjsKKworICAg
IG15ICRleGVjU2NyaXB0ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgcXcoV2Vi
S2l0VG9vbHMgU2NyaXB0cyBleGVjQXBwV2l0aEVudikpOworICAgIHVuc2hpZnQgQHskYXJnc30s
ICRleGVjU2NyaXB0OworICAgIHJldHVybiBAeyRhcmdzfTsKK30KKworc3ViIHJlc29sdmVBbmRN
YWtlVGVzdFJlc3VsdHNEaXJlY3RvcnkoKQoreworICAgIG15ICRhYnNUZXN0UmVzdWx0c0RpcmVj
dG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoZ2xvYiAkdGVzdFJlc3VsdHNEaXJlY3RvcnkpOwor
ICAgIG1rcGF0aCAkYWJzVGVzdFJlc3VsdHNEaXJlY3Rvcnk7CisgICAgcmV0dXJuICRhYnNUZXN0
UmVzdWx0c0RpcmVjdG9yeTsKK30KKworc3ViIG9wZW5EaWZmVG9vbCgpCit7CisgICAgcmV0dXJu
IGlmICRpc0RpZmZUb29sT3BlbjsKKyAgICByZXR1cm4gaWYgISRwaXhlbFRlc3RzOworCisgICAg
bXkgJUNMRUFOX0VOVjsKKyAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9nZ2luZ30gPSAxIGlm
ICRzaG91bGRDaGVja0xlYWtzOworICAgICRpbWFnZURpZmZUb29sUElEID0gb3BlbjIoXCpESUZG
SU4sIFwqRElGRk9VVCwgJGltYWdlRGlmZlRvb2wsIGxhdW5jaFdpdGhFbnYoQGRpZmZUb29sQXJn
cywgJUNMRUFOX0VOVikpIG9yIGRpZSAidW5hYmxlIHRvIG9wZW4gJGltYWdlRGlmZlRvb2xcbiI7
CisgICAgJGlzRGlmZlRvb2xPcGVuID0gMTsKK30KKworc3ViIG9wZW5EdW1wVG9vbCgpCit7Cisg
ICAgcmV0dXJuIGlmICRpc0R1bXBUb29sT3BlbjsKKworICAgIG15ICVDTEVBTl9FTlY7CisKKyAg
ICAjIEdlbmVyaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgaWYgKGRlZmluZWQgJEVOVnsn
V0VCS0lUX1RFU1RGT05UUyd9KSB7CisgICAgICAgICRDTEVBTl9FTlZ7V0VCS0lUX1RFU1RGT05U
U30gPSAkRU5WeydXRUJLSVRfVEVTVEZPTlRTJ307CisgICAgfQorCisgICAgIyB1bmlxdWUgdGVt
cG9yYXJ5IGRpcmVjdG9yeSBmb3IgZWFjaCBEdW1wUmVuZGVydHJlZSAtIG5lZWRlZCBmb3IgcnVu
bmluZyBtb3JlIER1bXBSZW5kZXJUcmVlIGluIHBhcmFsbGVsCisgICAgJENMRUFOX0VOVntEVU1Q
UkVOREVSVFJFRV9URU1QfSA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoJ0R1bXBSZW5kZXJUcmVlLVhY
WFhYWCcsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+IDEpOworICAgICRDTEVBTl9FTlZ7WE1MX0NB
VEFMT0dfRklMRVN9ID0gIiI7ICMgd29yayBhcm91bmQgbWlzc2luZyAvZXRjL2NhdGFsb2cgPHJk
YXI6Ly9wcm9ibGVtLzQyOTI5OTU+CisKKyAgICAjIFBsYXRmb3JtIHNwZXNpZmljcworICAgIGlm
IChpc0xpbnV4KCkpIHsKKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnRElTUExBWSd9KSB7Cisg
ICAgICAgICAgICAkQ0xFQU5fRU5We0RJU1BMQVl9ID0gJEVOVnsnRElTUExBWSd9OworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgJENMRUFOX0VOVntESVNQTEFZfSA9ICI6MSI7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnWEFVVEhPUklUWSd9KSB7CisgICAgICAg
ICAgICAkQ0xFQU5fRU5We1hBVVRIT1JJVFl9ID0gJEVOVnsnWEFVVEhPUklUWSd9OworICAgICAg
ICB9CisKKyAgICAgICAgJENMRUFOX0VOVntIT01FfSA9ICRFTlZ7J0hPTUUnfTsKKworICAgICAg
ICBpZiAoZGVmaW5lZCAkRU5WeydMRF9MSUJSQVJZX1BBVEgnfSkgeworICAgICAgICAgICAgJENM
RUFOX0VOVntMRF9MSUJSQVJZX1BBVEh9ID0gJEVOVnsnTERfTElCUkFSWV9QQVRIJ307CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnREJVU19TRVNTSU9OX0JVU19BRERSRVNT
J30pIHsKKyAgICAgICAgICAgICRDTEVBTl9FTlZ7REJVU19TRVNTSU9OX0JVU19BRERSRVNTfSA9
ICRFTlZ7J0RCVVNfU0VTU0lPTl9CVVNfQUREUkVTUyd9OworICAgICAgICB9CisgICAgfSBlbHNp
ZiAoaXNEYXJ3aW4oKSkgeworICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydEWUxEX0xJQlJBUllf
UEFUSCd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We0RZTERfTElCUkFSWV9QQVRIfSA9ICRF
TlZ7J0RZTERfTElCUkFSWV9QQVRIJ307CisgICAgICAgIH0KKworICAgICAgICAkQ0xFQU5fRU5W
e0RZTERfRlJBTUVXT1JLX1BBVEh9ID0gJHByb2R1Y3REaXI7CisgICAgICAgICRDTEVBTl9FTlZ7
RFlMRF9JTlNFUlRfTElCUkFSSUVTfSA9ICIvdXNyL2xpYi9saWJnbWFsbG9jLmR5bGliIiBpZiAk
Z3VhcmRNYWxsb2M7CisgICAgfSBlbHNpZiAoaXNDeWd3aW4oKSkgeworICAgICAgICAkQ0xFQU5f
RU5We0hPTUVEUklWRX0gPSAkRU5WeydIT01FRFJJVkUnfTsKKyAgICAgICAgJENMRUFOX0VOVntI
T01FUEFUSH0gPSAkRU5WeydIT01FUEFUSCd9OworCisgICAgICAgIHNldFBhdGhGb3JSdW5uaW5n
V2ViS2l0QXBwKFwlQ0xFQU5fRU5WKTsKKyAgICB9CisKKyAgICAjIFBvcnQgc3Blc2lmaWNzCisg
ICAgaWYgKGlzUXQoKSkgeworICAgICAgICAkQ0xFQU5fRU5We1FUV0VCS0lUX1BMVUdJTl9QQVRI
fSA9IHByb2R1Y3REaXIoKSAuICIvbGliL3BsdWdpbnMiOworICAgIH0KKyAgICAKKyAgICBteSBA
YXJncyA9ICgkZHVtcFRvb2wsIEB0b29sQXJncyk7CisgICAgaWYgKGlzQXBwbGVNYWNXZWJLaXQo
KSBhbmQgIWlzVGlnZXIoKSkgeyAKKyAgICAgICAgdW5zaGlmdCBAYXJncywgImFyY2giLCAiLSIg
LiBhcmNoaXRlY3R1cmUoKTsgICAgICAgICAgICAgCisgICAgfQorCisgICAgaWYgKCR1c2VWYWxn
cmluZCkgeworICAgICAgICB1bnNoaWZ0IEBhcmdzLCAidmFsZ3JpbmQiLCAiLS1zdXBwcmVzc2lv
bnM9JHBsYXRmb3JtQmFzZURpcmVjdG9yeS9xdC9TdXBwcmVzc2VkVmFsZ3JpbmRFcnJvcnMiOwor
ICAgIH0gCisKKyAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9nZ2luZ30gPSAxIGlmICRzaG91
bGRDaGVja0xlYWtzOworCisgICAgJGR1bXBUb29sUElEID0gb3BlbjMoXCpPVVQsIFwqSU4sIFwq
RVJST1IsIGxhdW5jaFdpdGhFbnYoQGFyZ3MsICVDTEVBTl9FTlYpKSBvciBkaWUgIkZhaWxlZCB0
byBzdGFydCB0b29sOiAkZHVtcFRvb2xcbiI7CisgICAgJGlzRHVtcFRvb2xPcGVuID0gMTsKKyAg
ICAkZHVtcFRvb2xDcmFzaGVkID0gMDsKK30KKworc3ViIGNsb3NlRHVtcFRvb2woKQoreworICAg
IHJldHVybiBpZiAhJGlzRHVtcFRvb2xPcGVuOworCisgICAgY2xvc2UgSU47CisgICAgY2xvc2Ug
T1VUOworICAgIHdhaXRwaWQgJGR1bXBUb29sUElELCAwOworICAgIAorICAgICMgY2hlY2sgZm9y
IFdlYkNvcmUgY291bnRlciBsZWFrcy4KKyAgICBpZiAoJHNob3VsZENoZWNrTGVha3MpIHsKKyAg
ICAgICAgd2hpbGUgKDxFUlJPUj4pIHsKKyAgICAgICAgICAgIHByaW50OworICAgICAgICB9Cisg
ICAgfQorICAgIGNsb3NlIEVSUk9SOworICAgICRpc0R1bXBUb29sT3BlbiA9IDA7Cit9CisKK3N1
YiBkdW1wVG9vbERpZENyYXNoKCkKK3sKKyAgICByZXR1cm4gMSBpZiAkZHVtcFRvb2xDcmFzaGVk
OworICAgIHJldHVybiAwIHVubGVzcyAkaXNEdW1wVG9vbE9wZW47CisgICAgbXkgJHBpZCA9IHdh
aXRwaWQoLTEsIFdOT0hBTkcpOworICAgIHJldHVybiAxIGlmICgkcGlkID09ICRkdW1wVG9vbFBJ
RCk7CisKKyAgICAjIE9uIE1hYyBPUyBYLCBjcmFzaGluZyBtYXkgYmUgc2lnbmlmaWNhbnRseSBk
ZWxheWVkIGJ5IGNyYXNoIHJlcG9ydGVyLgorICAgIHJldHVybiAwIHVubGVzcyBpc0FwcGxlTWFj
V2ViS2l0KCk7CisKKyAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0Ojpwcm9jZXNzSXND
cmFzaGluZygkZHVtcFRvb2xQSUQpOworfQorCitzdWIgY29uZmlndXJlQW5kT3BlbkhUVFBESWZO
ZWVkZWQoKQoreworICAgIHJldHVybiBpZiAkaXNIdHRwZE9wZW47CisgICAgbXkgJGFic1Rlc3RS
ZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwor
ICAgIG15ICRsaXN0ZW4gPSAiMTI3LjAuMC4xOiRodHRwZFBvcnQiOworICAgIG15IEBhcmdzID0g
KAorICAgICAgICAiLWMiLCAiQ3VzdG9tTG9nIFwiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5L2Fj
Y2Vzc19sb2cudHh0XCIgY29tbW9uIiwKKyAgICAgICAgIi1jIiwgIkVycm9yTG9nIFwiJGFic1Rl
c3RSZXN1bHRzRGlyZWN0b3J5L2Vycm9yX2xvZy50eHRcIiIsCisgICAgICAgICItQyIsICJMaXN0
ZW4gJGxpc3RlbiIKKyAgICApOworCisgICAgbXkgQGRlZmF1bHRBcmdzID0gZ2V0RGVmYXVsdENv
bmZpZ0ZvclRlc3REaXJlY3RvcnkoJHRlc3REaXJlY3RvcnkpOworICAgIEBhcmdzID0gKEBkZWZh
dWx0QXJncywgQGFyZ3MpOworCisgICAgd2FpdEZvckhUVFBETG9jaygpIGlmICRzaG91bGRXYWl0
Rm9ySFRUUEQ7CisgICAgJGlzSHR0cGRPcGVuID0gb3BlbkhUVFBEKEBhcmdzKTsKK30KKworc3Vi
IG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpCit7CisgICAgcmV0dXJuIDEgaWYgJGlzV2Vi
U29ja2V0U2VydmVyT3BlbjsKKyAgICByZXR1cm4gMCBpZiAkZmFpbGVkVG9TdGFydFdlYlNvY2tl
dFNlcnZlcjsKKworICAgIG15ICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoID0gIi91c3IvYmluL3B5dGhv
biI7CisgICAgbXkgJHdlYlNvY2tldFB5dGhvblBhdGggPSAiV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0IjsKKyAgICBteSAkd2ViU29ja2V0SGFuZGxl
ckRpciA9ICIkdGVzdERpcmVjdG9yeSI7CisgICAgbXkgJHdlYlNvY2tldEhhbmRsZXJTY2FuRGly
ID0gIiR0ZXN0RGlyZWN0b3J5L3dlYnNvY2tldC90ZXN0cyI7CisgICAgbXkgJHdlYlNvY2tldEhh
bmRsZXJNYXBGaWxlID0gIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpci9oYW5kbGVyX21hcC50eHQi
OworICAgIG15ICRzc2xDZXJ0aWZpY2F0ZSA9ICIkdGVzdERpcmVjdG9yeS9odHRwL2NvbmYvd2Vi
a2l0LWh0dHBkLnBlbSI7CisgICAgbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2
ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOworICAgIG15ICRsb2dGaWxlID0gIiRhYnNU
ZXN0UmVzdWx0c0RpcmVjdG9yeS9weXdlYnNvY2tldF9sb2cudHh0IjsKKworICAgIG15IEBhcmdz
ID0gKAorICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IiwKKyAgICAgICAgIi0tc2Vy
dmVyLWhvc3QiLCAiMTI3LjAuMC4xIiwKKyAgICAgICAgIi0tcG9ydCIsICIkd2ViU29ja2V0UG9y
dCIsCisgICAgICAgICItLWRvY3VtZW50LXJvb3QiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAor
ICAgICAgICAiLS1zY2FuLWRpciIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAorICAgICAg
ICAiLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmls
ZSIsCisgICAgICAgICItLWNnaS1wYXRocyIsICIvd2Vic29ja2V0L3Rlc3RzIiwKKyAgICAgICAg
Ii0tbG9nLWZpbGUiLCAiJGxvZ0ZpbGUiLAorICAgICAgICAiLS1zdHJpY3QiLAorICAgICk7Cisg
ICAgIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNT
TC4KKyAgICAjIG15IEBhcmdzU2VjdXJlID0gKAorICAgICMgICAgICJXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5k
YWxvbmUucHkiLAorICAgICMgICAgICItcCIsICIkd2ViU29ja2V0U2VjdXJlUG9ydCIsCisgICAg
IyAgICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKKyAgICAjICAgICAiLXQiLAorICAg
ICMgICAgICItayIsICIkc3NsQ2VydGlmaWNhdGUiLAorICAgICMgICAgICItYyIsICIkc3NsQ2Vy
dGlmaWNhdGUiLAorICAgICMgKTsKKworICAgICRFTlZ7IlBZVEhPTlBBVEgifSA9ICR3ZWJTb2Nr
ZXRQeXRob25QYXRoOworICAgICR3ZWJTb2NrZXRTZXJ2ZXJQSUQgPSBvcGVuMyhcKldFQlNPQ0tF
VFNFUlZFUl9JTiwgXCpXRUJTT0NLRVRTRVJWRVJfT1VULCBcKldFQlNPQ0tFVFNFUlZFUl9FUlIs
ICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoLCBAYXJncyk7CisgICAgIyB3c3MgaXMgZGlzYWJsZWQgdW50
aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KKyAgICAjICR3ZWJTb2NrZXRTZWN1
cmVTZXJ2ZXJQSUQgPSBvcGVuMyhcKldFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9JTiwgXCpXRUJTT0NL
RVRTRUNVUkVTRVJWRVJfT1VULCBcKldFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9FUlIsICR3ZWJTb2Nr
ZXRTZXJ2ZXJQYXRoLCBAYXJnc1NlY3VyZSk7CisgICAgIyBteSBAbGlzdGVuID0gKCJodHRwOi8v
MTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0IiwgImh0dHBzOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRT
ZWN1cmVQb3J0Iik7CisgICAgbXkgQGxpc3RlbiA9ICgiaHR0cDovLzEyNy4wLjAuMTokd2ViU29j
a2V0UG9ydCIpOworICAgIGZvciAobXkgJGkgPSAwOyAkaSA8IEBsaXN0ZW47ICRpKyspIHsKKyAg
ICAgICAgbXkgJHJldHJ5Q291bnQgPSAxMDsKKyAgICAgICAgd2hpbGUgKHN5c3RlbSgiL3Vzci9i
aW4vY3VybCAtayAtcSAtLXNpbGVudCAtLXN0ZGVyciAtIC0tb3V0cHV0IC9kZXYvbnVsbCAkbGlz
dGVuWyRpXSIpICYmICRyZXRyeUNvdW50KSB7CisgICAgICAgICAgICBzbGVlcCAxOworICAgICAg
ICAgICAgLS0kcmV0cnlDb3VudDsKKyAgICAgICAgfQorICAgICAgICB1bmxlc3MgKCRyZXRyeUNv
dW50KSB7CisgICAgICAgICAgICBwcmludCBTVERFUlIgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBX
ZWJTb2NrZXRTZXJ2ZXIgdG8gc3RhcnQuXG4iOworICAgICAgICAgICAgJGZhaWxlZFRvU3RhcnRX
ZWJTb2NrZXRTZXJ2ZXIgPSAxOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMTsKKyAgICByZXR1cm4gMTsKK30K
Kworc3ViIGNsb3NlV2ViU29ja2V0U2VydmVyKCkKK3sKKyAgICByZXR1cm4gaWYgISRpc1dlYlNv
Y2tldFNlcnZlck9wZW47CisKKyAgICBjbG9zZSBXRUJTT0NLRVRTRVJWRVJfSU47CisgICAgY2xv
c2UgV0VCU09DS0VUU0VSVkVSX09VVDsKKyAgICBjbG9zZSBXRUJTT0NLRVRTRVJWRVJfRVJSOwor
ICAgIGtpbGwgMTUsICR3ZWJTb2NrZXRTZXJ2ZXJQSUQ7CisKKyAgICAjIHdzcyBpcyBkaXNhYmxl
ZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgorICAgICMgY2xvc2UgV0VC
U09DS0VUU0VDVVJFU0VSVkVSX0lOOworICAgICMgY2xvc2UgV0VCU09DS0VUU0VDVVJFU0VSVkVS
X09VVDsKKyAgICAjIGNsb3NlIFdFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9FUlI7CisgICAgIyBraWxs
IDE1LCAkd2ViU29ja2V0U2VjdXJlU2VydmVyUElEOworCisgICAgJGlzV2ViU29ja2V0U2VydmVy
T3BlbiA9IDA7Cit9CisKK3N1YiBmaWxlTmFtZVdpdGhOdW1iZXIoJCQpCit7CisgICAgbXkgKCRi
YXNlLCAkbnVtYmVyKSA9IEBfOworICAgIHJldHVybiAiJGJhc2UkbnVtYmVyIiBpZiAoJG51bWJl
ciA+IDEpOworICAgIHJldHVybiAkYmFzZTsKK30KKworc3ViIHByb2Nlc3NJZ25vcmVUZXN0cygk
JCkKK3sKKyAgICBteSBAaWdub3JlTGlzdCA9IHNwbGl0KC9ccyosXHMqLywgc2hpZnQpOworICAg
IG15ICRsaXN0TmFtZSA9IHNoaWZ0OworCisgICAgbXkgJGRpc2FibGVkU3VmZml4ID0gIi1kaXNh
YmxlZCI7CisKKyAgICBteSAkYWRkSWdub3JlZERpcmVjdG9yaWVzID0gc3ViIHsKKyAgICAgICAg
cmV0dXJuICgpIGlmIGV4aXN0cyAkaWdub3JlZExvY2FsRGlyZWN0b3JpZXN7YmFzZW5hbWUoJEZp
bGU6OkZpbmQ6OmRpcil9OworICAgICAgICAkaWdub3JlZERpcmVjdG9yaWVze0ZpbGU6OlNwZWMt
PmFiczJyZWwoJEZpbGU6OkZpbmQ6OmRpciwgJHRlc3REaXJlY3RvcnkpfSA9IDE7CisgICAgICAg
IHJldHVybiBAXzsKKyAgICB9OworICAgIGZvcmVhY2ggbXkgJGl0ZW0gKEBpZ25vcmVMaXN0KSB7
CisgICAgICAgIG15ICRwYXRoID0gY2F0ZmlsZSgkdGVzdERpcmVjdG9yeSwgJGl0ZW0pOyAKKyAg
ICAgICAgaWYgKC1kICRwYXRoKSB7CisgICAgICAgICAgICAkaWdub3JlZERpcmVjdG9yaWVzeyRp
dGVtfSA9IDE7CisgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiAkYWRkSWdub3JlZERp
cmVjdG9yaWVzLCB3YW50ZWQgPT4gc3ViIHt9IH0sICRwYXRoKTsKKyAgICAgICAgfQorICAgICAg
ICBlbHNpZiAoLWYgJHBhdGgpIHsKKyAgICAgICAgICAgICRpZ25vcmVkRmlsZXN7JGl0ZW19ID0g
MTsKKyAgICAgICAgfSBlbHNpZiAoLWYgJHBhdGggLiAkZGlzYWJsZWRTdWZmaXgpIHsKKyAgICAg
ICAgICAgICMgVGhlIHRlc3QgaXMgZGlzYWJsZWQsIHNvIGRvIG5vdGhpbmcuCisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBwcmludCAiJGxpc3ROYW1lIGxpc3QgY29udGFpbmVkICckaXRl
bScsIGJ1dCBubyBmaWxlIG9mIHRoYXQgbmFtZSBjb3VsZCBiZSBmb3VuZFxuIjsKKyAgICAgICAg
fQorICAgIH0KK30KKworc3ViIHN0cmlwRXh0ZW5zaW9uKCQpCit7CisgICAgbXkgKCR0ZXN0KSA9
IEBfOworCisgICAgJHRlc3QgPX4gcy9cLlthLXpBLVpdKyQvLzsKKyAgICByZXR1cm4gJHRlc3Q7
Cit9CisKK3N1YiBpc1RleHRPbmx5VGVzdCgkKQoreworICAgIG15ICgkYWN0dWFsKSA9IEBfOwor
ICAgIG15ICRpc1RleHQ7CisgICAgaWYgKCRhY3R1YWwgPX4gL15sYXllciBhdC9tcykgeworICAg
ICAgICAkaXNUZXh0ID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICAkaXNUZXh0ID0gMTsKKyAg
ICB9CisgICAgcmV0dXJuICRpc1RleHQ7Cit9CisKK3N1YiBleHBlY3RlZERpcmVjdG9yeUZvclRl
c3QoJDskOyQpCit7CisgICAgbXkgKCRiYXNlLCAkaXNUZXh0LCAkZXhwZWN0ZWRFeHRlbnNpb24p
ID0gQF87CisKKyAgICBteSBAZGlyZWN0b3JpZXMgPSBAcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHk7
CisgICAgcHVzaCBAZGlyZWN0b3JpZXMsIG1hcCB7IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0
b3J5LCAkXykgfSBxdyhtYWMtc25vd2xlb3BhcmQgbWFjKSBpZiBpc0N5Z3dpbigpOworICAgIHB1
c2ggQGRpcmVjdG9yaWVzLCAkZXhwZWN0ZWREaXJlY3Rvcnk7CisKKyAgICAjIElmIHdlIGFscmVh
ZHkgaGF2ZSBleHBlY3RlZCByZXN1bHRzLCBqdXN0IHJldHVybiB0aGVpciBsb2NhdGlvbi4KKyAg
ICBmb3JlYWNoIG15ICRkaXJlY3RvcnkgKEBkaXJlY3RvcmllcykgeworICAgICAgICByZXR1cm4g
JGRpcmVjdG9yeSBpZiAoLWYgIiRkaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnLiRleHBlY3Rl
ZEV4dGVuc2lvbiIpOworICAgIH0KKworICAgICMgRm9yIGNyb3NzLXBsYXRmb3JtIHRlc3RzLCB0
ZXh0LW9ubHkgcmVzdWx0cyBzaG91bGQgZ28gaW4gdGhlIGNyb3NzLXBsYXRmb3JtIGRpcmVjdG9y
eSwKKyAgICAjIHdoaWxlIHJlbmRlciB0cmVlIGR1bXBzIHNob3VsZCBnbyBpbiB0aGUgbGVhc3Qt
c3BlY2lmaWMgcGxhdGZvcm0gZGlyZWN0b3J5LgorICAgIHJldHVybiAkaXNUZXh0ID8gJGV4cGVj
dGVkRGlyZWN0b3J5IDogJHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5WyQjcGxhdGZvcm1SZXN1bHRI
aWVyYXJjaHldOworfQorCitzdWIgY291bnRGaW5pc2hlZFRlc3QoJCQkJCkKK3sKKyAgICBteSAo
JHRlc3QsICRiYXNlLCAkcmVzdWx0LCAkaXNUZXh0KSA9IEBfOworCisgICAgaWYgKCgkY291bnQg
KyAxKSAlICR0ZXN0c1BlckR1bXBUb29sID09IDAgfHwgJGNvdW50ID09ICQjdGVzdHMpIHsKKyAg
ICAgICAgaWYgKCRzaG91bGRDaGVja0xlYWtzKSB7CisgICAgICAgICAgICBteSAkZmlsZU5hbWU7
CisgICAgICAgICAgICBpZiAoJHRlc3RzUGVyRHVtcFRvb2wgPT0gMSkgeworICAgICAgICAgICAg
ICAgICRmaWxlTmFtZSA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtbGVha3MudHh0IjsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJGZpbGVOYW1lID0gIiR0ZXN0
UmVzdWx0c0RpcmVjdG9yeS8iIC4gZmlsZU5hbWVXaXRoTnVtYmVyKCRkdW1wVG9vbE5hbWUsICRs
ZWFrc091dHB1dEZpbGVOdW1iZXIpIC4gIi1sZWFrcy50eHQiOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbXkgJGxlYWtDb3VudCA9IGNvdW50QW5kUHJpbnRMZWFrcygkZHVtcFRvb2xOYW1l
LCAkZHVtcFRvb2xQSUQsICRmaWxlTmFtZSk7CisgICAgICAgICAgICAkdG90YWxMZWFrcyArPSAk
bGVha0NvdW50OworICAgICAgICAgICAgJGxlYWtzT3V0cHV0RmlsZU51bWJlcisrIGlmICgkbGVh
a0NvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGNsb3NlRHVtcFRvb2woKTsKKyAgICB9Cisg
ICAgCisgICAgJGNvdW50Kys7CisgICAgJGNvdW50c3skcmVzdWx0fSsrOworICAgIHB1c2ggQHsk
dGVzdHN7JHJlc3VsdH19LCAkdGVzdDsKK30KKworc3ViIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgk
JCQkJCkKK3sKKyAgICBteSAoJHRlc3QsICRiYXNlLCAkZGlkQ3Jhc2gsICRhY3R1YWwsICRlcnJv
cikgPSBAXzsKKworICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAkZGlkQ3Jh
c2ggPyAiY3Jhc2hlZCIgOiAidGltZWQgb3V0Iik7CisKKyAgICBzYW1wbGVEdW1wVG9vbCgpIHVu
bGVzcyAkZGlkQ3Jhc2g7CisKKyAgICBteSAkZGlyID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8k
YmFzZSI7CisgICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQg
dGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICBta3BhdGggJGRpcjsKKworICAgIGRlbGV0ZUV4
cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisKKyAgICBpZiAoZGVmaW5lZCgkZXJyb3Ip
ICYmIGxlbmd0aCgkZXJyb3IpKSB7CisgICAgICAgIHdyaXRlVG9GaWxlKCIkdGVzdFJlc3VsdHNE
aXJlY3RvcnkvJGJhc2UtJGVycm9yVGFnLnR4dCIsICRlcnJvcik7CisgICAgfQorCisgICAgcmVj
b3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJGJhc2UsICRhY3R1YWwpOworCisgICAga2lsbCA5LCAk
ZHVtcFRvb2xQSUQgdW5sZXNzICRkaWRDcmFzaDsKKworICAgIGNsb3NlRHVtcFRvb2woKTsKK30K
Kworc3ViIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCQkKQoreworICAgIG15ICgkdGVzdCwg
JGRlc2NyaXB0aW9uKSA9IEBfOworCisgICAgdW5sZXNzICgkdmVyYm9zZSkgeworICAgICAgICBw
cmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgICAgIHByaW50ICIkdGVzdCAtPiAi
OworICAgIH0KKyAgICBwcmludCAiJGRlc2NyaXB0aW9uXG4iOworICAgICRhdExpbmVTdGFydCA9
IDE7Cit9CisKK215ICVjeWdwYXRocyA9ICgpOworCitzdWIgb3BlbkN5Z3BhdGhJZk5lZWRlZCgk
KQoreworICAgIG15ICgkb3B0aW9ucykgPSBAXzsKKworICAgIHJldHVybiB1bmxlc3MgaXNDeWd3
aW4oKTsKKyAgICByZXR1cm4gJGN5Z3BhdGhzeyRvcHRpb25zfSBpZiAkY3lncGF0aHN7JG9wdGlv
bnN9ICYmICRjeWdwYXRoc3skb3B0aW9uc30tPnsib3BlbiJ9OworCisgICAgbG9jYWwgKCpDWUdQ
QVRISU4sICpDWUdQQVRIT1VUKTsKKyAgICBteSAkcGlkID0gb3BlbjIoXCpDWUdQQVRISU4sIFwq
Q1lHUEFUSE9VVCwgImN5Z3BhdGggLWYgLSAkb3B0aW9ucyIpOworICAgIG15ICRjeWdwYXRoID0g
IHsKKyAgICAgICAgInBpZCIgPT4gJHBpZCwKKyAgICAgICAgImluIiA9PiAqQ1lHUEFUSElOLAor
ICAgICAgICAib3V0IiA9PiAqQ1lHUEFUSE9VVCwKKyAgICAgICAgIm9wZW4iID0+IDEKKyAgICB9
OworCisgICAgJGN5Z3BhdGhzeyRvcHRpb25zfSA9ICRjeWdwYXRoOworCisgICAgcmV0dXJuICRj
eWdwYXRoOworfQorCitzdWIgY2xvc2VDeWdwYXRocygpCit7CisgICAgcmV0dXJuIHVubGVzcyBp
c0N5Z3dpbigpOworCisgICAgZm9yZWFjaCBteSAkY3lncGF0aCAodmFsdWVzKCVjeWdwYXRocykp
IHsKKyAgICAgICAgY2xvc2UgJGN5Z3BhdGgtPnsiaW4ifTsKKyAgICAgICAgY2xvc2UgJGN5Z3Bh
dGgtPnsib3V0In07CisgICAgICAgIHdhaXRwaWQoJGN5Z3BhdGgtPnsicGlkIn0sIDApOworICAg
ICAgICAkY3lncGF0aC0+eyJvcGVuIn0gPSAwOworCisgICAgfQorfQorCitzdWIgY29udmVydFBh
dGhVc2luZ0N5Z3BhdGgoJCQpCit7CisgICAgbXkgKCRwYXRoLCAkb3B0aW9ucykgPSBAXzsKKwor
ICAgICMgY3lncGF0aCAtZiAoYXQgbGVhc3QgaW4gQ3lnd2luIDEuNykgY29udmVydHMgc3BhY2Vz
IGludG8gbmV3bGluZXMuIFdlIHJlbW92ZSBzcGFjZXMgaGVyZSBhbmQKKyAgICAjIGFkZCB0aGVt
IGJhY2sgaW4gYWZ0ZXIgY29udmVyc2lvbiB0byB3b3JrIGFyb3VuZCB0aGlzLgorICAgIG15ICRz
cGFjZVN1YnN0aXR1dGUgPSAiX19OT1RBU1BBQ0VfXyI7CisgICAgJHBhdGggPX4gcy8gL1xRJHNw
YWNlU3Vic3RpdHV0ZVxFL2c7CisKKyAgICBteSAkY3lncGF0aCA9IG9wZW5DeWdwYXRoSWZOZWVk
ZWQoJG9wdGlvbnMpOworICAgIGxvY2FsICppbkZIID0gJGN5Z3BhdGgtPnsiaW4ifTsKKyAgICBs
b2NhbCAqb3V0RkggPSAkY3lncGF0aC0+eyJvdXQifTsKKyAgICBwcmludCBvdXRGSCAkcGF0aCAu
ICJcbiI7CisgICAgbXkgJGNvbnZlcnRlZFBhdGggPSA8aW5GSD47CisgICAgY2hvbXAoJGNvbnZl
cnRlZFBhdGgpIGlmIGRlZmluZWQgJGNvbnZlcnRlZFBhdGg7CisKKyAgICAkY29udmVydGVkUGF0
aCA9fiBzL1xRJHNwYWNlU3Vic3RpdHV0ZVxFLyAvZzsKKyAgICByZXR1cm4gJGNvbnZlcnRlZFBh
dGg7Cit9CisKK3N1YiB0b1dpbmRvd3NQYXRoKCQpCit7CisgICAgbXkgKCRwYXRoKSA9IEBfOwor
ICAgIHJldHVybiB1bmxlc3MgaXNDeWd3aW4oKTsKKworICAgIHJldHVybiBjb252ZXJ0UGF0aFVz
aW5nQ3lncGF0aCgkcGF0aCwgIi13Iik7Cit9CisKK3N1YiB0b1VSTCgkKQoreworICAgIG15ICgk
cGF0aCkgPSBAXzsKKworICAgIGlmICgkdXNlUmVtb3RlTGlua3NUb1Rlc3RzKSB7CisgICAgICAg
IG15ICRyZWxhdGl2ZVBhdGggPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRwYXRoLCAkdGVzdERpcmVj
dG9yeSk7CisKKyAgICAgICAgIyBJZiB0aGUgZmlsZSBpcyBiZWxvdyB0aGUgdGVzdCBkaXJlY3Rv
cnkgdGhlbiBjb252ZXJ0IGl0IGludG8gYSBsaW5rIHRvIHRoZSBmaWxlIGluIFNWTgorICAgICAg
ICBpZiAoJHJlbGF0aXZlUGF0aCAhfiAvXlwuXC5cLy8pIHsKKyAgICAgICAgICAgIG15ICRyZXZp
c2lvbiA9IHN2blJldmlzaW9uRm9yRGlyZWN0b3J5KCR0ZXN0RGlyZWN0b3J5KTsKKyAgICAgICAg
ICAgIG15ICRzdm5QYXRoID0gcGF0aFJlbGF0aXZlVG9TVk5SZXBvc2l0b3J5Um9vdEZvclBhdGgo
JHBhdGgpOworICAgICAgICAgICAgcmV0dXJuICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2V4cG9y
dC8kcmV2aXNpb24vJHN2blBhdGgiOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICRw
YXRoIHVubGVzcyBpc0N5Z3dpbigpOworCisgICAgcmV0dXJuICJmaWxlOi8vLyIgLiBjb252ZXJ0
UGF0aFVzaW5nQ3lncGF0aCgkcGF0aCwgIi1tIik7Cit9CisKK3N1YiB2YWxpZGF0ZVNraXBwZWRB
cmcoJCQ7JCkKK3sKKyAgICBteSAoJG9wdGlvbiwgJHZhbHVlLCAkdmFsdWUyKSA9IEBfOworICAg
IG15ICV2YWxpZFNraXBwZWRWYWx1ZXMgPSBtYXAgeyAkXyA9PiAxIH0gcXcoZGVmYXVsdCBpZ25v
cmUgb25seSk7CisgICAgJHZhbHVlID0gbGMoJHZhbHVlKTsKKyAgICBkaWUgIkludmFsaWQgYXJn
dW1lbnQgJyIgLiAkdmFsdWUgLiAiJyBmb3Igb3B0aW9uICRvcHRpb24iIHVubGVzcyAkdmFsaWRT
a2lwcGVkVmFsdWVzeyR2YWx1ZX07CisgICAgJHRyZWF0U2tpcHBlZCA9ICR2YWx1ZTsKK30KKwor
c3ViIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihcQCQmKQoreworICAgIG15ICgkdGVzdHMsICRkZXNj
cmlwdGlvbiwgJGxpbmtHZXR0ZXIpID0gQF87CisKKyAgICBteSBAaHRtbCA9ICgpOworICAgIHJl
dHVybiBqb2luKCJcbiIsIEBodG1sKSB1bmxlc3MgQHskdGVzdHN9OworCisgICAgcHVzaCBAaHRt
bCwgIjxwPiRkZXNjcmlwdGlvbjo8L3A+IjsKKyAgICBwdXNoIEBodG1sLCAiPHRhYmxlPiI7Cisg
ICAgZm9yZWFjaCBteSAkdGVzdCAoQHskdGVzdHN9KSB7CisgICAgICAgIHB1c2ggQGh0bWwsICI8
dHI+IjsKKyAgICAgICAgcHVzaCBAaHRtbCwgIjx0ZD48YSBocmVmPVwiIiAuIHRvVVJMKCIkdGVz
dERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPiR0ZXN0PC9hPjwvdGQ+IjsKKyAgICAgICAgZm9yZWFj
aCBteSAkbGluayAoQHsmeyRsaW5rR2V0dGVyfSgkdGVzdCl9KSB7CisgICAgICAgICAgICBwdXNo
IEBodG1sLCAiPHRkPjxhIGhyZWY9XCIkbGluay0+e2hyZWZ9XCI+JGxpbmstPnt0ZXh0fTwvYT48
L3RkPiI7CisgICAgICAgIH0KKyAgICAgICAgcHVzaCBAaHRtbCwgIjwvdHI+IjsKKyAgICB9Cisg
ICAgcHVzaCBAaHRtbCwgIjwvdGFibGU+IjsKKworICAgIHJldHVybiBqb2luKCJcbiIsIEBodG1s
KTsKK30KKworc3ViIGxpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCQpCit7CisgICAg
bXkgKCRiYXNlKSA9IEBfOworCisgICAgbXkgQGxpbmtzID0gKCk7CisKKyAgICByZXR1cm4gXEBs
aW5rcyB1bmxlc3MgLXMgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcudHh0
IjsKKyAgICAKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0
aHN7JGJhc2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVjdGVkUmVz
dWx0c0RpcmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkZXhw
ZWN0ZWRSZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOworCisgICAgcHVzaCBAbGlua3MsIHsgaHJl
ZiA9PiAiJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIiwgdGV4dCA9
PiAiZXhwZWN0ZWQiIH07CisgICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGFjdHVh
bFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gImFjdHVhbCIgfTsKKyAgICBw
dXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcudHh0IiwgdGV4dCA9PiAiZGlm
ZiIgfTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kcHJldHR5RGlmZlRhZy5o
dG1sIiwgdGV4dCA9PiAicHJldHR5IGRpZmYiIH07CisKKyAgICByZXR1cm4gXEBsaW5rczsKK30K
Kworc3ViIGxpbmtzRm9yTWlzbWF0Y2hUZXN0Cit7CisgICAgbXkgKCR0ZXN0KSA9IEBfOworCisg
ICAgbXkgQGxpbmtzID0gKCk7CisKKyAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0
KTsKKworICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRz
KCRiYXNlKX07CisgICAgcmV0dXJuIFxAbGlua3MgdW5sZXNzICRwaXhlbFRlc3RzICYmICRpbWFn
ZXNQcmVzZW50eyRiYXNlfTsKKworICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRl
eHBlY3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJleHBlY3RlZCBpbWFnZSIgfTsKKyAgICBwdXNoIEBs
aW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcuaHRtbCIsIHRleHQgPT4gImltYWdlIGRp
ZmZzIiB9OworICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRkaWZmc1RhZy5wbmci
LCB0ZXh0ID0+ICIkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0lIiB9OworCisgICAgcmV0dXJuIFxA
bGlua3M7Cit9CisKK3N1YiBsaW5rc0ZvckVycm9yVGVzdAoreworICAgIG15ICgkdGVzdCkgPSBA
XzsKKworICAgIG15IEBsaW5rcyA9ICgpOworCisgICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lv
bigkdGVzdCk7CisKKyAgICBwdXNoIEBsaW5rcywgQHtsaW5rc0ZvckV4cGVjdGVkQW5kQWN0dWFs
UmVzdWx0cygkYmFzZSl9OworICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRlcnJv
clRhZy50eHQiLCB0ZXh0ID0+ICJzdGRlcnIiIH07CisKKyAgICByZXR1cm4gXEBsaW5rczsKK30K
Kworc3ViIGxpbmtzRm9yTmV3VGVzdAoreworICAgIG15ICgkdGVzdCkgPSBAXzsKKworICAgIG15
IEBsaW5rcyA9ICgpOworCisgICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lvbigkdGVzdCk7CisK
KyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9
OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVjdGVkUmVzdWx0c0RpcmVj
dG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkZXhwZWN0ZWRSZXN1
bHRQYXRoLCBxcntcLlteLl0rJH0pOworCisgICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJh
c2UtJGFjdHVhbFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gInJlc3VsdCIg
fTsKKyAgICBpZiAoJHBpeGVsVGVzdHMgJiYgJGltYWdlc1ByZXNlbnR7JGJhc2V9KSB7CisgICAg
ICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRleHBlY3RlZFRhZy5wbmciLCB0ZXh0
ID0+ICJpbWFnZSIgfTsKKyAgICB9CisKKyAgICByZXR1cm4gXEBsaW5rczsKK30KKworc3ViIGRl
bGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkKQoreworICAgIG15ICgkYmFzZSkgPSBAXzsK
KworICAgIHVubGluayAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRhY3R1YWxUYWcudHh0
IjsKKyAgICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcudHh0
IjsKKyAgICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXJyb3JUYWcudHh0
IjsKK30KKworc3ViIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCQkKQoreworICAgIG15ICgk
YmFzZSwgJGFjdHVhbFJlc3VsdHMpID0gQF87CisKKyAgICByZXR1cm4gdW5sZXNzIGRlZmluZWQo
JGFjdHVhbFJlc3VsdHMpICYmIGxlbmd0aCgkYWN0dWFsUmVzdWx0cyk7CisKKyAgICBteSAkZXhw
ZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OworICAgIG15ICgk
ZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZU1pbnVzRXh0ZW5zaW9uLCAkZXhwZWN0ZWRSZXN1bHREaXJl
Y3RvcnlQYXRoLCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0gZmlsZXBhcnNlKCRleHBlY3Rl
ZFJlc3VsdFBhdGgsIHFye1wuW14uXSskfSk7CisgICAgbXkgJGFjdHVhbFJlc3VsdHNQYXRoID0g
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFnJGV4cGVjdGVkUmVzdWx0RXh0
ZW5zaW9uIjsKKyAgICBteSAkY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0aCA9ICIkdGVzdFJlc3Vs
dHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIjsK
KworICAgIG1rcGF0aChkaXJuYW1lKCRhY3R1YWxSZXN1bHRzUGF0aCkpOworICAgIHdyaXRlVG9G
aWxlKCIkYWN0dWFsUmVzdWx0c1BhdGgiLCAkYWN0dWFsUmVzdWx0cyk7CisKKyAgICBpZiAoLWYg
JGV4cGVjdGVkUmVzdWx0UGF0aCkgeworICAgICAgICBjb3B5KCIkZXhwZWN0ZWRSZXN1bHRQYXRo
IiwgIiRjb3BpZWRFeHBlY3RlZFJlc3VsdHNQYXRoIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
b3BlbiBFTVBUWSwgIj4kY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0aCI7CisgICAgICAgIGNsb3Nl
IEVNUFRZOworICAgIH0KKworICAgIG15ICRkaWZmT3VwdXRCYXNlUGF0aCA9ICIkdGVzdFJlc3Vs
dHNEaXJlY3RvcnkvJGJhc2UiOworICAgIG15ICRkaWZmT3V0cHV0UGF0aCA9ICIkZGlmZk91cHV0
QmFzZVBhdGgtJGRpZmZzVGFnLnR4dCI7CisgICAgc3lzdGVtICJkaWZmIC11IFwiJGNvcGllZEV4
cGVjdGVkUmVzdWx0c1BhdGhcIiBcIiRhY3R1YWxSZXN1bHRzUGF0aFwiID4gXCIkZGlmZk91dHB1
dFBhdGhcIiI7CisKKyAgICBteSAkcHJldHR5RGlmZk91dHB1dFBhdGggPSAiJGRpZmZPdXB1dEJh
c2VQYXRoLSRwcmV0dHlEaWZmVGFnLmh0bWwiOworICAgIG15ICRwcmV0dHlQYXRjaFBhdGggPSAi
QnVnc1NpdGUvUHJldHR5UGF0Y2gvIjsKKyAgICBteSAkcHJldHRpZnlQYXRoID0gIiRwcmV0dHlQ
YXRjaFBhdGgvcHJldHRpZnkucmIiOworICAgIHN5c3RlbSAicnVieSAtSSBcIiRwcmV0dHlQYXRj
aFBhdGhcIiBcIiRwcmV0dGlmeVBhdGhcIiBcIiRkaWZmT3V0cHV0UGF0aFwiID4gXCIkcHJldHR5
RGlmZk91dHB1dFBhdGhcIiI7Cit9CisKK3N1YiBidWlsZFBsYXRmb3JtUmVzdWx0SGllcmFyY2h5
KCkKK3sKKyAgICBta3BhdGgoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSkgaWYgKCRwbGF0Zm9ybSBl
cSAidW5kZWZpbmVkIiAmJiAhLWQgIiRwbGF0Zm9ybVRlc3REaXJlY3RvcnkiKTsKKworICAgIG15
IEBwbGF0Zm9ybXM7CisgICAgaWYgKCRwbGF0Zm9ybSA9fiAvXm1hYy0vKSB7CisgICAgICAgIG15
ICRpOworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBAbWFjUGxhdGZvcm1zOyAkaSsrKSB7Cisg
ICAgICAgICAgICBsYXN0IGlmICRtYWNQbGF0Zm9ybXNbJGldIGVxICRwbGF0Zm9ybTsKKyAgICAg
ICAgfQorICAgICAgICBmb3IgKDsgJGkgPCBAbWFjUGxhdGZvcm1zOyAkaSsrKSB7CisgICAgICAg
ICAgICBwdXNoIEBwbGF0Zm9ybXMsICRtYWNQbGF0Zm9ybXNbJGldOworICAgICAgICB9CisgICAg
fSBlbHNpZiAoJHBsYXRmb3JtID1+IC9ecXQtLykgeworICAgICAgICBwdXNoIEBwbGF0Zm9ybXMs
ICRwbGF0Zm9ybTsKKyAgICAgICAgcHVzaCBAcGxhdGZvcm1zLCAicXQiOworICAgIH0gZWxzZSB7
CisgICAgICAgIEBwbGF0Zm9ybXMgPSAkcGxhdGZvcm07CisgICAgfQorCisgICAgbXkgQGhpZXJh
cmNoeTsKKyAgICBmb3IgKG15ICRpID0gMDsgJGkgPCBAcGxhdGZvcm1zOyAkaSsrKSB7CisgICAg
ICAgIG15ICRzY29wZWQgPSBjYXRkaXIoJHBsYXRmb3JtQmFzZURpcmVjdG9yeSwgJHBsYXRmb3Jt
c1skaV0pOworICAgICAgICBwdXNoKEBoaWVyYXJjaHksICRzY29wZWQpIGlmICgtZCAkc2NvcGVk
KTsKKyAgICB9CisKKyAgICByZXR1cm4gQGhpZXJhcmNoeTsKK30KKworc3ViIGJ1aWxkUGxhdGZv
cm1UZXN0SGllcmFyY2h5KEApCit7CisgICAgbXkgKEBwbGF0Zm9ybUhpZXJhcmNoeSkgPSBAXzsK
KyAgICByZXR1cm4gQHBsYXRmb3JtSGllcmFyY2h5IGlmIChAcGxhdGZvcm1IaWVyYXJjaHkgPCAy
KTsKKworICAgIHJldHVybiAoJHBsYXRmb3JtSGllcmFyY2h5WzBdLCAkcGxhdGZvcm1IaWVyYXJj
aHlbJCNwbGF0Zm9ybUhpZXJhcmNoeV0pOworfQorCitzdWIgZXBpbG9ndWVzQW5kUHJvbG9ndWVz
KCQkKQoreworICAgIG15ICgkbGFzdERpcmVjdG9yeSwgJGRpcmVjdG9yeSkgPSBAXzsKKyAgICBt
eSBAbGFzdENvbXBvbmVudHMgPSBzcGxpdCgnLycsICRsYXN0RGlyZWN0b3J5KTsKKyAgICBteSBA
Y29tcG9uZW50cyA9IHNwbGl0KCcvJywgJGRpcmVjdG9yeSk7CisKKyAgICB3aGlsZSAoQGxhc3RD
b21wb25lbnRzKSB7CisgICAgICAgIGlmICghZGVmaW5lZCgkY29tcG9uZW50c1swXSkgfHwgJGxh
c3RDb21wb25lbnRzWzBdIG5lICRjb21wb25lbnRzWzBdKSB7CisgICAgICAgICAgICBsYXN0Owor
ICAgICAgICB9CisgICAgICAgIHNoaWZ0IEBjb21wb25lbnRzOworICAgICAgICBzaGlmdCBAbGFz
dENvbXBvbmVudHM7CisgICAgfQorCisgICAgbXkgQHJlc3VsdDsKKyAgICBteSAkbGVhdmluZyA9
ICRsYXN0RGlyZWN0b3J5OworICAgIGZvcmVhY2ggKEBsYXN0Q29tcG9uZW50cykgeworICAgICAg
ICBteSAkZXBpbG9ndWUgPSAkbGVhdmluZyAuICIvcmVzb3VyY2VzL3J1bi13ZWJraXQtdGVzdHMt
ZXBpbG9ndWUuaHRtbCI7CisgICAgICAgIGZvcmVhY2ggKEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNo
eSkgeworICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIoJF8sICRlcGlsb2d1ZSkgaWYg
KHN0YXQoY2F0ZGlyKCRfLCAkZXBpbG9ndWUpKSk7CisgICAgICAgIH0KKyAgICAgICAgcHVzaCBA
cmVzdWx0LCBjYXRkaXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1ZSkgaWYgKHN0YXQoY2F0ZGly
KCR0ZXN0RGlyZWN0b3J5LCAkZXBpbG9ndWUpKSk7CisgICAgICAgICRsZWF2aW5nID1+IHN8KF5c
fC8pW14vXSskfHw7CisgICAgfQorCisgICAgbXkgJGVudGVyaW5nID0gJGxlYXZpbmc7CisgICAg
Zm9yZWFjaCAoQGNvbXBvbmVudHMpIHsKKyAgICAgICAgJGVudGVyaW5nIC49ICcvJyAuICRfOwor
ICAgICAgICBteSAkcHJvbG9ndWUgPSAkZW50ZXJpbmcgLiAiL3Jlc291cmNlcy9ydW4td2Via2l0
LXRlc3RzLXByb2xvZ3VlLmh0bWwiOworICAgICAgICBwdXNoIEByZXN1bHQsIGNhdGRpcigkdGVz
dERpcmVjdG9yeSwgJHByb2xvZ3VlKSBpZiAoc3RhdChjYXRkaXIoJHRlc3REaXJlY3RvcnksICRw
cm9sb2d1ZSkpKTsKKyAgICAgICAgZm9yZWFjaCAocmV2ZXJzZSBAcGxhdGZvcm1SZXN1bHRIaWVy
YXJjaHkpIHsKKyAgICAgICAgICAgIHB1c2ggQHJlc3VsdCwgY2F0ZGlyKCRfLCAkcHJvbG9ndWUp
IGlmIChzdGF0KGNhdGRpcigkXywgJHByb2xvZ3VlKSkpOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBAcmVzdWx0OworfQorICAgIAorc3ViIHBhcnNlTGVha3NhbmRQcmludFVuaXF1ZUxl
YWtzKCkKK3sKKyAgICByZXR1cm4gdW5sZXNzIEBsZWFrc0ZpbGVuYW1lczsKKyAgICAgCisgICAg
bXkgJG1lcmdlZEZpbGVuYW1lcyA9IGpvaW4gIiAiLCBAbGVha3NGaWxlbmFtZXM7CisgICAgbXkg
JHBhcnNlTWFsbG9jSGlzdG9yeVRvb2wgPSBzb3VyY2VEaXIoKSAuICIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9wYXJzZS1tYWxsb2MtaGlzdG9yeSI7CisgICAgCisgICAgb3BlbiBNRVJHRURfTEVBS1Ms
ICJjYXQgJG1lcmdlZEZpbGVuYW1lcyB8ICRwYXJzZU1hbGxvY0hpc3RvcnlUb29sIC0tbWVyZ2Ut
ZGVwdGggJG1lcmdlRGVwdGggIC0gfCIgOworICAgIG15IEBsZWFrTGluZXMgPSA8TUVSR0VEX0xF
QUtTPjsKKyAgICBjbG9zZSBNRVJHRURfTEVBS1M7CisgICAgCisgICAgbXkgJHVuaXF1ZUxlYWtD
b3VudCA9IDA7CisgICAgbXkgJHRvdGFsQnl0ZXM7CisgICAgZm9yZWFjaCBteSAkbGluZSAoQGxl
YWtMaW5lcykgeworICAgICAgICArKyR1bmlxdWVMZWFrQ291bnQgaWYgKCRsaW5lID1+IC9eKFxk
Kilcc2NhbGxzLyk7CisgICAgICAgICR0b3RhbEJ5dGVzID0gJDEgaWYgJGxpbmUgPX4gL150b3Rh
bFw6XHMoLiopXHNcKC87CisgICAgfQorICAgIAorICAgIHByaW50ICJcbldBUk5JTkc6ICR0b3Rh
bExlYWtzIHRvdGFsIGxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICR0b3RhbEJ5dGVzIVxuIjsK
KyAgICBwcmludCAiV0FSTklORzogJHVuaXF1ZUxlYWtDb3VudCB1bmlxdWUgbGVha3MgZm91bmQh
XG4iOworICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwgbGVha3MgcmVzdWx0cy5c
biIgaWYgKCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKKyAgICAKK30KKworc3ViIGV4dGVu
c2lvbkZvck1pbWVUeXBlKCQpCit7CisgICAgbXkgKCRtaW1lVHlwZSkgPSBAXzsKKworICAgIGlm
ICgkbWltZVR5cGUgZXEgImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSIpIHsKKyAgICAgICAgcmV0
dXJuICJ3ZWJhcmNoaXZlIjsKKyAgICB9IGVsc2lmICgkbWltZVR5cGUgZXEgImFwcGxpY2F0aW9u
L3BkZiIpIHsKKyAgICAgICAgcmV0dXJuICJwZGYiOworICAgIH0KKyAgICByZXR1cm4gInR4dCI7
Cit9CisKKyMgUmVhZCB1cCB0byB0aGUgZmlyc3QgI0VPRiAodGhlIGNvbnRlbnQgYmxvY2sgb2Yg
dGhlIHRlc3QpLCBvciB1bnRpbCBkZXRlY3RpbmcgY3Jhc2hlcyBvciB0aW1lb3V0cy4KK3N1YiBy
ZWFkRnJvbUR1bXBUb29sV2l0aFRpbWVyKCoqKQoreworICAgIG15ICgkZmhJbiwgJGZoRXJyb3Ip
ID0gQF87CisKKyAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZoSW4sIDEpOworICAgIHNl
dEZpbGVIYW5kbGVOb25CbG9ja2luZygkZmhFcnJvciwgMSk7CisKKyAgICBteSAkbWF4aW11bVNl
Y29uZHNXaXRob3V0T3V0cHV0ID0gJHRpbWVvdXRTZWNvbmRzOworICAgICRtYXhpbXVtU2Vjb25k
c1dpdGhvdXRPdXRwdXQgKj0gMTAgaWYgJGd1YXJkTWFsbG9jOworICAgIG15ICRtaWNyb3NlY29u
ZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4gPSAxMDAwOworCisgICAgbXkgJHRpbWVPZkxhc3RT
dWNjZXNzZnVsUmVhZCA9IHRpbWU7CisKKyAgICBteSBAb3V0cHV0ID0gKCk7CisgICAgbXkgQGVy
cm9yID0gKCk7CisgICAgbXkgJHN0YXR1cyA9ICJzdWNjZXNzIjsKKyAgICBteSAkbWltZVR5cGUg
PSAidGV4dC9wbGFpbiI7CisgICAgIyBXZSBkb24ndCBoYXZlIGEgdmVyeSBnb29kIHdheSB0byBr
bm93IHdoZW4gdGhlICJoZWFkZXJzIiBzdG9wCisgICAgIyBhbmQgdGhlIGNvbnRlbnQgc3RhcnRz
LCBzbyB3ZSB1c2UgdGhpcyBhcyBhIGhhY2s6CisgICAgbXkgJGhhdmVTZWVuQ29udGVudFR5cGUg
PSAwOworICAgIG15ICRoYXZlU2VlbkVvZkluID0gMDsKKyAgICBteSAkaGF2ZVNlZW5Fb2ZFcnJv
ciA9IDA7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAodGltZSAtICR0aW1lT2ZMYXN0
U3VjY2Vzc2Z1bFJlYWQgPiAkbWF4aW11bVNlY29uZHNXaXRob3V0T3V0cHV0KSB7CisgICAgICAg
ICAgICAkc3RhdHVzID0gZHVtcFRvb2xEaWRDcmFzaCgpID8gImNyYXNoZWQiIDogInRpbWVkT3V0
IjsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKworICAgICAgICAjIE9uY2Ugd2UndmUg
c2VlbiB0aGUgRU9GLCB3ZSBtdXN0IG5vdCByZWFkIGFueW1vcmUuCisgICAgICAgIG15ICRsaW5l
SW4gPSByZWFkbGluZSgkZmhJbikgdW5sZXNzICRoYXZlU2VlbkVvZkluOworICAgICAgICBteSAk
bGluZUVycm9yID0gcmVhZGxpbmUoJGZoRXJyb3IpIHVubGVzcyAkaGF2ZVNlZW5Fb2ZFcnJvcjsK
KyAgICAgICAgaWYgKCFkZWZpbmVkKCRsaW5lSW4pICYmICFkZWZpbmVkKCRsaW5lRXJyb3IpKSB7
CisgICAgICAgICAgICBsYXN0IGlmICgkaGF2ZVNlZW5Fb2ZJbiAmJiAkaGF2ZVNlZW5Fb2ZFcnJv
cik7CisKKyAgICAgICAgICAgIGlmICgkISAhPSBFQUdBSU4pIHsKKyAgICAgICAgICAgICAgICAk
c3RhdHVzID0gImNyYXNoZWQiOworICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICMgTm8gZGF0YSByZWFkeQorICAgICAgICAgICAgdXNsZWVwKCRtaWNy
b3NlY29uZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4pOworICAgICAgICAgICAgbmV4dDsKKyAg
ICAgICAgfQorCisgICAgICAgICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1bFJlYWQgPSB0aW1lOworCisg
ICAgICAgIGlmIChkZWZpbmVkKCRsaW5lSW4pKSB7CisgICAgICAgICAgICBpZiAoISRoYXZlU2Vl
bkNvbnRlbnRUeXBlICYmICRsaW5lSW4gPX4gL15Db250ZW50LVR5cGU6IChcUyspJC8pIHsKKyAg
ICAgICAgICAgICAgICAkbWltZVR5cGUgPSAkMTsKKyAgICAgICAgICAgICAgICAkaGF2ZVNlZW5D
b250ZW50VHlwZSA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkbGluZUluID1+IC8jRU9GLykg
eworICAgICAgICAgICAgICAgICRoYXZlU2VlbkVvZkluID0gMTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgcHVzaCBAb3V0cHV0LCAkbGluZUluOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVkKCRsaW5lRXJyb3IpKSB7CisgICAgICAg
ICAgICBpZiAoJGxpbmVFcnJvciA9fiAvI0VPRi8pIHsKKyAgICAgICAgICAgICAgICAkaGF2ZVNl
ZW5Fb2ZFcnJvciA9IDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1
c2ggQGVycm9yLCAkbGluZUVycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEluLCAwKTsKKyAgICBzZXRGaWxlSGFu
ZGxlTm9uQmxvY2tpbmcoJGZoRXJyb3IsIDApOworICAgIHJldHVybiB7CisgICAgICAgIG91dHB1
dCA9PiBqb2luKCIiLCBAb3V0cHV0KSwKKyAgICAgICAgZXJyb3IgPT4gam9pbigiIiwgQGVycm9y
KSwKKyAgICAgICAgc3RhdHVzID0+ICRzdGF0dXMsCisgICAgICAgIG1pbWVUeXBlID0+ICRtaW1l
VHlwZSwKKyAgICAgICAgZXh0ZW5zaW9uID0+IGV4dGVuc2lvbkZvck1pbWVUeXBlKCRtaW1lVHlw
ZSkKKyAgICB9OworfQorCitzdWIgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCokKQoreworICAg
IG15ICgkZmgsICRub25CbG9ja2luZykgPSBAXzsKKworICAgIG15ICRmbGFncyA9IGZjbnRsKCRm
aCwgRl9HRVRGTCwgMCkgb3IgZGllICJDb3VsZG4ndCBnZXQgZmlsZWhhbmRsZSBmbGFncyI7CisK
KyAgICBpZiAoJG5vbkJsb2NraW5nKSB7CisgICAgICAgICRmbGFncyB8PSBPX05PTkJMT0NLOwor
ICAgIH0gZWxzZSB7CisgICAgICAgICRmbGFncyAmPSB+T19OT05CTE9DSzsKKyAgICB9CisKKyAg
ICBmY250bCgkZmgsIEZfU0VURkwsICRmbGFncykgb3IgZGllICJDb3VsZG4ndCBzZXQgZmlsZWhh
bmRsZSBmbGFncyI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIHNhbXBsZUR1bXBUb29sKCkK
K3sKKyAgICByZXR1cm4gdW5sZXNzIGlzQXBwbGVNYWNXZWJLaXQoKTsKKyAgICByZXR1cm4gdW5s
ZXNzICRydW5TYW1wbGU7CisKKyAgICBteSAkb3V0cHV0RGlyZWN0b3J5ID0gIiRFTlZ7SE9NRX0v
TGlicmFyeS9Mb2dzL0R1bXBSZW5kZXJUcmVlIjsKKyAgICAtZCAkb3V0cHV0RGlyZWN0b3J5IG9y
IG1rZGlyICRvdXRwdXREaXJlY3Rvcnk7CisKKyAgICBteSAkb3V0cHV0RmlsZSA9ICIkb3V0cHV0
RGlyZWN0b3J5L0hhbmdSZXBvcnQudHh0IjsKKyAgICBzeXN0ZW0gIi91c3IvYmluL3NhbXBsZSIs
ICRkdW1wVG9vbFBJRCwgcXcoMTAgMTAgLWZpbGUpLCAkb3V0cHV0RmlsZTsKK30KKworc3ViIHN0
cmlwTWV0cmljcygkJCkKK3sKKyAgICBteSAoJGFjdHVhbCwgJGV4cGVjdGVkKSA9IEBfOworCisg
ICAgZm9yZWFjaCBteSAkcmVzdWx0ICgkYWN0dWFsLCAkZXhwZWN0ZWQpIHsKKyAgICAgICAgJHJl
c3VsdCA9fiBzL2F0IFwoLT9bMC05XSssLT9bMC05XStcKSAqLy9nOworICAgICAgICAkcmVzdWx0
ID1+IHMvc2l6ZSAtP1swLTldK3gtP1swLTldKyAqLy9nOworICAgICAgICAkcmVzdWx0ID1+IHMv
dGV4dCBydW4gd2lkdGggLT9bMC05XSs6IC8vZzsKKyAgICAgICAgJHJlc3VsdCA9fiBzL3RleHQg
cnVuIHdpZHRoIC0/WzAtOV0rIFthLXpBLVogXSs6IC8vZzsKKyAgICAgICAgJHJlc3VsdCA9fiBz
L1JlbmRlckJ1dHRvbiB7QlVUVE9OfSAuKi9SZW5kZXJCdXR0b24ge0JVVFRPTn0vZzsKKyAgICAg
ICAgJHJlc3VsdCA9fiBzL1JlbmRlckltYWdlIHtJTlBVVH0gLiovUmVuZGVySW1hZ2Uge0lOUFVU
fS9nOworICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVyQmxvY2sge0lOUFVUfSAuKi9SZW5kZXJC
bG9jayB7SU5QVVR9L2c7CisgICAgICAgICRyZXN1bHQgPX4gcy9SZW5kZXJUZXh0Q29udHJvbCB7
SU5QVVR9IC4qL1JlbmRlclRleHRDb250cm9sIHtJTlBVVH0vZzsKKyAgICAgICAgJHJlc3VsdCA9
fiBzL1woWzAtOV0rcHgvcHgvZzsKKyAgICAgICAgJHJlc3VsdCA9fiBzLyAqIiAqXG4gKyIgKi8g
L2c7CisgICAgICAgICRyZXN1bHQgPX4gcy8iICskLyIvZzsKKworICAgICAgICAkcmVzdWx0ID1+
IHMvLSAvLS9nOworICAgICAgICAkcmVzdWx0ID1+IHMvXG4oICopIlxzKy9cbiQxIi9nOworICAg
ICAgICAkcmVzdWx0ID1+IHMvXHMrIlxuLyJcbi9nOworICAgICAgICAkcmVzdWx0ID1+IHMvc2Ny
b2xsV2lkdGggWzAtOV0rL3Njcm9sbFdpZHRoL2c7CisgICAgICAgICRyZXN1bHQgPX4gcy9zY3Jv
bGxIZWlnaHQgWzAtOV0rL3Njcm9sbEhlaWdodC9nOworICAgIH0KKworICAgIHJldHVybiAoJGFj
dHVhbCwgJGV4cGVjdGVkKTsKK30KKworc3ViIGZpbGVTaG91bGRCZUlnbm9yZWQKK3sKKyAgICBt
eSAoJGZpbGVQYXRoKSA9IEBfOworICAgIGZvcmVhY2ggbXkgJGlnbm9yZWREaXIgKGtleXMgJWln
bm9yZWREaXJlY3RvcmllcykgeworICAgICAgICBpZiAoJGZpbGVQYXRoID1+IG0vXiRpZ25vcmVk
RGlyLykgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIDA7Cit9CisKK3N1YiByZWFkU2tpcHBlZEZpbGVzKCQpCit7CisgICAgbXkgKCRjb25zdHJh
aW50UGF0aCkgPSBAXzsKKworICAgIGZvcmVhY2ggbXkgJGxldmVsIChAcGxhdGZvcm1UZXN0SGll
cmFyY2h5KSB7CisgICAgICAgIGlmIChvcGVuIFNLSVBQRUQsICI8IiwgIiRsZXZlbC9Ta2lwcGVk
IikgeworICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgbXkgKCRk
aXIsICRuYW1lKSA9IHNwbGl0cGF0aCgkbGV2ZWwpOworICAgICAgICAgICAgICAgIHByaW50ICJT
a2lwcGVkIHRlc3RzIGluICRuYW1lOlxuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
d2hpbGUgKDxTS0lQUEVEPikgeworICAgICAgICAgICAgICAgIG15ICRza2lwcGVkID0gJF87Cisg
ICAgICAgICAgICAgICAgY2hvbXAgJHNraXBwZWQ7CisgICAgICAgICAgICAgICAgJHNraXBwZWQg
PX4gcy9eWyBcblxyXSsvLzsKKyAgICAgICAgICAgICAgICAkc2tpcHBlZCA9fiBzL1sgXG5ccl0r
JC8vOworICAgICAgICAgICAgICAgIGlmICgkc2tpcHBlZCAmJiAkc2tpcHBlZCAhfiAvXiMvKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICgkc2tpcHBlZE9ubHkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghZmlsZVNob3VsZEJlSWdub3JlZCgkc2tpcHBlZCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoISRjb25zdHJhaW50UGF0aCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIEFsd2F5cyBhZGQgJHNraXBwZWQgc2luY2Ugbm8gY29uc3Ry
YWludCBwYXRoIHdhcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRza2lwcGVkID1+IC9eKCRjb25zdHJhaW50UGF0aCkv
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkICRza2lwcGVkIG9ubHkg
aWYgaXQgbWF0Y2hlcyB0aGUgY3VycmVudCBwYXRoIGNvbnN0cmFpbnQsIGUuZy4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICMgIi0tc2tpcHBlZD1vbmx5IGRpcjEiIHdpdGggImRp
cjEvZmlsZTEuaHRtbCIgb24gdGhlIHNraXBwZWQgbGlzdC4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzaWYgKCRjb25zdHJhaW50UGF0aCA9fiAvXigkc2tpcHBlZCkvKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkIGN1cnJlbnQgcGF0aCBjb25zdHJhaW50
IGlmIGl0IGlzIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgc2tpcCBsaXN0IGVudHJ5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGUuZy4sICItLXNraXBwZWQ9b25seSBkaXIxL2Rp
cjIvZGlyMyIgd2l0aCAiZGlyMSIgb24gdGhlIHNraXBwZWQgbGlzdC4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJGNvbnN0cmFpbnRQYXRoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgk
dmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICIgICAgJHNraXBw
ZWRcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVkXG4iOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0lnbm9yZVRlc3Rz
KCRza2lwcGVkLCAiU2tpcHBlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2xvc2UgU0tJUFBFRDsKKyAgICAg
ICAgfQorICAgIH0KK30KKworbXkgQHRlc3RzRm91bmQ7CisKK3N1YiBkaXJlY3RvcnlGaWx0ZXIK
K3sKKyAgICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVkTG9jYWxEaXJlY3Rvcmllc3tiYXNl
bmFtZSgkRmlsZTo6RmluZDo6ZGlyKX07CisgICAgcmV0dXJuICgpIGlmIGV4aXN0cyAkaWdub3Jl
ZERpcmVjdG9yaWVze0ZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6OmRpciwgJHRlc3RE
aXJlY3RvcnkpfTsKKyAgICByZXR1cm4gQF87Cit9CisKK3N1YiBmaWxlRmlsdGVyCit7CisgICAg
bXkgJGZpbGVuYW1lID0gJF87CisgICAgaWYgKCRmaWxlbmFtZSA9fiAvXC4oW14uXSspJC8pIHsK
KyAgICAgICAgaWYgKGV4aXN0cyAkc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnN7JDF9KSB7CisgICAg
ICAgICAgICBteSAkcGF0aCA9IEZpbGU6OlNwZWMtPmFiczJyZWwoY2F0ZmlsZSgkRmlsZTo6Rmlu
ZDo6ZGlyLCAkZmlsZW5hbWUpLCAkdGVzdERpcmVjdG9yeSk7CisgICAgICAgICAgICBwdXNoIEB0
ZXN0c0ZvdW5kLCAkcGF0aCBpZiAhZXhpc3RzICRpZ25vcmVkRmlsZXN7JHBhdGh9OworICAgICAg
ICB9CisgICAgfQorfQorCitzdWIgZmluZFRlc3RzVG9SdW4KK3sKKyAgICBteSBAdGVzdHNUb1J1
biA9ICgpOworCisgICAgZm9yIG15ICR0ZXN0IChAQVJHVikgeworICAgICAgICAkdGVzdCA9fiBz
L14oJGxheW91dFRlc3RzTmFtZXwkdGVzdERpcmVjdG9yeSlcLy8vOworICAgICAgICBteSAkZnVs
bFBhdGggPSBjYXRmaWxlKCR0ZXN0RGlyZWN0b3J5LCAkdGVzdCk7CisgICAgICAgIGlmIChmaWxl
X25hbWVfaXNfYWJzb2x1dGUoJHRlc3QpKSB7CisgICAgICAgICAgICBwcmludCAiY2FuJ3QgcnVu
IHRlc3QgJHRlc3Qgb3V0c2lkZSAkdGVzdERpcmVjdG9yeVxuIjsKKyAgICAgICAgfSBlbHNpZiAo
LWYgJGZ1bGxQYXRoKSB7CisgICAgICAgICAgICBteSAoJGZpbGVuYW1lLCAkcGF0aG5hbWUsICRm
aWxlRXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkdGVzdCwgcXJ7XC5bXi5dKyR9KTsKKyAgICAgICAg
ICAgIGlmICghZXhpc3RzICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3tzdWJzdHIoJGZpbGVFeHRl
bnNpb24sIDEpfSkgeworICAgICAgICAgICAgICAgIHByaW50ICJ0ZXN0ICR0ZXN0IGRvZXMgbm90
IGhhdmUgYSBzdXBwb3J0ZWQgZXh0ZW5zaW9uXG4iOworICAgICAgICAgICAgfSBlbHNpZiAoJHRl
c3RIVFRQIHx8ICRwYXRobmFtZSAhfiAvXmh0dHBcLy8pIHsKKyAgICAgICAgICAgICAgICBwdXNo
IEB0ZXN0c1RvUnVuLCAkdGVzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNpZiAoLWQg
JGZ1bGxQYXRoKSB7CisgICAgICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOworICAgICAgICAgICAg
ZmluZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdhbnRlZCA9PiBcJmZpbGVG
aWx0ZXIgfSwgJGZ1bGxQYXRoKTsKKyAgICAgICAgICAgIGZvciBteSAkbGV2ZWwgKEBwbGF0Zm9y
bVRlc3RIaWVyYXJjaHkpIHsKKyAgICAgICAgICAgICAgICBteSAkcGxhdGZvcm1QYXRoID0gY2F0
ZmlsZSgkbGV2ZWwsICR0ZXN0KTsKKyAgICAgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9
PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkcGxhdGZvcm1Q
YXRoKSBpZiAoLWQgJHBsYXRmb3JtUGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
dXNoIEB0ZXN0c1RvUnVuLCBzb3J0IHBhdGhjbXAgQHRlc3RzRm91bmQ7CisgICAgICAgICAgICBA
dGVzdHNGb3VuZCA9ICgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnQgInRl
c3QgJHRlc3Qgbm90IGZvdW5kXG4iOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFzY2Fs
YXIgQEFSR1YpIHsKKyAgICAgICAgQHRlc3RzRm91bmQgPSAoKTsKKyAgICAgICAgZmluZCh7IHBy
ZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdhbnRlZCA9PiBcJmZpbGVGaWx0ZXIgfSwg
JHRlc3REaXJlY3RvcnkpOworICAgICAgICBmb3IgbXkgJGxldmVsIChAcGxhdGZvcm1UZXN0SGll
cmFyY2h5KSB7CisgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZp
bHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkbGV2ZWwpOworICAgICAgICB9CisgICAg
ICAgIHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0aGNtcCBAdGVzdHNGb3VuZDsKKyAgICAgICAg
QHRlc3RzRm91bmQgPSAoKTsKKworICAgICAgICAjIFdlIG5lZWQgdG8gbWluaW1pemUgdGhlIHRp
bWUgd2hlbiBBcGFjaGUgYW5kIFdlYlNvY2tldFNlcnZlciBpcyBsb2NrZWQgYnkgdGVzdHMKKyAg
ICAgICAgIyBzbyBydW4gdGhlbSBsYXN0IGlmIG5vIGV4cGxpY2l0IG9yZGVyIHdhcyBzcGVjaWZp
ZWQgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCisgICAgICAgIG15IEBodHRwVGVzdHM7CisgICAgICAg
IG15IEB3ZWJzb2NrZXRUZXN0czsKKyAgICAgICAgbXkgQG90aGVyVGVzdHM7CisgICAgICAgIGZv
cmVhY2ggbXkgJHRlc3QgKEB0ZXN0c1RvUnVuKSB7CisgICAgICAgICAgICBpZiAoJHRlc3QgPX4g
L15odHRwXC8vKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaHR0cFRlc3RzLCAkdGVzdCk7Cisg
ICAgICAgICAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndlYnNvY2tldFwvLykgeworICAgICAgICAg
ICAgICAgIHB1c2goQHdlYnNvY2tldFRlc3RzLCAkdGVzdCk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIHB1c2goQG90aGVyVGVzdHMsICR0ZXN0KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBAdGVzdHNUb1J1biA9IChAb3RoZXJUZXN0cywgQGh0dHBU
ZXN0cywgQHdlYnNvY2tldFRlc3RzKTsKKyAgICB9CisKKyAgICAjIFJldmVyc2UgdGhlIHRlc3Rz
CisgICAgQHRlc3RzVG9SdW4gPSByZXZlcnNlIEB0ZXN0c1RvUnVuIGlmICRyZXZlcnNlVGVzdHM7
CisKKyAgICAjIFNodWZmbGUgdGhlIGFycmF5CisgICAgQHRlc3RzVG9SdW4gPSBzaHVmZmxlKEB0
ZXN0c1RvUnVuKSBpZiAkcmFuZG9taXplVGVzdHM7CisKKyAgICByZXR1cm4gQHRlc3RzVG9SdW47
Cit9CisKK3N1YiBwcmludFJlc3VsdHMKK3sKKyAgICBteSAldGV4dCA9ICgKKyAgICAgICAgbWF0
Y2ggPT4gInN1Y2NlZWRlZCIsCisgICAgICAgIG1pc21hdGNoID0+ICJoYWQgaW5jb3JyZWN0IGxh
eW91dCIsCisgICAgICAgIG5ldyA9PiAid2VyZSBuZXciLAorICAgICAgICB0aW1lZG91dCA9PiAi
dGltZWQgb3V0IiwKKyAgICAgICAgY3Jhc2ggPT4gImNyYXNoZWQiLAorICAgICAgICBlcnJvciA9
PiAiaGFkIHN0ZGVyciBvdXRwdXQiCisgICAgKTsKKworICAgIGZvciBteSAkdHlwZSAoIm1hdGNo
IiwgIm1pc21hdGNoIiwgIm5ldyIsICJ0aW1lZG91dCIsICJjcmFzaCIsICJlcnJvciIpIHsKKyAg
ICAgICAgbXkgJHR5cGVDb3VudCA9ICRjb3VudHN7JHR5cGV9OworICAgICAgICBuZXh0IHVubGVz
cyAkdHlwZUNvdW50OworICAgICAgICBteSAkdHlwZVRleHQgPSAkdGV4dHskdHlwZX07CisgICAg
ICAgIG15ICRtZXNzYWdlOworICAgICAgICBpZiAoJHR5cGVDb3VudCA9PSAxKSB7CisgICAgICAg
ICAgICAkdHlwZVRleHQgPX4gcy93ZXJlL3dhcy87CisgICAgICAgICAgICAkbWVzc2FnZSA9IHNw
cmludGYgIjEgdGVzdCBjYXNlICglZCUlKSAlc1xuIiwgMSAqIDEwMCAvICRjb3VudCwgJHR5cGVU
ZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG1lc3NhZ2UgPSBzcHJpbnRmICIl
ZCB0ZXN0IGNhc2VzICglZCUlKSAlc1xuIiwgJHR5cGVDb3VudCwgJHR5cGVDb3VudCAqIDEwMCAv
ICRjb3VudCwgJHR5cGVUZXh0OworICAgICAgICB9CisgICAgICAgICRtZXNzYWdlID1+IHMtXCgw
JVwpLSg8MSUpLTsKKyAgICAgICAgcHJpbnQgJG1lc3NhZ2U7CisgICAgfQorfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9ydW4td2Via2l0LXRlc3RzCmluZGV4IGZhYjYyNmEuLjMwZGY2MGEgMTAwNzU1Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKQEAgLTEsMjI2OCArMSw3OCBAQAogIyEvdXNyL2Jpbi9w
ZXJsCi0KLSMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKLSMgQ29weXJpZ2h0IChDKSAyMDA3IE1hdHQgTGls
ZWsgKHBld3Rlcm1vb3NlQGdtYWlsLmNvbSkKLSMgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMDkgQW5kcmFzIEJlY3NpIChi
ZWNzaS5hbmRyYXNAc3R1ZC51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0
OgogIwotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0jIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0jICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCi0jICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgogIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotIyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0jIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBTY3JpcHQgdG8gcnVuIHRoZSBXZWJLaXQg
T3BlbiBTb3VyY2UgUHJvamVjdCBsYXlvdXQgdGVzdHMuCi0KLSMgUnVuIGFsbCB0aGUgdGVzdHMg
cGFzc2VkIGluIG9uIHRoZSBjb21tYW5kIGxpbmUuCi0jIElmIG5vIHRlc3RzIGFyZSBwYXNzZWQs
IGZpbmQgYWxsIHRoZSAuaHRtbCwgLnNodG1sLCAueG1sLCAueGh0bWwsIC54aHRtbG1wLCAucGws
IC5waHAgKGFuZCBzdmcpIGZpbGVzIGluIHRoZSB0ZXN0IGRpcmVjdG9yeS4KLQotIyBSdW4gZWFj
aCB0ZXh0LgotIyBDb21wYXJlIGFnYWluc3QgdGhlIGV4aXN0aW5nIGZpbGUgeHh4LWV4cGVjdGVk
LnR4dC4KLSMgSWYgdGhlcmUgaXMgYSBtaXNtYXRjaCwgZ2VuZXJhdGUgeHh4LWFjdHVhbC50eHQg
YW5kIHh4eC1kaWZmcy50eHQuCi0KLSMgQXQgdGhlIGVuZCwgcmVwb3J0OgotIyAgIHRoZSBudW1i
ZXIgb2YgdGVzdHMgdGhhdCBnb3QgdGhlIGV4cGVjdGVkIHJlc3VsdHMKLSMgICB0aGUgbnVtYmVy
IG9mIHRlc3RzIHRoYXQgcmFuLCBidXQgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMK
LSMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgZmFpbGVkIHRvIHJ1bgotIyAgIHRoZSBudW1i
ZXIgb2YgdGVzdHMgdGhhdCB3ZXJlIHJ1biBidXQgaGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgdG8g
Y29tcGFyZSBhZ2FpbnN0CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworIyBUaGlzIGZpbGUgaXMgYSB0ZW1wb3JhcnkgaGFjay4KKyMgSXQgd2lsbCBiZSBy
ZW1vdmVkIGFzIHNvb24gYXMgYWxsIHBsYXRmb3JtcyBhcmUgYXJlIHJlYWR5IHRvIG1vdmUgdG8K
KyMgbmV3LXJ1bi13ZWJraXQtdGVzdHMgYW5kIHdlIGNhbiB0aGVuIHVwZGF0ZSB0aGUgYnVpbGRi
b3RzIHRvIGV4cGxpY2l0bHkKKyMgY2FsbCBvbGQtcnVuLXdlYmtpdC10ZXN0cyBmb3IgYW55IHBs
YXRmb3JtcyB3aGljaCB3aWxsIG5ldmVyIHN1cHBvcnQKKyMgYSBQeXRob24gcnVuLXdlYmtpdC10
ZXN0cy4KKworIyBUaGlzIGlzIGludGVudGlvbmFsbHkgd3JpdHRlbiBpbiBQZXJsIHRvIGd1YXJh
bnRlZSBzdXBwb3J0IG9uCisjIHRoZSBzYW1lIHNldCBvZiBwbGF0Zm9ybXMgYXMgb2xkLXJ1bi13
ZWJraXQtdGVzdHMgY3VycmVudGx5IHN1cHBvcnRzLgorIyBUaGUgYnVpbGRib3QgbWFzdGVyLmNm
ZyBhbHNvIGN1cnJlbnRseSBwYXNzZXMgcnVuLXdlYmtpdC10ZXN0cyB0bworIyBwZXJsIGRpcmVj
dGx5IGluc3RlYWQgb2YgZXhlY3V0aW5nIGl0IGluIGEgc2hlbGwuCiAKIHVzZSBzdHJpY3Q7CiB1
c2Ugd2FybmluZ3M7CiAKLXVzZSBDd2Q7Ci11c2UgRGF0YTo6RHVtcGVyOwotdXNlIEZjbnRsIHF3
KEZfR0VURkwgRl9TRVRGTCBPX05PTkJMT0NLKTsKLXVzZSBGaWxlOjpCYXNlbmFtZTsKLXVzZSBG
aWxlOjpDb3B5OwotdXNlIEZpbGU6OkZpbmQ7Ci11c2UgRmlsZTo6UGF0aDsKLXVzZSBGaWxlOjpT
cGVjOwotdXNlIEZpbGU6OlNwZWM6OkZ1bmN0aW9uczsKLXVzZSBGaWxlOjpUZW1wOwogdXNlIEZp
bmRCaW47Ci11c2UgR2V0b3B0OjpMb25nOwotdXNlIElQQzo6T3BlbjI7Ci11c2UgSVBDOjpPcGVu
MzsKLXVzZSBUaW1lOjpIaVJlcyBxdyh0aW1lIHVzbGVlcCk7Ci0KLXVzZSBMaXN0OjpVdGlsICdz
aHVmZmxlJzsKLQogdXNlIGxpYiAkRmluZEJpbjo6QmluOwotdXNlIHdlYmtpdHBlcmw6OmZlYXR1
cmVzOwotdXNlIHdlYmtpdHBlcmw6Omh0dHBkOwogdXNlIHdlYmtpdGRpcnM7Ci11c2UgVkNTVXRp
bHM7Ci11c2UgUE9TSVg7Ci0KLXN1YiBidWlsZFBsYXRmb3JtUmVzdWx0SGllcmFyY2h5KCk7Ci1z
dWIgYnVpbGRQbGF0Zm9ybVRlc3RIaWVyYXJjaHkoQCk7Ci1zdWIgY2xvc2VDeWdwYXRocygpOwot
c3ViIGNsb3NlRHVtcFRvb2woKTsKLXN1YiBjbG9zZVdlYlNvY2tldFNlcnZlcigpOwotc3ViIGNv
bmZpZ3VyZUFuZE9wZW5IVFRQRElmTmVlZGVkKCk7Ci1zdWIgY291bnRBbmRQcmludExlYWtzKCQk
JCk7Ci1zdWIgY291bnRGaW5pc2hlZFRlc3QoJCQkJCk7Ci1zdWIgZGVsZXRlRXhwZWN0ZWRBbmRB
Y3R1YWxSZXN1bHRzKCQpOwotc3ViIGR1bXBUb29sRGlkQ3Jhc2goKTsKLXN1YiBlcGlsb2d1ZXNB
bmRQcm9sb2d1ZXMoJCQpOwotc3ViIGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkOyQ7JCk7Ci1z
dWIgZmlsZU5hbWVXaXRoTnVtYmVyKCQkKTsKLXN1YiBodG1sRm9yUmVzdWx0c1NlY3Rpb24oXEAk
Jik7Ci1zdWIgaXNUZXh0T25seVRlc3QoJCk7Ci1zdWIgbGF1bmNoV2l0aEVudihcQFwlKTsKLXN1
YiByZXNvbHZlQW5kTWFrZVRlc3RSZXN1bHRzRGlyZWN0b3J5KCk7Ci1zdWIgbnVtZXJpY2NtcCgk
JCk7Ci1zdWIgb3BlbkRpZmZUb29sKCk7Ci1zdWIgb3BlbkR1bXBUb29sKCk7Ci1zdWIgcGFyc2VM
ZWFrc2FuZFByaW50VW5pcXVlTGVha3MoKTsKLXN1YiBvcGVuV2ViU29ja2V0U2VydmVySWZOZWVk
ZWQoKTsKLXN1YiBwYXRoY21wKCQkKTsKLXN1YiBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgk
JCk7Ci1zdWIgcHJvY2Vzc0lnbm9yZVRlc3RzKCQkKTsKLXN1YiByZWFkRnJvbUR1bXBUb29sV2l0
aFRpbWVyKCoqKTsKLXN1YiByZWFkU2tpcHBlZEZpbGVzKCQpOwotc3ViIHJlY29yZEFjdHVhbFJl
c3VsdHNBbmREaWZmKCQkKTsKLXN1YiBzYW1wbGVEdW1wVG9vbCgpOwotc3ViIHNldEZpbGVIYW5k
bGVOb25CbG9ja2luZygqJCk7Ci1zdWIgc2xvd2VzdGNtcCgkJCk7Ci1zdWIgc3BsaXRwYXRoKCQp
Owotc3ViIHN0cmlwRXh0ZW5zaW9uKCQpOwotc3ViIHN0cmlwTWV0cmljcygkJCk7Ci1zdWIgdGVz
dENyYXNoZWRPclRpbWVkT3V0KCQkJCQkKTsKLXN1YiB0b1VSTCgkKTsKLXN1YiB0b1dpbmRvd3NQ
YXRoKCQpOwotc3ViIHZhbGlkYXRlU2tpcHBlZEFyZygkJDskKTsKLXN1YiB3cml0ZVRvRmlsZSgk
JCk7Ci0KLSMgQXJndW1lbnQgaGFuZGxpbmcKLW15ICRhZGRQbGF0Zm9ybUV4Y2VwdGlvbnMgPSAw
OwotbXkgJGNvbXBsZXhUZXh0ID0gMDsKLW15ICRleGl0QWZ0ZXJORmFpbHVyZXMgPSAwOwotbXkg
JGdlbmVyYXRlTmV3UmVzdWx0cyA9IGlzQXBwbGVNYWNXZWJLaXQoKSA/IDEgOiAwOwotbXkgJGd1
YXJkTWFsbG9jID0gJyc7Ci0jIEZJWE1FOiBEeW5hbWljIEhUVFAtcG9ydCBjb25maWd1cmF0aW9u
IGluIHRoaXMgZmlsZSBpcyB3cm9uZy4gIFRoZSB2YXJpb3VzCi0jIGFwYWNoZSBjb25maWcgZmls
ZXMgaW4gTGF5b3V0VGVzdHMvaHR0cC9jb25maWcgZ292ZXJuIHRoZSBwb3J0IG51bWJlcnMuCi0j
IER5bmFtaWMgY29uZmlndXJhdGlvbiBhcy13cml0dGVuIHdpbGwgYWxzbyBjYXVzZSByYW5kb20g
ZmFpbHVyZXMgaW4KLSMgYW4gSVB2NiBlbnZpcm9ubWVudC4gIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcxMDQuCi1teSAkaHR0cGRQb3J0ID0gODAwMDsKLW15
ICRodHRwZFNTTFBvcnQgPSA4NDQzOwotbXkgJGlnbm9yZU1ldHJpY3MgPSAwOwotbXkgJHdlYlNv
Y2tldFBvcnQgPSA4ODgwOwotIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBz
dXBwb3J0IHB5T3BlblNTTC4KLSMgbXkgJHdlYlNvY2tldFNlY3VyZVBvcnQgPSA5MzIzOwotbXkg
JGlnbm9yZVRlc3RzID0gJyc7Ci1teSAkaXRlcmF0aW9ucyA9IDE7Ci1teSAkbGF1bmNoU2FmYXJp
ID0gMTsKLW15ICRtZXJnZURlcHRoOwotbXkgJHBpeGVsVGVzdHMgPSAnJzsKLW15ICRwbGF0Zm9y
bTsKLW15ICRxdWlldCA9ICcnOwotbXkgJHJhbmRvbWl6ZVRlc3RzID0gMDsKLW15ICRyZXBlYXRF
YWNoID0gMTsKLW15ICRyZXBvcnQxMFNsb3dlc3QgPSAwOwotbXkgJHJlc2V0UmVzdWx0cyA9IDA7
Ci1teSAkcmV2ZXJzZVRlc3RzID0gMDsKLW15ICRyb290OwotbXkgJHJ1blNhbXBsZSA9IDE7Ci1t
eSAkc2hvdWxkQ2hlY2tMZWFrcyA9IDA7Ci1teSAkc2hvd0hlbHAgPSAwOwotbXkgJHN0cmlwRWRp
dGluZ0NhbGxiYWNrcyA9IGlzQ3lnd2luKCk7Ci1teSAkdGVzdEhUVFAgPSAxOwotbXkgJHRlc3RN
ZWRpYSA9IDE7Ci1teSAkdG1wRGlyID0gIi90bXAiOwotbXkgJHRlc3RSZXN1bHRzRGlyZWN0b3J5
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdG1wRGlyLCAibGF5b3V0LXRlc3QtcmVzdWx0cyIpOwot
bXkgJHRlc3RzUGVyRHVtcFRvb2wgPSAxMDAwOwotbXkgJHRocmVhZGVkID0gMDsKLSMgRHVtcFJl
bmRlclRyZWUgaGFzIGFuIGludGVybmFsIHRpbWVvdXQgb2YgMzAgc2Vjb25kcywgc28gdGhpcyBt
dXN0IGJlID4gMzAuCi1teSAkdGltZW91dFNlY29uZHMgPSAzNTsKLW15ICR0b2xlcmFuY2UgPSAw
OwotbXkgJHRyZWF0U2tpcHBlZCA9ICJkZWZhdWx0IjsKLW15ICR1c2VSZW1vdGVMaW5rc1RvVGVz
dHMgPSAwOwotbXkgJHVzZVZhbGdyaW5kID0gMDsKLW15ICR2ZXJib3NlID0gMDsKLW15ICRzaG91
bGRXYWl0Rm9ySFRUUEQgPSAwOwotCi1teSBAbGVha3NGaWxlbmFtZXM7Ci0KLWlmIChpc1dpbmRv
d3MoKSB8fCBpc01zeXMoKSkgewotICAgIHByaW50ICJUaGlzIHNjcmlwdCBoYXMgdG8gYmUgcnVu
IHVuZGVyIEN5Z3dpbiB0byBmdW5jdGlvbiBjb3JyZWN0bHkuXG4iOwotICAgIGV4aXQgMTsKLX0K
LQotIyBEZWZhdWx0IHRvIC0tbm8taHR0cCBmb3Igd3ggZm9yIG5vdy4KLSR0ZXN0SFRUUCA9IDAg
aWYgKGlzV3goKSk7Ci0KLW15ICRleHBlY3RlZFRhZyA9ICJleHBlY3RlZCI7Ci1teSAkYWN0dWFs
VGFnID0gImFjdHVhbCI7Ci1teSAkcHJldHR5RGlmZlRhZyA9ICJwcmV0dHktZGlmZiI7Ci1teSAk
ZGlmZnNUYWcgPSAiZGlmZnMiOwotbXkgJGVycm9yVGFnID0gInN0ZGVyciI7Ci0KLW15IEBtYWNQ
bGF0Zm9ybXMgPSAoIm1hYy10aWdlciIsICJtYWMtbGVvcGFyZCIsICJtYWMtc25vd2xlb3BhcmQi
LCAibWFjIik7Ci0KLWlmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKLSAgICBpZiAoaXNUaWdlcigp
KSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJtYWMtdGlnZXIiOwotICAgICAgICAkdG9sZXJhbmNl
ID0gMS4wOwotICAgIH0gZWxzaWYgKGlzTGVvcGFyZCgpKSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9
ICJtYWMtbGVvcGFyZCI7Ci0gICAgICAgICR0b2xlcmFuY2UgPSAwLjE7Ci0gICAgfSBlbHNpZiAo
aXNTbm93TGVvcGFyZCgpKSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJtYWMtc25vd2xlb3BhcmQi
OwotICAgICAgICAkdG9sZXJhbmNlID0gMC4xOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRwbGF0
Zm9ybSA9ICJtYWMiOwotICAgIH0KLX0gZWxzaWYgKGlzUXQoKSkgewotICAgIGlmIChpc0Rhcndp
bigpKSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJxdC1tYWMiOwotICAgIH0gZWxzaWYgKGlzTGlu
dXgoKSkgewotICAgICAgICAkcGxhdGZvcm0gPSAicXQtbGludXgiOwotICAgIH0gZWxzaWYgKGlz
V2luZG93cygpIHx8IGlzQ3lnd2luKCkpIHsKLSAgICAgICAgJHBsYXRmb3JtID0gInF0LXdpbiI7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgJHBsYXRmb3JtID0gInF0IjsKLSAgICB9Ci19IGVsc2lm
IChpc0d0aygpKSB7Ci0gICAgJHBsYXRmb3JtID0gImd0ayI7Ci0gICAgaWYgKCEkRU5WeyJXRUJL
SVRfVEVTVEZPTlRTIn0pIHsKLSAgICAgICAgcHJpbnQgIlRoZSBXRUJLSVRfVEVTVEZPTlRTIGVu
dmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBkZWZpbmVkLlxuIjsKLSAgICAgICAgcHJpbnQgIllv
dSBtdXN0IHNldCBpdCBiZWZvcmUgcnVubmluZyB0aGUgdGVzdHMuXG4iOwotICAgICAgICBwcmlu
dCAiVXNlIGdpdCB0byBncmFiIHRoZSBhY3R1YWwgZm9udHMgZnJvbSBodHRwOi8vZ2l0b3Jpb3Vz
Lm9yZy9xdHdlYmtpdC90ZXN0Zm9udHNcbiI7Ci0gICAgICAgIGV4aXQgMTsKLSAgICB9Ci19IGVs
c2lmIChpc1d4KCkpIHsKLSAgICAkcGxhdGZvcm0gPSAid3giOwotfSBlbHNpZiAoaXNDeWd3aW4o
KSkgewotICAgICRwbGF0Zm9ybSA9ICJ3aW4iOwotfQotCi1pZiAoIWRlZmluZWQoJHBsYXRmb3Jt
KSkgewotICAgIHByaW50ICJXQVJOSU5HOiBZb3VyIHBsYXRmb3JtIGlzIG5vdCByZWNvZ25pemVk
LiBBbnkgcGxhdGZvcm0tc3BlY2lmaWMgcmVzdWx0cyB3aWxsIGJlIGdlbmVyYXRlZCBpbiBwbGF0
Zm9ybS91bmRlZmluZWQuXG4iOwotICAgICRwbGF0Zm9ybSA9ICJ1bmRlZmluZWQiOwotfQotCi1t
eSAkcHJvZ3JhbU5hbWUgPSBiYXNlbmFtZSgkMCk7Ci1teSAkbGF1bmNoU2FmYXJpRGVmYXVsdCA9
ICRsYXVuY2hTYWZhcmkgPyAibGF1bmNoIiA6ICJkbyBub3QgbGF1bmNoIjsKLW15ICRodHRwRGVm
YXVsdCA9ICR0ZXN0SFRUUCA/ICJydW4iIDogImRvIG5vdCBydW4iOwotbXkgJHNhbXBsZURlZmF1
bHQgPSAkcnVuU2FtcGxlID8gInJ1biIgOiAiZG8gbm90IHJ1biI7Ci0KLW15ICR1c2FnZSA9IDw8
RU9GOwotVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW3Rlc3RkaXJ8dGVzdHBhdGggLi4u
XQotICAtLWFkZC1wbGF0Zm9ybS1leGNlcHRpb25zICAgICAgIFB1dCBuZXcgcmVzdWx0cyBmb3Ig
bm9uLXBsYXRmb3JtLXNwZWNpZmljIGZhaWxpbmcgdGVzdHMgaW50byB0aGUgcGxhdGZvcm0tc3Bl
Y2lmaWMgcmVzdWx0cyBkaXJlY3RvcnkKLSAgLS1jb21wbGV4LXRleHQgICAgICAgICAgICAgICAg
ICBVc2UgdGhlIGNvbXBsZXggdGV4dCBjb2RlIHBhdGggZm9yIGFsbCB0ZXh0IChNYWMgT1MgWCBh
bmQgV2luZG93cyBvbmx5KQotICAtY3wtLWNvbmZpZ3VyYXRpb24gY29uZmlnICAgICAgIFNldCBE
dW1wUmVuZGVyVHJlZSBidWlsZCBjb25maWd1cmF0aW9uCi0gIC1nfC0tZ3VhcmQtbWFsbG9jICAg
ICAgICAgICAgICAgRW5hYmxlIG1hbGxvYyBndWFyZAotICAtLWV4aXQtYWZ0ZXItbi1mYWlsdXJl
cyBOICAgICAgIEV4aXQgYWZ0ZXIgdGhlIGZpcnN0IE4gZmFpbHVyZXMgaW5zdGVhZCBvZiBydW5u
aW5nIGFsbCB0ZXN0cwotICAtaHwtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhp
cyBoZWxwIG1lc3NhZ2UKLSAgLS1bbm8tXWh0dHAgICAgICAgICAgICAgICAgICAgICBSdW4gKG9y
IGRvIG5vdCBydW4pIGh0dHAgdGVzdHMgKGRlZmF1bHQ6ICRodHRwRGVmYXVsdCkKLSAgLS1bbm8t
XXdhaXQtZm9yLWh0dHBkICAgICAgICAgICBXYWl0IGZvciBodHRwZCBpZiBzb21lIG90aGVyIHRl
c3Qgc2Vzc2lvbiBpcyB1c2luZyBpdCBhbHJlYWR5IChzYW1lIGFzIFdFQktJVF9XQUlUX0ZPUl9I
VFRQRD0xKS4gKGRlZmF1bHQ6ICRzaG91bGRXYWl0Rm9ySFRUUEQpIAotICAtaXwtLWlnbm9yZS10
ZXN0cyAgICAgICAgICAgICAgIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzIG9y
IHRlc3RzIHRvIGlnbm9yZQotICAtLWl0ZXJhdGlvbnMgbiAgICAgICAgICAgICAgICAgIE51bWJl
ciBvZiB0aW1lcyB0byBydW4gdGhlIHNldCBvZiB0ZXN0cyAoZS5nLiBBQkNBQkNBQkMpCi0gIC0t
W25vLV1sYXVuY2gtc2FmYXJpICAgICAgICAgICAgTGF1bmNoIChvciBkbyBub3QgbGF1bmNoKSBT
YWZhcmkgdG8gZGlzcGxheSB0ZXN0IHJlc3VsdHMgKGRlZmF1bHQ6ICRsYXVuY2hTYWZhcmlEZWZh
dWx0KQotICAtbHwtLWxlYWtzICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBsZWFrcyBjaGVj
a2luZwotICAtLVtuby1dbmV3LXRlc3QtcmVzdWx0cyAgICAgICAgIEdlbmVyYXRlIHJlc3VsdHMg
Zm9yIG5ldyB0ZXN0cwotICAtLW50aGx5IG4gICAgICAgICAgICAgICAgICAgICAgIFJlc3RhcnQg
RHVtcFJlbmRlclRyZWUgZXZlcnkgbiB0ZXN0cyAoZGVmYXVsdDogJHRlc3RzUGVyRHVtcFRvb2wp
Ci0gIC1wfC0tcGl4ZWwtdGVzdHMgICAgICAgICAgICAgICAgRW5hYmxlIHBpeGVsIHRlc3RzCi0g
IC0tdG9sZXJhbmNlIHQgICAgICAgICAgICAgICAgICAgSWdub3JlIGltYWdlIGRpZmZlcmVuY2Vz
IGxlc3MgdGhhbiB0aGlzIHBlcmNlbnRhZ2UgKGRlZmF1bHQ6ICR0b2xlcmFuY2UpCi0gIC0tcGxh
dGZvcm0gICAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGUgdGhlIGRldGVjdGVkIHBsYXRmb3Jt
IHRvIHVzZSBmb3IgdGVzdHMgYW5kIHJlc3VsdHMgKGRlZmF1bHQ6ICRwbGF0Zm9ybSkKLSAgLS1w
b3J0ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWIgc2VydmVyIHBvcnQgdG8gdXNlIHdpdGgg
aHR0cCB0ZXN0cwotICAtcXwtLXF1aWV0ICAgICAgICAgICAgICAgICAgICAgIExlc3MgdmVyYm9z
ZSBvdXRwdXQKLSAgLS1yZXNldC1yZXN1bHRzICAgICAgICAgICAgICAgICBSZXNldCBBTEwgcmVz
dWx0cyAoaW5jbHVkaW5nIHBpeGVsIHRlc3RzIGlmIC0tcGl4ZWwtdGVzdHMgaXMgc2V0KQotICAt
b3wtLXJlc3VsdHMtZGlyZWN0b3J5ICAgICAgICAgIE91dHB1dCByZXN1bHRzIGRpcmVjdG9yeSAo
ZGVmYXVsdDogJHRlc3RSZXN1bHRzRGlyZWN0b3J5KQotICAtLXJhbmRvbSAgICAgICAgICAgICAg
ICAgICAgICAgIFJ1biB0aGUgdGVzdHMgaW4gYSByYW5kb20gb3JkZXIKLSAgLS1yZXBlYXQtZWFj
aCBuICAgICAgICAgICAgICAgICBOdW1iZXIgb2YgdGltZXMgdG8gcnVuIGVhY2ggdGVzdCAoZS5n
LiBBQUFCQkJDQ0MpCi0gIC0tcmV2ZXJzZSAgICAgICAgICAgICAgICAgICAgICAgUnVuIHRoZSB0
ZXN0cyBpbiByZXZlcnNlIGFscGhhYmV0aWNhbCBvcmRlcgotICAtLXJvb3QgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBhdGggdG8gcm9vdCB0b29scyBidWlsZAotICAtLVtuby1dc2FtcGxlLW9u
LXRpbWVvdXQgICAgICAgIFJ1biBzYW1wbGUgb24gdGltZW91dCAoZGVmYXVsdDogJHNhbXBsZURl
ZmF1bHQpIChNYWMgT1MgWCBvbmx5KQotICAtMXwtLXNpbmdseSAgICAgICAgICAgICAgICAgICAg
IElzb2xhdGUgZWFjaCB0ZXN0IGNhc2UgcnVuIChpbXBsaWVzIC0tbnRobHkgMSAtLXZlcmJvc2Up
Ci0gIC0tc2tpcHBlZD1bZGVmYXVsdHxpZ25vcmV8b25seV0gU3BlY2lmaWVzIGhvdyB0byB0cmVh
dCB0aGUgU2tpcHBlZCBmaWxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdDogVGVzdHMvZGlyZWN0b3JpZXMgbGlzdGVkIGluIHRoZSBTa2lwcGVkIGZpbGUgYXJl
IG5vdCB0ZXN0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmU6
ICBUaGUgU2tpcHBlZCBmaWxlIGlzIGlnbm9yZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvbmx5OiAgICBPbmx5IHRob3NlIHRlc3RzL2RpcmVjdG9yaWVzIGxpc3RlZCBp
biB0aGUgU2tpcHBlZCBmaWxlIHdpbGwgYmUgcnVuCi0gIC0tc2xvd2VzdCAgICAgICAgICAgICAg
ICAgICAgICAgUmVwb3J0IHRoZSAxMCBzbG93ZXN0IHRlc3RzCi0gIC0taWdub3JlLW1ldHJpY3Mg
ICAgICAgICAgICAgICAgSWdub3JlIG1ldHJpY3MgaW4gdGVzdHMKLSAgLS1bbm8tXXN0cmlwLWVk
aXRpbmctY2FsbGJhY2tzICBSZW1vdmUgZWRpdGluZyBjYWxsYmFja3MgZnJvbSBleHBlY3RlZCBy
ZXN1bHRzCi0gIC10fC0tdGhyZWFkZWQgICAgICAgICAgICAgICAgICAgUnVuIGEgY29uY3VycmVu
dCBKYXZhU2NyaXB0IHRoZWFkIHdpdGggZWFjaCB0ZXN0Ci0gIC0tdGltZW91dCB0ICAgICAgICAg
ICAgICAgICAgICAgU2V0cyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGEgdGVzdCB0aW1l
cyBvdXQgKGRlZmF1bHQ6ICR0aW1lb3V0U2Vjb25kcykKLSAgLS12YWxncmluZCAgICAgICAgICAg
ICAgICAgICAgICBSdW4gRHVtcFJlbmRlclRyZWUgaW5zaWRlIHZhbGdyaW5kIChRdC9MaW51eCBv
bmx5KQotICAtdnwtLXZlcmJvc2UgICAgICAgICAgICAgICAgICAgIE1vcmUgdmVyYm9zZSBvdXRw
dXQgKG92ZXJyaWRlcyAtLXF1aWV0KQotICAtbXwtLW1lcmdlLWxlYWstZGVwdGggYXJnICAgICAg
IE1lcmdlcyBsZWFrIGNhbGxTdGFja3MgYW5kIHByaW50cyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBs
ZWFrcyBiZW5lYXRoIGEgY2FsbHN0YWNrIGRlcHRoIG9mIGFyZy4gIERlZmF1bHRzIHRvIDUuCi0g
IC0tdXNlLXJlbW90ZS1saW5rcy10by10ZXN0cyAgICAgTGluayB0byB0ZXN0IGZpbGVzIHdpdGhp
biB0aGUgU1ZOIHJlcG9zaXRvcnkgaW4gdGhlIHJlc3VsdHMuCi1FT0YKLQotc2V0Q29uZmlndXJh
dGlvbigpOwotCi1teSAkZ2V0T3B0aW9uc1Jlc3VsdCA9IEdldE9wdGlvbnMoCi0gICAgJ2FkZC1w
bGF0Zm9ybS1leGNlcHRpb25zJyA9PiBcJGFkZFBsYXRmb3JtRXhjZXB0aW9ucywKLSAgICAnY29t
cGxleC10ZXh0JyA9PiBcJGNvbXBsZXhUZXh0LAotICAgICdleGl0LWFmdGVyLW4tZmFpbHVyZXM9
aScgPT4gXCRleGl0QWZ0ZXJORmFpbHVyZXMsCi0gICAgJ2d1YXJkLW1hbGxvY3xnJyA9PiBcJGd1
YXJkTWFsbG9jLAotICAgICdoZWxwfGgnID0+IFwkc2hvd0hlbHAsCi0gICAgJ2h0dHAhJyA9PiBc
JHRlc3RIVFRQLAotICAgICd3YWl0LWZvci1odHRwZCEnID0+IFwkc2hvdWxkV2FpdEZvckhUVFBE
LAotICAgICdpZ25vcmUtbWV0cmljcyEnID0+IFwkaWdub3JlTWV0cmljcywKLSAgICAnaWdub3Jl
LXRlc3RzfGk9cycgPT4gXCRpZ25vcmVUZXN0cywKLSAgICAnaXRlcmF0aW9ucz1pJyA9PiBcJGl0
ZXJhdGlvbnMsCi0gICAgJ2xhdW5jaC1zYWZhcmkhJyA9PiBcJGxhdW5jaFNhZmFyaSwKLSAgICAn
bGVha3N8bCcgPT4gXCRzaG91bGRDaGVja0xlYWtzLAotICAgICdtZXJnZS1sZWFrLWRlcHRofG06
NScgPT4gXCRtZXJnZURlcHRoLAotICAgICduZXctdGVzdC1yZXN1bHRzIScgPT4gXCRnZW5lcmF0
ZU5ld1Jlc3VsdHMsCi0gICAgJ250aGx5PWknID0+IFwkdGVzdHNQZXJEdW1wVG9vbCwKLSAgICAn
cGl4ZWwtdGVzdHN8cCcgPT4gXCRwaXhlbFRlc3RzLAotICAgICdwbGF0Zm9ybT1zJyA9PiBcJHBs
YXRmb3JtLAotICAgICdwb3J0PWknID0+IFwkaHR0cGRQb3J0LAotICAgICdxdWlldHxxJyA9PiBc
JHF1aWV0LAotICAgICdyYW5kb20nID0+IFwkcmFuZG9taXplVGVzdHMsCi0gICAgJ3JlcGVhdC1l
YWNoPWknID0+IFwkcmVwZWF0RWFjaCwKLSAgICAncmVzZXQtcmVzdWx0cycgPT4gXCRyZXNldFJl
c3VsdHMsCi0gICAgJ3Jlc3VsdHMtZGlyZWN0b3J5fG89cycgPT4gXCR0ZXN0UmVzdWx0c0RpcmVj
dG9yeSwKLSAgICAncmV2ZXJzZScgPT4gXCRyZXZlcnNlVGVzdHMsCi0gICAgJ3Jvb3Q9cycgPT4g
XCRyb290LAotICAgICdzYW1wbGUtb24tdGltZW91dCEnID0+IFwkcnVuU2FtcGxlLAotICAgICdz
aW5nbHl8MScgPT4gc3ViIHsgJHRlc3RzUGVyRHVtcFRvb2wgPSAxOyB9LAotICAgICdza2lwcGVk
PXMnID0+IFwmdmFsaWRhdGVTa2lwcGVkQXJnLAotICAgICdzbG93ZXN0JyA9PiBcJHJlcG9ydDEw
U2xvd2VzdCwKLSAgICAnc3RyaXAtZWRpdGluZy1jYWxsYmFja3MhJyA9PiBcJHN0cmlwRWRpdGlu
Z0NhbGxiYWNrcywKLSAgICAndGhyZWFkZWR8dCcgPT4gXCR0aHJlYWRlZCwKLSAgICAndGltZW91
dD1pJyA9PiBcJHRpbWVvdXRTZWNvbmRzLAotICAgICd0b2xlcmFuY2U9ZicgPT4gXCR0b2xlcmFu
Y2UsCi0gICAgJ3VzZS1yZW1vdGUtbGlua3MtdG8tdGVzdHMnID0+IFwkdXNlUmVtb3RlTGlua3NU
b1Rlc3RzLAotICAgICd2YWxncmluZCcgPT4gXCR1c2VWYWxncmluZCwKLSAgICAndmVyYm9zZXx2
JyA9PiBcJHZlcmJvc2UsCi0pOwotCi1pZiAoISRnZXRPcHRpb25zUmVzdWx0IHx8ICRzaG93SGVs
cCkgewotICAgIHByaW50IFNUREVSUiAkdXNhZ2U7Ci0gICAgZXhpdCAxOwotfQotCi1teSAkaWdu
b3JlU2tpcHBlZCA9ICR0cmVhdFNraXBwZWQgZXEgImlnbm9yZSI7Ci1teSAkc2tpcHBlZE9ubHkg
PSAkdHJlYXRTa2lwcGVkIGVxICJvbmx5IjsKLQotbXkgJGNvbmZpZ3VyYXRpb24gPSBjb25maWd1
cmF0aW9uKCk7Ci0KLSMgV2UgbmVlZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBiZSBhYmxl
IHRvIGVuYWJsZSB0aGUgZmVhdHVyZSBwZXItc2xhdmUKLSRzaG91bGRXYWl0Rm9ySFRUUEQgPSAk
RU5WeyJXRUJLSVRfV0FJVF9GT1JfSFRUUEQifSB1bmxlc3MgKCRzaG91bGRXYWl0Rm9ySFRUUEQp
OwotJHZlcmJvc2UgPSAxIGlmICR0ZXN0c1BlckR1bXBUb29sID09IDE7Ci0KLWlmICgkc2hvdWxk
Q2hlY2tMZWFrcyAmJiAkdGVzdHNQZXJEdW1wVG9vbCA+IDEwMDApIHsKLSAgICBwcmludCBTVERF
UlIgIlxuV0FSTklORzogUnVubmluZyBtb3JlIHRoYW4gMTAwMCB0ZXN0cyBhdCBhIHRpbWUgd2l0
aCBNYWxsb2NTdGFja0xvZ2dpbmcgZW5hYmxlZCBtYXkgY2F1c2UgYSBjcmFzaC5cblxuIjsKLX0K
LQotIyBTdGFjayBsb2dnaW5nIGRvZXMgbm90IHBsYXkgd2VsbCB3aXRoIFF1aWNrVGltZSBvbiBU
aWdlciAocmRhcjovL3Byb2JsZW0vNTUzNzE1NykKLSR0ZXN0TWVkaWEgPSAwIGlmICRzaG91bGRD
aGVja0xlYWtzICYmIGlzVGlnZXIoKTsKLQotIyBHZW5lcmF0aW5nIHJlbW90ZSBsaW5rcyBjYXVz
ZXMgYSBsb3Qgb2YgdW5uZWNlc3Nhcnkgc3BldyBvbiBHVEsgYnVpbGQgYm90Ci0kdXNlUmVtb3Rl
TGlua3NUb1Rlc3RzID0gMCBpZiBpc0d0aygpOwotCi1zZXRDb25maWd1cmF0aW9uUHJvZHVjdERp
cihDd2Q6OmFic19wYXRoKCRyb290KSkgaWYgKGRlZmluZWQoJHJvb3QpKTsKLW15ICRwcm9kdWN0
RGlyID0gcHJvZHVjdERpcigpOwotJHByb2R1Y3REaXIgLj0gIi9iaW4iIGlmIGlzUXQoKTsKLSRw
cm9kdWN0RGlyIC49ICIvUHJvZ3JhbXMiIGlmIGlzR3RrKCk7Ci0KLWNoZGlyV2ViS2l0KCk7Ci0K
LWlmICghZGVmaW5lZCgkcm9vdCkpIHsKLSAgICBwcmludCBTVERFUlIgIlJ1bm5pbmcgYnVpbGQt
ZHVtcHJlbmRlcnRyZWVcbiI7Ci0KLSAgICBsb2NhbCAqREVWTlVMTDsKLSAgICBteSAoJGNoaWxk
SW4sICRjaGlsZE91dCwgJGNoaWxkRXJyKTsKLSAgICBpZiAoJHF1aWV0KSB7Ci0gICAgICAgIG9w
ZW4oREVWTlVMTCwgIj4iLCBGaWxlOjpTcGVjLT5kZXZudWxsKCkpIG9yIGRpZSAiRmFpbGVkIHRv
IG9wZW4gL2Rldi9udWxsIjsKLSAgICAgICAgJGNoaWxkT3V0ID0gIj4mREVWTlVMTCI7Ci0gICAg
ICAgICRjaGlsZEVyciA9ICI+JkRFVk5VTEwiOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICMgV2hl
biBub3QgcXVpZXQsIGxldCB0aGUgY2hpbGQgdXNlIG91ciBzdGRvdXQvc3RkZXJyLgotICAgICAg
ICAkY2hpbGRPdXQgPSAiPiZTVERPVVQiOwotICAgICAgICAkY2hpbGRFcnIgPSAiPiZTVERFUlIi
OwotICAgIH0KLQotICAgIG15IEBhcmdzID0gYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpOwot
ICAgIG15ICRidWlsZFByb2Nlc3MgPSBvcGVuMygkY2hpbGRJbiwgJGNoaWxkT3V0LCAkY2hpbGRF
cnIsICJXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlIiwgQGFyZ3MpIG9y
IGRpZSAiRmFpbGVkIHRvIHJ1biBidWlsZC1kdW1wcmVuZGVydHJlZSI7Ci0gICAgY2xvc2UoJGNo
aWxkSW4pOwotICAgIHdhaXRwaWQgJGJ1aWxkUHJvY2VzcywgMDsKLSAgICBteSAkYnVpbGRSZXN1
bHQgPSAkPzsKLSAgICBjbG9zZSgkY2hpbGRPdXQpOwotICAgIGNsb3NlKCRjaGlsZEVycik7Ci0K
LSAgICBjbG9zZSBERVZOVUxMIGlmICgkcXVpZXQpOwotCi0gICAgaWYgKCRidWlsZFJlc3VsdCkg
ewotICAgICAgICBwcmludCBTVERFUlIgIkNvbXBpbGluZyBEdW1wUmVuZGVyVHJlZSBmYWlsZWQh
XG4iOwotICAgICAgICBleGl0IGV4aXRTdGF0dXMoJGJ1aWxkUmVzdWx0KTsKLSAgICB9Ci19Ci0K
LW15ICRkdW1wVG9vbE5hbWUgPSAiRHVtcFJlbmRlclRyZWUiOwotJGR1bXBUb29sTmFtZSAuPSAi
X2RlYnVnIiBpZiBpc0N5Z3dpbigpICYmIGNvbmZpZ3VyYXRpb25Gb3JWaXN1YWxTdHVkaW8oKSAh
fiAvXlJlbGVhc2V8RGVidWdfSW50ZXJuYWwkLzsKLW15ICRkdW1wVG9vbCA9ICIkcHJvZHVjdERp
ci8kZHVtcFRvb2xOYW1lIjsKLWRpZSAiY2FuJ3QgZmluZCBleGVjdXRhYmxlICRkdW1wVG9vbE5h
bWUgKGxvb2tlZCBpbiAkcHJvZHVjdERpcilcbiIgdW5sZXNzIC14ICRkdW1wVG9vbDsKLQotbXkg
JGltYWdlRGlmZlRvb2wgPSAiJHByb2R1Y3REaXIvSW1hZ2VEaWZmIjsKLSRpbWFnZURpZmZUb29s
IC49ICJfZGVidWciIGlmIGlzQ3lnd2luKCkgJiYgY29uZmlndXJhdGlvbkZvclZpc3VhbFN0dWRp
bygpICF+IC9eUmVsZWFzZXxEZWJ1Z19JbnRlcm5hbCQvOwotZGllICJjYW4ndCBmaW5kIGV4ZWN1
dGFibGUgJGltYWdlRGlmZlRvb2wgKGxvb2tlZCBpbiAkcHJvZHVjdERpcilcbiIgaWYgJHBpeGVs
VGVzdHMgJiYgIS14ICRpbWFnZURpZmZUb29sOwotCi1jaGVja0ZyYW1ld29ya3MoKSB1bmxlc3Mg
aXNDeWd3aW4oKTsKLQotaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgewotICAgIHB1c2ggQElOQywg
JHByb2R1Y3REaXI7Ci0gICAgcmVxdWlyZSBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ7Ci19Ci0KLW15
ICRsYXlvdXRUZXN0c05hbWUgPSAiTGF5b3V0VGVzdHMiOwotbXkgJHRlc3REaXJlY3RvcnkgPSBG
aWxlOjpTcGVjLT5yZWwyYWJzKCRsYXlvdXRUZXN0c05hbWUpOwotbXkgJGV4cGVjdGVkRGlyZWN0
b3J5ID0gJHRlc3REaXJlY3Rvcnk7Ci1teSAkcGxhdGZvcm1CYXNlRGlyZWN0b3J5ID0gY2F0ZGly
KCR0ZXN0RGlyZWN0b3J5LCAicGxhdGZvcm0iKTsKLW15ICRwbGF0Zm9ybVRlc3REaXJlY3Rvcnkg
PSBjYXRkaXIoJHBsYXRmb3JtQmFzZURpcmVjdG9yeSwgJHBsYXRmb3JtKTsKLW15IEBwbGF0Zm9y
bVJlc3VsdEhpZXJhcmNoeSA9IGJ1aWxkUGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkoKTsKLW15IEBw
bGF0Zm9ybVRlc3RIaWVyYXJjaHkgPSBidWlsZFBsYXRmb3JtVGVzdEhpZXJhcmNoeShAcGxhdGZv
cm1SZXN1bHRIaWVyYXJjaHkpOwotCi0kZXhwZWN0ZWREaXJlY3RvcnkgPSAkRU5WeyJXZWJLaXRF
eHBlY3RlZFRlc3RSZXN1bHRzRGlyZWN0b3J5In0gaWYgJEVOVnsiV2ViS2l0RXhwZWN0ZWRUZXN0
UmVzdWx0c0RpcmVjdG9yeSJ9OwotCi0kdGVzdFJlc3VsdHNEaXJlY3RvcnkgPSBGaWxlOjpTcGVj
LT5yZWwyYWJzKCR0ZXN0UmVzdWx0c0RpcmVjdG9yeSk7Ci1teSAkdGVzdFJlc3VsdHMgPSBGaWxl
OjpTcGVjLT5jYXRmaWxlKCR0ZXN0UmVzdWx0c0RpcmVjdG9yeSwgInJlc3VsdHMuaHRtbCIpOwot
Ci1pZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7Ci0gICAgcHJpbnQgU1RERVJSICJDb21waWxpbmcg
SmF2YSB0ZXN0c1xuIjsKLSAgICBteSAkamF2YVRlc3RzRGlyZWN0b3J5ID0gY2F0ZGlyKCR0ZXN0
RGlyZWN0b3J5LCAiamF2YSIpOwotCi0gICAgaWYgKHN5c3RlbSgiL3Vzci9iaW4vbWFrZSIsICIt
QyIsICIkamF2YVRlc3RzRGlyZWN0b3J5IikpIHsKLSAgICAgICAgZXhpdCAxOwotICAgIH0KLX0K
LQotCi1wcmludCAiUnVubmluZyB0ZXN0cyBmcm9tICR0ZXN0RGlyZWN0b3J5XG4iOwotaWYgKCRw
aXhlbFRlc3RzKSB7Ci0gICAgcHJpbnQgIkVuYWJsaW5nIHBpeGVsIHRlc3RzIHdpdGggYSB0b2xl
cmFuY2Ugb2YgJHRvbGVyYW5jZSVcbiI7Ci0gICAgaWYgKGlzRGFyd2luKCkpIHsKLSAgICAgICAg
cHJpbnQgIldBUk5JTkc6IFRlbXBvcmFyaWx5IGNoYW5naW5nIHRoZSBtYWluIGRpc3BsYXkgY29s
b3IgcHJvZmlsZTpcbiI7Ci0gICAgICAgIHByaW50ICJcdFRoZSBjb2xvcnMgb24geW91ciBzY3Jl
ZW4gd2lsbCBjaGFuZ2UgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdGVzdGluZy5cbiI7Ci0gICAg
ICAgIHByaW50ICJcdFRoaXMgYWxsb3dzIHRoZSBwaXhlbCB0ZXN0cyB0byBoYXZlIGNvbnNpc3Rl
bnQgY29sb3IgdmFsdWVzIGFjcm9zcyBhbGwgbWFjaGluZXMuXG4iOwotICAgICAgICAKLSAgICAg
ICAgaWYgKGlzUGVyaWFuSW5zdGFsbGVkKCkpIHsKLSAgICAgICAgICAgIHByaW50ICJXQVJOSU5H
OiBQZXJpYW4ncyBRdWlja1RpbWUgY29tcG9uZW50IGlzIGluc3RhbGxlZCBhbmQgdGhpcyBtYXkg
YWZmZWN0IHBpeGVsIHRlc3QgcmVzdWx0cyFcbiI7Ci0gICAgICAgICAgICBwcmludCAiXHRZb3Ug
c2hvdWxkIGF2b2lkIGdlbmVyYXRpbmcgbmV3IHBpeGVsIHJlc3VsdHMgaW4gdGhpcyBlbnZpcm9u
bWVudC5cbiI7Ci0gICAgICAgICAgICBwcmludCAiXHRTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjE1IGZvciBkZXRhaWxzLlxuIjsKLSAgICAgICAgfQotICAg
IH0KLX0KLQotc3lzdGVtICJsbiIsICItcyIsICR0ZXN0RGlyZWN0b3J5LCAiL3RtcC9MYXlvdXRU
ZXN0cyIgdW5sZXNzIC14ICIvdG1wL0xheW91dFRlc3RzIjsKLQotbXkgJWlnbm9yZWRGaWxlcyA9
ICggInJlc3VsdHMuaHRtbCIgPT4gMSApOwotbXkgJWlnbm9yZWREaXJlY3RvcmllcyA9IG1hcCB7
ICRfID0+IDEgfSBxdyhwbGF0Zm9ybSk7Ci1teSAlaWdub3JlZExvY2FsRGlyZWN0b3JpZXMgPSBt
YXAgeyAkXyA9PiAxIH0gcXcoLnN2biBfc3ZuIHJlc291cmNlcyBzY3JpcHQtdGVzdHMpOwotbXkg
JXN1cHBvcnRlZEZpbGVFeHRlbnNpb25zID0gbWFwIHsgJF8gPT4gMSB9IHF3KGh0bWwgc2h0bWwg
eG1sIHhodG1sIHhodG1sbXAgcGwgcGhwKTsKLQotaWYgKCFjaGVja1dlYkNvcmVGZWF0dXJlU3Vw
cG9ydCgiTWF0aE1MIiwgMCkpIHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydtYXRobWwnfSA9
IDE7Ci19Ci0KLSMgRklYTUU6IFdlIHNob3VsZCBmaXggd2Via2l0cGVybC9mZWF0dXJlcy5wbTpo
YXNGZWF0dXJlKCkgdG8gZG8gdGhlIGNvcnJlY3QgZmVhdHVyZSBkZXRlY3Rpb24gZm9yIEN5Z3dp
bi4KLWlmIChjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiU1ZHIiwgMCkpIHsKLSAgICAkc3Vw
cG9ydGVkRmlsZUV4dGVuc2lvbnN7J3N2Zyd9ID0gMTsKLX0gZWxzaWYgKGlzQ3lnd2luKCkpIHsK
LSAgICAkc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnN7J3N2Zyd9ID0gMTsKLX0gZWxzZSB7Ci0gICAg
JGlnbm9yZWRMb2NhbERpcmVjdG9yaWVzeydzdmcnfSA9IDE7Ci19Ci0KLWlmICghJHRlc3RIVFRQ
KSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snaHR0cCd9ID0gMTsKLSAgICAkaWdub3JlZERp
cmVjdG9yaWVzeyd3ZWJzb2NrZXQnfSA9IDE7Ci19Ci0KLWlmICghJHRlc3RNZWRpYSkgewotICAg
ICRpZ25vcmVkRGlyZWN0b3JpZXN7J21lZGlhJ30gPSAxOwotICAgICRpZ25vcmVkRGlyZWN0b3Jp
ZXN7J2h0dHAvdGVzdHMvbWVkaWEnfSA9IDE7Ci19Ci0KLW15ICRzdXBwb3J0ZWRGZWF0dXJlc1Jl
c3VsdCA9ICIiOwotCi1pZiAoaXNDeWd3aW4oKSkgewotICAgICMgQ29sbGVjdCBzdXBwb3J0ZWQg
ZmVhdHVyZXMgbGlzdAotICAgIHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlRU5WKTsKLSAg
ICBteSAkc3VwcG9ydGVkRmVhdHVyZXNDb21tYW5kID0gJGR1bXBUb29sIC4gIiAtLXByaW50LXN1
cHBvcnRlZC1mZWF0dXJlcyAyPiYxIjsKLSAgICAkc3VwcG9ydGVkRmVhdHVyZXNSZXN1bHQgPSBg
JHN1cHBvcnRlZEZlYXR1cmVzQ29tbWFuZCAyPiYxYDsKLX0KLQotbXkgJGhhc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcgPSAwOwotbXkgJGhhczNEUmVuZGVyaW5nID0gMDsKLQotaWYgKGlzQ3lnd2lu
KCkpIHsKLSAgICAkaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9ICRzdXBwb3J0ZWRGZWF0dXJl
c1Jlc3VsdCA9fiAvQWNjZWxlcmF0ZWRDb21wb3NpdGluZy87Ci0gICAgJGhhczNEUmVuZGVyaW5n
ID0gJHN1cHBvcnRlZEZlYXR1cmVzUmVzdWx0ID1+IC8zRFJlbmRlcmluZy87Ci19IGVsc2Ugewot
ICAgICRoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBv
cnQoIkFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIiwgMCk7Ci0gICAgJGhhczNEUmVuZGVyaW5nID0g
Y2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIjNEIFJlbmRlcmluZyIsIDApOwotfQotCi1pZiAo
ISRoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3sn
Y29tcG9zaXRpbmcnfSA9IDE7Ci19Ci0KLWlmICghJGhhczNEUmVuZGVyaW5nKSB7Ci0gICAgJGln
bm9yZWREaXJlY3Rvcmllc3snYW5pbWF0aW9ucy8zZCd9ID0gMTsKLSAgICAkaWdub3JlZERpcmVj
dG9yaWVzeyd0cmFuc2Zvcm1zLzNkJ30gPSAxOwotfQotCi1pZiAoIWNoZWNrV2ViQ29yZUZlYXR1
cmVTdXBwb3J0KCIzRCBDYW52YXMiLCAwKSkgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2Zh
c3QvY2FudmFzL3dlYmdsJ30gPSAxOwotfQotCi1pZiAoY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBv
cnQoIldNTCIsIDApKSB7Ci0gICAgJHN1cHBvcnRlZEZpbGVFeHRlbnNpb25zeyd3bWwnfSA9IDE7
Ci19IGVsc2UgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2h0dHAvdGVzdHMvd21sJ30gPSAx
OwotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2Zhc3Qvd21sJ30gPSAxOwotICAgICRpZ25vcmVk
RGlyZWN0b3JpZXN7J3dtbCd9ID0gMTsKLX0KLQotaWYgKCFjaGVja1dlYkNvcmVGZWF0dXJlU3Vw
cG9ydCgiWEhUTUxNUCIsIDApKSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snZmFzdC94aHRt
bG1wJ30gPSAxOwotfQotCi1wcm9jZXNzSWdub3JlVGVzdHMoJGlnbm9yZVRlc3RzLCAiaWdub3Jl
LXRlc3RzIikgaWYgJGlnbm9yZVRlc3RzOwotaWYgKCEkaWdub3JlU2tpcHBlZCkgewotICAgIGlm
ICghJHNraXBwZWRPbmx5IHx8IEBBUkdWID09IDApIHsKLSAgICAgICAgcmVhZFNraXBwZWRGaWxl
cygiIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgIyBTaW5jZSByZWFkU2tpcHBlZEZpbGVzKCkg
YXBwZW5kcyB0byBAQVJHViwgd2UgbXVzdCB1c2UgYSBmb3JlYWNoCi0gICAgICAgICMgbG9vcCBz
byB0aGF0IHdlIG9ubHkgaXRlcmF0ZSBvdmVyIHRoZSBvcmlnaW5hbCBhcmd1bWVudCBsaXN0Lgot
ICAgICAgICBmb3JlYWNoIG15ICRhcmdudW0gKDAgLi4gJCNBUkdWKSB7Ci0gICAgICAgICAgICBy
ZWFkU2tpcHBlZEZpbGVzKHNoaWZ0IEBBUkdWKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotbXkg
QHRlc3RzID0gZmluZFRlc3RzVG9SdW4oKTsKLQotZGllICJubyB0ZXN0cyB0byBydW5cbiIgaWYg
IUB0ZXN0czsKLQotbXkgJWNvdW50czsKLW15ICV0ZXN0czsKLW15ICVpbWFnZXNQcmVzZW50Owot
bXkgJWltYWdlRGlmZmVyZW5jZXM7Ci1teSAlZHVyYXRpb25zOwotbXkgJGNvdW50ID0gMDsKLW15
ICRsZWFrc091dHB1dEZpbGVOdW1iZXIgPSAxOwotbXkgJHRvdGFsTGVha3MgPSAwOwotCi1teSBA
dG9vbEFyZ3MgPSAoKTsKLXB1c2ggQHRvb2xBcmdzLCAiLS1waXhlbC10ZXN0cyIgaWYgJHBpeGVs
VGVzdHM7Ci1wdXNoIEB0b29sQXJncywgIi0tdGhyZWFkZWQiIGlmICR0aHJlYWRlZDsKLXB1c2gg
QHRvb2xBcmdzLCAiLS1jb21wbGV4LXRleHQiIGlmICRjb21wbGV4VGV4dDsKLXB1c2ggQHRvb2xB
cmdzLCAiLSI7Ci0KLW15IEBkaWZmVG9vbEFyZ3MgPSAoKTsKLXB1c2ggQGRpZmZUb29sQXJncywg
Ii0tdG9sZXJhbmNlIiwgJHRvbGVyYW5jZTsKLQotJHwgPSAxOwotCi1teSAkZHVtcFRvb2xQSUQ7
Ci1teSAkaXNEdW1wVG9vbE9wZW4gPSAwOwotbXkgJGR1bXBUb29sQ3Jhc2hlZCA9IDA7Ci1teSAk
aW1hZ2VEaWZmVG9vbFBJRDsKLW15ICRpc0RpZmZUb29sT3BlbiA9IDA7Ci0KLW15ICRhdExpbmVT
dGFydCA9IDE7Ci1teSAkbGFzdERpcmVjdG9yeSA9ICIiOwotCi1teSAkaXNIdHRwZE9wZW4gPSAw
OwotbXkgJGlzV2ViU29ja2V0U2VydmVyT3BlbiA9IDA7Ci1teSAkd2ViU29ja2V0U2VydmVyUElE
ID0gMDsKLW15ICRmYWlsZWRUb1N0YXJ0V2ViU29ja2V0U2VydmVyID0gMDsKLSMgd3NzIGlzIGRp
c2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuCi0jIG15ICR3ZWJT
b2NrZXRTZWN1cmVTZXJ2ZXJQSUQgPSAwOwotCi1zdWIgY2F0Y2hfcGlwZSB7ICRkdW1wVG9vbENy
YXNoZWQgPSAxOyB9Ci0kU0lHeyJQSVBFIn0gPSAiY2F0Y2hfcGlwZSI7Ci0KLXByaW50ICJUZXN0
aW5nICIsIHNjYWxhciBAdGVzdHMsICIgdGVzdCBjYXNlcyI7Ci1wcmludCAiICRpdGVyYXRpb25z
IHRpbWVzIiBpZiAoJGl0ZXJhdGlvbnMgPiAxKTsKLXByaW50ICIsIHJlcGVhdGluZyBlYWNoIHRl
c3QgJHJlcGVhdEVhY2ggdGltZXMiIGlmICgkcmVwZWF0RWFjaCA+IDEpOwotcHJpbnQgIi5cbiI7
Ci0KLW15ICRvdmVyYWxsU3RhcnRUaW1lID0gdGltZTsKLQotbXkgJWV4cGVjdGVkUmVzdWx0UGF0
aHM7Ci0KLW15IEBvcmlnaW5hbFRlc3RzID0gQHRlc3RzOwotIyBBZGQgaW5kaXZpZHVhbCB0ZXN0
IHJlcGV0aXRpb25zCi1pZiAoJHJlcGVhdEVhY2ggPiAxKSB7Ci0gICAgQHRlc3RzID0gKCk7Ci0g
ICAgZm9yZWFjaCBteSAkdGVzdCAoQG9yaWdpbmFsVGVzdHMpIHsKLSAgICAgICAgZm9yIChteSAk
aSA9IDA7ICRpIDwgJHJlcGVhdEVhY2g7ICRpKyspIHsKLSAgICAgICAgICAgIHB1c2goQHRlc3Rz
LCAkdGVzdCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0jIEFkZCB0ZXN0IHNldCByZXBldGl0aW9u
cwotZm9yIChteSAkaSA9IDE7ICRpIDwgJGl0ZXJhdGlvbnM7ICRpKyspIHsKLSAgICBwdXNoKEB0
ZXN0cywgQG9yaWdpbmFsVGVzdHMpOwotfQotCi1mb3IgbXkgJHRlc3QgKEB0ZXN0cykgewotICAg
IG15ICRuZXdEdW1wVG9vbCA9IG5vdCAkaXNEdW1wVG9vbE9wZW47Ci0gICAgb3BlbkR1bXBUb29s
KCk7Ci0KLSAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKLSAgICBteSAkZXhw
ZWN0ZWRFeHRlbnNpb24gPSAiLnR4dCI7Ci0gICAgCi0gICAgbXkgJGRpciA9ICRiYXNlOwotICAg
ICRkaXIgPX4gc3wvW14vXSskfHw7Ci0KLSAgICBpZiAoJG5ld0R1bXBUb29sIHx8ICRkaXIgbmUg
JGxhc3REaXJlY3RvcnkpIHsKLSAgICAgICAgZm9yZWFjaCBteSAkbG9ndWUgKGVwaWxvZ3Vlc0Fu
ZFByb2xvZ3VlcygkbmV3RHVtcFRvb2wgPyAiIiA6ICRsYXN0RGlyZWN0b3J5LCAkZGlyKSkgewot
ICAgICAgICAgICAgaWYgKGlzQ3lnd2luKCkpIHsKLSAgICAgICAgICAgICAgICAkbG9ndWUgPSB0
b1dpbmRvd3NQYXRoKCRsb2d1ZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICRsb2d1ZSA9IGNhbm9ucGF0aCgkbG9ndWUpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQgInJ1bm5pbmcgZXBpbG9n
dWUgb3IgcHJvbG9ndWUgJGxvZ3VlXG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJp
bnQgT1VUICIkbG9ndWVcbiI7Ci0gICAgICAgICAgICAjIFRocm93IGF3YXkgb3V0cHV0IGZyb20g
RHVtcFJlbmRlclRyZWUuCi0gICAgICAgICAgICAjIE9uY2UgZm9yIHRoZSB0ZXN0IG91dHB1dCBh
bmQgb25jZSBmb3IgcGl4ZWwgcmVzdWx0cyAoZW1wdHkpCi0gICAgICAgICAgICB3aGlsZSAoPElO
PikgewotICAgICAgICAgICAgICAgIGxhc3QgaWYgLyNFT0YvOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgd2hpbGUgKDxJTj4pIHsKLSAgICAgICAgICAgICAgICBsYXN0IGlmIC8jRU9GLzsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgkdmVyYm9zZSkgewot
ICAgICAgICBwcmludCAicnVubmluZyAkdGVzdCAtPiAiOwotICAgICAgICAkYXRMaW5lU3RhcnQg
PSAwOwotICAgIH0gZWxzaWYgKCEkcXVpZXQpIHsKLSAgICAgICAgaWYgKCRkaXIgbmUgJGxhc3RE
aXJlY3RvcnkpIHsKLSAgICAgICAgICAgIHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsK
LSAgICAgICAgICAgIHByaW50ICIkZGlyICI7Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQgIi4i
OwotICAgICAgICAkYXRMaW5lU3RhcnQgPSAwOwotICAgIH0KLQotICAgICRsYXN0RGlyZWN0b3J5
ID0gJGRpcjsKLQotICAgIG15ICRyZXN1bHQ7Ci0KLSAgICBteSAkc3RhcnRUaW1lID0gdGltZSBp
ZiAkcmVwb3J0MTBTbG93ZXN0OwotCi0gICAgIyBUcnkgdG8gcmVhZCBleHBlY3RlZCBoYXNoIGZp
bGUgZm9yIHBpeGVsIHRlc3RzCi0gICAgbXkgJHN1ZmZpeEV4cGVjdGVkSGFzaCA9ICIiOwotICAg
IGlmICgkcGl4ZWxUZXN0cyAmJiAhJHJlc2V0UmVzdWx0cykgewotICAgICAgICBteSAkZXhwZWN0
ZWRQaXhlbERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwgMCwgInBuZyIpOwot
ICAgICAgICBpZiAob3BlbiBFWFBFQ1RFREhBU0gsICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0k
ZXhwZWN0ZWRUYWcuY2hlY2tzdW0iKSB7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRIYXNoID0g
PEVYUEVDVEVESEFTSD47Ci0gICAgICAgICAgICBjaG9tcCgkZXhwZWN0ZWRIYXNoKTsKLSAgICAg
ICAgICAgIGNsb3NlIEVYUEVDVEVESEFTSDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgIyBG
b3JtYXQgZXhwZWN0ZWQgaGFzaCBpbnRvIGEgc3VmZml4IHN0cmluZyB0aGF0IGlzIGFwcGVuZGVk
IHRvIHRoZSBwYXRoIC8gVVJMIHBhc3NlZCB0byBEUlQKLSAgICAgICAgICAgICRzdWZmaXhFeHBl
Y3RlZEhhc2ggPSAiJyRleHBlY3RlZEhhc2giOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYg
KCR0ZXN0ID1+IC9eaHR0cFwvLykgewotICAgICAgICBjb25maWd1cmVBbmRPcGVuSFRUUERJZk5l
ZWRlZCgpOwotICAgICAgICBpZiAoJHRlc3QgIX4gL15odHRwXC90ZXN0c1wvbG9jYWxcLy8gJiYg
JHRlc3QgIX4gL15odHRwXC90ZXN0c1wvc3NsXC8vICYmICR0ZXN0ICF+IC9eaHR0cFwvdGVzdHNc
L3dtbFwvLyAmJiAkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9tZWRpYVwvLykgewotICAgICAgICAg
ICAgbXkgJHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOwotICAgICAgICAgICAgJHBhdGggPX4gcy9e
aHR0cFwvdGVzdHNcLy8vOwotICAgICAgICAgICAgcHJpbnQgT1VUICJodHRwOi8vMTI3LjAuMC4x
OiRodHRwZFBvcnQvJHBhdGgkc3VmZml4RXhwZWN0ZWRIYXNoXG4iOwotICAgICAgICB9IGVsc2lm
ICgkdGVzdCA9fiAvXmh0dHBcL3Rlc3RzXC9zc2xcLy8pIHsKLSAgICAgICAgICAgIG15ICRwYXRo
ID0gY2Fub25wYXRoKCR0ZXN0KTsKLSAgICAgICAgICAgICRwYXRoID1+IHMvXmh0dHBcL3Rlc3Rz
XC8vLzsKLSAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cHM6Ly8xMjcuMC4wLjE6JGh0dHBkU1NM
UG9ydC8kcGF0aCRzdWZmaXhFeHBlY3RlZEhhc2hcbiI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBteSAkdGVzdFBhdGggPSAiJHRlc3REaXJlY3RvcnkvJHRlc3QiOwotICAgICAgICAg
ICAgaWYgKGlzQ3lnd2luKCkpIHsKLSAgICAgICAgICAgICAgICAkdGVzdFBhdGggPSB0b1dpbmRv
d3NQYXRoKCR0ZXN0UGF0aCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICR0ZXN0UGF0aCA9IGNhbm9ucGF0aCgkdGVzdFBhdGgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcHJpbnQgT1VUICIkdGVzdFBhdGgkc3VmZml4RXhwZWN0ZWRIYXNoXG4iOwotICAgICAg
ICB9Ci0gICAgfSBlbHNpZiAoJHRlc3QgPX4gL153ZWJzb2NrZXRcLy8pIHsKLSAgICAgICAgaWYg
KCR0ZXN0ID1+IC9ed2Vic29ja2V0XC90ZXN0c1wvbG9jYWxcLy8pIHsKLSAgICAgICAgICAgIG15
ICR0ZXN0UGF0aCA9ICIkdGVzdERpcmVjdG9yeS8kdGVzdCI7Ci0gICAgICAgICAgICBpZiAoaXND
eWd3aW4oKSkgewotICAgICAgICAgICAgICAgICR0ZXN0UGF0aCA9IHRvV2luZG93c1BhdGgoJHRl
c3RQYXRoKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJHRlc3RQYXRo
ID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmlu
dCBPVVQgIiR0ZXN0UGF0aFxuIjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChv
cGVuV2ViU29ja2V0U2VydmVySWZOZWVkZWQoKSkgewotICAgICAgICAgICAgICAgIG15ICRwYXRo
ID0gY2Fub25wYXRoKCR0ZXN0KTsKLSAgICAgICAgICAgICAgICBpZiAoJHRlc3QgPX4gL153ZWJz
b2NrZXRcL3Rlc3RzXC9zc2xcLy8pIHsKLSAgICAgICAgICAgICAgICAgICAgIyB3c3MgaXMgZGlz
YWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KLSAgICAgICAgICAg
ICAgICAgICAgcHJpbnQgU1RERVJSICJFcnJvcjogd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBw
bGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuIjsKLSAgICAgICAgICAgICAgICAgICAgIyBwcmlu
dCBPVVQgImh0dHBzOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRTZWN1cmVQb3J0LyRwYXRoXG4iOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50IE9VVCAi
aHR0cDovLzEyNy4wLjAuMTokd2ViU29ja2V0UG9ydC8kcGF0aFxuIjsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMgV2UgZmFpbGVkIHRv
IGxhdW5jaCB0aGUgV2ViU29ja2V0IHNlcnZlci4gIERpc3BsYXkgYSB1c2VmdWwgZXJyb3IgbWVz
c2FnZSByYXRoZXIgdGhhbiBhdHRlbXB0aW5nCi0gICAgICAgICAgICAgICAgIyB0byBydW4gdGVz
dHMgdGhhdCBleHBlY3QgdGhlIHNlcnZlciB0byBiZSBhdmFpbGFibGUuCi0gICAgICAgICAgICAg
ICAgbXkgJGVycm9yTWVzc2FnZVBhdGggPSAiJHRlc3REaXJlY3Rvcnkvd2Vic29ja2V0L3Jlc291
cmNlcy9zZXJ2ZXItZmFpbGVkLXRvLXN0YXJ0Lmh0bWwiOwotICAgICAgICAgICAgICAgICRlcnJv
ck1lc3NhZ2VQYXRoID0gaXNDeWd3aW4oKSA/IHRvV2luZG93c1BhdGgoJGVycm9yTWVzc2FnZVBh
dGgpIDogY2Fub25wYXRoKCRlcnJvck1lc3NhZ2VQYXRoKTsKLSAgICAgICAgICAgICAgICBwcmlu
dCBPVVQgIiRlcnJvck1lc3NhZ2VQYXRoXG4iOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJHRlc3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0
IjsKLSAgICAgICAgaWYgKGlzQ3lnd2luKCkpIHsKLSAgICAgICAgICAgICR0ZXN0UGF0aCA9IHRv
V2luZG93c1BhdGgoJHRlc3RQYXRoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICR0
ZXN0UGF0aCA9IGNhbm9ucGF0aCgkdGVzdFBhdGgpOwotICAgICAgICB9Ci0gICAgICAgIHByaW50
IE9VVCAiJHRlc3RQYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxuIiBpZiBkZWZpbmVkICR0ZXN0UGF0
aDsKLSAgICB9Ci0KLSAgICAjIER1bXBSZW5kZXJUcmVlIGlzIGV4cGVjdGVkIHRvIGR1bXAgdHdv
ICJibG9ja3MiIHRvIHN0ZG91dCBmb3IgZWFjaCB0ZXN0LgotICAgICMgRWFjaCBibG9jayBpcyB0
ZXJtaW5hdGVkIGJ5IGEgI0VPRiBvbiBhIGxpbmUgYnkgaXRzZWxmLgotICAgICMgVGhlIGZpcnN0
IGJsb2NrIGlzIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3QgKGluIHRleHQsIFJlbmRlclRyZWUgb3Ig
b3RoZXIgZm9ybWF0cykuCi0gICAgIyBUaGUgc2Vjb25kIGJsb2NrIGlzIGZvciBvcHRpb25hbCBw
aXhlbCBkYXRhIGluIFBORyBmb3JtYXQsIGFuZCBtYXkgYmUgZW1wdHkgaWYKLSAgICAjIHBpeGVs
IHRlc3RzIGFyZSBub3QgYmVpbmcgcnVuLCBvciB0aGUgdGVzdCBkb2VzIG5vdCBkdW1wIHBpeGVs
cyAoZS5nLiB0ZXh0IHRlc3RzKS4KLSAgICBteSAkcmVhZFJlc3VsdHMgPSByZWFkRnJvbUR1bXBU
b29sV2l0aFRpbWVyKElOLCBFUlJPUik7Ci0KLSAgICBteSAkYWN0dWFsID0gJHJlYWRSZXN1bHRz
LT57b3V0cHV0fTsKLSAgICBteSAkZXJyb3IgPSAkcmVhZFJlc3VsdHMtPntlcnJvcn07Ci0KLSAg
ICAkZXhwZWN0ZWRFeHRlbnNpb24gPSAkcmVhZFJlc3VsdHMtPntleHRlbnNpb259OwotICAgIG15
ICRleHBlY3RlZEZpbGVOYW1lID0gIiRiYXNlLSRleHBlY3RlZFRhZy4kZXhwZWN0ZWRFeHRlbnNp
b24iOwotCi0gICAgbXkgJGlzVGV4dCA9IGlzVGV4dE9ubHlUZXN0KCRhY3R1YWwpOwotCi0gICAg
bXkgJGV4cGVjdGVkRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNlLCAkaXNUZXh0
LCAkZXhwZWN0ZWRFeHRlbnNpb24pOwotICAgICRleHBlY3RlZFJlc3VsdFBhdGhzeyRiYXNlfSA9
ICIkZXhwZWN0ZWREaXIvJGV4cGVjdGVkRmlsZU5hbWUiOwotCi0gICAgdW5sZXNzICgkcmVhZFJl
c3VsdHMtPntzdGF0dXN9IGVxICJzdWNjZXNzIikgewotICAgICAgICBteSAkY3Jhc2hlZCA9ICRy
ZWFkUmVzdWx0cy0+e3N0YXR1c30gZXEgImNyYXNoZWQiOwotICAgICAgICB0ZXN0Q3Jhc2hlZE9y
VGltZWRPdXQoJHRlc3QsICRiYXNlLCAkY3Jhc2hlZCwgJGFjdHVhbCwgJGVycm9yKTsKLSAgICAg
ICAgY291bnRGaW5pc2hlZFRlc3QoJHRlc3QsICRiYXNlLCAkY3Jhc2hlZCA/ICJjcmFzaCIgOiAi
dGltZWRvdXQiLCAwKTsKLSAgICAgICAgbmV4dDsKLSAgICB9Ci0KLSAgICAkZHVyYXRpb25zeyR0
ZXN0fSA9IHRpbWUgLSAkc3RhcnRUaW1lIGlmICRyZXBvcnQxMFNsb3dlc3Q7Ci0KLSAgICBteSAk
ZXhwZWN0ZWQ7Ci0KLSAgICBpZiAoISRyZXNldFJlc3VsdHMgJiYgb3BlbiBFWFBFQ1RFRCwgIjwi
LCAiJGV4cGVjdGVkRGlyLyRleHBlY3RlZEZpbGVOYW1lIikgewotICAgICAgICAkZXhwZWN0ZWQg
PSAiIjsKLSAgICAgICAgd2hpbGUgKDxFWFBFQ1RFRD4pIHsKLSAgICAgICAgICAgIG5leHQgaWYg
JHN0cmlwRWRpdGluZ0NhbGxiYWNrcyAmJiAkXyA9fiAvXkVESVRJTkcgREVMRUdBVEU6LzsKLSAg
ICAgICAgICAgICRleHBlY3RlZCAuPSAkXzsKLSAgICAgICAgfQotICAgICAgICBjbG9zZSBFWFBF
Q1RFRDsKLSAgICB9Ci0KLSAgICBpZiAoJGlnbm9yZU1ldHJpY3MgJiYgISRpc1RleHQgJiYgZGVm
aW5lZCAkZXhwZWN0ZWQpIHsKLSAgICAgICAgKCRhY3R1YWwsICRleHBlY3RlZCkgPSBzdHJpcE1l
dHJpY3MoJGFjdHVhbCwgJGV4cGVjdGVkKTsKLSAgICB9Ci0KLSAgICBpZiAoJHNob3VsZENoZWNr
TGVha3MgJiYgJHRlc3RzUGVyRHVtcFRvb2wgPT0gMSkgewotICAgICAgICBwcmludCAiICAgICAg
ICAkdGVzdCAtPiAiOwotICAgIH0KLQotICAgIG15ICRhY3R1YWxQTkcgPSAiIjsKLSAgICBteSAk
ZGlmZlBORyA9ICIiOwotICAgIG15ICRkaWZmUGVyY2VudGFnZSA9IDA7Ci0gICAgbXkgJGRpZmZS
ZXN1bHQgPSAicGFzc2VkIjsKLQotICAgIG15ICRhY3R1YWxIYXNoID0gIiI7Ci0gICAgbXkgJGV4
cGVjdGVkSGFzaCA9ICIiOwotICAgIG15ICRhY3R1YWxQTkdTaXplID0gMDsKLQotICAgIHdoaWxl
ICg8SU4+KSB7Ci0gICAgICAgIGxhc3QgaWYgLyNFT0YvOwotICAgICAgICBpZiAoL0FjdHVhbEhh
c2g6IChbYS1mMC05XXszMn0pLykgewotICAgICAgICAgICAgJGFjdHVhbEhhc2ggPSAkMTsKLSAg
ICAgICAgfSBlbHNpZiAoL0V4cGVjdGVkSGFzaDogKFthLWYwLTldezMyfSkvKSB7Ci0gICAgICAg
ICAgICAkZXhwZWN0ZWRIYXNoID0gJDE7Ci0gICAgICAgIH0gZWxzaWYgKC9Db250ZW50LUxlbmd0
aDogKFxkKylccyovKSB7Ci0gICAgICAgICAgICAkYWN0dWFsUE5HU2l6ZSA9ICQxOwotICAgICAg
ICAgICAgcmVhZChJTiwgJGFjdHVhbFBORywgJGFjdHVhbFBOR1NpemUpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKCR2ZXJib3NlICYmICRwaXhlbFRlc3RzICYmICEkcmVzZXRSZXN1bHRz
ICYmICRhY3R1YWxQTkdTaXplKSB7Ci0gICAgICAgIGlmICgkYWN0dWFsSGFzaCBlcSAiIiAmJiAk
ZXhwZWN0ZWRIYXNoIGVxICIiKSB7Ci0gICAgICAgICAgICBwcmludEZhaWx1cmVNZXNzYWdlRm9y
VGVzdCgkdGVzdCwgIldBUk5JTkc6IGFjdHVhbCAmIGV4cGVjdGVkIHBpeGVsIGhhc2hlcyBhcmUg
bWlzc2luZyEiKTsKLSAgICAgICAgfSBlbHNpZiAoJGFjdHVhbEhhc2ggZXEgIiIpIHsKLSAgICAg
ICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogYWN0dWFs
IHBpeGVsIGhhc2ggaXMgbWlzc2luZyEiKTsKLSAgICAgICAgfSBlbHNpZiAoJGV4cGVjdGVkSGFz
aCBlcSAiIikgewotICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3Qs
ICJXQVJOSU5HOiBleHBlY3RlZCBwaXhlbCBoYXNoIGlzIG1pc3NpbmchIik7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBpZiAoJGFjdHVhbFBOR1NpemUgPiAwKSB7Ci0gICAgICAgIG15ICRleHBl
Y3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNlLCAwLCAicG5nIik7
Ci0KLSAgICAgICAgaWYgKCEkcmVzZXRSZXN1bHRzICYmICgkZXhwZWN0ZWRIYXNoIG5lICRhY3R1
YWxIYXNoIHx8ICgkYWN0dWFsSGFzaCBlcSAiIiAmJiAkZXhwZWN0ZWRIYXNoIGVxICIiKSkpIHsK
LSAgICAgICAgICAgIGlmICgtZiAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFn
LnBuZyIpIHsKLSAgICAgICAgICAgICAgICBteSAkZXhwZWN0ZWRQTkdTaXplID0gLXMgIiRleHBl
Y3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5wbmciOwotICAgICAgICAgICAgICAgIG15
ICRleHBlY3RlZFBORyA9ICIiOwotICAgICAgICAgICAgICAgIG9wZW4gRVhQRUNURURQTkcsICIk
ZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIjsKLSAgICAgICAgICAgICAg
ICByZWFkKEVYUEVDVEVEUE5HLCAkZXhwZWN0ZWRQTkcsICRleHBlY3RlZFBOR1NpemUpOwotCi0g
ICAgICAgICAgICAgICAgb3BlbkRpZmZUb29sKCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQgRElG
Rk9VVCAiQ29udGVudC1MZW5ndGg6ICRhY3R1YWxQTkdTaXplXG4iOwotICAgICAgICAgICAgICAg
IHByaW50IERJRkZPVVQgJGFjdHVhbFBORzsKLQotICAgICAgICAgICAgICAgIHByaW50IERJRkZP
VVQgIkNvbnRlbnQtTGVuZ3RoOiAkZXhwZWN0ZWRQTkdTaXplXG4iOwotICAgICAgICAgICAgICAg
IHByaW50IERJRkZPVVQgJGV4cGVjdGVkUE5HOwotCi0gICAgICAgICAgICAgICAgd2hpbGUgKDxE
SUZGSU4+KSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhc3QgaWYgL15lcnJvci8gfHwgL15kaWZm
Oi87Ci0gICAgICAgICAgICAgICAgICAgIGlmICgvQ29udGVudC1MZW5ndGg6IChcZCspXHMqLykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgcmVhZChESUZGSU4sICRkaWZmUE5HLCAkMSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBpZiAoL15kaWZmOiAoLispJSAocGFzc2VkfGZhaWxlZCkvKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICRkaWZmUGVyY2VudGFnZSA9ICQxICsgMDsKLSAgICAgICAgICAgICAgICAgICAgJGltYWdl
RGlmZmVyZW5jZXN7JGJhc2V9ID0gJGRpZmZQZXJjZW50YWdlOwotICAgICAgICAgICAgICAgICAg
ICAkZGlmZlJlc3VsdCA9ICQyOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBpZiAoISRkaWZmUGVyY2VudGFnZSkgewotICAgICAgICAgICAgICAg
ICAgICBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkdGVzdCwgInBpeGVsIGhhc2ggZmFpbGVk
IChidXQgcGl4ZWwgdGVzdCBzdGlsbCBwYXNzZXMpIik7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSBlbHNpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBwcmludEZhaWx1
cmVNZXNzYWdlRm9yVGVzdCgkdGVzdCwgIldBUk5JTkc6IGV4cGVjdGVkIGltYWdlIGlzIG1pc3Np
bmchIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoJHJlc2V0UmVz
dWx0cyB8fCAhLWYgIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5wbmciKSB7
Ci0gICAgICAgICAgICBta3BhdGggY2F0ZmlsZSgkZXhwZWN0ZWRQaXhlbERpciwgZGlybmFtZSgk
YmFzZSkpIGlmICR0ZXN0RGlyZWN0b3J5IG5lICRleHBlY3RlZFBpeGVsRGlyOwotICAgICAgICAg
ICAgd3JpdGVUb0ZpbGUoIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5wbmci
LCAkYWN0dWFsUE5HKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgkYWN0dWFsSGFzaCBuZSAi
IiAmJiAoJHJlc2V0UmVzdWx0cyB8fCAhLWYgIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBl
Y3RlZFRhZy5jaGVja3N1bSIpKSB7Ci0gICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVk
UGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLmNoZWNrc3VtIiwgJGFjdHVhbEhhc2gpOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGR1bXBUb29sRGlkQ3Jhc2goKSkgewotICAgICAgICAk
cmVzdWx0ID0gImNyYXNoIjsKLSAgICAgICAgdGVzdENyYXNoZWRPclRpbWVkT3V0KCR0ZXN0LCAk
YmFzZSwgMSwgJGFjdHVhbCwgJGVycm9yKTsKLSAgICB9IGVsc2lmICghZGVmaW5lZCAkZXhwZWN0
ZWQpIHsKLSAgICAgICAgaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwcmludCAibmV3ICIg
LiAoJHJlc2V0UmVzdWx0cyA/ICJyZXN1bHQiIDogInRlc3QiKSAuIlxuIjsKLSAgICAgICAgICAg
ICRhdExpbmVTdGFydCA9IDE7Ci0gICAgICAgIH0KLSAgICAgICAgJHJlc3VsdCA9ICJuZXciOwot
Ci0gICAgICAgIGlmICgkZ2VuZXJhdGVOZXdSZXN1bHRzIHx8ICRyZXNldFJlc3VsdHMpIHsKLSAg
ICAgICAgICAgIG1rcGF0aCBjYXRmaWxlKCRleHBlY3RlZERpciwgZGlybmFtZSgkYmFzZSkpIGlm
ICR0ZXN0RGlyZWN0b3J5IG5lICRleHBlY3RlZERpcjsKLSAgICAgICAgICAgIHdyaXRlVG9GaWxl
KCIkZXhwZWN0ZWREaXIvJGV4cGVjdGVkRmlsZU5hbWUiLCAkYWN0dWFsKTsKLSAgICAgICAgfQot
ICAgICAgICBkZWxldGVFeHBlY3RlZEFuZEFjdHVhbFJlc3VsdHMoJGJhc2UpOwotICAgICAgICBy
ZWNvcmRBY3R1YWxSZXN1bHRzQW5kRGlmZigkYmFzZSwgJGFjdHVhbCk7Ci0gICAgICAgIGlmICgh
JHJlc2V0UmVzdWx0cykgewotICAgICAgICAgICAgIyBBbHdheXMgcHJpbnQgdGhlIGZpbGUgbmFt
ZSBmb3IgbmV3IHRlc3RzLCBhcyB0aGV5IHdpbGwgcHJvYmFibHkgbmVlZCBzb21lIG1hbnVhbCBp
bnNwZWN0aW9uLgotICAgICAgICAgICAgIyBpbiB2ZXJib3NlIG1vZGUgd2UgYWxyZWFkeSBwcmlu
dGVkIHRoZSB0ZXN0IGNhc2UsIHNvIG5vIG5lZWQgdG8gZG8gaXQgYWdhaW4uCi0gICAgICAgICAg
ICB1bmxlc3MgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQgIlxuIiB1bmxlc3Mg
JGF0TGluZVN0YXJ0OwotICAgICAgICAgICAgICAgIHByaW50ICIkdGVzdCAtPiAiOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgbXkgJHJlc3VsdHNEaXIgPSBjYXRkaXIoJGV4cGVjdGVkRGly
LCBkaXJuYW1lKCRiYXNlKSk7Ci0gICAgICAgICAgICBpZiAoJGdlbmVyYXRlTmV3UmVzdWx0cykg
ewotICAgICAgICAgICAgICAgIHByaW50ICJuZXcgKHJlc3VsdHMgZ2VuZXJhdGVkIGluICRyZXN1
bHRzRGlyKVxuIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQg
Im5ld1xuIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICRhdExpbmVTdGFydCA9IDE7Ci0g
ICAgICAgIH0KLSAgICB9IGVsc2lmICgkYWN0dWFsIGVxICRleHBlY3RlZCAmJiAkZGlmZlJlc3Vs
dCBlcSAicGFzc2VkIikgewotICAgICAgICBpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBy
aW50ICJzdWNjZWVkZWRcbiI7Ci0gICAgICAgICAgICAkYXRMaW5lU3RhcnQgPSAxOwotICAgICAg
ICB9Ci0gICAgICAgICRyZXN1bHQgPSAibWF0Y2giOwotICAgICAgICBkZWxldGVFeHBlY3RlZEFu
ZEFjdHVhbFJlc3VsdHMoJGJhc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRyZXN1bHQgPSAi
bWlzbWF0Y2giOwotCi0gICAgICAgIG15ICRwaXhlbFRlc3RGYWlsZWQgPSAkcGl4ZWxUZXN0cyAm
JiAkZGlmZlBORyAmJiAkZGlmZlBORyBuZSAiIjsKLSAgICAgICAgbXkgJHRlc3RGYWlsZWQgPSAk
YWN0dWFsIG5lICRleHBlY3RlZDsKLQotICAgICAgICBteSAkbWVzc2FnZSA9ICEkdGVzdEZhaWxl
ZCA/ICJwaXhlbCB0ZXN0IGZhaWxlZCIgOiAiZmFpbGVkIjsKLQotICAgICAgICBpZiAoKCR0ZXN0
RmFpbGVkIHx8ICRwaXhlbFRlc3RGYWlsZWQpICYmICRhZGRQbGF0Zm9ybUV4Y2VwdGlvbnMpIHsK
LSAgICAgICAgICAgIG15ICR0ZXN0QmFzZSA9IGNhdGZpbGUoJHRlc3REaXJlY3RvcnksICRiYXNl
KTsKLSAgICAgICAgICAgIG15ICRleHBlY3RlZEJhc2UgPSBjYXRmaWxlKCRleHBlY3RlZERpciwg
JGJhc2UpOwotICAgICAgICAgICAgbXkgJHRlc3RJc01heGltYWxseVBsYXRmb3JtU3BlY2lmaWMg
PSAkdGVzdEJhc2UgPX4gbXxeXFEkcGxhdGZvcm1UZXN0RGlyZWN0b3J5XEUvfDsKLSAgICAgICAg
ICAgIG15ICRleHBlY3RlZFJlc3VsdElzTWF4aW1hbGx5UGxhdGZvcm1TcGVjaWZpYyA9ICRleHBl
Y3RlZEJhc2UgPX4gbXxeXFEkcGxhdGZvcm1UZXN0RGlyZWN0b3J5XEUvfDsKLSAgICAgICAgICAg
IGlmICghJHRlc3RJc01heGltYWxseVBsYXRmb3JtU3BlY2lmaWMgJiYgISRleHBlY3RlZFJlc3Vs
dElzTWF4aW1hbGx5UGxhdGZvcm1TcGVjaWZpYykgewotICAgICAgICAgICAgICAgIG1rcGF0aCBj
YXRmaWxlKCRwbGF0Zm9ybVRlc3REaXJlY3RvcnksIGRpcm5hbWUoJGJhc2UpKTsKLSAgICAgICAg
ICAgICAgICBpZiAoJHRlc3RGYWlsZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbXkgJGV4cGVj
dGVkRmlsZSA9IGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgIiRleHBlY3RlZEZpbGVO
YW1lIik7Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRGaWxlIiwg
JGFjdHVhbCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICgkcGl4ZWxU
ZXN0RmFpbGVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG15ICRleHBlY3RlZEZpbGUgPSBjYXRm
aWxlKCRwbGF0Zm9ybVRlc3REaXJlY3RvcnksICIkYmFzZS0kZXhwZWN0ZWRUYWcuY2hlY2tzdW0i
KTsKLSAgICAgICAgICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRleHBlY3RlZEZpbGUiLCAkYWN0
dWFsSGFzaCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgJGV4cGVjdGVkRmlsZSA9IGNhdGZpbGUo
JHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgIiRiYXNlLSRleHBlY3RlZFRhZy5wbmciKTsKLSAgICAg
ICAgICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRleHBlY3RlZEZpbGUiLCAkYWN0dWFsUE5HKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgJG1lc3NhZ2UgLj0gIiAocmVzdWx0
cyBnZW5lcmF0ZWQgaW4gJHBsYXRmb3JtVGVzdERpcmVjdG9yeSkiOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICRt
ZXNzYWdlKTsKLQotICAgICAgICBteSAkZGlyID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFz
ZSI7Ci0gICAgICAgICRkaXIgPX4gc3wvKFteL10rKSR8fCBvciBkaWUgIkZhaWxlZCB0byBmaW5k
IHRlc3QgbmFtZSBmcm9tIGJhc2VcbiI7Ci0gICAgICAgIG15ICR0ZXN0TmFtZSA9ICQxOwotICAg
ICAgICBta3BhdGggJGRpcjsKLQotICAgICAgICBkZWxldGVFeHBlY3RlZEFuZEFjdHVhbFJlc3Vs
dHMoJGJhc2UpOwotICAgICAgICByZWNvcmRBY3R1YWxSZXN1bHRzQW5kRGlmZigkYmFzZSwgJGFj
dHVhbCk7Ci0KLSAgICAgICAgaWYgKCRwaXhlbFRlc3RGYWlsZWQpIHsKLSAgICAgICAgICAgICRp
bWFnZXNQcmVzZW50eyRiYXNlfSA9IDE7Ci0KLSAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkdGVz
dFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGFjdHVhbFRhZy5wbmciLCAkYWN0dWFsUE5HKTsKLSAg
ICAgICAgICAgIHdyaXRlVG9GaWxlKCIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGRpZmZz
VGFnLnBuZyIsICRkaWZmUE5HKTsKLQotICAgICAgICAgICAgbXkgJGV4cGVjdGVkUGl4ZWxEaXIg
PSBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJGJhc2UsIDAsICJwbmciKTsKLSAgICAgICAgICAg
IGNvcHkoIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5wbmciLCAiJHRlc3RS
ZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRleHBlY3RlZFRhZy5wbmciKTsKLQotICAgICAgICAgICAg
b3BlbiBESUZGSFRNTCwgIj4kdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGRpZmZzVGFnLmh0
bWwiIG9yIGRpZTsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8aHRtbD5cbiI7Ci0gICAg
ICAgICAgICBwcmludCBESUZGSFRNTCAiPGhlYWQ+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElG
RkhUTUwgIjx0aXRsZT4kYmFzZSBJbWFnZSBDb21wYXJlPC90aXRsZT5cbiI7Ci0gICAgICAgICAg
ICBwcmludCBESUZGSFRNTCAiPHNjcmlwdCBsYW5ndWFnZT1cIkphdmFzY3JpcHRcIiB0eXBlPVwi
dGV4dC9qYXZhc2NyaXB0XCI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgInZhciBj
dXJyZW50SW1hZ2UgPSAwO1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICJ2YXIgaW1h
Z2VOYW1lcyA9IG5ldyBBcnJheShcIkFjdHVhbFwiLCBcIkV4cGVjdGVkXCIpO1xuIjsKLSAgICAg
ICAgICAgIHByaW50IERJRkZIVE1MICJ2YXIgaW1hZ2VQYXRocyA9IG5ldyBBcnJheShcIiR0ZXN0
TmFtZS0kYWN0dWFsVGFnLnBuZ1wiLCBcIiR0ZXN0TmFtZS0kZXhwZWN0ZWRUYWcucG5nXCIpO1xu
IjsKLSAgICAgICAgICAgIGlmICgtZiAiJHRlc3REaXJlY3RvcnkvJGJhc2UtdzNjLnBuZyIpIHsK
LSAgICAgICAgICAgICAgICBjb3B5KCIkdGVzdERpcmVjdG9yeS8kYmFzZS13M2MucG5nIiwgIiR0
ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS13M2MucG5nIik7Ci0gICAgICAgICAgICAgICAgcHJp
bnQgRElGRkhUTUwgImltYWdlTmFtZXMucHVzaChcIlczQ1wiKTtcbiI7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQgRElGRkhUTUwgImltYWdlUGF0aHMucHVzaChcIiR0ZXN0TmFtZS13M2MucG5nXCIp
O1xuIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICJmdW5jdGlv
biBhbmltYXRlSW1hZ2UoKSB7XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIiAgICB2
YXIgaW1hZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFuaW1hdGVkSW1hZ2VcIik7XG4i
OwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIiAgICB2YXIgaW1hZ2VUZXh0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoXCJpbWFnZVRleHRcIik7XG4iOwotICAgICAgICAgICAgcHJpbnQg
RElGRkhUTUwgIiAgICBpbWFnZS5zcmMgPSBpbWFnZVBhdGhzW2N1cnJlbnRJbWFnZV07XG4iOwot
ICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIiAgICBpbWFnZVRleHQuaW5uZXJIVE1MID0gaW1h
Z2VOYW1lc1tjdXJyZW50SW1hZ2VdICsgXCIgSW1hZ2VcIjtcbiI7Ci0gICAgICAgICAgICBwcmlu
dCBESUZGSFRNTCAiICAgIGN1cnJlbnRJbWFnZSA9IChjdXJyZW50SW1hZ2UgKyAxKSAlIGltYWdl
TmFtZXMubGVuZ3RoO1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgc2V0VGlt
ZW91dCgnYW5pbWF0ZUltYWdlKCknLDIwMDApO1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZI
VE1MICJ9XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvc2NyaXB0PlxuIjsKLSAg
ICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L2hlYWQ+XG4iOwotICAgICAgICAgICAgcHJpbnQg
RElGRkhUTUwgIjxib2R5IG9uTG9hZD1cImFuaW1hdGVJbWFnZSgpO1wiPlxuIjsKLSAgICAgICAg
ICAgIHByaW50IERJRkZIVE1MICI8dGFibGU+XG4iOwotICAgICAgICAgICAgaWYgKCRkaWZmUGVy
Y2VudGFnZSkgewotICAgICAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8dHI+XG4iOwotICAg
ICAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8dGQ+RGlmZmVyZW5jZSBiZXR3ZWVuIGltYWdl
czogPGEgaHJlZj1cIiR0ZXN0TmFtZS0kZGlmZnNUYWcucG5nXCI+JGRpZmZQZXJjZW50YWdlJTwv
YT48L3RkPlxuIjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC90cj5cbiI7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRyPlxuIjsKLSAgICAg
ICAgICAgIHByaW50IERJRkZIVE1MICI8dGQ+PGEgaHJlZj1cIiIgLiB0b1VSTCgiJHRlc3REaXJl
Y3RvcnkvJHRlc3QiKSAuICJcIj50ZXN0IGZpbGU8L2E+PC90ZD5cbiI7Ci0gICAgICAgICAgICBw
cmludCBESUZGSFRNTCAiPC90cj5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRy
PlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8dGQgaWQ9XCJpbWFnZVRleHRcIiBz
dHlsZT1cInRleHQtd2VpZ2h0OiBib2xkO1wiPkFjdHVhbCBJbWFnZTwvdGQ+XG4iOwotICAgICAg
ICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdHI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjx0cj5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRkPjxpbWcgc3JjPVwi
JHRlc3ROYW1lLSRhY3R1YWxUYWcucG5nXCIgaWQ9XCJhbmltYXRlZEltYWdlXCI+PC90ZD5cbiI7
Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC90cj5cbiI7Ci0gICAgICAgICAgICBwcmlu
dCBESUZGSFRNTCAiPC90YWJsZT5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC9i
b2R5PlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L2h0bWw+XG4iOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgaWYgKCRlcnJvcikgewotICAgICAgICBteSAkZGlyID0gIiR0ZXN0
UmVzdWx0c0RpcmVjdG9yeS8kYmFzZSI7Ci0gICAgICAgICRkaXIgPX4gc3wvKFteL10rKSR8fCBv
ciBkaWUgIkZhaWxlZCB0byBmaW5kIHRlc3QgbmFtZSBmcm9tIGJhc2VcbiI7Ci0gICAgICAgIG1r
cGF0aCAkZGlyOwotICAgICAgICAKLSAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0Rp
cmVjdG9yeS8kYmFzZS0kZXJyb3JUYWcudHh0IiwgJGVycm9yKTsKLSAgICAgICAgCi0gICAgICAg
ICRjb3VudHN7ZXJyb3J9Kys7Ci0gICAgICAgIHB1c2ggQHskdGVzdHN7ZXJyb3J9fSwgJHRlc3Q7
Ci0gICAgfQotCi0gICAgY291bnRGaW5pc2hlZFRlc3QoJHRlc3QsICRiYXNlLCAkcmVzdWx0LCAk
aXNUZXh0KTsKLQotICAgICMgLS1yZXNldC1yZXN1bHRzIGRvZXMgbm90IGNoZWNrIHBhc3MgdnMu
IGZhaWwsIHNvIGV4aXRBZnRlck5GYWlsdXJlcyBtYWtlcyBubyBzZW5zZSB3aXRoIC0tcmVzZXQt
cmVzdWx0cy4KLSAgICBpZiAoJGV4aXRBZnRlck5GYWlsdXJlcyAmJiAhJHJlc2V0UmVzdWx0cykg
ewotICAgICAgICBteSAkcGFzc0NvdW50ID0gJGNvdW50c3ttYXRjaH0gfHwgMDsgIyAkY291bnRz
e21hdGNofSB3aWxsIGJlIHVuZGVmaW5lZCBpZiB3ZSd2ZSBub3QgeWV0IHBhc3NlZCBhIHRlc3Qg
KGUuZy4gdGhlIGZpcnN0IHRlc3QgZmFpbHMpLgotICAgICAgICBteSAkZmFpbHVyZUNvdW50ID0g
JGNvdW50IC0gJHBhc3NDb3VudDsgIyAiRmFpbHVyZSIgaGVyZSBpbmNsdWRlcyBuZXcgdGVzdHMs
IHRpbWVvdXRzLCBjcmFzaGVzLCBldGMuCi0gICAgICAgIGlmICgkZmFpbHVyZUNvdW50ID49ICRl
eGl0QWZ0ZXJORmFpbHVyZXMpIHsKLSAgICAgICAgICAgIHByaW50ICJcbkV4aXRpbmcgZWFybHkg
YWZ0ZXIgJGZhaWx1cmVDb3VudCBmYWlsdXJlcy4gJGNvdW50IHRlc3RzIHJ1bi4iOwotICAgICAg
ICAgICAgY2xvc2VEdW1wVG9vbCgpOwotICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotICAg
IH0KLX0KLW15ICR0b3RhbFRlc3RpbmdUaW1lID0gdGltZSAtICRvdmVyYWxsU3RhcnRUaW1lOwot
bXkgJHdhaXRUaW1lID0gZ2V0V2FpdFRpbWUoKTsKLWlmICgkd2FpdFRpbWUgPiAwLjEpIHsKLSAg
ICBteSAkbm9ybWFsaXplZFRlc3RpbmdUaW1lID0gJHRvdGFsVGVzdGluZ1RpbWUgLSAkd2FpdFRp
bWU7Ci0gICAgcHJpbnRmICJcbiUwLjJmcyBIVFRQRCB3YWl0aW5nIHRpbWVcbiIsICR3YWl0VGlt
ZSAuICIiOwotICAgIHByaW50ZiAiJTAuMmZzIG5vcm1hbGl6ZWQgdGVzdGluZyB0aW1lIiwgJG5v
cm1hbGl6ZWRUZXN0aW5nVGltZSAuICIiOwotfQotcHJpbnRmICJcbiUwLjJmcyB0b3RhbCB0ZXN0
aW5nIHRpbWVcbiIsICR0b3RhbFRlc3RpbmdUaW1lIC4gIiI7Ci0KLSEkaXNEdW1wVG9vbE9wZW4g
fHwgZGllICJGYWlsZWQgdG8gY2xvc2UgJGR1bXBUb29sTmFtZS5cbiI7Ci0KLSRpc0h0dHBkT3Bl
biA9ICFjbG9zZUhUVFBEKCk7Ci1jbG9zZVdlYlNvY2tldFNlcnZlcigpOwotCi0jIEJlY2F1c2Ug
bXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoaXMgc2NyaXB0IGFyZSBydW5uaW5nIGNvbmN1cnJlbnRs
eSB3ZSBjYW5ub3QgCi0jIHNhZmVseSBkZWxldGUgdGhpcyBzeW1saW5rLgotIyBzeXN0ZW0gInJt
IC90bXAvTGF5b3V0VGVzdHMiOwotCi0jIEZJWE1FOiBEbyB3ZSByZWFsbHkgd2FudCB0byBjaGVj
ayB0aGUgaW1hZ2UtY29tcGFyaXNvbiB0b29sIGZvciBsZWFrcyBldmVyeSB0aW1lPwotaWYgKCRp
c0RpZmZUb29sT3BlbiAmJiAkc2hvdWxkQ2hlY2tMZWFrcykgewotICAgICR0b3RhbExlYWtzICs9
IGNvdW50QW5kUHJpbnRMZWFrcygiSW1hZ2VEaWZmIiwgJGltYWdlRGlmZlRvb2xQSUQsICIkdGVz
dFJlc3VsdHNEaXJlY3RvcnkvSW1hZ2VEaWZmLWxlYWtzLnR4dCIpOwotfQotCi1pZiAoJHRvdGFs
TGVha3MpIHsKLSAgICBpZiAoJG1lcmdlRGVwdGgpIHsKLSAgICAgICAgcGFyc2VMZWFrc2FuZFBy
aW50VW5pcXVlTGVha3MoKTsKLSAgICB9IGVsc2UgeyAKLSAgICAgICAgcHJpbnQgIlxuV0FSTklO
RzogJHRvdGFsTGVha3MgdG90YWwgbGVha3MgZm91bmQhXG4iOwotICAgICAgICBwcmludCAiU2Vl
IGFib3ZlIGZvciBpbmRpdmlkdWFsIGxlYWtzIHJlc3VsdHMuXG4iIGlmICgkbGVha3NPdXRwdXRG
aWxlTnVtYmVyID4gMik7Ci0gICAgfQotfQotCi1jbG9zZSBJTjsKLWNsb3NlIE9VVDsKLWNsb3Nl
IEVSUk9SOwotCi1pZiAoJHJlcG9ydDEwU2xvd2VzdCkgewotICAgIHByaW50ICJcblxuVGhlIDEw
IHNsb3dlc3QgdGVzdHM6XG5cbiI7Ci0gICAgbXkgJGNvdW50ID0gMDsKLSAgICBmb3IgbXkgJHRl
c3QgKHNvcnQgc2xvd2VzdGNtcCBrZXlzICVkdXJhdGlvbnMpIHsKLSAgICAgICAgcHJpbnRmICIl
MC4yZiBzZWNzOiAlc1xuIiwgJGR1cmF0aW9uc3skdGVzdH0sICR0ZXN0OwotICAgICAgICBsYXN0
IGlmICsrJGNvdW50ID09IDEwOwotICAgIH0KLX0KLQotcHJpbnQgIlxuIjsKLQotaWYgKCRza2lw
cGVkT25seSAmJiAkY291bnRzeyJtYXRjaCJ9KSB7Ci0gICAgcHJpbnQgIlRoZSBmb2xsb3dpbmcg
dGVzdHMgYXJlIGluIHRoZSBTa2lwcGVkIGZpbGUgKCIgLiBGaWxlOjpTcGVjLT5hYnMycmVsKCIk
cGxhdGZvcm1UZXN0RGlyZWN0b3J5L1NraXBwZWQiLCAkdGVzdERpcmVjdG9yeSkgLiAiKSwgYnV0
IHN1Y2NlZWRlZDpcbiI7Ci0gICAgZm9yZWFjaCBteSAkdGVzdCAoQHskdGVzdHN7Im1hdGNoIn19
KSB7Ci0gICAgICAgIHByaW50ICIgICR0ZXN0XG4iOwotICAgIH0KLX0KLQotaWYgKCRyZXNldFJl
c3VsdHMgfHwgKCRjb3VudHN7bWF0Y2h9ICYmICRjb3VudHN7bWF0Y2h9ID09ICRjb3VudCkpIHsK
LSAgICBwcmludCAiYWxsICRjb3VudCB0ZXN0IGNhc2VzIHN1Y2NlZWRlZFxuIjsKLSAgICB1bmxp
bmsgJHRlc3RSZXN1bHRzOwotICAgIGV4aXQ7Ci19Ci0KLXByaW50UmVzdWx0cygpOwotCi1ta3Bh
dGggJHRlc3RSZXN1bHRzRGlyZWN0b3J5OwotCi1vcGVuIEhUTUwsICI+IiwgJHRlc3RSZXN1bHRz
IG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gJHRlc3RSZXN1bHRzLiAkISI7Ci1wcmludCBIVE1MICI8
aHRtbD5cbiI7Ci1wcmludCBIVE1MICI8aGVhZD5cbiI7Ci1wcmludCBIVE1MICI8dGl0bGU+TGF5
b3V0IFRlc3QgUmVzdWx0czwvdGl0bGU+XG4iOwotcHJpbnQgSFRNTCAiPC9oZWFkPlxuIjsKLXBy
aW50IEhUTUwgIjxib2R5PlxuIjsKLQotaWYgKCRpZ25vcmVNZXRyaWNzKSB7Ci0gICAgcHJpbnQg
SFRNTCAiPGg0PlRlc3RlZCB3aXRoIG1ldHJpY3MgaWdub3JlZC48L2g0PiI7Ci19Ci0KLXByaW50
IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9uKEB7JHRlc3Rze21pc21hdGNofX0sICJUZXN0cyB3
aGVyZSByZXN1bHRzIGRpZCBub3QgbWF0Y2ggZXhwZWN0ZWQgcmVzdWx0cyIsIFwmbGlua3NGb3JN
aXNtYXRjaFRlc3QpOwotcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7
dGltZWRvdXR9fSwgIlRlc3RzIHRoYXQgdGltZWQgb3V0IiwgXCZsaW5rc0ZvckVycm9yVGVzdCk7
Ci1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihAeyR0ZXN0c3tjcmFzaH19LCAiVGVz
dHMgdGhhdCBjYXVzZWQgdGhlIER1bXBSZW5kZXJUcmVlIHRvb2wgdG8gY3Jhc2giLCBcJmxpbmtz
Rm9yRXJyb3JUZXN0KTsKLXByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9uKEB7JHRlc3Rz
e2Vycm9yfX0sICJUZXN0cyB0aGF0IGhhZCBzdGRlcnIgb3V0cHV0IiwgXCZsaW5rc0ZvckVycm9y
VGVzdCk7Ci1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihAeyR0ZXN0c3tuZXd9fSwg
IlRlc3RzIHRoYXQgaGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgKHByb2JhYmx5IG5ldykiLCBcJmxp
bmtzRm9yTmV3VGVzdCk7Ci0KLXByaW50IEhUTUwgIjwvYm9keT5cbiI7Ci1wcmludCBIVE1MICI8
L2h0bWw+XG4iOwotY2xvc2UgSFRNTDsKLQotbXkgQGNvbmZpZ3VyYXRpb25BcmdzID0gYXJndW1l
bnRzRm9yQ29uZmlndXJhdGlvbigpOwotCi1pZiAoaXNHdGsoKSkgewotICBzeXN0ZW0gIldlYktp
dFRvb2xzL1NjcmlwdHMvcnVuLWxhdW5jaGVyIiwgQGNvbmZpZ3VyYXRpb25BcmdzLCAiZmlsZTov
LyIuJHRlc3RSZXN1bHRzIGlmICRsYXVuY2hTYWZhcmk7Ci19IGVsc2lmIChpc1F0KCkpIHsKLSAg
dW5zaGlmdCBAY29uZmlndXJhdGlvbkFyZ3MsIHF3KC1ncmFwaGljc3N5c3RlbSByYXN0ZXIgLXN0
eWxlIHdpbmRvd3MpOwotICBpZiAoaXNDeWd3aW4oKSkgewotICAgICR0ZXN0UmVzdWx0cyA9ICIv
IiAuIHRvV2luZG93c1BhdGgoJHRlc3RSZXN1bHRzKTsKLSAgICAkdGVzdFJlc3VsdHMgPX4gcy9c
XC9cLy9nOwotICB9Ci0gIHN5c3RlbSAiV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIi
LCBAY29uZmlndXJhdGlvbkFyZ3MsICJmaWxlOi8vIi4kdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNh
ZmFyaTsKLX0gZWxzaWYgKGlzQ3lnd2luKCkpIHsKLSAgc3lzdGVtICJjeWdzdGFydCIsICR0ZXN0
UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfSBlbHNlIHsKLSAgc3lzdGVtICJXZWJLaXRUb29s
cy9TY3JpcHRzL3J1bi1zYWZhcmkiLCBAY29uZmlndXJhdGlvbkFyZ3MsICItTlNPcGVuIiwgJHRl
c3RSZXN1bHRzIGlmICRsYXVuY2hTYWZhcmk7Ci19Ci0KLWNsb3NlQ3lncGF0aHMoKSBpZiBpc0N5
Z3dpbigpOwotCi1leGl0IDE7CiAKLXN1YiBjb3VudEFuZFByaW50TGVha3MoJCQkKQorc3ViIHJ1
bm5pbmdPbkJ1aWxkQm90KCkKIHsKLSAgICBteSAoJGR1bXBUb29sTmFtZSwgJGR1bXBUb29sUElE
LCAkbGVha3NGaWxlUGF0aCkgPSBAXzsKLQotICAgIHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVT
dGFydDsKLSAgICAkYXRMaW5lU3RhcnQgPSAxOwotCi0gICAgIyBXZSBhcmUgZXhjbHVkaW5nIHRo
ZSBmb2xsb3dpbmcgcmVwb3J0ZWQgbGVha3Mgc28gdGhleSBkb24ndCBnZXQgaW4gb3VyIHdheSB3
aGVuIGxvb2tpbmcgZm9yIFdlYktpdCBsZWFrczoKLSAgICAjIFRoaXMgYWxsb3dzIHVzIGlnbm9y
ZSBrbm93biBsZWFrcyBhbmQgb25seSBiZSBhbGVydGVkIHdoZW4gbmV3IGxlYWtzIG9jY3VyLiBT
b21lIGxlYWtzIGFyZSBpbiB0aGUgb2xkCi0gICAgIyB2ZXJzaW9ucyBvZiB0aGUgc3lzdGVtIGZy
YW1ld29ya3MgdGhhdCBhcmUgYmVpbmcgdXNlZCBieSB0aGUgbGVha3MgYm90cy4gRXZlbiB0aG91
Z2ggYSBsZWFrIGhhcyBiZWVuCi0gICAgIyBmaXhlZCwgaXQgd2lsbCBiZSBsaXN0ZWQgaGVyZSB1
bnRpbCB0aGUgYm90IGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgZnJhbWV3b3Jrcy4K
LQotICAgIG15IEB0eXBlc1RvRXhjbHVkZSA9ICgKLSAgICApOwotCi0gICAgbXkgQGNhbGxTdGFj
a3NUb0V4Y2x1ZGUgPSAoCi0gICAgICAgICJGbGFzaF9FbmZvcmNlTG9jYWxTZWN1cml0eSIgIyBs
ZWFrcyBpbiBGbGFzaCBwbHVnLWluIGNvZGUsIHJkYXI6Ly9wcm9ibGVtLzQ0NDk3NDcKLSAgICAp
OwotCi0gICAgaWYgKGlzVGlnZXIoKSkgewotICAgICAgICAjIExlYWsgbGlzdCBmb3IgdGhlIHZl
cnNpb24gb2YgVGlnZXIgdXNlZCBvbiB0aGUgYnVpbGQgYm90LgotICAgICAgICBwdXNoIEBjYWxs
U3RhY2tzVG9FeGNsdWRlLCAoCi0gICAgICAgICAgICAiQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgXFx8
IG1hbGxvY196b25lX21hbGxvYyIsICJDRlJ1bkxvb3BSdW5TcGVjaWZpYyBcXHwgQ0ZBbGxvY2F0
b3JBbGxvY2F0ZSAiLCAjIGxlYWsgaW4gQ0ZSdW5Mb29wUnVuU3BlY2lmaWMsIHJkYXI6Ly9wcm9i
bGVtLzQ2NzA4MzkKLSAgICAgICAgICAgICJDR0ltYWdlU291cmNlR2V0UHJvcGVydGllc0F0SW5k
ZXgiLCAjIGxlYWsgaW4gSW1hZ2VJTywgcmRhcjovL3Byb2JsZW0vNDYyODgwOQotICAgICAgICAg
ICAgIkZPR2V0Q292ZXJlZFVuaWNvZGVDaGFycyIsICMgbGVhayBpbiBBVFMsIHJkYXI6Ly9wcm9i
bGVtLzM5NDM2MDQKLSAgICAgICAgICAgICJHZXRMaW5lRGlyZWN0aW9uUHJlZmVyZW5jZSIsICJJ
bml0VW5pY29kZVV0aWxpdGllcyIsICMgbGVha3MgdG9vbCBmYWxzZWx5IHJlcG9ydGluZyBsZWFr
IGluIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIsIHJkYXI6Ly9wcm9ibGVtLzQ5NjQ3
OTAKLSAgICAgICAgICAgICJJQ0NGUHJlZldyYXBwZXI6OkdldFByZWZEaWN0aW9uYXJ5IiwgIyBs
ZWFrcyBpbiBJbnRlcm5ldCBDb25maWcuIGNvZGUsIHJkYXI6Ly9wcm9ibGVtLzQ0NDk3OTQKLSAg
ICAgICAgICAgICJOU0hUVFBVUkxQcm90b2NvbCBzZXRSZXNwb25zZUhlYWRlcjoiLCAjIGxlYWsg
aW4gbXVsdGlwYXJ0L21peGVkLXJlcGxhY2UgaGFuZGxpbmcgaW4gRm91bmRhdGlvbiwgbm8gUmFk
YXIsIGJ1dCBmaXhlZCBpbiBMZW9wYXJkCi0gICAgICAgICAgICAiTlNVUkxDYWNoZSBjYWNoZWRS
ZXNwb25zZUZvclJlcXVlc3QiLCAjIGxlYWsgaW4gQ0ZVUkwgY2FjaGUsIHJkYXI6Ly9wcm9ibGVt
LzQ3Njg0MzAKLSAgICAgICAgICAgICJQQ0ZyYWdQcmVwYXJlQ2xvc3VyZUZyb21GaWxlIiwgIyBs
ZWFrIGluIENvZGUgRnJhZ21lbnQgTWFuYWdlciwgcmRhcjovL3Byb2JsZW0vMzQyNjk5OAotICAg
ICAgICAgICAgIldlYkNvcmU6OlNlbGVjdGlvbjo6dG9SYW5nZSIsICMgYnVnIGluICdsZWFrcycs
IHJkYXI6Ly9wcm9ibGVtLzQ5Njc5NDkKLSAgICAgICAgICAgICJXZWJDb3JlOjpTdWJyZXNvdXJj
ZUxvYWRlcjo6Y3JlYXRlIiwgIyBidWcgaW4gJ2xlYWtzJywgcmRhcjovL3Byb2JsZW0vNDk4NTgw
NgotICAgICAgICAgICAgIl9DRlByZWZlcmVuY2VzRG9tYWluRGVlcENvcHlEaWN0aW9uYXJ5Iiwg
IyBsZWFrIGluIENGUHJlZmVyZW5jZXMsIHJkYXI6Ly9wcm9ibGVtLzQyMjA3ODYKLSAgICAgICAg
ICAgICJfb2JqY19tc2dGb3J3YXJkIiwgIyBsZWFrIGluIE5TU3BlbGxDaGVja2VyLCByZGFyOi8v
cHJvYmxlbS80OTY1Mjc4Ci0gICAgICAgICAgICAiZ2xkR2V0U3RyaW5nIiwgIyBsZWFrIGluIE9w
ZW5HTCwgcmRhcjovL3Byb2JsZW0vNTAxMzY5OQotICAgICAgICAgICAgIl9zZXREZWZhdWx0VXNl
ckluZm9Gcm9tVVJMIiwgIyBsZWFrIGluIE5TSFRUUEF1dGhlbnRpY2F0b3IsIHJkYXI6Ly9wcm9i
bGVtLzU1NDY0NTMgCi0gICAgICAgICAgICAiU1NMSGFuZHNoYWtlIiwgIyBsZWFrIGluIFNTTCwg
cmRhcjovL3Byb2JsZW0vNTU0NjQ0MCAKLSAgICAgICAgICAgICJTZWNDZXJ0aWZpY2F0ZUNyZWF0
ZUZyb21EYXRhIiwgIyBsZWFrIGluIFNTTCBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDY0Mzk3Ci0g
ICAgICAgICk7Ci0gICAgICAgIHB1c2ggQHR5cGVzVG9FeGNsdWRlLCAoCi0gICAgICAgICAgICAi
VEhSRCIsICMgYnVnIGluICdsZWFrcycsIHJkYXI6Ly9wcm9ibGVtLzMzODc3ODMKLSAgICAgICAg
ICAgICJEUkhUIiwgIyBkaXR0byAoZW5kaWFuIGxpdHRsZSBoYXRlIGkpCi0gICAgICAgICk7Ci0g
ICAgfQotCi0gICAgaWYgKGlzTGVvcGFyZCgpKSB7Ci0gICAgICAgICMgTGVhayBsaXN0IGZvciB0
aGUgdmVyc2lvbiBvZiBMZW9wYXJkIHVzZWQgb24gdGhlIGJ1aWxkIGJvdC4KLSAgICAgICAgcHVz
aCBAY2FsbFN0YWNrc1RvRXhjbHVkZSwgKAotICAgICAgICAgICAgIkNGSFRUUE1lc3NhZ2VBcHBl
bmRCeXRlcyIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0MzU5MTIKLSAg
ICAgICAgICAgICJzZW5kRGlkUmVjZWl2ZURhdGFDYWxsYmFjayIsICMgbGVhayBpbiBDRk5ldHdv
cmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE2MTkKLSAgICAgICAgICAgICJfQ0ZIVFRQUmVhZFN0cmVh
bVJlYWRNYXJrIiwgIyBsZWFrIGluIENGTmV0d29yaywgcmRhcjovL3Byb2JsZW0vNTQ0MTQ2OAot
ICAgICAgICAgICAgImh0dHBQcm90b2NvbFN0YXJ0IiwgIyBsZWFrIGluIENGTmV0d29yaywgcmRh
cjovL3Byb2JsZW0vNTQ2ODgzNwotICAgICAgICAgICAgIl9DRlVSTENvbm5lY3Rpb25TZW5kQ2Fs
bGJhY2tzIiwgIyBsZWFrIGluIENGTmV0d29yaywgcmRhcjovL3Byb2JsZW0vNTQ0MTYwMAotICAg
ICAgICAgICAgIkRpc3BhdGNoUVRNc2ciLCAjIGxlYWsgaW4gUXVpY2tUaW1lLCBQUEMgb25seSwg
cmRhcjovL3Byb2JsZW0vNTY2NzEzMgotICAgICAgICAgICAgIlFUTW92aWVDb250ZW50VmlldyBj
cmVhdGVWaXN1YWxDb250ZXh0IiwgIyBsZWFrIGluIFF1aWNrVGltZSwgUFBDIG9ubHksIHJkYXI6
Ly9wcm9ibGVtLzU2NjcxMzIKLSAgICAgICAgICAgICJfQ29weUFyY2hpdGVjdHVyZXNGb3JKVk1W
ZXJzaW9uIiwgIyBsZWFrIGluIEphdmEsIHJkYXI6Ly9wcm9ibGVtLzU5MTA4MjMKLSAgICAgICAg
KTsKLSAgICB9Ci0KLSAgICBpZiAoaXNTbm93TGVvcGFyZCgpKSB7Ci0gICAgICAgIHB1c2ggQGNh
bGxTdGFja3NUb0V4Y2x1ZGUsICgKLSAgICAgICAgICAgICJyZWFkTWFrZXJOb3RlUHJvcHMiLCAj
IDxyZGFyOi8vcHJvYmxlbS83MTU2NDMyPiBsZWFrIGluIEltYWdlSU8KLSAgICAgICAgICAgICJR
VEtpdE1vdmllQ29udHJvbGxlclZpZXcgY29tcGxldGVVSVNldHVwIiwgIyA8cmRhcjovL3Byb2Js
ZW0vNzE1NTE1Nj4gbGVhayBpbiBRVEtpdAotICAgICAgICAgICAgImdldFZNSW5pdEFyZ3MiLCAj
IDxyZGFyOi8vcHJvYmxlbS83NzE0NDQ0PiBsZWFrIGluIEphdmEKLSAgICAgICAgICAgICJKYXZh
X2phdmFfbGFuZ19TeXN0ZW1faW5pdFByb3BlcnRpZXMiLCAjIDxyZGFyOi8vcHJvYmxlbS83NzE0
NDY1PiBsZWFrIGluIEphdmEKLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBteSAkbGVha3NUb29s
ID0gc291cmNlRGlyKCkgLiAiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLWxlYWtzIjsKLSAgICBt
eSAkZXhjbHVkZVN0cmluZyA9ICItLWV4Y2x1ZGUtY2FsbHN0YWNrICciIC4gKGpvaW4gIicgLS1l
eGNsdWRlLWNhbGxzdGFjayAnIiwgQGNhbGxTdGFja3NUb0V4Y2x1ZGUpIC4gIiciOwotICAgICRl
eGNsdWRlU3RyaW5nIC49ICIgLS1leGNsdWRlLXR5cGUgJyIgLiAoam9pbiAiJyAtLWV4Y2x1ZGUt
dHlwZSAnIiwgQHR5cGVzVG9FeGNsdWRlKSAuICInIiBpZiBAdHlwZXNUb0V4Y2x1ZGU7Ci0KLSAg
ICBwcmludCAiID8gY2hlY2tpbmcgZm9yIGxlYWtzIGluICRkdW1wVG9vbE5hbWVcbiI7Ci0gICAg
bXkgJGxlYWtzT3V0cHV0ID0gYCRsZWFrc1Rvb2wgJGV4Y2x1ZGVTdHJpbmcgJGR1bXBUb29sUElE
YDsKLSAgICBteSAoJGNvdW50LCAkYnl0ZXMpID0gJGxlYWtzT3V0cHV0ID1+IC9Qcm9jZXNzICRk
dW1wVG9vbFBJRDogKFxkKykgbGVha3M/IGZvciAoXGQrKSB0b3RhbC87Ci0gICAgbXkgKCRleGNs
dWRlZCkgPSAkbGVha3NPdXRwdXQgPX4gLyhcZCspIGxlYWtzPyBleGNsdWRlZC87Ci0KLSAgICBt
eSAkYWRqdXN0ZWRDb3VudCA9ICRjb3VudDsKLSAgICAkYWRqdXN0ZWRDb3VudCAtPSAkZXhjbHVk
ZWQgaWYgJGV4Y2x1ZGVkOwotCi0gICAgaWYgKCEkYWRqdXN0ZWRDb3VudCkgewotICAgICAgICBw
cmludCAiIC0gbm8gbGVha3MgZm91bmRcbiI7Ci0gICAgICAgIHVubGluayAkbGVha3NGaWxlUGF0
aDsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJGRpciA9ICRs
ZWFrc0ZpbGVQYXRoOwotICAgICAgICAkZGlyID1+IHN8L1teL10rJHx8IG9yIGRpZTsKLSAgICAg
ICAgbWtwYXRoICRkaXI7Ci0KLSAgICAgICAgaWYgKCRleGNsdWRlZCkgewotICAgICAgICAgICAg
cHJpbnQgIiArICRhZGp1c3RlZENvdW50IGxlYWtzICgkYnl0ZXMgYnl0ZXMgaW5jbHVkaW5nICRl
eGNsdWRlZCBleGNsdWRlZCBsZWFrcykgd2VyZSBmb3VuZCwgZGV0YWlscyBpbiAkbGVha3NGaWxl
UGF0aFxuIjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ICIgKyAkY291bnQg
bGVha3MgKCRieXRlcyBieXRlcykgd2VyZSBmb3VuZCwgZGV0YWlscyBpbiAkbGVha3NGaWxlUGF0
aFxuIjsKLSAgICAgICAgfQotCi0gICAgICAgIHdyaXRlVG9GaWxlKCRsZWFrc0ZpbGVQYXRoLCAk
bGVha3NPdXRwdXQpOwotICAgICAgICAKLSAgICAgICAgcHVzaCBAbGVha3NGaWxlbmFtZXMsICRs
ZWFrc0ZpbGVQYXRoOwotICAgIH0KLQotICAgIHJldHVybiAkYWRqdXN0ZWRDb3VudDsKLX0KLQot
c3ViIHdyaXRlVG9GaWxlKCQkKQotewotICAgIG15ICgkZmlsZVBhdGgsICRjb250ZW50cykgPSBA
XzsKLSAgICBvcGVuIE5FV0ZJTEUsICI+IiwgIiRmaWxlUGF0aCIgb3IgZGllICJDb3VsZCBub3Qg
Y3JlYXRlICRmaWxlUGF0aC4gJCFcbiI7Ci0gICAgcHJpbnQgTkVXRklMRSAkY29udGVudHM7Ci0g
ICAgY2xvc2UgTkVXRklMRTsKLX0KLQotIyBCcmVhayB1cCBhIHBhdGggaW50byB0aGUgZGlyZWN0
b3J5ICh3aXRoIHNsYXNoKSBhbmQgYmFzZSBuYW1lLgotc3ViIHNwbGl0cGF0aCgkKQotewotICAg
IG15ICgkcGF0aCkgPSBAXzsKLQotICAgIG15ICRwYXRoU2VwYXJhdG9yID0gIi8iOwotICAgIG15
ICRkaXJuYW1lID0gZGlybmFtZSgkcGF0aCkgLiAkcGF0aFNlcGFyYXRvcjsKLSAgICAkZGlybmFt
ZSA9ICIiIGlmICRkaXJuYW1lIGVxICIuIiAuICRwYXRoU2VwYXJhdG9yOwotCi0gICAgcmV0dXJu
ICgkZGlybmFtZSwgYmFzZW5hbWUoJHBhdGgpKTsKKyAgICAjIFRoaXMgaXMgYSBoYWNrIHRvIGRl
dGVjdCBpZiB3ZSdyZSBydW5uaW5nIG9uIHRoZSBidWlsZGJvdCBzbyB3ZSBjYW4KKyAgICAjIHBh
c3MgLS12ZXJib3NlIHRvIG5ldy1ydW4td2Via2l0LXRlc3RzLiAgVGhpcyB3aWxsIGJlIHJlbW92
ZWQgd2hlbiB3ZQorICAgICMgdXBkYXRlIHRoZSBidWlsZGJvdCBjb25maWcgdG8gY2FsbCBuZXct
cnVuLXdlYmtpdC10ZXN0cyBleHBsaWNpdGx5LgorICAgIG15ICVpc0J1aWxkQm90VXNlciA9ICgi
YXBwbGUiID0+IDEsICJidWlsZGJvdCIgPT4gMSk7CisgICAgcmV0dXJuICRpc0J1aWxkQm90VXNl
cnskRU5WeyJVU0VSIn19OwogfQogCi0jIFNvcnQgZmlyc3QgYnkgZGlyZWN0b3J5LCB0aGVuIGJ5
IGZpbGUsIHNvIGFsbCBwYXRocyBpbiBvbmUgZGlyZWN0b3J5IGFyZSBncm91cGVkCi0jIHJhdGhl
ciB0aGFuIGJlaW5nIGludGVyc3BlcnNlZCB3aXRoIGl0ZW1zIGZyb20gc3ViZGlyZWN0b3JpZXMu
Ci0jIFVzZSBudW1lcmljY21wIHRvIHNvcnQgZGlyZWN0b3J5IGFuZCBmaWxlbmFtZXMgdG8gbWFr
ZSBvcmRlciBsb2dpY2FsLgotc3ViIHBhdGhjbXAoJCQpCitzdWIgdXNlTmV3UnVuV2ViS2l0VGVz
dHMoKQogewotICAgIG15ICgkcGF0aGEsICRwYXRoYikgPSBAXzsKLQotICAgIG15ICgkZGlyYSwg
JG5hbWVhKSA9IHNwbGl0cGF0aCgkcGF0aGEpOwotICAgIG15ICgkZGlyYiwgJG5hbWViKSA9IHNw
bGl0cGF0aCgkcGF0aGIpOwotCi0gICAgcmV0dXJuIG51bWVyaWNjbXAoJGRpcmEsICRkaXJiKSBp
ZiAkZGlyYSBuZSAkZGlyYjsKLSAgICByZXR1cm4gbnVtZXJpY2NtcCgkbmFtZWEsICRuYW1lYik7
CisgICAgcmV0dXJuIGlzU25vd0xlb3BhcmQoKSAmJiBydW5uaW5nT25CdWlsZEJvdCgpOwogfQog
Ci0jIFNvcnQgbnVtZXJpYyBwYXJ0cyBvZiBzdHJpbmdzIGFzIG51bWJlcnMsIG90aGVyIHBhcnRz
IGFzIHN0cmluZ3MuCi0jIE1ha2VzIDEuMzMgY29tZSBhZnRlciAxLjMsIHdoaWNoIGlzIGNvb2wu
Ci1zdWIgbnVtZXJpY2NtcCgkJCkKLXsKLSAgICBteSAoJGFhLCAkYmIpID0gQF87Ci0KLSAgICBt
eSBAYSA9IHNwbGl0IC8oXGQrKS8sICRhYTsKLSAgICBteSBAYiA9IHNwbGl0IC8oXGQrKS8sICRi
YjsKK215ICRoYXJuZXNzTmFtZSA9ICJvbGQtcnVuLXdlYmtpdC10ZXN0cyI7CiAKLSAgICAjIENv
bXBhcmUgb25lIGNodW5rIGF0IGEgdGltZS4KLSAgICAjIEVhY2ggY2h1bmsgaXMgZWl0aGVyIGFs
bCBudW1lcmljIGRpZ2l0cywgb3IgYWxsIG5vdCBudW1lcmljIGRpZ2l0cy4KLSAgICB3aGlsZSAo
QGEgJiYgQGIpIHsKLSAgICAgICAgbXkgJGEgPSBzaGlmdCBAYTsKLSAgICAgICAgbXkgJGIgPSBz
aGlmdCBAYjsKLSAgICAgICAgCi0gICAgICAgICMgVXNlIG51bWVyaWMgY29tcGFyaXNvbiBpZiBj
aHVua3MgYXJlIG5vbi1lcXVhbCBudW1iZXJzLgotICAgICAgICByZXR1cm4gJGEgPD0+ICRiIGlm
ICRhID1+IC9eXGQvICYmICRiID1+IC9eXGQvICYmICRhICE9ICRiOwotCi0gICAgICAgICMgVXNl
IHN0cmluZyBjb21wYXJpc29uIGlmIGNodW5rcyBhcmUgYW55IG90aGVyIGtpbmQgb2Ygbm9uLWVx
dWFsIHN0cmluZy4KLSAgICAgICAgcmV0dXJuICRhIGNtcCAkYiBpZiAkYSBuZSAkYjsKK2lmICh1
c2VOZXdSdW5XZWJLaXRUZXN0cygpKSB7CisgICAgJGhhcm5lc3NOYW1lID0gIm5ldy1ydW4td2Vi
a2l0LXRlc3RzIjsKKyAgICBpZiAocnVubmluZ09uQnVpbGRCb3QoKSkgeworICAgICAgICBwdXNo
KEBBUkdWLCAiLS12ZXJib3NlIik7CisgICAgICAgICMgb2xkLXJ1bi13ZWJraXQtdGVzdHMgdHJl
YXRzIC0tcmVzdWx0cy1kaXJlY3RvcnkgYXMgJENXRCByZWxhdGl2ZS4KKyAgICAgICAgIyBuZXct
cnVuLXdlYmtpdC10ZXN0cyB0cmVhdHMgLS1yZXN1bHRzLWRpcmVjdG9yeSBhcyBidWlsZCBkaXJl
Y3RvcnkgcmVsYXRpdmUuCisgICAgICAgICMgT3ZlcnJpZGUgdGhlIHBhc3NlZCBpbiAtLXJlc3Vs
dHMtZGlyZWN0b3J5IGJ5IGFwcGVuZGluZyBhIG5ldyBvbmUKKyAgICAgICAgIyAobGF0ZXIgYXJn
dW1lbnRzIG92ZXJyaWRlIGVhcmxpZXIgb25lcyBpbiBQeXRob24ncyBvcHRwYXJzZSkuCisgICAg
ICAgIHB1c2goQEFSR1YsICItLXJlc3VsdHMtZGlyZWN0b3J5Iik7CisgICAgICAgICMgVGhlIGJ1
aWxkYm90IGFsd2F5cyB1c2VzICRTUkNESVIvbGF5b3V0LXRlc3QtcmVzdWx0cywgaGFyZGNvZGUg
aXQ6CisgICAgICAgIHB1c2goQEFSR1YsIHNvdXJjZURpcigpIC4gIi9sYXlvdXQtdGVzdC1yZXN1
bHRzIik7CiAgICAgfQotICAgIAotICAgICMgT25lIG9mIHRoZSB0d28gaXMgbm93IGVtcHR5OyBj
b21wYXJlIGxlbmd0aHMgZm9yIHJlc3VsdCBpbiB0aGlzIGNhc2UuCi0gICAgcmV0dXJuIEBhIDw9
PiBAYjsKLX0KLQotIyBTb3J0IHNsb3dlc3QgdGVzdHMgZmlyc3QuCi1zdWIgc2xvd2VzdGNtcCgk
JCkKLXsKLSAgICBteSAoJHRlc3RhLCAkdGVzdGIpID0gQF87Ci0KLSAgICBteSAkZHVyYSA9ICRk
dXJhdGlvbnN7JHRlc3RhfTsKLSAgICBteSAkZHVyYiA9ICRkdXJhdGlvbnN7JHRlc3RifTsKLSAg
ICByZXR1cm4gJGR1cmIgPD0+ICRkdXJhIGlmICRkdXJhICE9ICRkdXJiOwotICAgIHJldHVybiBw
YXRoY21wKCR0ZXN0YSwgJHRlc3RiKTsKLX0KLQotc3ViIGxhdW5jaFdpdGhFbnYoXEBcJSkKLXsK
LSAgICBteSAoJGFyZ3MsICRlbnYpID0gQF87Ci0KLSAgICAjIER1bXAgdGhlIGN1cnJlbnQgZW52
aXJvbm1lbnQgYXMgcGVybCBjb2RlIGFuZCB0aGVuIHB1dCBpdCBpbiBxdW90ZXMgc28gaXQgaXMg
b25lIHBhcmFtZXRlci4KLSAgICBteSAkZW52aXJvbm1lbnREdW1wZXIgPSBEYXRhOjpEdW1wZXIt
Pm5ldyhbXCV7JGVudn1dLCBbcXcoKkVOVildKTsKLSAgICAkZW52aXJvbm1lbnREdW1wZXItPklu
ZGVudCgwKTsKLSAgICAkZW52aXJvbm1lbnREdW1wZXItPlB1cml0eSgxKTsKLSAgICBteSAkYWxs
RW52VmFycyA9ICRlbnZpcm9ubWVudER1bXBlci0+RHVtcCgpOwotICAgIHVuc2hpZnQgQHskYXJn
c30sICJcIiRhbGxFbnZWYXJzXCIiOwotCi0gICAgbXkgJGV4ZWNTY3JpcHQgPSBGaWxlOjpTcGVj
LT5jYXRmaWxlKHNvdXJjZURpcigpLCBxdyhXZWJLaXRUb29scyBTY3JpcHRzIGV4ZWNBcHBXaXRo
RW52KSk7Ci0gICAgdW5zaGlmdCBAeyRhcmdzfSwgJGV4ZWNTY3JpcHQ7Ci0gICAgcmV0dXJuIEB7
JGFyZ3N9OwotfQotCi1zdWIgcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpCi17
Ci0gICAgbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5ID0gRmlsZTo6U3BlYy0+cmVsMmFicyhn
bG9iICR0ZXN0UmVzdWx0c0RpcmVjdG9yeSk7Ci0gICAgbWtwYXRoICRhYnNUZXN0UmVzdWx0c0Rp
cmVjdG9yeTsKLSAgICByZXR1cm4gJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5OwotfQotCi1zdWIg
b3BlbkRpZmZUb29sKCkKLXsKLSAgICByZXR1cm4gaWYgJGlzRGlmZlRvb2xPcGVuOwotICAgIHJl
dHVybiBpZiAhJHBpeGVsVGVzdHM7Ci0KLSAgICBteSAlQ0xFQU5fRU5WOwotICAgICRDTEVBTl9F
TlZ7TWFsbG9jU3RhY2tMb2dnaW5nfSA9IDEgaWYgJHNob3VsZENoZWNrTGVha3M7Ci0gICAgJGlt
YWdlRGlmZlRvb2xQSUQgPSBvcGVuMihcKkRJRkZJTiwgXCpESUZGT1VULCAkaW1hZ2VEaWZmVG9v
bCwgbGF1bmNoV2l0aEVudihAZGlmZlRvb2xBcmdzLCAlQ0xFQU5fRU5WKSkgb3IgZGllICJ1bmFi
bGUgdG8gb3BlbiAkaW1hZ2VEaWZmVG9vbFxuIjsKLSAgICAkaXNEaWZmVG9vbE9wZW4gPSAxOwog
fQogCi1zdWIgb3BlbkR1bXBUb29sKCkKLXsKLSAgICByZXR1cm4gaWYgJGlzRHVtcFRvb2xPcGVu
OwotCi0gICAgbXkgJUNMRUFOX0VOVjsKLQotICAgICMgR2VuZXJpYyBlbnZpcm9ubWVudCB2YXJp
YWJsZXMKLSAgICBpZiAoZGVmaW5lZCAkRU5WeydXRUJLSVRfVEVTVEZPTlRTJ30pIHsKLSAgICAg
ICAgJENMRUFOX0VOVntXRUJLSVRfVEVTVEZPTlRTfSA9ICRFTlZ7J1dFQktJVF9URVNURk9OVFMn
fTsKLSAgICB9Ci0KLSAgICAjIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBlYWNoIER1
bXBSZW5kZXJ0cmVlIC0gbmVlZGVkIGZvciBydW5uaW5nIG1vcmUgRHVtcFJlbmRlclRyZWUgaW4g
cGFyYWxsZWwKLSAgICAkQ0xFQU5fRU5We0RVTVBSRU5ERVJUUkVFX1RFTVB9ID0gRmlsZTo6VGVt
cDo6dGVtcGRpcignRHVtcFJlbmRlclRyZWUtWFhYWFhYJywgVE1QRElSID0+IDEsIENMRUFOVVAg
PT4gMSk7Ci0gICAgJENMRUFOX0VOVntYTUxfQ0FUQUxPR19GSUxFU30gPSAiIjsgIyB3b3JrIGFy
b3VuZCBtaXNzaW5nIC9ldGMvY2F0YWxvZyA8cmRhcjovL3Byb2JsZW0vNDI5Mjk5NT4KLQotICAg
ICMgUGxhdGZvcm0gc3Blc2lmaWNzCi0gICAgaWYgKGlzTGludXgoKSkgewotICAgICAgICBpZiAo
ZGVmaW5lZCAkRU5WeydESVNQTEFZJ30pIHsKLSAgICAgICAgICAgICRDTEVBTl9FTlZ7RElTUExB
WX0gPSAkRU5WeydESVNQTEFZJ307Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkQ0xF
QU5fRU5We0RJU1BMQVl9ID0gIjoxIjsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGVmaW5lZCAk
RU5WeydYQVVUSE9SSVRZJ30pIHsKLSAgICAgICAgICAgICRDTEVBTl9FTlZ7WEFVVEhPUklUWX0g
PSAkRU5WeydYQVVUSE9SSVRZJ307Ci0gICAgICAgIH0KLQotICAgICAgICAkQ0xFQU5fRU5We0hP
TUV9ID0gJEVOVnsnSE9NRSd9OwotCi0gICAgICAgIGlmIChkZWZpbmVkICRFTlZ7J0xEX0xJQlJB
UllfUEFUSCd9KSB7Ci0gICAgICAgICAgICAkQ0xFQU5fRU5We0xEX0xJQlJBUllfUEFUSH0gPSAk
RU5WeydMRF9MSUJSQVJZX1BBVEgnfTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGVmaW5lZCAk
RU5WeydEQlVTX1NFU1NJT05fQlVTX0FERFJFU1MnfSkgewotICAgICAgICAgICAgJENMRUFOX0VO
VntEQlVTX1NFU1NJT05fQlVTX0FERFJFU1N9ID0gJEVOVnsnREJVU19TRVNTSU9OX0JVU19BRERS
RVNTJ307Ci0gICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0RhcndpbigpKSB7Ci0gICAgICAgIGlm
IChkZWZpbmVkICRFTlZ7J0RZTERfTElCUkFSWV9QQVRIJ30pIHsKLSAgICAgICAgICAgICRDTEVB
Tl9FTlZ7RFlMRF9MSUJSQVJZX1BBVEh9ID0gJEVOVnsnRFlMRF9MSUJSQVJZX1BBVEgnfTsKLSAg
ICAgICAgfQotCi0gICAgICAgICRDTEVBTl9FTlZ7RFlMRF9GUkFNRVdPUktfUEFUSH0gPSAkcHJv
ZHVjdERpcjsKLSAgICAgICAgJENMRUFOX0VOVntEWUxEX0lOU0VSVF9MSUJSQVJJRVN9ID0gIi91
c3IvbGliL2xpYmdtYWxsb2MuZHlsaWIiIGlmICRndWFyZE1hbGxvYzsKLSAgICB9IGVsc2lmIChp
c0N5Z3dpbigpKSB7Ci0gICAgICAgICRDTEVBTl9FTlZ7SE9NRURSSVZFfSA9ICRFTlZ7J0hPTUVE
UklWRSd9OwotICAgICAgICAkQ0xFQU5fRU5We0hPTUVQQVRIfSA9ICRFTlZ7J0hPTUVQQVRIJ307
Ci0KLSAgICAgICAgc2V0UGF0aEZvclJ1bm5pbmdXZWJLaXRBcHAoXCVDTEVBTl9FTlYpOwotICAg
IH0KLQotICAgICMgUG9ydCBzcGVzaWZpY3MKLSAgICBpZiAoaXNRdCgpKSB7Ci0gICAgICAgICRD
TEVBTl9FTlZ7UVRXRUJLSVRfUExVR0lOX1BBVEh9ID0gcHJvZHVjdERpcigpIC4gIi9saWIvcGx1
Z2lucyI7Ci0gICAgfQotICAgIAotICAgIG15IEBhcmdzID0gKCRkdW1wVG9vbCwgQHRvb2xBcmdz
KTsKLSAgICBpZiAoaXNBcHBsZU1hY1dlYktpdCgpIGFuZCAhaXNUaWdlcigpKSB7IAotICAgICAg
ICB1bnNoaWZ0IEBhcmdzLCAiYXJjaCIsICItIiAuIGFyY2hpdGVjdHVyZSgpOyAgICAgICAgICAg
ICAKLSAgICB9Ci0KLSAgICBpZiAoJHVzZVZhbGdyaW5kKSB7Ci0gICAgICAgIHVuc2hpZnQgQGFy
Z3MsICJ2YWxncmluZCIsICItLXN1cHByZXNzaW9ucz0kcGxhdGZvcm1CYXNlRGlyZWN0b3J5L3F0
L1N1cHByZXNzZWRWYWxncmluZEVycm9ycyI7Ci0gICAgfSAKLQotICAgICRDTEVBTl9FTlZ7TWFs
bG9jU3RhY2tMb2dnaW5nfSA9IDEgaWYgJHNob3VsZENoZWNrTGVha3M7Ci0KLSAgICAkZHVtcFRv
b2xQSUQgPSBvcGVuMyhcKk9VVCwgXCpJTiwgXCpFUlJPUiwgbGF1bmNoV2l0aEVudihAYXJncywg
JUNMRUFOX0VOVikpIG9yIGRpZSAiRmFpbGVkIHRvIHN0YXJ0IHRvb2w6ICRkdW1wVG9vbFxuIjsK
LSAgICAkaXNEdW1wVG9vbE9wZW4gPSAxOwotICAgICRkdW1wVG9vbENyYXNoZWQgPSAwOwotfQot
Ci1zdWIgY2xvc2VEdW1wVG9vbCgpCi17Ci0gICAgcmV0dXJuIGlmICEkaXNEdW1wVG9vbE9wZW47
Ci0KLSAgICBjbG9zZSBJTjsKLSAgICBjbG9zZSBPVVQ7Ci0gICAgd2FpdHBpZCAkZHVtcFRvb2xQ
SUQsIDA7Ci0gICAgCi0gICAgIyBjaGVjayBmb3IgV2ViQ29yZSBjb3VudGVyIGxlYWtzLgotICAg
IGlmICgkc2hvdWxkQ2hlY2tMZWFrcykgewotICAgICAgICB3aGlsZSAoPEVSUk9SPikgewotICAg
ICAgICAgICAgcHJpbnQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgY2xvc2UgRVJST1I7Ci0gICAg
JGlzRHVtcFRvb2xPcGVuID0gMDsKLX0KLQotc3ViIGR1bXBUb29sRGlkQ3Jhc2goKQotewotICAg
IHJldHVybiAxIGlmICRkdW1wVG9vbENyYXNoZWQ7Ci0gICAgcmV0dXJuIDAgdW5sZXNzICRpc0R1
bXBUb29sT3BlbjsKLSAgICBteSAkcGlkID0gd2FpdHBpZCgtMSwgV05PSEFORyk7Ci0gICAgcmV0
dXJuIDEgaWYgKCRwaWQgPT0gJGR1bXBUb29sUElEKTsKLQotICAgICMgT24gTWFjIE9TIFgsIGNy
YXNoaW5nIG1heSBiZSBzaWduaWZpY2FudGx5IGRlbGF5ZWQgYnkgY3Jhc2ggcmVwb3J0ZXIuCi0g
ICAgcmV0dXJuIDAgdW5sZXNzIGlzQXBwbGVNYWNXZWJLaXQoKTsKLQotICAgIHJldHVybiBEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6OnByb2Nlc3NJc0NyYXNoaW5nKCRkdW1wVG9vbFBJRCk7Ci19Ci0K
LXN1YiBjb25maWd1cmVBbmRPcGVuSFRUUERJZk5lZWRlZCgpCi17Ci0gICAgcmV0dXJuIGlmICRp
c0h0dHBkT3BlbjsKLSAgICBteSAkYWJzVGVzdFJlc3VsdHNEaXJlY3RvcnkgPSByZXNvbHZlQW5k
TWFrZVRlc3RSZXN1bHRzRGlyZWN0b3J5KCk7Ci0gICAgbXkgJGxpc3RlbiA9ICIxMjcuMC4wLjE6
JGh0dHBkUG9ydCI7Ci0gICAgbXkgQGFyZ3MgPSAoCi0gICAgICAgICItYyIsICJDdXN0b21Mb2cg
XCIkYWJzVGVzdFJlc3VsdHNEaXJlY3RvcnkvYWNjZXNzX2xvZy50eHRcIiBjb21tb24iLAotICAg
ICAgICAiLWMiLCAiRXJyb3JMb2cgXCIkYWJzVGVzdFJlc3VsdHNEaXJlY3RvcnkvZXJyb3JfbG9n
LnR4dFwiIiwKLSAgICAgICAgIi1DIiwgIkxpc3RlbiAkbGlzdGVuIgotICAgICk7Ci0KLSAgICBt
eSBAZGVmYXVsdEFyZ3MgPSBnZXREZWZhdWx0Q29uZmlnRm9yVGVzdERpcmVjdG9yeSgkdGVzdERp
cmVjdG9yeSk7Ci0gICAgQGFyZ3MgPSAoQGRlZmF1bHRBcmdzLCBAYXJncyk7Ci0KLSAgICB3YWl0
Rm9ySFRUUERMb2NrKCkgaWYgJHNob3VsZFdhaXRGb3JIVFRQRDsKLSAgICAkaXNIdHRwZE9wZW4g
PSBvcGVuSFRUUEQoQGFyZ3MpOwotfQotCi1zdWIgb3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVk
KCkKLXsKLSAgICByZXR1cm4gMSBpZiAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuOwotICAgIHJldHVy
biAwIGlmICRmYWlsZWRUb1N0YXJ0V2ViU29ja2V0U2VydmVyOwotCi0gICAgbXkgJHdlYlNvY2tl
dFNlcnZlclBhdGggPSAiL3Vzci9iaW4vcHl0aG9uIjsKLSAgICBteSAkd2ViU29ja2V0UHl0aG9u
UGF0aCA9ICJXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2Nr
ZXQiOwotICAgIG15ICR3ZWJTb2NrZXRIYW5kbGVyRGlyID0gIiR0ZXN0RGlyZWN0b3J5IjsKLSAg
ICBteSAkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIgPSAiJHRlc3REaXJlY3Rvcnkvd2Vic29ja2V0
L3Rlc3RzIjsKLSAgICBteSAkd2ViU29ja2V0SGFuZGxlck1hcEZpbGUgPSAiJHdlYlNvY2tldEhh
bmRsZXJTY2FuRGlyL2hhbmRsZXJfbWFwLnR4dCI7Ci0gICAgbXkgJHNzbENlcnRpZmljYXRlID0g
IiR0ZXN0RGlyZWN0b3J5L2h0dHAvY29uZi93ZWJraXQtaHR0cGQucGVtIjsKLSAgICBteSAkYWJz
VGVzdFJlc3VsdHNEaXJlY3RvcnkgPSByZXNvbHZlQW5kTWFrZVRlc3RSZXN1bHRzRGlyZWN0b3J5
KCk7Ci0gICAgbXkgJGxvZ0ZpbGUgPSAiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5L3B5d2Vic29j
a2V0X2xvZy50eHQiOwotCi0gICAgbXkgQGFyZ3MgPSAoCi0gICAgICAgICJXZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0
YW5kYWxvbmUucHkiLAotICAgICAgICAiLS1zZXJ2ZXItaG9zdCIsICIxMjcuMC4wLjEiLAotICAg
ICAgICAiLS1wb3J0IiwgIiR3ZWJTb2NrZXRQb3J0IiwKLSAgICAgICAgIi0tZG9jdW1lbnQtcm9v
dCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCi0gICAgICAgICItLXNjYW4tZGlyIiwgIiR3ZWJT
b2NrZXRIYW5kbGVyU2NhbkRpciIsCi0gICAgICAgICItLXdlYnNvY2staGFuZGxlcnMtbWFwLWZp
bGUiLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKLSAgICAgICAgIi0tY2dpLXBhdGhzIiwg
Ii93ZWJzb2NrZXQvdGVzdHMiLAotICAgICAgICAiLS1sb2ctZmlsZSIsICIkbG9nRmlsZSIsCi0g
ICAgICAgICItLXN0cmljdCIsCi0gICAgKTsKLSAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBh
bGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotICAgICMgbXkgQGFyZ3NTZWN1cmUgPSAo
Ci0gICAgIyAgICAgIldlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSIsCi0gICAgIyAgICAgIi1wIiwg
IiR3ZWJTb2NrZXRTZWN1cmVQb3J0IiwKLSAgICAjICAgICAiLWQiLCAiJHdlYlNvY2tldEhhbmRs
ZXJEaXIiLAotICAgICMgICAgICItdCIsCi0gICAgIyAgICAgIi1rIiwgIiRzc2xDZXJ0aWZpY2F0
ZSIsCi0gICAgIyAgICAgIi1jIiwgIiRzc2xDZXJ0aWZpY2F0ZSIsCi0gICAgIyApOwotCi0gICAg
JEVOVnsiUFlUSE9OUEFUSCJ9ID0gJHdlYlNvY2tldFB5dGhvblBhdGg7Ci0gICAgJHdlYlNvY2tl
dFNlcnZlclBJRCA9IG9wZW4zKFwqV0VCU09DS0VUU0VSVkVSX0lOLCBcKldFQlNPQ0tFVFNFUlZF
Ul9PVVQsIFwqV0VCU09DS0VUU0VSVkVSX0VSUiwgJHdlYlNvY2tldFNlcnZlclBhdGgsIEBhcmdz
KTsKLSAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlP
cGVuU1NMLgotICAgICMgJHdlYlNvY2tldFNlY3VyZVNlcnZlclBJRCA9IG9wZW4zKFwqV0VCU09D
S0VUU0VDVVJFU0VSVkVSX0lOLCBcKldFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9PVVQsIFwqV0VCU09D
S0VUU0VDVVJFU0VSVkVSX0VSUiwgJHdlYlNvY2tldFNlcnZlclBhdGgsIEBhcmdzU2VjdXJlKTsK
LSAgICAjIG15IEBsaXN0ZW4gPSAoImh0dHA6Ly8xMjcuMC4wLjE6JHdlYlNvY2tldFBvcnQiLCAi
aHR0cHM6Ly8xMjcuMC4wLjE6JHdlYlNvY2tldFNlY3VyZVBvcnQiKTsKLSAgICBteSBAbGlzdGVu
ID0gKCJodHRwOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0Iik7Ci0gICAgZm9yIChteSAkaSA9
IDA7ICRpIDwgQGxpc3RlbjsgJGkrKykgewotICAgICAgICBteSAkcmV0cnlDb3VudCA9IDEwOwot
ICAgICAgICB3aGlsZSAoc3lzdGVtKCIvdXNyL2Jpbi9jdXJsIC1rIC1xIC0tc2lsZW50IC0tc3Rk
ZXJyIC0gLS1vdXRwdXQgL2Rldi9udWxsICRsaXN0ZW5bJGldIikgJiYgJHJldHJ5Q291bnQpIHsK
LSAgICAgICAgICAgIHNsZWVwIDE7Ci0gICAgICAgICAgICAtLSRyZXRyeUNvdW50OwotICAgICAg
ICB9Ci0gICAgICAgIHVubGVzcyAoJHJldHJ5Q291bnQpIHsKLSAgICAgICAgICAgIHByaW50IFNU
REVSUiAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFdlYlNvY2tldFNlcnZlciB0byBzdGFydC5cbiI7
Ci0gICAgICAgICAgICAkZmFpbGVkVG9TdGFydFdlYlNvY2tldFNlcnZlciA9IDE7Ci0gICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgIH0KLQotICAgICRpc1dlYlNvY2tldFNlcnZl
ck9wZW4gPSAxOwotICAgIHJldHVybiAxOwotfQotCi1zdWIgY2xvc2VXZWJTb2NrZXRTZXJ2ZXIo
KQotewotICAgIHJldHVybiBpZiAhJGlzV2ViU29ja2V0U2VydmVyT3BlbjsKLQotICAgIGNsb3Nl
IFdFQlNPQ0tFVFNFUlZFUl9JTjsKLSAgICBjbG9zZSBXRUJTT0NLRVRTRVJWRVJfT1VUOwotICAg
IGNsb3NlIFdFQlNPQ0tFVFNFUlZFUl9FUlI7Ci0gICAga2lsbCAxNSwgJHdlYlNvY2tldFNlcnZl
clBJRDsKLQotICAgICMgd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9y
dCBweU9wZW5TU0wuCi0gICAgIyBjbG9zZSBXRUJTT0NLRVRTRUNVUkVTRVJWRVJfSU47Ci0gICAg
IyBjbG9zZSBXRUJTT0NLRVRTRUNVUkVTRVJWRVJfT1VUOwotICAgICMgY2xvc2UgV0VCU09DS0VU
U0VDVVJFU0VSVkVSX0VSUjsKLSAgICAjIGtpbGwgMTUsICR3ZWJTb2NrZXRTZWN1cmVTZXJ2ZXJQ
SUQ7Ci0KLSAgICAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMDsKLX0KLQotc3ViIGZpbGVOYW1l
V2l0aE51bWJlcigkJCkKLXsKLSAgICBteSAoJGJhc2UsICRudW1iZXIpID0gQF87Ci0gICAgcmV0
dXJuICIkYmFzZSRudW1iZXIiIGlmICgkbnVtYmVyID4gMSk7Ci0gICAgcmV0dXJuICRiYXNlOwot
fQotCi1zdWIgcHJvY2Vzc0lnbm9yZVRlc3RzKCQkKQotewotICAgIG15IEBpZ25vcmVMaXN0ID0g
c3BsaXQoL1xzKixccyovLCBzaGlmdCk7Ci0gICAgbXkgJGxpc3ROYW1lID0gc2hpZnQ7Ci0KLSAg
ICBteSAkZGlzYWJsZWRTdWZmaXggPSAiLWRpc2FibGVkIjsKLQotICAgIG15ICRhZGRJZ25vcmVk
RGlyZWN0b3JpZXMgPSBzdWIgewotICAgICAgICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVk
TG9jYWxEaXJlY3Rvcmllc3tiYXNlbmFtZSgkRmlsZTo6RmluZDo6ZGlyKX07Ci0gICAgICAgICRp
Z25vcmVkRGlyZWN0b3JpZXN7RmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6ZGlyLCAk
dGVzdERpcmVjdG9yeSl9ID0gMTsKLSAgICAgICAgcmV0dXJuIEBfOwotICAgIH07Ci0gICAgZm9y
ZWFjaCBteSAkaXRlbSAoQGlnbm9yZUxpc3QpIHsKLSAgICAgICAgbXkgJHBhdGggPSBjYXRmaWxl
KCR0ZXN0RGlyZWN0b3J5LCAkaXRlbSk7IAotICAgICAgICBpZiAoLWQgJHBhdGgpIHsKLSAgICAg
ICAgICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7JGl0ZW19ID0gMTsKLSAgICAgICAgICAgIGZpbmQo
eyBwcmVwcm9jZXNzID0+ICRhZGRJZ25vcmVkRGlyZWN0b3JpZXMsIHdhbnRlZCA9PiBzdWIge30g
fSwgJHBhdGgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2lmICgtZiAkcGF0aCkgewotICAgICAg
ICAgICAgJGlnbm9yZWRGaWxlc3skaXRlbX0gPSAxOwotICAgICAgICB9IGVsc2lmICgtZiAkcGF0
aCAuICRkaXNhYmxlZFN1ZmZpeCkgewotICAgICAgICAgICAgIyBUaGUgdGVzdCBpcyBkaXNhYmxl
ZCwgc28gZG8gbm90aGluZy4KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ICIk
bGlzdE5hbWUgbGlzdCBjb250YWluZWQgJyRpdGVtJywgYnV0IG5vIGZpbGUgb2YgdGhhdCBuYW1l
IGNvdWxkIGJlIGZvdW5kXG4iOwotICAgICAgICB9Ci0gICAgfQotfQotCi1zdWIgc3RyaXBFeHRl
bnNpb24oJCkKLXsKLSAgICBteSAoJHRlc3QpID0gQF87Ci0KLSAgICAkdGVzdCA9fiBzL1wuW2Et
ekEtWl0rJC8vOwotICAgIHJldHVybiAkdGVzdDsKLX0KLQotc3ViIGlzVGV4dE9ubHlUZXN0KCQp
Ci17Ci0gICAgbXkgKCRhY3R1YWwpID0gQF87Ci0gICAgbXkgJGlzVGV4dDsKLSAgICBpZiAoJGFj
dHVhbCA9fiAvXmxheWVyIGF0L21zKSB7Ci0gICAgICAgICRpc1RleHQgPSAwOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgICRpc1RleHQgPSAxOwotICAgIH0KLSAgICByZXR1cm4gJGlzVGV4dDsKLX0K
LQotc3ViIGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkOyQ7JCkKLXsKLSAgICBteSAoJGJhc2Us
ICRpc1RleHQsICRleHBlY3RlZEV4dGVuc2lvbikgPSBAXzsKLQotICAgIG15IEBkaXJlY3Rvcmll
cyA9IEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeTsKLSAgICBwdXNoIEBkaXJlY3RvcmllcywgbWFw
IHsgY2F0ZGlyKCRwbGF0Zm9ybUJhc2VEaXJlY3RvcnksICRfKSB9IHF3KG1hYy1zbm93bGVvcGFy
ZCBtYWMpIGlmIGlzQ3lnd2luKCk7Ci0gICAgcHVzaCBAZGlyZWN0b3JpZXMsICRleHBlY3RlZERp
cmVjdG9yeTsKLQotICAgICMgSWYgd2UgYWxyZWFkeSBoYXZlIGV4cGVjdGVkIHJlc3VsdHMsIGp1
c3QgcmV0dXJuIHRoZWlyIGxvY2F0aW9uLgotICAgIGZvcmVhY2ggbXkgJGRpcmVjdG9yeSAoQGRp
cmVjdG9yaWVzKSB7Ci0gICAgICAgIHJldHVybiAkZGlyZWN0b3J5IGlmICgtZiAiJGRpcmVjdG9y
eS8kYmFzZS0kZXhwZWN0ZWRUYWcuJGV4cGVjdGVkRXh0ZW5zaW9uIik7Ci0gICAgfQotCi0gICAg
IyBGb3IgY3Jvc3MtcGxhdGZvcm0gdGVzdHMsIHRleHQtb25seSByZXN1bHRzIHNob3VsZCBnbyBp
biB0aGUgY3Jvc3MtcGxhdGZvcm0gZGlyZWN0b3J5LAotICAgICMgd2hpbGUgcmVuZGVyIHRyZWUg
ZHVtcHMgc2hvdWxkIGdvIGluIHRoZSBsZWFzdC1zcGVjaWZpYyBwbGF0Zm9ybSBkaXJlY3Rvcnku
Ci0gICAgcmV0dXJuICRpc1RleHQgPyAkZXhwZWN0ZWREaXJlY3RvcnkgOiAkcGxhdGZvcm1SZXN1
bHRIaWVyYXJjaHlbJCNwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeV07Ci19Ci0KLXN1YiBjb3VudEZp
bmlzaGVkVGVzdCgkJCQkKQotewotICAgIG15ICgkdGVzdCwgJGJhc2UsICRyZXN1bHQsICRpc1Rl
eHQpID0gQF87Ci0KLSAgICBpZiAoKCRjb3VudCArIDEpICUgJHRlc3RzUGVyRHVtcFRvb2wgPT0g
MCB8fCAkY291bnQgPT0gJCN0ZXN0cykgewotICAgICAgICBpZiAoJHNob3VsZENoZWNrTGVha3Mp
IHsKLSAgICAgICAgICAgIG15ICRmaWxlTmFtZTsKLSAgICAgICAgICAgIGlmICgkdGVzdHNQZXJE
dW1wVG9vbCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgJGZpbGVOYW1lID0gIiR0ZXN0UmVzdWx0
c0RpcmVjdG9yeS8kYmFzZS1sZWFrcy50eHQiOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAkZmlsZU5hbWUgPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyIgLiBmaWxlTmFt
ZVdpdGhOdW1iZXIoJGR1bXBUb29sTmFtZSwgJGxlYWtzT3V0cHV0RmlsZU51bWJlcikgLiAiLWxl
YWtzLnR4dCI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBteSAkbGVha0NvdW50ID0gY291
bnRBbmRQcmludExlYWtzKCRkdW1wVG9vbE5hbWUsICRkdW1wVG9vbFBJRCwgJGZpbGVOYW1lKTsK
LSAgICAgICAgICAgICR0b3RhbExlYWtzICs9ICRsZWFrQ291bnQ7Ci0gICAgICAgICAgICAkbGVh
a3NPdXRwdXRGaWxlTnVtYmVyKysgaWYgKCRsZWFrQ291bnQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgY2xvc2VEdW1wVG9vbCgpOwotICAgIH0KLSAgICAKLSAgICAkY291bnQrKzsKLSAgICAkY291
bnRzeyRyZXN1bHR9Kys7Ci0gICAgcHVzaCBAeyR0ZXN0c3skcmVzdWx0fX0sICR0ZXN0OwotfQot
Ci1zdWIgdGVzdENyYXNoZWRPclRpbWVkT3V0KCQkJCQkKQotewotICAgIG15ICgkdGVzdCwgJGJh
c2UsICRkaWRDcmFzaCwgJGFjdHVhbCwgJGVycm9yKSA9IEBfOwotCi0gICAgcHJpbnRGYWlsdXJl
TWVzc2FnZUZvclRlc3QoJHRlc3QsICRkaWRDcmFzaCA/ICJjcmFzaGVkIiA6ICJ0aW1lZCBvdXQi
KTsKLQotICAgIHNhbXBsZUR1bXBUb29sKCkgdW5sZXNzICRkaWRDcmFzaDsKLQotICAgIG15ICRk
aXIgPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKLSAgICAkZGlyID1+IHN8LyhbXi9d
KykkfHwgb3IgZGllICJGYWlsZWQgdG8gZmluZCB0ZXN0IG5hbWUgZnJvbSBiYXNlXG4iOwotICAg
IG1rcGF0aCAkZGlyOwotCi0gICAgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNl
KTsKLQotICAgIGlmIChkZWZpbmVkKCRlcnJvcikgJiYgbGVuZ3RoKCRlcnJvcikpIHsKLSAgICAg
ICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXJyb3JUYWcudHh0
IiwgJGVycm9yKTsKLSAgICB9Ci0KLSAgICByZWNvcmRBY3R1YWxSZXN1bHRzQW5kRGlmZigkYmFz
ZSwgJGFjdHVhbCk7Ci0KLSAgICBraWxsIDksICRkdW1wVG9vbFBJRCB1bmxlc3MgJGRpZENyYXNo
OwotCi0gICAgY2xvc2VEdW1wVG9vbCgpOwotfQotCi1zdWIgcHJpbnRGYWlsdXJlTWVzc2FnZUZv
clRlc3QoJCQpCi17Ci0gICAgbXkgKCR0ZXN0LCAkZGVzY3JpcHRpb24pID0gQF87Ci0KLSAgICB1
bmxlc3MgKCR2ZXJib3NlKSB7Ci0gICAgICAgIHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFy
dDsKLSAgICAgICAgcHJpbnQgIiR0ZXN0IC0+ICI7Ci0gICAgfQotICAgIHByaW50ICIkZGVzY3Jp
cHRpb25cbiI7Ci0gICAgJGF0TGluZVN0YXJ0ID0gMTsKLX0KLQotbXkgJWN5Z3BhdGhzID0gKCk7
Ci0KLXN1YiBvcGVuQ3lncGF0aElmTmVlZGVkKCQpCi17Ci0gICAgbXkgKCRvcHRpb25zKSA9IEBf
OwotCi0gICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dpbigpOwotICAgIHJldHVybiAkY3lncGF0aHN7
JG9wdGlvbnN9IGlmICRjeWdwYXRoc3skb3B0aW9uc30gJiYgJGN5Z3BhdGhzeyRvcHRpb25zfS0+
eyJvcGVuIn07Ci0KLSAgICBsb2NhbCAoKkNZR1BBVEhJTiwgKkNZR1BBVEhPVVQpOwotICAgIG15
ICRwaWQgPSBvcGVuMihcKkNZR1BBVEhJTiwgXCpDWUdQQVRIT1VULCAiY3lncGF0aCAtZiAtICRv
cHRpb25zIik7Ci0gICAgbXkgJGN5Z3BhdGggPSAgewotICAgICAgICAicGlkIiA9PiAkcGlkLAot
ICAgICAgICAiaW4iID0+ICpDWUdQQVRISU4sCi0gICAgICAgICJvdXQiID0+ICpDWUdQQVRIT1VU
LAotICAgICAgICAib3BlbiIgPT4gMQotICAgIH07Ci0KLSAgICAkY3lncGF0aHN7JG9wdGlvbnN9
ID0gJGN5Z3BhdGg7Ci0KLSAgICByZXR1cm4gJGN5Z3BhdGg7Ci19Ci0KLXN1YiBjbG9zZUN5Z3Bh
dGhzKCkKLXsKLSAgICByZXR1cm4gdW5sZXNzIGlzQ3lnd2luKCk7Ci0KLSAgICBmb3JlYWNoIG15
ICRjeWdwYXRoICh2YWx1ZXMoJWN5Z3BhdGhzKSkgewotICAgICAgICBjbG9zZSAkY3lncGF0aC0+
eyJpbiJ9OwotICAgICAgICBjbG9zZSAkY3lncGF0aC0+eyJvdXQifTsKLSAgICAgICAgd2FpdHBp
ZCgkY3lncGF0aC0+eyJwaWQifSwgMCk7Ci0gICAgICAgICRjeWdwYXRoLT57Im9wZW4ifSA9IDA7
Ci0KLSAgICB9Ci19Ci0KLXN1YiBjb252ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkJCkKLXsKLSAgICBt
eSAoJHBhdGgsICRvcHRpb25zKSA9IEBfOwotCi0gICAgIyBjeWdwYXRoIC1mIChhdCBsZWFzdCBp
biBDeWd3aW4gMS43KSBjb252ZXJ0cyBzcGFjZXMgaW50byBuZXdsaW5lcy4gV2UgcmVtb3ZlIHNw
YWNlcyBoZXJlIGFuZAotICAgICMgYWRkIHRoZW0gYmFjayBpbiBhZnRlciBjb252ZXJzaW9uIHRv
IHdvcmsgYXJvdW5kIHRoaXMuCi0gICAgbXkgJHNwYWNlU3Vic3RpdHV0ZSA9ICJfX05PVEFTUEFD
RV9fIjsKLSAgICAkcGF0aCA9fiBzLyAvXFEkc3BhY2VTdWJzdGl0dXRlXEUvZzsKLQotICAgIG15
ICRjeWdwYXRoID0gb3BlbkN5Z3BhdGhJZk5lZWRlZCgkb3B0aW9ucyk7Ci0gICAgbG9jYWwgKmlu
RkggPSAkY3lncGF0aC0+eyJpbiJ9OwotICAgIGxvY2FsICpvdXRGSCA9ICRjeWdwYXRoLT57Im91
dCJ9OwotICAgIHByaW50IG91dEZIICRwYXRoIC4gIlxuIjsKLSAgICBteSAkY29udmVydGVkUGF0
aCA9IDxpbkZIPjsKLSAgICBjaG9tcCgkY29udmVydGVkUGF0aCkgaWYgZGVmaW5lZCAkY29udmVy
dGVkUGF0aDsKLQotICAgICRjb252ZXJ0ZWRQYXRoID1+IHMvXFEkc3BhY2VTdWJzdGl0dXRlXEUv
IC9nOwotICAgIHJldHVybiAkY29udmVydGVkUGF0aDsKLX0KLQotc3ViIHRvV2luZG93c1BhdGgo
JCkKLXsKLSAgICBteSAoJHBhdGgpID0gQF87Ci0gICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dpbigp
OwotCi0gICAgcmV0dXJuIGNvbnZlcnRQYXRoVXNpbmdDeWdwYXRoKCRwYXRoLCAiLXciKTsKLX0K
LQotc3ViIHRvVVJMKCQpCi17Ci0gICAgbXkgKCRwYXRoKSA9IEBfOwotCi0gICAgaWYgKCR1c2VS
ZW1vdGVMaW5rc1RvVGVzdHMpIHsKLSAgICAgICAgbXkgJHJlbGF0aXZlUGF0aCA9IEZpbGU6OlNw
ZWMtPmFiczJyZWwoJHBhdGgsICR0ZXN0RGlyZWN0b3J5KTsKLQotICAgICAgICAjIElmIHRoZSBm
aWxlIGlzIGJlbG93IHRoZSB0ZXN0IGRpcmVjdG9yeSB0aGVuIGNvbnZlcnQgaXQgaW50byBhIGxp
bmsgdG8gdGhlIGZpbGUgaW4gU1ZOCi0gICAgICAgIGlmICgkcmVsYXRpdmVQYXRoICF+IC9eXC5c
LlwvLykgewotICAgICAgICAgICAgbXkgJHJldmlzaW9uID0gc3ZuUmV2aXNpb25Gb3JEaXJlY3Rv
cnkoJHRlc3REaXJlY3RvcnkpOwotICAgICAgICAgICAgbXkgJHN2blBhdGggPSBwYXRoUmVsYXRp
dmVUb1NWTlJlcG9zaXRvcnlSb290Rm9yUGF0aCgkcGF0aCk7Ci0gICAgICAgICAgICByZXR1cm4g
Imh0dHA6Ly90cmFjLndlYmtpdC5vcmcvZXhwb3J0LyRyZXZpc2lvbi8kc3ZuUGF0aCI7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gJHBhdGggdW5sZXNzIGlzQ3lnd2luKCk7Ci0KLSAg
ICByZXR1cm4gImZpbGU6Ly8vIiAuIGNvbnZlcnRQYXRoVXNpbmdDeWdwYXRoKCRwYXRoLCAiLW0i
KTsKLX0KLQotc3ViIHZhbGlkYXRlU2tpcHBlZEFyZygkJDskKQotewotICAgIG15ICgkb3B0aW9u
LCAkdmFsdWUsICR2YWx1ZTIpID0gQF87Ci0gICAgbXkgJXZhbGlkU2tpcHBlZFZhbHVlcyA9IG1h
cCB7ICRfID0+IDEgfSBxdyhkZWZhdWx0IGlnbm9yZSBvbmx5KTsKLSAgICAkdmFsdWUgPSBsYygk
dmFsdWUpOwotICAgIGRpZSAiSW52YWxpZCBhcmd1bWVudCAnIiAuICR2YWx1ZSAuICInIGZvciBv
cHRpb24gJG9wdGlvbiIgdW5sZXNzICR2YWxpZFNraXBwZWRWYWx1ZXN7JHZhbHVlfTsKLSAgICAk
dHJlYXRTa2lwcGVkID0gJHZhbHVlOwotfQotCi1zdWIgaHRtbEZvclJlc3VsdHNTZWN0aW9uKFxA
JCYpCi17Ci0gICAgbXkgKCR0ZXN0cywgJGRlc2NyaXB0aW9uLCAkbGlua0dldHRlcikgPSBAXzsK
LQotICAgIG15IEBodG1sID0gKCk7Ci0gICAgcmV0dXJuIGpvaW4oIlxuIiwgQGh0bWwpIHVubGVz
cyBAeyR0ZXN0c307Ci0KLSAgICBwdXNoIEBodG1sLCAiPHA+JGRlc2NyaXB0aW9uOjwvcD4iOwot
ICAgIHB1c2ggQGh0bWwsICI8dGFibGU+IjsKLSAgICBmb3JlYWNoIG15ICR0ZXN0IChAeyR0ZXN0
c30pIHsKLSAgICAgICAgcHVzaCBAaHRtbCwgIjx0cj4iOwotICAgICAgICBwdXNoIEBodG1sLCAi
PHRkPjxhIGhyZWY9XCIiIC4gdG9VUkwoIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IikgLiAiXCI+JHRl
c3Q8L2E+PC90ZD4iOwotICAgICAgICBmb3JlYWNoIG15ICRsaW5rIChAeyZ7JGxpbmtHZXR0ZXJ9
KCR0ZXN0KX0pIHsKLSAgICAgICAgICAgIHB1c2ggQGh0bWwsICI8dGQ+PGEgaHJlZj1cIiRsaW5r
LT57aHJlZn1cIj4kbGluay0+e3RleHR9PC9hPjwvdGQ+IjsKLSAgICAgICAgfQotICAgICAgICBw
dXNoIEBodG1sLCAiPC90cj4iOwotICAgIH0KLSAgICBwdXNoIEBodG1sLCAiPC90YWJsZT4iOwot
Ci0gICAgcmV0dXJuIGpvaW4oIlxuIiwgQGh0bWwpOwotfQotCi1zdWIgbGlua3NGb3JFeHBlY3Rl
ZEFuZEFjdHVhbFJlc3VsdHMoJCkKLXsKLSAgICBteSAoJGJhc2UpID0gQF87Ci0KLSAgICBteSBA
bGlua3MgPSAoKTsKLQotICAgIHJldHVybiBcQGxpbmtzIHVubGVzcyAtcyAiJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LyRiYXNlLSRkaWZmc1RhZy50eHQiOwotICAgIAotICAgIG15ICRleHBlY3RlZFJl
c3VsdFBhdGggPSAkZXhwZWN0ZWRSZXN1bHRQYXRoc3skYmFzZX07Ci0gICAgbXkgKCRleHBlY3Rl
ZFJlc3VsdEZpbGVOYW1lLCAkZXhwZWN0ZWRSZXN1bHRzRGlyZWN0b3J5LCAkZXhwZWN0ZWRSZXN1
bHRFeHRlbnNpb24pID0gZmlsZXBhcnNlKCRleHBlY3RlZFJlc3VsdFBhdGgsIHFye1wuW14uXSsk
fSk7Ci0KLSAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZXhwZWN0ZWRUYWckZXhw
ZWN0ZWRSZXN1bHRFeHRlbnNpb24iLCB0ZXh0ID0+ICJleHBlY3RlZCIgfTsKLSAgICBwdXNoIEBs
aW5rcywgeyBocmVmID0+ICIkYmFzZS0kYWN0dWFsVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9u
IiwgdGV4dCA9PiAiYWN0dWFsIiB9OwotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNl
LSRkaWZmc1RhZy50eHQiLCB0ZXh0ID0+ICJkaWZmIiB9OwotICAgIHB1c2ggQGxpbmtzLCB7IGhy
ZWYgPT4gIiRiYXNlLSRwcmV0dHlEaWZmVGFnLmh0bWwiLCB0ZXh0ID0+ICJwcmV0dHkgZGlmZiIg
fTsKLQotICAgIHJldHVybiBcQGxpbmtzOwotfQotCi1zdWIgbGlua3NGb3JNaXNtYXRjaFRlc3QK
LXsKLSAgICBteSAoJHRlc3QpID0gQF87Ci0KLSAgICBteSBAbGlua3MgPSAoKTsKLQotICAgIG15
ICRiYXNlID0gc3RyaXBFeHRlbnNpb24oJHRlc3QpOwotCi0gICAgcHVzaCBAbGlua3MsIEB7bGlu
a3NGb3JFeHBlY3RlZEFuZEFjdHVhbFJlc3VsdHMoJGJhc2UpfTsKLSAgICByZXR1cm4gXEBsaW5r
cyB1bmxlc3MgJHBpeGVsVGVzdHMgJiYgJGltYWdlc1ByZXNlbnR7JGJhc2V9OwotCi0gICAgcHVz
aCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIsIHRleHQgPT4gImV4
cGVjdGVkIGltYWdlIiB9OwotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRkaWZm
c1RhZy5odG1sIiwgdGV4dCA9PiAiaW1hZ2UgZGlmZnMiIH07Ci0gICAgcHVzaCBAbGlua3MsIHsg
aHJlZiA9PiAiJGJhc2UtJGRpZmZzVGFnLnBuZyIsIHRleHQgPT4gIiRpbWFnZURpZmZlcmVuY2Vz
eyRiYXNlfSUiIH07Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQotc3ViIGxpbmtzRm9yRXJy
b3JUZXN0Ci17Ci0gICAgbXkgKCR0ZXN0KSA9IEBfOwotCi0gICAgbXkgQGxpbmtzID0gKCk7Ci0K
LSAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKLQotICAgIHB1c2ggQGxpbmtz
LCBAe2xpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKX07Ci0gICAgcHVzaCBA
bGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGVycm9yVGFnLnR4dCIsIHRleHQgPT4gInN0ZGVyciIg
fTsKLQotICAgIHJldHVybiBcQGxpbmtzOwotfQotCi1zdWIgbGlua3NGb3JOZXdUZXN0Ci17Ci0g
ICAgbXkgKCR0ZXN0KSA9IEBfOwotCi0gICAgbXkgQGxpbmtzID0gKCk7Ci0KLSAgICBteSAkYmFz
ZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKLQotICAgIG15ICRleHBlY3RlZFJlc3VsdFBhdGgg
PSAkZXhwZWN0ZWRSZXN1bHRQYXRoc3skYmFzZX07Ci0gICAgbXkgKCRleHBlY3RlZFJlc3VsdEZp
bGVOYW1lLCAkZXhwZWN0ZWRSZXN1bHRzRGlyZWN0b3J5LCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNp
b24pID0gZmlsZXBhcnNlKCRleHBlY3RlZFJlc3VsdFBhdGgsIHFye1wuW14uXSskfSk7Ci0KLSAg
ICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kYWN0dWFsVGFnJGV4cGVjdGVkUmVzdWx0
RXh0ZW5zaW9uIiwgdGV4dCA9PiAicmVzdWx0IiB9OwotICAgIGlmICgkcGl4ZWxUZXN0cyAmJiAk
aW1hZ2VzUHJlc2VudHskYmFzZX0pIHsKLSAgICAgICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAi
JGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIsIHRleHQgPT4gImltYWdlIiB9OwotICAgIH0KLQotICAg
IHJldHVybiBcQGxpbmtzOwotfQotCi1zdWIgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRz
KCQpCi17Ci0gICAgbXkgKCRiYXNlKSA9IEBfOwotCi0gICAgdW5saW5rICIkdGVzdFJlc3VsdHNE
aXJlY3RvcnkvJGJhc2UtJGFjdHVhbFRhZy50eHQiOwotICAgIHVubGluayAiJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LyRiYXNlLSRkaWZmc1RhZy50eHQiOwotICAgIHVubGluayAiJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LyRiYXNlLSRlcnJvclRhZy50eHQiOwotfQotCi1zdWIgcmVjb3JkQWN0dWFsUmVz
dWx0c0FuZERpZmYoJCQpCi17Ci0gICAgbXkgKCRiYXNlLCAkYWN0dWFsUmVzdWx0cykgPSBAXzsK
LQotICAgIHJldHVybiB1bmxlc3MgZGVmaW5lZCgkYWN0dWFsUmVzdWx0cykgJiYgbGVuZ3RoKCRh
Y3R1YWxSZXN1bHRzKTsKLQotICAgIG15ICRleHBlY3RlZFJlc3VsdFBhdGggPSAkZXhwZWN0ZWRS
ZXN1bHRQYXRoc3skYmFzZX07Ci0gICAgbXkgKCRleHBlY3RlZFJlc3VsdEZpbGVOYW1lTWludXNF
eHRlbnNpb24sICRleHBlY3RlZFJlc3VsdERpcmVjdG9yeVBhdGgsICRleHBlY3RlZFJlc3VsdEV4
dGVuc2lvbikgPSBmaWxlcGFyc2UoJGV4cGVjdGVkUmVzdWx0UGF0aCwgcXJ7XC5bXi5dKyR9KTsK
LSAgICBteSAkYWN0dWFsUmVzdWx0c1BhdGggPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNl
LSRhY3R1YWxUYWckZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24iOwotICAgIG15ICRjb3BpZWRFeHBl
Y3RlZFJlc3VsdHNQYXRoID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXhwZWN0ZWRU
YWckZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24iOwotCi0gICAgbWtwYXRoKGRpcm5hbWUoJGFjdHVh
bFJlc3VsdHNQYXRoKSk7Ci0gICAgd3JpdGVUb0ZpbGUoIiRhY3R1YWxSZXN1bHRzUGF0aCIsICRh
Y3R1YWxSZXN1bHRzKTsKLQotICAgIGlmICgtZiAkZXhwZWN0ZWRSZXN1bHRQYXRoKSB7Ci0gICAg
ICAgIGNvcHkoIiRleHBlY3RlZFJlc3VsdFBhdGgiLCAiJGNvcGllZEV4cGVjdGVkUmVzdWx0c1Bh
dGgiKTsKLSAgICB9IGVsc2UgewotICAgICAgICBvcGVuIEVNUFRZLCAiPiRjb3BpZWRFeHBlY3Rl
ZFJlc3VsdHNQYXRoIjsKLSAgICAgICAgY2xvc2UgRU1QVFk7Ci0gICAgfQotCi0gICAgbXkgJGRp
ZmZPdXB1dEJhc2VQYXRoID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZSI7Ci0gICAgbXkg
JGRpZmZPdXRwdXRQYXRoID0gIiRkaWZmT3VwdXRCYXNlUGF0aC0kZGlmZnNUYWcudHh0IjsKLSAg
ICBzeXN0ZW0gImRpZmYgLXUgXCIkY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0aFwiIFwiJGFjdHVh
bFJlc3VsdHNQYXRoXCIgPiBcIiRkaWZmT3V0cHV0UGF0aFwiIjsKLQotICAgIG15ICRwcmV0dHlE
aWZmT3V0cHV0UGF0aCA9ICIkZGlmZk91cHV0QmFzZVBhdGgtJHByZXR0eURpZmZUYWcuaHRtbCI7
Ci0gICAgbXkgJHByZXR0eVBhdGNoUGF0aCA9ICJCdWdzU2l0ZS9QcmV0dHlQYXRjaC8iOwotICAg
IG15ICRwcmV0dGlmeVBhdGggPSAiJHByZXR0eVBhdGNoUGF0aC9wcmV0dGlmeS5yYiI7Ci0gICAg
c3lzdGVtICJydWJ5IC1JIFwiJHByZXR0eVBhdGNoUGF0aFwiIFwiJHByZXR0aWZ5UGF0aFwiIFwi
JGRpZmZPdXRwdXRQYXRoXCIgPiBcIiRwcmV0dHlEaWZmT3V0cHV0UGF0aFwiIjsKLX0KLQotc3Vi
IGJ1aWxkUGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkoKQotewotICAgIG1rcGF0aCgkcGxhdGZvcm1U
ZXN0RGlyZWN0b3J5KSBpZiAoJHBsYXRmb3JtIGVxICJ1bmRlZmluZWQiICYmICEtZCAiJHBsYXRm
b3JtVGVzdERpcmVjdG9yeSIpOwotCi0gICAgbXkgQHBsYXRmb3JtczsKLSAgICBpZiAoJHBsYXRm
b3JtID1+IC9ebWFjLS8pIHsKLSAgICAgICAgbXkgJGk7Ci0gICAgICAgIGZvciAoJGkgPSAwOyAk
aSA8IEBtYWNQbGF0Zm9ybXM7ICRpKyspIHsKLSAgICAgICAgICAgIGxhc3QgaWYgJG1hY1BsYXRm
b3Jtc1skaV0gZXEgJHBsYXRmb3JtOwotICAgICAgICB9Ci0gICAgICAgIGZvciAoOyAkaSA8IEBt
YWNQbGF0Zm9ybXM7ICRpKyspIHsKLSAgICAgICAgICAgIHB1c2ggQHBsYXRmb3JtcywgJG1hY1Bs
YXRmb3Jtc1skaV07Ci0gICAgICAgIH0KLSAgICB9IGVsc2lmICgkcGxhdGZvcm0gPX4gL15xdC0v
KSB7Ci0gICAgICAgIHB1c2ggQHBsYXRmb3JtcywgJHBsYXRmb3JtOwotICAgICAgICBwdXNoIEBw
bGF0Zm9ybXMsICJxdCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQHBsYXRmb3JtcyA9ICRwbGF0
Zm9ybTsKLSAgICB9Ci0KLSAgICBteSBAaGllcmFyY2h5OwotICAgIGZvciAobXkgJGkgPSAwOyAk
aSA8IEBwbGF0Zm9ybXM7ICRpKyspIHsKLSAgICAgICAgbXkgJHNjb3BlZCA9IGNhdGRpcigkcGxh
dGZvcm1CYXNlRGlyZWN0b3J5LCAkcGxhdGZvcm1zWyRpXSk7Ci0gICAgICAgIHB1c2goQGhpZXJh
cmNoeSwgJHNjb3BlZCkgaWYgKC1kICRzY29wZWQpOwotICAgIH0KLQotICAgIHJldHVybiBAaGll
cmFyY2h5OwotfQotCi1zdWIgYnVpbGRQbGF0Zm9ybVRlc3RIaWVyYXJjaHkoQCkKLXsKLSAgICBt
eSAoQHBsYXRmb3JtSGllcmFyY2h5KSA9IEBfOwotICAgIHJldHVybiBAcGxhdGZvcm1IaWVyYXJj
aHkgaWYgKEBwbGF0Zm9ybUhpZXJhcmNoeSA8IDIpOwotCi0gICAgcmV0dXJuICgkcGxhdGZvcm1I
aWVyYXJjaHlbMF0sICRwbGF0Zm9ybUhpZXJhcmNoeVskI3BsYXRmb3JtSGllcmFyY2h5XSk7Ci19
Ci0KLXN1YiBlcGlsb2d1ZXNBbmRQcm9sb2d1ZXMoJCQpCi17Ci0gICAgbXkgKCRsYXN0RGlyZWN0
b3J5LCAkZGlyZWN0b3J5KSA9IEBfOwotICAgIG15IEBsYXN0Q29tcG9uZW50cyA9IHNwbGl0KCcv
JywgJGxhc3REaXJlY3RvcnkpOwotICAgIG15IEBjb21wb25lbnRzID0gc3BsaXQoJy8nLCAkZGly
ZWN0b3J5KTsKLQotICAgIHdoaWxlIChAbGFzdENvbXBvbmVudHMpIHsKLSAgICAgICAgaWYgKCFk
ZWZpbmVkKCRjb21wb25lbnRzWzBdKSB8fCAkbGFzdENvbXBvbmVudHNbMF0gbmUgJGNvbXBvbmVu
dHNbMF0pIHsKLSAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAgIH0KLSAgICAgICAgc2hpZnQgQGNv
bXBvbmVudHM7Ci0gICAgICAgIHNoaWZ0IEBsYXN0Q29tcG9uZW50czsKLSAgICB9Ci0KLSAgICBt
eSBAcmVzdWx0OwotICAgIG15ICRsZWF2aW5nID0gJGxhc3REaXJlY3Rvcnk7Ci0gICAgZm9yZWFj
aCAoQGxhc3RDb21wb25lbnRzKSB7Ci0gICAgICAgIG15ICRlcGlsb2d1ZSA9ICRsZWF2aW5nIC4g
Ii9yZXNvdXJjZXMvcnVuLXdlYmtpdC10ZXN0cy1lcGlsb2d1ZS5odG1sIjsKLSAgICAgICAgZm9y
ZWFjaCAoQHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5KSB7Ci0gICAgICAgICAgICBwdXNoIEByZXN1
bHQsIGNhdGRpcigkXywgJGVwaWxvZ3VlKSBpZiAoc3RhdChjYXRkaXIoJF8sICRlcGlsb2d1ZSkp
KTsKLSAgICAgICAgfQotICAgICAgICBwdXNoIEByZXN1bHQsIGNhdGRpcigkdGVzdERpcmVjdG9y
eSwgJGVwaWxvZ3VlKSBpZiAoc3RhdChjYXRkaXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1ZSkp
KTsKLSAgICAgICAgJGxlYXZpbmcgPX4gc3woXlx8LylbXi9dKyR8fDsKLSAgICB9Ci0KLSAgICBt
eSAkZW50ZXJpbmcgPSAkbGVhdmluZzsKLSAgICBmb3JlYWNoIChAY29tcG9uZW50cykgewotICAg
ICAgICAkZW50ZXJpbmcgLj0gJy8nIC4gJF87Ci0gICAgICAgIG15ICRwcm9sb2d1ZSA9ICRlbnRl
cmluZyAuICIvcmVzb3VyY2VzL3J1bi13ZWJraXQtdGVzdHMtcHJvbG9ndWUuaHRtbCI7Ci0gICAg
ICAgIHB1c2ggQHJlc3VsdCwgY2F0ZGlyKCR0ZXN0RGlyZWN0b3J5LCAkcHJvbG9ndWUpIGlmIChz
dGF0KGNhdGRpcigkdGVzdERpcmVjdG9yeSwgJHByb2xvZ3VlKSkpOwotICAgICAgICBmb3JlYWNo
IChyZXZlcnNlIEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSkgewotICAgICAgICAgICAgcHVzaCBA
cmVzdWx0LCBjYXRkaXIoJF8sICRwcm9sb2d1ZSkgaWYgKHN0YXQoY2F0ZGlyKCRfLCAkcHJvbG9n
dWUpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIEByZXN1bHQ7Ci19Ci0gICAgCi1z
dWIgcGFyc2VMZWFrc2FuZFByaW50VW5pcXVlTGVha3MoKQotewotICAgIHJldHVybiB1bmxlc3Mg
QGxlYWtzRmlsZW5hbWVzOwotICAgICAKLSAgICBteSAkbWVyZ2VkRmlsZW5hbWVzID0gam9pbiAi
ICIsIEBsZWFrc0ZpbGVuYW1lczsKLSAgICBteSAkcGFyc2VNYWxsb2NIaXN0b3J5VG9vbCA9IHNv
dXJjZURpcigpIC4gIi9XZWJLaXRUb29scy9TY3JpcHRzL3BhcnNlLW1hbGxvYy1oaXN0b3J5IjsK
LSAgICAKLSAgICBvcGVuIE1FUkdFRF9MRUFLUywgImNhdCAkbWVyZ2VkRmlsZW5hbWVzIHwgJHBh
cnNlTWFsbG9jSGlzdG9yeVRvb2wgLS1tZXJnZS1kZXB0aCAkbWVyZ2VEZXB0aCAgLSB8IiA7Ci0g
ICAgbXkgQGxlYWtMaW5lcyA9IDxNRVJHRURfTEVBS1M+OwotICAgIGNsb3NlIE1FUkdFRF9MRUFL
UzsKLSAgICAKLSAgICBteSAkdW5pcXVlTGVha0NvdW50ID0gMDsKLSAgICBteSAkdG90YWxCeXRl
czsKLSAgICBmb3JlYWNoIG15ICRsaW5lIChAbGVha0xpbmVzKSB7Ci0gICAgICAgICsrJHVuaXF1
ZUxlYWtDb3VudCBpZiAoJGxpbmUgPX4gL14oXGQqKVxzY2FsbHMvKTsKLSAgICAgICAgJHRvdGFs
Qnl0ZXMgPSAkMSBpZiAkbGluZSA9fiAvXnRvdGFsXDpccyguKilcc1woLzsKLSAgICB9Ci0gICAg
Ci0gICAgcHJpbnQgIlxuV0FSTklORzogJHRvdGFsTGVha3MgdG90YWwgbGVha3MgZm91bmQgZm9y
IGEgdG90YWwgb2YgJHRvdGFsQnl0ZXMhXG4iOwotICAgIHByaW50ICJXQVJOSU5HOiAkdW5pcXVl
TGVha0NvdW50IHVuaXF1ZSBsZWFrcyBmb3VuZCFcbiI7Ci0gICAgcHJpbnQgIlNlZSBhYm92ZSBm
b3IgaW5kaXZpZHVhbCBsZWFrcyByZXN1bHRzLlxuIiBpZiAoJGxlYWtzT3V0cHV0RmlsZU51bWJl
ciA+IDIpOwotICAgIAotfQotCi1zdWIgZXh0ZW5zaW9uRm9yTWltZVR5cGUoJCkKLXsKLSAgICBt
eSAoJG1pbWVUeXBlKSA9IEBfOwotCi0gICAgaWYgKCRtaW1lVHlwZSBlcSAiYXBwbGljYXRpb24v
eC13ZWJhcmNoaXZlIikgewotICAgICAgICByZXR1cm4gIndlYmFyY2hpdmUiOwotICAgIH0gZWxz
aWYgKCRtaW1lVHlwZSBlcSAiYXBwbGljYXRpb24vcGRmIikgewotICAgICAgICByZXR1cm4gInBk
ZiI7Ci0gICAgfQotICAgIHJldHVybiAidHh0IjsKLX0KLQotIyBSZWFkIHVwIHRvIHRoZSBmaXJz
dCAjRU9GICh0aGUgY29udGVudCBibG9jayBvZiB0aGUgdGVzdCksIG9yIHVudGlsIGRldGVjdGlu
ZyBjcmFzaGVzIG9yIHRpbWVvdXRzLgotc3ViIHJlYWRGcm9tRHVtcFRvb2xXaXRoVGltZXIoKiop
Ci17Ci0gICAgbXkgKCRmaEluLCAkZmhFcnJvcikgPSBAXzsKLQotICAgIHNldEZpbGVIYW5kbGVO
b25CbG9ja2luZygkZmhJbiwgMSk7Ci0gICAgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEVy
cm9yLCAxKTsKLQotICAgIG15ICRtYXhpbXVtU2Vjb25kc1dpdGhvdXRPdXRwdXQgPSAkdGltZW91
dFNlY29uZHM7Ci0gICAgJG1heGltdW1TZWNvbmRzV2l0aG91dE91dHB1dCAqPSAxMCBpZiAkZ3Vh
cmRNYWxsb2M7Ci0gICAgbXkgJG1pY3Jvc2Vjb25kc1RvV2FpdEJlZm9yZVJlYWRpbmdBZ2FpbiA9
IDEwMDA7Ci0KLSAgICBteSAkdGltZU9mTGFzdFN1Y2Nlc3NmdWxSZWFkID0gdGltZTsKLQotICAg
IG15IEBvdXRwdXQgPSAoKTsKLSAgICBteSBAZXJyb3IgPSAoKTsKLSAgICBteSAkc3RhdHVzID0g
InN1Y2Nlc3MiOwotICAgIG15ICRtaW1lVHlwZSA9ICJ0ZXh0L3BsYWluIjsKLSAgICAjIFdlIGRv
bid0IGhhdmUgYSB2ZXJ5IGdvb2Qgd2F5IHRvIGtub3cgd2hlbiB0aGUgImhlYWRlcnMiIHN0b3AK
LSAgICAjIGFuZCB0aGUgY29udGVudCBzdGFydHMsIHNvIHdlIHVzZSB0aGlzIGFzIGEgaGFjazoK
LSAgICBteSAkaGF2ZVNlZW5Db250ZW50VHlwZSA9IDA7Ci0gICAgbXkgJGhhdmVTZWVuRW9mSW4g
PSAwOwotICAgIG15ICRoYXZlU2VlbkVvZkVycm9yID0gMDsKLQotICAgIHdoaWxlICgxKSB7Ci0g
ICAgICAgIGlmICh0aW1lIC0gJHRpbWVPZkxhc3RTdWNjZXNzZnVsUmVhZCA+ICRtYXhpbXVtU2Vj
b25kc1dpdGhvdXRPdXRwdXQpIHsKLSAgICAgICAgICAgICRzdGF0dXMgPSBkdW1wVG9vbERpZENy
YXNoKCkgPyAiY3Jhc2hlZCIgOiAidGltZWRPdXQiOwotICAgICAgICAgICAgbGFzdDsKLSAgICAg
ICAgfQotCi0gICAgICAgICMgT25jZSB3ZSd2ZSBzZWVuIHRoZSBFT0YsIHdlIG11c3Qgbm90IHJl
YWQgYW55bW9yZS4KLSAgICAgICAgbXkgJGxpbmVJbiA9IHJlYWRsaW5lKCRmaEluKSB1bmxlc3Mg
JGhhdmVTZWVuRW9mSW47Ci0gICAgICAgIG15ICRsaW5lRXJyb3IgPSByZWFkbGluZSgkZmhFcnJv
cikgdW5sZXNzICRoYXZlU2VlbkVvZkVycm9yOwotICAgICAgICBpZiAoIWRlZmluZWQoJGxpbmVJ
bikgJiYgIWRlZmluZWQoJGxpbmVFcnJvcikpIHsKLSAgICAgICAgICAgIGxhc3QgaWYgKCRoYXZl
U2VlbkVvZkluICYmICRoYXZlU2VlbkVvZkVycm9yKTsKLQotICAgICAgICAgICAgaWYgKCQhICE9
IEVBR0FJTikgewotICAgICAgICAgICAgICAgICRzdGF0dXMgPSAiY3Jhc2hlZCI7Ci0gICAgICAg
ICAgICAgICAgbGFzdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgIyBObyBkYXRhIHJl
YWR5Ci0gICAgICAgICAgICB1c2xlZXAoJG1pY3Jvc2Vjb25kc1RvV2FpdEJlZm9yZVJlYWRpbmdB
Z2Fpbik7Ci0gICAgICAgICAgICBuZXh0OwotICAgICAgICB9Ci0KLSAgICAgICAgJHRpbWVPZkxh
c3RTdWNjZXNzZnVsUmVhZCA9IHRpbWU7Ci0KLSAgICAgICAgaWYgKGRlZmluZWQoJGxpbmVJbikp
IHsKLSAgICAgICAgICAgIGlmICghJGhhdmVTZWVuQ29udGVudFR5cGUgJiYgJGxpbmVJbiA9fiAv
XkNvbnRlbnQtVHlwZTogKFxTKykkLykgewotICAgICAgICAgICAgICAgICRtaW1lVHlwZSA9ICQx
OwotICAgICAgICAgICAgICAgICRoYXZlU2VlbkNvbnRlbnRUeXBlID0gMTsKLSAgICAgICAgICAg
IH0gZWxzaWYgKCRsaW5lSW4gPX4gLyNFT0YvKSB7Ci0gICAgICAgICAgICAgICAgJGhhdmVTZWVu
RW9mSW4gPSAxOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoIEBv
dXRwdXQsICRsaW5lSW47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRl
ZmluZWQoJGxpbmVFcnJvcikpIHsKLSAgICAgICAgICAgIGlmICgkbGluZUVycm9yID1+IC8jRU9G
LykgewotICAgICAgICAgICAgICAgICRoYXZlU2VlbkVvZkVycm9yID0gMTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaCBAZXJyb3IsICRsaW5lRXJyb3I7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tp
bmcoJGZoSW4sIDApOwotICAgIHNldEZpbGVIYW5kbGVOb25CbG9ja2luZygkZmhFcnJvciwgMCk7
Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgb3V0cHV0ID0+IGpvaW4oIiIsIEBvdXRwdXQpLAotICAg
ICAgICBlcnJvciA9PiBqb2luKCIiLCBAZXJyb3IpLAotICAgICAgICBzdGF0dXMgPT4gJHN0YXR1
cywKLSAgICAgICAgbWltZVR5cGUgPT4gJG1pbWVUeXBlLAotICAgICAgICBleHRlbnNpb24gPT4g
ZXh0ZW5zaW9uRm9yTWltZVR5cGUoJG1pbWVUeXBlKQotICAgIH07Ci19Ci0KLXN1YiBzZXRGaWxl
SGFuZGxlTm9uQmxvY2tpbmcoKiQpCi17Ci0gICAgbXkgKCRmaCwgJG5vbkJsb2NraW5nKSA9IEBf
OwotCi0gICAgbXkgJGZsYWdzID0gZmNudGwoJGZoLCBGX0dFVEZMLCAwKSBvciBkaWUgIkNvdWxk
bid0IGdldCBmaWxlaGFuZGxlIGZsYWdzIjsKLQotICAgIGlmICgkbm9uQmxvY2tpbmcpIHsKLSAg
ICAgICAgJGZsYWdzIHw9IE9fTk9OQkxPQ0s7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgJGZsYWdz
ICY9IH5PX05PTkJMT0NLOwotICAgIH0KLQotICAgIGZjbnRsKCRmaCwgRl9TRVRGTCwgJGZsYWdz
KSBvciBkaWUgIkNvdWxkbid0IHNldCBmaWxlaGFuZGxlIGZsYWdzIjsKLQotICAgIHJldHVybiAx
OwotfQotCi1zdWIgc2FtcGxlRHVtcFRvb2woKQotewotICAgIHJldHVybiB1bmxlc3MgaXNBcHBs
ZU1hY1dlYktpdCgpOwotICAgIHJldHVybiB1bmxlc3MgJHJ1blNhbXBsZTsKLQotICAgIG15ICRv
dXRwdXREaXJlY3RvcnkgPSAiJEVOVntIT01FfS9MaWJyYXJ5L0xvZ3MvRHVtcFJlbmRlclRyZWUi
OwotICAgIC1kICRvdXRwdXREaXJlY3Rvcnkgb3IgbWtkaXIgJG91dHB1dERpcmVjdG9yeTsKLQot
ICAgIG15ICRvdXRwdXRGaWxlID0gIiRvdXRwdXREaXJlY3RvcnkvSGFuZ1JlcG9ydC50eHQiOwot
ICAgIHN5c3RlbSAiL3Vzci9iaW4vc2FtcGxlIiwgJGR1bXBUb29sUElELCBxdygxMCAxMCAtZmls
ZSksICRvdXRwdXRGaWxlOwotfQotCi1zdWIgc3RyaXBNZXRyaWNzKCQkKQotewotICAgIG15ICgk
YWN0dWFsLCAkZXhwZWN0ZWQpID0gQF87Ci0KLSAgICBmb3JlYWNoIG15ICRyZXN1bHQgKCRhY3R1
YWwsICRleHBlY3RlZCkgewotICAgICAgICAkcmVzdWx0ID1+IHMvYXQgXCgtP1swLTldKywtP1sw
LTldK1wpICovL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9zaXplIC0/WzAtOV0reC0/WzAtOV0r
ICovL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy90ZXh0IHJ1biB3aWR0aCAtP1swLTldKzogLy9n
OwotICAgICAgICAkcmVzdWx0ID1+IHMvdGV4dCBydW4gd2lkdGggLT9bMC05XSsgW2EtekEtWiBd
KzogLy9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVyQnV0dG9uIHtCVVRUT059IC4qL1Jl
bmRlckJ1dHRvbiB7QlVUVE9OfS9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVySW1hZ2Ug
e0lOUFVUfSAuKi9SZW5kZXJJbWFnZSB7SU5QVVR9L2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9S
ZW5kZXJCbG9jayB7SU5QVVR9IC4qL1JlbmRlckJsb2NrIHtJTlBVVH0vZzsKLSAgICAgICAgJHJl
c3VsdCA9fiBzL1JlbmRlclRleHRDb250cm9sIHtJTlBVVH0gLiovUmVuZGVyVGV4dENvbnRyb2wg
e0lOUFVUfS9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvXChbMC05XStweC9weC9nOwotICAgICAg
ICAkcmVzdWx0ID1+IHMvICoiICpcbiArIiAqLyAvZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzLyIg
KyQvIi9nOwotCi0gICAgICAgICRyZXN1bHQgPX4gcy8tIC8tL2c7Ci0gICAgICAgICRyZXN1bHQg
PX4gcy9cbiggKikiXHMrL1xuJDEiL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9ccysiXG4vIlxu
L2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9zY3JvbGxXaWR0aCBbMC05XSsvc2Nyb2xsV2lkdGgv
ZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL3Njcm9sbEhlaWdodCBbMC05XSsvc2Nyb2xsSGVpZ2h0
L2c7Ci0gICAgfQotCi0gICAgcmV0dXJuICgkYWN0dWFsLCAkZXhwZWN0ZWQpOwotfQotCi1zdWIg
ZmlsZVNob3VsZEJlSWdub3JlZAotewotICAgIG15ICgkZmlsZVBhdGgpID0gQF87Ci0gICAgZm9y
ZWFjaCBteSAkaWdub3JlZERpciAoa2V5cyAlaWdub3JlZERpcmVjdG9yaWVzKSB7Ci0gICAgICAg
IGlmICgkZmlsZVBhdGggPX4gbS9eJGlnbm9yZWREaXIvKSB7Ci0gICAgICAgICAgICByZXR1cm4g
MTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotc3ViIHJlYWRTa2lwcGVk
RmlsZXMoJCkKLXsKLSAgICBteSAoJGNvbnN0cmFpbnRQYXRoKSA9IEBfOwotCi0gICAgZm9yZWFj
aCBteSAkbGV2ZWwgKEBwbGF0Zm9ybVRlc3RIaWVyYXJjaHkpIHsKLSAgICAgICAgaWYgKG9wZW4g
U0tJUFBFRCwgIjwiLCAiJGxldmVsL1NraXBwZWQiKSB7Ci0gICAgICAgICAgICBpZiAoJHZlcmJv
c2UpIHsKLSAgICAgICAgICAgICAgICBteSAoJGRpciwgJG5hbWUpID0gc3BsaXRwYXRoKCRsZXZl
bCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQgIlNraXBwZWQgdGVzdHMgaW4gJG5hbWU6XG4iOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB3aGlsZSAoPFNLSVBQRUQ+KSB7Ci0gICAgICAg
ICAgICAgICAgbXkgJHNraXBwZWQgPSAkXzsKLSAgICAgICAgICAgICAgICBjaG9tcCAkc2tpcHBl
ZDsKLSAgICAgICAgICAgICAgICAkc2tpcHBlZCA9fiBzL15bIFxuXHJdKy8vOwotICAgICAgICAg
ICAgICAgICRza2lwcGVkID1+IHMvWyBcblxyXSskLy87Ci0gICAgICAgICAgICAgICAgaWYgKCRz
a2lwcGVkICYmICRza2lwcGVkICF+IC9eIy8pIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRz
a2lwcGVkT25seSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlU2hvdWxkQmVJ
Z25vcmVkKCRza2lwcGVkKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJGNv
bnN0cmFpbnRQYXRoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWx3YXlz
IGFkZCAkc2tpcHBlZCBzaW5jZSBubyBjb25zdHJhaW50IHBhdGggd2FzIHNwZWNpZmllZCBvbiB0
aGUgY29tbWFuZCBsaW5lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBB
UkdWLCAkc2tpcHBlZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHNr
aXBwZWQgPX4gL14oJGNvbnN0cmFpbnRQYXRoKS8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIyBBZGQgJHNraXBwZWQgb25seSBpZiBpdCBtYXRjaGVzIHRoZSBjdXJyZW50IHBh
dGggY29uc3RyYWludCwgZS5nLiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAi
LS1za2lwcGVkPW9ubHkgZGlyMSIgd2l0aCAiZGlyMS9maWxlMS5odG1sIiBvbiB0aGUgc2tpcHBl
ZCBsaXN0LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tp
cHBlZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvbnN0cmFpbnRQ
YXRoID1+IC9eKCRza2lwcGVkKS8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBBZGQgY3VycmVudCBwYXRoIGNvbnN0cmFpbnQgaWYgaXQgaXMgbW9yZSBzcGVjaWZpYyB0aGFu
IHRoZSBza2lwIGxpc3QgZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg
ZS5nLiwgIi0tc2tpcHBlZD1vbmx5IGRpcjEvZGlyMi9kaXIzIiB3aXRoICJkaXIxIiBvbiB0aGUg
c2tpcHBlZCBsaXN0LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdW
LCAkY29uc3RyYWludFBhdGgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tpcHBlZFxuIjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkdmVyYm9zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICIg
ICAgJHNraXBwZWRcbiI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBwcm9jZXNzSWdub3JlVGVzdHMoJHNraXBwZWQsICJTa2lwcGVkIik7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBjbG9zZSBTS0lQUEVEOwotICAgICAgICB9Ci0gICAgfQotfQotCi1teSBAdGVzdHNG
b3VuZDsKLQotc3ViIGRpcmVjdG9yeUZpbHRlcgotewotICAgIHJldHVybiAoKSBpZiBleGlzdHMg
JGlnbm9yZWRMb2NhbERpcmVjdG9yaWVze2Jhc2VuYW1lKCRGaWxlOjpGaW5kOjpkaXIpfTsKLSAg
ICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVkRGlyZWN0b3JpZXN7RmlsZTo6U3BlYy0+YWJz
MnJlbCgkRmlsZTo6RmluZDo6ZGlyLCAkdGVzdERpcmVjdG9yeSl9OwotICAgIHJldHVybiBAXzsK
LX0KLQotc3ViIGZpbGVGaWx0ZXIKLXsKLSAgICBteSAkZmlsZW5hbWUgPSAkXzsKLSAgICBpZiAo
JGZpbGVuYW1lID1+IC9cLihbXi5dKykkLykgewotICAgICAgICBpZiAoZXhpc3RzICRzdXBwb3J0
ZWRGaWxlRXh0ZW5zaW9uc3skMX0pIHsKLSAgICAgICAgICAgIG15ICRwYXRoID0gRmlsZTo6U3Bl
Yy0+YWJzMnJlbChjYXRmaWxlKCRGaWxlOjpGaW5kOjpkaXIsICRmaWxlbmFtZSksICR0ZXN0RGly
ZWN0b3J5KTsKLSAgICAgICAgICAgIHB1c2ggQHRlc3RzRm91bmQsICRwYXRoIGlmICFleGlzdHMg
JGlnbm9yZWRGaWxlc3skcGF0aH07Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN1YiBmaW5kVGVz
dHNUb1J1bgotewotICAgIG15IEB0ZXN0c1RvUnVuID0gKCk7Ci0KLSAgICBmb3IgbXkgJHRlc3Qg
KEBBUkdWKSB7Ci0gICAgICAgICR0ZXN0ID1+IHMvXigkbGF5b3V0VGVzdHNOYW1lfCR0ZXN0RGly
ZWN0b3J5KVwvLy87Ci0gICAgICAgIG15ICRmdWxsUGF0aCA9IGNhdGZpbGUoJHRlc3REaXJlY3Rv
cnksICR0ZXN0KTsKLSAgICAgICAgaWYgKGZpbGVfbmFtZV9pc19hYnNvbHV0ZSgkdGVzdCkpIHsK
LSAgICAgICAgICAgIHByaW50ICJjYW4ndCBydW4gdGVzdCAkdGVzdCBvdXRzaWRlICR0ZXN0RGly
ZWN0b3J5XG4iOwotICAgICAgICB9IGVsc2lmICgtZiAkZnVsbFBhdGgpIHsKLSAgICAgICAgICAg
IG15ICgkZmlsZW5hbWUsICRwYXRobmFtZSwgJGZpbGVFeHRlbnNpb24pID0gZmlsZXBhcnNlKCR0
ZXN0LCBxcntcLlteLl0rJH0pOwotICAgICAgICAgICAgaWYgKCFleGlzdHMgJHN1cHBvcnRlZEZp
bGVFeHRlbnNpb25ze3N1YnN0cigkZmlsZUV4dGVuc2lvbiwgMSl9KSB7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQgInRlc3QgJHRlc3QgZG9lcyBub3QgaGF2ZSBhIHN1cHBvcnRlZCBleHRlbnNpb25c
biI7Ci0gICAgICAgICAgICB9IGVsc2lmICgkdGVzdEhUVFAgfHwgJHBhdGhuYW1lICF+IC9eaHR0
cFwvLykgewotICAgICAgICAgICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sICR0ZXN0OwotICAgICAg
ICAgICAgfQotICAgICAgICB9IGVsc2lmICgtZCAkZnVsbFBhdGgpIHsKLSAgICAgICAgICAgIEB0
ZXN0c0ZvdW5kID0gKCk7Ci0gICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVj
dG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkZnVsbFBhdGgpOwotICAgICAg
ICAgICAgZm9yIG15ICRsZXZlbCAoQHBsYXRmb3JtVGVzdEhpZXJhcmNoeSkgewotICAgICAgICAg
ICAgICAgIG15ICRwbGF0Zm9ybVBhdGggPSBjYXRmaWxlKCRsZXZlbCwgJHRlc3QpOwotICAgICAg
ICAgICAgICAgIGZpbmQoeyBwcmVwcm9jZXNzID0+IFwmZGlyZWN0b3J5RmlsdGVyLCB3YW50ZWQg
PT4gXCZmaWxlRmlsdGVyIH0sICRwbGF0Zm9ybVBhdGgpIGlmICgtZCAkcGxhdGZvcm1QYXRoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0aGNt
cCBAdGVzdHNGb3VuZDsKLSAgICAgICAgICAgIEB0ZXN0c0ZvdW5kID0gKCk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBwcmludCAidGVzdCAkdGVzdCBub3QgZm91bmRcbiI7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIXNjYWxhciBAQVJHVikgewotICAgICAgICBAdGVzdHNG
b3VuZCA9ICgpOwotICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZpbHRl
ciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkdGVzdERpcmVjdG9yeSk7Ci0gICAgICAgIGZv
ciBteSAkbGV2ZWwgKEBwbGF0Zm9ybVRlc3RIaWVyYXJjaHkpIHsKLSAgICAgICAgICAgIGZpbmQo
eyBwcmVwcm9jZXNzID0+IFwmZGlyZWN0b3J5RmlsdGVyLCB3YW50ZWQgPT4gXCZmaWxlRmlsdGVy
IH0sICRsZXZlbCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHVzaCBAdGVzdHNUb1J1biwgc29ydCBw
YXRoY21wIEB0ZXN0c0ZvdW5kOwotICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOwotCi0gICAgICAg
ICMgV2UgbmVlZCB0byBtaW5pbWl6ZSB0aGUgdGltZSB3aGVuIEFwYWNoZSBhbmQgV2ViU29ja2V0
U2VydmVyIGlzIGxvY2tlZCBieSB0ZXN0cwotICAgICAgICAjIHNvIHJ1biB0aGVtIGxhc3QgaWYg
bm8gZXhwbGljaXQgb3JkZXIgd2FzIHNwZWNpZmllZCBpbiB0aGUgYXJndW1lbnQgbGlzdC4KLSAg
ICAgICAgbXkgQGh0dHBUZXN0czsKLSAgICAgICAgbXkgQHdlYnNvY2tldFRlc3RzOwotICAgICAg
ICBteSBAb3RoZXJUZXN0czsKLSAgICAgICAgZm9yZWFjaCBteSAkdGVzdCAoQHRlc3RzVG9SdW4p
IHsKLSAgICAgICAgICAgIGlmICgkdGVzdCA9fiAvXmh0dHBcLy8pIHsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBodHRwVGVzdHMsICR0ZXN0KTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCR0ZXN0ID1+
IC9ed2Vic29ja2V0XC8vKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAd2Vic29ja2V0VGVzdHMs
ICR0ZXN0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAb3Ro
ZXJUZXN0cywgJHRlc3QpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEB0ZXN0
c1RvUnVuID0gKEBvdGhlclRlc3RzLCBAaHR0cFRlc3RzLCBAd2Vic29ja2V0VGVzdHMpOwotICAg
IH0KLQotICAgICMgUmV2ZXJzZSB0aGUgdGVzdHMKLSAgICBAdGVzdHNUb1J1biA9IHJldmVyc2Ug
QHRlc3RzVG9SdW4gaWYgJHJldmVyc2VUZXN0czsKLQotICAgICMgU2h1ZmZsZSB0aGUgYXJyYXkK
LSAgICBAdGVzdHNUb1J1biA9IHNodWZmbGUoQHRlc3RzVG9SdW4pIGlmICRyYW5kb21pemVUZXN0
czsKLQotICAgIHJldHVybiBAdGVzdHNUb1J1bjsKLX0KLQotc3ViIHByaW50UmVzdWx0cwotewot
ICAgIG15ICV0ZXh0ID0gKAotICAgICAgICBtYXRjaCA9PiAic3VjY2VlZGVkIiwKLSAgICAgICAg
bWlzbWF0Y2ggPT4gImhhZCBpbmNvcnJlY3QgbGF5b3V0IiwKLSAgICAgICAgbmV3ID0+ICJ3ZXJl
IG5ldyIsCi0gICAgICAgIHRpbWVkb3V0ID0+ICJ0aW1lZCBvdXQiLAotICAgICAgICBjcmFzaCA9
PiAiY3Jhc2hlZCIsCi0gICAgICAgIGVycm9yID0+ICJoYWQgc3RkZXJyIG91dHB1dCIKLSAgICAp
OwotCi0gICAgZm9yIG15ICR0eXBlICgibWF0Y2giLCAibWlzbWF0Y2giLCAibmV3IiwgInRpbWVk
b3V0IiwgImNyYXNoIiwgImVycm9yIikgewotICAgICAgICBteSAkdHlwZUNvdW50ID0gJGNvdW50
c3skdHlwZX07Ci0gICAgICAgIG5leHQgdW5sZXNzICR0eXBlQ291bnQ7Ci0gICAgICAgIG15ICR0
eXBlVGV4dCA9ICR0ZXh0eyR0eXBlfTsKLSAgICAgICAgbXkgJG1lc3NhZ2U7Ci0gICAgICAgIGlm
ICgkdHlwZUNvdW50ID09IDEpIHsKLSAgICAgICAgICAgICR0eXBlVGV4dCA9fiBzL3dlcmUvd2Fz
LzsKLSAgICAgICAgICAgICRtZXNzYWdlID0gc3ByaW50ZiAiMSB0ZXN0IGNhc2UgKCVkJSUpICVz
XG4iLCAxICogMTAwIC8gJGNvdW50LCAkdHlwZVRleHQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAkbWVzc2FnZSA9IHNwcmludGYgIiVkIHRlc3QgY2FzZXMgKCVkJSUpICVzXG4iLCAk
dHlwZUNvdW50LCAkdHlwZUNvdW50ICogMTAwIC8gJGNvdW50LCAkdHlwZVRleHQ7Ci0gICAgICAg
IH0KLSAgICAgICAgJG1lc3NhZ2UgPX4gcy1cKDAlXCktKDwxJSktOwotICAgICAgICBwcmludCAk
bWVzc2FnZTsKLSAgICB9Ci19CitleGVjKCRoYXJuZXNzTmFtZSwgQEFSR1YpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHkKaW5kZXggZDZlNTkwYS4uMDdkMGJiNyAxMDA3NTUKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5CkBAIC02ODksNyArNjg5LDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAg
IyBXcml0ZSB0aGUgc3VtbWFyeSB0byBkaXNrIChyZXN1bHRzLmh0bWwpIGFuZCBtYXliZSBvcGVu
IHRoZQogICAgICAgICAjIER1bXBSZW5kZXJUcmVlIHRvIHRoaXMgZmlsZS4KICAgICAgICAgd3Jv
dGVfcmVzdWx0cyA9IHNlbGYuX3dyaXRlX3Jlc3VsdHNfaHRtbF9maWxlKHJlc3VsdF9zdW1tYXJ5
KQotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5ub3Nob3dfcmVzdWx0cyBhbmQgd3JvdGVf
cmVzdWx0czoKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5zaG93X3Jlc3VsdHMgYW5kIHdyb3Rl
X3Jlc3VsdHM6CiAgICAgICAgICAgICBzZWxmLl9zaG93X3Jlc3VsdHNfaHRtbF9maWxlKCkKIAog
ICAgICAgICAjIElnbm9yZSBmbGFreSBmYWlsdXJlcyBhbmQgdW5leHBlY3RlZCBwYXNzZXMgc28g
d2UgZG9uJ3QgdHVybiB0aGUKQEAgLTE1MjgsNiArMTUyOCwxNCBAQCBkZWYgbWFpbihvcHRpb25z
LCBhcmdzLCBwcmludF9yZXN1bHRzPVRydWUpOgogICAgIHJldHVybiBudW1fdW5leHBlY3RlZF9y
ZXN1bHRzCiAKIAorZGVmIF9jb21wYXRfc2hpbV9jYWxsYmFjayhvcHRpb24sIG9wdF9zdHIsIHZh
bHVlLCBwYXJzZXIpOgorICAgIHByaW50ICJJZ25vcmluZyB1bnN1cHBvcnRlZCBvcHRpb246ICVz
IiAlIG9wdF9zdHIKKworCitkZWYgX2NvbXBhdF9zaGltX29wdGlvbihvcHRpb25fbmFtZSwgbmFy
Z3M9MCk6CisgICAgcmV0dXJuIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKG9wdGlvbl9uYW1lLCBhY3Rp
b249ImNhbGxiYWNrIiwgY2FsbGJhY2s9X2NvbXBhdF9zaGltX2NhbGxiYWNrLCBuYXJncz1uYXJn
cywgaGVscD0iSWdub3JlZCwgZm9yIG9sZC1ydW4td2Via2l0LXRlc3RzIGNvbXBhdCBvbmx5LiIp
CisKKwogZGVmIHBhcnNlX2FyZ3MoYXJncz1Ob25lKToKICAgICAiIiJQcm92aWRlcyBhIGRlZmF1
bHQgc2V0IG9mIGNvbW1hbmQgbGluZSBhcmdzLgogCkBAIC0xNTY3LDE2ICsxNTc1LDI1IEBAIGRl
ZiBwYXJzZV9hcmdzKGFyZ3M9Tm9uZSk6CiAgICAgIyBGSVhNRTogTmVlZDogLWwgLS1sZWFrcyAg
ICBFbmFibGUgbGVha3MgY2hlY2tpbmcuCiAgICAgIyBGSVhNRTogTmVlZDogLS1bbm8tXXNhbXBs
ZS1vbi10aW1lb3V0IFJ1biBzYW1wbGUgb24gdGltZW91dCAoZGVmYXVsdDogcnVuKSAoTWFjIE9T
IFggb25seSkKIAorICAgICMgRklYTUU6IFRoZXNlIGFsbCBuZWVkIHJlYWwgaW1wbGVtZW50YXRp
b25zLgorICAgIG9sZF9ydW5fd2Via2l0X3Rlc3RzX2NvbXBhdCA9IFsKKyAgICAgICAgX2NvbXBh
dF9zaGltX29wdGlvbigiLS1uby1uZXctdGVzdC1yZXN1bHRzIiksCisgICAgICAgIF9jb21wYXRf
c2hpbV9vcHRpb24oIi0tbm8tc2FtcGxlLW9uLXRpbWVvdXQiKSwKKyAgICAgICAgX2NvbXBhdF9z
aGltX29wdGlvbigiLS11c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzIiksCisgICAgICAgIF9jb21w
YXRfc2hpbV9vcHRpb24oIi0tZXhpdC1hZnRlci1uLWZhaWx1cmVzIiwgbmFyZ3M9MSksCisgICAg
XQorCiAgICAgcmVzdWx0c19vcHRpb25zID0gWwogICAgICAgICAjIE5FRUQgZm9yIGJvdHM6IC0t
dXNlLXJlbW90ZS1saW5rcy10by10ZXN0cyAgICAgTGluayB0byB0ZXN0IGZpbGVzIHdpdGhpbiB0
aGUgU1ZOIHJlcG9zaXRvcnkgaW4gdGhlIHJlc3VsdHMuCi0gICAgICAgIG9wdHBhcnNlLm1ha2Vf
b3B0aW9uKCItcCIsICItLXBpeGVsLXRlc3RzJyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9
InBpeGVsX3Rlc3RzIiwgaGVscD0iRW5hYmxlIHBpeGVsLXRvLXBpeGVsIFBORyBjb21wYXJpc29u
cyIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLXAiLCAiLS1waXhlbC10ZXN0cyIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InBpeGVsX3Rlc3RzIiwgaGVscD0iRW5hYmxlIHBp
eGVsLXRvLXBpeGVsIFBORyBjb21wYXJpc29ucyIpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbigiLS1uby1waXhlbC10ZXN0cyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJwaXhl
bF90ZXN0cyIsIGhlbHA9IkRpc2FibGUgcGl4ZWwtdG8tcGl4ZWwgUE5HIGNvbXBhcmlzb25zIiks
CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWZ1enp5LXBpeGVsLXRlc3RzIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iQWxzbyB1c2UgZnV6enkgbWF0
Y2hpbmcgdG8gY29tcGFyZSBwaXhlbCB0ZXN0IG91dHB1dHMuIiksCiAgICAgICAgICMgb2xkLXJ1
bi13ZWJraXQtdGVzdHMgYWxsb3dzIGEgc3BlY2lmaWMgdG9sbGVyYW5jZTogLS10b2xlcmFuY2Ug
dCAgSWdub3JlIGltYWdlIGRpZmZlcmVuY2VzIGxlc3MgdGhhbiB0aGlzIHBlcmNlbnRhZ2UgKGRl
ZmF1bHQ6IDAuMSkKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcmVzdWx0cy1kaXJl
Y3RvcnkiLCBkZWZhdWx0PSJsYXlvdXQtdGVzdC1yZXN1bHRzIiwgaGVscD0iT3V0cHV0IHJlc3Vs
dHMgZGlyZWN0b3J5IHNvdXJjZSBkaXIsIHJlbGF0aXZlIHRvIERlYnVnIG9yIFJlbGVhc2UiKSwK
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbmV3LWJhc2VsaW5lIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iU2F2ZSBhbGwgZ2VuZXJhdGVkIHJlc3Vs
dHMgYXMgbmV3IGJhc2VsaW5lcyBpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnksIG92ZXJ3cml0
aW5nIHdoYXRldmVyJ3MgYWxyZWFkeSB0aGVyZS4iKSwKICAgICAgICAgIyBGSVhNRTogLS1ub3No
b3cgc2hvdWxkIGJlIC0tbm8tc2hvdyB0byBtYXRjaCB0aGUgR05VIGdldF9vcHQgcGF0dGVybi4K
LSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm9zaG93LXJlc3VsdHMiLCBhY3Rpb249
InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJEb24ndCBsYXVuY2ggYSBicm93c2Vy
IHdpdGggcmVzdWx0cyBhZnRlciB0aGUgdGVzdHMgYXJlIGRvbmUiKSwKKyAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oIi0tbm9zaG93LXJlc3VsdHMiLCBkZXN0PSJzaG93X3Jlc3VsdHMiLCBh
Y3Rpb249InN0b3JlX2ZhbHNlIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCBsYXVuY2ggYSBi
cm93c2VyIHdpdGggcmVzdWx0cyBhZnRlciB0aGUgdGVzdHMgYXJlIGRvbmUiKSwKKyAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm8tbGF1bmNoLXNhZmFyaSIsIGRlc3Q9InNob3dfcmVz
dWx0cyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBoZWxwPSJvbGQtcnVuLXdlYmtpdC10ZXN0cyBj
b21wYXQsIHNhbWUgYXMgLS1uby1zaG93LXJlc3VsdHMuIiksCiAgICAgICAgICMgb2xkLXJ1bi13
ZWJraXQtdGVzdHM6IC0tW25vLV1sYXVuY2gtc2FmYXJpICAgICAgICAgICAgTGF1bmNoIChvciBk
byBub3QgbGF1bmNoKSBTYWZhcmkgdG8gZGlzcGxheSB0ZXN0IHJlc3VsdHMgKGRlZmF1bHQ6IGxh
dW5jaCkKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tZnVsbC1yZXN1bHRzLWh0bWwi
LCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJTaG93IGFsbCBmYWls
dXJlcyBpbiByZXN1bHRzLmh0bWwsIHJhdGhlciB0aGFuIG9ubHkgcmVncmVzc2lvbnMiKSwKICAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tY2xvYmJlci1vbGQtcmVzdWx0cyIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsb2JiZXJzIHRlc3QgcmVzdWx0
cyBmcm9tIHByZXZpb3VzIHJ1bnMuIiksCkBAIC0xNjIxLDcgKzE2MzgsNyBAQCBkZWYgcGFyc2Vf
YXJncyhhcmdzPU5vbmUpOgogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1idWlsZC1u
dW1iZXIiLCBkZWZhdWx0PSJEVU1NWV9CVUlMRF9OVU1CRVIiLCBoZWxwPSgiVGhlIGJ1aWxkIG51
bWJlciBvZiB0aGUgYnVpbGRlciBydW5uaW5nIHRoaXMgc2NyaXB0LiIpKSwKICAgICBdCiAKLSAg
ICBvcHRpb25fbGlzdCA9IGNvbmZpZ3VyYXRpb25fb3B0aW9ucyArIGxvZ2dpbmdfb3B0aW9ucyAr
IGNocm9taXVtX29wdGlvbnMgKyByZXN1bHRzX29wdGlvbnMgKyB0ZXN0X29wdGlvbnMgKyBtaXNj
X29wdGlvbnMgKyByZXN1bHRzX2pzb25fb3B0aW9ucworICAgIG9wdGlvbl9saXN0ID0gY29uZmln
dXJhdGlvbl9vcHRpb25zICsgbG9nZ2luZ19vcHRpb25zICsgY2hyb21pdW1fb3B0aW9ucyArIHJl
c3VsdHNfb3B0aW9ucyArIHRlc3Rfb3B0aW9ucyArIG1pc2Nfb3B0aW9ucyArIHJlc3VsdHNfanNv
bl9vcHRpb25zICsgb2xkX3J1bl93ZWJraXRfdGVzdHNfY29tcGF0CiAgICAgb3B0aW9uX3BhcnNl
ciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcihvcHRpb25fbGlzdD1vcHRpb25fbGlzdCkKICAgICBy
ZXR1cm4gb3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53568</attachid>
            <date>2010-04-16 14:59:05 -0700</date>
            <delta_ts>2010-04-18 13:56:52 -0700</delta_ts>
            <desc>Updated patch which doesn&apos;t enable new-run-webkit-tests for any ports yet</desc>
            <filename>bug-37632-20100416145901.patch</filename>
            <type>text/plain</type>
            <size>173984</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmMTAyNDJlLi4wNjFiNjIxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDQt
MTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGxheWVyIG9mIGluZGlyZWN0aW9uIHdo
ZW4gY2FsbGluZyBydW4td2Via2l0LXRlc3RzIHRvCisgICAgICAgIGFsbG93IHRlc3RpbmcgbmV3
LXJ1bi13ZWJraXQtdGVzdHMgb24gdmFyaW91cyBwbGF0Zm9ybXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzYzMgorCisgICAgICAgIFRoaXMgd2ls
bCBsZXQgdXMgdGVzdCBhbmQgZml4IGJ1Z3MgaW4gbmV3LXJ1bi13ZWJraXQtdGVzdHMKKyAgICAg
ICAgd2l0aG91dCBuZWVkaW5nIHRvIHJlc3RhcnQgdGhlIGJ1aWxkYm90IG1hc3RlciBiZXR3ZWVu
IHRlc3RzLgorCisgICAgICAgIEN1cnJlbnRseSB0aGlzIGNoYW5nZSBsZWF2ZXMgcnVuLXdlYmtp
dC10ZXN0cyBhcy1pcywgYnV0IG9uY2UKKyAgICAgICAgaXRzIGxhbmRlZCB3ZSB3aWxsIGVhc2ls
eSBiZSBhYmxlIHRvIHR1cm4gb24vb2ZmCisgICAgICAgIG5ldy1ydW4td2Via2l0LXRlc3RzIGZv
ciB2YXJpb3VzIHBvcnRzL2NvbmZpZ3VyYXRpb25zLgorCisgICAgICAgICogU2NyaXB0cy9vbGQt
cnVuLXdlYmtpdC10ZXN0czogQ29waWVkIGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Vi
a2l0LXRlc3RzLgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC10ZXN0czoKKyAgICAgICAg
IC0gQSBuZXcgc2NyaXB0IHdoaWNoIGRlY2lkZXMgd2hldGhlciB0byBydW4gbmV3LSBvciBvbGQt
CisgICAgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMgYmFzZWQgb24gdGhlIHBsYXRmb3JtLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6
CisgICAgICAgICAtIEFkZCBzb21lIGR1bW15IGFyZ3VtZW50IGhhbmRsaW5nIGZvciBhcmd1bWVu
dHMgd2hpY2gKKyAgICAgICAgICAgb2xkLXJ1bi13ZWJraXQtdGVzdHMgc3VwcG9ydHMgYnV0IG5l
dy1ydW4td2Via2l0LXRlc3RzCisgICAgICAgICAgIGRvZXMgbm90IHlldC4KKwogMjAxMC0wNC0x
NiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvb2xkLXJ1
bi13ZWJraXQtdGVzdHMgYi9XZWJLaXRUb29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3Rz
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3MzViNGQKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCkBAIC0wLDAg
KzEsMjI3NSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyMgQ29w
eXJpZ2h0IChDKSAyMDA3IE1hdHQgTGlsZWsgKHBld3Rlcm1vb3NlQGdtYWlsLmNvbSkKKyMgQ29w
eXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisjIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMDkgQW5kcmFzIEJlY3NpIChiZWNzaS5hbmRyYXNAc3R1ZC51LXN6ZWdlZC5odSksIFVu
aXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgU2NyaXB0
IHRvIHJ1biB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QgbGF5b3V0IHRlc3RzLgorCisj
IFJ1biBhbGwgdGhlIHRlc3RzIHBhc3NlZCBpbiBvbiB0aGUgY29tbWFuZCBsaW5lLgorIyBJZiBu
byB0ZXN0cyBhcmUgcGFzc2VkLCBmaW5kIGFsbCB0aGUgLmh0bWwsIC5zaHRtbCwgLnhtbCwgLnho
dG1sLCAueGh0bWxtcCwgLnBsLCAucGhwIChhbmQgc3ZnKSBmaWxlcyBpbiB0aGUgdGVzdCBkaXJl
Y3RvcnkuCisKKyMgUnVuIGVhY2ggdGV4dC4KKyMgQ29tcGFyZSBhZ2FpbnN0IHRoZSBleGlzdGlu
ZyBmaWxlIHh4eC1leHBlY3RlZC50eHQuCisjIElmIHRoZXJlIGlzIGEgbWlzbWF0Y2gsIGdlbmVy
YXRlIHh4eC1hY3R1YWwudHh0IGFuZCB4eHgtZGlmZnMudHh0LgorCisjIEF0IHRoZSBlbmQsIHJl
cG9ydDoKKyMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgZ290IHRoZSBleHBlY3RlZCByZXN1
bHRzCisjICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IHJhbiwgYnV0IGRpZCBub3QgZ2V0IHRo
ZSBleHBlY3RlZCByZXN1bHRzCisjICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IGZhaWxlZCB0
byBydW4KKyMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgd2VyZSBydW4gYnV0IGhhZCBubyBl
eHBlY3RlZCByZXN1bHRzIHRvIGNvbXBhcmUgYWdhaW5zdAorCit1c2Ugc3RyaWN0OwordXNlIHdh
cm5pbmdzOworCit1c2UgQ3dkOwordXNlIERhdGE6OkR1bXBlcjsKK3VzZSBGY250bCBxdyhGX0dF
VEZMIEZfU0VURkwgT19OT05CTE9DSyk7Cit1c2UgRmlsZTo6QmFzZW5hbWU7Cit1c2UgRmlsZTo6
Q29weTsKK3VzZSBGaWxlOjpGaW5kOwordXNlIEZpbGU6OlBhdGg7Cit1c2UgRmlsZTo6U3BlYzsK
K3VzZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnM7Cit1c2UgRmlsZTo6VGVtcDsKK3VzZSBGaW5kQmlu
OwordXNlIEdldG9wdDo6TG9uZzsKK3VzZSBJUEM6Ok9wZW4yOwordXNlIElQQzo6T3BlbjM7Cit1
c2UgVGltZTo6SGlSZXMgcXcodGltZSB1c2xlZXApOworCit1c2UgTGlzdDo6VXRpbCAnc2h1ZmZs
ZSc7CisKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJraXRwZXJsOjpmZWF0dXJlczsK
K3VzZSB3ZWJraXRwZXJsOjpodHRwZDsKK3VzZSB3ZWJraXRkaXJzOwordXNlIFZDU1V0aWxzOwor
dXNlIFBPU0lYOworCitzdWIgYnVpbGRQbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSgpOworc3ViIGJ1
aWxkUGxhdGZvcm1UZXN0SGllcmFyY2h5KEApOworc3ViIGNsb3NlQ3lncGF0aHMoKTsKK3N1YiBj
bG9zZUR1bXBUb29sKCk7CitzdWIgY2xvc2VXZWJTb2NrZXRTZXJ2ZXIoKTsKK3N1YiBjb25maWd1
cmVBbmRPcGVuSFRUUERJZk5lZWRlZCgpOworc3ViIGNvdW50QW5kUHJpbnRMZWFrcygkJCQpOwor
c3ViIGNvdW50RmluaXNoZWRUZXN0KCQkJCQpOworc3ViIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFs
UmVzdWx0cygkKTsKK3N1YiBkdW1wVG9vbERpZENyYXNoKCk7CitzdWIgZXBpbG9ndWVzQW5kUHJv
bG9ndWVzKCQkKTsKK3N1YiBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJDskOyQpOworc3ViIGZp
bGVOYW1lV2l0aE51bWJlcigkJCk7CitzdWIgaHRtbEZvclJlc3VsdHNTZWN0aW9uKFxAJCYpOwor
c3ViIGlzVGV4dE9ubHlUZXN0KCQpOworc3ViIGxhdW5jaFdpdGhFbnYoXEBcJSk7CitzdWIgcmVz
b2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOworc3ViIG51bWVyaWNjbXAoJCQpOwor
c3ViIG9wZW5EaWZmVG9vbCgpOworc3ViIG9wZW5EdW1wVG9vbCgpOworc3ViIHBhcnNlTGVha3Nh
bmRQcmludFVuaXF1ZUxlYWtzKCk7CitzdWIgb3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVkKCk7
CitzdWIgcGF0aGNtcCgkJCk7CitzdWIgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJCQpOwor
c3ViIHByb2Nlc3NJZ25vcmVUZXN0cygkJCk7CitzdWIgcmVhZEZyb21EdW1wVG9vbFdpdGhUaW1l
cigqKik7CitzdWIgcmVhZFNraXBwZWRGaWxlcygkKTsKK3N1YiByZWNvcmRBY3R1YWxSZXN1bHRz
QW5kRGlmZigkJCk7CitzdWIgc2FtcGxlRHVtcFRvb2woKTsKK3N1YiBzZXRGaWxlSGFuZGxlTm9u
QmxvY2tpbmcoKiQpOworc3ViIHNsb3dlc3RjbXAoJCQpOworc3ViIHNwbGl0cGF0aCgkKTsKK3N1
YiBzdG9wUnVubmluZ1Rlc3RzRWFybHlJZk5lZWRlZCgpOworc3ViIHN0cmlwRXh0ZW5zaW9uKCQp
Oworc3ViIHN0cmlwTWV0cmljcygkJCk7CitzdWIgdGVzdENyYXNoZWRPclRpbWVkT3V0KCQkJCQk
KTsKK3N1YiB0b1VSTCgkKTsKK3N1YiB0b1dpbmRvd3NQYXRoKCQpOworc3ViIHZhbGlkYXRlU2tp
cHBlZEFyZygkJDskKTsKK3N1YiB3cml0ZVRvRmlsZSgkJCk7CisKKyMgQXJndW1lbnQgaGFuZGxp
bmcKK215ICRhZGRQbGF0Zm9ybUV4Y2VwdGlvbnMgPSAwOworbXkgJGNvbXBsZXhUZXh0ID0gMDsK
K215ICRleGl0QWZ0ZXJORmFpbHVyZXMgPSAwOworbXkgJGdlbmVyYXRlTmV3UmVzdWx0cyA9IGlz
QXBwbGVNYWNXZWJLaXQoKSA/IDEgOiAwOworbXkgJGd1YXJkTWFsbG9jID0gJyc7CisjIEZJWE1F
OiBEeW5hbWljIEhUVFAtcG9ydCBjb25maWd1cmF0aW9uIGluIHRoaXMgZmlsZSBpcyB3cm9uZy4g
IFRoZSB2YXJpb3VzCisjIGFwYWNoZSBjb25maWcgZmlsZXMgaW4gTGF5b3V0VGVzdHMvaHR0cC9j
b25maWcgZ292ZXJuIHRoZSBwb3J0IG51bWJlcnMuCisjIER5bmFtaWMgY29uZmlndXJhdGlvbiBh
cy13cml0dGVuIHdpbGwgYWxzbyBjYXVzZSByYW5kb20gZmFpbHVyZXMgaW4KKyMgYW4gSVB2NiBl
bnZpcm9ubWVudC4gIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzcxMDQuCitteSAkaHR0cGRQb3J0ID0gODAwMDsKK215ICRodHRwZFNTTFBvcnQgPSA4NDQzOwor
bXkgJGlnbm9yZU1ldHJpY3MgPSAwOworbXkgJHdlYlNvY2tldFBvcnQgPSA4ODgwOworIyB3c3Mg
aXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KKyMgbXkg
JHdlYlNvY2tldFNlY3VyZVBvcnQgPSA5MzIzOworbXkgJGlnbm9yZVRlc3RzID0gJyc7CitteSAk
aXRlcmF0aW9ucyA9IDE7CitteSAkbGF1bmNoU2FmYXJpID0gMTsKK215ICRtZXJnZURlcHRoOwor
bXkgJHBpeGVsVGVzdHMgPSAnJzsKK215ICRwbGF0Zm9ybTsKK215ICRxdWlldCA9ICcnOworbXkg
JHJhbmRvbWl6ZVRlc3RzID0gMDsKK215ICRyZXBlYXRFYWNoID0gMTsKK215ICRyZXBvcnQxMFNs
b3dlc3QgPSAwOworbXkgJHJlc2V0UmVzdWx0cyA9IDA7CitteSAkcmV2ZXJzZVRlc3RzID0gMDsK
K215ICRyb290OworbXkgJHJ1blNhbXBsZSA9IDE7CitteSAkc2hvdWxkQ2hlY2tMZWFrcyA9IDA7
CitteSAkc2hvd0hlbHAgPSAwOworbXkgJHN0cmlwRWRpdGluZ0NhbGxiYWNrcyA9IGlzQ3lnd2lu
KCk7CitteSAkdGVzdEhUVFAgPSAxOworbXkgJHRlc3RNZWRpYSA9IDE7CitteSAkdG1wRGlyID0g
Ii90bXAiOworbXkgJHRlc3RSZXN1bHRzRGlyZWN0b3J5ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
dG1wRGlyLCAibGF5b3V0LXRlc3QtcmVzdWx0cyIpOworbXkgJHRlc3RzUGVyRHVtcFRvb2wgPSAx
MDAwOworbXkgJHRocmVhZGVkID0gMDsKKyMgRHVtcFJlbmRlclRyZWUgaGFzIGFuIGludGVybmFs
IHRpbWVvdXQgb2YgMzAgc2Vjb25kcywgc28gdGhpcyBtdXN0IGJlID4gMzAuCitteSAkdGltZW91
dFNlY29uZHMgPSAzNTsKK215ICR0b2xlcmFuY2UgPSAwOworbXkgJHRyZWF0U2tpcHBlZCA9ICJk
ZWZhdWx0IjsKK215ICR1c2VSZW1vdGVMaW5rc1RvVGVzdHMgPSAwOworbXkgJHVzZVZhbGdyaW5k
ID0gMDsKK215ICR2ZXJib3NlID0gMDsKK215ICRzaG91bGRXYWl0Rm9ySFRUUEQgPSAwOworCitt
eSBAbGVha3NGaWxlbmFtZXM7CisKK2lmIChpc1dpbmRvd3MoKSB8fCBpc01zeXMoKSkgeworICAg
IHByaW50ICJUaGlzIHNjcmlwdCBoYXMgdG8gYmUgcnVuIHVuZGVyIEN5Z3dpbiB0byBmdW5jdGlv
biBjb3JyZWN0bHkuXG4iOworICAgIGV4aXQgMTsKK30KKworIyBEZWZhdWx0IHRvIC0tbm8taHR0
cCBmb3Igd3ggZm9yIG5vdy4KKyR0ZXN0SFRUUCA9IDAgaWYgKGlzV3goKSk7CisKK215ICRleHBl
Y3RlZFRhZyA9ICJleHBlY3RlZCI7CitteSAkYWN0dWFsVGFnID0gImFjdHVhbCI7CitteSAkcHJl
dHR5RGlmZlRhZyA9ICJwcmV0dHktZGlmZiI7CitteSAkZGlmZnNUYWcgPSAiZGlmZnMiOworbXkg
JGVycm9yVGFnID0gInN0ZGVyciI7CisKK215IEBtYWNQbGF0Zm9ybXMgPSAoIm1hYy10aWdlciIs
ICJtYWMtbGVvcGFyZCIsICJtYWMtc25vd2xlb3BhcmQiLCAibWFjIik7CisKK2lmIChpc0FwcGxl
TWFjV2ViS2l0KCkpIHsKKyAgICBpZiAoaXNUaWdlcigpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9
ICJtYWMtdGlnZXIiOworICAgICAgICAkdG9sZXJhbmNlID0gMS4wOworICAgIH0gZWxzaWYgKGlz
TGVvcGFyZCgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICJtYWMtbGVvcGFyZCI7CisgICAgICAg
ICR0b2xlcmFuY2UgPSAwLjE7CisgICAgfSBlbHNpZiAoaXNTbm93TGVvcGFyZCgpKSB7CisgICAg
ICAgICRwbGF0Zm9ybSA9ICJtYWMtc25vd2xlb3BhcmQiOworICAgICAgICAkdG9sZXJhbmNlID0g
MC4xOworICAgIH0gZWxzZSB7CisgICAgICAgICRwbGF0Zm9ybSA9ICJtYWMiOworICAgIH0KK30g
ZWxzaWYgKGlzUXQoKSkgeworICAgIGlmIChpc0RhcndpbigpKSB7CisgICAgICAgICRwbGF0Zm9y
bSA9ICJxdC1tYWMiOworICAgIH0gZWxzaWYgKGlzTGludXgoKSkgeworICAgICAgICAkcGxhdGZv
cm0gPSAicXQtbGludXgiOworICAgIH0gZWxzaWYgKGlzV2luZG93cygpIHx8IGlzQ3lnd2luKCkp
IHsKKyAgICAgICAgJHBsYXRmb3JtID0gInF0LXdpbiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
JHBsYXRmb3JtID0gInF0IjsKKyAgICB9Cit9IGVsc2lmIChpc0d0aygpKSB7CisgICAgJHBsYXRm
b3JtID0gImd0ayI7CisgICAgaWYgKCEkRU5WeyJXRUJLSVRfVEVTVEZPTlRTIn0pIHsKKyAgICAg
ICAgcHJpbnQgIlRoZSBXRUJLSVRfVEVTVEZPTlRTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5v
dCBkZWZpbmVkLlxuIjsKKyAgICAgICAgcHJpbnQgIllvdSBtdXN0IHNldCBpdCBiZWZvcmUgcnVu
bmluZyB0aGUgdGVzdHMuXG4iOworICAgICAgICBwcmludCAiVXNlIGdpdCB0byBncmFiIHRoZSBh
Y3R1YWwgZm9udHMgZnJvbSBodHRwOi8vZ2l0b3Jpb3VzLm9yZy9xdHdlYmtpdC90ZXN0Zm9udHNc
biI7CisgICAgICAgIGV4aXQgMTsKKyAgICB9Cit9IGVsc2lmIChpc1d4KCkpIHsKKyAgICAkcGxh
dGZvcm0gPSAid3giOworfSBlbHNpZiAoaXNDeWd3aW4oKSkgeworICAgICRwbGF0Zm9ybSA9ICJ3
aW4iOworfQorCitpZiAoIWRlZmluZWQoJHBsYXRmb3JtKSkgeworICAgIHByaW50ICJXQVJOSU5H
OiBZb3VyIHBsYXRmb3JtIGlzIG5vdCByZWNvZ25pemVkLiBBbnkgcGxhdGZvcm0tc3BlY2lmaWMg
cmVzdWx0cyB3aWxsIGJlIGdlbmVyYXRlZCBpbiBwbGF0Zm9ybS91bmRlZmluZWQuXG4iOworICAg
ICRwbGF0Zm9ybSA9ICJ1bmRlZmluZWQiOworfQorCitteSAkcHJvZ3JhbU5hbWUgPSBiYXNlbmFt
ZSgkMCk7CitteSAkbGF1bmNoU2FmYXJpRGVmYXVsdCA9ICRsYXVuY2hTYWZhcmkgPyAibGF1bmNo
IiA6ICJkbyBub3QgbGF1bmNoIjsKK215ICRodHRwRGVmYXVsdCA9ICR0ZXN0SFRUUCA/ICJydW4i
IDogImRvIG5vdCBydW4iOworbXkgJHNhbXBsZURlZmF1bHQgPSAkcnVuU2FtcGxlID8gInJ1biIg
OiAiZG8gbm90IHJ1biI7CisKK215ICR1c2FnZSA9IDw8RU9GOworVXNhZ2U6ICRwcm9ncmFtTmFt
ZSBbb3B0aW9uc10gW3Rlc3RkaXJ8dGVzdHBhdGggLi4uXQorICAtLWFkZC1wbGF0Zm9ybS1leGNl
cHRpb25zICAgICAgIFB1dCBuZXcgcmVzdWx0cyBmb3Igbm9uLXBsYXRmb3JtLXNwZWNpZmljIGZh
aWxpbmcgdGVzdHMgaW50byB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgcmVzdWx0cyBkaXJlY3RvcnkK
KyAgLS1jb21wbGV4LXRleHQgICAgICAgICAgICAgICAgICBVc2UgdGhlIGNvbXBsZXggdGV4dCBj
b2RlIHBhdGggZm9yIGFsbCB0ZXh0IChNYWMgT1MgWCBhbmQgV2luZG93cyBvbmx5KQorICAtY3wt
LWNvbmZpZ3VyYXRpb24gY29uZmlnICAgICAgIFNldCBEdW1wUmVuZGVyVHJlZSBidWlsZCBjb25m
aWd1cmF0aW9uCisgIC1nfC0tZ3VhcmQtbWFsbG9jICAgICAgICAgICAgICAgRW5hYmxlIG1hbGxv
YyBndWFyZAorICAtLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcyBOICAgICAgIEV4aXQgYWZ0ZXIgdGhl
IGZpcnN0IE4gZmFpbHVyZXMgaW5zdGVhZCBvZiBydW5uaW5nIGFsbCB0ZXN0cworICAtaHwtLWhl
bHAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2UKKyAgLS1bbm8t
XWh0dHAgICAgICAgICAgICAgICAgICAgICBSdW4gKG9yIGRvIG5vdCBydW4pIGh0dHAgdGVzdHMg
KGRlZmF1bHQ6ICRodHRwRGVmYXVsdCkKKyAgLS1bbm8tXXdhaXQtZm9yLWh0dHBkICAgICAgICAg
ICBXYWl0IGZvciBodHRwZCBpZiBzb21lIG90aGVyIHRlc3Qgc2Vzc2lvbiBpcyB1c2luZyBpdCBh
bHJlYWR5IChzYW1lIGFzIFdFQktJVF9XQUlUX0ZPUl9IVFRQRD0xKS4gKGRlZmF1bHQ6ICRzaG91
bGRXYWl0Rm9ySFRUUEQpIAorICAtaXwtLWlnbm9yZS10ZXN0cyAgICAgICAgICAgICAgIENvbW1h
LXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzIG9yIHRlc3RzIHRvIGlnbm9yZQorICAtLWl0
ZXJhdGlvbnMgbiAgICAgICAgICAgICAgICAgIE51bWJlciBvZiB0aW1lcyB0byBydW4gdGhlIHNl
dCBvZiB0ZXN0cyAoZS5nLiBBQkNBQkNBQkMpCisgIC0tW25vLV1sYXVuY2gtc2FmYXJpICAgICAg
ICAgICAgTGF1bmNoIChvciBkbyBub3QgbGF1bmNoKSBTYWZhcmkgdG8gZGlzcGxheSB0ZXN0IHJl
c3VsdHMgKGRlZmF1bHQ6ICRsYXVuY2hTYWZhcmlEZWZhdWx0KQorICAtbHwtLWxlYWtzICAgICAg
ICAgICAgICAgICAgICAgIEVuYWJsZSBsZWFrcyBjaGVja2luZworICAtLVtuby1dbmV3LXRlc3Qt
cmVzdWx0cyAgICAgICAgIEdlbmVyYXRlIHJlc3VsdHMgZm9yIG5ldyB0ZXN0cworICAtLW50aGx5
IG4gICAgICAgICAgICAgICAgICAgICAgIFJlc3RhcnQgRHVtcFJlbmRlclRyZWUgZXZlcnkgbiB0
ZXN0cyAoZGVmYXVsdDogJHRlc3RzUGVyRHVtcFRvb2wpCisgIC1wfC0tcGl4ZWwtdGVzdHMgICAg
ICAgICAgICAgICAgRW5hYmxlIHBpeGVsIHRlc3RzCisgIC0tdG9sZXJhbmNlIHQgICAgICAgICAg
ICAgICAgICAgSWdub3JlIGltYWdlIGRpZmZlcmVuY2VzIGxlc3MgdGhhbiB0aGlzIHBlcmNlbnRh
Z2UgKGRlZmF1bHQ6ICR0b2xlcmFuY2UpCisgIC0tcGxhdGZvcm0gICAgICAgICAgICAgICAgICAg
ICAgT3ZlcnJpZGUgdGhlIGRldGVjdGVkIHBsYXRmb3JtIHRvIHVzZSBmb3IgdGVzdHMgYW5kIHJl
c3VsdHMgKGRlZmF1bHQ6ICRwbGF0Zm9ybSkKKyAgLS1wb3J0ICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWIgc2VydmVyIHBvcnQgdG8gdXNlIHdpdGggaHR0cCB0ZXN0cworICAtcXwtLXF1aWV0
ICAgICAgICAgICAgICAgICAgICAgIExlc3MgdmVyYm9zZSBvdXRwdXQKKyAgLS1yZXNldC1yZXN1
bHRzICAgICAgICAgICAgICAgICBSZXNldCBBTEwgcmVzdWx0cyAoaW5jbHVkaW5nIHBpeGVsIHRl
c3RzIGlmIC0tcGl4ZWwtdGVzdHMgaXMgc2V0KQorICAtb3wtLXJlc3VsdHMtZGlyZWN0b3J5ICAg
ICAgICAgIE91dHB1dCByZXN1bHRzIGRpcmVjdG9yeSAoZGVmYXVsdDogJHRlc3RSZXN1bHRzRGly
ZWN0b3J5KQorICAtLXJhbmRvbSAgICAgICAgICAgICAgICAgICAgICAgIFJ1biB0aGUgdGVzdHMg
aW4gYSByYW5kb20gb3JkZXIKKyAgLS1yZXBlYXQtZWFjaCBuICAgICAgICAgICAgICAgICBOdW1i
ZXIgb2YgdGltZXMgdG8gcnVuIGVhY2ggdGVzdCAoZS5nLiBBQUFCQkJDQ0MpCisgIC0tcmV2ZXJz
ZSAgICAgICAgICAgICAgICAgICAgICAgUnVuIHRoZSB0ZXN0cyBpbiByZXZlcnNlIGFscGhhYmV0
aWNhbCBvcmRlcgorICAtLXJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gcm9v
dCB0b29scyBidWlsZAorICAtLVtuby1dc2FtcGxlLW9uLXRpbWVvdXQgICAgICAgIFJ1biBzYW1w
bGUgb24gdGltZW91dCAoZGVmYXVsdDogJHNhbXBsZURlZmF1bHQpIChNYWMgT1MgWCBvbmx5KQor
ICAtMXwtLXNpbmdseSAgICAgICAgICAgICAgICAgICAgIElzb2xhdGUgZWFjaCB0ZXN0IGNhc2Ug
cnVuIChpbXBsaWVzIC0tbnRobHkgMSAtLXZlcmJvc2UpCisgIC0tc2tpcHBlZD1bZGVmYXVsdHxp
Z25vcmV8b25seV0gU3BlY2lmaWVzIGhvdyB0byB0cmVhdCB0aGUgU2tpcHBlZCBmaWxlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogVGVzdHMvZGlyZWN0b3Jp
ZXMgbGlzdGVkIGluIHRoZSBTa2lwcGVkIGZpbGUgYXJlIG5vdCB0ZXN0ZWQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmU6ICBUaGUgU2tpcHBlZCBmaWxlIGlzIGln
bm9yZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5OiAgICBPbmx5
IHRob3NlIHRlc3RzL2RpcmVjdG9yaWVzIGxpc3RlZCBpbiB0aGUgU2tpcHBlZCBmaWxlIHdpbGwg
YmUgcnVuCisgIC0tc2xvd2VzdCAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0IHRoZSAxMCBz
bG93ZXN0IHRlc3RzCisgIC0taWdub3JlLW1ldHJpY3MgICAgICAgICAgICAgICAgSWdub3JlIG1l
dHJpY3MgaW4gdGVzdHMKKyAgLS1bbm8tXXN0cmlwLWVkaXRpbmctY2FsbGJhY2tzICBSZW1vdmUg
ZWRpdGluZyBjYWxsYmFja3MgZnJvbSBleHBlY3RlZCByZXN1bHRzCisgIC10fC0tdGhyZWFkZWQg
ICAgICAgICAgICAgICAgICAgUnVuIGEgY29uY3VycmVudCBKYXZhU2NyaXB0IHRoZWFkIHdpdGgg
ZWFjaCB0ZXN0CisgIC0tdGltZW91dCB0ICAgICAgICAgICAgICAgICAgICAgU2V0cyB0aGUgbnVt
YmVyIG9mIHNlY29uZHMgYmVmb3JlIGEgdGVzdCB0aW1lcyBvdXQgKGRlZmF1bHQ6ICR0aW1lb3V0
U2Vjb25kcykKKyAgLS12YWxncmluZCAgICAgICAgICAgICAgICAgICAgICBSdW4gRHVtcFJlbmRl
clRyZWUgaW5zaWRlIHZhbGdyaW5kIChRdC9MaW51eCBvbmx5KQorICAtdnwtLXZlcmJvc2UgICAg
ICAgICAgICAgICAgICAgIE1vcmUgdmVyYm9zZSBvdXRwdXQgKG92ZXJyaWRlcyAtLXF1aWV0KQor
ICAtbXwtLW1lcmdlLWxlYWstZGVwdGggYXJnICAgICAgIE1lcmdlcyBsZWFrIGNhbGxTdGFja3Mg
YW5kIHByaW50cyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBsZWFrcyBiZW5lYXRoIGEgY2FsbHN0YWNr
IGRlcHRoIG9mIGFyZy4gIERlZmF1bHRzIHRvIDUuCisgIC0tdXNlLXJlbW90ZS1saW5rcy10by10
ZXN0cyAgICAgTGluayB0byB0ZXN0IGZpbGVzIHdpdGhpbiB0aGUgU1ZOIHJlcG9zaXRvcnkgaW4g
dGhlIHJlc3VsdHMuCitFT0YKKworc2V0Q29uZmlndXJhdGlvbigpOworCitteSAkZ2V0T3B0aW9u
c1Jlc3VsdCA9IEdldE9wdGlvbnMoCisgICAgJ2FkZC1wbGF0Zm9ybS1leGNlcHRpb25zJyA9PiBc
JGFkZFBsYXRmb3JtRXhjZXB0aW9ucywKKyAgICAnY29tcGxleC10ZXh0JyA9PiBcJGNvbXBsZXhU
ZXh0LAorICAgICdleGl0LWFmdGVyLW4tZmFpbHVyZXM9aScgPT4gXCRleGl0QWZ0ZXJORmFpbHVy
ZXMsCisgICAgJ2d1YXJkLW1hbGxvY3xnJyA9PiBcJGd1YXJkTWFsbG9jLAorICAgICdoZWxwfGgn
ID0+IFwkc2hvd0hlbHAsCisgICAgJ2h0dHAhJyA9PiBcJHRlc3RIVFRQLAorICAgICd3YWl0LWZv
ci1odHRwZCEnID0+IFwkc2hvdWxkV2FpdEZvckhUVFBELAorICAgICdpZ25vcmUtbWV0cmljcyEn
ID0+IFwkaWdub3JlTWV0cmljcywKKyAgICAnaWdub3JlLXRlc3RzfGk9cycgPT4gXCRpZ25vcmVU
ZXN0cywKKyAgICAnaXRlcmF0aW9ucz1pJyA9PiBcJGl0ZXJhdGlvbnMsCisgICAgJ2xhdW5jaC1z
YWZhcmkhJyA9PiBcJGxhdW5jaFNhZmFyaSwKKyAgICAnbGVha3N8bCcgPT4gXCRzaG91bGRDaGVj
a0xlYWtzLAorICAgICdtZXJnZS1sZWFrLWRlcHRofG06NScgPT4gXCRtZXJnZURlcHRoLAorICAg
ICduZXctdGVzdC1yZXN1bHRzIScgPT4gXCRnZW5lcmF0ZU5ld1Jlc3VsdHMsCisgICAgJ250aGx5
PWknID0+IFwkdGVzdHNQZXJEdW1wVG9vbCwKKyAgICAncGl4ZWwtdGVzdHN8cCcgPT4gXCRwaXhl
bFRlc3RzLAorICAgICdwbGF0Zm9ybT1zJyA9PiBcJHBsYXRmb3JtLAorICAgICdwb3J0PWknID0+
IFwkaHR0cGRQb3J0LAorICAgICdxdWlldHxxJyA9PiBcJHF1aWV0LAorICAgICdyYW5kb20nID0+
IFwkcmFuZG9taXplVGVzdHMsCisgICAgJ3JlcGVhdC1lYWNoPWknID0+IFwkcmVwZWF0RWFjaCwK
KyAgICAncmVzZXQtcmVzdWx0cycgPT4gXCRyZXNldFJlc3VsdHMsCisgICAgJ3Jlc3VsdHMtZGly
ZWN0b3J5fG89cycgPT4gXCR0ZXN0UmVzdWx0c0RpcmVjdG9yeSwKKyAgICAncmV2ZXJzZScgPT4g
XCRyZXZlcnNlVGVzdHMsCisgICAgJ3Jvb3Q9cycgPT4gXCRyb290LAorICAgICdzYW1wbGUtb24t
dGltZW91dCEnID0+IFwkcnVuU2FtcGxlLAorICAgICdzaW5nbHl8MScgPT4gc3ViIHsgJHRlc3Rz
UGVyRHVtcFRvb2wgPSAxOyB9LAorICAgICdza2lwcGVkPXMnID0+IFwmdmFsaWRhdGVTa2lwcGVk
QXJnLAorICAgICdzbG93ZXN0JyA9PiBcJHJlcG9ydDEwU2xvd2VzdCwKKyAgICAnc3RyaXAtZWRp
dGluZy1jYWxsYmFja3MhJyA9PiBcJHN0cmlwRWRpdGluZ0NhbGxiYWNrcywKKyAgICAndGhyZWFk
ZWR8dCcgPT4gXCR0aHJlYWRlZCwKKyAgICAndGltZW91dD1pJyA9PiBcJHRpbWVvdXRTZWNvbmRz
LAorICAgICd0b2xlcmFuY2U9ZicgPT4gXCR0b2xlcmFuY2UsCisgICAgJ3VzZS1yZW1vdGUtbGlu
a3MtdG8tdGVzdHMnID0+IFwkdXNlUmVtb3RlTGlua3NUb1Rlc3RzLAorICAgICd2YWxncmluZCcg
PT4gXCR1c2VWYWxncmluZCwKKyAgICAndmVyYm9zZXx2JyA9PiBcJHZlcmJvc2UsCispOworCitp
ZiAoISRnZXRPcHRpb25zUmVzdWx0IHx8ICRzaG93SGVscCkgeworICAgIHByaW50IFNUREVSUiAk
dXNhZ2U7CisgICAgZXhpdCAxOworfQorCitteSAkaWdub3JlU2tpcHBlZCA9ICR0cmVhdFNraXBw
ZWQgZXEgImlnbm9yZSI7CitteSAkc2tpcHBlZE9ubHkgPSAkdHJlYXRTa2lwcGVkIGVxICJvbmx5
IjsKKworbXkgJGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uKCk7CisKKyMgV2UgbmVlZCBh
biBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgZmVhdHVyZSBw
ZXItc2xhdmUKKyRzaG91bGRXYWl0Rm9ySFRUUEQgPSAkRU5WeyJXRUJLSVRfV0FJVF9GT1JfSFRU
UEQifSB1bmxlc3MgKCRzaG91bGRXYWl0Rm9ySFRUUEQpOworJHZlcmJvc2UgPSAxIGlmICR0ZXN0
c1BlckR1bXBUb29sID09IDE7CisKK2lmICgkc2hvdWxkQ2hlY2tMZWFrcyAmJiAkdGVzdHNQZXJE
dW1wVG9vbCA+IDEwMDApIHsKKyAgICBwcmludCBTVERFUlIgIlxuV0FSTklORzogUnVubmluZyBt
b3JlIHRoYW4gMTAwMCB0ZXN0cyBhdCBhIHRpbWUgd2l0aCBNYWxsb2NTdGFja0xvZ2dpbmcgZW5h
YmxlZCBtYXkgY2F1c2UgYSBjcmFzaC5cblxuIjsKK30KKworIyBTdGFjayBsb2dnaW5nIGRvZXMg
bm90IHBsYXkgd2VsbCB3aXRoIFF1aWNrVGltZSBvbiBUaWdlciAocmRhcjovL3Byb2JsZW0vNTUz
NzE1NykKKyR0ZXN0TWVkaWEgPSAwIGlmICRzaG91bGRDaGVja0xlYWtzICYmIGlzVGlnZXIoKTsK
KworIyBHZW5lcmF0aW5nIHJlbW90ZSBsaW5rcyBjYXVzZXMgYSBsb3Qgb2YgdW5uZWNlc3Nhcnkg
c3BldyBvbiBHVEsgYnVpbGQgYm90CiskdXNlUmVtb3RlTGlua3NUb1Rlc3RzID0gMCBpZiBpc0d0
aygpOworCitzZXRDb25maWd1cmF0aW9uUHJvZHVjdERpcihDd2Q6OmFic19wYXRoKCRyb290KSkg
aWYgKGRlZmluZWQoJHJvb3QpKTsKK215ICRwcm9kdWN0RGlyID0gcHJvZHVjdERpcigpOworJHBy
b2R1Y3REaXIgLj0gIi9iaW4iIGlmIGlzUXQoKTsKKyRwcm9kdWN0RGlyIC49ICIvUHJvZ3JhbXMi
IGlmIGlzR3RrKCk7CisKK2NoZGlyV2ViS2l0KCk7CisKK2lmICghZGVmaW5lZCgkcm9vdCkpIHsK
KyAgICBwcmludCBTVERFUlIgIlJ1bm5pbmcgYnVpbGQtZHVtcHJlbmRlcnRyZWVcbiI7CisKKyAg
ICBsb2NhbCAqREVWTlVMTDsKKyAgICBteSAoJGNoaWxkSW4sICRjaGlsZE91dCwgJGNoaWxkRXJy
KTsKKyAgICBpZiAoJHF1aWV0KSB7CisgICAgICAgIG9wZW4oREVWTlVMTCwgIj4iLCBGaWxlOjpT
cGVjLT5kZXZudWxsKCkpIG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gL2Rldi9udWxsIjsKKyAgICAg
ICAgJGNoaWxkT3V0ID0gIj4mREVWTlVMTCI7CisgICAgICAgICRjaGlsZEVyciA9ICI+JkRFVk5V
TEwiOworICAgIH0gZWxzZSB7CisgICAgICAgICMgV2hlbiBub3QgcXVpZXQsIGxldCB0aGUgY2hp
bGQgdXNlIG91ciBzdGRvdXQvc3RkZXJyLgorICAgICAgICAkY2hpbGRPdXQgPSAiPiZTVERPVVQi
OworICAgICAgICAkY2hpbGRFcnIgPSAiPiZTVERFUlIiOworICAgIH0KKworICAgIG15IEBhcmdz
ID0gYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpOworICAgIG15ICRidWlsZFByb2Nlc3MgPSBv
cGVuMygkY2hpbGRJbiwgJGNoaWxkT3V0LCAkY2hpbGRFcnIsICJXZWJLaXRUb29scy9TY3JpcHRz
L2J1aWxkLWR1bXByZW5kZXJ0cmVlIiwgQGFyZ3MpIG9yIGRpZSAiRmFpbGVkIHRvIHJ1biBidWls
ZC1kdW1wcmVuZGVydHJlZSI7CisgICAgY2xvc2UoJGNoaWxkSW4pOworICAgIHdhaXRwaWQgJGJ1
aWxkUHJvY2VzcywgMDsKKyAgICBteSAkYnVpbGRSZXN1bHQgPSAkPzsKKyAgICBjbG9zZSgkY2hp
bGRPdXQpOworICAgIGNsb3NlKCRjaGlsZEVycik7CisKKyAgICBjbG9zZSBERVZOVUxMIGlmICgk
cXVpZXQpOworCisgICAgaWYgKCRidWlsZFJlc3VsdCkgeworICAgICAgICBwcmludCBTVERFUlIg
IkNvbXBpbGluZyBEdW1wUmVuZGVyVHJlZSBmYWlsZWQhXG4iOworICAgICAgICBleGl0IGV4aXRT
dGF0dXMoJGJ1aWxkUmVzdWx0KTsKKyAgICB9Cit9CisKK215ICRkdW1wVG9vbE5hbWUgPSAiRHVt
cFJlbmRlclRyZWUiOworJGR1bXBUb29sTmFtZSAuPSAiX2RlYnVnIiBpZiBpc0N5Z3dpbigpICYm
IGNvbmZpZ3VyYXRpb25Gb3JWaXN1YWxTdHVkaW8oKSAhfiAvXlJlbGVhc2V8RGVidWdfSW50ZXJu
YWwkLzsKK215ICRkdW1wVG9vbCA9ICIkcHJvZHVjdERpci8kZHVtcFRvb2xOYW1lIjsKK2RpZSAi
Y2FuJ3QgZmluZCBleGVjdXRhYmxlICRkdW1wVG9vbE5hbWUgKGxvb2tlZCBpbiAkcHJvZHVjdERp
cilcbiIgdW5sZXNzIC14ICRkdW1wVG9vbDsKKworbXkgJGltYWdlRGlmZlRvb2wgPSAiJHByb2R1
Y3REaXIvSW1hZ2VEaWZmIjsKKyRpbWFnZURpZmZUb29sIC49ICJfZGVidWciIGlmIGlzQ3lnd2lu
KCkgJiYgY29uZmlndXJhdGlvbkZvclZpc3VhbFN0dWRpbygpICF+IC9eUmVsZWFzZXxEZWJ1Z19J
bnRlcm5hbCQvOworZGllICJjYW4ndCBmaW5kIGV4ZWN1dGFibGUgJGltYWdlRGlmZlRvb2wgKGxv
b2tlZCBpbiAkcHJvZHVjdERpcilcbiIgaWYgJHBpeGVsVGVzdHMgJiYgIS14ICRpbWFnZURpZmZU
b29sOworCitjaGVja0ZyYW1ld29ya3MoKSB1bmxlc3MgaXNDeWd3aW4oKTsKKworaWYgKGlzQXBw
bGVNYWNXZWJLaXQoKSkgeworICAgIHB1c2ggQElOQywgJHByb2R1Y3REaXI7CisgICAgcmVxdWly
ZSBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ7Cit9CisKK215ICRsYXlvdXRUZXN0c05hbWUgPSAiTGF5
b3V0VGVzdHMiOworbXkgJHRlc3REaXJlY3RvcnkgPSBGaWxlOjpTcGVjLT5yZWwyYWJzKCRsYXlv
dXRUZXN0c05hbWUpOworbXkgJGV4cGVjdGVkRGlyZWN0b3J5ID0gJHRlc3REaXJlY3Rvcnk7Citt
eSAkcGxhdGZvcm1CYXNlRGlyZWN0b3J5ID0gY2F0ZGlyKCR0ZXN0RGlyZWN0b3J5LCAicGxhdGZv
cm0iKTsKK215ICRwbGF0Zm9ybVRlc3REaXJlY3RvcnkgPSBjYXRkaXIoJHBsYXRmb3JtQmFzZURp
cmVjdG9yeSwgJHBsYXRmb3JtKTsKK215IEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSA9IGJ1aWxk
UGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkoKTsKK215IEBwbGF0Zm9ybVRlc3RIaWVyYXJjaHkgPSBi
dWlsZFBsYXRmb3JtVGVzdEhpZXJhcmNoeShAcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkpOworCisk
ZXhwZWN0ZWREaXJlY3RvcnkgPSAkRU5WeyJXZWJLaXRFeHBlY3RlZFRlc3RSZXN1bHRzRGlyZWN0
b3J5In0gaWYgJEVOVnsiV2ViS2l0RXhwZWN0ZWRUZXN0UmVzdWx0c0RpcmVjdG9yeSJ9OworCisk
dGVzdFJlc3VsdHNEaXJlY3RvcnkgPSBGaWxlOjpTcGVjLT5yZWwyYWJzKCR0ZXN0UmVzdWx0c0Rp
cmVjdG9yeSk7CitteSAkdGVzdFJlc3VsdHMgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0ZXN0UmVz
dWx0c0RpcmVjdG9yeSwgInJlc3VsdHMuaHRtbCIpOworCitpZiAoaXNBcHBsZU1hY1dlYktpdCgp
KSB7CisgICAgcHJpbnQgU1RERVJSICJDb21waWxpbmcgSmF2YSB0ZXN0c1xuIjsKKyAgICBteSAk
amF2YVRlc3RzRGlyZWN0b3J5ID0gY2F0ZGlyKCR0ZXN0RGlyZWN0b3J5LCAiamF2YSIpOworCisg
ICAgaWYgKHN5c3RlbSgiL3Vzci9iaW4vbWFrZSIsICItQyIsICIkamF2YVRlc3RzRGlyZWN0b3J5
IikpIHsKKyAgICAgICAgZXhpdCAxOworICAgIH0KK30KKworCitwcmludCAiUnVubmluZyB0ZXN0
cyBmcm9tICR0ZXN0RGlyZWN0b3J5XG4iOworaWYgKCRwaXhlbFRlc3RzKSB7CisgICAgcHJpbnQg
IkVuYWJsaW5nIHBpeGVsIHRlc3RzIHdpdGggYSB0b2xlcmFuY2Ugb2YgJHRvbGVyYW5jZSVcbiI7
CisgICAgaWYgKGlzRGFyd2luKCkpIHsKKyAgICAgICAgcHJpbnQgIldBUk5JTkc6IFRlbXBvcmFy
aWx5IGNoYW5naW5nIHRoZSBtYWluIGRpc3BsYXkgY29sb3IgcHJvZmlsZTpcbiI7CisgICAgICAg
IHByaW50ICJcdFRoZSBjb2xvcnMgb24geW91ciBzY3JlZW4gd2lsbCBjaGFuZ2UgZm9yIHRoZSBk
dXJhdGlvbiBvZiB0aGUgdGVzdGluZy5cbiI7CisgICAgICAgIHByaW50ICJcdFRoaXMgYWxsb3dz
IHRoZSBwaXhlbCB0ZXN0cyB0byBoYXZlIGNvbnNpc3RlbnQgY29sb3IgdmFsdWVzIGFjcm9zcyBh
bGwgbWFjaGluZXMuXG4iOworICAgICAgICAKKyAgICAgICAgaWYgKGlzUGVyaWFuSW5zdGFsbGVk
KCkpIHsKKyAgICAgICAgICAgIHByaW50ICJXQVJOSU5HOiBQZXJpYW4ncyBRdWlja1RpbWUgY29t
cG9uZW50IGlzIGluc3RhbGxlZCBhbmQgdGhpcyBtYXkgYWZmZWN0IHBpeGVsIHRlc3QgcmVzdWx0
cyFcbiI7CisgICAgICAgICAgICBwcmludCAiXHRZb3Ugc2hvdWxkIGF2b2lkIGdlbmVyYXRpbmcg
bmV3IHBpeGVsIHJlc3VsdHMgaW4gdGhpcyBlbnZpcm9ubWVudC5cbiI7CisgICAgICAgICAgICBw
cmludCAiXHRTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1
IGZvciBkZXRhaWxzLlxuIjsKKyAgICAgICAgfQorICAgIH0KK30KKworc3lzdGVtICJsbiIsICIt
cyIsICR0ZXN0RGlyZWN0b3J5LCAiL3RtcC9MYXlvdXRUZXN0cyIgdW5sZXNzIC14ICIvdG1wL0xh
eW91dFRlc3RzIjsKKworbXkgJWlnbm9yZWRGaWxlcyA9ICggInJlc3VsdHMuaHRtbCIgPT4gMSAp
OworbXkgJWlnbm9yZWREaXJlY3RvcmllcyA9IG1hcCB7ICRfID0+IDEgfSBxdyhwbGF0Zm9ybSk7
CitteSAlaWdub3JlZExvY2FsRGlyZWN0b3JpZXMgPSBtYXAgeyAkXyA9PiAxIH0gcXcoLnN2biBf
c3ZuIHJlc291cmNlcyBzY3JpcHQtdGVzdHMpOworbXkgJXN1cHBvcnRlZEZpbGVFeHRlbnNpb25z
ID0gbWFwIHsgJF8gPT4gMSB9IHF3KGh0bWwgc2h0bWwgeG1sIHhodG1sIHhodG1sbXAgcGwgcGhw
KTsKKworaWYgKCFjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiTWF0aE1MIiwgMCkpIHsKKyAg
ICAkaWdub3JlZERpcmVjdG9yaWVzeydtYXRobWwnfSA9IDE7Cit9CisKKyMgRklYTUU6IFdlIHNo
b3VsZCBmaXggd2Via2l0cGVybC9mZWF0dXJlcy5wbTpoYXNGZWF0dXJlKCkgdG8gZG8gdGhlIGNv
cnJlY3QgZmVhdHVyZSBkZXRlY3Rpb24gZm9yIEN5Z3dpbi4KK2lmIChjaGVja1dlYkNvcmVGZWF0
dXJlU3VwcG9ydCgiU1ZHIiwgMCkpIHsKKyAgICAkc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnN7J3N2
Zyd9ID0gMTsKK30gZWxzaWYgKGlzQ3lnd2luKCkpIHsKKyAgICAkc3VwcG9ydGVkRmlsZUV4dGVu
c2lvbnN7J3N2Zyd9ID0gMTsKK30gZWxzZSB7CisgICAgJGlnbm9yZWRMb2NhbERpcmVjdG9yaWVz
eydzdmcnfSA9IDE7Cit9CisKK2lmICghJHRlc3RIVFRQKSB7CisgICAgJGlnbm9yZWREaXJlY3Rv
cmllc3snaHR0cCd9ID0gMTsKKyAgICAkaWdub3JlZERpcmVjdG9yaWVzeyd3ZWJzb2NrZXQnfSA9
IDE7Cit9CisKK2lmICghJHRlc3RNZWRpYSkgeworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J21l
ZGlhJ30gPSAxOworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2h0dHAvdGVzdHMvbWVkaWEnfSA9
IDE7Cit9CisKK215ICRzdXBwb3J0ZWRGZWF0dXJlc1Jlc3VsdCA9ICIiOworCitpZiAoaXNDeWd3
aW4oKSkgeworICAgICMgQ29sbGVjdCBzdXBwb3J0ZWQgZmVhdHVyZXMgbGlzdAorICAgIHNldFBh
dGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlRU5WKTsKKyAgICBteSAkc3VwcG9ydGVkRmVhdHVyZXND
b21tYW5kID0gJGR1bXBUb29sIC4gIiAtLXByaW50LXN1cHBvcnRlZC1mZWF0dXJlcyAyPiYxIjsK
KyAgICAkc3VwcG9ydGVkRmVhdHVyZXNSZXN1bHQgPSBgJHN1cHBvcnRlZEZlYXR1cmVzQ29tbWFu
ZCAyPiYxYDsKK30KKworbXkgJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSAwOworbXkgJGhh
czNEUmVuZGVyaW5nID0gMDsKKworaWYgKGlzQ3lnd2luKCkpIHsKKyAgICAkaGFzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyA9ICRzdXBwb3J0ZWRGZWF0dXJlc1Jlc3VsdCA9fiAvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZy87CisgICAgJGhhczNEUmVuZGVyaW5nID0gJHN1cHBvcnRlZEZlYXR1cmVzUmVz
dWx0ID1+IC8zRFJlbmRlcmluZy87Cit9IGVsc2UgeworICAgICRoYXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nID0gY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIkFjY2VsZXJhdGVkIENvbXBvc2l0
aW5nIiwgMCk7CisgICAgJGhhczNEUmVuZGVyaW5nID0gY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBv
cnQoIjNEIFJlbmRlcmluZyIsIDApOworfQorCitpZiAoISRoYXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKSB7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snY29tcG9zaXRpbmcnfSA9IDE7Cit9CisK
K2lmICghJGhhczNEUmVuZGVyaW5nKSB7CisgICAgJGlnbm9yZWREaXJlY3Rvcmllc3snYW5pbWF0
aW9ucy8zZCd9ID0gMTsKKyAgICAkaWdub3JlZERpcmVjdG9yaWVzeyd0cmFuc2Zvcm1zLzNkJ30g
PSAxOworfQorCitpZiAoIWNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCIzRCBDYW52YXMiLCAw
KSkgeworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2Zhc3QvY2FudmFzL3dlYmdsJ30gPSAxOwor
fQorCitpZiAoY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIldNTCIsIDApKSB7CisgICAgJHN1
cHBvcnRlZEZpbGVFeHRlbnNpb25zeyd3bWwnfSA9IDE7Cit9IGVsc2UgeworICAgICRpZ25vcmVk
RGlyZWN0b3JpZXN7J2h0dHAvdGVzdHMvd21sJ30gPSAxOworICAgICRpZ25vcmVkRGlyZWN0b3Jp
ZXN7J2Zhc3Qvd21sJ30gPSAxOworICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J3dtbCd9ID0gMTsK
K30KKworaWYgKCFjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiWEhUTUxNUCIsIDApKSB7Cisg
ICAgJGlnbm9yZWREaXJlY3Rvcmllc3snZmFzdC94aHRtbG1wJ30gPSAxOworfQorCitwcm9jZXNz
SWdub3JlVGVzdHMoJGlnbm9yZVRlc3RzLCAiaWdub3JlLXRlc3RzIikgaWYgJGlnbm9yZVRlc3Rz
OworaWYgKCEkaWdub3JlU2tpcHBlZCkgeworICAgIGlmICghJHNraXBwZWRPbmx5IHx8IEBBUkdW
ID09IDApIHsKKyAgICAgICAgcmVhZFNraXBwZWRGaWxlcygiIik7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgIyBTaW5jZSByZWFkU2tpcHBlZEZpbGVzKCkgYXBwZW5kcyB0byBAQVJHViwgd2UgbXVz
dCB1c2UgYSBmb3JlYWNoCisgICAgICAgICMgbG9vcCBzbyB0aGF0IHdlIG9ubHkgaXRlcmF0ZSBv
dmVyIHRoZSBvcmlnaW5hbCBhcmd1bWVudCBsaXN0LgorICAgICAgICBmb3JlYWNoIG15ICRhcmdu
dW0gKDAgLi4gJCNBUkdWKSB7CisgICAgICAgICAgICByZWFkU2tpcHBlZEZpbGVzKHNoaWZ0IEBB
UkdWKTsKKyAgICAgICAgfQorICAgIH0KK30KKworbXkgQHRlc3RzID0gZmluZFRlc3RzVG9SdW4o
KTsKKworZGllICJubyB0ZXN0cyB0byBydW5cbiIgaWYgIUB0ZXN0czsKKworbXkgJWNvdW50czsK
K215ICV0ZXN0czsKK215ICVpbWFnZXNQcmVzZW50OworbXkgJWltYWdlRGlmZmVyZW5jZXM7Citt
eSAlZHVyYXRpb25zOworbXkgJGNvdW50ID0gMDsKK215ICRsZWFrc091dHB1dEZpbGVOdW1iZXIg
PSAxOworbXkgJHRvdGFsTGVha3MgPSAwOworCitteSBAdG9vbEFyZ3MgPSAoKTsKK3B1c2ggQHRv
b2xBcmdzLCAiLS1waXhlbC10ZXN0cyIgaWYgJHBpeGVsVGVzdHM7CitwdXNoIEB0b29sQXJncywg
Ii0tdGhyZWFkZWQiIGlmICR0aHJlYWRlZDsKK3B1c2ggQHRvb2xBcmdzLCAiLS1jb21wbGV4LXRl
eHQiIGlmICRjb21wbGV4VGV4dDsKK3B1c2ggQHRvb2xBcmdzLCAiLSI7CisKK215IEBkaWZmVG9v
bEFyZ3MgPSAoKTsKK3B1c2ggQGRpZmZUb29sQXJncywgIi0tdG9sZXJhbmNlIiwgJHRvbGVyYW5j
ZTsKKworJHwgPSAxOworCitteSAkZHVtcFRvb2xQSUQ7CitteSAkaXNEdW1wVG9vbE9wZW4gPSAw
OworbXkgJGR1bXBUb29sQ3Jhc2hlZCA9IDA7CitteSAkaW1hZ2VEaWZmVG9vbFBJRDsKK215ICRp
c0RpZmZUb29sT3BlbiA9IDA7CisKK215ICRhdExpbmVTdGFydCA9IDE7CitteSAkbGFzdERpcmVj
dG9yeSA9ICIiOworCitteSAkaXNIdHRwZE9wZW4gPSAwOworbXkgJGlzV2ViU29ja2V0U2VydmVy
T3BlbiA9IDA7CitteSAkd2ViU29ja2V0U2VydmVyUElEID0gMDsKK215ICRmYWlsZWRUb1N0YXJ0
V2ViU29ja2V0U2VydmVyID0gMDsKKyMgd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9y
bXMgc3VwcG9ydCBweU9wZW5TU0wuCisjIG15ICR3ZWJTb2NrZXRTZWN1cmVTZXJ2ZXJQSUQgPSAw
OworCitzdWIgY2F0Y2hfcGlwZSB7ICRkdW1wVG9vbENyYXNoZWQgPSAxOyB9CiskU0lHeyJQSVBF
In0gPSAiY2F0Y2hfcGlwZSI7CisKK3ByaW50ICJUZXN0aW5nICIsIHNjYWxhciBAdGVzdHMsICIg
dGVzdCBjYXNlcyI7CitwcmludCAiICRpdGVyYXRpb25zIHRpbWVzIiBpZiAoJGl0ZXJhdGlvbnMg
PiAxKTsKK3ByaW50ICIsIHJlcGVhdGluZyBlYWNoIHRlc3QgJHJlcGVhdEVhY2ggdGltZXMiIGlm
ICgkcmVwZWF0RWFjaCA+IDEpOworcHJpbnQgIi5cbiI7CisKK215ICRvdmVyYWxsU3RhcnRUaW1l
ID0gdGltZTsKKworbXkgJWV4cGVjdGVkUmVzdWx0UGF0aHM7CisKK215IEBvcmlnaW5hbFRlc3Rz
ID0gQHRlc3RzOworIyBBZGQgaW5kaXZpZHVhbCB0ZXN0IHJlcGV0aXRpb25zCitpZiAoJHJlcGVh
dEVhY2ggPiAxKSB7CisgICAgQHRlc3RzID0gKCk7CisgICAgZm9yZWFjaCBteSAkdGVzdCAoQG9y
aWdpbmFsVGVzdHMpIHsKKyAgICAgICAgZm9yIChteSAkaSA9IDA7ICRpIDwgJHJlcGVhdEVhY2g7
ICRpKyspIHsKKyAgICAgICAgICAgIHB1c2goQHRlc3RzLCAkdGVzdCk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisjIEFkZCB0ZXN0IHNldCByZXBldGl0aW9ucworZm9yIChteSAkaSA9IDE7ICRpIDwg
JGl0ZXJhdGlvbnM7ICRpKyspIHsKKyAgICBwdXNoKEB0ZXN0cywgQG9yaWdpbmFsVGVzdHMpOwor
fQorCitmb3IgbXkgJHRlc3QgKEB0ZXN0cykgeworICAgIG15ICRuZXdEdW1wVG9vbCA9IG5vdCAk
aXNEdW1wVG9vbE9wZW47CisgICAgb3BlbkR1bXBUb29sKCk7CisKKyAgICBteSAkYmFzZSA9IHN0
cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKKyAgICBteSAkZXhwZWN0ZWRFeHRlbnNpb24gPSAiLnR4dCI7
CisgICAgCisgICAgbXkgJGRpciA9ICRiYXNlOworICAgICRkaXIgPX4gc3wvW14vXSskfHw7CisK
KyAgICBpZiAoJG5ld0R1bXBUb29sIHx8ICRkaXIgbmUgJGxhc3REaXJlY3RvcnkpIHsKKyAgICAg
ICAgZm9yZWFjaCBteSAkbG9ndWUgKGVwaWxvZ3Vlc0FuZFByb2xvZ3VlcygkbmV3RHVtcFRvb2wg
PyAiIiA6ICRsYXN0RGlyZWN0b3J5LCAkZGlyKSkgeworICAgICAgICAgICAgaWYgKGlzQ3lnd2lu
KCkpIHsKKyAgICAgICAgICAgICAgICAkbG9ndWUgPSB0b1dpbmRvd3NQYXRoKCRsb2d1ZSk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRsb2d1ZSA9IGNhbm9ucGF0aCgk
bG9ndWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAg
ICAgICAgICAgICAgcHJpbnQgInJ1bm5pbmcgZXBpbG9ndWUgb3IgcHJvbG9ndWUgJGxvZ3VlXG4i
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgT1VUICIkbG9ndWVcbiI7CisgICAg
ICAgICAgICAjIFRocm93IGF3YXkgb3V0cHV0IGZyb20gRHVtcFJlbmRlclRyZWUuCisgICAgICAg
ICAgICAjIE9uY2UgZm9yIHRoZSB0ZXN0IG91dHB1dCBhbmQgb25jZSBmb3IgcGl4ZWwgcmVzdWx0
cyAoZW1wdHkpCisgICAgICAgICAgICB3aGlsZSAoPElOPikgeworICAgICAgICAgICAgICAgIGxh
c3QgaWYgLyNFT0YvOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKDxJTj4pIHsK
KyAgICAgICAgICAgICAgICBsYXN0IGlmIC8jRU9GLzsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICBwcmludCAicnVubmluZyAk
dGVzdCAtPiAiOworICAgICAgICAkYXRMaW5lU3RhcnQgPSAwOworICAgIH0gZWxzaWYgKCEkcXVp
ZXQpIHsKKyAgICAgICAgaWYgKCRkaXIgbmUgJGxhc3REaXJlY3RvcnkpIHsKKyAgICAgICAgICAg
IHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsKKyAgICAgICAgICAgIHByaW50ICIkZGly
ICI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIi4iOworICAgICAgICAkYXRMaW5lU3RhcnQg
PSAwOworICAgIH0KKworICAgICRsYXN0RGlyZWN0b3J5ID0gJGRpcjsKKworICAgIG15ICRyZXN1
bHQ7CisKKyAgICBteSAkc3RhcnRUaW1lID0gdGltZSBpZiAkcmVwb3J0MTBTbG93ZXN0OworCisg
ICAgIyBUcnkgdG8gcmVhZCBleHBlY3RlZCBoYXNoIGZpbGUgZm9yIHBpeGVsIHRlc3RzCisgICAg
bXkgJHN1ZmZpeEV4cGVjdGVkSGFzaCA9ICIiOworICAgIGlmICgkcGl4ZWxUZXN0cyAmJiAhJHJl
c2V0UmVzdWx0cykgeworICAgICAgICBteSAkZXhwZWN0ZWRQaXhlbERpciA9IGV4cGVjdGVkRGly
ZWN0b3J5Rm9yVGVzdCgkYmFzZSwgMCwgInBuZyIpOworICAgICAgICBpZiAob3BlbiBFWFBFQ1RF
REhBU0gsICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcuY2hlY2tzdW0iKSB7
CisgICAgICAgICAgICBteSAkZXhwZWN0ZWRIYXNoID0gPEVYUEVDVEVESEFTSD47CisgICAgICAg
ICAgICBjaG9tcCgkZXhwZWN0ZWRIYXNoKTsKKyAgICAgICAgICAgIGNsb3NlIEVYUEVDVEVESEFT
SDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIyBGb3JtYXQgZXhwZWN0ZWQgaGFzaCBpbnRv
IGEgc3VmZml4IHN0cmluZyB0aGF0IGlzIGFwcGVuZGVkIHRvIHRoZSBwYXRoIC8gVVJMIHBhc3Nl
ZCB0byBEUlQKKyAgICAgICAgICAgICRzdWZmaXhFeHBlY3RlZEhhc2ggPSAiJyRleHBlY3RlZEhh
c2giOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCR0ZXN0ID1+IC9eaHR0cFwvLykgewor
ICAgICAgICBjb25maWd1cmVBbmRPcGVuSFRUUERJZk5lZWRlZCgpOworICAgICAgICBpZiAoJHRl
c3QgIX4gL15odHRwXC90ZXN0c1wvbG9jYWxcLy8gJiYgJHRlc3QgIX4gL15odHRwXC90ZXN0c1wv
c3NsXC8vICYmICR0ZXN0ICF+IC9eaHR0cFwvdGVzdHNcL3dtbFwvLyAmJiAkdGVzdCAhfiAvXmh0
dHBcL3Rlc3RzXC9tZWRpYVwvLykgeworICAgICAgICAgICAgbXkgJHBhdGggPSBjYW5vbnBhdGgo
JHRlc3QpOworICAgICAgICAgICAgJHBhdGggPX4gcy9eaHR0cFwvdGVzdHNcLy8vOworICAgICAg
ICAgICAgcHJpbnQgT1VUICJodHRwOi8vMTI3LjAuMC4xOiRodHRwZFBvcnQvJHBhdGgkc3VmZml4
RXhwZWN0ZWRIYXNoXG4iOworICAgICAgICB9IGVsc2lmICgkdGVzdCA9fiAvXmh0dHBcL3Rlc3Rz
XC9zc2xcLy8pIHsKKyAgICAgICAgICAgIG15ICRwYXRoID0gY2Fub25wYXRoKCR0ZXN0KTsKKyAg
ICAgICAgICAgICRwYXRoID1+IHMvXmh0dHBcL3Rlc3RzXC8vLzsKKyAgICAgICAgICAgIHByaW50
IE9VVCAiaHR0cHM6Ly8xMjcuMC4wLjE6JGh0dHBkU1NMUG9ydC8kcGF0aCRzdWZmaXhFeHBlY3Rl
ZEhhc2hcbiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBteSAkdGVzdFBhdGggPSAi
JHRlc3REaXJlY3RvcnkvJHRlc3QiOworICAgICAgICAgICAgaWYgKGlzQ3lnd2luKCkpIHsKKyAg
ICAgICAgICAgICAgICAkdGVzdFBhdGggPSB0b1dpbmRvd3NQYXRoKCR0ZXN0UGF0aCk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICR0ZXN0UGF0aCA9IGNhbm9ucGF0aCgk
dGVzdFBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgT1VUICIkdGVzdFBh
dGgkc3VmZml4RXhwZWN0ZWRIYXNoXG4iOworICAgICAgICB9CisgICAgfSBlbHNpZiAoJHRlc3Qg
PX4gL153ZWJzb2NrZXRcLy8pIHsKKyAgICAgICAgaWYgKCR0ZXN0ID1+IC9ed2Vic29ja2V0XC90
ZXN0c1wvbG9jYWxcLy8pIHsKKyAgICAgICAgICAgIG15ICR0ZXN0UGF0aCA9ICIkdGVzdERpcmVj
dG9yeS8kdGVzdCI7CisgICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgeworICAgICAgICAgICAg
ICAgICR0ZXN0UGF0aCA9IHRvV2luZG93c1BhdGgoJHRlc3RQYXRoKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludCBPVVQgIiR0ZXN0UGF0aFxuIjsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChvcGVuV2ViU29ja2V0U2VydmVySWZOZWVk
ZWQoKSkgeworICAgICAgICAgICAgICAgIG15ICRwYXRoID0gY2Fub25wYXRoKCR0ZXN0KTsKKyAg
ICAgICAgICAgICAgICBpZiAoJHRlc3QgPX4gL153ZWJzb2NrZXRcL3Rlc3RzXC9zc2xcLy8pIHsK
KyAgICAgICAgICAgICAgICAgICAgIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3Jt
cyBzdXBwb3J0IHB5T3BlblNTTC4KKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJF
cnJvcjogd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5T
U0wuIjsKKyAgICAgICAgICAgICAgICAgICAgIyBwcmludCBPVVQgImh0dHBzOi8vMTI3LjAuMC4x
OiR3ZWJTb2NrZXRTZWN1cmVQb3J0LyRwYXRoXG4iOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cDovLzEyNy4wLjAuMTokd2ViU29j
a2V0UG9ydC8kcGF0aFxuIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICMgV2UgZmFpbGVkIHRvIGxhdW5jaCB0aGUgV2ViU29ja2V0IHNl
cnZlci4gIERpc3BsYXkgYSB1c2VmdWwgZXJyb3IgbWVzc2FnZSByYXRoZXIgdGhhbiBhdHRlbXB0
aW5nCisgICAgICAgICAgICAgICAgIyB0byBydW4gdGVzdHMgdGhhdCBleHBlY3QgdGhlIHNlcnZl
ciB0byBiZSBhdmFpbGFibGUuCisgICAgICAgICAgICAgICAgbXkgJGVycm9yTWVzc2FnZVBhdGgg
PSAiJHRlc3REaXJlY3Rvcnkvd2Vic29ja2V0L3Jlc291cmNlcy9zZXJ2ZXItZmFpbGVkLXRvLXN0
YXJ0Lmh0bWwiOworICAgICAgICAgICAgICAgICRlcnJvck1lc3NhZ2VQYXRoID0gaXNDeWd3aW4o
KSA/IHRvV2luZG93c1BhdGgoJGVycm9yTWVzc2FnZVBhdGgpIDogY2Fub25wYXRoKCRlcnJvck1l
c3NhZ2VQYXRoKTsKKyAgICAgICAgICAgICAgICBwcmludCBPVVQgIiRlcnJvck1lc3NhZ2VQYXRo
XG4iOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbXkg
JHRlc3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IjsKKyAgICAgICAgaWYgKGlzQ3lnd2lu
KCkpIHsKKyAgICAgICAgICAgICR0ZXN0UGF0aCA9IHRvV2luZG93c1BhdGgoJHRlc3RQYXRoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0ZXN0UGF0aCA9IGNhbm9ucGF0aCgkdGVz
dFBhdGgpOworICAgICAgICB9CisgICAgICAgIHByaW50IE9VVCAiJHRlc3RQYXRoJHN1ZmZpeEV4
cGVjdGVkSGFzaFxuIiBpZiBkZWZpbmVkICR0ZXN0UGF0aDsKKyAgICB9CisKKyAgICAjIER1bXBS
ZW5kZXJUcmVlIGlzIGV4cGVjdGVkIHRvIGR1bXAgdHdvICJibG9ja3MiIHRvIHN0ZG91dCBmb3Ig
ZWFjaCB0ZXN0LgorICAgICMgRWFjaCBibG9jayBpcyB0ZXJtaW5hdGVkIGJ5IGEgI0VPRiBvbiBh
IGxpbmUgYnkgaXRzZWxmLgorICAgICMgVGhlIGZpcnN0IGJsb2NrIGlzIHRoZSBvdXRwdXQgb2Yg
dGhlIHRlc3QgKGluIHRleHQsIFJlbmRlclRyZWUgb3Igb3RoZXIgZm9ybWF0cykuCisgICAgIyBU
aGUgc2Vjb25kIGJsb2NrIGlzIGZvciBvcHRpb25hbCBwaXhlbCBkYXRhIGluIFBORyBmb3JtYXQs
IGFuZCBtYXkgYmUgZW1wdHkgaWYKKyAgICAjIHBpeGVsIHRlc3RzIGFyZSBub3QgYmVpbmcgcnVu
LCBvciB0aGUgdGVzdCBkb2VzIG5vdCBkdW1wIHBpeGVscyAoZS5nLiB0ZXh0IHRlc3RzKS4KKyAg
ICBteSAkcmVhZFJlc3VsdHMgPSByZWFkRnJvbUR1bXBUb29sV2l0aFRpbWVyKElOLCBFUlJPUik7
CisKKyAgICBteSAkYWN0dWFsID0gJHJlYWRSZXN1bHRzLT57b3V0cHV0fTsKKyAgICBteSAkZXJy
b3IgPSAkcmVhZFJlc3VsdHMtPntlcnJvcn07CisKKyAgICAkZXhwZWN0ZWRFeHRlbnNpb24gPSAk
cmVhZFJlc3VsdHMtPntleHRlbnNpb259OworICAgIG15ICRleHBlY3RlZEZpbGVOYW1lID0gIiRi
YXNlLSRleHBlY3RlZFRhZy4kZXhwZWN0ZWRFeHRlbnNpb24iOworCisgICAgbXkgJGlzVGV4dCA9
IGlzVGV4dE9ubHlUZXN0KCRhY3R1YWwpOworCisgICAgbXkgJGV4cGVjdGVkRGlyID0gZXhwZWN0
ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNlLCAkaXNUZXh0LCAkZXhwZWN0ZWRFeHRlbnNpb24pOwor
ICAgICRleHBlY3RlZFJlc3VsdFBhdGhzeyRiYXNlfSA9ICIkZXhwZWN0ZWREaXIvJGV4cGVjdGVk
RmlsZU5hbWUiOworCisgICAgdW5sZXNzICgkcmVhZFJlc3VsdHMtPntzdGF0dXN9IGVxICJzdWNj
ZXNzIikgeworICAgICAgICBteSAkY3Jhc2hlZCA9ICRyZWFkUmVzdWx0cy0+e3N0YXR1c30gZXEg
ImNyYXNoZWQiOworICAgICAgICB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJHRlc3QsICRiYXNlLCAk
Y3Jhc2hlZCwgJGFjdHVhbCwgJGVycm9yKTsKKyAgICAgICAgY291bnRGaW5pc2hlZFRlc3QoJHRl
c3QsICRiYXNlLCAkY3Jhc2hlZCA/ICJjcmFzaCIgOiAidGltZWRvdXQiLCAwKTsKKyAgICAgICAg
bGFzdCBpZiBzdG9wUnVubmluZ1Rlc3RzRWFybHlJZk5lZWRlZCgpOworICAgICAgICBuZXh0Owor
ICAgIH0KKworICAgICRkdXJhdGlvbnN7JHRlc3R9ID0gdGltZSAtICRzdGFydFRpbWUgaWYgJHJl
cG9ydDEwU2xvd2VzdDsKKworICAgIG15ICRleHBlY3RlZDsKKworICAgIGlmICghJHJlc2V0UmVz
dWx0cyAmJiBvcGVuIEVYUEVDVEVELCAiPCIsICIkZXhwZWN0ZWREaXIvJGV4cGVjdGVkRmlsZU5h
bWUiKSB7CisgICAgICAgICRleHBlY3RlZCA9ICIiOworICAgICAgICB3aGlsZSAoPEVYUEVDVEVE
PikgeworICAgICAgICAgICAgbmV4dCBpZiAkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzICYmICRfID1+
IC9eRURJVElORyBERUxFR0FURTovOworICAgICAgICAgICAgJGV4cGVjdGVkIC49ICRfOworICAg
ICAgICB9CisgICAgICAgIGNsb3NlIEVYUEVDVEVEOworICAgIH0KKworICAgIGlmICgkaWdub3Jl
TWV0cmljcyAmJiAhJGlzVGV4dCAmJiBkZWZpbmVkICRleHBlY3RlZCkgeworICAgICAgICAoJGFj
dHVhbCwgJGV4cGVjdGVkKSA9IHN0cmlwTWV0cmljcygkYWN0dWFsLCAkZXhwZWN0ZWQpOworICAg
IH0KKworICAgIGlmICgkc2hvdWxkQ2hlY2tMZWFrcyAmJiAkdGVzdHNQZXJEdW1wVG9vbCA9PSAx
KSB7CisgICAgICAgIHByaW50ICIgICAgICAgICR0ZXN0IC0+ICI7CisgICAgfQorCisgICAgbXkg
JGFjdHVhbFBORyA9ICIiOworICAgIG15ICRkaWZmUE5HID0gIiI7CisgICAgbXkgJGRpZmZQZXJj
ZW50YWdlID0gMDsKKyAgICBteSAkZGlmZlJlc3VsdCA9ICJwYXNzZWQiOworCisgICAgbXkgJGFj
dHVhbEhhc2ggPSAiIjsKKyAgICBteSAkZXhwZWN0ZWRIYXNoID0gIiI7CisgICAgbXkgJGFjdHVh
bFBOR1NpemUgPSAwOworCisgICAgd2hpbGUgKDxJTj4pIHsKKyAgICAgICAgbGFzdCBpZiAvI0VP
Ri87CisgICAgICAgIGlmICgvQWN0dWFsSGFzaDogKFthLWYwLTldezMyfSkvKSB7CisgICAgICAg
ICAgICAkYWN0dWFsSGFzaCA9ICQxOworICAgICAgICB9IGVsc2lmICgvRXhwZWN0ZWRIYXNoOiAo
W2EtZjAtOV17MzJ9KS8pIHsKKyAgICAgICAgICAgICRleHBlY3RlZEhhc2ggPSAkMTsKKyAgICAg
ICAgfSBlbHNpZiAoL0NvbnRlbnQtTGVuZ3RoOiAoXGQrKVxzKi8pIHsKKyAgICAgICAgICAgICRh
Y3R1YWxQTkdTaXplID0gJDE7CisgICAgICAgICAgICByZWFkKElOLCAkYWN0dWFsUE5HLCAkYWN0
dWFsUE5HU2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoJHZlcmJvc2UgJiYgJHBp
eGVsVGVzdHMgJiYgISRyZXNldFJlc3VsdHMgJiYgJGFjdHVhbFBOR1NpemUpIHsKKyAgICAgICAg
aWYgKCRhY3R1YWxIYXNoIGVxICIiICYmICRleHBlY3RlZEhhc2ggZXEgIiIpIHsKKyAgICAgICAg
ICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogYWN0dWFsICYg
ZXhwZWN0ZWQgcGl4ZWwgaGFzaGVzIGFyZSBtaXNzaW5nISIpOworICAgICAgICB9IGVsc2lmICgk
YWN0dWFsSGFzaCBlcSAiIikgeworICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRl
c3QoJHRlc3QsICJXQVJOSU5HOiBhY3R1YWwgcGl4ZWwgaGFzaCBpcyBtaXNzaW5nISIpOworICAg
ICAgICB9IGVsc2lmICgkZXhwZWN0ZWRIYXNoIGVxICIiKSB7CisgICAgICAgICAgICBwcmludEZh
aWx1cmVNZXNzYWdlRm9yVGVzdCgkdGVzdCwgIldBUk5JTkc6IGV4cGVjdGVkIHBpeGVsIGhhc2gg
aXMgbWlzc2luZyEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgkYWN0dWFsUE5HU2l6
ZSA+IDApIHsKKyAgICAgICAgbXkgJGV4cGVjdGVkUGl4ZWxEaXIgPSBleHBlY3RlZERpcmVjdG9y
eUZvclRlc3QoJGJhc2UsIDAsICJwbmciKTsKKworICAgICAgICBpZiAoISRyZXNldFJlc3VsdHMg
JiYgKCRleHBlY3RlZEhhc2ggbmUgJGFjdHVhbEhhc2ggfHwgKCRhY3R1YWxIYXNoIGVxICIiICYm
ICRleHBlY3RlZEhhc2ggZXEgIiIpKSkgeworICAgICAgICAgICAgaWYgKC1mICIkZXhwZWN0ZWRQ
aXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIikgeworICAgICAgICAgICAgICAgIG15ICRl
eHBlY3RlZFBOR1NpemUgPSAtcyAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFn
LnBuZyI7CisgICAgICAgICAgICAgICAgbXkgJGV4cGVjdGVkUE5HID0gIiI7CisgICAgICAgICAg
ICAgICAgb3BlbiBFWFBFQ1RFRFBORywgIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3Rl
ZFRhZy5wbmciOworICAgICAgICAgICAgICAgIHJlYWQoRVhQRUNURURQTkcsICRleHBlY3RlZFBO
RywgJGV4cGVjdGVkUE5HU2l6ZSk7CisKKyAgICAgICAgICAgICAgICBvcGVuRGlmZlRvb2woKTsK
KyAgICAgICAgICAgICAgICBwcmludCBESUZGT1VUICJDb250ZW50LUxlbmd0aDogJGFjdHVhbFBO
R1NpemVcbiI7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRk9VVCAkYWN0dWFsUE5HOworCisg
ICAgICAgICAgICAgICAgcHJpbnQgRElGRk9VVCAiQ29udGVudC1MZW5ndGg6ICRleHBlY3RlZFBO
R1NpemVcbiI7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRk9VVCAkZXhwZWN0ZWRQTkc7CisK
KyAgICAgICAgICAgICAgICB3aGlsZSAoPERJRkZJTj4pIHsKKyAgICAgICAgICAgICAgICAgICAg
bGFzdCBpZiAvXmVycm9yLyB8fCAvXmRpZmY6LzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKC9D
b250ZW50LUxlbmd0aDogKFxkKylccyovKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFk
KERJRkZJTiwgJGRpZmZQTkcsICQxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgvXmRpZmY6ICguKyklIChwYXNzZWR8ZmFp
bGVkKS8pIHsKKyAgICAgICAgICAgICAgICAgICAgJGRpZmZQZXJjZW50YWdlID0gJDEgKyAwOwor
ICAgICAgICAgICAgICAgICAgICAkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0gPSAkZGlmZlBlcmNl
bnRhZ2U7CisgICAgICAgICAgICAgICAgICAgICRkaWZmUmVzdWx0ID0gJDI7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghJGRpZmZQZXJj
ZW50YWdlKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0
KCR0ZXN0LCAicGl4ZWwgaGFzaCBmYWlsZWQgKGJ1dCBwaXhlbCB0ZXN0IHN0aWxsIHBhc3Nlcyki
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgewor
ICAgICAgICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklO
RzogZXhwZWN0ZWQgaW1hZ2UgaXMgbWlzc2luZyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIGlmICgkcmVzZXRSZXN1bHRzIHx8ICEtZiAiJGV4cGVjdGVkUGl4ZWxEaXIv
JGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIpIHsKKyAgICAgICAgICAgIG1rcGF0aCBjYXRmaWxlKCRl
eHBlY3RlZFBpeGVsRGlyLCBkaXJuYW1lKCRiYXNlKSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4
cGVjdGVkUGl4ZWxEaXI7CisgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVkUGl4ZWxE
aXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBuZyIsICRhY3R1YWxQTkcpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCRhY3R1YWxIYXNoIG5lICIiICYmICgkcmVzZXRSZXN1bHRzIHx8ICEtZiAiJGV4
cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLmNoZWNrc3VtIikpIHsKKyAgICAgICAg
ICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcuY2hl
Y2tzdW0iLCAkYWN0dWFsSGFzaCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZHVtcFRv
b2xEaWRDcmFzaCgpKSB7CisgICAgICAgICRyZXN1bHQgPSAiY3Jhc2giOworICAgICAgICB0ZXN0
Q3Jhc2hlZE9yVGltZWRPdXQoJHRlc3QsICRiYXNlLCAxLCAkYWN0dWFsLCAkZXJyb3IpOworICAg
IH0gZWxzaWYgKCFkZWZpbmVkICRleHBlY3RlZCkgeworICAgICAgICBpZiAoJHZlcmJvc2UpIHsK
KyAgICAgICAgICAgIHByaW50ICJuZXcgIiAuICgkcmVzZXRSZXN1bHRzID8gInJlc3VsdCIgOiAi
dGVzdCIpIC4iXG4iOworICAgICAgICAgICAgJGF0TGluZVN0YXJ0ID0gMTsKKyAgICAgICAgfQor
ICAgICAgICAkcmVzdWx0ID0gIm5ldyI7CisKKyAgICAgICAgaWYgKCRnZW5lcmF0ZU5ld1Jlc3Vs
dHMgfHwgJHJlc2V0UmVzdWx0cykgeworICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJGV4cGVj
dGVkRGlyLCBkaXJuYW1lKCRiYXNlKSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4cGVjdGVkRGly
OworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFt
ZSIsICRhY3R1YWwpOworICAgICAgICB9CisgICAgICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFs
UmVzdWx0cygkYmFzZSk7CisgICAgICAgIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCRiYXNl
LCAkYWN0dWFsKTsKKyAgICAgICAgaWYgKCEkcmVzZXRSZXN1bHRzKSB7CisgICAgICAgICAgICAj
IEFsd2F5cyBwcmludCB0aGUgZmlsZSBuYW1lIGZvciBuZXcgdGVzdHMsIGFzIHRoZXkgd2lsbCBw
cm9iYWJseSBuZWVkIHNvbWUgbWFudWFsIGluc3BlY3Rpb24uCisgICAgICAgICAgICAjIGluIHZl
cmJvc2UgbW9kZSB3ZSBhbHJlYWR5IHByaW50ZWQgdGhlIHRlc3QgY2FzZSwgc28gbm8gbmVlZCB0
byBkbyBpdCBhZ2Fpbi4KKyAgICAgICAgICAgIHVubGVzcyAoJHZlcmJvc2UpIHsKKyAgICAgICAg
ICAgICAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgICAgICAgICAgICAg
cHJpbnQgIiR0ZXN0IC0+ICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBteSAkcmVzdWx0
c0RpciA9IGNhdGRpcigkZXhwZWN0ZWREaXIsIGRpcm5hbWUoJGJhc2UpKTsKKyAgICAgICAgICAg
IGlmICgkZ2VuZXJhdGVOZXdSZXN1bHRzKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIm5ldyAo
cmVzdWx0cyBnZW5lcmF0ZWQgaW4gJHJlc3VsdHNEaXIpXG4iOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBwcmludCAibmV3XG4iOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgJGF0TGluZVN0YXJ0ID0gMTsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhY3R1YWwg
ZXEgJGV4cGVjdGVkICYmICRkaWZmUmVzdWx0IGVxICJwYXNzZWQiKSB7CisgICAgICAgIGlmICgk
dmVyYm9zZSkgeworICAgICAgICAgICAgcHJpbnQgInN1Y2NlZWRlZFxuIjsKKyAgICAgICAgICAg
ICRhdExpbmVTdGFydCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCA9ICJtYXRjaCI7
CisgICAgICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgJHJlc3VsdCA9ICJtaXNtYXRjaCI7CisKKyAgICAgICAgbXkgJHBpeGVs
VGVzdEZhaWxlZCA9ICRwaXhlbFRlc3RzICYmICRkaWZmUE5HICYmICRkaWZmUE5HIG5lICIiOwor
ICAgICAgICBteSAkdGVzdEZhaWxlZCA9ICRhY3R1YWwgbmUgJGV4cGVjdGVkOworCisgICAgICAg
IG15ICRtZXNzYWdlID0gISR0ZXN0RmFpbGVkID8gInBpeGVsIHRlc3QgZmFpbGVkIiA6ICJmYWls
ZWQiOworCisgICAgICAgIGlmICgoJHRlc3RGYWlsZWQgfHwgJHBpeGVsVGVzdEZhaWxlZCkgJiYg
JGFkZFBsYXRmb3JtRXhjZXB0aW9ucykgeworICAgICAgICAgICAgbXkgJHRlc3RCYXNlID0gY2F0
ZmlsZSgkdGVzdERpcmVjdG9yeSwgJGJhc2UpOworICAgICAgICAgICAgbXkgJGV4cGVjdGVkQmFz
ZSA9IGNhdGZpbGUoJGV4cGVjdGVkRGlyLCAkYmFzZSk7CisgICAgICAgICAgICBteSAkdGVzdElz
TWF4aW1hbGx5UGxhdGZvcm1TcGVjaWZpYyA9ICR0ZXN0QmFzZSA9fiBtfF5cUSRwbGF0Zm9ybVRl
c3REaXJlY3RvcnlcRS98OworICAgICAgICAgICAgbXkgJGV4cGVjdGVkUmVzdWx0SXNNYXhpbWFs
bHlQbGF0Zm9ybVNwZWNpZmljID0gJGV4cGVjdGVkQmFzZSA9fiBtfF5cUSRwbGF0Zm9ybVRlc3RE
aXJlY3RvcnlcRS98OworICAgICAgICAgICAgaWYgKCEkdGVzdElzTWF4aW1hbGx5UGxhdGZvcm1T
cGVjaWZpYyAmJiAhJGV4cGVjdGVkUmVzdWx0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmljKSB7
CisgICAgICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwg
ZGlybmFtZSgkYmFzZSkpOworICAgICAgICAgICAgICAgIGlmICgkdGVzdEZhaWxlZCkgeworICAg
ICAgICAgICAgICAgICAgICBteSAkZXhwZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0
RGlyZWN0b3J5LCAiJGV4cGVjdGVkRmlsZU5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgd3Jp
dGVUb0ZpbGUoIiRleHBlY3RlZEZpbGUiLCAkYWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKCRwaXhlbFRlc3RGYWlsZWQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbXkgJGV4cGVjdGVkRmlsZSA9IGNhdGZpbGUoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSwgIiRi
YXNlLSRleHBlY3RlZFRhZy5jaGVja3N1bSIpOworICAgICAgICAgICAgICAgICAgICB3cml0ZVRv
RmlsZSgiJGV4cGVjdGVkRmlsZSIsICRhY3R1YWxIYXNoKTsKKworICAgICAgICAgICAgICAgICAg
ICAkZXhwZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGJhc2Ut
JGV4cGVjdGVkVGFnLnBuZyIpOworICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4
cGVjdGVkRmlsZSIsICRhY3R1YWxQTkcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAkbWVzc2FnZSAuPSAiIChyZXN1bHRzIGdlbmVyYXRlZCBpbiAkcGxhdGZvcm1UZXN0RGly
ZWN0b3J5KSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcmludEZhaWx1
cmVNZXNzYWdlRm9yVGVzdCgkdGVzdCwgJG1lc3NhZ2UpOworCisgICAgICAgIG15ICRkaXIgPSAi
JHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKKyAgICAgICAgJGRpciA9fiBzfC8oW14vXSsp
JHx8IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICAg
ICAgbXkgJHRlc3ROYW1lID0gJDE7CisgICAgICAgIG1rcGF0aCAkZGlyOworCisgICAgICAgIGRl
bGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisgICAgICAgIHJlY29yZEFjdHVh
bFJlc3VsdHNBbmREaWZmKCRiYXNlLCAkYWN0dWFsKTsKKworICAgICAgICBpZiAoJHBpeGVsVGVz
dEZhaWxlZCkgeworICAgICAgICAgICAgJGltYWdlc1ByZXNlbnR7JGJhc2V9ID0gMTsKKworICAg
ICAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFs
VGFnLnBuZyIsICRhY3R1YWxQTkcpOworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVz
dWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcucG5nIiwgJGRpZmZQTkcpOworCisgICAgICAg
ICAgICBteSAkZXhwZWN0ZWRQaXhlbERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFz
ZSwgMCwgInBuZyIpOworICAgICAgICAgICAgY29weSgiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2Ut
JGV4cGVjdGVkVGFnLnBuZyIsICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVk
VGFnLnBuZyIpOworCisgICAgICAgICAgICBvcGVuIERJRkZIVE1MLCAiPiR0ZXN0UmVzdWx0c0Rp
cmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcuaHRtbCIgb3IgZGllOworICAgICAgICAgICAgcHJpbnQg
RElGRkhUTUwgIjxodG1sPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8aGVhZD5c
biI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRpdGxlPiRiYXNlIEltYWdlIENvbXBh
cmU8L3RpdGxlPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8c2NyaXB0IGxhbmd1
YWdlPVwiSmF2YXNjcmlwdFwiIHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbiI7CisgICAgICAg
ICAgICBwcmludCBESUZGSFRNTCAidmFyIGN1cnJlbnRJbWFnZSA9IDA7XG4iOworICAgICAgICAg
ICAgcHJpbnQgRElGRkhUTUwgInZhciBpbWFnZU5hbWVzID0gbmV3IEFycmF5KFwiQWN0dWFsXCIs
IFwiRXhwZWN0ZWRcIik7XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgInZhciBpbWFn
ZVBhdGhzID0gbmV3IEFycmF5KFwiJHRlc3ROYW1lLSRhY3R1YWxUYWcucG5nXCIsIFwiJHRlc3RO
YW1lLSRleHBlY3RlZFRhZy5wbmdcIik7XG4iOworICAgICAgICAgICAgaWYgKC1mICIkdGVzdERp
cmVjdG9yeS8kYmFzZS13M2MucG5nIikgeworICAgICAgICAgICAgICAgIGNvcHkoIiR0ZXN0RGly
ZWN0b3J5LyRiYXNlLXczYy5wbmciLCAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLXczYy5w
bmciKTsKKyAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VOYW1lcy5wdXNoKFwi
VzNDXCIpO1xuIjsKKyAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VQYXRocy5w
dXNoKFwiJHRlc3ROYW1lLXczYy5wbmdcIik7XG4iOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcHJpbnQgRElGRkhUTUwgImZ1bmN0aW9uIGFuaW1hdGVJbWFnZSgpIHtcbiI7CisgICAgICAg
ICAgICBwcmludCBESUZGSFRNTCAiICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKFwiYW5pbWF0ZWRJbWFnZVwiKTtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAi
ICAgIHZhciBpbWFnZVRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImltYWdlVGV4dFwi
KTtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIGltYWdlLnNyYyA9IGltYWdl
UGF0aHNbY3VycmVudEltYWdlXTtcbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAg
IGltYWdlVGV4dC5pbm5lckhUTUwgPSBpbWFnZU5hbWVzW2N1cnJlbnRJbWFnZV0gKyBcIiBJbWFn
ZVwiO1xuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgY3VycmVudEltYWdlID0g
KGN1cnJlbnRJbWFnZSArIDEpICUgaW1hZ2VOYW1lcy5sZW5ndGg7XG4iOworICAgICAgICAgICAg
cHJpbnQgRElGRkhUTUwgIiAgICBzZXRUaW1lb3V0KCdhbmltYXRlSW1hZ2UoKScsMjAwMCk7XG4i
OworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIn1cbiI7CisgICAgICAgICAgICBwcmludCBE
SUZGSFRNTCAiPC9zY3JpcHQ+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvaGVh
ZD5cbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPGJvZHkgb25Mb2FkPVwiYW5pbWF0
ZUltYWdlKCk7XCI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0YWJsZT5cbiI7
CisgICAgICAgICAgICBpZiAoJGRpZmZQZXJjZW50YWdlKSB7CisgICAgICAgICAgICAgICAgcHJp
bnQgRElGRkhUTUwgIjx0cj5cbiI7CisgICAgICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0
ZD5EaWZmZXJlbmNlIGJldHdlZW4gaW1hZ2VzOiA8YSBocmVmPVwiJHRlc3ROYW1lLSRkaWZmc1Rh
Zy5wbmdcIj4kZGlmZlBlcmNlbnRhZ2UlPC9hPjwvdGQ+XG4iOworICAgICAgICAgICAgICAgIHBy
aW50IERJRkZIVE1MICI8L3RyPlxuIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50
IERJRkZIVE1MICI8dHI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD48YSBo
cmVmPVwiIiAuIHRvVVJMKCIkdGVzdERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPnRlc3QgZmlsZTwv
YT48L3RkPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKKyAgICAg
ICAgICAgIHByaW50IERJRkZIVE1MICI8dHI+XG4iOworICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjx0ZCBpZD1cImltYWdlVGV4dFwiIHN0eWxlPVwidGV4dC13ZWlnaHQ6IGJvbGQ7XCI+QWN0
dWFsIEltYWdlPC90ZD5cbiI7CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC90cj5cbiI7
CisgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRyPlxuIjsKKyAgICAgICAgICAgIHByaW50
IERJRkZIVE1MICI8dGQ+PGltZyBzcmM9XCIkdGVzdE5hbWUtJGFjdHVhbFRhZy5wbmdcIiBpZD1c
ImFuaW1hdGVkSW1hZ2VcIj48L3RkPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8
L3RyPlxuIjsKKyAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RhYmxlPlxuIjsKKyAgICAg
ICAgICAgIHByaW50IERJRkZIVE1MICI8L2JvZHk+XG4iOworICAgICAgICAgICAgcHJpbnQgRElG
RkhUTUwgIjwvaHRtbD5cbiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoJGVycm9yKSB7
CisgICAgICAgIG15ICRkaXIgPSAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKKyAgICAg
ICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1l
IGZyb20gYmFzZVxuIjsKKyAgICAgICAgbWtwYXRoICRkaXI7CisgICAgICAgIAorICAgICAgICB3
cml0ZVRvRmlsZSgiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRlcnJvclRhZy50eHQiLCAk
ZXJyb3IpOworICAgICAgICAKKyAgICAgICAgJGNvdW50c3tlcnJvcn0rKzsKKyAgICAgICAgcHVz
aCBAeyR0ZXN0c3tlcnJvcn19LCAkdGVzdDsKKyAgICB9CisKKyAgICBjb3VudEZpbmlzaGVkVGVz
dCgkdGVzdCwgJGJhc2UsICRyZXN1bHQsICRpc1RleHQpOworICAgIGxhc3QgaWYgc3RvcFJ1bm5p
bmdUZXN0c0Vhcmx5SWZOZWVkZWQoKTsKK30KKworbXkgJHRvdGFsVGVzdGluZ1RpbWUgPSB0aW1l
IC0gJG92ZXJhbGxTdGFydFRpbWU7CitteSAkd2FpdFRpbWUgPSBnZXRXYWl0VGltZSgpOworaWYg
KCR3YWl0VGltZSA+IDAuMSkgeworICAgIG15ICRub3JtYWxpemVkVGVzdGluZ1RpbWUgPSAkdG90
YWxUZXN0aW5nVGltZSAtICR3YWl0VGltZTsKKyAgICBwcmludGYgIlxuJTAuMmZzIEhUVFBEIHdh
aXRpbmcgdGltZVxuIiwgJHdhaXRUaW1lIC4gIiI7CisgICAgcHJpbnRmICIlMC4yZnMgbm9ybWFs
aXplZCB0ZXN0aW5nIHRpbWUiLCAkbm9ybWFsaXplZFRlc3RpbmdUaW1lIC4gIiI7Cit9Citwcmlu
dGYgIlxuJTAuMmZzIHRvdGFsIHRlc3RpbmcgdGltZVxuIiwgJHRvdGFsVGVzdGluZ1RpbWUgLiAi
IjsKKworISRpc0R1bXBUb29sT3BlbiB8fCBkaWUgIkZhaWxlZCB0byBjbG9zZSAkZHVtcFRvb2xO
YW1lLlxuIjsKKworJGlzSHR0cGRPcGVuID0gIWNsb3NlSFRUUEQoKTsKK2Nsb3NlV2ViU29ja2V0
U2VydmVyKCk7CisKKyMgQmVjYXVzZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhpcyBzY3JpcHQg
YXJlIHJ1bm5pbmcgY29uY3VycmVudGx5IHdlIGNhbm5vdCAKKyMgc2FmZWx5IGRlbGV0ZSB0aGlz
IHN5bWxpbmsuCisjIHN5c3RlbSAicm0gL3RtcC9MYXlvdXRUZXN0cyI7CisKKyMgRklYTUU6IERv
IHdlIHJlYWxseSB3YW50IHRvIGNoZWNrIHRoZSBpbWFnZS1jb21wYXJpc29uIHRvb2wgZm9yIGxl
YWtzIGV2ZXJ5IHRpbWU/CitpZiAoJGlzRGlmZlRvb2xPcGVuICYmICRzaG91bGRDaGVja0xlYWtz
KSB7CisgICAgJHRvdGFsTGVha3MgKz0gY291bnRBbmRQcmludExlYWtzKCJJbWFnZURpZmYiLCAk
aW1hZ2VEaWZmVG9vbFBJRCwgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS9JbWFnZURpZmYtbGVha3Mu
dHh0Iik7Cit9CisKK2lmICgkdG90YWxMZWFrcykgeworICAgIGlmICgkbWVyZ2VEZXB0aCkgewor
ICAgICAgICBwYXJzZUxlYWtzYW5kUHJpbnRVbmlxdWVMZWFrcygpOworICAgIH0gZWxzZSB7IAor
ICAgICAgICBwcmludCAiXG5XQVJOSU5HOiAkdG90YWxMZWFrcyB0b3RhbCBsZWFrcyBmb3VuZCFc
biI7CisgICAgICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwgbGVha3MgcmVzdWx0
cy5cbiIgaWYgKCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKKyAgICB9Cit9CisKK2Nsb3Nl
IElOOworY2xvc2UgT1VUOworY2xvc2UgRVJST1I7CisKK2lmICgkcmVwb3J0MTBTbG93ZXN0KSB7
CisgICAgcHJpbnQgIlxuXG5UaGUgMTAgc2xvd2VzdCB0ZXN0czpcblxuIjsKKyAgICBteSAkY291
bnQgPSAwOworICAgIGZvciBteSAkdGVzdCAoc29ydCBzbG93ZXN0Y21wIGtleXMgJWR1cmF0aW9u
cykgeworICAgICAgICBwcmludGYgIiUwLjJmIHNlY3M6ICVzXG4iLCAkZHVyYXRpb25zeyR0ZXN0
fSwgJHRlc3Q7CisgICAgICAgIGxhc3QgaWYgKyskY291bnQgPT0gMTA7CisgICAgfQorfQorCitw
cmludCAiXG4iOworCitpZiAoJHNraXBwZWRPbmx5ICYmICRjb3VudHN7Im1hdGNoIn0pIHsKKyAg
ICBwcmludCAiVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgaW4gdGhlIFNraXBwZWQgZmlsZSAoIiAu
IEZpbGU6OlNwZWMtPmFiczJyZWwoIiRwbGF0Zm9ybVRlc3REaXJlY3RvcnkvU2tpcHBlZCIsICR0
ZXN0RGlyZWN0b3J5KSAuICIpLCBidXQgc3VjY2VlZGVkOlxuIjsKKyAgICBmb3JlYWNoIG15ICR0
ZXN0IChAeyR0ZXN0c3sibWF0Y2gifX0pIHsKKyAgICAgICAgcHJpbnQgIiAgJHRlc3RcbiI7Cisg
ICAgfQorfQorCitpZiAoJHJlc2V0UmVzdWx0cyB8fCAoJGNvdW50c3ttYXRjaH0gJiYgJGNvdW50
c3ttYXRjaH0gPT0gJGNvdW50KSkgeworICAgIHByaW50ICJhbGwgJGNvdW50IHRlc3QgY2FzZXMg
c3VjY2VlZGVkXG4iOworICAgIHVubGluayAkdGVzdFJlc3VsdHM7CisgICAgZXhpdDsKK30KKwor
cHJpbnRSZXN1bHRzKCk7CisKK21rcGF0aCAkdGVzdFJlc3VsdHNEaXJlY3Rvcnk7CisKK29wZW4g
SFRNTCwgIj4iLCAkdGVzdFJlc3VsdHMgb3IgZGllICJGYWlsZWQgdG8gb3BlbiAkdGVzdFJlc3Vs
dHMuICQhIjsKK3ByaW50IEhUTUwgIjxodG1sPlxuIjsKK3ByaW50IEhUTUwgIjxoZWFkPlxuIjsK
K3ByaW50IEhUTUwgIjx0aXRsZT5MYXlvdXQgVGVzdCBSZXN1bHRzPC90aXRsZT5cbiI7Citwcmlu
dCBIVE1MICI8L2hlYWQ+XG4iOworcHJpbnQgSFRNTCAiPGJvZHk+XG4iOworCitpZiAoJGlnbm9y
ZU1ldHJpY3MpIHsKKyAgICBwcmludCBIVE1MICI8aDQ+VGVzdGVkIHdpdGggbWV0cmljcyBpZ25v
cmVkLjwvaDQ+IjsKK30KKworcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVz
dHN7bWlzbWF0Y2h9fSwgIlRlc3RzIHdoZXJlIHJlc3VsdHMgZGlkIG5vdCBtYXRjaCBleHBlY3Rl
ZCByZXN1bHRzIiwgXCZsaW5rc0Zvck1pc21hdGNoVGVzdCk7CitwcmludCBIVE1MIGh0bWxGb3JS
ZXN1bHRzU2VjdGlvbihAeyR0ZXN0c3t0aW1lZG91dH19LCAiVGVzdHMgdGhhdCB0aW1lZCBvdXQi
LCBcJmxpbmtzRm9yRXJyb3JUZXN0KTsKK3ByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNTZWN0aW9u
KEB7JHRlc3Rze2NyYXNofX0sICJUZXN0cyB0aGF0IGNhdXNlZCB0aGUgRHVtcFJlbmRlclRyZWUg
dG9vbCB0byBjcmFzaCIsIFwmbGlua3NGb3JFcnJvclRlc3QpOworcHJpbnQgSFRNTCBodG1sRm9y
UmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7ZXJyb3J9fSwgIlRlc3RzIHRoYXQgaGFkIHN0ZGVyciBv
dXRwdXQiLCBcJmxpbmtzRm9yRXJyb3JUZXN0KTsKK3ByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNT
ZWN0aW9uKEB7JHRlc3Rze25ld319LCAiVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0
cyAocHJvYmFibHkgbmV3KSIsIFwmbGlua3NGb3JOZXdUZXN0KTsKKworcHJpbnQgSFRNTCAiPC9i
b2R5PlxuIjsKK3ByaW50IEhUTUwgIjwvaHRtbD5cbiI7CitjbG9zZSBIVE1MOworCitteSBAY29u
ZmlndXJhdGlvbkFyZ3MgPSBhcmd1bWVudHNGb3JDb25maWd1cmF0aW9uKCk7CisKK2lmIChpc0d0
aygpKSB7CisgIHN5c3RlbSAiV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIiLCBAY29u
ZmlndXJhdGlvbkFyZ3MsICJmaWxlOi8vIi4kdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsK
K30gZWxzaWYgKGlzUXQoKSkgeworICB1bnNoaWZ0IEBjb25maWd1cmF0aW9uQXJncywgcXcoLWdy
YXBoaWNzc3lzdGVtIHJhc3RlciAtc3R5bGUgd2luZG93cyk7CisgIGlmIChpc0N5Z3dpbigpKSB7
CisgICAgJHRlc3RSZXN1bHRzID0gIi8iIC4gdG9XaW5kb3dzUGF0aCgkdGVzdFJlc3VsdHMpOwor
ICAgICR0ZXN0UmVzdWx0cyA9fiBzL1xcL1wvL2c7CisgIH0KKyAgc3lzdGVtICJXZWJLaXRUb29s
cy9TY3JpcHRzL3J1bi1sYXVuY2hlciIsIEBjb25maWd1cmF0aW9uQXJncywgImZpbGU6Ly8iLiR0
ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOworfSBlbHNpZiAoaXNDeWd3aW4oKSkgeworICBz
eXN0ZW0gImN5Z3N0YXJ0IiwgJHRlc3RSZXN1bHRzIGlmICRsYXVuY2hTYWZhcmk7Cit9IGVsc2Ug
eworICBzeXN0ZW0gIldlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXNhZmFyaSIsIEBjb25maWd1cmF0
aW9uQXJncywgIi1OU09wZW4iLCAkdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKK30KKwor
Y2xvc2VDeWdwYXRocygpIGlmIGlzQ3lnd2luKCk7CisKK2V4aXQgMTsKKworc3ViIGNvdW50QW5k
UHJpbnRMZWFrcygkJCQpCit7CisgICAgbXkgKCRkdW1wVG9vbE5hbWUsICRkdW1wVG9vbFBJRCwg
JGxlYWtzRmlsZVBhdGgpID0gQF87CisKKyAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3Rh
cnQ7CisgICAgJGF0TGluZVN0YXJ0ID0gMTsKKworICAgICMgV2UgYXJlIGV4Y2x1ZGluZyB0aGUg
Zm9sbG93aW5nIHJlcG9ydGVkIGxlYWtzIHNvIHRoZXkgZG9uJ3QgZ2V0IGluIG91ciB3YXkgd2hl
biBsb29raW5nIGZvciBXZWJLaXQgbGVha3M6CisgICAgIyBUaGlzIGFsbG93cyB1cyBpZ25vcmUg
a25vd24gbGVha3MgYW5kIG9ubHkgYmUgYWxlcnRlZCB3aGVuIG5ldyBsZWFrcyBvY2N1ci4gU29t
ZSBsZWFrcyBhcmUgaW4gdGhlIG9sZAorICAgICMgdmVyc2lvbnMgb2YgdGhlIHN5c3RlbSBmcmFt
ZXdvcmtzIHRoYXQgYXJlIGJlaW5nIHVzZWQgYnkgdGhlIGxlYWtzIGJvdHMuIEV2ZW4gdGhvdWdo
IGEgbGVhayBoYXMgYmVlbgorICAgICMgZml4ZWQsIGl0IHdpbGwgYmUgbGlzdGVkIGhlcmUgdW50
aWwgdGhlIGJvdCBoYXMgYmVlbiB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIGZyYW1ld29ya3MuCisK
KyAgICBteSBAdHlwZXNUb0V4Y2x1ZGUgPSAoCisgICAgKTsKKworICAgIG15IEBjYWxsU3RhY2tz
VG9FeGNsdWRlID0gKAorICAgICAgICAiRmxhc2hfRW5mb3JjZUxvY2FsU2VjdXJpdHkiICMgbGVh
a3MgaW4gRmxhc2ggcGx1Zy1pbiBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDQ5NzQ3CisgICAgKTsK
KworICAgIGlmIChpc1RpZ2VyKCkpIHsKKyAgICAgICAgIyBMZWFrIGxpc3QgZm9yIHRoZSB2ZXJz
aW9uIG9mIFRpZ2VyIHVzZWQgb24gdGhlIGJ1aWxkIGJvdC4KKyAgICAgICAgcHVzaCBAY2FsbFN0
YWNrc1RvRXhjbHVkZSwgKAorICAgICAgICAgICAgIkNGUnVuTG9vcFJ1blNwZWNpZmljIFxcfCBt
YWxsb2Nfem9uZV9tYWxsb2MiLCAiQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgXFx8IENGQWxsb2NhdG9y
QWxsb2NhdGUgIiwgIyBsZWFrIGluIENGUnVuTG9vcFJ1blNwZWNpZmljLCByZGFyOi8vcHJvYmxl
bS80NjcwODM5CisgICAgICAgICAgICAiQ0dJbWFnZVNvdXJjZUdldFByb3BlcnRpZXNBdEluZGV4
IiwgIyBsZWFrIGluIEltYWdlSU8sIHJkYXI6Ly9wcm9ibGVtLzQ2Mjg4MDkKKyAgICAgICAgICAg
ICJGT0dldENvdmVyZWRVbmljb2RlQ2hhcnMiLCAjIGxlYWsgaW4gQVRTLCByZGFyOi8vcHJvYmxl
bS8zOTQzNjA0CisgICAgICAgICAgICAiR2V0TGluZURpcmVjdGlvblByZWZlcmVuY2UiLCAiSW5p
dFVuaWNvZGVVdGlsaXRpZXMiLCAjIGxlYWtzIHRvb2wgZmFsc2VseSByZXBvcnRpbmcgbGVhayBp
biBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyLCByZGFyOi8vcHJvYmxlbS80OTY0Nzkw
CisgICAgICAgICAgICAiSUNDRlByZWZXcmFwcGVyOjpHZXRQcmVmRGljdGlvbmFyeSIsICMgbGVh
a3MgaW4gSW50ZXJuZXQgQ29uZmlnLiBjb2RlLCByZGFyOi8vcHJvYmxlbS80NDQ5Nzk0CisgICAg
ICAgICAgICAiTlNIVFRQVVJMUHJvdG9jb2wgc2V0UmVzcG9uc2VIZWFkZXI6IiwgIyBsZWFrIGlu
IG11bHRpcGFydC9taXhlZC1yZXBsYWNlIGhhbmRsaW5nIGluIEZvdW5kYXRpb24sIG5vIFJhZGFy
LCBidXQgZml4ZWQgaW4gTGVvcGFyZAorICAgICAgICAgICAgIk5TVVJMQ2FjaGUgY2FjaGVkUmVz
cG9uc2VGb3JSZXF1ZXN0IiwgIyBsZWFrIGluIENGVVJMIGNhY2hlLCByZGFyOi8vcHJvYmxlbS80
NzY4NDMwCisgICAgICAgICAgICAiUENGcmFnUHJlcGFyZUNsb3N1cmVGcm9tRmlsZSIsICMgbGVh
ayBpbiBDb2RlIEZyYWdtZW50IE1hbmFnZXIsIHJkYXI6Ly9wcm9ibGVtLzM0MjY5OTgKKyAgICAg
ICAgICAgICJXZWJDb3JlOjpTZWxlY3Rpb246OnRvUmFuZ2UiLCAjIGJ1ZyBpbiAnbGVha3MnLCBy
ZGFyOi8vcHJvYmxlbS80OTY3OTQ5CisgICAgICAgICAgICAiV2ViQ29yZTo6U3VicmVzb3VyY2VM
b2FkZXI6OmNyZWF0ZSIsICMgYnVnIGluICdsZWFrcycsIHJkYXI6Ly9wcm9ibGVtLzQ5ODU4MDYK
KyAgICAgICAgICAgICJfQ0ZQcmVmZXJlbmNlc0RvbWFpbkRlZXBDb3B5RGljdGlvbmFyeSIsICMg
bGVhayBpbiBDRlByZWZlcmVuY2VzLCByZGFyOi8vcHJvYmxlbS80MjIwNzg2CisgICAgICAgICAg
ICAiX29iamNfbXNnRm9yd2FyZCIsICMgbGVhayBpbiBOU1NwZWxsQ2hlY2tlciwgcmRhcjovL3By
b2JsZW0vNDk2NTI3OAorICAgICAgICAgICAgImdsZEdldFN0cmluZyIsICMgbGVhayBpbiBPcGVu
R0wsIHJkYXI6Ly9wcm9ibGVtLzUwMTM2OTkKKyAgICAgICAgICAgICJfc2V0RGVmYXVsdFVzZXJJ
bmZvRnJvbVVSTCIsICMgbGVhayBpbiBOU0hUVFBBdXRoZW50aWNhdG9yLCByZGFyOi8vcHJvYmxl
bS81NTQ2NDUzIAorICAgICAgICAgICAgIlNTTEhhbmRzaGFrZSIsICMgbGVhayBpbiBTU0wsIHJk
YXI6Ly9wcm9ibGVtLzU1NDY0NDAgCisgICAgICAgICAgICAiU2VjQ2VydGlmaWNhdGVDcmVhdGVG
cm9tRGF0YSIsICMgbGVhayBpbiBTU0wgY29kZSwgcmRhcjovL3Byb2JsZW0vNDQ2NDM5NworICAg
ICAgICApOworICAgICAgICBwdXNoIEB0eXBlc1RvRXhjbHVkZSwgKAorICAgICAgICAgICAgIlRI
UkQiLCAjIGJ1ZyBpbiAnbGVha3MnLCByZGFyOi8vcHJvYmxlbS8zMzg3NzgzCisgICAgICAgICAg
ICAiRFJIVCIsICMgZGl0dG8gKGVuZGlhbiBsaXR0bGUgaGF0ZSBpKQorICAgICAgICApOworICAg
IH0KKworICAgIGlmIChpc0xlb3BhcmQoKSkgeworICAgICAgICAjIExlYWsgbGlzdCBmb3IgdGhl
IHZlcnNpb24gb2YgTGVvcGFyZCB1c2VkIG9uIHRoZSBidWlsZCBib3QuCisgICAgICAgIHB1c2gg
QGNhbGxTdGFja3NUb0V4Y2x1ZGUsICgKKyAgICAgICAgICAgICJDRkhUVFBNZXNzYWdlQXBwZW5k
Qnl0ZXMiLCAjIGxlYWsgaW4gQ0ZOZXR3b3JrLCByZGFyOi8vcHJvYmxlbS81NDM1OTEyCisgICAg
ICAgICAgICAic2VuZERpZFJlY2VpdmVEYXRhQ2FsbGJhY2siLCAjIGxlYWsgaW4gQ0ZOZXR3b3Jr
LCByZGFyOi8vcHJvYmxlbS81NDQxNjE5CisgICAgICAgICAgICAiX0NGSFRUUFJlYWRTdHJlYW1S
ZWFkTWFyayIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE0NjgKKyAg
ICAgICAgICAgICJodHRwUHJvdG9jb2xTdGFydCIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6
Ly9wcm9ibGVtLzU0Njg4MzcKKyAgICAgICAgICAgICJfQ0ZVUkxDb25uZWN0aW9uU2VuZENhbGxi
YWNrcyIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0NDE2MDAKKyAgICAg
ICAgICAgICJEaXNwYXRjaFFUTXNnIiwgIyBsZWFrIGluIFF1aWNrVGltZSwgUFBDIG9ubHksIHJk
YXI6Ly9wcm9ibGVtLzU2NjcxMzIKKyAgICAgICAgICAgICJRVE1vdmllQ29udGVudFZpZXcgY3Jl
YXRlVmlzdWFsQ29udGV4dCIsICMgbGVhayBpbiBRdWlja1RpbWUsIFBQQyBvbmx5LCByZGFyOi8v
cHJvYmxlbS81NjY3MTMyCisgICAgICAgICAgICAiX0NvcHlBcmNoaXRlY3R1cmVzRm9ySlZNVmVy
c2lvbiIsICMgbGVhayBpbiBKYXZhLCByZGFyOi8vcHJvYmxlbS81OTEwODIzCisgICAgICAgICk7
CisgICAgfQorCisgICAgaWYgKGlzU25vd0xlb3BhcmQoKSkgeworICAgICAgICBwdXNoIEBjYWxs
U3RhY2tzVG9FeGNsdWRlLCAoCisgICAgICAgICAgICAicmVhZE1ha2VyTm90ZVByb3BzIiwgIyA8
cmRhcjovL3Byb2JsZW0vNzE1NjQzMj4gbGVhayBpbiBJbWFnZUlPCisgICAgICAgICAgICAiUVRL
aXRNb3ZpZUNvbnRyb2xsZXJWaWV3IGNvbXBsZXRlVUlTZXR1cCIsICMgPHJkYXI6Ly9wcm9ibGVt
LzcxNTUxNTY+IGxlYWsgaW4gUVRLaXQKKyAgICAgICAgICAgICJnZXRWTUluaXRBcmdzIiwgIyA8
cmRhcjovL3Byb2JsZW0vNzcxNDQ0ND4gbGVhayBpbiBKYXZhCisgICAgICAgICAgICAiSmF2YV9q
YXZhX2xhbmdfU3lzdGVtX2luaXRQcm9wZXJ0aWVzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzcxNDQ2
NT4gbGVhayBpbiBKYXZhCisgICAgICAgICk7CisgICAgfQorCisgICAgbXkgJGxlYWtzVG9vbCA9
IHNvdXJjZURpcigpIC4gIi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi1sZWFrcyI7CisgICAgbXkg
JGV4Y2x1ZGVTdHJpbmcgPSAiLS1leGNsdWRlLWNhbGxzdGFjayAnIiAuIChqb2luICInIC0tZXhj
bHVkZS1jYWxsc3RhY2sgJyIsIEBjYWxsU3RhY2tzVG9FeGNsdWRlKSAuICInIjsKKyAgICAkZXhj
bHVkZVN0cmluZyAuPSAiIC0tZXhjbHVkZS10eXBlICciIC4gKGpvaW4gIicgLS1leGNsdWRlLXR5
cGUgJyIsIEB0eXBlc1RvRXhjbHVkZSkgLiAiJyIgaWYgQHR5cGVzVG9FeGNsdWRlOworCisgICAg
cHJpbnQgIiA/IGNoZWNraW5nIGZvciBsZWFrcyBpbiAkZHVtcFRvb2xOYW1lXG4iOworICAgIG15
ICRsZWFrc091dHB1dCA9IGAkbGVha3NUb29sICRleGNsdWRlU3RyaW5nICRkdW1wVG9vbFBJRGA7
CisgICAgbXkgKCRjb3VudCwgJGJ5dGVzKSA9ICRsZWFrc091dHB1dCA9fiAvUHJvY2VzcyAkZHVt
cFRvb2xQSUQ6IChcZCspIGxlYWtzPyBmb3IgKFxkKykgdG90YWwvOworICAgIG15ICgkZXhjbHVk
ZWQpID0gJGxlYWtzT3V0cHV0ID1+IC8oXGQrKSBsZWFrcz8gZXhjbHVkZWQvOworCisgICAgbXkg
JGFkanVzdGVkQ291bnQgPSAkY291bnQ7CisgICAgJGFkanVzdGVkQ291bnQgLT0gJGV4Y2x1ZGVk
IGlmICRleGNsdWRlZDsKKworICAgIGlmICghJGFkanVzdGVkQ291bnQpIHsKKyAgICAgICAgcHJp
bnQgIiAtIG5vIGxlYWtzIGZvdW5kXG4iOworICAgICAgICB1bmxpbmsgJGxlYWtzRmlsZVBhdGg7
CisgICAgICAgIHJldHVybiAwOworICAgIH0gZWxzZSB7CisgICAgICAgIG15ICRkaXIgPSAkbGVh
a3NGaWxlUGF0aDsKKyAgICAgICAgJGRpciA9fiBzfC9bXi9dKyR8fCBvciBkaWU7CisgICAgICAg
IG1rcGF0aCAkZGlyOworCisgICAgICAgIGlmICgkZXhjbHVkZWQpIHsKKyAgICAgICAgICAgIHBy
aW50ICIgKyAkYWRqdXN0ZWRDb3VudCBsZWFrcyAoJGJ5dGVzIGJ5dGVzIGluY2x1ZGluZyAkZXhj
bHVkZWQgZXhjbHVkZWQgbGVha3MpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBh
dGhcbiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludCAiICsgJGNvdW50IGxl
YWtzICgkYnl0ZXMgYnl0ZXMpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhc
biI7CisgICAgICAgIH0KKworICAgICAgICB3cml0ZVRvRmlsZSgkbGVha3NGaWxlUGF0aCwgJGxl
YWtzT3V0cHV0KTsKKyAgICAgICAgCisgICAgICAgIHB1c2ggQGxlYWtzRmlsZW5hbWVzLCAkbGVh
a3NGaWxlUGF0aDsKKyAgICB9CisKKyAgICByZXR1cm4gJGFkanVzdGVkQ291bnQ7Cit9CisKK3N1
YiB3cml0ZVRvRmlsZSgkJCkKK3sKKyAgICBteSAoJGZpbGVQYXRoLCAkY29udGVudHMpID0gQF87
CisgICAgb3BlbiBORVdGSUxFLCAiPiIsICIkZmlsZVBhdGgiIG9yIGRpZSAiQ291bGQgbm90IGNy
ZWF0ZSAkZmlsZVBhdGguICQhXG4iOworICAgIHByaW50IE5FV0ZJTEUgJGNvbnRlbnRzOworICAg
IGNsb3NlIE5FV0ZJTEU7Cit9CisKKyMgQnJlYWsgdXAgYSBwYXRoIGludG8gdGhlIGRpcmVjdG9y
eSAod2l0aCBzbGFzaCkgYW5kIGJhc2UgbmFtZS4KK3N1YiBzcGxpdHBhdGgoJCkKK3sKKyAgICBt
eSAoJHBhdGgpID0gQF87CisKKyAgICBteSAkcGF0aFNlcGFyYXRvciA9ICIvIjsKKyAgICBteSAk
ZGlybmFtZSA9IGRpcm5hbWUoJHBhdGgpIC4gJHBhdGhTZXBhcmF0b3I7CisgICAgJGRpcm5hbWUg
PSAiIiBpZiAkZGlybmFtZSBlcSAiLiIgLiAkcGF0aFNlcGFyYXRvcjsKKworICAgIHJldHVybiAo
JGRpcm5hbWUsIGJhc2VuYW1lKCRwYXRoKSk7Cit9CisKKyMgU29ydCBmaXJzdCBieSBkaXJlY3Rv
cnksIHRoZW4gYnkgZmlsZSwgc28gYWxsIHBhdGhzIGluIG9uZSBkaXJlY3RvcnkgYXJlIGdyb3Vw
ZWQKKyMgcmF0aGVyIHRoYW4gYmVpbmcgaW50ZXJzcGVyc2VkIHdpdGggaXRlbXMgZnJvbSBzdWJk
aXJlY3Rvcmllcy4KKyMgVXNlIG51bWVyaWNjbXAgdG8gc29ydCBkaXJlY3RvcnkgYW5kIGZpbGVu
YW1lcyB0byBtYWtlIG9yZGVyIGxvZ2ljYWwuCitzdWIgcGF0aGNtcCgkJCkKK3sKKyAgICBteSAo
JHBhdGhhLCAkcGF0aGIpID0gQF87CisKKyAgICBteSAoJGRpcmEsICRuYW1lYSkgPSBzcGxpdHBh
dGgoJHBhdGhhKTsKKyAgICBteSAoJGRpcmIsICRuYW1lYikgPSBzcGxpdHBhdGgoJHBhdGhiKTsK
KworICAgIHJldHVybiBudW1lcmljY21wKCRkaXJhLCAkZGlyYikgaWYgJGRpcmEgbmUgJGRpcmI7
CisgICAgcmV0dXJuIG51bWVyaWNjbXAoJG5hbWVhLCAkbmFtZWIpOworfQorCisjIFNvcnQgbnVt
ZXJpYyBwYXJ0cyBvZiBzdHJpbmdzIGFzIG51bWJlcnMsIG90aGVyIHBhcnRzIGFzIHN0cmluZ3Mu
CisjIE1ha2VzIDEuMzMgY29tZSBhZnRlciAxLjMsIHdoaWNoIGlzIGNvb2wuCitzdWIgbnVtZXJp
Y2NtcCgkJCkKK3sKKyAgICBteSAoJGFhLCAkYmIpID0gQF87CisKKyAgICBteSBAYSA9IHNwbGl0
IC8oXGQrKS8sICRhYTsKKyAgICBteSBAYiA9IHNwbGl0IC8oXGQrKS8sICRiYjsKKworICAgICMg
Q29tcGFyZSBvbmUgY2h1bmsgYXQgYSB0aW1lLgorICAgICMgRWFjaCBjaHVuayBpcyBlaXRoZXIg
YWxsIG51bWVyaWMgZGlnaXRzLCBvciBhbGwgbm90IG51bWVyaWMgZGlnaXRzLgorICAgIHdoaWxl
IChAYSAmJiBAYikgeworICAgICAgICBteSAkYSA9IHNoaWZ0IEBhOworICAgICAgICBteSAkYiA9
IHNoaWZ0IEBiOworICAgICAgICAKKyAgICAgICAgIyBVc2UgbnVtZXJpYyBjb21wYXJpc29uIGlm
IGNodW5rcyBhcmUgbm9uLWVxdWFsIG51bWJlcnMuCisgICAgICAgIHJldHVybiAkYSA8PT4gJGIg
aWYgJGEgPX4gL15cZC8gJiYgJGIgPX4gL15cZC8gJiYgJGEgIT0gJGI7CisKKyAgICAgICAgIyBV
c2Ugc3RyaW5nIGNvbXBhcmlzb24gaWYgY2h1bmtzIGFyZSBhbnkgb3RoZXIga2luZCBvZiBub24t
ZXF1YWwgc3RyaW5nLgorICAgICAgICByZXR1cm4gJGEgY21wICRiIGlmICRhIG5lICRiOworICAg
IH0KKyAgICAKKyAgICAjIE9uZSBvZiB0aGUgdHdvIGlzIG5vdyBlbXB0eTsgY29tcGFyZSBsZW5n
dGhzIGZvciByZXN1bHQgaW4gdGhpcyBjYXNlLgorICAgIHJldHVybiBAYSA8PT4gQGI7Cit9CisK
KyMgU29ydCBzbG93ZXN0IHRlc3RzIGZpcnN0Lgorc3ViIHNsb3dlc3RjbXAoJCQpCit7CisgICAg
bXkgKCR0ZXN0YSwgJHRlc3RiKSA9IEBfOworCisgICAgbXkgJGR1cmEgPSAkZHVyYXRpb25zeyR0
ZXN0YX07CisgICAgbXkgJGR1cmIgPSAkZHVyYXRpb25zeyR0ZXN0Yn07CisgICAgcmV0dXJuICRk
dXJiIDw9PiAkZHVyYSBpZiAkZHVyYSAhPSAkZHVyYjsKKyAgICByZXR1cm4gcGF0aGNtcCgkdGVz
dGEsICR0ZXN0Yik7Cit9CisKK3N1YiBsYXVuY2hXaXRoRW52KFxAXCUpCit7CisgICAgbXkgKCRh
cmdzLCAkZW52KSA9IEBfOworCisgICAgIyBEdW1wIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGFz
IHBlcmwgY29kZSBhbmQgdGhlbiBwdXQgaXQgaW4gcXVvdGVzIHNvIGl0IGlzIG9uZSBwYXJhbWV0
ZXIuCisgICAgbXkgJGVudmlyb25tZW50RHVtcGVyID0gRGF0YTo6RHVtcGVyLT5uZXcoW1wleyRl
bnZ9XSwgW3F3KCpFTlYpXSk7CisgICAgJGVudmlyb25tZW50RHVtcGVyLT5JbmRlbnQoMCk7Cisg
ICAgJGVudmlyb25tZW50RHVtcGVyLT5QdXJpdHkoMSk7CisgICAgbXkgJGFsbEVudlZhcnMgPSAk
ZW52aXJvbm1lbnREdW1wZXItPkR1bXAoKTsKKyAgICB1bnNoaWZ0IEB7JGFyZ3N9LCAiXCIkYWxs
RW52VmFyc1wiIjsKKworICAgIG15ICRleGVjU2NyaXB0ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShz
b3VyY2VEaXIoKSwgcXcoV2ViS2l0VG9vbHMgU2NyaXB0cyBleGVjQXBwV2l0aEVudikpOworICAg
IHVuc2hpZnQgQHskYXJnc30sICRleGVjU2NyaXB0OworICAgIHJldHVybiBAeyRhcmdzfTsKK30K
Kworc3ViIHJlc29sdmVBbmRNYWtlVGVzdFJlc3VsdHNEaXJlY3RvcnkoKQoreworICAgIG15ICRh
YnNUZXN0UmVzdWx0c0RpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoZ2xvYiAkdGVzdFJl
c3VsdHNEaXJlY3RvcnkpOworICAgIG1rcGF0aCAkYWJzVGVzdFJlc3VsdHNEaXJlY3Rvcnk7Cisg
ICAgcmV0dXJuICRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeTsKK30KKworc3ViIG9wZW5EaWZmVG9v
bCgpCit7CisgICAgcmV0dXJuIGlmICRpc0RpZmZUb29sT3BlbjsKKyAgICByZXR1cm4gaWYgISRw
aXhlbFRlc3RzOworCisgICAgbXkgJUNMRUFOX0VOVjsKKyAgICAkQ0xFQU5fRU5We01hbGxvY1N0
YWNrTG9nZ2luZ30gPSAxIGlmICRzaG91bGRDaGVja0xlYWtzOworICAgICRpbWFnZURpZmZUb29s
UElEID0gb3BlbjIoXCpESUZGSU4sIFwqRElGRk9VVCwgJGltYWdlRGlmZlRvb2wsIGxhdW5jaFdp
dGhFbnYoQGRpZmZUb29sQXJncywgJUNMRUFOX0VOVikpIG9yIGRpZSAidW5hYmxlIHRvIG9wZW4g
JGltYWdlRGlmZlRvb2xcbiI7CisgICAgJGlzRGlmZlRvb2xPcGVuID0gMTsKK30KKworc3ViIG9w
ZW5EdW1wVG9vbCgpCit7CisgICAgcmV0dXJuIGlmICRpc0R1bXBUb29sT3BlbjsKKworICAgIG15
ICVDTEVBTl9FTlY7CisKKyAgICAjIEdlbmVyaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAg
aWYgKGRlZmluZWQgJEVOVnsnV0VCS0lUX1RFU1RGT05UUyd9KSB7CisgICAgICAgICRDTEVBTl9F
TlZ7V0VCS0lUX1RFU1RGT05UU30gPSAkRU5WeydXRUJLSVRfVEVTVEZPTlRTJ307CisgICAgfQor
CisgICAgIyB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgZWFjaCBEdW1wUmVuZGVydHJl
ZSAtIG5lZWRlZCBmb3IgcnVubmluZyBtb3JlIER1bXBSZW5kZXJUcmVlIGluIHBhcmFsbGVsCisg
ICAgJENMRUFOX0VOVntEVU1QUkVOREVSVFJFRV9URU1QfSA9IEZpbGU6OlRlbXA6OnRlbXBkaXIo
J0R1bXBSZW5kZXJUcmVlLVhYWFhYWCcsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+IDEpOworICAg
ICRDTEVBTl9FTlZ7WE1MX0NBVEFMT0dfRklMRVN9ID0gIiI7ICMgd29yayBhcm91bmQgbWlzc2lu
ZyAvZXRjL2NhdGFsb2cgPHJkYXI6Ly9wcm9ibGVtLzQyOTI5OTU+CisKKyAgICAjIFBsYXRmb3Jt
IHNwZXNpZmljcworICAgIGlmIChpc0xpbnV4KCkpIHsKKyAgICAgICAgaWYgKGRlZmluZWQgJEVO
VnsnRElTUExBWSd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We0RJU1BMQVl9ID0gJEVOVnsn
RElTUExBWSd9OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJENMRUFOX0VOVntESVNQ
TEFZfSA9ICI6MSI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnWEFVVEhP
UklUWSd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We1hBVVRIT1JJVFl9ID0gJEVOVnsnWEFV
VEhPUklUWSd9OworICAgICAgICB9CisKKyAgICAgICAgJENMRUFOX0VOVntIT01FfSA9ICRFTlZ7
J0hPTUUnfTsKKworICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydMRF9MSUJSQVJZX1BBVEgnfSkg
eworICAgICAgICAgICAgJENMRUFOX0VOVntMRF9MSUJSQVJZX1BBVEh9ID0gJEVOVnsnTERfTElC
UkFSWV9QQVRIJ307CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnREJVU19T
RVNTSU9OX0JVU19BRERSRVNTJ30pIHsKKyAgICAgICAgICAgICRDTEVBTl9FTlZ7REJVU19TRVNT
SU9OX0JVU19BRERSRVNTfSA9ICRFTlZ7J0RCVVNfU0VTU0lPTl9CVVNfQUREUkVTUyd9OworICAg
ICAgICB9CisgICAgfSBlbHNpZiAoaXNEYXJ3aW4oKSkgeworICAgICAgICBpZiAoZGVmaW5lZCAk
RU5WeydEWUxEX0xJQlJBUllfUEFUSCd9KSB7CisgICAgICAgICAgICAkQ0xFQU5fRU5We0RZTERf
TElCUkFSWV9QQVRIfSA9ICRFTlZ7J0RZTERfTElCUkFSWV9QQVRIJ307CisgICAgICAgIH0KKwor
ICAgICAgICAkQ0xFQU5fRU5We0RZTERfRlJBTUVXT1JLX1BBVEh9ID0gJHByb2R1Y3REaXI7Cisg
ICAgICAgICRDTEVBTl9FTlZ7RFlMRF9JTlNFUlRfTElCUkFSSUVTfSA9ICIvdXNyL2xpYi9saWJn
bWFsbG9jLmR5bGliIiBpZiAkZ3VhcmRNYWxsb2M7CisgICAgfSBlbHNpZiAoaXNDeWd3aW4oKSkg
eworICAgICAgICAkQ0xFQU5fRU5We0hPTUVEUklWRX0gPSAkRU5WeydIT01FRFJJVkUnfTsKKyAg
ICAgICAgJENMRUFOX0VOVntIT01FUEFUSH0gPSAkRU5WeydIT01FUEFUSCd9OworCisgICAgICAg
IHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0QXBwKFwlQ0xFQU5fRU5WKTsKKyAgICB9CisKKyAgICAj
IFBvcnQgc3Blc2lmaWNzCisgICAgaWYgKGlzUXQoKSkgeworICAgICAgICAkQ0xFQU5fRU5We1FU
V0VCS0lUX1BMVUdJTl9QQVRIfSA9IHByb2R1Y3REaXIoKSAuICIvbGliL3BsdWdpbnMiOworICAg
IH0KKyAgICAKKyAgICBteSBAYXJncyA9ICgkZHVtcFRvb2wsIEB0b29sQXJncyk7CisgICAgaWYg
KGlzQXBwbGVNYWNXZWJLaXQoKSBhbmQgIWlzVGlnZXIoKSkgeyAKKyAgICAgICAgdW5zaGlmdCBA
YXJncywgImFyY2giLCAiLSIgLiBhcmNoaXRlY3R1cmUoKTsgICAgICAgICAgICAgCisgICAgfQor
CisgICAgaWYgKCR1c2VWYWxncmluZCkgeworICAgICAgICB1bnNoaWZ0IEBhcmdzLCAidmFsZ3Jp
bmQiLCAiLS1zdXBwcmVzc2lvbnM9JHBsYXRmb3JtQmFzZURpcmVjdG9yeS9xdC9TdXBwcmVzc2Vk
VmFsZ3JpbmRFcnJvcnMiOworICAgIH0gCisKKyAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9n
Z2luZ30gPSAxIGlmICRzaG91bGRDaGVja0xlYWtzOworCisgICAgJGR1bXBUb29sUElEID0gb3Bl
bjMoXCpPVVQsIFwqSU4sIFwqRVJST1IsIGxhdW5jaFdpdGhFbnYoQGFyZ3MsICVDTEVBTl9FTlYp
KSBvciBkaWUgIkZhaWxlZCB0byBzdGFydCB0b29sOiAkZHVtcFRvb2xcbiI7CisgICAgJGlzRHVt
cFRvb2xPcGVuID0gMTsKKyAgICAkZHVtcFRvb2xDcmFzaGVkID0gMDsKK30KKworc3ViIGNsb3Nl
RHVtcFRvb2woKQoreworICAgIHJldHVybiBpZiAhJGlzRHVtcFRvb2xPcGVuOworCisgICAgY2xv
c2UgSU47CisgICAgY2xvc2UgT1VUOworICAgIHdhaXRwaWQgJGR1bXBUb29sUElELCAwOworICAg
IAorICAgICMgY2hlY2sgZm9yIFdlYkNvcmUgY291bnRlciBsZWFrcy4KKyAgICBpZiAoJHNob3Vs
ZENoZWNrTGVha3MpIHsKKyAgICAgICAgd2hpbGUgKDxFUlJPUj4pIHsKKyAgICAgICAgICAgIHBy
aW50OworICAgICAgICB9CisgICAgfQorICAgIGNsb3NlIEVSUk9SOworICAgICRpc0R1bXBUb29s
T3BlbiA9IDA7Cit9CisKK3N1YiBkdW1wVG9vbERpZENyYXNoKCkKK3sKKyAgICByZXR1cm4gMSBp
ZiAkZHVtcFRvb2xDcmFzaGVkOworICAgIHJldHVybiAwIHVubGVzcyAkaXNEdW1wVG9vbE9wZW47
CisgICAgbXkgJHBpZCA9IHdhaXRwaWQoLTEsIFdOT0hBTkcpOworICAgIHJldHVybiAxIGlmICgk
cGlkID09ICRkdW1wVG9vbFBJRCk7CisKKyAgICAjIE9uIE1hYyBPUyBYLCBjcmFzaGluZyBtYXkg
YmUgc2lnbmlmaWNhbnRseSBkZWxheWVkIGJ5IGNyYXNoIHJlcG9ydGVyLgorICAgIHJldHVybiAw
IHVubGVzcyBpc0FwcGxlTWFjV2ViS2l0KCk7CisKKyAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVT
dXBwb3J0Ojpwcm9jZXNzSXNDcmFzaGluZygkZHVtcFRvb2xQSUQpOworfQorCitzdWIgY29uZmln
dXJlQW5kT3BlbkhUVFBESWZOZWVkZWQoKQoreworICAgIHJldHVybiBpZiAkaXNIdHRwZE9wZW47
CisgICAgbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVz
dWx0c0RpcmVjdG9yeSgpOworICAgIG15ICRsaXN0ZW4gPSAiMTI3LjAuMC4xOiRodHRwZFBvcnQi
OworICAgIG15IEBhcmdzID0gKAorICAgICAgICAiLWMiLCAiQ3VzdG9tTG9nIFwiJGFic1Rlc3RS
ZXN1bHRzRGlyZWN0b3J5L2FjY2Vzc19sb2cudHh0XCIgY29tbW9uIiwKKyAgICAgICAgIi1jIiwg
IkVycm9yTG9nIFwiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5L2Vycm9yX2xvZy50eHRcIiIsCisg
ICAgICAgICItQyIsICJMaXN0ZW4gJGxpc3RlbiIKKyAgICApOworCisgICAgbXkgQGRlZmF1bHRB
cmdzID0gZ2V0RGVmYXVsdENvbmZpZ0ZvclRlc3REaXJlY3RvcnkoJHRlc3REaXJlY3RvcnkpOwor
ICAgIEBhcmdzID0gKEBkZWZhdWx0QXJncywgQGFyZ3MpOworCisgICAgd2FpdEZvckhUVFBETG9j
aygpIGlmICRzaG91bGRXYWl0Rm9ySFRUUEQ7CisgICAgJGlzSHR0cGRPcGVuID0gb3BlbkhUVFBE
KEBhcmdzKTsKK30KKworc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpCit7CisgICAg
cmV0dXJuIDEgaWYgJGlzV2ViU29ja2V0U2VydmVyT3BlbjsKKyAgICByZXR1cm4gMCBpZiAkZmFp
bGVkVG9TdGFydFdlYlNvY2tldFNlcnZlcjsKKworICAgIG15ICR3ZWJTb2NrZXRTZXJ2ZXJQYXRo
ID0gIi91c3IvYmluL3B5dGhvbiI7CisgICAgbXkgJHdlYlNvY2tldFB5dGhvblBhdGggPSAiV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0IjsKKyAgICBt
eSAkd2ViU29ja2V0SGFuZGxlckRpciA9ICIkdGVzdERpcmVjdG9yeSI7CisgICAgbXkgJHdlYlNv
Y2tldEhhbmRsZXJTY2FuRGlyID0gIiR0ZXN0RGlyZWN0b3J5L3dlYnNvY2tldC90ZXN0cyI7Cisg
ICAgbXkgJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlID0gIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRp
ci9oYW5kbGVyX21hcC50eHQiOworICAgIG15ICRzc2xDZXJ0aWZpY2F0ZSA9ICIkdGVzdERpcmVj
dG9yeS9odHRwL2NvbmYvd2Via2l0LWh0dHBkLnBlbSI7CisgICAgbXkgJGFic1Rlc3RSZXN1bHRz
RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOworICAgIG15
ICRsb2dGaWxlID0gIiRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeS9weXdlYnNvY2tldF9sb2cudHh0
IjsKKworICAgIG15IEBhcmdzID0gKAorICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5
IiwKKyAgICAgICAgIi0tc2VydmVyLWhvc3QiLCAiMTI3LjAuMC4xIiwKKyAgICAgICAgIi0tcG9y
dCIsICIkd2ViU29ja2V0UG9ydCIsCisgICAgICAgICItLWRvY3VtZW50LXJvb3QiLCAiJHdlYlNv
Y2tldEhhbmRsZXJEaXIiLAorICAgICAgICAiLS1zY2FuLWRpciIsICIkd2ViU29ja2V0SGFuZGxl
clNjYW5EaXIiLAorICAgICAgICAiLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlIiwgIiR3ZWJT
b2NrZXRIYW5kbGVyTWFwRmlsZSIsCisgICAgICAgICItLWNnaS1wYXRocyIsICIvd2Vic29ja2V0
L3Rlc3RzIiwKKyAgICAgICAgIi0tbG9nLWZpbGUiLCAiJGxvZ0ZpbGUiLAorICAgICAgICAiLS1z
dHJpY3QiLAorICAgICk7CisgICAgIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3Jt
cyBzdXBwb3J0IHB5T3BlblNTTC4KKyAgICAjIG15IEBhcmdzU2VjdXJlID0gKAorICAgICMgICAg
ICJXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkiLAorICAgICMgICAgICItcCIsICIkd2ViU29ja2V0
U2VjdXJlUG9ydCIsCisgICAgIyAgICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKKyAg
ICAjICAgICAiLXQiLAorICAgICMgICAgICItayIsICIkc3NsQ2VydGlmaWNhdGUiLAorICAgICMg
ICAgICItYyIsICIkc3NsQ2VydGlmaWNhdGUiLAorICAgICMgKTsKKworICAgICRFTlZ7IlBZVEhP
TlBBVEgifSA9ICR3ZWJTb2NrZXRQeXRob25QYXRoOworICAgICR3ZWJTb2NrZXRTZXJ2ZXJQSUQg
PSBvcGVuMyhcKldFQlNPQ0tFVFNFUlZFUl9JTiwgXCpXRUJTT0NLRVRTRVJWRVJfT1VULCBcKldF
QlNPQ0tFVFNFUlZFUl9FUlIsICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoLCBAYXJncyk7CisgICAgIyB3
c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KKyAg
ICAjICR3ZWJTb2NrZXRTZWN1cmVTZXJ2ZXJQSUQgPSBvcGVuMyhcKldFQlNPQ0tFVFNFQ1VSRVNF
UlZFUl9JTiwgXCpXRUJTT0NLRVRTRUNVUkVTRVJWRVJfT1VULCBcKldFQlNPQ0tFVFNFQ1VSRVNF
UlZFUl9FUlIsICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoLCBAYXJnc1NlY3VyZSk7CisgICAgIyBteSBA
bGlzdGVuID0gKCJodHRwOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0IiwgImh0dHBzOi8vMTI3
LjAuMC4xOiR3ZWJTb2NrZXRTZWN1cmVQb3J0Iik7CisgICAgbXkgQGxpc3RlbiA9ICgiaHR0cDov
LzEyNy4wLjAuMTokd2ViU29ja2V0UG9ydCIpOworICAgIGZvciAobXkgJGkgPSAwOyAkaSA8IEBs
aXN0ZW47ICRpKyspIHsKKyAgICAgICAgbXkgJHJldHJ5Q291bnQgPSAxMDsKKyAgICAgICAgd2hp
bGUgKHN5c3RlbSgiL3Vzci9iaW4vY3VybCAtayAtcSAtLXNpbGVudCAtLXN0ZGVyciAtIC0tb3V0
cHV0IC9kZXYvbnVsbCAkbGlzdGVuWyRpXSIpICYmICRyZXRyeUNvdW50KSB7CisgICAgICAgICAg
ICBzbGVlcCAxOworICAgICAgICAgICAgLS0kcmV0cnlDb3VudDsKKyAgICAgICAgfQorICAgICAg
ICB1bmxlc3MgKCRyZXRyeUNvdW50KSB7CisgICAgICAgICAgICBwcmludCBTVERFUlIgIlRpbWVk
IG91dCB3YWl0aW5nIGZvciBXZWJTb2NrZXRTZXJ2ZXIgdG8gc3RhcnQuXG4iOworICAgICAgICAg
ICAgJGZhaWxlZFRvU3RhcnRXZWJTb2NrZXRTZXJ2ZXIgPSAxOworICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMTsK
KyAgICByZXR1cm4gMTsKK30KKworc3ViIGNsb3NlV2ViU29ja2V0U2VydmVyKCkKK3sKKyAgICBy
ZXR1cm4gaWYgISRpc1dlYlNvY2tldFNlcnZlck9wZW47CisKKyAgICBjbG9zZSBXRUJTT0NLRVRT
RVJWRVJfSU47CisgICAgY2xvc2UgV0VCU09DS0VUU0VSVkVSX09VVDsKKyAgICBjbG9zZSBXRUJT
T0NLRVRTRVJWRVJfRVJSOworICAgIGtpbGwgMTUsICR3ZWJTb2NrZXRTZXJ2ZXJQSUQ7CisKKyAg
ICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NM
LgorICAgICMgY2xvc2UgV0VCU09DS0VUU0VDVVJFU0VSVkVSX0lOOworICAgICMgY2xvc2UgV0VC
U09DS0VUU0VDVVJFU0VSVkVSX09VVDsKKyAgICAjIGNsb3NlIFdFQlNPQ0tFVFNFQ1VSRVNFUlZF
Ul9FUlI7CisgICAgIyBraWxsIDE1LCAkd2ViU29ja2V0U2VjdXJlU2VydmVyUElEOworCisgICAg
JGlzV2ViU29ja2V0U2VydmVyT3BlbiA9IDA7Cit9CisKK3N1YiBmaWxlTmFtZVdpdGhOdW1iZXIo
JCQpCit7CisgICAgbXkgKCRiYXNlLCAkbnVtYmVyKSA9IEBfOworICAgIHJldHVybiAiJGJhc2Uk
bnVtYmVyIiBpZiAoJG51bWJlciA+IDEpOworICAgIHJldHVybiAkYmFzZTsKK30KKworc3ViIHBy
b2Nlc3NJZ25vcmVUZXN0cygkJCkKK3sKKyAgICBteSBAaWdub3JlTGlzdCA9IHNwbGl0KC9ccyos
XHMqLywgc2hpZnQpOworICAgIG15ICRsaXN0TmFtZSA9IHNoaWZ0OworCisgICAgbXkgJGRpc2Fi
bGVkU3VmZml4ID0gIi1kaXNhYmxlZCI7CisKKyAgICBteSAkYWRkSWdub3JlZERpcmVjdG9yaWVz
ID0gc3ViIHsKKyAgICAgICAgcmV0dXJuICgpIGlmIGV4aXN0cyAkaWdub3JlZExvY2FsRGlyZWN0
b3JpZXN7YmFzZW5hbWUoJEZpbGU6OkZpbmQ6OmRpcil9OworICAgICAgICAkaWdub3JlZERpcmVj
dG9yaWVze0ZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6OmRpciwgJHRlc3REaXJlY3Rv
cnkpfSA9IDE7CisgICAgICAgIHJldHVybiBAXzsKKyAgICB9OworICAgIGZvcmVhY2ggbXkgJGl0
ZW0gKEBpZ25vcmVMaXN0KSB7CisgICAgICAgIG15ICRwYXRoID0gY2F0ZmlsZSgkdGVzdERpcmVj
dG9yeSwgJGl0ZW0pOyAKKyAgICAgICAgaWYgKC1kICRwYXRoKSB7CisgICAgICAgICAgICAkaWdu
b3JlZERpcmVjdG9yaWVzeyRpdGVtfSA9IDE7CisgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2Vz
cyA9PiAkYWRkSWdub3JlZERpcmVjdG9yaWVzLCB3YW50ZWQgPT4gc3ViIHt9IH0sICRwYXRoKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNpZiAoLWYgJHBhdGgpIHsKKyAgICAgICAgICAgICRpZ25v
cmVkRmlsZXN7JGl0ZW19ID0gMTsKKyAgICAgICAgfSBlbHNpZiAoLWYgJHBhdGggLiAkZGlzYWJs
ZWRTdWZmaXgpIHsKKyAgICAgICAgICAgICMgVGhlIHRlc3QgaXMgZGlzYWJsZWQsIHNvIGRvIG5v
dGhpbmcuCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludCAiJGxpc3ROYW1lIGxp
c3QgY29udGFpbmVkICckaXRlbScsIGJ1dCBubyBmaWxlIG9mIHRoYXQgbmFtZSBjb3VsZCBiZSBm
b3VuZFxuIjsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIHN0cmlwRXh0ZW5zaW9uKCQpCit7
CisgICAgbXkgKCR0ZXN0KSA9IEBfOworCisgICAgJHRlc3QgPX4gcy9cLlthLXpBLVpdKyQvLzsK
KyAgICByZXR1cm4gJHRlc3Q7Cit9CisKK3N1YiBpc1RleHRPbmx5VGVzdCgkKQoreworICAgIG15
ICgkYWN0dWFsKSA9IEBfOworICAgIG15ICRpc1RleHQ7CisgICAgaWYgKCRhY3R1YWwgPX4gL15s
YXllciBhdC9tcykgeworICAgICAgICAkaXNUZXh0ID0gMDsKKyAgICB9IGVsc2UgeworICAgICAg
ICAkaXNUZXh0ID0gMTsKKyAgICB9CisgICAgcmV0dXJuICRpc1RleHQ7Cit9CisKK3N1YiBleHBl
Y3RlZERpcmVjdG9yeUZvclRlc3QoJDskOyQpCit7CisgICAgbXkgKCRiYXNlLCAkaXNUZXh0LCAk
ZXhwZWN0ZWRFeHRlbnNpb24pID0gQF87CisKKyAgICBteSBAZGlyZWN0b3JpZXMgPSBAcGxhdGZv
cm1SZXN1bHRIaWVyYXJjaHk7CisgICAgcHVzaCBAZGlyZWN0b3JpZXMsIG1hcCB7IGNhdGRpcigk
cGxhdGZvcm1CYXNlRGlyZWN0b3J5LCAkXykgfSBxdyhtYWMtc25vd2xlb3BhcmQgbWFjKSBpZiBp
c0N5Z3dpbigpOworICAgIHB1c2ggQGRpcmVjdG9yaWVzLCAkZXhwZWN0ZWREaXJlY3Rvcnk7CisK
KyAgICAjIElmIHdlIGFscmVhZHkgaGF2ZSBleHBlY3RlZCByZXN1bHRzLCBqdXN0IHJldHVybiB0
aGVpciBsb2NhdGlvbi4KKyAgICBmb3JlYWNoIG15ICRkaXJlY3RvcnkgKEBkaXJlY3Rvcmllcykg
eworICAgICAgICByZXR1cm4gJGRpcmVjdG9yeSBpZiAoLWYgIiRkaXJlY3RvcnkvJGJhc2UtJGV4
cGVjdGVkVGFnLiRleHBlY3RlZEV4dGVuc2lvbiIpOworICAgIH0KKworICAgICMgRm9yIGNyb3Nz
LXBsYXRmb3JtIHRlc3RzLCB0ZXh0LW9ubHkgcmVzdWx0cyBzaG91bGQgZ28gaW4gdGhlIGNyb3Nz
LXBsYXRmb3JtIGRpcmVjdG9yeSwKKyAgICAjIHdoaWxlIHJlbmRlciB0cmVlIGR1bXBzIHNob3Vs
ZCBnbyBpbiB0aGUgbGVhc3Qtc3BlY2lmaWMgcGxhdGZvcm0gZGlyZWN0b3J5LgorICAgIHJldHVy
biAkaXNUZXh0ID8gJGV4cGVjdGVkRGlyZWN0b3J5IDogJHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5
WyQjcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHldOworfQorCitzdWIgY291bnRGaW5pc2hlZFRlc3Qo
JCQkJCkKK3sKKyAgICBteSAoJHRlc3QsICRiYXNlLCAkcmVzdWx0LCAkaXNUZXh0KSA9IEBfOwor
CisgICAgaWYgKCgkY291bnQgKyAxKSAlICR0ZXN0c1BlckR1bXBUb29sID09IDAgfHwgJGNvdW50
ID09ICQjdGVzdHMpIHsKKyAgICAgICAgaWYgKCRzaG91bGRDaGVja0xlYWtzKSB7CisgICAgICAg
ICAgICBteSAkZmlsZU5hbWU7CisgICAgICAgICAgICBpZiAoJHRlc3RzUGVyRHVtcFRvb2wgPT0g
MSkgeworICAgICAgICAgICAgICAgICRmaWxlTmFtZSA9ICIkdGVzdFJlc3VsdHNEaXJlY3Rvcnkv
JGJhc2UtbGVha3MudHh0IjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
JGZpbGVOYW1lID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8iIC4gZmlsZU5hbWVXaXRoTnVtYmVy
KCRkdW1wVG9vbE5hbWUsICRsZWFrc091dHB1dEZpbGVOdW1iZXIpIC4gIi1sZWFrcy50eHQiOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgbXkgJGxlYWtDb3VudCA9IGNvdW50QW5kUHJpbnRM
ZWFrcygkZHVtcFRvb2xOYW1lLCAkZHVtcFRvb2xQSUQsICRmaWxlTmFtZSk7CisgICAgICAgICAg
ICAkdG90YWxMZWFrcyArPSAkbGVha0NvdW50OworICAgICAgICAgICAgJGxlYWtzT3V0cHV0Rmls
ZU51bWJlcisrIGlmICgkbGVha0NvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGNsb3NlRHVt
cFRvb2woKTsKKyAgICB9CisgICAgCisgICAgJGNvdW50Kys7CisgICAgJGNvdW50c3skcmVzdWx0
fSsrOworICAgIHB1c2ggQHskdGVzdHN7JHJlc3VsdH19LCAkdGVzdDsKK30KKworc3ViIHRlc3RD
cmFzaGVkT3JUaW1lZE91dCgkJCQkJCkKK3sKKyAgICBteSAoJHRlc3QsICRiYXNlLCAkZGlkQ3Jh
c2gsICRhY3R1YWwsICRlcnJvcikgPSBAXzsKKworICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JU
ZXN0KCR0ZXN0LCAkZGlkQ3Jhc2ggPyAiY3Jhc2hlZCIgOiAidGltZWQgb3V0Iik7CisKKyAgICBz
YW1wbGVEdW1wVG9vbCgpIHVubGVzcyAkZGlkQ3Jhc2g7CisKKyAgICBteSAkZGlyID0gIiR0ZXN0
UmVzdWx0c0RpcmVjdG9yeS8kYmFzZSI7CisgICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9yIGRp
ZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKKyAgICBta3BhdGggJGRp
cjsKKworICAgIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7CisKKyAgICBp
ZiAoZGVmaW5lZCgkZXJyb3IpICYmIGxlbmd0aCgkZXJyb3IpKSB7CisgICAgICAgIHdyaXRlVG9G
aWxlKCIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGVycm9yVGFnLnR4dCIsICRlcnJvcik7
CisgICAgfQorCisgICAgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJGJhc2UsICRhY3R1YWwp
OworCisgICAga2lsbCA5LCAkZHVtcFRvb2xQSUQgdW5sZXNzICRkaWRDcmFzaDsKKworICAgIGNs
b3NlRHVtcFRvb2woKTsKK30KKworc3ViIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCQkKQor
eworICAgIG15ICgkdGVzdCwgJGRlc2NyaXB0aW9uKSA9IEBfOworCisgICAgdW5sZXNzICgkdmVy
Ym9zZSkgeworICAgICAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7CisgICAgICAg
IHByaW50ICIkdGVzdCAtPiAiOworICAgIH0KKyAgICBwcmludCAiJGRlc2NyaXB0aW9uXG4iOwor
ICAgICRhdExpbmVTdGFydCA9IDE7Cit9CisKK215ICVjeWdwYXRocyA9ICgpOworCitzdWIgb3Bl
bkN5Z3BhdGhJZk5lZWRlZCgkKQoreworICAgIG15ICgkb3B0aW9ucykgPSBAXzsKKworICAgIHJl
dHVybiB1bmxlc3MgaXNDeWd3aW4oKTsKKyAgICByZXR1cm4gJGN5Z3BhdGhzeyRvcHRpb25zfSBp
ZiAkY3lncGF0aHN7JG9wdGlvbnN9ICYmICRjeWdwYXRoc3skb3B0aW9uc30tPnsib3BlbiJ9Owor
CisgICAgbG9jYWwgKCpDWUdQQVRISU4sICpDWUdQQVRIT1VUKTsKKyAgICBteSAkcGlkID0gb3Bl
bjIoXCpDWUdQQVRISU4sIFwqQ1lHUEFUSE9VVCwgImN5Z3BhdGggLWYgLSAkb3B0aW9ucyIpOwor
ICAgIG15ICRjeWdwYXRoID0gIHsKKyAgICAgICAgInBpZCIgPT4gJHBpZCwKKyAgICAgICAgImlu
IiA9PiAqQ1lHUEFUSElOLAorICAgICAgICAib3V0IiA9PiAqQ1lHUEFUSE9VVCwKKyAgICAgICAg
Im9wZW4iID0+IDEKKyAgICB9OworCisgICAgJGN5Z3BhdGhzeyRvcHRpb25zfSA9ICRjeWdwYXRo
OworCisgICAgcmV0dXJuICRjeWdwYXRoOworfQorCitzdWIgY2xvc2VDeWdwYXRocygpCit7Cisg
ICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dpbigpOworCisgICAgZm9yZWFjaCBteSAkY3lncGF0aCAo
dmFsdWVzKCVjeWdwYXRocykpIHsKKyAgICAgICAgY2xvc2UgJGN5Z3BhdGgtPnsiaW4ifTsKKyAg
ICAgICAgY2xvc2UgJGN5Z3BhdGgtPnsib3V0In07CisgICAgICAgIHdhaXRwaWQoJGN5Z3BhdGgt
PnsicGlkIn0sIDApOworICAgICAgICAkY3lncGF0aC0+eyJvcGVuIn0gPSAwOworCisgICAgfQor
fQorCitzdWIgY29udmVydFBhdGhVc2luZ0N5Z3BhdGgoJCQpCit7CisgICAgbXkgKCRwYXRoLCAk
b3B0aW9ucykgPSBAXzsKKworICAgICMgY3lncGF0aCAtZiAoYXQgbGVhc3QgaW4gQ3lnd2luIDEu
NykgY29udmVydHMgc3BhY2VzIGludG8gbmV3bGluZXMuIFdlIHJlbW92ZSBzcGFjZXMgaGVyZSBh
bmQKKyAgICAjIGFkZCB0aGVtIGJhY2sgaW4gYWZ0ZXIgY29udmVyc2lvbiB0byB3b3JrIGFyb3Vu
ZCB0aGlzLgorICAgIG15ICRzcGFjZVN1YnN0aXR1dGUgPSAiX19OT1RBU1BBQ0VfXyI7CisgICAg
JHBhdGggPX4gcy8gL1xRJHNwYWNlU3Vic3RpdHV0ZVxFL2c7CisKKyAgICBteSAkY3lncGF0aCA9
IG9wZW5DeWdwYXRoSWZOZWVkZWQoJG9wdGlvbnMpOworICAgIGxvY2FsICppbkZIID0gJGN5Z3Bh
dGgtPnsiaW4ifTsKKyAgICBsb2NhbCAqb3V0RkggPSAkY3lncGF0aC0+eyJvdXQifTsKKyAgICBw
cmludCBvdXRGSCAkcGF0aCAuICJcbiI7CisgICAgbXkgJGNvbnZlcnRlZFBhdGggPSA8aW5GSD47
CisgICAgY2hvbXAoJGNvbnZlcnRlZFBhdGgpIGlmIGRlZmluZWQgJGNvbnZlcnRlZFBhdGg7CisK
KyAgICAkY29udmVydGVkUGF0aCA9fiBzL1xRJHNwYWNlU3Vic3RpdHV0ZVxFLyAvZzsKKyAgICBy
ZXR1cm4gJGNvbnZlcnRlZFBhdGg7Cit9CisKK3N1YiB0b1dpbmRvd3NQYXRoKCQpCit7CisgICAg
bXkgKCRwYXRoKSA9IEBfOworICAgIHJldHVybiB1bmxlc3MgaXNDeWd3aW4oKTsKKworICAgIHJl
dHVybiBjb252ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkcGF0aCwgIi13Iik7Cit9CisKK3N1YiB0b1VS
TCgkKQoreworICAgIG15ICgkcGF0aCkgPSBAXzsKKworICAgIGlmICgkdXNlUmVtb3RlTGlua3NU
b1Rlc3RzKSB7CisgICAgICAgIG15ICRyZWxhdGl2ZVBhdGggPSBGaWxlOjpTcGVjLT5hYnMycmVs
KCRwYXRoLCAkdGVzdERpcmVjdG9yeSk7CisKKyAgICAgICAgIyBJZiB0aGUgZmlsZSBpcyBiZWxv
dyB0aGUgdGVzdCBkaXJlY3RvcnkgdGhlbiBjb252ZXJ0IGl0IGludG8gYSBsaW5rIHRvIHRoZSBm
aWxlIGluIFNWTgorICAgICAgICBpZiAoJHJlbGF0aXZlUGF0aCAhfiAvXlwuXC5cLy8pIHsKKyAg
ICAgICAgICAgIG15ICRyZXZpc2lvbiA9IHN2blJldmlzaW9uRm9yRGlyZWN0b3J5KCR0ZXN0RGly
ZWN0b3J5KTsKKyAgICAgICAgICAgIG15ICRzdm5QYXRoID0gcGF0aFJlbGF0aXZlVG9TVk5SZXBv
c2l0b3J5Um9vdEZvclBhdGgoJHBhdGgpOworICAgICAgICAgICAgcmV0dXJuICJodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2V4cG9ydC8kcmV2aXNpb24vJHN2blBhdGgiOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuICRwYXRoIHVubGVzcyBpc0N5Z3dpbigpOworCisgICAgcmV0dXJuICJm
aWxlOi8vLyIgLiBjb252ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkcGF0aCwgIi1tIik7Cit9CisKK3N1
YiB2YWxpZGF0ZVNraXBwZWRBcmcoJCQ7JCkKK3sKKyAgICBteSAoJG9wdGlvbiwgJHZhbHVlLCAk
dmFsdWUyKSA9IEBfOworICAgIG15ICV2YWxpZFNraXBwZWRWYWx1ZXMgPSBtYXAgeyAkXyA9PiAx
IH0gcXcoZGVmYXVsdCBpZ25vcmUgb25seSk7CisgICAgJHZhbHVlID0gbGMoJHZhbHVlKTsKKyAg
ICBkaWUgIkludmFsaWQgYXJndW1lbnQgJyIgLiAkdmFsdWUgLiAiJyBmb3Igb3B0aW9uICRvcHRp
b24iIHVubGVzcyAkdmFsaWRTa2lwcGVkVmFsdWVzeyR2YWx1ZX07CisgICAgJHRyZWF0U2tpcHBl
ZCA9ICR2YWx1ZTsKK30KKworc3ViIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihcQCQmKQoreworICAg
IG15ICgkdGVzdHMsICRkZXNjcmlwdGlvbiwgJGxpbmtHZXR0ZXIpID0gQF87CisKKyAgICBteSBA
aHRtbCA9ICgpOworICAgIHJldHVybiBqb2luKCJcbiIsIEBodG1sKSB1bmxlc3MgQHskdGVzdHN9
OworCisgICAgcHVzaCBAaHRtbCwgIjxwPiRkZXNjcmlwdGlvbjo8L3A+IjsKKyAgICBwdXNoIEBo
dG1sLCAiPHRhYmxlPiI7CisgICAgZm9yZWFjaCBteSAkdGVzdCAoQHskdGVzdHN9KSB7CisgICAg
ICAgIHB1c2ggQGh0bWwsICI8dHI+IjsKKyAgICAgICAgcHVzaCBAaHRtbCwgIjx0ZD48YSBocmVm
PVwiIiAuIHRvVVJMKCIkdGVzdERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPiR0ZXN0PC9hPjwvdGQ+
IjsKKyAgICAgICAgZm9yZWFjaCBteSAkbGluayAoQHsmeyRsaW5rR2V0dGVyfSgkdGVzdCl9KSB7
CisgICAgICAgICAgICBwdXNoIEBodG1sLCAiPHRkPjxhIGhyZWY9XCIkbGluay0+e2hyZWZ9XCI+
JGxpbmstPnt0ZXh0fTwvYT48L3RkPiI7CisgICAgICAgIH0KKyAgICAgICAgcHVzaCBAaHRtbCwg
IjwvdHI+IjsKKyAgICB9CisgICAgcHVzaCBAaHRtbCwgIjwvdGFibGU+IjsKKworICAgIHJldHVy
biBqb2luKCJcbiIsIEBodG1sKTsKK30KKworc3ViIGxpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxS
ZXN1bHRzKCQpCit7CisgICAgbXkgKCRiYXNlKSA9IEBfOworCisgICAgbXkgQGxpbmtzID0gKCk7
CisKKyAgICByZXR1cm4gXEBsaW5rcyB1bmxlc3MgLXMgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8k
YmFzZS0kZGlmZnNUYWcudHh0IjsKKyAgICAKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0g
JGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxl
TmFtZSwgJGV4cGVjdGVkUmVzdWx0c0RpcmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9u
KSA9IGZpbGVwYXJzZSgkZXhwZWN0ZWRSZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOworCisgICAg
cHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0
RXh0ZW5zaW9uIiwgdGV4dCA9PiAiZXhwZWN0ZWQiIH07CisgICAgcHVzaCBAbGlua3MsIHsgaHJl
ZiA9PiAiJGJhc2UtJGFjdHVhbFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4g
ImFjdHVhbCIgfTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcu
dHh0IiwgdGV4dCA9PiAiZGlmZiIgfTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFz
ZS0kcHJldHR5RGlmZlRhZy5odG1sIiwgdGV4dCA9PiAicHJldHR5IGRpZmYiIH07CisKKyAgICBy
ZXR1cm4gXEBsaW5rczsKK30KKworc3ViIGxpbmtzRm9yTWlzbWF0Y2hUZXN0Cit7CisgICAgbXkg
KCR0ZXN0KSA9IEBfOworCisgICAgbXkgQGxpbmtzID0gKCk7CisKKyAgICBteSAkYmFzZSA9IHN0
cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKKworICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtzRm9yRXhwZWN0
ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKX07CisgICAgcmV0dXJuIFxAbGlua3MgdW5sZXNzICRw
aXhlbFRlc3RzICYmICRpbWFnZXNQcmVzZW50eyRiYXNlfTsKKworICAgIHB1c2ggQGxpbmtzLCB7
IGhyZWYgPT4gIiRiYXNlLSRleHBlY3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJleHBlY3RlZCBpbWFn
ZSIgfTsKKyAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcuaHRtbCIs
IHRleHQgPT4gImltYWdlIGRpZmZzIiB9OworICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRi
YXNlLSRkaWZmc1RhZy5wbmciLCB0ZXh0ID0+ICIkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0lIiB9
OworCisgICAgcmV0dXJuIFxAbGlua3M7Cit9CisKK3N1YiBsaW5rc0ZvckVycm9yVGVzdAorewor
ICAgIG15ICgkdGVzdCkgPSBAXzsKKworICAgIG15IEBsaW5rcyA9ICgpOworCisgICAgbXkgJGJh
c2UgPSBzdHJpcEV4dGVuc2lvbigkdGVzdCk7CisKKyAgICBwdXNoIEBsaW5rcywgQHtsaW5rc0Zv
ckV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSl9OworICAgIHB1c2ggQGxpbmtzLCB7IGhy
ZWYgPT4gIiRiYXNlLSRlcnJvclRhZy50eHQiLCB0ZXh0ID0+ICJzdGRlcnIiIH07CisKKyAgICBy
ZXR1cm4gXEBsaW5rczsKK30KKworc3ViIGxpbmtzRm9yTmV3VGVzdAoreworICAgIG15ICgkdGVz
dCkgPSBAXzsKKworICAgIG15IEBsaW5rcyA9ICgpOworCisgICAgbXkgJGJhc2UgPSBzdHJpcEV4
dGVuc2lvbigkdGVzdCk7CisKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVk
UmVzdWx0UGF0aHN7JGJhc2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4
cGVjdGVkUmVzdWx0c0RpcmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVw
YXJzZSgkZXhwZWN0ZWRSZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOworCisgICAgcHVzaCBAbGlu
a3MsIHsgaHJlZiA9PiAiJGJhc2UtJGFjdHVhbFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIs
IHRleHQgPT4gInJlc3VsdCIgfTsKKyAgICBpZiAoJHBpeGVsVGVzdHMgJiYgJGltYWdlc1ByZXNl
bnR7JGJhc2V9KSB7CisgICAgICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRleHBl
Y3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJpbWFnZSIgfTsKKyAgICB9CisKKyAgICByZXR1cm4gXEBs
aW5rczsKK30KKworc3ViIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkKQoreworICAg
IG15ICgkYmFzZSkgPSBAXzsKKworICAgIHVubGluayAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRi
YXNlLSRhY3R1YWxUYWcudHh0IjsKKyAgICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8k
YmFzZS0kZGlmZnNUYWcudHh0IjsKKyAgICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8k
YmFzZS0kZXJyb3JUYWcudHh0IjsKK30KKworc3ViIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZm
KCQkKQoreworICAgIG15ICgkYmFzZSwgJGFjdHVhbFJlc3VsdHMpID0gQF87CisKKyAgICByZXR1
cm4gdW5sZXNzIGRlZmluZWQoJGFjdHVhbFJlc3VsdHMpICYmIGxlbmd0aCgkYWN0dWFsUmVzdWx0
cyk7CisKKyAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7
JGJhc2V9OworICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZU1pbnVzRXh0ZW5zaW9uLCAk
ZXhwZWN0ZWRSZXN1bHREaXJlY3RvcnlQYXRoLCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0g
ZmlsZXBhcnNlKCRleHBlY3RlZFJlc3VsdFBhdGgsIHFye1wuW14uXSskfSk7CisgICAgbXkgJGFj
dHVhbFJlc3VsdHNQYXRoID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFn
JGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIjsKKyAgICBteSAkY29waWVkRXhwZWN0ZWRSZXN1bHRz
UGF0aCA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVk
UmVzdWx0RXh0ZW5zaW9uIjsKKworICAgIG1rcGF0aChkaXJuYW1lKCRhY3R1YWxSZXN1bHRzUGF0
aCkpOworICAgIHdyaXRlVG9GaWxlKCIkYWN0dWFsUmVzdWx0c1BhdGgiLCAkYWN0dWFsUmVzdWx0
cyk7CisKKyAgICBpZiAoLWYgJGV4cGVjdGVkUmVzdWx0UGF0aCkgeworICAgICAgICBjb3B5KCIk
ZXhwZWN0ZWRSZXN1bHRQYXRoIiwgIiRjb3BpZWRFeHBlY3RlZFJlc3VsdHNQYXRoIik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgb3BlbiBFTVBUWSwgIj4kY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0
aCI7CisgICAgICAgIGNsb3NlIEVNUFRZOworICAgIH0KKworICAgIG15ICRkaWZmT3VwdXRCYXNl
UGF0aCA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UiOworICAgIG15ICRkaWZmT3V0cHV0
UGF0aCA9ICIkZGlmZk91cHV0QmFzZVBhdGgtJGRpZmZzVGFnLnR4dCI7CisgICAgc3lzdGVtICJk
aWZmIC11IFwiJGNvcGllZEV4cGVjdGVkUmVzdWx0c1BhdGhcIiBcIiRhY3R1YWxSZXN1bHRzUGF0
aFwiID4gXCIkZGlmZk91dHB1dFBhdGhcIiI7CisKKyAgICBteSAkcHJldHR5RGlmZk91dHB1dFBh
dGggPSAiJGRpZmZPdXB1dEJhc2VQYXRoLSRwcmV0dHlEaWZmVGFnLmh0bWwiOworICAgIG15ICRw
cmV0dHlQYXRjaFBhdGggPSAiQnVnc1NpdGUvUHJldHR5UGF0Y2gvIjsKKyAgICBteSAkcHJldHRp
ZnlQYXRoID0gIiRwcmV0dHlQYXRjaFBhdGgvcHJldHRpZnkucmIiOworICAgIHN5c3RlbSAicnVi
eSAtSSBcIiRwcmV0dHlQYXRjaFBhdGhcIiBcIiRwcmV0dGlmeVBhdGhcIiBcIiRkaWZmT3V0cHV0
UGF0aFwiID4gXCIkcHJldHR5RGlmZk91dHB1dFBhdGhcIiI7Cit9CisKK3N1YiBidWlsZFBsYXRm
b3JtUmVzdWx0SGllcmFyY2h5KCkKK3sKKyAgICBta3BhdGgoJHBsYXRmb3JtVGVzdERpcmVjdG9y
eSkgaWYgKCRwbGF0Zm9ybSBlcSAidW5kZWZpbmVkIiAmJiAhLWQgIiRwbGF0Zm9ybVRlc3REaXJl
Y3RvcnkiKTsKKworICAgIG15IEBwbGF0Zm9ybXM7CisgICAgaWYgKCRwbGF0Zm9ybSA9fiAvXm1h
Yy0vKSB7CisgICAgICAgIG15ICRpOworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBAbWFjUGxh
dGZvcm1zOyAkaSsrKSB7CisgICAgICAgICAgICBsYXN0IGlmICRtYWNQbGF0Zm9ybXNbJGldIGVx
ICRwbGF0Zm9ybTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDsgJGkgPCBAbWFjUGxhdGZvcm1z
OyAkaSsrKSB7CisgICAgICAgICAgICBwdXNoIEBwbGF0Zm9ybXMsICRtYWNQbGF0Zm9ybXNbJGld
OworICAgICAgICB9CisgICAgfSBlbHNpZiAoJHBsYXRmb3JtID1+IC9ecXQtLykgeworICAgICAg
ICBwdXNoIEBwbGF0Zm9ybXMsICRwbGF0Zm9ybTsKKyAgICAgICAgcHVzaCBAcGxhdGZvcm1zLCAi
cXQiOworICAgIH0gZWxzZSB7CisgICAgICAgIEBwbGF0Zm9ybXMgPSAkcGxhdGZvcm07CisgICAg
fQorCisgICAgbXkgQGhpZXJhcmNoeTsKKyAgICBmb3IgKG15ICRpID0gMDsgJGkgPCBAcGxhdGZv
cm1zOyAkaSsrKSB7CisgICAgICAgIG15ICRzY29wZWQgPSBjYXRkaXIoJHBsYXRmb3JtQmFzZURp
cmVjdG9yeSwgJHBsYXRmb3Jtc1skaV0pOworICAgICAgICBwdXNoKEBoaWVyYXJjaHksICRzY29w
ZWQpIGlmICgtZCAkc2NvcGVkKTsKKyAgICB9CisKKyAgICByZXR1cm4gQGhpZXJhcmNoeTsKK30K
Kworc3ViIGJ1aWxkUGxhdGZvcm1UZXN0SGllcmFyY2h5KEApCit7CisgICAgbXkgKEBwbGF0Zm9y
bUhpZXJhcmNoeSkgPSBAXzsKKyAgICByZXR1cm4gQHBsYXRmb3JtSGllcmFyY2h5IGlmIChAcGxh
dGZvcm1IaWVyYXJjaHkgPCAyKTsKKworICAgIHJldHVybiAoJHBsYXRmb3JtSGllcmFyY2h5WzBd
LCAkcGxhdGZvcm1IaWVyYXJjaHlbJCNwbGF0Zm9ybUhpZXJhcmNoeV0pOworfQorCitzdWIgZXBp
bG9ndWVzQW5kUHJvbG9ndWVzKCQkKQoreworICAgIG15ICgkbGFzdERpcmVjdG9yeSwgJGRpcmVj
dG9yeSkgPSBAXzsKKyAgICBteSBAbGFzdENvbXBvbmVudHMgPSBzcGxpdCgnLycsICRsYXN0RGly
ZWN0b3J5KTsKKyAgICBteSBAY29tcG9uZW50cyA9IHNwbGl0KCcvJywgJGRpcmVjdG9yeSk7CisK
KyAgICB3aGlsZSAoQGxhc3RDb21wb25lbnRzKSB7CisgICAgICAgIGlmICghZGVmaW5lZCgkY29t
cG9uZW50c1swXSkgfHwgJGxhc3RDb21wb25lbnRzWzBdIG5lICRjb21wb25lbnRzWzBdKSB7Cisg
ICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIHNoaWZ0IEBjb21wb25lbnRzOwor
ICAgICAgICBzaGlmdCBAbGFzdENvbXBvbmVudHM7CisgICAgfQorCisgICAgbXkgQHJlc3VsdDsK
KyAgICBteSAkbGVhdmluZyA9ICRsYXN0RGlyZWN0b3J5OworICAgIGZvcmVhY2ggKEBsYXN0Q29t
cG9uZW50cykgeworICAgICAgICBteSAkZXBpbG9ndWUgPSAkbGVhdmluZyAuICIvcmVzb3VyY2Vz
L3J1bi13ZWJraXQtdGVzdHMtZXBpbG9ndWUuaHRtbCI7CisgICAgICAgIGZvcmVhY2ggKEBwbGF0
Zm9ybVJlc3VsdEhpZXJhcmNoeSkgeworICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIo
JF8sICRlcGlsb2d1ZSkgaWYgKHN0YXQoY2F0ZGlyKCRfLCAkZXBpbG9ndWUpKSk7CisgICAgICAg
IH0KKyAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1
ZSkgaWYgKHN0YXQoY2F0ZGlyKCR0ZXN0RGlyZWN0b3J5LCAkZXBpbG9ndWUpKSk7CisgICAgICAg
ICRsZWF2aW5nID1+IHN8KF5cfC8pW14vXSskfHw7CisgICAgfQorCisgICAgbXkgJGVudGVyaW5n
ID0gJGxlYXZpbmc7CisgICAgZm9yZWFjaCAoQGNvbXBvbmVudHMpIHsKKyAgICAgICAgJGVudGVy
aW5nIC49ICcvJyAuICRfOworICAgICAgICBteSAkcHJvbG9ndWUgPSAkZW50ZXJpbmcgLiAiL3Jl
c291cmNlcy9ydW4td2Via2l0LXRlc3RzLXByb2xvZ3VlLmh0bWwiOworICAgICAgICBwdXNoIEBy
ZXN1bHQsIGNhdGRpcigkdGVzdERpcmVjdG9yeSwgJHByb2xvZ3VlKSBpZiAoc3RhdChjYXRkaXIo
JHRlc3REaXJlY3RvcnksICRwcm9sb2d1ZSkpKTsKKyAgICAgICAgZm9yZWFjaCAocmV2ZXJzZSBA
cGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkpIHsKKyAgICAgICAgICAgIHB1c2ggQHJlc3VsdCwgY2F0
ZGlyKCRfLCAkcHJvbG9ndWUpIGlmIChzdGF0KGNhdGRpcigkXywgJHByb2xvZ3VlKSkpOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiBAcmVzdWx0OworfQorICAgIAorc3ViIHBhcnNlTGVh
a3NhbmRQcmludFVuaXF1ZUxlYWtzKCkKK3sKKyAgICByZXR1cm4gdW5sZXNzIEBsZWFrc0ZpbGVu
YW1lczsKKyAgICAgCisgICAgbXkgJG1lcmdlZEZpbGVuYW1lcyA9IGpvaW4gIiAiLCBAbGVha3NG
aWxlbmFtZXM7CisgICAgbXkgJHBhcnNlTWFsbG9jSGlzdG9yeVRvb2wgPSBzb3VyY2VEaXIoKSAu
ICIvV2ViS2l0VG9vbHMvU2NyaXB0cy9wYXJzZS1tYWxsb2MtaGlzdG9yeSI7CisgICAgCisgICAg
b3BlbiBNRVJHRURfTEVBS1MsICJjYXQgJG1lcmdlZEZpbGVuYW1lcyB8ICRwYXJzZU1hbGxvY0hp
c3RvcnlUb29sIC0tbWVyZ2UtZGVwdGggJG1lcmdlRGVwdGggIC0gfCIgOworICAgIG15IEBsZWFr
TGluZXMgPSA8TUVSR0VEX0xFQUtTPjsKKyAgICBjbG9zZSBNRVJHRURfTEVBS1M7CisgICAgCisg
ICAgbXkgJHVuaXF1ZUxlYWtDb3VudCA9IDA7CisgICAgbXkgJHRvdGFsQnl0ZXM7CisgICAgZm9y
ZWFjaCBteSAkbGluZSAoQGxlYWtMaW5lcykgeworICAgICAgICArKyR1bmlxdWVMZWFrQ291bnQg
aWYgKCRsaW5lID1+IC9eKFxkKilcc2NhbGxzLyk7CisgICAgICAgICR0b3RhbEJ5dGVzID0gJDEg
aWYgJGxpbmUgPX4gL150b3RhbFw6XHMoLiopXHNcKC87CisgICAgfQorICAgIAorICAgIHByaW50
ICJcbldBUk5JTkc6ICR0b3RhbExlYWtzIHRvdGFsIGxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9m
ICR0b3RhbEJ5dGVzIVxuIjsKKyAgICBwcmludCAiV0FSTklORzogJHVuaXF1ZUxlYWtDb3VudCB1
bmlxdWUgbGVha3MgZm91bmQhXG4iOworICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1
YWwgbGVha3MgcmVzdWx0cy5cbiIgaWYgKCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKKyAg
ICAKK30KKworc3ViIGV4dGVuc2lvbkZvck1pbWVUeXBlKCQpCit7CisgICAgbXkgKCRtaW1lVHlw
ZSkgPSBAXzsKKworICAgIGlmICgkbWltZVR5cGUgZXEgImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2
ZSIpIHsKKyAgICAgICAgcmV0dXJuICJ3ZWJhcmNoaXZlIjsKKyAgICB9IGVsc2lmICgkbWltZVR5
cGUgZXEgImFwcGxpY2F0aW9uL3BkZiIpIHsKKyAgICAgICAgcmV0dXJuICJwZGYiOworICAgIH0K
KyAgICByZXR1cm4gInR4dCI7Cit9CisKKyMgUmVhZCB1cCB0byB0aGUgZmlyc3QgI0VPRiAodGhl
IGNvbnRlbnQgYmxvY2sgb2YgdGhlIHRlc3QpLCBvciB1bnRpbCBkZXRlY3RpbmcgY3Jhc2hlcyBv
ciB0aW1lb3V0cy4KK3N1YiByZWFkRnJvbUR1bXBUb29sV2l0aFRpbWVyKCoqKQoreworICAgIG15
ICgkZmhJbiwgJGZoRXJyb3IpID0gQF87CisKKyAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmco
JGZoSW4sIDEpOworICAgIHNldEZpbGVIYW5kbGVOb25CbG9ja2luZygkZmhFcnJvciwgMSk7CisK
KyAgICBteSAkbWF4aW11bVNlY29uZHNXaXRob3V0T3V0cHV0ID0gJHRpbWVvdXRTZWNvbmRzOwor
ICAgICRtYXhpbXVtU2Vjb25kc1dpdGhvdXRPdXRwdXQgKj0gMTAgaWYgJGd1YXJkTWFsbG9jOwor
ICAgIG15ICRtaWNyb3NlY29uZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4gPSAxMDAwOworCisg
ICAgbXkgJHRpbWVPZkxhc3RTdWNjZXNzZnVsUmVhZCA9IHRpbWU7CisKKyAgICBteSBAb3V0cHV0
ID0gKCk7CisgICAgbXkgQGVycm9yID0gKCk7CisgICAgbXkgJHN0YXR1cyA9ICJzdWNjZXNzIjsK
KyAgICBteSAkbWltZVR5cGUgPSAidGV4dC9wbGFpbiI7CisgICAgIyBXZSBkb24ndCBoYXZlIGEg
dmVyeSBnb29kIHdheSB0byBrbm93IHdoZW4gdGhlICJoZWFkZXJzIiBzdG9wCisgICAgIyBhbmQg
dGhlIGNvbnRlbnQgc3RhcnRzLCBzbyB3ZSB1c2UgdGhpcyBhcyBhIGhhY2s6CisgICAgbXkgJGhh
dmVTZWVuQ29udGVudFR5cGUgPSAwOworICAgIG15ICRoYXZlU2VlbkVvZkluID0gMDsKKyAgICBt
eSAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDA7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAo
dGltZSAtICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1bFJlYWQgPiAkbWF4aW11bVNlY29uZHNXaXRob3V0
T3V0cHV0KSB7CisgICAgICAgICAgICAkc3RhdHVzID0gZHVtcFRvb2xEaWRDcmFzaCgpID8gImNy
YXNoZWQiIDogInRpbWVkT3V0IjsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKworICAg
ICAgICAjIE9uY2Ugd2UndmUgc2VlbiB0aGUgRU9GLCB3ZSBtdXN0IG5vdCByZWFkIGFueW1vcmUu
CisgICAgICAgIG15ICRsaW5lSW4gPSByZWFkbGluZSgkZmhJbikgdW5sZXNzICRoYXZlU2VlbkVv
ZkluOworICAgICAgICBteSAkbGluZUVycm9yID0gcmVhZGxpbmUoJGZoRXJyb3IpIHVubGVzcyAk
aGF2ZVNlZW5Fb2ZFcnJvcjsKKyAgICAgICAgaWYgKCFkZWZpbmVkKCRsaW5lSW4pICYmICFkZWZp
bmVkKCRsaW5lRXJyb3IpKSB7CisgICAgICAgICAgICBsYXN0IGlmICgkaGF2ZVNlZW5Fb2ZJbiAm
JiAkaGF2ZVNlZW5Fb2ZFcnJvcik7CisKKyAgICAgICAgICAgIGlmICgkISAhPSBFQUdBSU4pIHsK
KyAgICAgICAgICAgICAgICAkc3RhdHVzID0gImNyYXNoZWQiOworICAgICAgICAgICAgICAgIGxh
c3Q7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgTm8gZGF0YSByZWFkeQorICAgICAg
ICAgICAgdXNsZWVwKCRtaWNyb3NlY29uZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4pOworICAg
ICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorCisgICAgICAgICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1
bFJlYWQgPSB0aW1lOworCisgICAgICAgIGlmIChkZWZpbmVkKCRsaW5lSW4pKSB7CisgICAgICAg
ICAgICBpZiAoISRoYXZlU2VlbkNvbnRlbnRUeXBlICYmICRsaW5lSW4gPX4gL15Db250ZW50LVR5
cGU6IChcUyspJC8pIHsKKyAgICAgICAgICAgICAgICAkbWltZVR5cGUgPSAkMTsKKyAgICAgICAg
ICAgICAgICAkaGF2ZVNlZW5Db250ZW50VHlwZSA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgk
bGluZUluID1+IC8jRU9GLykgeworICAgICAgICAgICAgICAgICRoYXZlU2VlbkVvZkluID0gMTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaCBAb3V0cHV0LCAkbGlu
ZUluOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVkKCRsaW5l
RXJyb3IpKSB7CisgICAgICAgICAgICBpZiAoJGxpbmVFcnJvciA9fiAvI0VPRi8pIHsKKyAgICAg
ICAgICAgICAgICAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDE7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIHB1c2ggQGVycm9yLCAkbGluZUVycm9yOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorCisgICAgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEluLCAw
KTsKKyAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZoRXJyb3IsIDApOworICAgIHJldHVy
biB7CisgICAgICAgIG91dHB1dCA9PiBqb2luKCIiLCBAb3V0cHV0KSwKKyAgICAgICAgZXJyb3Ig
PT4gam9pbigiIiwgQGVycm9yKSwKKyAgICAgICAgc3RhdHVzID0+ICRzdGF0dXMsCisgICAgICAg
IG1pbWVUeXBlID0+ICRtaW1lVHlwZSwKKyAgICAgICAgZXh0ZW5zaW9uID0+IGV4dGVuc2lvbkZv
ck1pbWVUeXBlKCRtaW1lVHlwZSkKKyAgICB9OworfQorCitzdWIgc2V0RmlsZUhhbmRsZU5vbkJs
b2NraW5nKCokKQoreworICAgIG15ICgkZmgsICRub25CbG9ja2luZykgPSBAXzsKKworICAgIG15
ICRmbGFncyA9IGZjbnRsKCRmaCwgRl9HRVRGTCwgMCkgb3IgZGllICJDb3VsZG4ndCBnZXQgZmls
ZWhhbmRsZSBmbGFncyI7CisKKyAgICBpZiAoJG5vbkJsb2NraW5nKSB7CisgICAgICAgICRmbGFn
cyB8PSBPX05PTkJMT0NLOworICAgIH0gZWxzZSB7CisgICAgICAgICRmbGFncyAmPSB+T19OT05C
TE9DSzsKKyAgICB9CisKKyAgICBmY250bCgkZmgsIEZfU0VURkwsICRmbGFncykgb3IgZGllICJD
b3VsZG4ndCBzZXQgZmlsZWhhbmRsZSBmbGFncyI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3Vi
IHNhbXBsZUR1bXBUb29sKCkKK3sKKyAgICByZXR1cm4gdW5sZXNzIGlzQXBwbGVNYWNXZWJLaXQo
KTsKKyAgICByZXR1cm4gdW5sZXNzICRydW5TYW1wbGU7CisKKyAgICBteSAkb3V0cHV0RGlyZWN0
b3J5ID0gIiRFTlZ7SE9NRX0vTGlicmFyeS9Mb2dzL0R1bXBSZW5kZXJUcmVlIjsKKyAgICAtZCAk
b3V0cHV0RGlyZWN0b3J5IG9yIG1rZGlyICRvdXRwdXREaXJlY3Rvcnk7CisKKyAgICBteSAkb3V0
cHV0RmlsZSA9ICIkb3V0cHV0RGlyZWN0b3J5L0hhbmdSZXBvcnQudHh0IjsKKyAgICBzeXN0ZW0g
Ii91c3IvYmluL3NhbXBsZSIsICRkdW1wVG9vbFBJRCwgcXcoMTAgMTAgLWZpbGUpLCAkb3V0cHV0
RmlsZTsKK30KKworc3ViIHN0cmlwTWV0cmljcygkJCkKK3sKKyAgICBteSAoJGFjdHVhbCwgJGV4
cGVjdGVkKSA9IEBfOworCisgICAgZm9yZWFjaCBteSAkcmVzdWx0ICgkYWN0dWFsLCAkZXhwZWN0
ZWQpIHsKKyAgICAgICAgJHJlc3VsdCA9fiBzL2F0IFwoLT9bMC05XSssLT9bMC05XStcKSAqLy9n
OworICAgICAgICAkcmVzdWx0ID1+IHMvc2l6ZSAtP1swLTldK3gtP1swLTldKyAqLy9nOworICAg
ICAgICAkcmVzdWx0ID1+IHMvdGV4dCBydW4gd2lkdGggLT9bMC05XSs6IC8vZzsKKyAgICAgICAg
JHJlc3VsdCA9fiBzL3RleHQgcnVuIHdpZHRoIC0/WzAtOV0rIFthLXpBLVogXSs6IC8vZzsKKyAg
ICAgICAgJHJlc3VsdCA9fiBzL1JlbmRlckJ1dHRvbiB7QlVUVE9OfSAuKi9SZW5kZXJCdXR0b24g
e0JVVFRPTn0vZzsKKyAgICAgICAgJHJlc3VsdCA9fiBzL1JlbmRlckltYWdlIHtJTlBVVH0gLiov
UmVuZGVySW1hZ2Uge0lOUFVUfS9nOworICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVyQmxvY2sg
e0lOUFVUfSAuKi9SZW5kZXJCbG9jayB7SU5QVVR9L2c7CisgICAgICAgICRyZXN1bHQgPX4gcy9S
ZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IC4qL1JlbmRlclRleHRDb250cm9sIHtJTlBVVH0vZzsK
KyAgICAgICAgJHJlc3VsdCA9fiBzL1woWzAtOV0rcHgvcHgvZzsKKyAgICAgICAgJHJlc3VsdCA9
fiBzLyAqIiAqXG4gKyIgKi8gL2c7CisgICAgICAgICRyZXN1bHQgPX4gcy8iICskLyIvZzsKKwor
ICAgICAgICAkcmVzdWx0ID1+IHMvLSAvLS9nOworICAgICAgICAkcmVzdWx0ID1+IHMvXG4oICop
IlxzKy9cbiQxIi9nOworICAgICAgICAkcmVzdWx0ID1+IHMvXHMrIlxuLyJcbi9nOworICAgICAg
ICAkcmVzdWx0ID1+IHMvc2Nyb2xsV2lkdGggWzAtOV0rL3Njcm9sbFdpZHRoL2c7CisgICAgICAg
ICRyZXN1bHQgPX4gcy9zY3JvbGxIZWlnaHQgWzAtOV0rL3Njcm9sbEhlaWdodC9nOworICAgIH0K
KworICAgIHJldHVybiAoJGFjdHVhbCwgJGV4cGVjdGVkKTsKK30KKworc3ViIGZpbGVTaG91bGRC
ZUlnbm9yZWQKK3sKKyAgICBteSAoJGZpbGVQYXRoKSA9IEBfOworICAgIGZvcmVhY2ggbXkgJGln
bm9yZWREaXIgKGtleXMgJWlnbm9yZWREaXJlY3RvcmllcykgeworICAgICAgICBpZiAoJGZpbGVQ
YXRoID1+IG0vXiRpZ25vcmVkRGlyLykgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiByZWFkU2tpcHBlZEZpbGVzKCQpCit7
CisgICAgbXkgKCRjb25zdHJhaW50UGF0aCkgPSBAXzsKKworICAgIGZvcmVhY2ggbXkgJGxldmVs
IChAcGxhdGZvcm1UZXN0SGllcmFyY2h5KSB7CisgICAgICAgIGlmIChvcGVuIFNLSVBQRUQsICI8
IiwgIiRsZXZlbC9Ta2lwcGVkIikgeworICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAg
ICAgICAgICAgICAgbXkgKCRkaXIsICRuYW1lKSA9IHNwbGl0cGF0aCgkbGV2ZWwpOworICAgICAg
ICAgICAgICAgIHByaW50ICJTa2lwcGVkIHRlc3RzIGluICRuYW1lOlxuIjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgd2hpbGUgKDxTS0lQUEVEPikgeworICAgICAgICAgICAgICAgIG15
ICRza2lwcGVkID0gJF87CisgICAgICAgICAgICAgICAgY2hvbXAgJHNraXBwZWQ7CisgICAgICAg
ICAgICAgICAgJHNraXBwZWQgPX4gcy9eWyBcblxyXSsvLzsKKyAgICAgICAgICAgICAgICAkc2tp
cHBlZCA9fiBzL1sgXG5ccl0rJC8vOworICAgICAgICAgICAgICAgIGlmICgkc2tpcHBlZCAmJiAk
c2tpcHBlZCAhfiAvXiMvKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkc2tpcHBlZE9ubHkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlsZVNob3VsZEJlSWdub3JlZCgkc2tp
cHBlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRjb25zdHJhaW50UGF0
aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFsd2F5cyBhZGQgJHNraXBw
ZWQgc2luY2Ugbm8gY29uc3RyYWludCBwYXRoIHdhcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQg
bGluZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBw
ZWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRza2lwcGVkID1+IC9e
KCRjb25zdHJhaW50UGF0aCkvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg
QWRkICRza2lwcGVkIG9ubHkgaWYgaXQgbWF0Y2hlcyB0aGUgY3VycmVudCBwYXRoIGNvbnN0cmFp
bnQsIGUuZy4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIi0tc2tpcHBlZD1v
bmx5IGRpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIgb24gdGhlIHNraXBwZWQgbGlzdC4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb25zdHJhaW50UGF0aCA9fiAvXigk
c2tpcHBlZCkvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkIGN1cnJl
bnQgcGF0aCBjb25zdHJhaW50IGlmIGl0IGlzIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgc2tpcCBs
aXN0IGVudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGUuZy4sICItLXNr
aXBwZWQ9b25seSBkaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGlyMSIgb24gdGhlIHNraXBwZWQgbGlz
dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJGNvbnN0cmFp
bnRQYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50ICIgICAgJHNraXBwZWRcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZl
cmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVk
XG4iOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
cHJvY2Vzc0lnbm9yZVRlc3RzKCRza2lwcGVkLCAiU2tpcHBlZCIpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2xv
c2UgU0tJUFBFRDsKKyAgICAgICAgfQorICAgIH0KK30KKworbXkgQHRlc3RzRm91bmQ7CisKK3N1
YiBkaXJlY3RvcnlGaWx0ZXIKK3sKKyAgICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVkTG9j
YWxEaXJlY3Rvcmllc3tiYXNlbmFtZSgkRmlsZTo6RmluZDo6ZGlyKX07CisgICAgcmV0dXJuICgp
IGlmIGV4aXN0cyAkaWdub3JlZERpcmVjdG9yaWVze0ZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6
OkZpbmQ6OmRpciwgJHRlc3REaXJlY3RvcnkpfTsKKyAgICByZXR1cm4gQF87Cit9CisKK3N1YiBm
aWxlRmlsdGVyCit7CisgICAgbXkgJGZpbGVuYW1lID0gJF87CisgICAgaWYgKCRmaWxlbmFtZSA9
fiAvXC4oW14uXSspJC8pIHsKKyAgICAgICAgaWYgKGV4aXN0cyAkc3VwcG9ydGVkRmlsZUV4dGVu
c2lvbnN7JDF9KSB7CisgICAgICAgICAgICBteSAkcGF0aCA9IEZpbGU6OlNwZWMtPmFiczJyZWwo
Y2F0ZmlsZSgkRmlsZTo6RmluZDo6ZGlyLCAkZmlsZW5hbWUpLCAkdGVzdERpcmVjdG9yeSk7Cisg
ICAgICAgICAgICBwdXNoIEB0ZXN0c0ZvdW5kLCAkcGF0aCBpZiAhZXhpc3RzICRpZ25vcmVkRmls
ZXN7JHBhdGh9OworICAgICAgICB9CisgICAgfQorfQorCitzdWIgZmluZFRlc3RzVG9SdW4KK3sK
KyAgICBteSBAdGVzdHNUb1J1biA9ICgpOworCisgICAgZm9yIG15ICR0ZXN0IChAQVJHVikgewor
ICAgICAgICAkdGVzdCA9fiBzL14oJGxheW91dFRlc3RzTmFtZXwkdGVzdERpcmVjdG9yeSlcLy8v
OworICAgICAgICBteSAkZnVsbFBhdGggPSBjYXRmaWxlKCR0ZXN0RGlyZWN0b3J5LCAkdGVzdCk7
CisgICAgICAgIGlmIChmaWxlX25hbWVfaXNfYWJzb2x1dGUoJHRlc3QpKSB7CisgICAgICAgICAg
ICBwcmludCAiY2FuJ3QgcnVuIHRlc3QgJHRlc3Qgb3V0c2lkZSAkdGVzdERpcmVjdG9yeVxuIjsK
KyAgICAgICAgfSBlbHNpZiAoLWYgJGZ1bGxQYXRoKSB7CisgICAgICAgICAgICBteSAoJGZpbGVu
YW1lLCAkcGF0aG5hbWUsICRmaWxlRXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkdGVzdCwgcXJ7XC5b
Xi5dKyR9KTsKKyAgICAgICAgICAgIGlmICghZXhpc3RzICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9u
c3tzdWJzdHIoJGZpbGVFeHRlbnNpb24sIDEpfSkgeworICAgICAgICAgICAgICAgIHByaW50ICJ0
ZXN0ICR0ZXN0IGRvZXMgbm90IGhhdmUgYSBzdXBwb3J0ZWQgZXh0ZW5zaW9uXG4iOworICAgICAg
ICAgICAgfSBlbHNpZiAoJHRlc3RIVFRQIHx8ICRwYXRobmFtZSAhfiAvXmh0dHBcLy8pIHsKKyAg
ICAgICAgICAgICAgICBwdXNoIEB0ZXN0c1RvUnVuLCAkdGVzdDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBlbHNpZiAoLWQgJGZ1bGxQYXRoKSB7CisgICAgICAgICAgICBAdGVzdHNGb3VuZCA9
ICgpOworICAgICAgICAgICAgZmluZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIs
IHdhbnRlZCA9PiBcJmZpbGVGaWx0ZXIgfSwgJGZ1bGxQYXRoKTsKKyAgICAgICAgICAgIGZvciBt
eSAkbGV2ZWwgKEBwbGF0Zm9ybVRlc3RIaWVyYXJjaHkpIHsKKyAgICAgICAgICAgICAgICBteSAk
cGxhdGZvcm1QYXRoID0gY2F0ZmlsZSgkbGV2ZWwsICR0ZXN0KTsKKyAgICAgICAgICAgICAgICBm
aW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZp
bHRlciB9LCAkcGxhdGZvcm1QYXRoKSBpZiAoLWQgJHBsYXRmb3JtUGF0aCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBwdXNoIEB0ZXN0c1RvUnVuLCBzb3J0IHBhdGhjbXAgQHRlc3RzRm91
bmQ7CisgICAgICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgcHJpbnQgInRlc3QgJHRlc3Qgbm90IGZvdW5kXG4iOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCFzY2FsYXIgQEFSR1YpIHsKKyAgICAgICAgQHRlc3RzRm91bmQgPSAoKTsK
KyAgICAgICAgZmluZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdhbnRlZCA9
PiBcJmZpbGVGaWx0ZXIgfSwgJHRlc3REaXJlY3RvcnkpOworICAgICAgICBmb3IgbXkgJGxldmVs
IChAcGxhdGZvcm1UZXN0SGllcmFyY2h5KSB7CisgICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2Vz
cyA9PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkbGV2ZWwp
OworICAgICAgICB9CisgICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0aGNtcCBAdGVz
dHNGb3VuZDsKKyAgICAgICAgQHRlc3RzRm91bmQgPSAoKTsKKworICAgICAgICAjIFdlIG5lZWQg
dG8gbWluaW1pemUgdGhlIHRpbWUgd2hlbiBBcGFjaGUgYW5kIFdlYlNvY2tldFNlcnZlciBpcyBs
b2NrZWQgYnkgdGVzdHMKKyAgICAgICAgIyBzbyBydW4gdGhlbSBsYXN0IGlmIG5vIGV4cGxpY2l0
IG9yZGVyIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCisgICAgICAgIG15IEBo
dHRwVGVzdHM7CisgICAgICAgIG15IEB3ZWJzb2NrZXRUZXN0czsKKyAgICAgICAgbXkgQG90aGVy
VGVzdHM7CisgICAgICAgIGZvcmVhY2ggbXkgJHRlc3QgKEB0ZXN0c1RvUnVuKSB7CisgICAgICAg
ICAgICBpZiAoJHRlc3QgPX4gL15odHRwXC8vKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaHR0
cFRlc3RzLCAkdGVzdCk7CisgICAgICAgICAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndlYnNvY2tl
dFwvLykgeworICAgICAgICAgICAgICAgIHB1c2goQHdlYnNvY2tldFRlc3RzLCAkdGVzdCk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQG90aGVyVGVzdHMsICR0
ZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBAdGVzdHNUb1J1biA9IChA
b3RoZXJUZXN0cywgQGh0dHBUZXN0cywgQHdlYnNvY2tldFRlc3RzKTsKKyAgICB9CisKKyAgICAj
IFJldmVyc2UgdGhlIHRlc3RzCisgICAgQHRlc3RzVG9SdW4gPSByZXZlcnNlIEB0ZXN0c1RvUnVu
IGlmICRyZXZlcnNlVGVzdHM7CisKKyAgICAjIFNodWZmbGUgdGhlIGFycmF5CisgICAgQHRlc3Rz
VG9SdW4gPSBzaHVmZmxlKEB0ZXN0c1RvUnVuKSBpZiAkcmFuZG9taXplVGVzdHM7CisKKyAgICBy
ZXR1cm4gQHRlc3RzVG9SdW47Cit9CisKK3N1YiBwcmludFJlc3VsdHMKK3sKKyAgICBteSAldGV4
dCA9ICgKKyAgICAgICAgbWF0Y2ggPT4gInN1Y2NlZWRlZCIsCisgICAgICAgIG1pc21hdGNoID0+
ICJoYWQgaW5jb3JyZWN0IGxheW91dCIsCisgICAgICAgIG5ldyA9PiAid2VyZSBuZXciLAorICAg
ICAgICB0aW1lZG91dCA9PiAidGltZWQgb3V0IiwKKyAgICAgICAgY3Jhc2ggPT4gImNyYXNoZWQi
LAorICAgICAgICBlcnJvciA9PiAiaGFkIHN0ZGVyciBvdXRwdXQiCisgICAgKTsKKworICAgIGZv
ciBteSAkdHlwZSAoIm1hdGNoIiwgIm1pc21hdGNoIiwgIm5ldyIsICJ0aW1lZG91dCIsICJjcmFz
aCIsICJlcnJvciIpIHsKKyAgICAgICAgbXkgJHR5cGVDb3VudCA9ICRjb3VudHN7JHR5cGV9Owor
ICAgICAgICBuZXh0IHVubGVzcyAkdHlwZUNvdW50OworICAgICAgICBteSAkdHlwZVRleHQgPSAk
dGV4dHskdHlwZX07CisgICAgICAgIG15ICRtZXNzYWdlOworICAgICAgICBpZiAoJHR5cGVDb3Vu
dCA9PSAxKSB7CisgICAgICAgICAgICAkdHlwZVRleHQgPX4gcy93ZXJlL3dhcy87CisgICAgICAg
ICAgICAkbWVzc2FnZSA9IHNwcmludGYgIjEgdGVzdCBjYXNlICglZCUlKSAlc1xuIiwgMSAqIDEw
MCAvICRjb3VudCwgJHR5cGVUZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG1l
c3NhZ2UgPSBzcHJpbnRmICIlZCB0ZXN0IGNhc2VzICglZCUlKSAlc1xuIiwgJHR5cGVDb3VudCwg
JHR5cGVDb3VudCAqIDEwMCAvICRjb3VudCwgJHR5cGVUZXh0OworICAgICAgICB9CisgICAgICAg
ICRtZXNzYWdlID1+IHMtXCgwJVwpLSg8MSUpLTsKKyAgICAgICAgcHJpbnQgJG1lc3NhZ2U7Cisg
ICAgfQorfQorCitzdWIgc3RvcFJ1bm5pbmdUZXN0c0Vhcmx5SWZOZWVkZWQoKQoreworICAgICMg
LS1yZXNldC1yZXN1bHRzIGRvZXMgbm90IGNoZWNrIHBhc3MgdnMuIGZhaWwsIHNvIGV4aXRBZnRl
ck5GYWlsdXJlcyBtYWtlcyBubyBzZW5zZSB3aXRoIC0tcmVzZXQtcmVzdWx0cy4KKyAgICByZXR1
cm4gMCBpZiAhJGV4aXRBZnRlck5GYWlsdXJlcyB8fCAkcmVzZXRSZXN1bHRzOworCisgICAgbXkg
JHBhc3NDb3VudCA9ICRjb3VudHN7bWF0Y2h9IHx8IDA7ICMgJGNvdW50c3ttYXRjaH0gd2lsbCBi
ZSB1bmRlZmluZWQgaWYgd2UndmUgbm90IHlldCBwYXNzZWQgYSB0ZXN0IChlLmcuIHRoZSBmaXJz
dCB0ZXN0IGZhaWxzKS4KKyAgICBteSAkZmFpbHVyZUNvdW50ID0gJGNvdW50IC0gJHBhc3NDb3Vu
dDsgIyAiRmFpbHVyZSIgaGVyZSBpbmNsdWRlcyBuZXcgdGVzdHMsIHRpbWVvdXRzLCBjcmFzaGVz
LCBldGMuCisgICAgcmV0dXJuIDAgaWYgJGZhaWx1cmVDb3VudCA8ICRleGl0QWZ0ZXJORmFpbHVy
ZXM7CisKKyAgICBwcmludCAiXG5FeGl0aW5nIGVhcmx5IGFmdGVyICRmYWlsdXJlQ291bnQgZmFp
bHVyZXMuICRjb3VudCB0ZXN0cyBydW4uIjsKKyAgICBjbG9zZUR1bXBUb29sKCk7CisgICAgcmV0
dXJuIDE7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVz
dHMgYi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKb2xkIG1vZGUgMTAwNzU1
Cm5ldyBtb2RlIDEwMDY0NAppbmRleCAwNzM1YjRkLi44Njk0MTk2Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13
ZWJraXQtdGVzdHMKQEAgLTEsMjI3NSArMSw4MCBAQAogIyEvdXNyL2Jpbi9wZXJsCi0KLSMgQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
KGFwQG55cG9wLmNvbSkKLSMgQ29weXJpZ2h0IChDKSAyMDA3IE1hdHQgTGlsZWsgKHBld3Rlcm1v
b3NlQGdtYWlsLmNvbSkKLSMgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMDkgQW5kcmFzIEJlY3NpIChiZWNzaS5hbmRyYXNA
c3R1ZC51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0jIGFyZSBtZXQ6CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgogIwotIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4gCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4gCi0jIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0jICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0jICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0j
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotIyBTY3JpcHQgdG8gcnVuIHRoZSBXZWJLaXQgT3BlbiBTb3VyY2Ug
UHJvamVjdCBsYXlvdXQgdGVzdHMuCi0KLSMgUnVuIGFsbCB0aGUgdGVzdHMgcGFzc2VkIGluIG9u
IHRoZSBjb21tYW5kIGxpbmUuCi0jIElmIG5vIHRlc3RzIGFyZSBwYXNzZWQsIGZpbmQgYWxsIHRo
ZSAuaHRtbCwgLnNodG1sLCAueG1sLCAueGh0bWwsIC54aHRtbG1wLCAucGwsIC5waHAgKGFuZCBz
dmcpIGZpbGVzIGluIHRoZSB0ZXN0IGRpcmVjdG9yeS4KLQotIyBSdW4gZWFjaCB0ZXh0LgotIyBD
b21wYXJlIGFnYWluc3QgdGhlIGV4aXN0aW5nIGZpbGUgeHh4LWV4cGVjdGVkLnR4dC4KLSMgSWYg
dGhlcmUgaXMgYSBtaXNtYXRjaCwgZ2VuZXJhdGUgeHh4LWFjdHVhbC50eHQgYW5kIHh4eC1kaWZm
cy50eHQuCi0KLSMgQXQgdGhlIGVuZCwgcmVwb3J0OgotIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMg
dGhhdCBnb3QgdGhlIGV4cGVjdGVkIHJlc3VsdHMKLSMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRo
YXQgcmFuLCBidXQgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMKLSMgICB0aGUgbnVt
YmVyIG9mIHRlc3RzIHRoYXQgZmFpbGVkIHRvIHJ1bgotIyAgIHRoZSBudW1iZXIgb2YgdGVzdHMg
dGhhdCB3ZXJlIHJ1biBidXQgaGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgdG8gY29tcGFyZSBhZ2Fp
bnN0CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBU
aGlzIGZpbGUgaXMgYSB0ZW1wb3JhcnkgaGFjay4KKyMgSXQgd2lsbCBiZSByZW1vdmVkIGFzIHNv
b24gYXMgYWxsIHBsYXRmb3JtcyBhcmUgYXJlIHJlYWR5IHRvIG1vdmUgdG8KKyMgbmV3LXJ1bi13
ZWJraXQtdGVzdHMgYW5kIHdlIGNhbiB0aGVuIHVwZGF0ZSB0aGUgYnVpbGRib3RzIHRvIGV4cGxp
Y2l0bHkKKyMgY2FsbCBvbGQtcnVuLXdlYmtpdC10ZXN0cyBmb3IgYW55IHBsYXRmb3JtcyB3aGlj
aCB3aWxsIG5ldmVyIHN1cHBvcnQKKyMgYSBQeXRob24gcnVuLXdlYmtpdC10ZXN0cy4KKworIyBU
aGlzIGlzIGludGVudGlvbmFsbHkgd3JpdHRlbiBpbiBQZXJsIHRvIGd1YXJhbnRlZSBzdXBwb3J0
IG9uCisjIHRoZSBzYW1lIHNldCBvZiBwbGF0Zm9ybXMgYXMgb2xkLXJ1bi13ZWJraXQtdGVzdHMg
Y3VycmVudGx5IHN1cHBvcnRzLgorIyBUaGUgYnVpbGRib3QgbWFzdGVyLmNmZyBhbHNvIGN1cnJl
bnRseSBwYXNzZXMgcnVuLXdlYmtpdC10ZXN0cyB0bworIyBwZXJsIGRpcmVjdGx5IGluc3RlYWQg
b2YgZXhlY3V0aW5nIGl0IGluIGEgc2hlbGwuCiAKIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7
CiAKLXVzZSBDd2Q7Ci11c2UgRGF0YTo6RHVtcGVyOwotdXNlIEZjbnRsIHF3KEZfR0VURkwgRl9T
RVRGTCBPX05PTkJMT0NLKTsKLXVzZSBGaWxlOjpCYXNlbmFtZTsKLXVzZSBGaWxlOjpDb3B5Owot
dXNlIEZpbGU6OkZpbmQ7Ci11c2UgRmlsZTo6UGF0aDsKLXVzZSBGaWxlOjpTcGVjOwotdXNlIEZp
bGU6OlNwZWM6OkZ1bmN0aW9uczsKLXVzZSBGaWxlOjpUZW1wOwogdXNlIEZpbmRCaW47Ci11c2Ug
R2V0b3B0OjpMb25nOwotdXNlIElQQzo6T3BlbjI7Ci11c2UgSVBDOjpPcGVuMzsKLXVzZSBUaW1l
OjpIaVJlcyBxdyh0aW1lIHVzbGVlcCk7Ci0KLXVzZSBMaXN0OjpVdGlsICdzaHVmZmxlJzsKLQog
dXNlIGxpYiAkRmluZEJpbjo6QmluOwotdXNlIHdlYmtpdHBlcmw6OmZlYXR1cmVzOwotdXNlIHdl
YmtpdHBlcmw6Omh0dHBkOwogdXNlIHdlYmtpdGRpcnM7Ci11c2UgVkNTVXRpbHM7Ci11c2UgUE9T
SVg7Ci0KLXN1YiBidWlsZFBsYXRmb3JtUmVzdWx0SGllcmFyY2h5KCk7Ci1zdWIgYnVpbGRQbGF0
Zm9ybVRlc3RIaWVyYXJjaHkoQCk7Ci1zdWIgY2xvc2VDeWdwYXRocygpOwotc3ViIGNsb3NlRHVt
cFRvb2woKTsKLXN1YiBjbG9zZVdlYlNvY2tldFNlcnZlcigpOwotc3ViIGNvbmZpZ3VyZUFuZE9w
ZW5IVFRQRElmTmVlZGVkKCk7Ci1zdWIgY291bnRBbmRQcmludExlYWtzKCQkJCk7Ci1zdWIgY291
bnRGaW5pc2hlZFRlc3QoJCQkJCk7Ci1zdWIgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRz
KCQpOwotc3ViIGR1bXBUb29sRGlkQ3Jhc2goKTsKLXN1YiBlcGlsb2d1ZXNBbmRQcm9sb2d1ZXMo
JCQpOwotc3ViIGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkOyQ7JCk7Ci1zdWIgZmlsZU5hbWVX
aXRoTnVtYmVyKCQkKTsKLXN1YiBodG1sRm9yUmVzdWx0c1NlY3Rpb24oXEAkJik7Ci1zdWIgaXNU
ZXh0T25seVRlc3QoJCk7Ci1zdWIgbGF1bmNoV2l0aEVudihcQFwlKTsKLXN1YiByZXNvbHZlQW5k
TWFrZVRlc3RSZXN1bHRzRGlyZWN0b3J5KCk7Ci1zdWIgbnVtZXJpY2NtcCgkJCk7Ci1zdWIgb3Bl
bkRpZmZUb29sKCk7Ci1zdWIgb3BlbkR1bXBUb29sKCk7Ci1zdWIgcGFyc2VMZWFrc2FuZFByaW50
VW5pcXVlTGVha3MoKTsKLXN1YiBvcGVuV2ViU29ja2V0U2VydmVySWZOZWVkZWQoKTsKLXN1YiBw
YXRoY21wKCQkKTsKLXN1YiBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkJCk7Ci1zdWIgcHJv
Y2Vzc0lnbm9yZVRlc3RzKCQkKTsKLXN1YiByZWFkRnJvbUR1bXBUb29sV2l0aFRpbWVyKCoqKTsK
LXN1YiByZWFkU2tpcHBlZEZpbGVzKCQpOwotc3ViIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZm
KCQkKTsKLXN1YiBzYW1wbGVEdW1wVG9vbCgpOwotc3ViIHNldEZpbGVIYW5kbGVOb25CbG9ja2lu
ZygqJCk7Ci1zdWIgc2xvd2VzdGNtcCgkJCk7Ci1zdWIgc3BsaXRwYXRoKCQpOwotc3ViIHN0b3BS
dW5uaW5nVGVzdHNFYXJseUlmTmVlZGVkKCk7Ci1zdWIgc3RyaXBFeHRlbnNpb24oJCk7Ci1zdWIg
c3RyaXBNZXRyaWNzKCQkKTsKLXN1YiB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJCQkJCQpOwotc3Vi
IHRvVVJMKCQpOwotc3ViIHRvV2luZG93c1BhdGgoJCk7Ci1zdWIgdmFsaWRhdGVTa2lwcGVkQXJn
KCQkOyQpOwotc3ViIHdyaXRlVG9GaWxlKCQkKTsKLQotIyBBcmd1bWVudCBoYW5kbGluZwotbXkg
JGFkZFBsYXRmb3JtRXhjZXB0aW9ucyA9IDA7Ci1teSAkY29tcGxleFRleHQgPSAwOwotbXkgJGV4
aXRBZnRlck5GYWlsdXJlcyA9IDA7Ci1teSAkZ2VuZXJhdGVOZXdSZXN1bHRzID0gaXNBcHBsZU1h
Y1dlYktpdCgpID8gMSA6IDA7Ci1teSAkZ3VhcmRNYWxsb2MgPSAnJzsKLSMgRklYTUU6IER5bmFt
aWMgSFRUUC1wb3J0IGNvbmZpZ3VyYXRpb24gaW4gdGhpcyBmaWxlIGlzIHdyb25nLiAgVGhlIHZh
cmlvdXMKLSMgYXBhY2hlIGNvbmZpZyBmaWxlcyBpbiBMYXlvdXRUZXN0cy9odHRwL2NvbmZpZyBn
b3Zlcm4gdGhlIHBvcnQgbnVtYmVycy4KLSMgRHluYW1pYyBjb25maWd1cmF0aW9uIGFzLXdyaXR0
ZW4gd2lsbCBhbHNvIGNhdXNlIHJhbmRvbSBmYWlsdXJlcyBpbgotIyBhbiBJUHY2IGVudmlyb25t
ZW50LiAgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEwNC4K
LW15ICRodHRwZFBvcnQgPSA4MDAwOwotbXkgJGh0dHBkU1NMUG9ydCA9IDg0NDM7Ci1teSAkaWdu
b3JlTWV0cmljcyA9IDA7Ci1teSAkd2ViU29ja2V0UG9ydCA9IDg4ODA7Ci0jIHdzcyBpcyBkaXNh
YmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotIyBteSAkd2ViU29j
a2V0U2VjdXJlUG9ydCA9IDkzMjM7Ci1teSAkaWdub3JlVGVzdHMgPSAnJzsKLW15ICRpdGVyYXRp
b25zID0gMTsKLW15ICRsYXVuY2hTYWZhcmkgPSAxOwotbXkgJG1lcmdlRGVwdGg7Ci1teSAkcGl4
ZWxUZXN0cyA9ICcnOwotbXkgJHBsYXRmb3JtOwotbXkgJHF1aWV0ID0gJyc7Ci1teSAkcmFuZG9t
aXplVGVzdHMgPSAwOwotbXkgJHJlcGVhdEVhY2ggPSAxOwotbXkgJHJlcG9ydDEwU2xvd2VzdCA9
IDA7Ci1teSAkcmVzZXRSZXN1bHRzID0gMDsKLW15ICRyZXZlcnNlVGVzdHMgPSAwOwotbXkgJHJv
b3Q7Ci1teSAkcnVuU2FtcGxlID0gMTsKLW15ICRzaG91bGRDaGVja0xlYWtzID0gMDsKLW15ICRz
aG93SGVscCA9IDA7Ci1teSAkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzID0gaXNDeWd3aW4oKTsKLW15
ICR0ZXN0SFRUUCA9IDE7Ci1teSAkdGVzdE1lZGlhID0gMTsKLW15ICR0bXBEaXIgPSAiL3RtcCI7
Ci1teSAkdGVzdFJlc3VsdHNEaXJlY3RvcnkgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBEaXIs
ICJsYXlvdXQtdGVzdC1yZXN1bHRzIik7Ci1teSAkdGVzdHNQZXJEdW1wVG9vbCA9IDEwMDA7Ci1t
eSAkdGhyZWFkZWQgPSAwOwotIyBEdW1wUmVuZGVyVHJlZSBoYXMgYW4gaW50ZXJuYWwgdGltZW91
dCBvZiAzMCBzZWNvbmRzLCBzbyB0aGlzIG11c3QgYmUgPiAzMC4KLW15ICR0aW1lb3V0U2Vjb25k
cyA9IDM1OwotbXkgJHRvbGVyYW5jZSA9IDA7Ci1teSAkdHJlYXRTa2lwcGVkID0gImRlZmF1bHQi
OwotbXkgJHVzZVJlbW90ZUxpbmtzVG9UZXN0cyA9IDA7Ci1teSAkdXNlVmFsZ3JpbmQgPSAwOwot
bXkgJHZlcmJvc2UgPSAwOwotbXkgJHNob3VsZFdhaXRGb3JIVFRQRCA9IDA7Ci0KLW15IEBsZWFr
c0ZpbGVuYW1lczsKLQotaWYgKGlzV2luZG93cygpIHx8IGlzTXN5cygpKSB7Ci0gICAgcHJpbnQg
IlRoaXMgc2NyaXB0IGhhcyB0byBiZSBydW4gdW5kZXIgQ3lnd2luIHRvIGZ1bmN0aW9uIGNvcnJl
Y3RseS5cbiI7Ci0gICAgZXhpdCAxOwotfQotCi0jIERlZmF1bHQgdG8gLS1uby1odHRwIGZvciB3
eCBmb3Igbm93LgotJHRlc3RIVFRQID0gMCBpZiAoaXNXeCgpKTsKLQotbXkgJGV4cGVjdGVkVGFn
ID0gImV4cGVjdGVkIjsKLW15ICRhY3R1YWxUYWcgPSAiYWN0dWFsIjsKLW15ICRwcmV0dHlEaWZm
VGFnID0gInByZXR0eS1kaWZmIjsKLW15ICRkaWZmc1RhZyA9ICJkaWZmcyI7Ci1teSAkZXJyb3JU
YWcgPSAic3RkZXJyIjsKLQotbXkgQG1hY1BsYXRmb3JtcyA9ICgibWFjLXRpZ2VyIiwgIm1hYy1s
ZW9wYXJkIiwgIm1hYy1zbm93bGVvcGFyZCIsICJtYWMiKTsKLQotaWYgKGlzQXBwbGVNYWNXZWJL
aXQoKSkgewotICAgIGlmIChpc1RpZ2VyKCkpIHsKLSAgICAgICAgJHBsYXRmb3JtID0gIm1hYy10
aWdlciI7Ci0gICAgICAgICR0b2xlcmFuY2UgPSAxLjA7Ci0gICAgfSBlbHNpZiAoaXNMZW9wYXJk
KCkpIHsKLSAgICAgICAgJHBsYXRmb3JtID0gIm1hYy1sZW9wYXJkIjsKLSAgICAgICAgJHRvbGVy
YW5jZSA9IDAuMTsKLSAgICB9IGVsc2lmIChpc1Nub3dMZW9wYXJkKCkpIHsKLSAgICAgICAgJHBs
YXRmb3JtID0gIm1hYy1zbm93bGVvcGFyZCI7Ci0gICAgICAgICR0b2xlcmFuY2UgPSAwLjE7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgJHBsYXRmb3JtID0gIm1hYyI7Ci0gICAgfQotfSBlbHNpZiAo
aXNRdCgpKSB7Ci0gICAgaWYgKGlzRGFyd2luKCkpIHsKLSAgICAgICAgJHBsYXRmb3JtID0gInF0
LW1hYyI7Ci0gICAgfSBlbHNpZiAoaXNMaW51eCgpKSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJx
dC1saW51eCI7Ci0gICAgfSBlbHNpZiAoaXNXaW5kb3dzKCkgfHwgaXNDeWd3aW4oKSkgewotICAg
ICAgICAkcGxhdGZvcm0gPSAicXQtd2luIjsKLSAgICB9IGVsc2UgewotICAgICAgICAkcGxhdGZv
cm0gPSAicXQiOwotICAgIH0KLX0gZWxzaWYgKGlzR3RrKCkpIHsKLSAgICAkcGxhdGZvcm0gPSAi
Z3RrIjsKLSAgICBpZiAoISRFTlZ7IldFQktJVF9URVNURk9OVFMifSkgewotICAgICAgICBwcmlu
dCAiVGhlIFdFQktJVF9URVNURk9OVFMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGRlZmlu
ZWQuXG4iOwotICAgICAgICBwcmludCAiWW91IG11c3Qgc2V0IGl0IGJlZm9yZSBydW5uaW5nIHRo
ZSB0ZXN0cy5cbiI7Ci0gICAgICAgIHByaW50ICJVc2UgZ2l0IHRvIGdyYWIgdGhlIGFjdHVhbCBm
b250cyBmcm9tIGh0dHA6Ly9naXRvcmlvdXMub3JnL3F0d2Via2l0L3Rlc3Rmb250c1xuIjsKLSAg
ICAgICAgZXhpdCAxOwotICAgIH0KLX0gZWxzaWYgKGlzV3goKSkgewotICAgICRwbGF0Zm9ybSA9
ICJ3eCI7Ci19IGVsc2lmIChpc0N5Z3dpbigpKSB7Ci0gICAgJHBsYXRmb3JtID0gIndpbiI7Ci19
Ci0KLWlmICghZGVmaW5lZCgkcGxhdGZvcm0pKSB7Ci0gICAgcHJpbnQgIldBUk5JTkc6IFlvdXIg
cGxhdGZvcm0gaXMgbm90IHJlY29nbml6ZWQuIEFueSBwbGF0Zm9ybS1zcGVjaWZpYyByZXN1bHRz
IHdpbGwgYmUgZ2VuZXJhdGVkIGluIHBsYXRmb3JtL3VuZGVmaW5lZC5cbiI7Ci0gICAgJHBsYXRm
b3JtID0gInVuZGVmaW5lZCI7Ci19Ci0KLW15ICRwcm9ncmFtTmFtZSA9IGJhc2VuYW1lKCQwKTsK
LW15ICRsYXVuY2hTYWZhcmlEZWZhdWx0ID0gJGxhdW5jaFNhZmFyaSA/ICJsYXVuY2giIDogImRv
IG5vdCBsYXVuY2giOwotbXkgJGh0dHBEZWZhdWx0ID0gJHRlc3RIVFRQID8gInJ1biIgOiAiZG8g
bm90IHJ1biI7Ci1teSAkc2FtcGxlRGVmYXVsdCA9ICRydW5TYW1wbGUgPyAicnVuIiA6ICJkbyBu
b3QgcnVuIjsKLQotbXkgJHVzYWdlID0gPDxFT0Y7Ci1Vc2FnZTogJHByb2dyYW1OYW1lIFtvcHRp
b25zXSBbdGVzdGRpcnx0ZXN0cGF0aCAuLi5dCi0gIC0tYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMg
ICAgICAgUHV0IG5ldyByZXN1bHRzIGZvciBub24tcGxhdGZvcm0tc3BlY2lmaWMgZmFpbGluZyB0
ZXN0cyBpbnRvIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyByZXN1bHRzIGRpcmVjdG9yeQotICAtLWNv
bXBsZXgtdGV4dCAgICAgICAgICAgICAgICAgIFVzZSB0aGUgY29tcGxleCB0ZXh0IGNvZGUgcGF0
aCBmb3IgYWxsIHRleHQgKE1hYyBPUyBYIGFuZCBXaW5kb3dzIG9ubHkpCi0gIC1jfC0tY29uZmln
dXJhdGlvbiBjb25maWcgICAgICAgU2V0IER1bXBSZW5kZXJUcmVlIGJ1aWxkIGNvbmZpZ3VyYXRp
b24KLSAgLWd8LS1ndWFyZC1tYWxsb2MgICAgICAgICAgICAgICBFbmFibGUgbWFsbG9jIGd1YXJk
Ci0gIC0tZXhpdC1hZnRlci1uLWZhaWx1cmVzIE4gICAgICAgRXhpdCBhZnRlciB0aGUgZmlyc3Qg
TiBmYWlsdXJlcyBpbnN0ZWFkIG9mIHJ1bm5pbmcgYWxsIHRlc3RzCi0gIC1ofC0taGVscCAgICAg
ICAgICAgICAgICAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZQotICAtLVtuby1daHR0cCAg
ICAgICAgICAgICAgICAgICAgIFJ1biAob3IgZG8gbm90IHJ1bikgaHR0cCB0ZXN0cyAoZGVmYXVs
dDogJGh0dHBEZWZhdWx0KQotICAtLVtuby1dd2FpdC1mb3ItaHR0cGQgICAgICAgICAgIFdhaXQg
Zm9yIGh0dHBkIGlmIHNvbWUgb3RoZXIgdGVzdCBzZXNzaW9uIGlzIHVzaW5nIGl0IGFscmVhZHkg
KHNhbWUgYXMgV0VCS0lUX1dBSVRfRk9SX0hUVFBEPTEpLiAoZGVmYXVsdDogJHNob3VsZFdhaXRG
b3JIVFRQRCkgCi0gIC1pfC0taWdub3JlLXRlc3RzICAgICAgICAgICAgICAgQ29tbWEtc2VwYXJh
dGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgb3IgdGVzdHMgdG8gaWdub3JlCi0gIC0taXRlcmF0aW9u
cyBuICAgICAgICAgICAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgc2V0IG9mIHRl
c3RzIChlLmcuIEFCQ0FCQ0FCQykKLSAgLS1bbm8tXWxhdW5jaC1zYWZhcmkgICAgICAgICAgICBM
YXVuY2ggKG9yIGRvIG5vdCBsYXVuY2gpIFNhZmFyaSB0byBkaXNwbGF5IHRlc3QgcmVzdWx0cyAo
ZGVmYXVsdDogJGxhdW5jaFNhZmFyaURlZmF1bHQpCi0gIC1sfC0tbGVha3MgICAgICAgICAgICAg
ICAgICAgICAgRW5hYmxlIGxlYWtzIGNoZWNraW5nCi0gIC0tW25vLV1uZXctdGVzdC1yZXN1bHRz
ICAgICAgICAgR2VuZXJhdGUgcmVzdWx0cyBmb3IgbmV3IHRlc3RzCi0gIC0tbnRobHkgbiAgICAg
ICAgICAgICAgICAgICAgICAgUmVzdGFydCBEdW1wUmVuZGVyVHJlZSBldmVyeSBuIHRlc3RzIChk
ZWZhdWx0OiAkdGVzdHNQZXJEdW1wVG9vbCkKLSAgLXB8LS1waXhlbC10ZXN0cyAgICAgICAgICAg
ICAgICBFbmFibGUgcGl4ZWwgdGVzdHMKLSAgLS10b2xlcmFuY2UgdCAgICAgICAgICAgICAgICAg
ICBJZ25vcmUgaW1hZ2UgZGlmZmVyZW5jZXMgbGVzcyB0aGFuIHRoaXMgcGVyY2VudGFnZSAoZGVm
YXVsdDogJHRvbGVyYW5jZSkKLSAgLS1wbGF0Zm9ybSAgICAgICAgICAgICAgICAgICAgICBPdmVy
cmlkZSB0aGUgZGV0ZWN0ZWQgcGxhdGZvcm0gdG8gdXNlIGZvciB0ZXN0cyBhbmQgcmVzdWx0cyAo
ZGVmYXVsdDogJHBsYXRmb3JtKQotICAtLXBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YiBzZXJ2ZXIgcG9ydCB0byB1c2Ugd2l0aCBodHRwIHRlc3RzCi0gIC1xfC0tcXVpZXQgICAgICAg
ICAgICAgICAgICAgICAgTGVzcyB2ZXJib3NlIG91dHB1dAotICAtLXJlc2V0LXJlc3VsdHMgICAg
ICAgICAgICAgICAgIFJlc2V0IEFMTCByZXN1bHRzIChpbmNsdWRpbmcgcGl4ZWwgdGVzdHMgaWYg
LS1waXhlbC10ZXN0cyBpcyBzZXQpCi0gIC1vfC0tcmVzdWx0cy1kaXJlY3RvcnkgICAgICAgICAg
T3V0cHV0IHJlc3VsdHMgZGlyZWN0b3J5IChkZWZhdWx0OiAkdGVzdFJlc3VsdHNEaXJlY3Rvcnkp
Ci0gIC0tcmFuZG9tICAgICAgICAgICAgICAgICAgICAgICAgUnVuIHRoZSB0ZXN0cyBpbiBhIHJh
bmRvbSBvcmRlcgotICAtLXJlcGVhdC1lYWNoIG4gICAgICAgICAgICAgICAgIE51bWJlciBvZiB0
aW1lcyB0byBydW4gZWFjaCB0ZXN0IChlLmcuIEFBQUJCQkNDQykKLSAgLS1yZXZlcnNlICAgICAg
ICAgICAgICAgICAgICAgICBSdW4gdGhlIHRlc3RzIGluIHJldmVyc2UgYWxwaGFiZXRpY2FsIG9y
ZGVyCi0gIC0tcm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCB0byByb290IHRvb2xz
IGJ1aWxkCi0gIC0tW25vLV1zYW1wbGUtb24tdGltZW91dCAgICAgICAgUnVuIHNhbXBsZSBvbiB0
aW1lb3V0IChkZWZhdWx0OiAkc2FtcGxlRGVmYXVsdCkgKE1hYyBPUyBYIG9ubHkpCi0gIC0xfC0t
c2luZ2x5ICAgICAgICAgICAgICAgICAgICAgSXNvbGF0ZSBlYWNoIHRlc3QgY2FzZSBydW4gKGlt
cGxpZXMgLS1udGhseSAxIC0tdmVyYm9zZSkKLSAgLS1za2lwcGVkPVtkZWZhdWx0fGlnbm9yZXxv
bmx5XSBTcGVjaWZpZXMgaG93IHRvIHRyZWF0IHRoZSBTa2lwcGVkIGZpbGUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBUZXN0cy9kaXJlY3RvcmllcyBsaXN0
ZWQgaW4gdGhlIFNraXBwZWQgZmlsZSBhcmUgbm90IHRlc3RlZAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlnbm9yZTogIFRoZSBTa2lwcGVkIGZpbGUgaXMgaWdub3JlZAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHk6ICAgIE9ubHkgdGhvc2Ug
dGVzdHMvZGlyZWN0b3JpZXMgbGlzdGVkIGluIHRoZSBTa2lwcGVkIGZpbGUgd2lsbCBiZSBydW4K
LSAgLS1zbG93ZXN0ICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnQgdGhlIDEwIHNsb3dlc3Qg
dGVzdHMKLSAgLS1pZ25vcmUtbWV0cmljcyAgICAgICAgICAgICAgICBJZ25vcmUgbWV0cmljcyBp
biB0ZXN0cwotICAtLVtuby1dc3RyaXAtZWRpdGluZy1jYWxsYmFja3MgIFJlbW92ZSBlZGl0aW5n
IGNhbGxiYWNrcyBmcm9tIGV4cGVjdGVkIHJlc3VsdHMKLSAgLXR8LS10aHJlYWRlZCAgICAgICAg
ICAgICAgICAgICBSdW4gYSBjb25jdXJyZW50IEphdmFTY3JpcHQgdGhlYWQgd2l0aCBlYWNoIHRl
c3QKLSAgLS10aW1lb3V0IHQgICAgICAgICAgICAgICAgICAgICBTZXRzIHRoZSBudW1iZXIgb2Yg
c2Vjb25kcyBiZWZvcmUgYSB0ZXN0IHRpbWVzIG91dCAoZGVmYXVsdDogJHRpbWVvdXRTZWNvbmRz
KQotICAtLXZhbGdyaW5kICAgICAgICAgICAgICAgICAgICAgIFJ1biBEdW1wUmVuZGVyVHJlZSBp
bnNpZGUgdmFsZ3JpbmQgKFF0L0xpbnV4IG9ubHkpCi0gIC12fC0tdmVyYm9zZSAgICAgICAgICAg
ICAgICAgICAgTW9yZSB2ZXJib3NlIG91dHB1dCAob3ZlcnJpZGVzIC0tcXVpZXQpCi0gIC1tfC0t
bWVyZ2UtbGVhay1kZXB0aCBhcmcgICAgICAgTWVyZ2VzIGxlYWsgY2FsbFN0YWNrcyBhbmQgcHJp
bnRzIHRoZSBudW1iZXIgb2YgdW5pcXVlIGxlYWtzIGJlbmVhdGggYSBjYWxsc3RhY2sgZGVwdGgg
b2YgYXJnLiAgRGVmYXVsdHMgdG8gNS4KLSAgLS11c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzICAg
ICBMaW5rIHRvIHRlc3QgZmlsZXMgd2l0aGluIHRoZSBTVk4gcmVwb3NpdG9yeSBpbiB0aGUgcmVz
dWx0cy4KLUVPRgotCi1zZXRDb25maWd1cmF0aW9uKCk7Ci0KLW15ICRnZXRPcHRpb25zUmVzdWx0
ID0gR2V0T3B0aW9ucygKLSAgICAnYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMnID0+IFwkYWRkUGxh
dGZvcm1FeGNlcHRpb25zLAotICAgICdjb21wbGV4LXRleHQnID0+IFwkY29tcGxleFRleHQsCi0g
ICAgJ2V4aXQtYWZ0ZXItbi1mYWlsdXJlcz1pJyA9PiBcJGV4aXRBZnRlck5GYWlsdXJlcywKLSAg
ICAnZ3VhcmQtbWFsbG9jfGcnID0+IFwkZ3VhcmRNYWxsb2MsCi0gICAgJ2hlbHB8aCcgPT4gXCRz
aG93SGVscCwKLSAgICAnaHR0cCEnID0+IFwkdGVzdEhUVFAsCi0gICAgJ3dhaXQtZm9yLWh0dHBk
IScgPT4gXCRzaG91bGRXYWl0Rm9ySFRUUEQsCi0gICAgJ2lnbm9yZS1tZXRyaWNzIScgPT4gXCRp
Z25vcmVNZXRyaWNzLAotICAgICdpZ25vcmUtdGVzdHN8aT1zJyA9PiBcJGlnbm9yZVRlc3RzLAot
ICAgICdpdGVyYXRpb25zPWknID0+IFwkaXRlcmF0aW9ucywKLSAgICAnbGF1bmNoLXNhZmFyaSEn
ID0+IFwkbGF1bmNoU2FmYXJpLAotICAgICdsZWFrc3xsJyA9PiBcJHNob3VsZENoZWNrTGVha3Ms
Ci0gICAgJ21lcmdlLWxlYWstZGVwdGh8bTo1JyA9PiBcJG1lcmdlRGVwdGgsCi0gICAgJ25ldy10
ZXN0LXJlc3VsdHMhJyA9PiBcJGdlbmVyYXRlTmV3UmVzdWx0cywKLSAgICAnbnRobHk9aScgPT4g
XCR0ZXN0c1BlckR1bXBUb29sLAotICAgICdwaXhlbC10ZXN0c3xwJyA9PiBcJHBpeGVsVGVzdHMs
Ci0gICAgJ3BsYXRmb3JtPXMnID0+IFwkcGxhdGZvcm0sCi0gICAgJ3BvcnQ9aScgPT4gXCRodHRw
ZFBvcnQsCi0gICAgJ3F1aWV0fHEnID0+IFwkcXVpZXQsCi0gICAgJ3JhbmRvbScgPT4gXCRyYW5k
b21pemVUZXN0cywKLSAgICAncmVwZWF0LWVhY2g9aScgPT4gXCRyZXBlYXRFYWNoLAotICAgICdy
ZXNldC1yZXN1bHRzJyA9PiBcJHJlc2V0UmVzdWx0cywKLSAgICAncmVzdWx0cy1kaXJlY3Rvcnl8
bz1zJyA9PiBcJHRlc3RSZXN1bHRzRGlyZWN0b3J5LAotICAgICdyZXZlcnNlJyA9PiBcJHJldmVy
c2VUZXN0cywKLSAgICAncm9vdD1zJyA9PiBcJHJvb3QsCi0gICAgJ3NhbXBsZS1vbi10aW1lb3V0
IScgPT4gXCRydW5TYW1wbGUsCi0gICAgJ3NpbmdseXwxJyA9PiBzdWIgeyAkdGVzdHNQZXJEdW1w
VG9vbCA9IDE7IH0sCi0gICAgJ3NraXBwZWQ9cycgPT4gXCZ2YWxpZGF0ZVNraXBwZWRBcmcsCi0g
ICAgJ3Nsb3dlc3QnID0+IFwkcmVwb3J0MTBTbG93ZXN0LAotICAgICdzdHJpcC1lZGl0aW5nLWNh
bGxiYWNrcyEnID0+IFwkc3RyaXBFZGl0aW5nQ2FsbGJhY2tzLAotICAgICd0aHJlYWRlZHx0JyA9
PiBcJHRocmVhZGVkLAotICAgICd0aW1lb3V0PWknID0+IFwkdGltZW91dFNlY29uZHMsCi0gICAg
J3RvbGVyYW5jZT1mJyA9PiBcJHRvbGVyYW5jZSwKLSAgICAndXNlLXJlbW90ZS1saW5rcy10by10
ZXN0cycgPT4gXCR1c2VSZW1vdGVMaW5rc1RvVGVzdHMsCi0gICAgJ3ZhbGdyaW5kJyA9PiBcJHVz
ZVZhbGdyaW5kLAotICAgICd2ZXJib3NlfHYnID0+IFwkdmVyYm9zZSwKLSk7Ci0KLWlmICghJGdl
dE9wdGlvbnNSZXN1bHQgfHwgJHNob3dIZWxwKSB7Ci0gICAgcHJpbnQgU1RERVJSICR1c2FnZTsK
LSAgICBleGl0IDE7Ci19Ci0KLW15ICRpZ25vcmVTa2lwcGVkID0gJHRyZWF0U2tpcHBlZCBlcSAi
aWdub3JlIjsKLW15ICRza2lwcGVkT25seSA9ICR0cmVhdFNraXBwZWQgZXEgIm9ubHkiOwotCi1t
eSAkY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24oKTsKLQotIyBXZSBuZWVkIGFuIGVudmly
b25tZW50IHZhcmlhYmxlIHRvIGJlIGFibGUgdG8gZW5hYmxlIHRoZSBmZWF0dXJlIHBlci1zbGF2
ZQotJHNob3VsZFdhaXRGb3JIVFRQRCA9ICRFTlZ7IldFQktJVF9XQUlUX0ZPUl9IVFRQRCJ9IHVu
bGVzcyAoJHNob3VsZFdhaXRGb3JIVFRQRCk7Ci0kdmVyYm9zZSA9IDEgaWYgJHRlc3RzUGVyRHVt
cFRvb2wgPT0gMTsKLQotaWYgKCRzaG91bGRDaGVja0xlYWtzICYmICR0ZXN0c1BlckR1bXBUb29s
ID4gMTAwMCkgewotICAgIHByaW50IFNUREVSUiAiXG5XQVJOSU5HOiBSdW5uaW5nIG1vcmUgdGhh
biAxMDAwIHRlc3RzIGF0IGEgdGltZSB3aXRoIE1hbGxvY1N0YWNrTG9nZ2luZyBlbmFibGVkIG1h
eSBjYXVzZSBhIGNyYXNoLlxuXG4iOwotfQotCi0jIFN0YWNrIGxvZ2dpbmcgZG9lcyBub3QgcGxh
eSB3ZWxsIHdpdGggUXVpY2tUaW1lIG9uIFRpZ2VyIChyZGFyOi8vcHJvYmxlbS81NTM3MTU3KQot
JHRlc3RNZWRpYSA9IDAgaWYgJHNob3VsZENoZWNrTGVha3MgJiYgaXNUaWdlcigpOwotCi0jIEdl
bmVyYXRpbmcgcmVtb3RlIGxpbmtzIGNhdXNlcyBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBzcGV3IG9u
IEdUSyBidWlsZCBib3QKLSR1c2VSZW1vdGVMaW5rc1RvVGVzdHMgPSAwIGlmIGlzR3RrKCk7Ci0K
LXNldENvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyKEN3ZDo6YWJzX3BhdGgoJHJvb3QpKSBpZiAoZGVm
aW5lZCgkcm9vdCkpOwotbXkgJHByb2R1Y3REaXIgPSBwcm9kdWN0RGlyKCk7Ci0kcHJvZHVjdERp
ciAuPSAiL2JpbiIgaWYgaXNRdCgpOwotJHByb2R1Y3REaXIgLj0gIi9Qcm9ncmFtcyIgaWYgaXNH
dGsoKTsKLQotY2hkaXJXZWJLaXQoKTsKLQotaWYgKCFkZWZpbmVkKCRyb290KSkgewotICAgIHBy
aW50IFNUREVSUiAiUnVubmluZyBidWlsZC1kdW1wcmVuZGVydHJlZVxuIjsKLQotICAgIGxvY2Fs
ICpERVZOVUxMOwotICAgIG15ICgkY2hpbGRJbiwgJGNoaWxkT3V0LCAkY2hpbGRFcnIpOwotICAg
IGlmICgkcXVpZXQpIHsKLSAgICAgICAgb3BlbihERVZOVUxMLCAiPiIsIEZpbGU6OlNwZWMtPmRl
dm51bGwoKSkgb3IgZGllICJGYWlsZWQgdG8gb3BlbiAvZGV2L251bGwiOwotICAgICAgICAkY2hp
bGRPdXQgPSAiPiZERVZOVUxMIjsKLSAgICAgICAgJGNoaWxkRXJyID0gIj4mREVWTlVMTCI7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgIyBXaGVuIG5vdCBxdWlldCwgbGV0IHRoZSBjaGlsZCB1c2Ug
b3VyIHN0ZG91dC9zdGRlcnIuCi0gICAgICAgICRjaGlsZE91dCA9ICI+JlNURE9VVCI7Ci0gICAg
ICAgICRjaGlsZEVyciA9ICI+JlNUREVSUiI7Ci0gICAgfQotCi0gICAgbXkgQGFyZ3MgPSBhcmd1
bWVudHNGb3JDb25maWd1cmF0aW9uKCk7Ci0gICAgbXkgJGJ1aWxkUHJvY2VzcyA9IG9wZW4zKCRj
aGlsZEluLCAkY2hpbGRPdXQsICRjaGlsZEVyciwgIldlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQt
ZHVtcHJlbmRlcnRyZWUiLCBAYXJncykgb3IgZGllICJGYWlsZWQgdG8gcnVuIGJ1aWxkLWR1bXBy
ZW5kZXJ0cmVlIjsKLSAgICBjbG9zZSgkY2hpbGRJbik7Ci0gICAgd2FpdHBpZCAkYnVpbGRQcm9j
ZXNzLCAwOwotICAgIG15ICRidWlsZFJlc3VsdCA9ICQ/OwotICAgIGNsb3NlKCRjaGlsZE91dCk7
Ci0gICAgY2xvc2UoJGNoaWxkRXJyKTsKLQotICAgIGNsb3NlIERFVk5VTEwgaWYgKCRxdWlldCk7
Ci0KLSAgICBpZiAoJGJ1aWxkUmVzdWx0KSB7Ci0gICAgICAgIHByaW50IFNUREVSUiAiQ29tcGls
aW5nIER1bXBSZW5kZXJUcmVlIGZhaWxlZCFcbiI7Ci0gICAgICAgIGV4aXQgZXhpdFN0YXR1cygk
YnVpbGRSZXN1bHQpOwotICAgIH0KLX0KLQotbXkgJGR1bXBUb29sTmFtZSA9ICJEdW1wUmVuZGVy
VHJlZSI7Ci0kZHVtcFRvb2xOYW1lIC49ICJfZGVidWciIGlmIGlzQ3lnd2luKCkgJiYgY29uZmln
dXJhdGlvbkZvclZpc3VhbFN0dWRpbygpICF+IC9eUmVsZWFzZXxEZWJ1Z19JbnRlcm5hbCQvOwot
bXkgJGR1bXBUb29sID0gIiRwcm9kdWN0RGlyLyRkdW1wVG9vbE5hbWUiOwotZGllICJjYW4ndCBm
aW5kIGV4ZWN1dGFibGUgJGR1bXBUb29sTmFtZSAobG9va2VkIGluICRwcm9kdWN0RGlyKVxuIiB1
bmxlc3MgLXggJGR1bXBUb29sOwotCi1teSAkaW1hZ2VEaWZmVG9vbCA9ICIkcHJvZHVjdERpci9J
bWFnZURpZmYiOwotJGltYWdlRGlmZlRvb2wgLj0gIl9kZWJ1ZyIgaWYgaXNDeWd3aW4oKSAmJiBj
b25maWd1cmF0aW9uRm9yVmlzdWFsU3R1ZGlvKCkgIX4gL15SZWxlYXNlfERlYnVnX0ludGVybmFs
JC87Ci1kaWUgImNhbid0IGZpbmQgZXhlY3V0YWJsZSAkaW1hZ2VEaWZmVG9vbCAobG9va2VkIGlu
ICRwcm9kdWN0RGlyKVxuIiBpZiAkcGl4ZWxUZXN0cyAmJiAhLXggJGltYWdlRGlmZlRvb2w7Ci0K
LWNoZWNrRnJhbWV3b3JrcygpIHVubGVzcyBpc0N5Z3dpbigpOwotCi1pZiAoaXNBcHBsZU1hY1dl
YktpdCgpKSB7Ci0gICAgcHVzaCBASU5DLCAkcHJvZHVjdERpcjsKLSAgICByZXF1aXJlIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydDsKLX0KLQotbXkgJGxheW91dFRlc3RzTmFtZSA9ICJMYXlvdXRUZXN0
cyI7Ci1teSAkdGVzdERpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJGxheW91dFRlc3Rz
TmFtZSk7Ci1teSAkZXhwZWN0ZWREaXJlY3RvcnkgPSAkdGVzdERpcmVjdG9yeTsKLW15ICRwbGF0
Zm9ybUJhc2VEaXJlY3RvcnkgPSBjYXRkaXIoJHRlc3REaXJlY3RvcnksICJwbGF0Zm9ybSIpOwot
bXkgJHBsYXRmb3JtVGVzdERpcmVjdG9yeSA9IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0b3J5
LCAkcGxhdGZvcm0pOwotbXkgQHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5ID0gYnVpbGRQbGF0Zm9y
bVJlc3VsdEhpZXJhcmNoeSgpOwotbXkgQHBsYXRmb3JtVGVzdEhpZXJhcmNoeSA9IGJ1aWxkUGxh
dGZvcm1UZXN0SGllcmFyY2h5KEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSk7Ci0KLSRleHBlY3Rl
ZERpcmVjdG9yeSA9ICRFTlZ7IldlYktpdEV4cGVjdGVkVGVzdFJlc3VsdHNEaXJlY3RvcnkifSBp
ZiAkRU5WeyJXZWJLaXRFeHBlY3RlZFRlc3RSZXN1bHRzRGlyZWN0b3J5In07Ci0KLSR0ZXN0UmVz
dWx0c0RpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJHRlc3RSZXN1bHRzRGlyZWN0b3J5
KTsKLW15ICR0ZXN0UmVzdWx0cyA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlc3RSZXN1bHRzRGly
ZWN0b3J5LCAicmVzdWx0cy5odG1sIik7Ci0KLWlmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKLSAg
ICBwcmludCBTVERFUlIgIkNvbXBpbGluZyBKYXZhIHRlc3RzXG4iOwotICAgIG15ICRqYXZhVGVz
dHNEaXJlY3RvcnkgPSBjYXRkaXIoJHRlc3REaXJlY3RvcnksICJqYXZhIik7Ci0KLSAgICBpZiAo
c3lzdGVtKCIvdXNyL2Jpbi9tYWtlIiwgIi1DIiwgIiRqYXZhVGVzdHNEaXJlY3RvcnkiKSkgewot
ICAgICAgICBleGl0IDE7Ci0gICAgfQotfQotCi0KLXByaW50ICJSdW5uaW5nIHRlc3RzIGZyb20g
JHRlc3REaXJlY3RvcnlcbiI7Ci1pZiAoJHBpeGVsVGVzdHMpIHsKLSAgICBwcmludCAiRW5hYmxp
bmcgcGl4ZWwgdGVzdHMgd2l0aCBhIHRvbGVyYW5jZSBvZiAkdG9sZXJhbmNlJVxuIjsKLSAgICBp
ZiAoaXNEYXJ3aW4oKSkgewotICAgICAgICBwcmludCAiV0FSTklORzogVGVtcG9yYXJpbHkgY2hh
bmdpbmcgdGhlIG1haW4gZGlzcGxheSBjb2xvciBwcm9maWxlOlxuIjsKLSAgICAgICAgcHJpbnQg
Ilx0VGhlIGNvbG9ycyBvbiB5b3VyIHNjcmVlbiB3aWxsIGNoYW5nZSBmb3IgdGhlIGR1cmF0aW9u
IG9mIHRoZSB0ZXN0aW5nLlxuIjsKLSAgICAgICAgcHJpbnQgIlx0VGhpcyBhbGxvd3MgdGhlIHBp
eGVsIHRlc3RzIHRvIGhhdmUgY29uc2lzdGVudCBjb2xvciB2YWx1ZXMgYWNyb3NzIGFsbCBtYWNo
aW5lcy5cbiI7Ci0gICAgICAgIAotICAgICAgICBpZiAoaXNQZXJpYW5JbnN0YWxsZWQoKSkgewot
ICAgICAgICAgICAgcHJpbnQgIldBUk5JTkc6IFBlcmlhbidzIFF1aWNrVGltZSBjb21wb25lbnQg
aXMgaW5zdGFsbGVkIGFuZCB0aGlzIG1heSBhZmZlY3QgcGl4ZWwgdGVzdCByZXN1bHRzIVxuIjsK
LSAgICAgICAgICAgIHByaW50ICJcdFlvdSBzaG91bGQgYXZvaWQgZ2VuZXJhdGluZyBuZXcgcGl4
ZWwgcmVzdWx0cyBpbiB0aGlzIGVudmlyb25tZW50LlxuIjsKLSAgICAgICAgICAgIHByaW50ICJc
dFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTUgZm9yIGRl
dGFpbHMuXG4iOwotICAgICAgICB9Ci0gICAgfQotfQotCi1zeXN0ZW0gImxuIiwgIi1zIiwgJHRl
c3REaXJlY3RvcnksICIvdG1wL0xheW91dFRlc3RzIiB1bmxlc3MgLXggIi90bXAvTGF5b3V0VGVz
dHMiOwotCi1teSAlaWdub3JlZEZpbGVzID0gKCAicmVzdWx0cy5odG1sIiA9PiAxICk7Ci1teSAl
aWdub3JlZERpcmVjdG9yaWVzID0gbWFwIHsgJF8gPT4gMSB9IHF3KHBsYXRmb3JtKTsKLW15ICVp
Z25vcmVkTG9jYWxEaXJlY3RvcmllcyA9IG1hcCB7ICRfID0+IDEgfSBxdyguc3ZuIF9zdm4gcmVz
b3VyY2VzIHNjcmlwdC10ZXN0cyk7Ci1teSAlc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMgPSBtYXAg
eyAkXyA9PiAxIH0gcXcoaHRtbCBzaHRtbCB4bWwgeGh0bWwgeGh0bWxtcCBwbCBwaHApOwotCi1p
ZiAoIWNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJNYXRoTUwiLCAwKSkgewotICAgICRpZ25v
cmVkRGlyZWN0b3JpZXN7J21hdGhtbCd9ID0gMTsKLX0KLQotIyBGSVhNRTogV2Ugc2hvdWxkIGZp
eCB3ZWJraXRwZXJsL2ZlYXR1cmVzLnBtOmhhc0ZlYXR1cmUoKSB0byBkbyB0aGUgY29ycmVjdCBm
ZWF0dXJlIGRldGVjdGlvbiBmb3IgQ3lnd2luLgotaWYgKGNoZWNrV2ViQ29yZUZlYXR1cmVTdXBw
b3J0KCJTVkciLCAwKSkgewotICAgICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3snc3ZnJ30gPSAx
OwotfSBlbHNpZiAoaXNDeWd3aW4oKSkgewotICAgICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3sn
c3ZnJ30gPSAxOwotfSBlbHNlIHsKLSAgICAkaWdub3JlZExvY2FsRGlyZWN0b3JpZXN7J3N2Zyd9
ID0gMTsKLX0KLQotaWYgKCEkdGVzdEhUVFApIHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydo
dHRwJ30gPSAxOwotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J3dlYnNvY2tldCd9ID0gMTsKLX0K
LQotaWYgKCEkdGVzdE1lZGlhKSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snbWVkaWEnfSA9
IDE7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snaHR0cC90ZXN0cy9tZWRpYSd9ID0gMTsKLX0K
LQotbXkgJHN1cHBvcnRlZEZlYXR1cmVzUmVzdWx0ID0gIiI7Ci0KLWlmIChpc0N5Z3dpbigpKSB7
Ci0gICAgIyBDb2xsZWN0IHN1cHBvcnRlZCBmZWF0dXJlcyBsaXN0Ci0gICAgc2V0UGF0aEZvclJ1
bm5pbmdXZWJLaXRBcHAoXCVFTlYpOwotICAgIG15ICRzdXBwb3J0ZWRGZWF0dXJlc0NvbW1hbmQg
PSAkZHVtcFRvb2wgLiAiIC0tcHJpbnQtc3VwcG9ydGVkLWZlYXR1cmVzIDI+JjEiOwotICAgICRz
dXBwb3J0ZWRGZWF0dXJlc1Jlc3VsdCA9IGAkc3VwcG9ydGVkRmVhdHVyZXNDb21tYW5kIDI+JjFg
OwotfQotCi1teSAkaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IDA7Ci1teSAkaGFzM0RSZW5k
ZXJpbmcgPSAwOwotCi1pZiAoaXNDeWd3aW4oKSkgewotICAgICRoYXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nID0gJHN1cHBvcnRlZEZlYXR1cmVzUmVzdWx0ID1+IC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nLzsKLSAgICAkaGFzM0RSZW5kZXJpbmcgPSAkc3VwcG9ydGVkRmVhdHVyZXNSZXN1bHQgPX4g
LzNEUmVuZGVyaW5nLzsKLX0gZWxzZSB7Ci0gICAgJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcg
PSBjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmciLCAw
KTsKLSAgICAkaGFzM0RSZW5kZXJpbmcgPSBjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiM0Qg
UmVuZGVyaW5nIiwgMCk7Ci19Ci0KLWlmICghJGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpIHsK
LSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydjb21wb3NpdGluZyd9ID0gMTsKLX0KLQotaWYgKCEk
aGFzM0RSZW5kZXJpbmcpIHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydhbmltYXRpb25zLzNk
J30gPSAxOwotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J3RyYW5zZm9ybXMvM2QnfSA9IDE7Ci19
Ci0KLWlmICghY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIjNEIENhbnZhcyIsIDApKSB7Ci0g
ICAgJGlnbm9yZWREaXJlY3Rvcmllc3snZmFzdC9jYW52YXMvd2ViZ2wnfSA9IDE7Ci19Ci0KLWlm
IChjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiV01MIiwgMCkpIHsKLSAgICAkc3VwcG9ydGVk
RmlsZUV4dGVuc2lvbnN7J3dtbCd9ID0gMTsKLX0gZWxzZSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rv
cmllc3snaHR0cC90ZXN0cy93bWwnfSA9IDE7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snZmFz
dC93bWwnfSA9IDE7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snd21sJ30gPSAxOwotfQotCi1p
ZiAoIWNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJYSFRNTE1QIiwgMCkpIHsKLSAgICAkaWdu
b3JlZERpcmVjdG9yaWVzeydmYXN0L3hodG1sbXAnfSA9IDE7Ci19Ci0KLXByb2Nlc3NJZ25vcmVU
ZXN0cygkaWdub3JlVGVzdHMsICJpZ25vcmUtdGVzdHMiKSBpZiAkaWdub3JlVGVzdHM7Ci1pZiAo
ISRpZ25vcmVTa2lwcGVkKSB7Ci0gICAgaWYgKCEkc2tpcHBlZE9ubHkgfHwgQEFSR1YgPT0gMCkg
ewotICAgICAgICByZWFkU2tpcHBlZEZpbGVzKCIiKTsKLSAgICB9IGVsc2UgewotICAgICAgICAj
IFNpbmNlIHJlYWRTa2lwcGVkRmlsZXMoKSBhcHBlbmRzIHRvIEBBUkdWLCB3ZSBtdXN0IHVzZSBh
IGZvcmVhY2gKLSAgICAgICAgIyBsb29wIHNvIHRoYXQgd2Ugb25seSBpdGVyYXRlIG92ZXIgdGhl
IG9yaWdpbmFsIGFyZ3VtZW50IGxpc3QuCi0gICAgICAgIGZvcmVhY2ggbXkgJGFyZ251bSAoMCAu
LiAkI0FSR1YpIHsKLSAgICAgICAgICAgIHJlYWRTa2lwcGVkRmlsZXMoc2hpZnQgQEFSR1YpOwot
ICAgICAgICB9Ci0gICAgfQotfQotCi1teSBAdGVzdHMgPSBmaW5kVGVzdHNUb1J1bigpOwotCi1k
aWUgIm5vIHRlc3RzIHRvIHJ1blxuIiBpZiAhQHRlc3RzOwotCi1teSAlY291bnRzOwotbXkgJXRl
c3RzOwotbXkgJWltYWdlc1ByZXNlbnQ7Ci1teSAlaW1hZ2VEaWZmZXJlbmNlczsKLW15ICVkdXJh
dGlvbnM7Ci1teSAkY291bnQgPSAwOwotbXkgJGxlYWtzT3V0cHV0RmlsZU51bWJlciA9IDE7Ci1t
eSAkdG90YWxMZWFrcyA9IDA7Ci0KLW15IEB0b29sQXJncyA9ICgpOwotcHVzaCBAdG9vbEFyZ3Ms
ICItLXBpeGVsLXRlc3RzIiBpZiAkcGl4ZWxUZXN0czsKLXB1c2ggQHRvb2xBcmdzLCAiLS10aHJl
YWRlZCIgaWYgJHRocmVhZGVkOwotcHVzaCBAdG9vbEFyZ3MsICItLWNvbXBsZXgtdGV4dCIgaWYg
JGNvbXBsZXhUZXh0OwotcHVzaCBAdG9vbEFyZ3MsICItIjsKLQotbXkgQGRpZmZUb29sQXJncyA9
ICgpOwotcHVzaCBAZGlmZlRvb2xBcmdzLCAiLS10b2xlcmFuY2UiLCAkdG9sZXJhbmNlOwotCi0k
fCA9IDE7Ci0KLW15ICRkdW1wVG9vbFBJRDsKLW15ICRpc0R1bXBUb29sT3BlbiA9IDA7Ci1teSAk
ZHVtcFRvb2xDcmFzaGVkID0gMDsKLW15ICRpbWFnZURpZmZUb29sUElEOwotbXkgJGlzRGlmZlRv
b2xPcGVuID0gMDsKLQotbXkgJGF0TGluZVN0YXJ0ID0gMTsKLW15ICRsYXN0RGlyZWN0b3J5ID0g
IiI7Ci0KLW15ICRpc0h0dHBkT3BlbiA9IDA7Ci1teSAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0g
MDsKLW15ICR3ZWJTb2NrZXRTZXJ2ZXJQSUQgPSAwOwotbXkgJGZhaWxlZFRvU3RhcnRXZWJTb2Nr
ZXRTZXJ2ZXIgPSAwOwotIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBw
b3J0IHB5T3BlblNTTC4KLSMgbXkgJHdlYlNvY2tldFNlY3VyZVNlcnZlclBJRCA9IDA7Ci0KLXN1
YiBjYXRjaF9waXBlIHsgJGR1bXBUb29sQ3Jhc2hlZCA9IDE7IH0KLSRTSUd7IlBJUEUifSA9ICJj
YXRjaF9waXBlIjsKLQotcHJpbnQgIlRlc3RpbmcgIiwgc2NhbGFyIEB0ZXN0cywgIiB0ZXN0IGNh
c2VzIjsKLXByaW50ICIgJGl0ZXJhdGlvbnMgdGltZXMiIGlmICgkaXRlcmF0aW9ucyA+IDEpOwot
cHJpbnQgIiwgcmVwZWF0aW5nIGVhY2ggdGVzdCAkcmVwZWF0RWFjaCB0aW1lcyIgaWYgKCRyZXBl
YXRFYWNoID4gMSk7Ci1wcmludCAiLlxuIjsKLQotbXkgJG92ZXJhbGxTdGFydFRpbWUgPSB0aW1l
OwotCi1teSAlZXhwZWN0ZWRSZXN1bHRQYXRoczsKLQotbXkgQG9yaWdpbmFsVGVzdHMgPSBAdGVz
dHM7Ci0jIEFkZCBpbmRpdmlkdWFsIHRlc3QgcmVwZXRpdGlvbnMKLWlmICgkcmVwZWF0RWFjaCA+
IDEpIHsKLSAgICBAdGVzdHMgPSAoKTsKLSAgICBmb3JlYWNoIG15ICR0ZXN0IChAb3JpZ2luYWxU
ZXN0cykgewotICAgICAgICBmb3IgKG15ICRpID0gMDsgJGkgPCAkcmVwZWF0RWFjaDsgJGkrKykg
ewotICAgICAgICAgICAgcHVzaChAdGVzdHMsICR0ZXN0KTsKLSAgICAgICAgfQotICAgIH0KLX0K
LSMgQWRkIHRlc3Qgc2V0IHJlcGV0aXRpb25zCi1mb3IgKG15ICRpID0gMTsgJGkgPCAkaXRlcmF0
aW9uczsgJGkrKykgewotICAgIHB1c2goQHRlc3RzLCBAb3JpZ2luYWxUZXN0cyk7Ci19Ci0KLWZv
ciBteSAkdGVzdCAoQHRlc3RzKSB7Ci0gICAgbXkgJG5ld0R1bXBUb29sID0gbm90ICRpc0R1bXBU
b29sT3BlbjsKLSAgICBvcGVuRHVtcFRvb2woKTsKLQotICAgIG15ICRiYXNlID0gc3RyaXBFeHRl
bnNpb24oJHRlc3QpOwotICAgIG15ICRleHBlY3RlZEV4dGVuc2lvbiA9ICIudHh0IjsKLSAgICAK
LSAgICBteSAkZGlyID0gJGJhc2U7Ci0gICAgJGRpciA9fiBzfC9bXi9dKyR8fDsKLQotICAgIGlm
ICgkbmV3RHVtcFRvb2wgfHwgJGRpciBuZSAkbGFzdERpcmVjdG9yeSkgewotICAgICAgICBmb3Jl
YWNoIG15ICRsb2d1ZSAoZXBpbG9ndWVzQW5kUHJvbG9ndWVzKCRuZXdEdW1wVG9vbCA/ICIiIDog
JGxhc3REaXJlY3RvcnksICRkaXIpKSB7Ci0gICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgewot
ICAgICAgICAgICAgICAgICRsb2d1ZSA9IHRvV2luZG93c1BhdGgoJGxvZ3VlKTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxvZ3VlID0gY2Fub25wYXRoKCRsb2d1ZSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAg
ICAgICBwcmludCAicnVubmluZyBlcGlsb2d1ZSBvciBwcm9sb2d1ZSAkbG9ndWVcbiI7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCBPVVQgIiRsb2d1ZVxuIjsKLSAgICAgICAgICAg
ICMgVGhyb3cgYXdheSBvdXRwdXQgZnJvbSBEdW1wUmVuZGVyVHJlZS4KLSAgICAgICAgICAgICMg
T25jZSBmb3IgdGhlIHRlc3Qgb3V0cHV0IGFuZCBvbmNlIGZvciBwaXhlbCByZXN1bHRzIChlbXB0
eSkKLSAgICAgICAgICAgIHdoaWxlICg8SU4+KSB7Ci0gICAgICAgICAgICAgICAgbGFzdCBpZiAv
I0VPRi87Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB3aGlsZSAoPElOPikgewotICAgICAg
ICAgICAgICAgIGxhc3QgaWYgLyNFT0YvOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
fQotCi0gICAgaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAgIHByaW50ICJydW5uaW5nICR0ZXN0IC0+
ICI7Ci0gICAgICAgICRhdExpbmVTdGFydCA9IDA7Ci0gICAgfSBlbHNpZiAoISRxdWlldCkgewot
ICAgICAgICBpZiAoJGRpciBuZSAkbGFzdERpcmVjdG9yeSkgewotICAgICAgICAgICAgcHJpbnQg
IlxuIiB1bmxlc3MgJGF0TGluZVN0YXJ0OwotICAgICAgICAgICAgcHJpbnQgIiRkaXIgIjsKLSAg
ICAgICAgfQotICAgICAgICBwcmludCAiLiI7Ci0gICAgICAgICRhdExpbmVTdGFydCA9IDA7Ci0g
ICAgfQotCi0gICAgJGxhc3REaXJlY3RvcnkgPSAkZGlyOwotCi0gICAgbXkgJHJlc3VsdDsKLQot
ICAgIG15ICRzdGFydFRpbWUgPSB0aW1lIGlmICRyZXBvcnQxMFNsb3dlc3Q7Ci0KLSAgICAjIFRy
eSB0byByZWFkIGV4cGVjdGVkIGhhc2ggZmlsZSBmb3IgcGl4ZWwgdGVzdHMKLSAgICBteSAkc3Vm
Zml4RXhwZWN0ZWRIYXNoID0gIiI7Ci0gICAgaWYgKCRwaXhlbFRlc3RzICYmICEkcmVzZXRSZXN1
bHRzKSB7Ci0gICAgICAgIG15ICRleHBlY3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlG
b3JUZXN0KCRiYXNlLCAwLCAicG5nIik7Ci0gICAgICAgIGlmIChvcGVuIEVYUEVDVEVESEFTSCwg
IiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5jaGVja3N1bSIpIHsKLSAgICAg
ICAgICAgIG15ICRleHBlY3RlZEhhc2ggPSA8RVhQRUNURURIQVNIPjsKLSAgICAgICAgICAgIGNo
b21wKCRleHBlY3RlZEhhc2gpOwotICAgICAgICAgICAgY2xvc2UgRVhQRUNURURIQVNIOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICAjIEZvcm1hdCBleHBlY3RlZCBoYXNoIGludG8gYSBzdWZm
aXggc3RyaW5nIHRoYXQgaXMgYXBwZW5kZWQgdG8gdGhlIHBhdGggLyBVUkwgcGFzc2VkIHRvIERS
VAotICAgICAgICAgICAgJHN1ZmZpeEV4cGVjdGVkSGFzaCA9ICInJGV4cGVjdGVkSGFzaCI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoJHRlc3QgPX4gL15odHRwXC8vKSB7Ci0gICAgICAg
IGNvbmZpZ3VyZUFuZE9wZW5IVFRQRElmTmVlZGVkKCk7Ci0gICAgICAgIGlmICgkdGVzdCAhfiAv
Xmh0dHBcL3Rlc3RzXC9sb2NhbFwvLyAmJiAkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9zc2xcLy8g
JiYgJHRlc3QgIX4gL15odHRwXC90ZXN0c1wvd21sXC8vICYmICR0ZXN0ICF+IC9eaHR0cFwvdGVz
dHNcL21lZGlhXC8vKSB7Ci0gICAgICAgICAgICBteSAkcGF0aCA9IGNhbm9ucGF0aCgkdGVzdCk7
Ci0gICAgICAgICAgICAkcGF0aCA9fiBzL15odHRwXC90ZXN0c1wvLy87Ci0gICAgICAgICAgICBw
cmludCBPVVQgImh0dHA6Ly8xMjcuMC4wLjE6JGh0dHBkUG9ydC8kcGF0aCRzdWZmaXhFeHBlY3Rl
ZEhhc2hcbiI7Ci0gICAgICAgIH0gZWxzaWYgKCR0ZXN0ID1+IC9eaHR0cFwvdGVzdHNcL3NzbFwv
LykgewotICAgICAgICAgICAgbXkgJHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOwotICAgICAgICAg
ICAgJHBhdGggPX4gcy9eaHR0cFwvdGVzdHNcLy8vOwotICAgICAgICAgICAgcHJpbnQgT1VUICJo
dHRwczovLzEyNy4wLjAuMTokaHR0cGRTU0xQb3J0LyRwYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxu
IjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG15ICR0ZXN0UGF0aCA9ICIkdGVzdERp
cmVjdG9yeS8kdGVzdCI7Ci0gICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgewotICAgICAgICAg
ICAgICAgICR0ZXN0UGF0aCA9IHRvV2luZG93c1BhdGgoJHRlc3RQYXRoKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0
aCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCBPVVQgIiR0ZXN0UGF0aCRzdWZm
aXhFeHBlY3RlZEhhc2hcbiI7Ci0gICAgICAgIH0KLSAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndl
YnNvY2tldFwvLykgewotICAgICAgICBpZiAoJHRlc3QgPX4gL153ZWJzb2NrZXRcL3Rlc3RzXC9s
b2NhbFwvLykgewotICAgICAgICAgICAgbXkgJHRlc3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0
ZXN0IjsKLSAgICAgICAgICAgIGlmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICAgICAgICAgJHRl
c3RQYXRoID0gdG9XaW5kb3dzUGF0aCgkdGVzdFBhdGgpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAkdGVzdFBhdGggPSBjYW5vbnBhdGgoJHRlc3RQYXRoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHByaW50IE9VVCAiJHRlc3RQYXRoXG4iOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgaWYgKG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpKSB7
Ci0gICAgICAgICAgICAgICAgbXkgJHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOwotICAgICAgICAg
ICAgICAgIGlmICgkdGVzdCA9fiAvXndlYnNvY2tldFwvdGVzdHNcL3NzbFwvLykgewotICAgICAg
ICAgICAgICAgICAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBv
cnQgcHlPcGVuU1NMLgotICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVycm9yOiB3
c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4iOwot
ICAgICAgICAgICAgICAgICAgICAjIHByaW50IE9VVCAiaHR0cHM6Ly8xMjcuMC4wLjE6JHdlYlNv
Y2tldFNlY3VyZVBvcnQvJHBhdGhcbiI7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnQgT1VUICJodHRwOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRQb3J0
LyRwYXRoXG4iOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgIyBXZSBmYWlsZWQgdG8gbGF1bmNoIHRoZSBXZWJTb2NrZXQgc2VydmVyLiAg
RGlzcGxheSBhIHVzZWZ1bCBlcnJvciBtZXNzYWdlIHJhdGhlciB0aGFuIGF0dGVtcHRpbmcKLSAg
ICAgICAgICAgICAgICAjIHRvIHJ1biB0ZXN0cyB0aGF0IGV4cGVjdCB0aGUgc2VydmVyIHRvIGJl
IGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICBteSAkZXJyb3JNZXNzYWdlUGF0aCA9ICIkdGVz
dERpcmVjdG9yeS93ZWJzb2NrZXQvcmVzb3VyY2VzL3NlcnZlci1mYWlsZWQtdG8tc3RhcnQuaHRt
bCI7Ci0gICAgICAgICAgICAgICAgJGVycm9yTWVzc2FnZVBhdGggPSBpc0N5Z3dpbigpID8gdG9X
aW5kb3dzUGF0aCgkZXJyb3JNZXNzYWdlUGF0aCkgOiBjYW5vbnBhdGgoJGVycm9yTWVzc2FnZVBh
dGgpOwotICAgICAgICAgICAgICAgIHByaW50IE9VVCAiJGVycm9yTWVzc2FnZVBhdGhcbiI7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBteSAkdGVzdFBh
dGggPSAiJHRlc3REaXJlY3RvcnkvJHRlc3QiOwotICAgICAgICBpZiAoaXNDeWd3aW4oKSkgewot
ICAgICAgICAgICAgJHRlc3RQYXRoID0gdG9XaW5kb3dzUGF0aCgkdGVzdFBhdGgpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgJHRlc3RQYXRoID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7
Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQgT1VUICIkdGVzdFBhdGgkc3VmZml4RXhwZWN0ZWRI
YXNoXG4iIGlmIGRlZmluZWQgJHRlc3RQYXRoOwotICAgIH0KLQotICAgICMgRHVtcFJlbmRlclRy
ZWUgaXMgZXhwZWN0ZWQgdG8gZHVtcCB0d28gImJsb2NrcyIgdG8gc3Rkb3V0IGZvciBlYWNoIHRl
c3QuCi0gICAgIyBFYWNoIGJsb2NrIGlzIHRlcm1pbmF0ZWQgYnkgYSAjRU9GIG9uIGEgbGluZSBi
eSBpdHNlbGYuCi0gICAgIyBUaGUgZmlyc3QgYmxvY2sgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVz
dCAoaW4gdGV4dCwgUmVuZGVyVHJlZSBvciBvdGhlciBmb3JtYXRzKS4KLSAgICAjIFRoZSBzZWNv
bmQgYmxvY2sgaXMgZm9yIG9wdGlvbmFsIHBpeGVsIGRhdGEgaW4gUE5HIGZvcm1hdCwgYW5kIG1h
eSBiZSBlbXB0eSBpZgotICAgICMgcGl4ZWwgdGVzdHMgYXJlIG5vdCBiZWluZyBydW4sIG9yIHRo
ZSB0ZXN0IGRvZXMgbm90IGR1bXAgcGl4ZWxzIChlLmcuIHRleHQgdGVzdHMpLgotICAgIG15ICRy
ZWFkUmVzdWx0cyA9IHJlYWRGcm9tRHVtcFRvb2xXaXRoVGltZXIoSU4sIEVSUk9SKTsKLQotICAg
IG15ICRhY3R1YWwgPSAkcmVhZFJlc3VsdHMtPntvdXRwdXR9OwotICAgIG15ICRlcnJvciA9ICRy
ZWFkUmVzdWx0cy0+e2Vycm9yfTsKLQotICAgICRleHBlY3RlZEV4dGVuc2lvbiA9ICRyZWFkUmVz
dWx0cy0+e2V4dGVuc2lvbn07Ci0gICAgbXkgJGV4cGVjdGVkRmlsZU5hbWUgPSAiJGJhc2UtJGV4
cGVjdGVkVGFnLiRleHBlY3RlZEV4dGVuc2lvbiI7Ci0KLSAgICBteSAkaXNUZXh0ID0gaXNUZXh0
T25seVRlc3QoJGFjdHVhbCk7Ci0KLSAgICBteSAkZXhwZWN0ZWREaXIgPSBleHBlY3RlZERpcmVj
dG9yeUZvclRlc3QoJGJhc2UsICRpc1RleHQsICRleHBlY3RlZEV4dGVuc2lvbik7Ci0gICAgJGV4
cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9ID0gIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFt
ZSI7Ci0KLSAgICB1bmxlc3MgKCRyZWFkUmVzdWx0cy0+e3N0YXR1c30gZXEgInN1Y2Nlc3MiKSB7
Ci0gICAgICAgIG15ICRjcmFzaGVkID0gJHJlYWRSZXN1bHRzLT57c3RhdHVzfSBlcSAiY3Jhc2hl
ZCI7Ci0gICAgICAgIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgkdGVzdCwgJGJhc2UsICRjcmFzaGVk
LCAkYWN0dWFsLCAkZXJyb3IpOwotICAgICAgICBjb3VudEZpbmlzaGVkVGVzdCgkdGVzdCwgJGJh
c2UsICRjcmFzaGVkID8gImNyYXNoIiA6ICJ0aW1lZG91dCIsIDApOwotICAgICAgICBsYXN0IGlm
IHN0b3BSdW5uaW5nVGVzdHNFYXJseUlmTmVlZGVkKCk7Ci0gICAgICAgIG5leHQ7Ci0gICAgfQot
Ci0gICAgJGR1cmF0aW9uc3skdGVzdH0gPSB0aW1lIC0gJHN0YXJ0VGltZSBpZiAkcmVwb3J0MTBT
bG93ZXN0OwotCi0gICAgbXkgJGV4cGVjdGVkOwotCi0gICAgaWYgKCEkcmVzZXRSZXN1bHRzICYm
IG9wZW4gRVhQRUNURUQsICI8IiwgIiRleHBlY3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSIpIHsK
LSAgICAgICAgJGV4cGVjdGVkID0gIiI7Ci0gICAgICAgIHdoaWxlICg8RVhQRUNURUQ+KSB7Ci0g
ICAgICAgICAgICBuZXh0IGlmICRzdHJpcEVkaXRpbmdDYWxsYmFja3MgJiYgJF8gPX4gL15FRElU
SU5HIERFTEVHQVRFOi87Ci0gICAgICAgICAgICAkZXhwZWN0ZWQgLj0gJF87Ci0gICAgICAgIH0K
LSAgICAgICAgY2xvc2UgRVhQRUNURUQ7Ci0gICAgfQotCi0gICAgaWYgKCRpZ25vcmVNZXRyaWNz
ICYmICEkaXNUZXh0ICYmIGRlZmluZWQgJGV4cGVjdGVkKSB7Ci0gICAgICAgICgkYWN0dWFsLCAk
ZXhwZWN0ZWQpID0gc3RyaXBNZXRyaWNzKCRhY3R1YWwsICRleHBlY3RlZCk7Ci0gICAgfQogCi0g
ICAgaWYgKCRzaG91bGRDaGVja0xlYWtzICYmICR0ZXN0c1BlckR1bXBUb29sID09IDEpIHsKLSAg
ICAgICAgcHJpbnQgIiAgICAgICAgJHRlc3QgLT4gIjsKLSAgICB9Ci0KLSAgICBteSAkYWN0dWFs
UE5HID0gIiI7Ci0gICAgbXkgJGRpZmZQTkcgPSAiIjsKLSAgICBteSAkZGlmZlBlcmNlbnRhZ2Ug
PSAwOwotICAgIG15ICRkaWZmUmVzdWx0ID0gInBhc3NlZCI7Ci0KLSAgICBteSAkYWN0dWFsSGFz
aCA9ICIiOwotICAgIG15ICRleHBlY3RlZEhhc2ggPSAiIjsKLSAgICBteSAkYWN0dWFsUE5HU2l6
ZSA9IDA7Ci0KLSAgICB3aGlsZSAoPElOPikgewotICAgICAgICBsYXN0IGlmIC8jRU9GLzsKLSAg
ICAgICAgaWYgKC9BY3R1YWxIYXNoOiAoW2EtZjAtOV17MzJ9KS8pIHsKLSAgICAgICAgICAgICRh
Y3R1YWxIYXNoID0gJDE7Ci0gICAgICAgIH0gZWxzaWYgKC9FeHBlY3RlZEhhc2g6IChbYS1mMC05
XXszMn0pLykgewotICAgICAgICAgICAgJGV4cGVjdGVkSGFzaCA9ICQxOwotICAgICAgICB9IGVs
c2lmICgvQ29udGVudC1MZW5ndGg6IChcZCspXHMqLykgewotICAgICAgICAgICAgJGFjdHVhbFBO
R1NpemUgPSAkMTsKLSAgICAgICAgICAgIHJlYWQoSU4sICRhY3R1YWxQTkcsICRhY3R1YWxQTkdT
aXplKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgkdmVyYm9zZSAmJiAkcGl4ZWxUZXN0
cyAmJiAhJHJlc2V0UmVzdWx0cyAmJiAkYWN0dWFsUE5HU2l6ZSkgewotICAgICAgICBpZiAoJGFj
dHVhbEhhc2ggZXEgIiIgJiYgJGV4cGVjdGVkSGFzaCBlcSAiIikgewotICAgICAgICAgICAgcHJp
bnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICJXQVJOSU5HOiBhY3R1YWwgJiBleHBlY3Rl
ZCBwaXhlbCBoYXNoZXMgYXJlIG1pc3NpbmchIik7Ci0gICAgICAgIH0gZWxzaWYgKCRhY3R1YWxI
YXNoIGVxICIiKSB7Ci0gICAgICAgICAgICBwcmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkdGVz
dCwgIldBUk5JTkc6IGFjdHVhbCBwaXhlbCBoYXNoIGlzIG1pc3NpbmchIik7Ci0gICAgICAgIH0g
ZWxzaWYgKCRleHBlY3RlZEhhc2ggZXEgIiIpIHsKLSAgICAgICAgICAgIHByaW50RmFpbHVyZU1l
c3NhZ2VGb3JUZXN0KCR0ZXN0LCAiV0FSTklORzogZXhwZWN0ZWQgcGl4ZWwgaGFzaCBpcyBtaXNz
aW5nISIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCRhY3R1YWxQTkdTaXplID4gMCkg
ewotICAgICAgICBteSAkZXhwZWN0ZWRQaXhlbERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVz
dCgkYmFzZSwgMCwgInBuZyIpOwotCi0gICAgICAgIGlmICghJHJlc2V0UmVzdWx0cyAmJiAoJGV4
cGVjdGVkSGFzaCBuZSAkYWN0dWFsSGFzaCB8fCAoJGFjdHVhbEhhc2ggZXEgIiIgJiYgJGV4cGVj
dGVkSGFzaCBlcSAiIikpKSB7Ci0gICAgICAgICAgICBpZiAoLWYgIiRleHBlY3RlZFBpeGVsRGly
LyRiYXNlLSRleHBlY3RlZFRhZy5wbmciKSB7Ci0gICAgICAgICAgICAgICAgbXkgJGV4cGVjdGVk
UE5HU2l6ZSA9IC1zICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIjsK
LSAgICAgICAgICAgICAgICBteSAkZXhwZWN0ZWRQTkcgPSAiIjsKLSAgICAgICAgICAgICAgICBv
cGVuIEVYUEVDVEVEUE5HLCAiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4cGVjdGVkVGFnLnBu
ZyI7Ci0gICAgICAgICAgICAgICAgcmVhZChFWFBFQ1RFRFBORywgJGV4cGVjdGVkUE5HLCAkZXhw
ZWN0ZWRQTkdTaXplKTsKLQotICAgICAgICAgICAgICAgIG9wZW5EaWZmVG9vbCgpOwotICAgICAg
ICAgICAgICAgIHByaW50IERJRkZPVVQgIkNvbnRlbnQtTGVuZ3RoOiAkYWN0dWFsUE5HU2l6ZVxu
IjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGT1VUICRhY3R1YWxQTkc7Ci0KLSAgICAgICAg
ICAgICAgICBwcmludCBESUZGT1VUICJDb250ZW50LUxlbmd0aDogJGV4cGVjdGVkUE5HU2l6ZVxu
IjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGT1VUICRleHBlY3RlZFBORzsKLQotICAgICAg
ICAgICAgICAgIHdoaWxlICg8RElGRklOPikgewotICAgICAgICAgICAgICAgICAgICBsYXN0IGlm
IC9eZXJyb3IvIHx8IC9eZGlmZjovOwotICAgICAgICAgICAgICAgICAgICBpZiAoL0NvbnRlbnQt
TGVuZ3RoOiAoXGQrKVxzKi8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlYWQoRElGRklO
LCAkZGlmZlBORywgJDEpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgaWYgKC9eZGlmZjogKC4rKSUgKHBhc3NlZHxmYWlsZWQpLykg
ewotICAgICAgICAgICAgICAgICAgICAkZGlmZlBlcmNlbnRhZ2UgPSAkMSArIDA7Ci0gICAgICAg
ICAgICAgICAgICAgICRpbWFnZURpZmZlcmVuY2VzeyRiYXNlfSA9ICRkaWZmUGVyY2VudGFnZTsK
LSAgICAgICAgICAgICAgICAgICAgJGRpZmZSZXN1bHQgPSAkMjsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCEkZGlmZlBlcmNlbnRhZ2Up
IHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3Qs
ICJwaXhlbCBoYXNoIGZhaWxlZCAoYnV0IHBpeGVsIHRlc3Qgc3RpbGwgcGFzc2VzKSIpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAg
ICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3QoJHRlc3QsICJXQVJOSU5HOiBleHBl
Y3RlZCBpbWFnZSBpcyBtaXNzaW5nISIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKCRyZXNldFJlc3VsdHMgfHwgIS1mICIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0k
ZXhwZWN0ZWRUYWcucG5nIikgewotICAgICAgICAgICAgbWtwYXRoIGNhdGZpbGUoJGV4cGVjdGVk
UGl4ZWxEaXIsIGRpcm5hbWUoJGJhc2UpKSBpZiAkdGVzdERpcmVjdG9yeSBuZSAkZXhwZWN0ZWRQ
aXhlbERpcjsKLSAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRQaXhlbERpci8kYmFz
ZS0kZXhwZWN0ZWRUYWcucG5nIiwgJGFjdHVhbFBORyk7Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoJGFjdHVhbEhhc2ggbmUgIiIgJiYgKCRyZXNldFJlc3VsdHMgfHwgIS1mICIkZXhwZWN0ZWRQ
aXhlbERpci8kYmFzZS0kZXhwZWN0ZWRUYWcuY2hlY2tzdW0iKSkgewotICAgICAgICAgICAgd3Jp
dGVUb0ZpbGUoIiRleHBlY3RlZFBpeGVsRGlyLyRiYXNlLSRleHBlY3RlZFRhZy5jaGVja3N1bSIs
ICRhY3R1YWxIYXNoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChkdW1wVG9vbERpZENy
YXNoKCkpIHsKLSAgICAgICAgJHJlc3VsdCA9ICJjcmFzaCI7Ci0gICAgICAgIHRlc3RDcmFzaGVk
T3JUaW1lZE91dCgkdGVzdCwgJGJhc2UsIDEsICRhY3R1YWwsICRlcnJvcik7Ci0gICAgfSBlbHNp
ZiAoIWRlZmluZWQgJGV4cGVjdGVkKSB7Ci0gICAgICAgIGlmICgkdmVyYm9zZSkgewotICAgICAg
ICAgICAgcHJpbnQgIm5ldyAiIC4gKCRyZXNldFJlc3VsdHMgPyAicmVzdWx0IiA6ICJ0ZXN0Iikg
LiJcbiI7Ci0gICAgICAgICAgICAkYXRMaW5lU3RhcnQgPSAxOwotICAgICAgICB9Ci0gICAgICAg
ICRyZXN1bHQgPSAibmV3IjsKLQotICAgICAgICBpZiAoJGdlbmVyYXRlTmV3UmVzdWx0cyB8fCAk
cmVzZXRSZXN1bHRzKSB7Ci0gICAgICAgICAgICBta3BhdGggY2F0ZmlsZSgkZXhwZWN0ZWREaXIs
IGRpcm5hbWUoJGJhc2UpKSBpZiAkdGVzdERpcmVjdG9yeSBuZSAkZXhwZWN0ZWREaXI7Ci0gICAg
ICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVjdGVkRGlyLyRleHBlY3RlZEZpbGVOYW1lIiwgJGFj
dHVhbCk7Ci0gICAgICAgIH0KLSAgICAgICAgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRz
KCRiYXNlKTsKLSAgICAgICAgcmVjb3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJGJhc2UsICRhY3R1
YWwpOwotICAgICAgICBpZiAoISRyZXNldFJlc3VsdHMpIHsKLSAgICAgICAgICAgICMgQWx3YXlz
IHByaW50IHRoZSBmaWxlIG5hbWUgZm9yIG5ldyB0ZXN0cywgYXMgdGhleSB3aWxsIHByb2JhYmx5
IG5lZWQgc29tZSBtYW51YWwgaW5zcGVjdGlvbi4KLSAgICAgICAgICAgICMgaW4gdmVyYm9zZSBt
b2RlIHdlIGFscmVhZHkgcHJpbnRlZCB0aGUgdGVzdCBjYXNlLCBzbyBubyBuZWVkIHRvIGRvIGl0
IGFnYWluLgotICAgICAgICAgICAgdW5sZXNzICgkdmVyYm9zZSkgewotICAgICAgICAgICAgICAg
IHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsKLSAgICAgICAgICAgICAgICBwcmludCAi
JHRlc3QgLT4gIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG15ICRyZXN1bHRzRGlyID0g
Y2F0ZGlyKCRleHBlY3RlZERpciwgZGlybmFtZSgkYmFzZSkpOwotICAgICAgICAgICAgaWYgKCRn
ZW5lcmF0ZU5ld1Jlc3VsdHMpIHsKLSAgICAgICAgICAgICAgICBwcmludCAibmV3IChyZXN1bHRz
IGdlbmVyYXRlZCBpbiAkcmVzdWx0c0RpcilcbiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHByaW50ICJuZXdcbiI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAk
YXRMaW5lU3RhcnQgPSAxOwotICAgICAgICB9Ci0gICAgfSBlbHNpZiAoJGFjdHVhbCBlcSAkZXhw
ZWN0ZWQgJiYgJGRpZmZSZXN1bHQgZXEgInBhc3NlZCIpIHsKLSAgICAgICAgaWYgKCR2ZXJib3Nl
KSB7Ci0gICAgICAgICAgICBwcmludCAic3VjY2VlZGVkXG4iOwotICAgICAgICAgICAgJGF0TGlu
ZVN0YXJ0ID0gMTsKLSAgICAgICAgfQotICAgICAgICAkcmVzdWx0ID0gIm1hdGNoIjsKLSAgICAg
ICAgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICAkcmVzdWx0ID0gIm1pc21hdGNoIjsKLQotICAgICAgICBteSAkcGl4ZWxUZXN0RmFp
bGVkID0gJHBpeGVsVGVzdHMgJiYgJGRpZmZQTkcgJiYgJGRpZmZQTkcgbmUgIiI7Ci0gICAgICAg
IG15ICR0ZXN0RmFpbGVkID0gJGFjdHVhbCBuZSAkZXhwZWN0ZWQ7Ci0KLSAgICAgICAgbXkgJG1l
c3NhZ2UgPSAhJHRlc3RGYWlsZWQgPyAicGl4ZWwgdGVzdCBmYWlsZWQiIDogImZhaWxlZCI7Ci0K
LSAgICAgICAgaWYgKCgkdGVzdEZhaWxlZCB8fCAkcGl4ZWxUZXN0RmFpbGVkKSAmJiAkYWRkUGxh
dGZvcm1FeGNlcHRpb25zKSB7Ci0gICAgICAgICAgICBteSAkdGVzdEJhc2UgPSBjYXRmaWxlKCR0
ZXN0RGlyZWN0b3J5LCAkYmFzZSk7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRCYXNlID0gY2F0
ZmlsZSgkZXhwZWN0ZWREaXIsICRiYXNlKTsKLSAgICAgICAgICAgIG15ICR0ZXN0SXNNYXhpbWFs
bHlQbGF0Zm9ybVNwZWNpZmljID0gJHRlc3RCYXNlID1+IG18XlxRJHBsYXRmb3JtVGVzdERpcmVj
dG9yeVxFL3w7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRSZXN1bHRJc01heGltYWxseVBsYXRm
b3JtU3BlY2lmaWMgPSAkZXhwZWN0ZWRCYXNlID1+IG18XlxRJHBsYXRmb3JtVGVzdERpcmVjdG9y
eVxFL3w7Ci0gICAgICAgICAgICBpZiAoISR0ZXN0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmlj
ICYmICEkZXhwZWN0ZWRSZXN1bHRJc01heGltYWxseVBsYXRmb3JtU3BlY2lmaWMpIHsKLSAgICAg
ICAgICAgICAgICBta3BhdGggY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCBkaXJuYW1l
KCRiYXNlKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCR0ZXN0RmFpbGVkKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG15ICRleHBlY3RlZEZpbGUgPSBjYXRmaWxlKCRwbGF0Zm9ybVRlc3REaXJlY3Rv
cnksICIkZXhwZWN0ZWRGaWxlTmFtZSIpOwotICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmls
ZSgiJGV4cGVjdGVkRmlsZSIsICRhY3R1YWwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAoJHBpeGVsVGVzdEZhaWxlZCkgewotICAgICAgICAgICAgICAgICAgICBteSAk
ZXhwZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGJhc2UtJGV4
cGVjdGVkVGFnLmNoZWNrc3VtIik7Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIk
ZXhwZWN0ZWRGaWxlIiwgJGFjdHVhbEhhc2gpOwotCi0gICAgICAgICAgICAgICAgICAgICRleHBl
Y3RlZEZpbGUgPSBjYXRmaWxlKCRwbGF0Zm9ybVRlc3REaXJlY3RvcnksICIkYmFzZS0kZXhwZWN0
ZWRUYWcucG5nIik7Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKCIkZXhwZWN0ZWRG
aWxlIiwgJGFjdHVhbFBORyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICRt
ZXNzYWdlIC49ICIgKHJlc3VsdHMgZ2VuZXJhdGVkIGluICRwbGF0Zm9ybVRlc3REaXJlY3Rvcnkp
IjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHByaW50RmFpbHVyZU1lc3Nh
Z2VGb3JUZXN0KCR0ZXN0LCAkbWVzc2FnZSk7Ci0KLSAgICAgICAgbXkgJGRpciA9ICIkdGVzdFJl
c3VsdHNEaXJlY3RvcnkvJGJhc2UiOwotICAgICAgICAkZGlyID1+IHN8LyhbXi9dKykkfHwgb3Ig
ZGllICJGYWlsZWQgdG8gZmluZCB0ZXN0IG5hbWUgZnJvbSBiYXNlXG4iOwotICAgICAgICBteSAk
dGVzdE5hbWUgPSAkMTsKLSAgICAgICAgbWtwYXRoICRkaXI7Ci0KLSAgICAgICAgZGVsZXRlRXhw
ZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKTsKLSAgICAgICAgcmVjb3JkQWN0dWFsUmVzdWx0
c0FuZERpZmYoJGJhc2UsICRhY3R1YWwpOwotCi0gICAgICAgIGlmICgkcGl4ZWxUZXN0RmFpbGVk
KSB7Ci0gICAgICAgICAgICAkaW1hZ2VzUHJlc2VudHskYmFzZX0gPSAxOwotCi0gICAgICAgICAg
ICB3cml0ZVRvRmlsZSgiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRhY3R1YWxUYWcucG5n
IiwgJGFjdHVhbFBORyk7Ci0gICAgICAgICAgICB3cml0ZVRvRmlsZSgiJHRlc3RSZXN1bHRzRGly
ZWN0b3J5LyRiYXNlLSRkaWZmc1RhZy5wbmciLCAkZGlmZlBORyk7Ci0KLSAgICAgICAgICAgIG15
ICRleHBlY3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNlLCAwLCAi
cG5nIik7Ci0gICAgICAgICAgICBjb3B5KCIkZXhwZWN0ZWRQaXhlbERpci8kYmFzZS0kZXhwZWN0
ZWRUYWcucG5nIiwgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXhwZWN0ZWRUYWcucG5n
Iik7Ci0KLSAgICAgICAgICAgIG9wZW4gRElGRkhUTUwsICI+JHRlc3RSZXN1bHRzRGlyZWN0b3J5
LyRiYXNlLSRkaWZmc1RhZy5odG1sIiBvciBkaWU7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRN
TCAiPGh0bWw+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjxoZWFkPlxuIjsKLSAg
ICAgICAgICAgIHByaW50IERJRkZIVE1MICI8dGl0bGU+JGJhc2UgSW1hZ2UgQ29tcGFyZTwvdGl0
bGU+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjxzY3JpcHQgbGFuZ3VhZ2U9XCJK
YXZhc2NyaXB0XCIgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuIjsKLSAgICAgICAgICAgIHBy
aW50IERJRkZIVE1MICJ2YXIgY3VycmVudEltYWdlID0gMDtcbiI7Ci0gICAgICAgICAgICBwcmlu
dCBESUZGSFRNTCAidmFyIGltYWdlTmFtZXMgPSBuZXcgQXJyYXkoXCJBY3R1YWxcIiwgXCJFeHBl
Y3RlZFwiKTtcbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAidmFyIGltYWdlUGF0aHMg
PSBuZXcgQXJyYXkoXCIkdGVzdE5hbWUtJGFjdHVhbFRhZy5wbmdcIiwgXCIkdGVzdE5hbWUtJGV4
cGVjdGVkVGFnLnBuZ1wiKTtcbiI7Ci0gICAgICAgICAgICBpZiAoLWYgIiR0ZXN0RGlyZWN0b3J5
LyRiYXNlLXczYy5wbmciKSB7Ci0gICAgICAgICAgICAgICAgY29weSgiJHRlc3REaXJlY3Rvcnkv
JGJhc2UtdzNjLnBuZyIsICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtdzNjLnBuZyIpOwot
ICAgICAgICAgICAgICAgIHByaW50IERJRkZIVE1MICJpbWFnZU5hbWVzLnB1c2goXCJXM0NcIik7
XG4iOwotICAgICAgICAgICAgICAgIHByaW50IERJRkZIVE1MICJpbWFnZVBhdGhzLnB1c2goXCIk
dGVzdE5hbWUtdzNjLnBuZ1wiKTtcbiI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmlu
dCBESUZGSFRNTCAiZnVuY3Rpb24gYW5pbWF0ZUltYWdlKCkge1xuIjsKLSAgICAgICAgICAgIHBy
aW50IERJRkZIVE1MICIgICAgdmFyIGltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJh
bmltYXRlZEltYWdlXCIpO1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgdmFy
IGltYWdlVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaW1hZ2VUZXh0XCIpO1xuIjsK
LSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgaW1hZ2Uuc3JjID0gaW1hZ2VQYXRoc1tj
dXJyZW50SW1hZ2VdO1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgaW1hZ2VU
ZXh0LmlubmVySFRNTCA9IGltYWdlTmFtZXNbY3VycmVudEltYWdlXSArIFwiIEltYWdlXCI7XG4i
OwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIiAgICBjdXJyZW50SW1hZ2UgPSAoY3VycmVu
dEltYWdlICsgMSkgJSBpbWFnZU5hbWVzLmxlbmd0aDtcbiI7Ci0gICAgICAgICAgICBwcmludCBE
SUZGSFRNTCAiICAgIHNldFRpbWVvdXQoJ2FuaW1hdGVJbWFnZSgpJywyMDAwKTtcbiI7Ci0gICAg
ICAgICAgICBwcmludCBESUZGSFRNTCAifVxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1M
ICI8L3NjcmlwdD5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC9oZWFkPlxuIjsK
LSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8Ym9keSBvbkxvYWQ9XCJhbmltYXRlSW1hZ2Uo
KTtcIj5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRhYmxlPlxuIjsKLSAgICAg
ICAgICAgIGlmICgkZGlmZlBlcmNlbnRhZ2UpIHsKLSAgICAgICAgICAgICAgICBwcmludCBESUZG
SFRNTCAiPHRyPlxuIjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRkPkRpZmZl
cmVuY2UgYmV0d2VlbiBpbWFnZXM6IDxhIGhyZWY9XCIkdGVzdE5hbWUtJGRpZmZzVGFnLnBuZ1wi
PiRkaWZmUGVyY2VudGFnZSU8L2E+PC90ZD5cbiI7Ci0gICAgICAgICAgICAgICAgcHJpbnQgRElG
RkhUTUwgIjwvdHI+XG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjx0cj5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRkPjxhIGhyZWY9XCIi
IC4gdG9VUkwoIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IikgLiAiXCI+dGVzdCBmaWxlPC9hPjwvdGQ+
XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdHI+XG4iOwotICAgICAgICAgICAg
cHJpbnQgRElGRkhUTUwgIjx0cj5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRk
IGlkPVwiaW1hZ2VUZXh0XCIgc3R5bGU9XCJ0ZXh0LXdlaWdodDogYm9sZDtcIj5BY3R1YWwgSW1h
Z2U8L3RkPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKLSAgICAg
ICAgICAgIHByaW50IERJRkZIVE1MICI8dHI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjx0ZD48aW1nIHNyYz1cIiR0ZXN0TmFtZS0kYWN0dWFsVGFnLnBuZ1wiIGlkPVwiYW5pbWF0
ZWRJbWFnZVwiPjwvdGQ+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdHI+XG4i
OwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvdGFibGU+XG4iOwotICAgICAgICAgICAg
cHJpbnQgRElGRkhUTUwgIjwvYm9keT5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAi
PC9odG1sPlxuIjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgkZXJyb3IpIHsKLSAgICAg
ICAgbXkgJGRpciA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UiOwotICAgICAgICAkZGly
ID1+IHN8LyhbXi9dKykkfHwgb3IgZGllICJGYWlsZWQgdG8gZmluZCB0ZXN0IG5hbWUgZnJvbSBi
YXNlXG4iOwotICAgICAgICBta3BhdGggJGRpcjsKLSAgICAgICAgCi0gICAgICAgIHdyaXRlVG9G
aWxlKCIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGVycm9yVGFnLnR4dCIsICRlcnJvcik7
Ci0gICAgICAgIAotICAgICAgICAkY291bnRze2Vycm9yfSsrOwotICAgICAgICBwdXNoIEB7JHRl
c3Rze2Vycm9yfX0sICR0ZXN0OwotICAgIH0KLQotICAgIGNvdW50RmluaXNoZWRUZXN0KCR0ZXN0
LCAkYmFzZSwgJHJlc3VsdCwgJGlzVGV4dCk7Ci0gICAgbGFzdCBpZiBzdG9wUnVubmluZ1Rlc3Rz
RWFybHlJZk5lZWRlZCgpOwotfQotCi1teSAkdG90YWxUZXN0aW5nVGltZSA9IHRpbWUgLSAkb3Zl
cmFsbFN0YXJ0VGltZTsKLW15ICR3YWl0VGltZSA9IGdldFdhaXRUaW1lKCk7Ci1pZiAoJHdhaXRU
aW1lID4gMC4xKSB7Ci0gICAgbXkgJG5vcm1hbGl6ZWRUZXN0aW5nVGltZSA9ICR0b3RhbFRlc3Rp
bmdUaW1lIC0gJHdhaXRUaW1lOwotICAgIHByaW50ZiAiXG4lMC4yZnMgSFRUUEQgd2FpdGluZyB0
aW1lXG4iLCAkd2FpdFRpbWUgLiAiIjsKLSAgICBwcmludGYgIiUwLjJmcyBub3JtYWxpemVkIHRl
c3RpbmcgdGltZSIsICRub3JtYWxpemVkVGVzdGluZ1RpbWUgLiAiIjsKLX0KLXByaW50ZiAiXG4l
MC4yZnMgdG90YWwgdGVzdGluZyB0aW1lXG4iLCAkdG90YWxUZXN0aW5nVGltZSAuICIiOwotCi0h
JGlzRHVtcFRvb2xPcGVuIHx8IGRpZSAiRmFpbGVkIHRvIGNsb3NlICRkdW1wVG9vbE5hbWUuXG4i
OwotCi0kaXNIdHRwZE9wZW4gPSAhY2xvc2VIVFRQRCgpOwotY2xvc2VXZWJTb2NrZXRTZXJ2ZXIo
KTsKLQotIyBCZWNhdXNlIG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGlzIHNjcmlwdCBhcmUgcnVu
bmluZyBjb25jdXJyZW50bHkgd2UgY2Fubm90IAotIyBzYWZlbHkgZGVsZXRlIHRoaXMgc3ltbGlu
ay4KLSMgc3lzdGVtICJybSAvdG1wL0xheW91dFRlc3RzIjsKLQotIyBGSVhNRTogRG8gd2UgcmVh
bGx5IHdhbnQgdG8gY2hlY2sgdGhlIGltYWdlLWNvbXBhcmlzb24gdG9vbCBmb3IgbGVha3MgZXZl
cnkgdGltZT8KLWlmICgkaXNEaWZmVG9vbE9wZW4gJiYgJHNob3VsZENoZWNrTGVha3MpIHsKLSAg
ICAkdG90YWxMZWFrcyArPSBjb3VudEFuZFByaW50TGVha3MoIkltYWdlRGlmZiIsICRpbWFnZURp
ZmZUb29sUElELCAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5L0ltYWdlRGlmZi1sZWFrcy50eHQiKTsK
LX0KLQotaWYgKCR0b3RhbExlYWtzKSB7Ci0gICAgaWYgKCRtZXJnZURlcHRoKSB7Ci0gICAgICAg
IHBhcnNlTGVha3NhbmRQcmludFVuaXF1ZUxlYWtzKCk7Ci0gICAgfSBlbHNlIHsgCi0gICAgICAg
IHByaW50ICJcbldBUk5JTkc6ICR0b3RhbExlYWtzIHRvdGFsIGxlYWtzIGZvdW5kIVxuIjsKLSAg
ICAgICAgcHJpbnQgIlNlZSBhYm92ZSBmb3IgaW5kaXZpZHVhbCBsZWFrcyByZXN1bHRzLlxuIiBp
ZiAoJGxlYWtzT3V0cHV0RmlsZU51bWJlciA+IDIpOwotICAgIH0KLX0KLQotY2xvc2UgSU47Ci1j
bG9zZSBPVVQ7Ci1jbG9zZSBFUlJPUjsKLQotaWYgKCRyZXBvcnQxMFNsb3dlc3QpIHsKLSAgICBw
cmludCAiXG5cblRoZSAxMCBzbG93ZXN0IHRlc3RzOlxuXG4iOwotICAgIG15ICRjb3VudCA9IDA7
Ci0gICAgZm9yIG15ICR0ZXN0IChzb3J0IHNsb3dlc3RjbXAga2V5cyAlZHVyYXRpb25zKSB7Ci0g
ICAgICAgIHByaW50ZiAiJTAuMmYgc2VjczogJXNcbiIsICRkdXJhdGlvbnN7JHRlc3R9LCAkdGVz
dDsKLSAgICAgICAgbGFzdCBpZiArKyRjb3VudCA9PSAxMDsKLSAgICB9Ci19Ci0KLXByaW50ICJc
biI7Ci0KLWlmICgkc2tpcHBlZE9ubHkgJiYgJGNvdW50c3sibWF0Y2gifSkgewotICAgIHByaW50
ICJUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBpbiB0aGUgU2tpcHBlZCBmaWxlICgiIC4gRmlsZTo6
U3BlYy0+YWJzMnJlbCgiJHBsYXRmb3JtVGVzdERpcmVjdG9yeS9Ta2lwcGVkIiwgJHRlc3REaXJl
Y3RvcnkpIC4gIiksIGJ1dCBzdWNjZWVkZWQ6XG4iOwotICAgIGZvcmVhY2ggbXkgJHRlc3QgKEB7
JHRlc3RzeyJtYXRjaCJ9fSkgewotICAgICAgICBwcmludCAiICAkdGVzdFxuIjsKLSAgICB9Ci19
Ci0KLWlmICgkcmVzZXRSZXN1bHRzIHx8ICgkY291bnRze21hdGNofSAmJiAkY291bnRze21hdGNo
fSA9PSAkY291bnQpKSB7Ci0gICAgcHJpbnQgImFsbCAkY291bnQgdGVzdCBjYXNlcyBzdWNjZWVk
ZWRcbiI7Ci0gICAgdW5saW5rICR0ZXN0UmVzdWx0czsKLSAgICBleGl0OwotfQotCi1wcmludFJl
c3VsdHMoKTsKLQotbWtwYXRoICR0ZXN0UmVzdWx0c0RpcmVjdG9yeTsKLQotb3BlbiBIVE1MLCAi
PiIsICR0ZXN0UmVzdWx0cyBvciBkaWUgIkZhaWxlZCB0byBvcGVuICR0ZXN0UmVzdWx0cy4gJCEi
OwotcHJpbnQgSFRNTCAiPGh0bWw+XG4iOwotcHJpbnQgSFRNTCAiPGhlYWQ+XG4iOwotcHJpbnQg
SFRNTCAiPHRpdGxlPkxheW91dCBUZXN0IFJlc3VsdHM8L3RpdGxlPlxuIjsKLXByaW50IEhUTUwg
IjwvaGVhZD5cbiI7Ci1wcmludCBIVE1MICI8Ym9keT5cbiI7Ci0KLWlmICgkaWdub3JlTWV0cmlj
cykgewotICAgIHByaW50IEhUTUwgIjxoND5UZXN0ZWQgd2l0aCBtZXRyaWNzIGlnbm9yZWQuPC9o
ND4iOwotfQotCi1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihAeyR0ZXN0c3ttaXNt
YXRjaH19LCAiVGVzdHMgd2hlcmUgcmVzdWx0cyBkaWQgbm90IG1hdGNoIGV4cGVjdGVkIHJlc3Vs
dHMiLCBcJmxpbmtzRm9yTWlzbWF0Y2hUZXN0KTsKLXByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNT
ZWN0aW9uKEB7JHRlc3Rze3RpbWVkb3V0fX0sICJUZXN0cyB0aGF0IHRpbWVkIG91dCIsIFwmbGlu
a3NGb3JFcnJvclRlc3QpOwotcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVz
dHN7Y3Jhc2h9fSwgIlRlc3RzIHRoYXQgY2F1c2VkIHRoZSBEdW1wUmVuZGVyVHJlZSB0b29sIHRv
IGNyYXNoIiwgXCZsaW5rc0ZvckVycm9yVGVzdCk7Ci1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRz
U2VjdGlvbihAeyR0ZXN0c3tlcnJvcn19LCAiVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1dCIs
IFwmbGlua3NGb3JFcnJvclRlc3QpOwotcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24o
QHskdGVzdHN7bmV3fX0sICJUZXN0cyB0aGF0IGhhZCBubyBleHBlY3RlZCByZXN1bHRzIChwcm9i
YWJseSBuZXcpIiwgXCZsaW5rc0Zvck5ld1Rlc3QpOwotCi1wcmludCBIVE1MICI8L2JvZHk+XG4i
OwotcHJpbnQgSFRNTCAiPC9odG1sPlxuIjsKLWNsb3NlIEhUTUw7Ci0KLW15IEBjb25maWd1cmF0
aW9uQXJncyA9IGFyZ3VtZW50c0ZvckNvbmZpZ3VyYXRpb24oKTsKLQotaWYgKGlzR3RrKCkpIHsK
LSAgc3lzdGVtICJXZWJLaXRUb29scy9TY3JpcHRzL3J1bi1sYXVuY2hlciIsIEBjb25maWd1cmF0
aW9uQXJncywgImZpbGU6Ly8iLiR0ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfSBlbHNp
ZiAoaXNRdCgpKSB7Ci0gIHVuc2hpZnQgQGNvbmZpZ3VyYXRpb25BcmdzLCBxdygtZ3JhcGhpY3Nz
eXN0ZW0gcmFzdGVyIC1zdHlsZSB3aW5kb3dzKTsKLSAgaWYgKGlzQ3lnd2luKCkpIHsKLSAgICAk
dGVzdFJlc3VsdHMgPSAiLyIgLiB0b1dpbmRvd3NQYXRoKCR0ZXN0UmVzdWx0cyk7Ci0gICAgJHRl
c3RSZXN1bHRzID1+IHMvXFwvXC8vZzsKLSAgfQotICBzeXN0ZW0gIldlYktpdFRvb2xzL1Njcmlw
dHMvcnVuLWxhdW5jaGVyIiwgQGNvbmZpZ3VyYXRpb25BcmdzLCAiZmlsZTovLyIuJHRlc3RSZXN1
bHRzIGlmICRsYXVuY2hTYWZhcmk7Ci19IGVsc2lmIChpc0N5Z3dpbigpKSB7Ci0gIHN5c3RlbSAi
Y3lnc3RhcnQiLCAkdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKLX0gZWxzZSB7Ci0gIHN5
c3RlbSAiV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4tc2FmYXJpIiwgQGNvbmZpZ3VyYXRpb25Bcmdz
LCAiLU5TT3BlbiIsICR0ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfQotCi1jbG9zZUN5
Z3BhdGhzKCkgaWYgaXNDeWd3aW4oKTsKLQotZXhpdCAxOwotCi1zdWIgY291bnRBbmRQcmludExl
YWtzKCQkJCkKK3N1YiBydW5uaW5nT25CdWlsZEJvdCgpCiB7Ci0gICAgbXkgKCRkdW1wVG9vbE5h
bWUsICRkdW1wVG9vbFBJRCwgJGxlYWtzRmlsZVBhdGgpID0gQF87Ci0KLSAgICBwcmludCAiXG4i
IHVubGVzcyAkYXRMaW5lU3RhcnQ7Ci0gICAgJGF0TGluZVN0YXJ0ID0gMTsKLQotICAgICMgV2Ug
YXJlIGV4Y2x1ZGluZyB0aGUgZm9sbG93aW5nIHJlcG9ydGVkIGxlYWtzIHNvIHRoZXkgZG9uJ3Qg
Z2V0IGluIG91ciB3YXkgd2hlbiBsb29raW5nIGZvciBXZWJLaXQgbGVha3M6Ci0gICAgIyBUaGlz
IGFsbG93cyB1cyBpZ25vcmUga25vd24gbGVha3MgYW5kIG9ubHkgYmUgYWxlcnRlZCB3aGVuIG5l
dyBsZWFrcyBvY2N1ci4gU29tZSBsZWFrcyBhcmUgaW4gdGhlIG9sZAotICAgICMgdmVyc2lvbnMg
b2YgdGhlIHN5c3RlbSBmcmFtZXdvcmtzIHRoYXQgYXJlIGJlaW5nIHVzZWQgYnkgdGhlIGxlYWtz
IGJvdHMuIEV2ZW4gdGhvdWdoIGEgbGVhayBoYXMgYmVlbgotICAgICMgZml4ZWQsIGl0IHdpbGwg
YmUgbGlzdGVkIGhlcmUgdW50aWwgdGhlIGJvdCBoYXMgYmVlbiB1cGRhdGVkIHdpdGggdGhlIG5l
d2VyIGZyYW1ld29ya3MuCi0KLSAgICBteSBAdHlwZXNUb0V4Y2x1ZGUgPSAoCi0gICAgKTsKLQot
ICAgIG15IEBjYWxsU3RhY2tzVG9FeGNsdWRlID0gKAotICAgICAgICAiRmxhc2hfRW5mb3JjZUxv
Y2FsU2VjdXJpdHkiICMgbGVha3MgaW4gRmxhc2ggcGx1Zy1pbiBjb2RlLCByZGFyOi8vcHJvYmxl
bS80NDQ5NzQ3Ci0gICAgKTsKLQotICAgIGlmIChpc1RpZ2VyKCkpIHsKLSAgICAgICAgIyBMZWFr
IGxpc3QgZm9yIHRoZSB2ZXJzaW9uIG9mIFRpZ2VyIHVzZWQgb24gdGhlIGJ1aWxkIGJvdC4KLSAg
ICAgICAgcHVzaCBAY2FsbFN0YWNrc1RvRXhjbHVkZSwgKAotICAgICAgICAgICAgIkNGUnVuTG9v
cFJ1blNwZWNpZmljIFxcfCBtYWxsb2Nfem9uZV9tYWxsb2MiLCAiQ0ZSdW5Mb29wUnVuU3BlY2lm
aWMgXFx8IENGQWxsb2NhdG9yQWxsb2NhdGUgIiwgIyBsZWFrIGluIENGUnVuTG9vcFJ1blNwZWNp
ZmljLCByZGFyOi8vcHJvYmxlbS80NjcwODM5Ci0gICAgICAgICAgICAiQ0dJbWFnZVNvdXJjZUdl
dFByb3BlcnRpZXNBdEluZGV4IiwgIyBsZWFrIGluIEltYWdlSU8sIHJkYXI6Ly9wcm9ibGVtLzQ2
Mjg4MDkKLSAgICAgICAgICAgICJGT0dldENvdmVyZWRVbmljb2RlQ2hhcnMiLCAjIGxlYWsgaW4g
QVRTLCByZGFyOi8vcHJvYmxlbS8zOTQzNjA0Ci0gICAgICAgICAgICAiR2V0TGluZURpcmVjdGlv
blByZWZlcmVuY2UiLCAiSW5pdFVuaWNvZGVVdGlsaXRpZXMiLCAjIGxlYWtzIHRvb2wgZmFsc2Vs
eSByZXBvcnRpbmcgbGVhayBpbiBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyLCByZGFy
Oi8vcHJvYmxlbS80OTY0NzkwCi0gICAgICAgICAgICAiSUNDRlByZWZXcmFwcGVyOjpHZXRQcmVm
RGljdGlvbmFyeSIsICMgbGVha3MgaW4gSW50ZXJuZXQgQ29uZmlnLiBjb2RlLCByZGFyOi8vcHJv
YmxlbS80NDQ5Nzk0Ci0gICAgICAgICAgICAiTlNIVFRQVVJMUHJvdG9jb2wgc2V0UmVzcG9uc2VI
ZWFkZXI6IiwgIyBsZWFrIGluIG11bHRpcGFydC9taXhlZC1yZXBsYWNlIGhhbmRsaW5nIGluIEZv
dW5kYXRpb24sIG5vIFJhZGFyLCBidXQgZml4ZWQgaW4gTGVvcGFyZAotICAgICAgICAgICAgIk5T
VVJMQ2FjaGUgY2FjaGVkUmVzcG9uc2VGb3JSZXF1ZXN0IiwgIyBsZWFrIGluIENGVVJMIGNhY2hl
LCByZGFyOi8vcHJvYmxlbS80NzY4NDMwCi0gICAgICAgICAgICAiUENGcmFnUHJlcGFyZUNsb3N1
cmVGcm9tRmlsZSIsICMgbGVhayBpbiBDb2RlIEZyYWdtZW50IE1hbmFnZXIsIHJkYXI6Ly9wcm9i
bGVtLzM0MjY5OTgKLSAgICAgICAgICAgICJXZWJDb3JlOjpTZWxlY3Rpb246OnRvUmFuZ2UiLCAj
IGJ1ZyBpbiAnbGVha3MnLCByZGFyOi8vcHJvYmxlbS80OTY3OTQ5Ci0gICAgICAgICAgICAiV2Vi
Q29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSIsICMgYnVnIGluICdsZWFrcycsIHJkYXI6
Ly9wcm9ibGVtLzQ5ODU4MDYKLSAgICAgICAgICAgICJfQ0ZQcmVmZXJlbmNlc0RvbWFpbkRlZXBD
b3B5RGljdGlvbmFyeSIsICMgbGVhayBpbiBDRlByZWZlcmVuY2VzLCByZGFyOi8vcHJvYmxlbS80
MjIwNzg2Ci0gICAgICAgICAgICAiX29iamNfbXNnRm9yd2FyZCIsICMgbGVhayBpbiBOU1NwZWxs
Q2hlY2tlciwgcmRhcjovL3Byb2JsZW0vNDk2NTI3OAotICAgICAgICAgICAgImdsZEdldFN0cmlu
ZyIsICMgbGVhayBpbiBPcGVuR0wsIHJkYXI6Ly9wcm9ibGVtLzUwMTM2OTkKLSAgICAgICAgICAg
ICJfc2V0RGVmYXVsdFVzZXJJbmZvRnJvbVVSTCIsICMgbGVhayBpbiBOU0hUVFBBdXRoZW50aWNh
dG9yLCByZGFyOi8vcHJvYmxlbS81NTQ2NDUzIAotICAgICAgICAgICAgIlNTTEhhbmRzaGFrZSIs
ICMgbGVhayBpbiBTU0wsIHJkYXI6Ly9wcm9ibGVtLzU1NDY0NDAgCi0gICAgICAgICAgICAiU2Vj
Q2VydGlmaWNhdGVDcmVhdGVGcm9tRGF0YSIsICMgbGVhayBpbiBTU0wgY29kZSwgcmRhcjovL3By
b2JsZW0vNDQ2NDM5NwotICAgICAgICApOwotICAgICAgICBwdXNoIEB0eXBlc1RvRXhjbHVkZSwg
KAotICAgICAgICAgICAgIlRIUkQiLCAjIGJ1ZyBpbiAnbGVha3MnLCByZGFyOi8vcHJvYmxlbS8z
Mzg3NzgzCi0gICAgICAgICAgICAiRFJIVCIsICMgZGl0dG8gKGVuZGlhbiBsaXR0bGUgaGF0ZSBp
KQotICAgICAgICApOwotICAgIH0KLQotICAgIGlmIChpc0xlb3BhcmQoKSkgewotICAgICAgICAj
IExlYWsgbGlzdCBmb3IgdGhlIHZlcnNpb24gb2YgTGVvcGFyZCB1c2VkIG9uIHRoZSBidWlsZCBi
b3QuCi0gICAgICAgIHB1c2ggQGNhbGxTdGFja3NUb0V4Y2x1ZGUsICgKLSAgICAgICAgICAgICJD
RkhUVFBNZXNzYWdlQXBwZW5kQnl0ZXMiLCAjIGxlYWsgaW4gQ0ZOZXR3b3JrLCByZGFyOi8vcHJv
YmxlbS81NDM1OTEyCi0gICAgICAgICAgICAic2VuZERpZFJlY2VpdmVEYXRhQ2FsbGJhY2siLCAj
IGxlYWsgaW4gQ0ZOZXR3b3JrLCByZGFyOi8vcHJvYmxlbS81NDQxNjE5Ci0gICAgICAgICAgICAi
X0NGSFRUUFJlYWRTdHJlYW1SZWFkTWFyayIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9w
cm9ibGVtLzU0NDE0NjgKLSAgICAgICAgICAgICJodHRwUHJvdG9jb2xTdGFydCIsICMgbGVhayBp
biBDRk5ldHdvcmssIHJkYXI6Ly9wcm9ibGVtLzU0Njg4MzcKLSAgICAgICAgICAgICJfQ0ZVUkxD
b25uZWN0aW9uU2VuZENhbGxiYWNrcyIsICMgbGVhayBpbiBDRk5ldHdvcmssIHJkYXI6Ly9wcm9i
bGVtLzU0NDE2MDAKLSAgICAgICAgICAgICJEaXNwYXRjaFFUTXNnIiwgIyBsZWFrIGluIFF1aWNr
VGltZSwgUFBDIG9ubHksIHJkYXI6Ly9wcm9ibGVtLzU2NjcxMzIKLSAgICAgICAgICAgICJRVE1v
dmllQ29udGVudFZpZXcgY3JlYXRlVmlzdWFsQ29udGV4dCIsICMgbGVhayBpbiBRdWlja1RpbWUs
IFBQQyBvbmx5LCByZGFyOi8vcHJvYmxlbS81NjY3MTMyCi0gICAgICAgICAgICAiX0NvcHlBcmNo
aXRlY3R1cmVzRm9ySlZNVmVyc2lvbiIsICMgbGVhayBpbiBKYXZhLCByZGFyOi8vcHJvYmxlbS81
OTEwODIzCi0gICAgICAgICk7Ci0gICAgfQotCi0gICAgaWYgKGlzU25vd0xlb3BhcmQoKSkgewot
ICAgICAgICBwdXNoIEBjYWxsU3RhY2tzVG9FeGNsdWRlLCAoCi0gICAgICAgICAgICAicmVhZE1h
a2VyTm90ZVByb3BzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzE1NjQzMj4gbGVhayBpbiBJbWFnZUlP
Ci0gICAgICAgICAgICAiUVRLaXRNb3ZpZUNvbnRyb2xsZXJWaWV3IGNvbXBsZXRlVUlTZXR1cCIs
ICMgPHJkYXI6Ly9wcm9ibGVtLzcxNTUxNTY+IGxlYWsgaW4gUVRLaXQKLSAgICAgICAgICAgICJn
ZXRWTUluaXRBcmdzIiwgIyA8cmRhcjovL3Byb2JsZW0vNzcxNDQ0ND4gbGVhayBpbiBKYXZhCi0g
ICAgICAgICAgICAiSmF2YV9qYXZhX2xhbmdfU3lzdGVtX2luaXRQcm9wZXJ0aWVzIiwgIyA8cmRh
cjovL3Byb2JsZW0vNzcxNDQ2NT4gbGVhayBpbiBKYXZhCi0gICAgICAgICk7Ci0gICAgfQotCi0g
ICAgbXkgJGxlYWtzVG9vbCA9IHNvdXJjZURpcigpIC4gIi9XZWJLaXRUb29scy9TY3JpcHRzL3J1
bi1sZWFrcyI7Ci0gICAgbXkgJGV4Y2x1ZGVTdHJpbmcgPSAiLS1leGNsdWRlLWNhbGxzdGFjayAn
IiAuIChqb2luICInIC0tZXhjbHVkZS1jYWxsc3RhY2sgJyIsIEBjYWxsU3RhY2tzVG9FeGNsdWRl
KSAuICInIjsKLSAgICAkZXhjbHVkZVN0cmluZyAuPSAiIC0tZXhjbHVkZS10eXBlICciIC4gKGpv
aW4gIicgLS1leGNsdWRlLXR5cGUgJyIsIEB0eXBlc1RvRXhjbHVkZSkgLiAiJyIgaWYgQHR5cGVz
VG9FeGNsdWRlOwotCi0gICAgcHJpbnQgIiA/IGNoZWNraW5nIGZvciBsZWFrcyBpbiAkZHVtcFRv
b2xOYW1lXG4iOwotICAgIG15ICRsZWFrc091dHB1dCA9IGAkbGVha3NUb29sICRleGNsdWRlU3Ry
aW5nICRkdW1wVG9vbFBJRGA7Ci0gICAgbXkgKCRjb3VudCwgJGJ5dGVzKSA9ICRsZWFrc091dHB1
dCA9fiAvUHJvY2VzcyAkZHVtcFRvb2xQSUQ6IChcZCspIGxlYWtzPyBmb3IgKFxkKykgdG90YWwv
OwotICAgIG15ICgkZXhjbHVkZWQpID0gJGxlYWtzT3V0cHV0ID1+IC8oXGQrKSBsZWFrcz8gZXhj
bHVkZWQvOwotCi0gICAgbXkgJGFkanVzdGVkQ291bnQgPSAkY291bnQ7Ci0gICAgJGFkanVzdGVk
Q291bnQgLT0gJGV4Y2x1ZGVkIGlmICRleGNsdWRlZDsKLQotICAgIGlmICghJGFkanVzdGVkQ291
bnQpIHsKLSAgICAgICAgcHJpbnQgIiAtIG5vIGxlYWtzIGZvdW5kXG4iOwotICAgICAgICB1bmxp
bmsgJGxlYWtzRmlsZVBhdGg7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIG15ICRkaXIgPSAkbGVha3NGaWxlUGF0aDsKLSAgICAgICAgJGRpciA9fiBzfC9bXi9dKyR8
fCBvciBkaWU7Ci0gICAgICAgIG1rcGF0aCAkZGlyOwotCi0gICAgICAgIGlmICgkZXhjbHVkZWQp
IHsKLSAgICAgICAgICAgIHByaW50ICIgKyAkYWRqdXN0ZWRDb3VudCBsZWFrcyAoJGJ5dGVzIGJ5
dGVzIGluY2x1ZGluZyAkZXhjbHVkZWQgZXhjbHVkZWQgbGVha3MpIHdlcmUgZm91bmQsIGRldGFp
bHMgaW4gJGxlYWtzRmlsZVBhdGhcbiI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
cmludCAiICsgJGNvdW50IGxlYWtzICgkYnl0ZXMgYnl0ZXMpIHdlcmUgZm91bmQsIGRldGFpbHMg
aW4gJGxlYWtzRmlsZVBhdGhcbiI7Ci0gICAgICAgIH0KLQotICAgICAgICB3cml0ZVRvRmlsZSgk
bGVha3NGaWxlUGF0aCwgJGxlYWtzT3V0cHV0KTsKLSAgICAgICAgCi0gICAgICAgIHB1c2ggQGxl
YWtzRmlsZW5hbWVzLCAkbGVha3NGaWxlUGF0aDsKLSAgICB9Ci0KLSAgICByZXR1cm4gJGFkanVz
dGVkQ291bnQ7Ci19Ci0KLXN1YiB3cml0ZVRvRmlsZSgkJCkKLXsKLSAgICBteSAoJGZpbGVQYXRo
LCAkY29udGVudHMpID0gQF87Ci0gICAgb3BlbiBORVdGSUxFLCAiPiIsICIkZmlsZVBhdGgiIG9y
IGRpZSAiQ291bGQgbm90IGNyZWF0ZSAkZmlsZVBhdGguICQhXG4iOwotICAgIHByaW50IE5FV0ZJ
TEUgJGNvbnRlbnRzOwotICAgIGNsb3NlIE5FV0ZJTEU7Ci19Ci0KLSMgQnJlYWsgdXAgYSBwYXRo
IGludG8gdGhlIGRpcmVjdG9yeSAod2l0aCBzbGFzaCkgYW5kIGJhc2UgbmFtZS4KLXN1YiBzcGxp
dHBhdGgoJCkKLXsKLSAgICBteSAoJHBhdGgpID0gQF87Ci0KLSAgICBteSAkcGF0aFNlcGFyYXRv
ciA9ICIvIjsKLSAgICBteSAkZGlybmFtZSA9IGRpcm5hbWUoJHBhdGgpIC4gJHBhdGhTZXBhcmF0
b3I7Ci0gICAgJGRpcm5hbWUgPSAiIiBpZiAkZGlybmFtZSBlcSAiLiIgLiAkcGF0aFNlcGFyYXRv
cjsKLQotICAgIHJldHVybiAoJGRpcm5hbWUsIGJhc2VuYW1lKCRwYXRoKSk7Ci19Ci0KLSMgU29y
dCBmaXJzdCBieSBkaXJlY3RvcnksIHRoZW4gYnkgZmlsZSwgc28gYWxsIHBhdGhzIGluIG9uZSBk
aXJlY3RvcnkgYXJlIGdyb3VwZWQKLSMgcmF0aGVyIHRoYW4gYmVpbmcgaW50ZXJzcGVyc2VkIHdp
dGggaXRlbXMgZnJvbSBzdWJkaXJlY3Rvcmllcy4KLSMgVXNlIG51bWVyaWNjbXAgdG8gc29ydCBk
aXJlY3RvcnkgYW5kIGZpbGVuYW1lcyB0byBtYWtlIG9yZGVyIGxvZ2ljYWwuCi1zdWIgcGF0aGNt
cCgkJCkKLXsKLSAgICBteSAoJHBhdGhhLCAkcGF0aGIpID0gQF87Ci0KLSAgICBteSAoJGRpcmEs
ICRuYW1lYSkgPSBzcGxpdHBhdGgoJHBhdGhhKTsKLSAgICBteSAoJGRpcmIsICRuYW1lYikgPSBz
cGxpdHBhdGgoJHBhdGhiKTsKLQotICAgIHJldHVybiBudW1lcmljY21wKCRkaXJhLCAkZGlyYikg
aWYgJGRpcmEgbmUgJGRpcmI7Ci0gICAgcmV0dXJuIG51bWVyaWNjbXAoJG5hbWVhLCAkbmFtZWIp
OwotfQotCi0jIFNvcnQgbnVtZXJpYyBwYXJ0cyBvZiBzdHJpbmdzIGFzIG51bWJlcnMsIG90aGVy
IHBhcnRzIGFzIHN0cmluZ3MuCi0jIE1ha2VzIDEuMzMgY29tZSBhZnRlciAxLjMsIHdoaWNoIGlz
IGNvb2wuCi1zdWIgbnVtZXJpY2NtcCgkJCkKLXsKLSAgICBteSAoJGFhLCAkYmIpID0gQF87Ci0K
LSAgICBteSBAYSA9IHNwbGl0IC8oXGQrKS8sICRhYTsKLSAgICBteSBAYiA9IHNwbGl0IC8oXGQr
KS8sICRiYjsKLQotICAgICMgQ29tcGFyZSBvbmUgY2h1bmsgYXQgYSB0aW1lLgotICAgICMgRWFj
aCBjaHVuayBpcyBlaXRoZXIgYWxsIG51bWVyaWMgZGlnaXRzLCBvciBhbGwgbm90IG51bWVyaWMg
ZGlnaXRzLgotICAgIHdoaWxlIChAYSAmJiBAYikgewotICAgICAgICBteSAkYSA9IHNoaWZ0IEBh
OwotICAgICAgICBteSAkYiA9IHNoaWZ0IEBiOwotICAgICAgICAKLSAgICAgICAgIyBVc2UgbnVt
ZXJpYyBjb21wYXJpc29uIGlmIGNodW5rcyBhcmUgbm9uLWVxdWFsIG51bWJlcnMuCi0gICAgICAg
IHJldHVybiAkYSA8PT4gJGIgaWYgJGEgPX4gL15cZC8gJiYgJGIgPX4gL15cZC8gJiYgJGEgIT0g
JGI7Ci0KLSAgICAgICAgIyBVc2Ugc3RyaW5nIGNvbXBhcmlzb24gaWYgY2h1bmtzIGFyZSBhbnkg
b3RoZXIga2luZCBvZiBub24tZXF1YWwgc3RyaW5nLgotICAgICAgICByZXR1cm4gJGEgY21wICRi
IGlmICRhIG5lICRiOwotICAgIH0KLSAgICAKLSAgICAjIE9uZSBvZiB0aGUgdHdvIGlzIG5vdyBl
bXB0eTsgY29tcGFyZSBsZW5ndGhzIGZvciByZXN1bHQgaW4gdGhpcyBjYXNlLgotICAgIHJldHVy
biBAYSA8PT4gQGI7Ci19Ci0KLSMgU29ydCBzbG93ZXN0IHRlc3RzIGZpcnN0Lgotc3ViIHNsb3dl
c3RjbXAoJCQpCi17Ci0gICAgbXkgKCR0ZXN0YSwgJHRlc3RiKSA9IEBfOwotCi0gICAgbXkgJGR1
cmEgPSAkZHVyYXRpb25zeyR0ZXN0YX07Ci0gICAgbXkgJGR1cmIgPSAkZHVyYXRpb25zeyR0ZXN0
Yn07Ci0gICAgcmV0dXJuICRkdXJiIDw9PiAkZHVyYSBpZiAkZHVyYSAhPSAkZHVyYjsKLSAgICBy
ZXR1cm4gcGF0aGNtcCgkdGVzdGEsICR0ZXN0Yik7Ci19Ci0KLXN1YiBsYXVuY2hXaXRoRW52KFxA
XCUpCi17Ci0gICAgbXkgKCRhcmdzLCAkZW52KSA9IEBfOwotCi0gICAgIyBEdW1wIHRoZSBjdXJy
ZW50IGVudmlyb25tZW50IGFzIHBlcmwgY29kZSBhbmQgdGhlbiBwdXQgaXQgaW4gcXVvdGVzIHNv
IGl0IGlzIG9uZSBwYXJhbWV0ZXIuCi0gICAgbXkgJGVudmlyb25tZW50RHVtcGVyID0gRGF0YTo6
RHVtcGVyLT5uZXcoW1wleyRlbnZ9XSwgW3F3KCpFTlYpXSk7Ci0gICAgJGVudmlyb25tZW50RHVt
cGVyLT5JbmRlbnQoMCk7Ci0gICAgJGVudmlyb25tZW50RHVtcGVyLT5QdXJpdHkoMSk7Ci0gICAg
bXkgJGFsbEVudlZhcnMgPSAkZW52aXJvbm1lbnREdW1wZXItPkR1bXAoKTsKLSAgICB1bnNoaWZ0
IEB7JGFyZ3N9LCAiXCIkYWxsRW52VmFyc1wiIjsKLQotICAgIG15ICRleGVjU2NyaXB0ID0gRmls
ZTo6U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgcXcoV2ViS2l0VG9vbHMgU2NyaXB0cyBleGVj
QXBwV2l0aEVudikpOwotICAgIHVuc2hpZnQgQHskYXJnc30sICRleGVjU2NyaXB0OwotICAgIHJl
dHVybiBAeyRhcmdzfTsKLX0KLQotc3ViIHJlc29sdmVBbmRNYWtlVGVzdFJlc3VsdHNEaXJlY3Rv
cnkoKQotewotICAgIG15ICRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJl
bDJhYnMoZ2xvYiAkdGVzdFJlc3VsdHNEaXJlY3RvcnkpOwotICAgIG1rcGF0aCAkYWJzVGVzdFJl
c3VsdHNEaXJlY3Rvcnk7Ci0gICAgcmV0dXJuICRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeTsKKyAg
ICAjIFRoaXMgaXMgYSBoYWNrIHRvIGRldGVjdCBpZiB3ZSdyZSBydW5uaW5nIG9uIHRoZSBidWls
ZGJvdCBzbyB3ZSBjYW4KKyAgICAjIHBhc3MgLS12ZXJib3NlIHRvIG5ldy1ydW4td2Via2l0LXRl
c3RzLiAgVGhpcyB3aWxsIGJlIHJlbW92ZWQgd2hlbiB3ZQorICAgICMgdXBkYXRlIHRoZSBidWls
ZGJvdCBjb25maWcgdG8gY2FsbCBuZXctcnVuLXdlYmtpdC10ZXN0cyBleHBsaWNpdGx5LgorICAg
IG15ICVpc0J1aWxkQm90VXNlciA9ICgiYXBwbGUiID0+IDEsICJidWlsZGJvdCIgPT4gMSk7Cisg
ICAgcmV0dXJuICRpc0J1aWxkQm90VXNlcnskRU5WeyJVU0VSIn19OwogfQogCi1zdWIgb3BlbkRp
ZmZUb29sKCkKK3N1YiB1c2VOZXdSdW5XZWJLaXRUZXN0cygpCiB7Ci0gICAgcmV0dXJuIGlmICRp
c0RpZmZUb29sT3BlbjsKLSAgICByZXR1cm4gaWYgISRwaXhlbFRlc3RzOwotCi0gICAgbXkgJUNM
RUFOX0VOVjsKLSAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9nZ2luZ30gPSAxIGlmICRzaG91
bGRDaGVja0xlYWtzOwotICAgICRpbWFnZURpZmZUb29sUElEID0gb3BlbjIoXCpESUZGSU4sIFwq
RElGRk9VVCwgJGltYWdlRGlmZlRvb2wsIGxhdW5jaFdpdGhFbnYoQGRpZmZUb29sQXJncywgJUNM
RUFOX0VOVikpIG9yIGRpZSAidW5hYmxlIHRvIG9wZW4gJGltYWdlRGlmZlRvb2xcbiI7Ci0gICAg
JGlzRGlmZlRvb2xPcGVuID0gMTsKLX0KLQotc3ViIG9wZW5EdW1wVG9vbCgpCi17Ci0gICAgcmV0
dXJuIGlmICRpc0R1bXBUb29sT3BlbjsKLQotICAgIG15ICVDTEVBTl9FTlY7Ci0KLSAgICAjIEdl
bmVyaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzCi0gICAgaWYgKGRlZmluZWQgJEVOVnsnV0VCS0lU
X1RFU1RGT05UUyd9KSB7Ci0gICAgICAgICRDTEVBTl9FTlZ7V0VCS0lUX1RFU1RGT05UU30gPSAk
RU5WeydXRUJLSVRfVEVTVEZPTlRTJ307Ci0gICAgfQotCi0gICAgIyB1bmlxdWUgdGVtcG9yYXJ5
IGRpcmVjdG9yeSBmb3IgZWFjaCBEdW1wUmVuZGVydHJlZSAtIG5lZWRlZCBmb3IgcnVubmluZyBt
b3JlIER1bXBSZW5kZXJUcmVlIGluIHBhcmFsbGVsCi0gICAgJENMRUFOX0VOVntEVU1QUkVOREVS
VFJFRV9URU1QfSA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoJ0R1bXBSZW5kZXJUcmVlLVhYWFhYWCcs
IFRNUERJUiA9PiAxLCBDTEVBTlVQID0+IDEpOwotICAgICRDTEVBTl9FTlZ7WE1MX0NBVEFMT0df
RklMRVN9ID0gIiI7ICMgd29yayBhcm91bmQgbWlzc2luZyAvZXRjL2NhdGFsb2cgPHJkYXI6Ly9w
cm9ibGVtLzQyOTI5OTU+Ci0KLSAgICAjIFBsYXRmb3JtIHNwZXNpZmljcwotICAgIGlmIChpc0xp
bnV4KCkpIHsKLSAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnRElTUExBWSd9KSB7Ci0gICAgICAg
ICAgICAkQ0xFQU5fRU5We0RJU1BMQVl9ID0gJEVOVnsnRElTUExBWSd9OwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgJENMRUFOX0VOVntESVNQTEFZfSA9ICI6MSI7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnWEFVVEhPUklUWSd9KSB7Ci0gICAgICAgICAgICAk
Q0xFQU5fRU5We1hBVVRIT1JJVFl9ID0gJEVOVnsnWEFVVEhPUklUWSd9OwotICAgICAgICB9Ci0K
LSAgICAgICAgJENMRUFOX0VOVntIT01FfSA9ICRFTlZ7J0hPTUUnfTsKLQotICAgICAgICBpZiAo
ZGVmaW5lZCAkRU5WeydMRF9MSUJSQVJZX1BBVEgnfSkgewotICAgICAgICAgICAgJENMRUFOX0VO
VntMRF9MSUJSQVJZX1BBVEh9ID0gJEVOVnsnTERfTElCUkFSWV9QQVRIJ307Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnREJVU19TRVNTSU9OX0JVU19BRERSRVNTJ30pIHsK
LSAgICAgICAgICAgICRDTEVBTl9FTlZ7REJVU19TRVNTSU9OX0JVU19BRERSRVNTfSA9ICRFTlZ7
J0RCVVNfU0VTU0lPTl9CVVNfQUREUkVTUyd9OwotICAgICAgICB9Ci0gICAgfSBlbHNpZiAoaXNE
YXJ3aW4oKSkgewotICAgICAgICBpZiAoZGVmaW5lZCAkRU5WeydEWUxEX0xJQlJBUllfUEFUSCd9
KSB7Ci0gICAgICAgICAgICAkQ0xFQU5fRU5We0RZTERfTElCUkFSWV9QQVRIfSA9ICRFTlZ7J0RZ
TERfTElCUkFSWV9QQVRIJ307Ci0gICAgICAgIH0KLQotICAgICAgICAkQ0xFQU5fRU5We0RZTERf
RlJBTUVXT1JLX1BBVEh9ID0gJHByb2R1Y3REaXI7Ci0gICAgICAgICRDTEVBTl9FTlZ7RFlMRF9J
TlNFUlRfTElCUkFSSUVTfSA9ICIvdXNyL2xpYi9saWJnbWFsbG9jLmR5bGliIiBpZiAkZ3VhcmRN
YWxsb2M7Ci0gICAgfSBlbHNpZiAoaXNDeWd3aW4oKSkgewotICAgICAgICAkQ0xFQU5fRU5We0hP
TUVEUklWRX0gPSAkRU5WeydIT01FRFJJVkUnfTsKLSAgICAgICAgJENMRUFOX0VOVntIT01FUEFU
SH0gPSAkRU5WeydIT01FUEFUSCd9OwotCi0gICAgICAgIHNldFBhdGhGb3JSdW5uaW5nV2ViS2l0
QXBwKFwlQ0xFQU5fRU5WKTsKLSAgICB9Ci0KLSAgICAjIFBvcnQgc3Blc2lmaWNzCi0gICAgaWYg
KGlzUXQoKSkgewotICAgICAgICAkQ0xFQU5fRU5We1FUV0VCS0lUX1BMVUdJTl9QQVRIfSA9IHBy
b2R1Y3REaXIoKSAuICIvbGliL3BsdWdpbnMiOwotICAgIH0KLSAgICAKLSAgICBteSBAYXJncyA9
ICgkZHVtcFRvb2wsIEB0b29sQXJncyk7Ci0gICAgaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSBhbmQg
IWlzVGlnZXIoKSkgeyAKLSAgICAgICAgdW5zaGlmdCBAYXJncywgImFyY2giLCAiLSIgLiBhcmNo
aXRlY3R1cmUoKTsgICAgICAgICAgICAgCi0gICAgfQotCi0gICAgaWYgKCR1c2VWYWxncmluZCkg
ewotICAgICAgICB1bnNoaWZ0IEBhcmdzLCAidmFsZ3JpbmQiLCAiLS1zdXBwcmVzc2lvbnM9JHBs
YXRmb3JtQmFzZURpcmVjdG9yeS9xdC9TdXBwcmVzc2VkVmFsZ3JpbmRFcnJvcnMiOwotICAgIH0g
Ci0KLSAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9nZ2luZ30gPSAxIGlmICRzaG91bGRDaGVj
a0xlYWtzOwotCi0gICAgJGR1bXBUb29sUElEID0gb3BlbjMoXCpPVVQsIFwqSU4sIFwqRVJST1Is
IGxhdW5jaFdpdGhFbnYoQGFyZ3MsICVDTEVBTl9FTlYpKSBvciBkaWUgIkZhaWxlZCB0byBzdGFy
dCB0b29sOiAkZHVtcFRvb2xcbiI7Ci0gICAgJGlzRHVtcFRvb2xPcGVuID0gMTsKLSAgICAkZHVt
cFRvb2xDcmFzaGVkID0gMDsKLX0KLQotc3ViIGNsb3NlRHVtcFRvb2woKQotewotICAgIHJldHVy
biBpZiAhJGlzRHVtcFRvb2xPcGVuOwotCi0gICAgY2xvc2UgSU47Ci0gICAgY2xvc2UgT1VUOwot
ICAgIHdhaXRwaWQgJGR1bXBUb29sUElELCAwOwotICAgIAotICAgICMgY2hlY2sgZm9yIFdlYkNv
cmUgY291bnRlciBsZWFrcy4KLSAgICBpZiAoJHNob3VsZENoZWNrTGVha3MpIHsKLSAgICAgICAg
d2hpbGUgKDxFUlJPUj4pIHsKLSAgICAgICAgICAgIHByaW50OwotICAgICAgICB9Ci0gICAgfQot
ICAgIGNsb3NlIEVSUk9SOwotICAgICRpc0R1bXBUb29sT3BlbiA9IDA7Ci19Ci0KLXN1YiBkdW1w
VG9vbERpZENyYXNoKCkKLXsKLSAgICByZXR1cm4gMSBpZiAkZHVtcFRvb2xDcmFzaGVkOwotICAg
IHJldHVybiAwIHVubGVzcyAkaXNEdW1wVG9vbE9wZW47Ci0gICAgbXkgJHBpZCA9IHdhaXRwaWQo
LTEsIFdOT0hBTkcpOwotICAgIHJldHVybiAxIGlmICgkcGlkID09ICRkdW1wVG9vbFBJRCk7Ci0K
LSAgICAjIE9uIE1hYyBPUyBYLCBjcmFzaGluZyBtYXkgYmUgc2lnbmlmaWNhbnRseSBkZWxheWVk
IGJ5IGNyYXNoIHJlcG9ydGVyLgotICAgIHJldHVybiAwIHVubGVzcyBpc0FwcGxlTWFjV2ViS2l0
KCk7Ci0KLSAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0Ojpwcm9jZXNzSXNDcmFzaGlu
ZygkZHVtcFRvb2xQSUQpOwotfQotCi1zdWIgY29uZmlndXJlQW5kT3BlbkhUVFBESWZOZWVkZWQo
KQotewotICAgIHJldHVybiBpZiAkaXNIdHRwZE9wZW47Ci0gICAgbXkgJGFic1Rlc3RSZXN1bHRz
RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwotICAgIG15
ICRsaXN0ZW4gPSAiMTI3LjAuMC4xOiRodHRwZFBvcnQiOwotICAgIG15IEBhcmdzID0gKAotICAg
ICAgICAiLWMiLCAiQ3VzdG9tTG9nIFwiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5L2FjY2Vzc19s
b2cudHh0XCIgY29tbW9uIiwKLSAgICAgICAgIi1jIiwgIkVycm9yTG9nIFwiJGFic1Rlc3RSZXN1
bHRzRGlyZWN0b3J5L2Vycm9yX2xvZy50eHRcIiIsCi0gICAgICAgICItQyIsICJMaXN0ZW4gJGxp
c3RlbiIKLSAgICApOwotCi0gICAgbXkgQGRlZmF1bHRBcmdzID0gZ2V0RGVmYXVsdENvbmZpZ0Zv
clRlc3REaXJlY3RvcnkoJHRlc3REaXJlY3RvcnkpOwotICAgIEBhcmdzID0gKEBkZWZhdWx0QXJn
cywgQGFyZ3MpOwotCi0gICAgd2FpdEZvckhUVFBETG9jaygpIGlmICRzaG91bGRXYWl0Rm9ySFRU
UEQ7Ci0gICAgJGlzSHR0cGRPcGVuID0gb3BlbkhUVFBEKEBhcmdzKTsKLX0KLQotc3ViIG9wZW5X
ZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpCi17Ci0gICAgcmV0dXJuIDEgaWYgJGlzV2ViU29ja2V0
U2VydmVyT3BlbjsKLSAgICByZXR1cm4gMCBpZiAkZmFpbGVkVG9TdGFydFdlYlNvY2tldFNlcnZl
cjsKLQotICAgIG15ICR3ZWJTb2NrZXRTZXJ2ZXJQYXRoID0gIi91c3IvYmluL3B5dGhvbiI7Ci0g
ICAgbXkgJHdlYlNvY2tldFB5dGhvblBhdGggPSAiV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90aGlyZHBhcnR5L3B5d2Vic29ja2V0IjsKLSAgICBteSAkd2ViU29ja2V0SGFuZGxlckRpciA9
ICIkdGVzdERpcmVjdG9yeSI7Ci0gICAgbXkgJHdlYlNvY2tldEhhbmRsZXJTY2FuRGlyID0gIiR0
ZXN0RGlyZWN0b3J5L3dlYnNvY2tldC90ZXN0cyI7Ci0gICAgbXkgJHdlYlNvY2tldEhhbmRsZXJN
YXBGaWxlID0gIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpci9oYW5kbGVyX21hcC50eHQiOwotICAg
IG15ICRzc2xDZXJ0aWZpY2F0ZSA9ICIkdGVzdERpcmVjdG9yeS9odHRwL2NvbmYvd2Via2l0LWh0
dHBkLnBlbSI7Ci0gICAgbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1h
a2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwotICAgIG15ICRsb2dGaWxlID0gIiRhYnNUZXN0UmVz
dWx0c0RpcmVjdG9yeS9weXdlYnNvY2tldF9sb2cudHh0IjsKLQotICAgIG15IEBhcmdzID0gKAot
ICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IiwKLSAgICAgICAgIi0tc2VydmVyLWhv
c3QiLCAiMTI3LjAuMC4xIiwKLSAgICAgICAgIi0tcG9ydCIsICIkd2ViU29ja2V0UG9ydCIsCi0g
ICAgICAgICItLWRvY3VtZW50LXJvb3QiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAotICAgICAg
ICAiLS1zY2FuLWRpciIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAotICAgICAgICAiLS13
ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCi0g
ICAgICAgICItLWNnaS1wYXRocyIsICIvd2Vic29ja2V0L3Rlc3RzIiwKLSAgICAgICAgIi0tbG9n
LWZpbGUiLCAiJGxvZ0ZpbGUiLAotICAgICAgICAiLS1zdHJpY3QiLAotICAgICk7Ci0gICAgIyB3
c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KLSAg
ICAjIG15IEBhcmdzU2VjdXJlID0gKAotICAgICMgICAgICJXZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUu
cHkiLAotICAgICMgICAgICItcCIsICIkd2ViU29ja2V0U2VjdXJlUG9ydCIsCi0gICAgIyAgICAg
Ii1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKLSAgICAjICAgICAiLXQiLAotICAgICMgICAg
ICItayIsICIkc3NsQ2VydGlmaWNhdGUiLAotICAgICMgICAgICItYyIsICIkc3NsQ2VydGlmaWNh
dGUiLAotICAgICMgKTsKLQotICAgICRFTlZ7IlBZVEhPTlBBVEgifSA9ICR3ZWJTb2NrZXRQeXRo
b25QYXRoOwotICAgICR3ZWJTb2NrZXRTZXJ2ZXJQSUQgPSBvcGVuMyhcKldFQlNPQ0tFVFNFUlZF
Ul9JTiwgXCpXRUJTT0NLRVRTRVJWRVJfT1VULCBcKldFQlNPQ0tFVFNFUlZFUl9FUlIsICR3ZWJT
b2NrZXRTZXJ2ZXJQYXRoLCBAYXJncyk7Ci0gICAgIyB3c3MgaXMgZGlzYWJsZWQgdW50aWwgYWxs
IHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KLSAgICAjICR3ZWJTb2NrZXRTZWN1cmVTZXJ2
ZXJQSUQgPSBvcGVuMyhcKldFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9JTiwgXCpXRUJTT0NLRVRTRUNV
UkVTRVJWRVJfT1VULCBcKldFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9FUlIsICR3ZWJTb2NrZXRTZXJ2
ZXJQYXRoLCBAYXJnc1NlY3VyZSk7Ci0gICAgIyBteSBAbGlzdGVuID0gKCJodHRwOi8vMTI3LjAu
MC4xOiR3ZWJTb2NrZXRQb3J0IiwgImh0dHBzOi8vMTI3LjAuMC4xOiR3ZWJTb2NrZXRTZWN1cmVQ
b3J0Iik7Ci0gICAgbXkgQGxpc3RlbiA9ICgiaHR0cDovLzEyNy4wLjAuMTokd2ViU29ja2V0UG9y
dCIpOwotICAgIGZvciAobXkgJGkgPSAwOyAkaSA8IEBsaXN0ZW47ICRpKyspIHsKLSAgICAgICAg
bXkgJHJldHJ5Q291bnQgPSAxMDsKLSAgICAgICAgd2hpbGUgKHN5c3RlbSgiL3Vzci9iaW4vY3Vy
bCAtayAtcSAtLXNpbGVudCAtLXN0ZGVyciAtIC0tb3V0cHV0IC9kZXYvbnVsbCAkbGlzdGVuWyRp
XSIpICYmICRyZXRyeUNvdW50KSB7Ci0gICAgICAgICAgICBzbGVlcCAxOwotICAgICAgICAgICAg
LS0kcmV0cnlDb3VudDsKLSAgICAgICAgfQotICAgICAgICB1bmxlc3MgKCRyZXRyeUNvdW50KSB7
Ci0gICAgICAgICAgICBwcmludCBTVERFUlIgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBXZWJTb2Nr
ZXRTZXJ2ZXIgdG8gc3RhcnQuXG4iOwotICAgICAgICAgICAgJGZhaWxlZFRvU3RhcnRXZWJTb2Nr
ZXRTZXJ2ZXIgPSAxOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMTsKLSAgICByZXR1cm4gMTsKLX0KLQotc3Vi
IGNsb3NlV2ViU29ja2V0U2VydmVyKCkKLXsKLSAgICByZXR1cm4gaWYgISRpc1dlYlNvY2tldFNl
cnZlck9wZW47Ci0KLSAgICBjbG9zZSBXRUJTT0NLRVRTRVJWRVJfSU47Ci0gICAgY2xvc2UgV0VC
U09DS0VUU0VSVkVSX09VVDsKLSAgICBjbG9zZSBXRUJTT0NLRVRTRVJWRVJfRVJSOwotICAgIGtp
bGwgMTUsICR3ZWJTb2NrZXRTZXJ2ZXJQSUQ7Ci0KLSAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRp
bCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotICAgICMgY2xvc2UgV0VCU09DS0VU
U0VDVVJFU0VSVkVSX0lOOwotICAgICMgY2xvc2UgV0VCU09DS0VUU0VDVVJFU0VSVkVSX09VVDsK
LSAgICAjIGNsb3NlIFdFQlNPQ0tFVFNFQ1VSRVNFUlZFUl9FUlI7Ci0gICAgIyBraWxsIDE1LCAk
d2ViU29ja2V0U2VjdXJlU2VydmVyUElEOwotCi0gICAgJGlzV2ViU29ja2V0U2VydmVyT3BlbiA9
IDA7Ci19Ci0KLXN1YiBmaWxlTmFtZVdpdGhOdW1iZXIoJCQpCi17Ci0gICAgbXkgKCRiYXNlLCAk
bnVtYmVyKSA9IEBfOwotICAgIHJldHVybiAiJGJhc2UkbnVtYmVyIiBpZiAoJG51bWJlciA+IDEp
OwotICAgIHJldHVybiAkYmFzZTsKLX0KLQotc3ViIHByb2Nlc3NJZ25vcmVUZXN0cygkJCkKLXsK
LSAgICBteSBAaWdub3JlTGlzdCA9IHNwbGl0KC9ccyosXHMqLywgc2hpZnQpOwotICAgIG15ICRs
aXN0TmFtZSA9IHNoaWZ0OwotCi0gICAgbXkgJGRpc2FibGVkU3VmZml4ID0gIi1kaXNhYmxlZCI7
Ci0KLSAgICBteSAkYWRkSWdub3JlZERpcmVjdG9yaWVzID0gc3ViIHsKLSAgICAgICAgcmV0dXJu
ICgpIGlmIGV4aXN0cyAkaWdub3JlZExvY2FsRGlyZWN0b3JpZXN7YmFzZW5hbWUoJEZpbGU6OkZp
bmQ6OmRpcil9OwotICAgICAgICAkaWdub3JlZERpcmVjdG9yaWVze0ZpbGU6OlNwZWMtPmFiczJy
ZWwoJEZpbGU6OkZpbmQ6OmRpciwgJHRlc3REaXJlY3RvcnkpfSA9IDE7Ci0gICAgICAgIHJldHVy
biBAXzsKLSAgICB9OwotICAgIGZvcmVhY2ggbXkgJGl0ZW0gKEBpZ25vcmVMaXN0KSB7Ci0gICAg
ICAgIG15ICRwYXRoID0gY2F0ZmlsZSgkdGVzdERpcmVjdG9yeSwgJGl0ZW0pOyAKLSAgICAgICAg
aWYgKC1kICRwYXRoKSB7Ci0gICAgICAgICAgICAkaWdub3JlZERpcmVjdG9yaWVzeyRpdGVtfSA9
IDE7Ci0gICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiAkYWRkSWdub3JlZERpcmVjdG9y
aWVzLCB3YW50ZWQgPT4gc3ViIHt9IH0sICRwYXRoKTsKLSAgICAgICAgfQotICAgICAgICBlbHNp
ZiAoLWYgJHBhdGgpIHsKLSAgICAgICAgICAgICRpZ25vcmVkRmlsZXN7JGl0ZW19ID0gMTsKLSAg
ICAgICAgfSBlbHNpZiAoLWYgJHBhdGggLiAkZGlzYWJsZWRTdWZmaXgpIHsKLSAgICAgICAgICAg
ICMgVGhlIHRlc3QgaXMgZGlzYWJsZWQsIHNvIGRvIG5vdGhpbmcuCi0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBwcmludCAiJGxpc3ROYW1lIGxpc3QgY29udGFpbmVkICckaXRlbScsIGJ1
dCBubyBmaWxlIG9mIHRoYXQgbmFtZSBjb3VsZCBiZSBmb3VuZFxuIjsKLSAgICAgICAgfQotICAg
IH0KLX0KLQotc3ViIHN0cmlwRXh0ZW5zaW9uKCQpCi17Ci0gICAgbXkgKCR0ZXN0KSA9IEBfOwot
Ci0gICAgJHRlc3QgPX4gcy9cLlthLXpBLVpdKyQvLzsKLSAgICByZXR1cm4gJHRlc3Q7Ci19Ci0K
LXN1YiBpc1RleHRPbmx5VGVzdCgkKQotewotICAgIG15ICgkYWN0dWFsKSA9IEBfOwotICAgIG15
ICRpc1RleHQ7Ci0gICAgaWYgKCRhY3R1YWwgPX4gL15sYXllciBhdC9tcykgewotICAgICAgICAk
aXNUZXh0ID0gMDsKLSAgICB9IGVsc2UgewotICAgICAgICAkaXNUZXh0ID0gMTsKLSAgICB9Ci0g
ICAgcmV0dXJuICRpc1RleHQ7Ci19Ci0KLXN1YiBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJDsk
OyQpCi17Ci0gICAgbXkgKCRiYXNlLCAkaXNUZXh0LCAkZXhwZWN0ZWRFeHRlbnNpb24pID0gQF87
Ci0KLSAgICBteSBAZGlyZWN0b3JpZXMgPSBAcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHk7Ci0gICAg
cHVzaCBAZGlyZWN0b3JpZXMsIG1hcCB7IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0b3J5LCAk
XykgfSBxdyhtYWMtc25vd2xlb3BhcmQgbWFjKSBpZiBpc0N5Z3dpbigpOwotICAgIHB1c2ggQGRp
cmVjdG9yaWVzLCAkZXhwZWN0ZWREaXJlY3Rvcnk7Ci0KLSAgICAjIElmIHdlIGFscmVhZHkgaGF2
ZSBleHBlY3RlZCByZXN1bHRzLCBqdXN0IHJldHVybiB0aGVpciBsb2NhdGlvbi4KLSAgICBmb3Jl
YWNoIG15ICRkaXJlY3RvcnkgKEBkaXJlY3RvcmllcykgewotICAgICAgICByZXR1cm4gJGRpcmVj
dG9yeSBpZiAoLWYgIiRkaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnLiRleHBlY3RlZEV4dGVu
c2lvbiIpOwotICAgIH0KLQotICAgICMgRm9yIGNyb3NzLXBsYXRmb3JtIHRlc3RzLCB0ZXh0LW9u
bHkgcmVzdWx0cyBzaG91bGQgZ28gaW4gdGhlIGNyb3NzLXBsYXRmb3JtIGRpcmVjdG9yeSwKLSAg
ICAjIHdoaWxlIHJlbmRlciB0cmVlIGR1bXBzIHNob3VsZCBnbyBpbiB0aGUgbGVhc3Qtc3BlY2lm
aWMgcGxhdGZvcm0gZGlyZWN0b3J5LgotICAgIHJldHVybiAkaXNUZXh0ID8gJGV4cGVjdGVkRGly
ZWN0b3J5IDogJHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5WyQjcGxhdGZvcm1SZXN1bHRIaWVyYXJj
aHldOwotfQotCi1zdWIgY291bnRGaW5pc2hlZFRlc3QoJCQkJCkKLXsKLSAgICBteSAoJHRlc3Qs
ICRiYXNlLCAkcmVzdWx0LCAkaXNUZXh0KSA9IEBfOwotCi0gICAgaWYgKCgkY291bnQgKyAxKSAl
ICR0ZXN0c1BlckR1bXBUb29sID09IDAgfHwgJGNvdW50ID09ICQjdGVzdHMpIHsKLSAgICAgICAg
aWYgKCRzaG91bGRDaGVja0xlYWtzKSB7Ci0gICAgICAgICAgICBteSAkZmlsZU5hbWU7Ci0gICAg
ICAgICAgICBpZiAoJHRlc3RzUGVyRHVtcFRvb2wgPT0gMSkgewotICAgICAgICAgICAgICAgICRm
aWxlTmFtZSA9ICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtbGVha3MudHh0IjsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGZpbGVOYW1lID0gIiR0ZXN0UmVzdWx0
c0RpcmVjdG9yeS8iIC4gZmlsZU5hbWVXaXRoTnVtYmVyKCRkdW1wVG9vbE5hbWUsICRsZWFrc091
dHB1dEZpbGVOdW1iZXIpIC4gIi1sZWFrcy50eHQiOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgbXkgJGxlYWtDb3VudCA9IGNvdW50QW5kUHJpbnRMZWFrcygkZHVtcFRvb2xOYW1lLCAkZHVt
cFRvb2xQSUQsICRmaWxlTmFtZSk7Ci0gICAgICAgICAgICAkdG90YWxMZWFrcyArPSAkbGVha0Nv
dW50OwotICAgICAgICAgICAgJGxlYWtzT3V0cHV0RmlsZU51bWJlcisrIGlmICgkbGVha0NvdW50
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGNsb3NlRHVtcFRvb2woKTsKLSAgICB9Ci0gICAgCi0g
ICAgJGNvdW50Kys7Ci0gICAgJGNvdW50c3skcmVzdWx0fSsrOwotICAgIHB1c2ggQHskdGVzdHN7
JHJlc3VsdH19LCAkdGVzdDsKLX0KLQotc3ViIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgkJCQkJCkK
LXsKLSAgICBteSAoJHRlc3QsICRiYXNlLCAkZGlkQ3Jhc2gsICRhY3R1YWwsICRlcnJvcikgPSBA
XzsKLQotICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0ZXN0LCAkZGlkQ3Jhc2ggPyAi
Y3Jhc2hlZCIgOiAidGltZWQgb3V0Iik7Ci0KLSAgICBzYW1wbGVEdW1wVG9vbCgpIHVubGVzcyAk
ZGlkQ3Jhc2g7Ci0KLSAgICBteSAkZGlyID0gIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZSI7
Ci0gICAgJGRpciA9fiBzfC8oW14vXSspJHx8IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBu
YW1lIGZyb20gYmFzZVxuIjsKLSAgICBta3BhdGggJGRpcjsKLQotICAgIGRlbGV0ZUV4cGVjdGVk
QW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7Ci0KLSAgICBpZiAoZGVmaW5lZCgkZXJyb3IpICYmIGxl
bmd0aCgkZXJyb3IpKSB7Ci0gICAgICAgIHdyaXRlVG9GaWxlKCIkdGVzdFJlc3VsdHNEaXJlY3Rv
cnkvJGJhc2UtJGVycm9yVGFnLnR4dCIsICRlcnJvcik7Ci0gICAgfQotCi0gICAgcmVjb3JkQWN0
dWFsUmVzdWx0c0FuZERpZmYoJGJhc2UsICRhY3R1YWwpOwotCi0gICAga2lsbCA5LCAkZHVtcFRv
b2xQSUQgdW5sZXNzICRkaWRDcmFzaDsKLQotICAgIGNsb3NlRHVtcFRvb2woKTsKLX0KLQotc3Vi
IHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCQkKQotewotICAgIG15ICgkdGVzdCwgJGRlc2Ny
aXB0aW9uKSA9IEBfOwotCi0gICAgdW5sZXNzICgkdmVyYm9zZSkgewotICAgICAgICBwcmludCAi
XG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7Ci0gICAgICAgIHByaW50ICIkdGVzdCAtPiAiOwotICAg
IH0KLSAgICBwcmludCAiJGRlc2NyaXB0aW9uXG4iOwotICAgICRhdExpbmVTdGFydCA9IDE7Ci19
Ci0KLW15ICVjeWdwYXRocyA9ICgpOwotCi1zdWIgb3BlbkN5Z3BhdGhJZk5lZWRlZCgkKQotewot
ICAgIG15ICgkb3B0aW9ucykgPSBAXzsKLQotICAgIHJldHVybiB1bmxlc3MgaXNDeWd3aW4oKTsK
LSAgICByZXR1cm4gJGN5Z3BhdGhzeyRvcHRpb25zfSBpZiAkY3lncGF0aHN7JG9wdGlvbnN9ICYm
ICRjeWdwYXRoc3skb3B0aW9uc30tPnsib3BlbiJ9OwotCi0gICAgbG9jYWwgKCpDWUdQQVRISU4s
ICpDWUdQQVRIT1VUKTsKLSAgICBteSAkcGlkID0gb3BlbjIoXCpDWUdQQVRISU4sIFwqQ1lHUEFU
SE9VVCwgImN5Z3BhdGggLWYgLSAkb3B0aW9ucyIpOwotICAgIG15ICRjeWdwYXRoID0gIHsKLSAg
ICAgICAgInBpZCIgPT4gJHBpZCwKLSAgICAgICAgImluIiA9PiAqQ1lHUEFUSElOLAotICAgICAg
ICAib3V0IiA9PiAqQ1lHUEFUSE9VVCwKLSAgICAgICAgIm9wZW4iID0+IDEKLSAgICB9OwotCi0g
ICAgJGN5Z3BhdGhzeyRvcHRpb25zfSA9ICRjeWdwYXRoOwotCi0gICAgcmV0dXJuICRjeWdwYXRo
OwotfQotCi1zdWIgY2xvc2VDeWdwYXRocygpCi17Ci0gICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dp
bigpOwotCi0gICAgZm9yZWFjaCBteSAkY3lncGF0aCAodmFsdWVzKCVjeWdwYXRocykpIHsKLSAg
ICAgICAgY2xvc2UgJGN5Z3BhdGgtPnsiaW4ifTsKLSAgICAgICAgY2xvc2UgJGN5Z3BhdGgtPnsi
b3V0In07Ci0gICAgICAgIHdhaXRwaWQoJGN5Z3BhdGgtPnsicGlkIn0sIDApOwotICAgICAgICAk
Y3lncGF0aC0+eyJvcGVuIn0gPSAwOwotCi0gICAgfQotfQotCi1zdWIgY29udmVydFBhdGhVc2lu
Z0N5Z3BhdGgoJCQpCi17Ci0gICAgbXkgKCRwYXRoLCAkb3B0aW9ucykgPSBAXzsKLQotICAgICMg
Y3lncGF0aCAtZiAoYXQgbGVhc3QgaW4gQ3lnd2luIDEuNykgY29udmVydHMgc3BhY2VzIGludG8g
bmV3bGluZXMuIFdlIHJlbW92ZSBzcGFjZXMgaGVyZSBhbmQKLSAgICAjIGFkZCB0aGVtIGJhY2sg
aW4gYWZ0ZXIgY29udmVyc2lvbiB0byB3b3JrIGFyb3VuZCB0aGlzLgotICAgIG15ICRzcGFjZVN1
YnN0aXR1dGUgPSAiX19OT1RBU1BBQ0VfXyI7Ci0gICAgJHBhdGggPX4gcy8gL1xRJHNwYWNlU3Vi
c3RpdHV0ZVxFL2c7Ci0KLSAgICBteSAkY3lncGF0aCA9IG9wZW5DeWdwYXRoSWZOZWVkZWQoJG9w
dGlvbnMpOwotICAgIGxvY2FsICppbkZIID0gJGN5Z3BhdGgtPnsiaW4ifTsKLSAgICBsb2NhbCAq
b3V0RkggPSAkY3lncGF0aC0+eyJvdXQifTsKLSAgICBwcmludCBvdXRGSCAkcGF0aCAuICJcbiI7
Ci0gICAgbXkgJGNvbnZlcnRlZFBhdGggPSA8aW5GSD47Ci0gICAgY2hvbXAoJGNvbnZlcnRlZFBh
dGgpIGlmIGRlZmluZWQgJGNvbnZlcnRlZFBhdGg7Ci0KLSAgICAkY29udmVydGVkUGF0aCA9fiBz
L1xRJHNwYWNlU3Vic3RpdHV0ZVxFLyAvZzsKLSAgICByZXR1cm4gJGNvbnZlcnRlZFBhdGg7Ci19
Ci0KLXN1YiB0b1dpbmRvd3NQYXRoKCQpCi17Ci0gICAgbXkgKCRwYXRoKSA9IEBfOwotICAgIHJl
dHVybiB1bmxlc3MgaXNDeWd3aW4oKTsKLQotICAgIHJldHVybiBjb252ZXJ0UGF0aFVzaW5nQ3ln
cGF0aCgkcGF0aCwgIi13Iik7Ci19Ci0KLXN1YiB0b1VSTCgkKQotewotICAgIG15ICgkcGF0aCkg
PSBAXzsKLQotICAgIGlmICgkdXNlUmVtb3RlTGlua3NUb1Rlc3RzKSB7Ci0gICAgICAgIG15ICRy
ZWxhdGl2ZVBhdGggPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRwYXRoLCAkdGVzdERpcmVjdG9yeSk7
Ci0KLSAgICAgICAgIyBJZiB0aGUgZmlsZSBpcyBiZWxvdyB0aGUgdGVzdCBkaXJlY3RvcnkgdGhl
biBjb252ZXJ0IGl0IGludG8gYSBsaW5rIHRvIHRoZSBmaWxlIGluIFNWTgotICAgICAgICBpZiAo
JHJlbGF0aXZlUGF0aCAhfiAvXlwuXC5cLy8pIHsKLSAgICAgICAgICAgIG15ICRyZXZpc2lvbiA9
IHN2blJldmlzaW9uRm9yRGlyZWN0b3J5KCR0ZXN0RGlyZWN0b3J5KTsKLSAgICAgICAgICAgIG15
ICRzdm5QYXRoID0gcGF0aFJlbGF0aXZlVG9TVk5SZXBvc2l0b3J5Um9vdEZvclBhdGgoJHBhdGgp
OwotICAgICAgICAgICAgcmV0dXJuICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2V4cG9ydC8kcmV2
aXNpb24vJHN2blBhdGgiOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuICRwYXRoIHVu
bGVzcyBpc0N5Z3dpbigpOwotCi0gICAgcmV0dXJuICJmaWxlOi8vLyIgLiBjb252ZXJ0UGF0aFVz
aW5nQ3lncGF0aCgkcGF0aCwgIi1tIik7Ci19Ci0KLXN1YiB2YWxpZGF0ZVNraXBwZWRBcmcoJCQ7
JCkKLXsKLSAgICBteSAoJG9wdGlvbiwgJHZhbHVlLCAkdmFsdWUyKSA9IEBfOwotICAgIG15ICV2
YWxpZFNraXBwZWRWYWx1ZXMgPSBtYXAgeyAkXyA9PiAxIH0gcXcoZGVmYXVsdCBpZ25vcmUgb25s
eSk7Ci0gICAgJHZhbHVlID0gbGMoJHZhbHVlKTsKLSAgICBkaWUgIkludmFsaWQgYXJndW1lbnQg
JyIgLiAkdmFsdWUgLiAiJyBmb3Igb3B0aW9uICRvcHRpb24iIHVubGVzcyAkdmFsaWRTa2lwcGVk
VmFsdWVzeyR2YWx1ZX07Ci0gICAgJHRyZWF0U2tpcHBlZCA9ICR2YWx1ZTsKLX0KLQotc3ViIGh0
bWxGb3JSZXN1bHRzU2VjdGlvbihcQCQmKQotewotICAgIG15ICgkdGVzdHMsICRkZXNjcmlwdGlv
biwgJGxpbmtHZXR0ZXIpID0gQF87Ci0KLSAgICBteSBAaHRtbCA9ICgpOwotICAgIHJldHVybiBq
b2luKCJcbiIsIEBodG1sKSB1bmxlc3MgQHskdGVzdHN9OwotCi0gICAgcHVzaCBAaHRtbCwgIjxw
PiRkZXNjcmlwdGlvbjo8L3A+IjsKLSAgICBwdXNoIEBodG1sLCAiPHRhYmxlPiI7Ci0gICAgZm9y
ZWFjaCBteSAkdGVzdCAoQHskdGVzdHN9KSB7Ci0gICAgICAgIHB1c2ggQGh0bWwsICI8dHI+IjsK
LSAgICAgICAgcHVzaCBAaHRtbCwgIjx0ZD48YSBocmVmPVwiIiAuIHRvVVJMKCIkdGVzdERpcmVj
dG9yeS8kdGVzdCIpIC4gIlwiPiR0ZXN0PC9hPjwvdGQ+IjsKLSAgICAgICAgZm9yZWFjaCBteSAk
bGluayAoQHsmeyRsaW5rR2V0dGVyfSgkdGVzdCl9KSB7Ci0gICAgICAgICAgICBwdXNoIEBodG1s
LCAiPHRkPjxhIGhyZWY9XCIkbGluay0+e2hyZWZ9XCI+JGxpbmstPnt0ZXh0fTwvYT48L3RkPiI7
Ci0gICAgICAgIH0KLSAgICAgICAgcHVzaCBAaHRtbCwgIjwvdHI+IjsKLSAgICB9Ci0gICAgcHVz
aCBAaHRtbCwgIjwvdGFibGU+IjsKLQotICAgIHJldHVybiBqb2luKCJcbiIsIEBodG1sKTsKLX0K
LQotc3ViIGxpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCQpCi17Ci0gICAgbXkgKCRi
YXNlKSA9IEBfOwotCi0gICAgbXkgQGxpbmtzID0gKCk7Ci0KLSAgICByZXR1cm4gXEBsaW5rcyB1
bmxlc3MgLXMgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcudHh0IjsKLSAg
ICAKLSAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJh
c2V9OwotICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVjdGVkUmVzdWx0c0Rp
cmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkZXhwZWN0ZWRS
ZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOwotCi0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAi
JGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIiwgdGV4dCA9PiAiZXhw
ZWN0ZWQiIH07Ci0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGFjdHVhbFRhZyRl
eHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gImFjdHVhbCIgfTsKLSAgICBwdXNoIEBs
aW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcudHh0IiwgdGV4dCA9PiAiZGlmZiIgfTsK
LSAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kcHJldHR5RGlmZlRhZy5odG1sIiwg
dGV4dCA9PiAicHJldHR5IGRpZmYiIH07Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQotc3Vi
IGxpbmtzRm9yTWlzbWF0Y2hUZXN0Ci17Ci0gICAgbXkgKCR0ZXN0KSA9IEBfOwotCi0gICAgbXkg
QGxpbmtzID0gKCk7Ci0KLSAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKLQot
ICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNl
KX07Ci0gICAgcmV0dXJuIFxAbGlua3MgdW5sZXNzICRwaXhlbFRlc3RzICYmICRpbWFnZXNQcmVz
ZW50eyRiYXNlfTsKLQotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRleHBlY3Rl
ZFRhZy5wbmciLCB0ZXh0ID0+ICJleHBlY3RlZCBpbWFnZSIgfTsKLSAgICBwdXNoIEBsaW5rcywg
eyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcuaHRtbCIsIHRleHQgPT4gImltYWdlIGRpZmZzIiB9
OwotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRkaWZmc1RhZy5wbmciLCB0ZXh0
ID0+ICIkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0lIiB9OwotCi0gICAgcmV0dXJuIFxAbGlua3M7
Ci19Ci0KLXN1YiBsaW5rc0ZvckVycm9yVGVzdAotewotICAgIG15ICgkdGVzdCkgPSBAXzsKLQot
ICAgIG15IEBsaW5rcyA9ICgpOwotCi0gICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lvbigkdGVz
dCk7Ci0KLSAgICBwdXNoIEBsaW5rcywgQHtsaW5rc0ZvckV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0
cygkYmFzZSl9OwotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRlcnJvclRhZy50
eHQiLCB0ZXh0ID0+ICJzdGRlcnIiIH07Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQotc3Vi
IGxpbmtzRm9yTmV3VGVzdAotewotICAgIG15ICgkdGVzdCkgPSBAXzsKLQotICAgIG15IEBsaW5r
cyA9ICgpOwotCi0gICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lvbigkdGVzdCk7Ci0KLSAgICBt
eSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OwotICAg
IG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVjdGVkUmVzdWx0c0RpcmVjdG9yeSwg
JGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkZXhwZWN0ZWRSZXN1bHRQYXRo
LCBxcntcLlteLl0rJH0pOwotCi0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGFj
dHVhbFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gInJlc3VsdCIgfTsKLSAg
ICBpZiAoJHBpeGVsVGVzdHMgJiYgJGltYWdlc1ByZXNlbnR7JGJhc2V9KSB7Ci0gICAgICAgIHB1
c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRleHBlY3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJp
bWFnZSIgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQotc3ViIGRlbGV0ZUV4
cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkKQotewotICAgIG15ICgkYmFzZSkgPSBAXzsKLQotICAg
IHVubGluayAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRhY3R1YWxUYWcudHh0IjsKLSAg
ICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcudHh0IjsKLSAg
ICB1bmxpbmsgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXJyb3JUYWcudHh0IjsKLX0K
LQotc3ViIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCQkKQotewotICAgIG15ICgkYmFzZSwg
JGFjdHVhbFJlc3VsdHMpID0gQF87Ci0KLSAgICByZXR1cm4gdW5sZXNzIGRlZmluZWQoJGFjdHVh
bFJlc3VsdHMpICYmIGxlbmd0aCgkYWN0dWFsUmVzdWx0cyk7Ci0KLSAgICBteSAkZXhwZWN0ZWRS
ZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OwotICAgIG15ICgkZXhwZWN0
ZWRSZXN1bHRGaWxlTmFtZU1pbnVzRXh0ZW5zaW9uLCAkZXhwZWN0ZWRSZXN1bHREaXJlY3RvcnlQ
YXRoLCAkZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0gZmlsZXBhcnNlKCRleHBlY3RlZFJlc3Vs
dFBhdGgsIHFye1wuW14uXSskfSk7Ci0gICAgbXkgJGFjdHVhbFJlc3VsdHNQYXRoID0gIiR0ZXN0
UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9u
IjsKLSAgICBteSAkY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0aCA9ICIkdGVzdFJlc3VsdHNEaXJl
Y3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIjsKLQotICAg
IG1rcGF0aChkaXJuYW1lKCRhY3R1YWxSZXN1bHRzUGF0aCkpOwotICAgIHdyaXRlVG9GaWxlKCIk
YWN0dWFsUmVzdWx0c1BhdGgiLCAkYWN0dWFsUmVzdWx0cyk7Ci0KLSAgICBpZiAoLWYgJGV4cGVj
dGVkUmVzdWx0UGF0aCkgewotICAgICAgICBjb3B5KCIkZXhwZWN0ZWRSZXN1bHRQYXRoIiwgIiRj
b3BpZWRFeHBlY3RlZFJlc3VsdHNQYXRoIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgb3BlbiBF
TVBUWSwgIj4kY29waWVkRXhwZWN0ZWRSZXN1bHRzUGF0aCI7Ci0gICAgICAgIGNsb3NlIEVNUFRZ
OwotICAgIH0KLQotICAgIG15ICRkaWZmT3VwdXRCYXNlUGF0aCA9ICIkdGVzdFJlc3VsdHNEaXJl
Y3RvcnkvJGJhc2UiOwotICAgIG15ICRkaWZmT3V0cHV0UGF0aCA9ICIkZGlmZk91cHV0QmFzZVBh
dGgtJGRpZmZzVGFnLnR4dCI7Ci0gICAgc3lzdGVtICJkaWZmIC11IFwiJGNvcGllZEV4cGVjdGVk
UmVzdWx0c1BhdGhcIiBcIiRhY3R1YWxSZXN1bHRzUGF0aFwiID4gXCIkZGlmZk91dHB1dFBhdGhc
IiI7Ci0KLSAgICBteSAkcHJldHR5RGlmZk91dHB1dFBhdGggPSAiJGRpZmZPdXB1dEJhc2VQYXRo
LSRwcmV0dHlEaWZmVGFnLmh0bWwiOwotICAgIG15ICRwcmV0dHlQYXRjaFBhdGggPSAiQnVnc1Np
dGUvUHJldHR5UGF0Y2gvIjsKLSAgICBteSAkcHJldHRpZnlQYXRoID0gIiRwcmV0dHlQYXRjaFBh
dGgvcHJldHRpZnkucmIiOwotICAgIHN5c3RlbSAicnVieSAtSSBcIiRwcmV0dHlQYXRjaFBhdGhc
IiBcIiRwcmV0dGlmeVBhdGhcIiBcIiRkaWZmT3V0cHV0UGF0aFwiID4gXCIkcHJldHR5RGlmZk91
dHB1dFBhdGhcIiI7Ci19Ci0KLXN1YiBidWlsZFBsYXRmb3JtUmVzdWx0SGllcmFyY2h5KCkKLXsK
LSAgICBta3BhdGgoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSkgaWYgKCRwbGF0Zm9ybSBlcSAidW5k
ZWZpbmVkIiAmJiAhLWQgIiRwbGF0Zm9ybVRlc3REaXJlY3RvcnkiKTsKLQotICAgIG15IEBwbGF0
Zm9ybXM7Ci0gICAgaWYgKCRwbGF0Zm9ybSA9fiAvXm1hYy0vKSB7Ci0gICAgICAgIG15ICRpOwot
ICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBAbWFjUGxhdGZvcm1zOyAkaSsrKSB7Ci0gICAgICAg
ICAgICBsYXN0IGlmICRtYWNQbGF0Zm9ybXNbJGldIGVxICRwbGF0Zm9ybTsKLSAgICAgICAgfQot
ICAgICAgICBmb3IgKDsgJGkgPCBAbWFjUGxhdGZvcm1zOyAkaSsrKSB7Ci0gICAgICAgICAgICBw
dXNoIEBwbGF0Zm9ybXMsICRtYWNQbGF0Zm9ybXNbJGldOwotICAgICAgICB9Ci0gICAgfSBlbHNp
ZiAoJHBsYXRmb3JtID1+IC9ecXQtLykgewotICAgICAgICBwdXNoIEBwbGF0Zm9ybXMsICRwbGF0
Zm9ybTsKLSAgICAgICAgcHVzaCBAcGxhdGZvcm1zLCAicXQiOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEBwbGF0Zm9ybXMgPSAkcGxhdGZvcm07Ci0gICAgfQotCi0gICAgbXkgQGhpZXJhcmNoeTsK
LSAgICBmb3IgKG15ICRpID0gMDsgJGkgPCBAcGxhdGZvcm1zOyAkaSsrKSB7Ci0gICAgICAgIG15
ICRzY29wZWQgPSBjYXRkaXIoJHBsYXRmb3JtQmFzZURpcmVjdG9yeSwgJHBsYXRmb3Jtc1skaV0p
OwotICAgICAgICBwdXNoKEBoaWVyYXJjaHksICRzY29wZWQpIGlmICgtZCAkc2NvcGVkKTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gQGhpZXJhcmNoeTsKLX0KLQotc3ViIGJ1aWxkUGxhdGZvcm1UZXN0
SGllcmFyY2h5KEApCi17Ci0gICAgbXkgKEBwbGF0Zm9ybUhpZXJhcmNoeSkgPSBAXzsKLSAgICBy
ZXR1cm4gQHBsYXRmb3JtSGllcmFyY2h5IGlmIChAcGxhdGZvcm1IaWVyYXJjaHkgPCAyKTsKLQot
ICAgIHJldHVybiAoJHBsYXRmb3JtSGllcmFyY2h5WzBdLCAkcGxhdGZvcm1IaWVyYXJjaHlbJCNw
bGF0Zm9ybUhpZXJhcmNoeV0pOwotfQotCi1zdWIgZXBpbG9ndWVzQW5kUHJvbG9ndWVzKCQkKQot
ewotICAgIG15ICgkbGFzdERpcmVjdG9yeSwgJGRpcmVjdG9yeSkgPSBAXzsKLSAgICBteSBAbGFz
dENvbXBvbmVudHMgPSBzcGxpdCgnLycsICRsYXN0RGlyZWN0b3J5KTsKLSAgICBteSBAY29tcG9u
ZW50cyA9IHNwbGl0KCcvJywgJGRpcmVjdG9yeSk7Ci0KLSAgICB3aGlsZSAoQGxhc3RDb21wb25l
bnRzKSB7Ci0gICAgICAgIGlmICghZGVmaW5lZCgkY29tcG9uZW50c1swXSkgfHwgJGxhc3RDb21w
b25lbnRzWzBdIG5lICRjb21wb25lbnRzWzBdKSB7Ci0gICAgICAgICAgICBsYXN0OwotICAgICAg
ICB9Ci0gICAgICAgIHNoaWZ0IEBjb21wb25lbnRzOwotICAgICAgICBzaGlmdCBAbGFzdENvbXBv
bmVudHM7Ci0gICAgfQotCi0gICAgbXkgQHJlc3VsdDsKLSAgICBteSAkbGVhdmluZyA9ICRsYXN0
RGlyZWN0b3J5OwotICAgIGZvcmVhY2ggKEBsYXN0Q29tcG9uZW50cykgewotICAgICAgICBteSAk
ZXBpbG9ndWUgPSAkbGVhdmluZyAuICIvcmVzb3VyY2VzL3J1bi13ZWJraXQtdGVzdHMtZXBpbG9n
dWUuaHRtbCI7Ci0gICAgICAgIGZvcmVhY2ggKEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSkgewot
ICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBjYXRkaXIoJF8sICRlcGlsb2d1ZSkgaWYgKHN0YXQo
Y2F0ZGlyKCRfLCAkZXBpbG9ndWUpKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcHVzaCBAcmVzdWx0
LCBjYXRkaXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1ZSkgaWYgKHN0YXQoY2F0ZGlyKCR0ZXN0
RGlyZWN0b3J5LCAkZXBpbG9ndWUpKSk7Ci0gICAgICAgICRsZWF2aW5nID1+IHN8KF5cfC8pW14v
XSskfHw7Ci0gICAgfQotCi0gICAgbXkgJGVudGVyaW5nID0gJGxlYXZpbmc7Ci0gICAgZm9yZWFj
aCAoQGNvbXBvbmVudHMpIHsKLSAgICAgICAgJGVudGVyaW5nIC49ICcvJyAuICRfOwotICAgICAg
ICBteSAkcHJvbG9ndWUgPSAkZW50ZXJpbmcgLiAiL3Jlc291cmNlcy9ydW4td2Via2l0LXRlc3Rz
LXByb2xvZ3VlLmh0bWwiOwotICAgICAgICBwdXNoIEByZXN1bHQsIGNhdGRpcigkdGVzdERpcmVj
dG9yeSwgJHByb2xvZ3VlKSBpZiAoc3RhdChjYXRkaXIoJHRlc3REaXJlY3RvcnksICRwcm9sb2d1
ZSkpKTsKLSAgICAgICAgZm9yZWFjaCAocmV2ZXJzZSBAcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHkp
IHsKLSAgICAgICAgICAgIHB1c2ggQHJlc3VsdCwgY2F0ZGlyKCRfLCAkcHJvbG9ndWUpIGlmIChz
dGF0KGNhdGRpcigkXywgJHByb2xvZ3VlKSkpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVy
biBAcmVzdWx0OwotfQotICAgIAotc3ViIHBhcnNlTGVha3NhbmRQcmludFVuaXF1ZUxlYWtzKCkK
LXsKLSAgICByZXR1cm4gdW5sZXNzIEBsZWFrc0ZpbGVuYW1lczsKLSAgICAgCi0gICAgbXkgJG1l
cmdlZEZpbGVuYW1lcyA9IGpvaW4gIiAiLCBAbGVha3NGaWxlbmFtZXM7Ci0gICAgbXkgJHBhcnNl
TWFsbG9jSGlzdG9yeVRvb2wgPSBzb3VyY2VEaXIoKSAuICIvV2ViS2l0VG9vbHMvU2NyaXB0cy9w
YXJzZS1tYWxsb2MtaGlzdG9yeSI7Ci0gICAgCi0gICAgb3BlbiBNRVJHRURfTEVBS1MsICJjYXQg
JG1lcmdlZEZpbGVuYW1lcyB8ICRwYXJzZU1hbGxvY0hpc3RvcnlUb29sIC0tbWVyZ2UtZGVwdGgg
JG1lcmdlRGVwdGggIC0gfCIgOwotICAgIG15IEBsZWFrTGluZXMgPSA8TUVSR0VEX0xFQUtTPjsK
LSAgICBjbG9zZSBNRVJHRURfTEVBS1M7Ci0gICAgCi0gICAgbXkgJHVuaXF1ZUxlYWtDb3VudCA9
IDA7Ci0gICAgbXkgJHRvdGFsQnl0ZXM7Ci0gICAgZm9yZWFjaCBteSAkbGluZSAoQGxlYWtMaW5l
cykgewotICAgICAgICArKyR1bmlxdWVMZWFrQ291bnQgaWYgKCRsaW5lID1+IC9eKFxkKilcc2Nh
bGxzLyk7Ci0gICAgICAgICR0b3RhbEJ5dGVzID0gJDEgaWYgJGxpbmUgPX4gL150b3RhbFw6XHMo
LiopXHNcKC87Ci0gICAgfQotICAgIAotICAgIHByaW50ICJcbldBUk5JTkc6ICR0b3RhbExlYWtz
IHRvdGFsIGxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICR0b3RhbEJ5dGVzIVxuIjsKLSAgICBw
cmludCAiV0FSTklORzogJHVuaXF1ZUxlYWtDb3VudCB1bmlxdWUgbGVha3MgZm91bmQhXG4iOwot
ICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwgbGVha3MgcmVzdWx0cy5cbiIgaWYg
KCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKLSAgICAKLX0KLQotc3ViIGV4dGVuc2lvbkZv
ck1pbWVUeXBlKCQpCi17Ci0gICAgbXkgKCRtaW1lVHlwZSkgPSBAXzsKLQotICAgIGlmICgkbWlt
ZVR5cGUgZXEgImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSIpIHsKLSAgICAgICAgcmV0dXJuICJ3
ZWJhcmNoaXZlIjsKLSAgICB9IGVsc2lmICgkbWltZVR5cGUgZXEgImFwcGxpY2F0aW9uL3BkZiIp
IHsKLSAgICAgICAgcmV0dXJuICJwZGYiOwotICAgIH0KLSAgICByZXR1cm4gInR4dCI7Ci19Ci0K
LSMgUmVhZCB1cCB0byB0aGUgZmlyc3QgI0VPRiAodGhlIGNvbnRlbnQgYmxvY2sgb2YgdGhlIHRl
c3QpLCBvciB1bnRpbCBkZXRlY3RpbmcgY3Jhc2hlcyBvciB0aW1lb3V0cy4KLXN1YiByZWFkRnJv
bUR1bXBUb29sV2l0aFRpbWVyKCoqKQotewotICAgIG15ICgkZmhJbiwgJGZoRXJyb3IpID0gQF87
Ci0KLSAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZoSW4sIDEpOwotICAgIHNldEZpbGVI
YW5kbGVOb25CbG9ja2luZygkZmhFcnJvciwgMSk7Ci0KLSAgICBteSAkbWF4aW11bVNlY29uZHNX
aXRob3V0T3V0cHV0ID0gJHRpbWVvdXRTZWNvbmRzOwotICAgICRtYXhpbXVtU2Vjb25kc1dpdGhv
dXRPdXRwdXQgKj0gMTAgaWYgJGd1YXJkTWFsbG9jOwotICAgIG15ICRtaWNyb3NlY29uZHNUb1dh
aXRCZWZvcmVSZWFkaW5nQWdhaW4gPSAxMDAwOwotCi0gICAgbXkgJHRpbWVPZkxhc3RTdWNjZXNz
ZnVsUmVhZCA9IHRpbWU7Ci0KLSAgICBteSBAb3V0cHV0ID0gKCk7Ci0gICAgbXkgQGVycm9yID0g
KCk7Ci0gICAgbXkgJHN0YXR1cyA9ICJzdWNjZXNzIjsKLSAgICBteSAkbWltZVR5cGUgPSAidGV4
dC9wbGFpbiI7Ci0gICAgIyBXZSBkb24ndCBoYXZlIGEgdmVyeSBnb29kIHdheSB0byBrbm93IHdo
ZW4gdGhlICJoZWFkZXJzIiBzdG9wCi0gICAgIyBhbmQgdGhlIGNvbnRlbnQgc3RhcnRzLCBzbyB3
ZSB1c2UgdGhpcyBhcyBhIGhhY2s6Ci0gICAgbXkgJGhhdmVTZWVuQ29udGVudFR5cGUgPSAwOwot
ICAgIG15ICRoYXZlU2VlbkVvZkluID0gMDsKLSAgICBteSAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDA7
Ci0KLSAgICB3aGlsZSAoMSkgewotICAgICAgICBpZiAodGltZSAtICR0aW1lT2ZMYXN0U3VjY2Vz
c2Z1bFJlYWQgPiAkbWF4aW11bVNlY29uZHNXaXRob3V0T3V0cHV0KSB7Ci0gICAgICAgICAgICAk
c3RhdHVzID0gZHVtcFRvb2xEaWRDcmFzaCgpID8gImNyYXNoZWQiIDogInRpbWVkT3V0IjsKLSAg
ICAgICAgICAgIGxhc3Q7Ci0gICAgICAgIH0KLQotICAgICAgICAjIE9uY2Ugd2UndmUgc2VlbiB0
aGUgRU9GLCB3ZSBtdXN0IG5vdCByZWFkIGFueW1vcmUuCi0gICAgICAgIG15ICRsaW5lSW4gPSBy
ZWFkbGluZSgkZmhJbikgdW5sZXNzICRoYXZlU2VlbkVvZkluOwotICAgICAgICBteSAkbGluZUVy
cm9yID0gcmVhZGxpbmUoJGZoRXJyb3IpIHVubGVzcyAkaGF2ZVNlZW5Fb2ZFcnJvcjsKLSAgICAg
ICAgaWYgKCFkZWZpbmVkKCRsaW5lSW4pICYmICFkZWZpbmVkKCRsaW5lRXJyb3IpKSB7Ci0gICAg
ICAgICAgICBsYXN0IGlmICgkaGF2ZVNlZW5Fb2ZJbiAmJiAkaGF2ZVNlZW5Fb2ZFcnJvcik7Ci0K
LSAgICAgICAgICAgIGlmICgkISAhPSBFQUdBSU4pIHsKLSAgICAgICAgICAgICAgICAkc3RhdHVz
ID0gImNyYXNoZWQiOwotICAgICAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICMgTm8gZGF0YSByZWFkeQotICAgICAgICAgICAgdXNsZWVwKCRtaWNyb3NlY29u
ZHNUb1dhaXRCZWZvcmVSZWFkaW5nQWdhaW4pOwotICAgICAgICAgICAgbmV4dDsKLSAgICAgICAg
fQotCi0gICAgICAgICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1bFJlYWQgPSB0aW1lOwotCi0gICAgICAg
IGlmIChkZWZpbmVkKCRsaW5lSW4pKSB7Ci0gICAgICAgICAgICBpZiAoISRoYXZlU2VlbkNvbnRl
bnRUeXBlICYmICRsaW5lSW4gPX4gL15Db250ZW50LVR5cGU6IChcUyspJC8pIHsKLSAgICAgICAg
ICAgICAgICAkbWltZVR5cGUgPSAkMTsKLSAgICAgICAgICAgICAgICAkaGF2ZVNlZW5Db250ZW50
VHlwZSA9IDE7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZUluID1+IC8jRU9GLykgewotICAg
ICAgICAgICAgICAgICRoYXZlU2VlbkVvZkluID0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgcHVzaCBAb3V0cHV0LCAkbGluZUluOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIGlmIChkZWZpbmVkKCRsaW5lRXJyb3IpKSB7Ci0gICAgICAgICAgICBp
ZiAoJGxpbmVFcnJvciA9fiAvI0VPRi8pIHsKLSAgICAgICAgICAgICAgICAkaGF2ZVNlZW5Fb2ZF
cnJvciA9IDE7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2ggQGVy
cm9yLCAkbGluZUVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAg
c2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEluLCAwKTsKLSAgICBzZXRGaWxlSGFuZGxlTm9u
QmxvY2tpbmcoJGZoRXJyb3IsIDApOwotICAgIHJldHVybiB7Ci0gICAgICAgIG91dHB1dCA9PiBq
b2luKCIiLCBAb3V0cHV0KSwKLSAgICAgICAgZXJyb3IgPT4gam9pbigiIiwgQGVycm9yKSwKLSAg
ICAgICAgc3RhdHVzID0+ICRzdGF0dXMsCi0gICAgICAgIG1pbWVUeXBlID0+ICRtaW1lVHlwZSwK
LSAgICAgICAgZXh0ZW5zaW9uID0+IGV4dGVuc2lvbkZvck1pbWVUeXBlKCRtaW1lVHlwZSkKLSAg
ICB9OwotfQotCi1zdWIgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCokKQotewotICAgIG15ICgk
ZmgsICRub25CbG9ja2luZykgPSBAXzsKLQotICAgIG15ICRmbGFncyA9IGZjbnRsKCRmaCwgRl9H
RVRGTCwgMCkgb3IgZGllICJDb3VsZG4ndCBnZXQgZmlsZWhhbmRsZSBmbGFncyI7Ci0KLSAgICBp
ZiAoJG5vbkJsb2NraW5nKSB7Ci0gICAgICAgICRmbGFncyB8PSBPX05PTkJMT0NLOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgICRmbGFncyAmPSB+T19OT05CTE9DSzsKLSAgICB9Ci0KLSAgICBmY250
bCgkZmgsIEZfU0VURkwsICRmbGFncykgb3IgZGllICJDb3VsZG4ndCBzZXQgZmlsZWhhbmRsZSBm
bGFncyI7Ci0KLSAgICByZXR1cm4gMTsKLX0KLQotc3ViIHNhbXBsZUR1bXBUb29sKCkKLXsKLSAg
ICByZXR1cm4gdW5sZXNzIGlzQXBwbGVNYWNXZWJLaXQoKTsKLSAgICByZXR1cm4gdW5sZXNzICRy
dW5TYW1wbGU7Ci0KLSAgICBteSAkb3V0cHV0RGlyZWN0b3J5ID0gIiRFTlZ7SE9NRX0vTGlicmFy
eS9Mb2dzL0R1bXBSZW5kZXJUcmVlIjsKLSAgICAtZCAkb3V0cHV0RGlyZWN0b3J5IG9yIG1rZGly
ICRvdXRwdXREaXJlY3Rvcnk7Ci0KLSAgICBteSAkb3V0cHV0RmlsZSA9ICIkb3V0cHV0RGlyZWN0
b3J5L0hhbmdSZXBvcnQudHh0IjsKLSAgICBzeXN0ZW0gIi91c3IvYmluL3NhbXBsZSIsICRkdW1w
VG9vbFBJRCwgcXcoMTAgMTAgLWZpbGUpLCAkb3V0cHV0RmlsZTsKLX0KLQotc3ViIHN0cmlwTWV0
cmljcygkJCkKLXsKLSAgICBteSAoJGFjdHVhbCwgJGV4cGVjdGVkKSA9IEBfOwotCi0gICAgZm9y
ZWFjaCBteSAkcmVzdWx0ICgkYWN0dWFsLCAkZXhwZWN0ZWQpIHsKLSAgICAgICAgJHJlc3VsdCA9
fiBzL2F0IFwoLT9bMC05XSssLT9bMC05XStcKSAqLy9nOwotICAgICAgICAkcmVzdWx0ID1+IHMv
c2l6ZSAtP1swLTldK3gtP1swLTldKyAqLy9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvdGV4dCBy
dW4gd2lkdGggLT9bMC05XSs6IC8vZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL3RleHQgcnVuIHdp
ZHRoIC0/WzAtOV0rIFthLXpBLVogXSs6IC8vZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL1JlbmRl
ckJ1dHRvbiB7QlVUVE9OfSAuKi9SZW5kZXJCdXR0b24ge0JVVFRPTn0vZzsKLSAgICAgICAgJHJl
c3VsdCA9fiBzL1JlbmRlckltYWdlIHtJTlBVVH0gLiovUmVuZGVySW1hZ2Uge0lOUFVUfS9nOwot
ICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVyQmxvY2sge0lOUFVUfSAuKi9SZW5kZXJCbG9jayB7
SU5QVVR9L2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9SZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9
IC4qL1JlbmRlclRleHRDb250cm9sIHtJTlBVVH0vZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL1wo
WzAtOV0rcHgvcHgvZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzLyAqIiAqXG4gKyIgKi8gL2c7Ci0g
ICAgICAgICRyZXN1bHQgPX4gcy8iICskLyIvZzsKLQotICAgICAgICAkcmVzdWx0ID1+IHMvLSAv
LS9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvXG4oICopIlxzKy9cbiQxIi9nOwotICAgICAgICAk
cmVzdWx0ID1+IHMvXHMrIlxuLyJcbi9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvc2Nyb2xsV2lk
dGggWzAtOV0rL3Njcm9sbFdpZHRoL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9zY3JvbGxIZWln
aHQgWzAtOV0rL3Njcm9sbEhlaWdodC9nOwotICAgIH0KLQotICAgIHJldHVybiAoJGFjdHVhbCwg
JGV4cGVjdGVkKTsKLX0KLQotc3ViIGZpbGVTaG91bGRCZUlnbm9yZWQKLXsKLSAgICBteSAoJGZp
bGVQYXRoKSA9IEBfOwotICAgIGZvcmVhY2ggbXkgJGlnbm9yZWREaXIgKGtleXMgJWlnbm9yZWRE
aXJlY3RvcmllcykgewotICAgICAgICBpZiAoJGZpbGVQYXRoID1+IG0vXiRpZ25vcmVkRGlyLykg
ewotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICB9CisgICAgIyBDaGFuZ2Ug
dGhpcyBjaGVjayB0byBjb250cm9sIHdoaWNoIHBsYXRmb3JtcyB1c2UKKyAgICAjIG5ldy1ydW4t
d2Via2l0LXRlc3RzIGJ5IGRlZmF1bHQuCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN1YiByZWFkU2tp
cHBlZEZpbGVzKCQpCi17Ci0gICAgbXkgKCRjb25zdHJhaW50UGF0aCkgPSBAXzsKLQotICAgIGZv
cmVhY2ggbXkgJGxldmVsIChAcGxhdGZvcm1UZXN0SGllcmFyY2h5KSB7Ci0gICAgICAgIGlmIChv
cGVuIFNLSVBQRUQsICI8IiwgIiRsZXZlbC9Ta2lwcGVkIikgewotICAgICAgICAgICAgaWYgKCR2
ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgbXkgKCRkaXIsICRuYW1lKSA9IHNwbGl0cGF0aCgk
bGV2ZWwpOwotICAgICAgICAgICAgICAgIHByaW50ICJTa2lwcGVkIHRlc3RzIGluICRuYW1lOlxu
IjsKLSAgICAgICAgICAgIH0KK215ICRoYXJuZXNzTmFtZSA9ICJvbGQtcnVuLXdlYmtpdC10ZXN0
cyI7CiAKLSAgICAgICAgICAgIHdoaWxlICg8U0tJUFBFRD4pIHsKLSAgICAgICAgICAgICAgICBt
eSAkc2tpcHBlZCA9ICRfOwotICAgICAgICAgICAgICAgIGNob21wICRza2lwcGVkOwotICAgICAg
ICAgICAgICAgICRza2lwcGVkID1+IHMvXlsgXG5ccl0rLy87Ci0gICAgICAgICAgICAgICAgJHNr
aXBwZWQgPX4gcy9bIFxuXHJdKyQvLzsKLSAgICAgICAgICAgICAgICBpZiAoJHNraXBwZWQgJiYg
JHNraXBwZWQgIX4gL14jLykgewotICAgICAgICAgICAgICAgICAgICBpZiAoJHNraXBwZWRPbmx5
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbGVTaG91bGRCZUlnbm9yZWQoJHNr
aXBwZWQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkY29uc3RyYWludFBh
dGgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBbHdheXMgYWRkICRza2lw
cGVkIHNpbmNlIG5vIGNvbnN0cmFpbnQgcGF0aCB3YXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5k
IGxpbmUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRza2lw
cGVkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkc2tpcHBlZCA9fiAv
XigkY29uc3RyYWludFBhdGgpLykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
IEFkZCAkc2tpcHBlZCBvbmx5IGlmIGl0IG1hdGNoZXMgdGhlIGN1cnJlbnQgcGF0aCBjb25zdHJh
aW50LCBlLmcuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICItLXNraXBwZWQ9
b25seSBkaXIxIiB3aXRoICJkaXIxL2ZpbGUxLmh0bWwiIG9uIHRoZSBza2lwcGVkIGxpc3QuCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRza2lwcGVkKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29uc3RyYWludFBhdGggPX4gL14o
JHNraXBwZWQpLykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFkZCBjdXJy
ZW50IHBhdGggY29uc3RyYWludCBpZiBpdCBpcyBtb3JlIHNwZWNpZmljIHRoYW4gdGhlIHNraXAg
bGlzdCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBlLmcuLCAiLS1z
a2lwcGVkPW9ubHkgZGlyMS9kaXIyL2RpcjMiIHdpdGggImRpcjEiIG9uIHRoZSBza2lwcGVkIGxp
c3QuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRjb25zdHJh
aW50UGF0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmludCAiICAgICRza2lwcGVkXG4iOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR2
ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tpcHBl
ZFxuIjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NJZ25vcmVUZXN0cygkc2tpcHBlZCwgIlNraXBwZWQiKTsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNs
b3NlIFNLSVBQRUQ7Ci0gICAgICAgIH0KK2lmICh1c2VOZXdSdW5XZWJLaXRUZXN0cygpKSB7Cisg
ICAgJGhhcm5lc3NOYW1lID0gIm5ldy1ydW4td2Via2l0LXRlc3RzIjsKKyAgICBpZiAocnVubmlu
Z09uQnVpbGRCb3QoKSkgeworICAgICAgICBwdXNoKEBBUkdWLCAiLS12ZXJib3NlIik7CisgICAg
ICAgICMgb2xkLXJ1bi13ZWJraXQtdGVzdHMgdHJlYXRzIC0tcmVzdWx0cy1kaXJlY3RvcnkgYXMg
JENXRCByZWxhdGl2ZS4KKyAgICAgICAgIyBuZXctcnVuLXdlYmtpdC10ZXN0cyB0cmVhdHMgLS1y
ZXN1bHRzLWRpcmVjdG9yeSBhcyBidWlsZCBkaXJlY3RvcnkgcmVsYXRpdmUuCisgICAgICAgICMg
T3ZlcnJpZGUgdGhlIHBhc3NlZCBpbiAtLXJlc3VsdHMtZGlyZWN0b3J5IGJ5IGFwcGVuZGluZyBh
IG5ldyBvbmUKKyAgICAgICAgIyAobGF0ZXIgYXJndW1lbnRzIG92ZXJyaWRlIGVhcmxpZXIgb25l
cyBpbiBQeXRob24ncyBvcHRwYXJzZSkuCisgICAgICAgIHB1c2goQEFSR1YsICItLXJlc3VsdHMt
ZGlyZWN0b3J5Iik7CisgICAgICAgICMgVGhlIGJ1aWxkYm90IGFsd2F5cyB1c2VzICRTUkNESVIv
bGF5b3V0LXRlc3QtcmVzdWx0cywgaGFyZGNvZGUgaXQ6CisgICAgICAgIHB1c2goQEFSR1YsIHNv
dXJjZURpcigpIC4gIi9sYXlvdXQtdGVzdC1yZXN1bHRzIik7CiAgICAgfQogfQogCi1teSBAdGVz
dHNGb3VuZDsKLQotc3ViIGRpcmVjdG9yeUZpbHRlcgotewotICAgIHJldHVybiAoKSBpZiBleGlz
dHMgJGlnbm9yZWRMb2NhbERpcmVjdG9yaWVze2Jhc2VuYW1lKCRGaWxlOjpGaW5kOjpkaXIpfTsK
LSAgICByZXR1cm4gKCkgaWYgZXhpc3RzICRpZ25vcmVkRGlyZWN0b3JpZXN7RmlsZTo6U3BlYy0+
YWJzMnJlbCgkRmlsZTo6RmluZDo6ZGlyLCAkdGVzdERpcmVjdG9yeSl9OwotICAgIHJldHVybiBA
XzsKLX0KLQotc3ViIGZpbGVGaWx0ZXIKLXsKLSAgICBteSAkZmlsZW5hbWUgPSAkXzsKLSAgICBp
ZiAoJGZpbGVuYW1lID1+IC9cLihbXi5dKykkLykgewotICAgICAgICBpZiAoZXhpc3RzICRzdXBw
b3J0ZWRGaWxlRXh0ZW5zaW9uc3skMX0pIHsKLSAgICAgICAgICAgIG15ICRwYXRoID0gRmlsZTo6
U3BlYy0+YWJzMnJlbChjYXRmaWxlKCRGaWxlOjpGaW5kOjpkaXIsICRmaWxlbmFtZSksICR0ZXN0
RGlyZWN0b3J5KTsKLSAgICAgICAgICAgIHB1c2ggQHRlc3RzRm91bmQsICRwYXRoIGlmICFleGlz
dHMgJGlnbm9yZWRGaWxlc3skcGF0aH07Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN1YiBmaW5k
VGVzdHNUb1J1bgotewotICAgIG15IEB0ZXN0c1RvUnVuID0gKCk7Ci0KLSAgICBmb3IgbXkgJHRl
c3QgKEBBUkdWKSB7Ci0gICAgICAgICR0ZXN0ID1+IHMvXigkbGF5b3V0VGVzdHNOYW1lfCR0ZXN0
RGlyZWN0b3J5KVwvLy87Ci0gICAgICAgIG15ICRmdWxsUGF0aCA9IGNhdGZpbGUoJHRlc3REaXJl
Y3RvcnksICR0ZXN0KTsKLSAgICAgICAgaWYgKGZpbGVfbmFtZV9pc19hYnNvbHV0ZSgkdGVzdCkp
IHsKLSAgICAgICAgICAgIHByaW50ICJjYW4ndCBydW4gdGVzdCAkdGVzdCBvdXRzaWRlICR0ZXN0
RGlyZWN0b3J5XG4iOwotICAgICAgICB9IGVsc2lmICgtZiAkZnVsbFBhdGgpIHsKLSAgICAgICAg
ICAgIG15ICgkZmlsZW5hbWUsICRwYXRobmFtZSwgJGZpbGVFeHRlbnNpb24pID0gZmlsZXBhcnNl
KCR0ZXN0LCBxcntcLlteLl0rJH0pOwotICAgICAgICAgICAgaWYgKCFleGlzdHMgJHN1cHBvcnRl
ZEZpbGVFeHRlbnNpb25ze3N1YnN0cigkZmlsZUV4dGVuc2lvbiwgMSl9KSB7Ci0gICAgICAgICAg
ICAgICAgcHJpbnQgInRlc3QgJHRlc3QgZG9lcyBub3QgaGF2ZSBhIHN1cHBvcnRlZCBleHRlbnNp
b25cbiI7Ci0gICAgICAgICAgICB9IGVsc2lmICgkdGVzdEhUVFAgfHwgJHBhdGhuYW1lICF+IC9e
aHR0cFwvLykgewotICAgICAgICAgICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sICR0ZXN0OwotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgtZCAkZnVsbFBhdGgpIHsKLSAgICAgICAgICAg
IEB0ZXN0c0ZvdW5kID0gKCk7Ci0gICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRp
cmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkZnVsbFBhdGgpOwotICAg
ICAgICAgICAgZm9yIG15ICRsZXZlbCAoQHBsYXRmb3JtVGVzdEhpZXJhcmNoeSkgewotICAgICAg
ICAgICAgICAgIG15ICRwbGF0Zm9ybVBhdGggPSBjYXRmaWxlKCRsZXZlbCwgJHRlc3QpOwotICAg
ICAgICAgICAgICAgIGZpbmQoeyBwcmVwcm9jZXNzID0+IFwmZGlyZWN0b3J5RmlsdGVyLCB3YW50
ZWQgPT4gXCZmaWxlRmlsdGVyIH0sICRwbGF0Zm9ybVBhdGgpIGlmICgtZCAkcGxhdGZvcm1QYXRo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0
aGNtcCBAdGVzdHNGb3VuZDsKLSAgICAgICAgICAgIEB0ZXN0c0ZvdW5kID0gKCk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCAidGVzdCAkdGVzdCBub3QgZm91bmRcbiI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIXNjYWxhciBAQVJHVikgewotICAgICAgICBAdGVz
dHNGb3VuZCA9ICgpOwotICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVjdG9yeUZp
bHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkdGVzdERpcmVjdG9yeSk7Ci0gICAgICAg
IGZvciBteSAkbGV2ZWwgKEBwbGF0Zm9ybVRlc3RIaWVyYXJjaHkpIHsKLSAgICAgICAgICAgIGZp
bmQoeyBwcmVwcm9jZXNzID0+IFwmZGlyZWN0b3J5RmlsdGVyLCB3YW50ZWQgPT4gXCZmaWxlRmls
dGVyIH0sICRsZXZlbCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHVzaCBAdGVzdHNUb1J1biwgc29y
dCBwYXRoY21wIEB0ZXN0c0ZvdW5kOwotICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOwotCi0gICAg
ICAgICMgV2UgbmVlZCB0byBtaW5pbWl6ZSB0aGUgdGltZSB3aGVuIEFwYWNoZSBhbmQgV2ViU29j
a2V0U2VydmVyIGlzIGxvY2tlZCBieSB0ZXN0cwotICAgICAgICAjIHNvIHJ1biB0aGVtIGxhc3Qg
aWYgbm8gZXhwbGljaXQgb3JkZXIgd2FzIHNwZWNpZmllZCBpbiB0aGUgYXJndW1lbnQgbGlzdC4K
LSAgICAgICAgbXkgQGh0dHBUZXN0czsKLSAgICAgICAgbXkgQHdlYnNvY2tldFRlc3RzOwotICAg
ICAgICBteSBAb3RoZXJUZXN0czsKLSAgICAgICAgZm9yZWFjaCBteSAkdGVzdCAoQHRlc3RzVG9S
dW4pIHsKLSAgICAgICAgICAgIGlmICgkdGVzdCA9fiAvXmh0dHBcLy8pIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBodHRwVGVzdHMsICR0ZXN0KTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCR0ZXN0
ID1+IC9ed2Vic29ja2V0XC8vKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAd2Vic29ja2V0VGVz
dHMsICR0ZXN0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
b3RoZXJUZXN0cywgJHRlc3QpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEB0
ZXN0c1RvUnVuID0gKEBvdGhlclRlc3RzLCBAaHR0cFRlc3RzLCBAd2Vic29ja2V0VGVzdHMpOwot
ICAgIH0KLQotICAgICMgUmV2ZXJzZSB0aGUgdGVzdHMKLSAgICBAdGVzdHNUb1J1biA9IHJldmVy
c2UgQHRlc3RzVG9SdW4gaWYgJHJldmVyc2VUZXN0czsKLQotICAgICMgU2h1ZmZsZSB0aGUgYXJy
YXkKLSAgICBAdGVzdHNUb1J1biA9IHNodWZmbGUoQHRlc3RzVG9SdW4pIGlmICRyYW5kb21pemVU
ZXN0czsKLQotICAgIHJldHVybiBAdGVzdHNUb1J1bjsKLX0KLQotc3ViIHByaW50UmVzdWx0cwot
ewotICAgIG15ICV0ZXh0ID0gKAotICAgICAgICBtYXRjaCA9PiAic3VjY2VlZGVkIiwKLSAgICAg
ICAgbWlzbWF0Y2ggPT4gImhhZCBpbmNvcnJlY3QgbGF5b3V0IiwKLSAgICAgICAgbmV3ID0+ICJ3
ZXJlIG5ldyIsCi0gICAgICAgIHRpbWVkb3V0ID0+ICJ0aW1lZCBvdXQiLAotICAgICAgICBjcmFz
aCA9PiAiY3Jhc2hlZCIsCi0gICAgICAgIGVycm9yID0+ICJoYWQgc3RkZXJyIG91dHB1dCIKLSAg
ICApOwotCi0gICAgZm9yIG15ICR0eXBlICgibWF0Y2giLCAibWlzbWF0Y2giLCAibmV3IiwgInRp
bWVkb3V0IiwgImNyYXNoIiwgImVycm9yIikgewotICAgICAgICBteSAkdHlwZUNvdW50ID0gJGNv
dW50c3skdHlwZX07Ci0gICAgICAgIG5leHQgdW5sZXNzICR0eXBlQ291bnQ7Ci0gICAgICAgIG15
ICR0eXBlVGV4dCA9ICR0ZXh0eyR0eXBlfTsKLSAgICAgICAgbXkgJG1lc3NhZ2U7Ci0gICAgICAg
IGlmICgkdHlwZUNvdW50ID09IDEpIHsKLSAgICAgICAgICAgICR0eXBlVGV4dCA9fiBzL3dlcmUv
d2FzLzsKLSAgICAgICAgICAgICRtZXNzYWdlID0gc3ByaW50ZiAiMSB0ZXN0IGNhc2UgKCVkJSUp
ICVzXG4iLCAxICogMTAwIC8gJGNvdW50LCAkdHlwZVRleHQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAkbWVzc2FnZSA9IHNwcmludGYgIiVkIHRlc3QgY2FzZXMgKCVkJSUpICVzXG4i
LCAkdHlwZUNvdW50LCAkdHlwZUNvdW50ICogMTAwIC8gJGNvdW50LCAkdHlwZVRleHQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgJG1lc3NhZ2UgPX4gcy1cKDAlXCktKDwxJSktOwotICAgICAgICBwcmlu
dCAkbWVzc2FnZTsKLSAgICB9Ci19Ci0KLXN1YiBzdG9wUnVubmluZ1Rlc3RzRWFybHlJZk5lZWRl
ZCgpCi17Ci0gICAgIyAtLXJlc2V0LXJlc3VsdHMgZG9lcyBub3QgY2hlY2sgcGFzcyB2cy4gZmFp
bCwgc28gZXhpdEFmdGVyTkZhaWx1cmVzIG1ha2VzIG5vIHNlbnNlIHdpdGggLS1yZXNldC1yZXN1
bHRzLgotICAgIHJldHVybiAwIGlmICEkZXhpdEFmdGVyTkZhaWx1cmVzIHx8ICRyZXNldFJlc3Vs
dHM7Ci0KLSAgICBteSAkcGFzc0NvdW50ID0gJGNvdW50c3ttYXRjaH0gfHwgMDsgIyAkY291bnRz
e21hdGNofSB3aWxsIGJlIHVuZGVmaW5lZCBpZiB3ZSd2ZSBub3QgeWV0IHBhc3NlZCBhIHRlc3Qg
KGUuZy4gdGhlIGZpcnN0IHRlc3QgZmFpbHMpLgotICAgIG15ICRmYWlsdXJlQ291bnQgPSAkY291
bnQgLSAkcGFzc0NvdW50OyAjICJGYWlsdXJlIiBoZXJlIGluY2x1ZGVzIG5ldyB0ZXN0cywgdGlt
ZW91dHMsIGNyYXNoZXMsIGV0Yy4KLSAgICByZXR1cm4gMCBpZiAkZmFpbHVyZUNvdW50IDwgJGV4
aXRBZnRlck5GYWlsdXJlczsKLQotICAgIHByaW50ICJcbkV4aXRpbmcgZWFybHkgYWZ0ZXIgJGZh
aWx1cmVDb3VudCBmYWlsdXJlcy4gJGNvdW50IHRlc3RzIHJ1bi4iOwotICAgIGNsb3NlRHVtcFRv
b2woKTsKLSAgICByZXR1cm4gMTsKLX0KK2V4ZWMoJGhhcm5lc3NOYW1lLCBAQVJHVik7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCAwNTlmZDA5Li43MjhjMDg0IDEwMDc1NQotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHkKQEAgLTY4OCw3ICs2ODgsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogCiAg
ICAgICAgICMgV3JpdGUgdGhlIHN1bW1hcnkgdG8gZGlzayAocmVzdWx0cy5odG1sKSBhbmQgZGlz
cGxheSBpdCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHdyb3RlX3Jlc3VsdHMgPSBzZWxmLl93cml0
ZV9yZXN1bHRzX2h0bWxfZmlsZShyZXN1bHRfc3VtbWFyeSkKLSAgICAgICAgaWYgbm90IHNlbGYu
X29wdGlvbnMubm9zaG93X3Jlc3VsdHMgYW5kIHdyb3RlX3Jlc3VsdHM6CisgICAgICAgIGlmIHNl
bGYuX29wdGlvbnMuc2hvd19yZXN1bHRzIGFuZCB3cm90ZV9yZXN1bHRzOgogICAgICAgICAgICAg
c2VsZi5fc2hvd19yZXN1bHRzX2h0bWxfZmlsZSgpCiAKICAgICAgICAgIyBJZ25vcmUgZmxha3kg
ZmFpbHVyZXMgYW5kIHVuZXhwZWN0ZWQgcGFzc2VzIHNvIHdlIGRvbid0IHR1cm4gdGhlCkBAIC0x
NTMzLDYgKzE1MzMsMTQgQEAgZGVmIG1haW4ob3B0aW9ucywgYXJncywgcHJpbnRfcmVzdWx0cz1U
cnVlKToKICAgICByZXR1cm4gbnVtX3VuZXhwZWN0ZWRfcmVzdWx0cwogCiAKK2RlZiBfY29tcGF0
X3NoaW1fY2FsbGJhY2sob3B0aW9uLCBvcHRfc3RyLCB2YWx1ZSwgcGFyc2VyKToKKyAgICBwcmlu
dCAiSWdub3JpbmcgdW5zdXBwb3J0ZWQgb3B0aW9uOiAlcyIgJSBvcHRfc3RyCisKKworZGVmIF9j
b21wYXRfc2hpbV9vcHRpb24ob3B0aW9uX25hbWUsIG5hcmdzPTApOgorICAgIHJldHVybiBvcHRw
YXJzZS5tYWtlX29wdGlvbihvcHRpb25fbmFtZSwgYWN0aW9uPSJjYWxsYmFjayIsIGNhbGxiYWNr
PV9jb21wYXRfc2hpbV9jYWxsYmFjaywgbmFyZ3M9bmFyZ3MsIGhlbHA9Iklnbm9yZWQsIGZvciBv
bGQtcnVuLXdlYmtpdC10ZXN0cyBjb21wYXQgb25seS4iKQorCisKIGRlZiBwYXJzZV9hcmdzKGFy
Z3M9Tm9uZSk6CiAgICAgIiIiUHJvdmlkZXMgYSBkZWZhdWx0IHNldCBvZiBjb21tYW5kIGxpbmUg
YXJncy4KIApAQCAtMTU4NiwxNiArMTU5NCwyNyBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUp
OgogICAgICAgICAgICAgaGVscD0iRG9uJ3QgY2hlY2sgdGhlIHN5c3RlbSBkZXBlbmRlbmNpZXMg
KHRoZW1lcykiKSwKICAgICBdCiAKLSAgICAjIE1pc3NpbmcgTWFjIG9wdGlvbnM6CisgICAgIyBN
aXNzaW5nIE1hYy1zcGVjaWZpYyBvbGQtcnVuLXdlYmtpdC10ZXN0cyBvcHRpb25zOgogICAgICMg
RklYTUU6IE5lZWQ6IC1nLCAtLWd1YXJkIGZvciBndWFyZCBtYWxsb2Mgc3VwcG9ydCBvbiBNYWMu
CiAgICAgIyBGSVhNRTogTmVlZDogLWwgLS1sZWFrcyAgICBFbmFibGUgbGVha3MgY2hlY2tpbmcu
Ci0gICAgIyBGSVhNRTogTmVlZDogLS1bbm8tXXNhbXBsZS1vbi10aW1lb3V0IFJ1biBzYW1wbGUg
b24gdGltZW91dAotICAgICMgRklYTUU6IE5lZWQ6ICAgIChkZWZhdWx0OiBydW4pIChNYWMgT1Mg
WCBvbmx5KQorICAgICMgRklYTUU6IE5lZWQ6IC0tc2FtcGxlLW9uLXRpbWVvdXQgUnVuIHNhbXBs
ZSBvbiB0aW1lb3V0CisKKyAgICBvbGRfcnVuX3dlYmtpdF90ZXN0c19jb21wYXQgPSBbCisgICAg
ICAgICMgTlJXVCBkb2Vzbid0IGdlbmVyYXRlIHJlc3VsdHMgYnkgZGVmYXVsdCBhbnl3YXkuCisg
ICAgICAgIF9jb21wYXRfc2hpbV9vcHRpb24oIi0tbm8tbmV3LXRlc3QtcmVzdWx0cyIpLAorICAg
ICAgICAjIE5SV1QgZG9lc24ndCBzYW1wbGUgb24gdGltZW91dCB5ZXQgYW55d2F5LgorICAgICAg
ICBfY29tcGF0X3NoaW1fb3B0aW9uKCItLW5vLXNhbXBsZS1vbi10aW1lb3V0IiksCisgICAgICAg
ICMgRklYTUU6IE5SV1QgbmVlZHMgdG8gc3VwcG9ydCByZW1vdGUgbGlua3MgZXZlbnR1YWxseS4K
KyAgICAgICAgX2NvbXBhdF9zaGltX29wdGlvbigiLS11c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3Rz
IiksCisgICAgICAgICMgRklYTUU6IE5SV1QgZG9lc24ndCBuZWVkIHRoaXMgb3B0aW9uIGFzIG11
Y2ggc2luY2UgZmFpbHVyZXMgYXJlCisgICAgICAgICMgZGVzaWduZWQgdG8gYmUgY2hlYXAuICBX
ZSBldmVudHVhbGx5IHBsYW4gdG8gYWRkIHRoaXMgc3VwcG9ydC4KKyAgICAgICAgX2NvbXBhdF9z
aGltX29wdGlvbigiLS1leGl0LWFmdGVyLW4tZmFpbHVyZXMiLCBuYXJncz0xKSwKKyAgICBdCiAK
ICAgICByZXN1bHRzX29wdGlvbnMgPSBbCiAgICAgICAgICMgTkVFRCBmb3IgYm90czogLS11c2Ut
cmVtb3RlLWxpbmtzLXRvLXRlc3RzIExpbmsgdG8gdGVzdCBmaWxlcwogICAgICAgICAjIHdpdGhp
biB0aGUgU1ZOIHJlcG9zaXRvcnkgaW4gdGhlIHJlc3VsdHMuCi0gICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCItcCIsICItLXBpeGVsLXRlc3RzJyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItcCIsICItLXBpeGVsLXRlc3RzIiwgYWN0aW9u
PSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgIGRlc3Q9InBpeGVsX3Rlc3RzIiwgaGVscD0iRW5h
YmxlIHBpeGVsLXRvLXBpeGVsIFBORyBjb21wYXJpc29ucyIpLAogICAgICAgICBvcHRwYXJzZS5t
YWtlX29wdGlvbigiLS1uby1waXhlbC10ZXN0cyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAogICAg
ICAgICAgICAgZGVzdD0icGl4ZWxfdGVzdHMiLCBoZWxwPSJEaXNhYmxlIHBpeGVsLXRvLXBpeGVs
IFBORyBjb21wYXJpc29ucyIpLApAQCAtMTYxMiwxMSArMTYzMSwxOCBAQCBkZWYgcGFyc2VfYXJn
cyhhcmdzPU5vbmUpOgogICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0iU2F2ZSBhbGwg
Z2VuZXJhdGVkIHJlc3VsdHMgYXMgbmV3IGJhc2VsaW5lcyAiCiAgICAgICAgICAgICAgICAgICJp
bnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnksIG92ZXJ3cml0aW5nIHdoYXRldmVyJ3MgIgogICAg
ICAgICAgICAgICAgICAiYWxyZWFkeSB0aGVyZS4iKSwKLSAgICAgICAgIyBGSVhNRTogLS1ub3No
b3cgc2hvdWxkIGJlIC0tbm8tc2hvdyB0byBtYXRjaCB0aGUgR05VIGdldF9vcHQgcGF0dGVybi4K
LSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm9zaG93LXJlc3VsdHMiLCBhY3Rpb249
InN0b3JlX3RydWUiLAotICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oIi0tbm8tc2hvdy1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIs
CisgICAgICAgICAgICBkZWZhdWx0PVRydWUsIGRlc3Q9InNob3dfcmVzdWx0cyIsCiAgICAgICAg
ICAgICBoZWxwPSJEb24ndCBsYXVuY2ggYSBicm93c2VyIHdpdGggcmVzdWx0cyBhZnRlciB0aGUg
dGVzdHMgIgogICAgICAgICAgICAgICAgICAiYXJlIGRvbmUiKSwKKyAgICAgICAgIyBGSVhNRTog
V2Ugc2hvdWxkIGhhdmUgYSBoZWxwZXIgZnVuY3Rpb24gdG8gZG8gdGhpcyBzb3J0IG9mCisgICAg
ICAgICMgZGVwcmVjdGF0ZWQgbWFwcGluZyBhbmQgYXV0b21hdGljYWxseSBsb2csIGV0Yy4KKyAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm9zaG93LXJlc3VsdHMiLCBhY3Rpb249InN0
b3JlX2ZhbHNlIiwKKyAgICAgICAgICAgIGRlc3Q9InNob3dfcmVzdWx0cyIsCisgICAgICAgICAg
ICBoZWxwPSJEZXByZWNhdGVkLCBzYW1lIGFzIC0tbm8tc2hvdy1yZXN1bHRzLiIpLAorICAgICAg
ICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1uby1sYXVuY2gtc2FmYXJpIiwgYWN0aW9uPSJzdG9y
ZV9mYWxzZSIsCisgICAgICAgICAgICBkZXN0PSJzaG93X3Jlc3VsdHMiLAorICAgICAgICAgICAg
aGVscD0ib2xkLXJ1bi13ZWJraXQtdGVzdHMgY29tcGF0LCBzYW1lIGFzIC0tbm9zaG93LXJlc3Vs
dHMuIiksCiAgICAgICAgICMgb2xkLXJ1bi13ZWJraXQtdGVzdHM6CiAgICAgICAgICMgLS1bbm8t
XWxhdW5jaC1zYWZhcmkgICAgTGF1bmNoIChvciBkbyBub3QgbGF1bmNoKSBTYWZhcmkgdG8gZGlz
cGxheQogICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgcmVzdWx0cyAoZGVm
YXVsdDogbGF1bmNoKQpAQCAtMTcwNiw3ICsxNzMyLDggQEAgZGVmIHBhcnNlX2FyZ3MoYXJncz1O
b25lKToKIAogICAgIG9wdGlvbl9saXN0ID0gKGNvbmZpZ3VyYXRpb25fb3B0aW9ucyArIGxvZ2dp
bmdfb3B0aW9ucyArCiAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fb3B0aW9ucyArIHJlc3Vs
dHNfb3B0aW9ucyArIHRlc3Rfb3B0aW9ucyArCi0gICAgICAgICAgICAgICAgICAgbWlzY19vcHRp
b25zICsgcmVzdWx0c19qc29uX29wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgbWlzY19vcHRp
b25zICsgcmVzdWx0c19qc29uX29wdGlvbnMgKworICAgICAgICAgICAgICAgICAgIG9sZF9ydW5f
d2Via2l0X3Rlc3RzX2NvbXBhdCkKICAgICBvcHRpb25fcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9u
UGFyc2VyKG9wdGlvbl9saXN0PW9wdGlvbl9saXN0KQogICAgIHJldHVybiBvcHRpb25fcGFyc2Vy
LnBhcnNlX2FyZ3MoYXJncykKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53633</attachid>
            <date>2010-04-18 13:56:57 -0700</date>
            <delta_ts>2010-04-18 14:09:59 -0700</delta_ts>
            <desc>Fix run-webkit-tests for users who don&apos;t have WebKitTools/Scripts in their path</desc>
            <filename>bug-37632-20100418135655.patch</filename>
            <type>text/plain</type>
            <size>1053</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYzdmNDk5Li44YmNlN2YzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDQt
MTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IGZpeGluZyB0aGUgUXQgYm90LgorCisgICAgICAgIEFkZCBhIGxheWVyIG9mIGluZGlyZWN0aW9u
IHdoZW4gY2FsbGluZyBydW4td2Via2l0LXRlc3RzIHRvIGFsbG93IHRlc3RpbmcgbmV3LXJ1bi13
ZWJraXQtdGVzdHMgb24gdmFyaW91cyBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjMyCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13
ZWJraXQtdGVzdHM6CisgICAgICAgICAtIEZpeCB0aGUgd3JhcHBlciB0byB3b3JrIGZvciB1c2Vy
cyB3aG8gZG8gbm90CisgICAgICAgICAgIGhhdmUgV2ViS2l0VG9vbHMvU2NyaXB0cyBpbiB0aGVp
ciBwYXRoLgorCiAyMDEwLTA0LTE0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0
LXRlc3RzCmluZGV4IDg2OTQxOTYuLjM0NjMyMTEgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJr
aXQtdGVzdHMKQEAgLTc3LDQgKzc3LDUgQEAgaWYgKHVzZU5ld1J1bldlYktpdFRlc3RzKCkpIHsK
ICAgICB9CiB9CiAKLWV4ZWMoJGhhcm5lc3NOYW1lLCBAQVJHVik7CitteSAkaGFybmVzc1BhdGgg
PSBzcHJpbnRmKCIlcy8lcyIsIHJlbGF0aXZlU2NyaXB0c0RpcigpLCAkaGFybmVzc05hbWUpOwor
ZXhlYygkaGFybmVzc1BhdGgsIEBBUkdWKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53634</attachid>
            <date>2010-04-18 14:10:03 -0700</date>
            <delta_ts>2010-04-18 14:10:03 -0700</delta_ts>
            <desc>Make run-webkit-tests exit non-zero if launching harness fails</desc>
            <filename>bug-37632-20100418141002.patch</filename>
            <type>text/plain</type>
            <size>1166</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4YmNlN2YzLi5iY2ZlMTM4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTAtMDQt
MTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGxheWVyIG9mIGluZGlyZWN0aW9uIHdo
ZW4gY2FsbGluZyBydW4td2Via2l0LXRlc3RzIHRvIGFsbG93IHRlc3RpbmcgbmV3LXJ1bi13ZWJr
aXQtdGVzdHMgb24gdmFyaW91cyBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjMyCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJr
aXQtdGVzdHM6CisgICAgICAgICAtIEV4aXQgbm9uLXplcm8gb2YgbGF1bmNoaW5nIHRoZSBoYXJu
ZXNzIGZhaWxzLgorCisyMDEwLTA0LTE4ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
KwogICAgICAgICBVbnJldmlld2VkLCBmaXhpbmcgdGhlIFF0IGJvdC4KIAogICAgICAgICBBZGQg
YSBsYXllciBvZiBpbmRpcmVjdGlvbiB3aGVuIGNhbGxpbmcgcnVuLXdlYmtpdC10ZXN0cyB0byBh
bGxvdyB0ZXN0aW5nIG5ldy1ydW4td2Via2l0LXRlc3RzIG9uIHZhcmlvdXMgcGxhdGZvcm1zCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKaW5kZXggMzQ2MzIxMS4uODM4NjJiNiAxMDA3
NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwpAQCAtNzgsNCArNzgsNCBAQCBpZiAodXNl
TmV3UnVuV2ViS2l0VGVzdHMoKSkgewogfQogCiBteSAkaGFybmVzc1BhdGggPSBzcHJpbnRmKCIl
cy8lcyIsIHJlbGF0aXZlU2NyaXB0c0RpcigpLCAkaGFybmVzc05hbWUpOwotZXhlYygkaGFybmVz
c1BhdGgsIEBBUkdWKTsKK2V4ZWMoJGhhcm5lc3NQYXRoLCBAQVJHVikgb3IgZGllICJGYWlsZWQg
dG8gZXhlY3V0ZSAkaGFybmVzc1BhdGgiOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>