<?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>221558</bug_id>
          
          <creation_ts>2021-02-08 09:25:00 -0800</creation_ts>
          <short_desc>[build.webkit.org] Remove code specific to old Buildbot</short_desc>
          <delta_ts>2021-02-10 14:33:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175056</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1726666</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-08 09:25:00 -0800</bug_when>
    <thetext>Now that we have upgraded build.webkit.org to latest buildbot (Bug 175056), we should delete the code specific to old Buildbot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726667</commentid>
    <comment_count>1</comment_count>
      <attachid>419599</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-08 09:26:53 -0800</bug_when>
    <thetext>Created attachment 419599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726672</commentid>
    <comment_count>2</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-08 09:31:46 -0800</bug_when>
    <thetext>Need to update EWS to stop running old build.webkit.org unit-tests and start running new unit-tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726680</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-08 09:44:56 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #2)
&gt; Need to update EWS to stop running old build.webkit.org unit-tests and start
&gt; running new unit-tests.

That needs to be done before this change is landed, correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727576</commentid>
    <comment_count>4</comment_count>
      <attachid>419857</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-10 09:32:29 -0800</bug_when>
    <thetext>Created attachment 419857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727668</commentid>
    <comment_count>5</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-10 11:32:33 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #3)
&gt; That needs to be done before this change is landed, correct?
Done in Bug 221678 and Bug 219454.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727729</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-10 13:06:34 -0800</bug_when>
    <thetext>Committed r272681: &lt;https://commits.webkit.org/r272681&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419857.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727791</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-10 14:33:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/74206663&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419599</attachid>
            <date>2021-02-08 09:26:53 -0800</date>
            <delta_ts>2021-02-10 09:32:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221558-20210208122651.patch</filename>
            <type>text/plain</type>
            <size>31058</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MjQ5NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIxLTAyLTA4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gUmVtb3ZlIGNvZGUgc3BlY2lmaWMgdG8g
b2xkIEJ1aWxkYm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE1NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2J1aWxkYm90LnRhYzoKKyAgICAgICAg
KiBDSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9sb2FkQ29uZmlnLnB5OgorICAgICAgICAqIENJ
U3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2xvYWRDb25maWdfdW5pdHRlc3QucHk6CisgICAgICAg
ICogQ0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvc3RlcHMucHk6CisgICAgICAgIChUZXN0V2l0
aEZhaWx1cmVDb3VudC5nZXRUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RXaXRoRmFpbHVy
ZUNvdW50LmdldFRleHQyKTogRGVsZXRlZC4KKyAgICAgICAgKENvbXBpbGVXZWJLaXQuY3JlYXRl
U3VtbWFyeSk6IERlbGV0ZWQuCisgICAgICAgIChSdW5XZWJLaXRUZXN0cy5fcGFyc2VSdW5XZWJL
aXRUZXN0c091dHB1dCk6IERlbGV0ZWQuCisgICAgICAgIChSdW5XZWJLaXRUZXN0cy5jb21tYW5k
Q29tcGxldGUpOiBEZWxldGVkLgorICAgICAgICAoUnVuV2ViS2l0VGVzdHMuZ2V0VGV4dCk6IERl
bGV0ZWQuCisgICAgICAgIChSdW5XZWJLaXRUZXN0cy5nZXRUZXh0Mik6IERlbGV0ZWQuCisgICAg
ICAgIChFeHRyYWN0VGVzdFJlc3VsdHMuc3RhcnQpOiBEZWxldGVkLgorCiAyMDIxLTAyLTA4ICBM
YXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBHYXJkZW5p
bmcgZ2VvbG9jYXRpb24gQVBJIHRlc3QgZmxha2luZXNzCkluZGV4OiBUb29scy9DSVN1cHBvcnQv
YnVpbGQtd2Via2l0LW9yZy9idWlsZGJvdC50YWMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ0lTdXBw
b3J0L2J1aWxkLXdlYmtpdC1vcmcvYnVpbGRib3QudGFjCShyZXZpc2lvbiAyNzI0OTUpCisrKyBU
b29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9idWlsZGJvdC50YWMJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTUgKzEsMTAgQEAKIGltcG9ydCBvcwogCi1VU0VfQlVJTERCT1RfVkVSU0lPTjIg
PSBvcy5nZXRlbnYoJ1VTRV9CVUlMREJPVF9WRVJTSU9OMicpIGlzIG5vdCBOb25lCi0KIGZyb20g
dHdpc3RlZC5hcHBsaWNhdGlvbiBpbXBvcnQgc2VydmljZQogZnJvbSBidWlsZGJvdC5tYXN0ZXIg
aW1wb3J0IEJ1aWxkTWFzdGVyCiAKIGJhc2VkaXIgPSAnLicKLWlmIFVTRV9CVUlMREJPVF9WRVJT
SU9OMjoKLSAgICBjb25maWdmaWxlID0gcidtYXN0ZXJfYnVpbGRib3QyLmNmZycKLWVsc2U6Ci0g
ICAgY29uZmlnZmlsZSA9IHInbWFzdGVyLmNmZycKK2NvbmZpZ2ZpbGUgPSByJ21hc3Rlcl9idWls
ZGJvdDIuY2ZnJwogcm90YXRlTGVuZ3RoID0gNTAwMDAwMDAKIG1heFJvdGF0ZWRGaWxlcyA9IDIw
CiB1bWFzayA9IDBvMDIyCkluZGV4OiBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9s
b2FkQ29uZmlnLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQt
b3JnL2xvYWRDb25maWcucHkJKHJldmlzaW9uIDI3MjQ5NSkKKysrIFRvb2xzL0NJU3VwcG9ydC9i
dWlsZC13ZWJraXQtb3JnL2xvYWRDb25maWcucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDEyICsy
MSw4IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBvcwotVVNFX0JVSUxEQk9UX1ZFUlNJT04y
ID0gb3MuZ2V0ZW52KCdVU0VfQlVJTERCT1RfVkVSU0lPTjInKSBpcyBub3QgTm9uZQogCi1pZiBV
U0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgZnJvbSBidWlsZGJvdC53b3JrZXIgaW1wb3J0IFdv
cmtlcgotZWxzZToKLSAgICBmcm9tIGJ1aWxkYm90LmJ1aWxkc2xhdmUgaW1wb3J0IEJ1aWxkU2xh
dmUKK2Zyb20gYnVpbGRib3Qud29ya2VyIGltcG9ydCBXb3JrZXIKIGZyb20gYnVpbGRib3Quc2No
ZWR1bGVyIGltcG9ydCBBbnlCcmFuY2hTY2hlZHVsZXIsIFRyaWdnZXJhYmxlLCBOaWdodGx5CiBm
cm9tIGJ1aWxkYm90LnNjaGVkdWxlcnMuZm9yY2VzY2hlZCBpbXBvcnQgRml4ZWRQYXJhbWV0ZXIs
IEZvcmNlU2NoZWR1bGVyLCBTdHJpbmdQYXJhbWV0ZXIsIEJvb2xlYW5QYXJhbWV0ZXIKIGZyb20g
YnVpbGRib3Quc2NoZWR1bGVycy5maWx0ZXIgaW1wb3J0IENoYW5nZUZpbHRlcgpAQCAtNjIsMTAg
KzU4LDcgQEAgZGVmIGxvYWRCdWlsZGVyQ29uZmlnKGMsIGlzX3Rlc3RfbW9kZV9lbgogICAgICAg
ICBvcy5lbnZpcm9uWydSRVNVTFRTX1NFUlZFUl9BUElfS0VZJ10gPSByZXN1bHRzX3NlcnZlcl9h
cGlfa2V5CiAKICAgICBjb25maWcgPSBqc29uLmxvYWQob3BlbignY29uZmlnLmpzb24nKSkKLSAg
ICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgIGNbJ3dvcmtlcnMnXSA9IFtXb3Jr
ZXIod29ya2VyWyduYW1lJ10sIHBhc3N3b3Jkcy5nZXQod29ya2VyWyduYW1lJ10sICdwYXNzd29y
ZCcpLCBtYXhfYnVpbGRzPTEpIGZvciB3b3JrZXIgaW4gY29uZmlnWyd3b3JrZXJzJ11dCi0gICAg
ZWxzZToKLSAgICAgICAgY1snc2xhdmVzJ10gPSBbQnVpbGRTbGF2ZSh3b3JrZXJbJ25hbWUnXSwg
cGFzc3dvcmRzLmdldCh3b3JrZXJbJ25hbWUnXSwgJ3Bhc3N3b3JkJyksIG1heF9idWlsZHM9MSkg
Zm9yIHdvcmtlciBpbiBjb25maWdbJ3dvcmtlcnMnXV0KKyAgICBjWyd3b3JrZXJzJ10gPSBbV29y
a2VyKHdvcmtlclsnbmFtZSddLCBwYXNzd29yZHMuZ2V0KHdvcmtlclsnbmFtZSddLCAncGFzc3dv
cmQnKSwgbWF4X2J1aWxkcz0xKSBmb3Igd29ya2VyIGluIGNvbmZpZ1snd29ya2VycyddXQogCiAg
ICAgY1snc2NoZWR1bGVycyddID0gW10KICAgICBmb3Igc2NoZWR1bGVyIGluIGNvbmZpZ1snc2No
ZWR1bGVycyddOgpAQCAtNzksMjMgKzcyLDcgQEAgZGVmIGxvYWRCdWlsZGVyQ29uZmlnKGMsIGlz
X3Rlc3RfbW9kZV9lbgogICAgIGJ1aWxkZXJOYW1lcyA9IFtzdHIoYnVpbGRlclsnbmFtZSddKSBm
b3IgYnVpbGRlciBpbiBjb25maWdbJ2J1aWxkZXJzJ11dCiAgICAgcmVhc29uID0gU3RyaW5nUGFy
YW1ldGVyKG5hbWU9J3JlYXNvbicsIGRlZmF1bHQ9JycsIHNpemU9NDApCiAgICAgcHJvcGVydGll
cyA9IFtCb29sZWFuUGFyYW1ldGVyKG5hbWU9J2lzX2NsZWFuJywgbGFiZWw9J0ZvcmNlIENsZWFu
IGJ1aWxkJyldCi0gICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICBmb3JjZVNj
aGVkdWxlciA9IEZvcmNlU2NoZWR1bGVyKG5hbWU9J2ZvcmNlJywgYnVpbGRlck5hbWVzPWJ1aWxk
ZXJOYW1lcywgcmVhc29uPXJlYXNvbiwgcHJvcGVydGllcz1wcm9wZXJ0aWVzKQotICAgIGVsc2U6
Ci0gICAgICAgIGZvcmNlU2NoZWR1bGVyID0gRm9yY2VTY2hlZHVsZXIoCi0gICAgICAgICAgICBu
YW1lPSdmb3JjZScsCi0gICAgICAgICAgICBidWlsZGVyTmFtZXM9YnVpbGRlck5hbWVzLAotICAg
ICAgICAgICAgcmVhc29uPXJlYXNvbiwKLQotICAgICAgICAgICAgIyBWYWxpZGF0ZSBTVk4gcmV2
aXNpb246IG51bWJlciBvciBlbXB0eSBzdHJpbmcKLSAgICAgICAgICAgIHJldmlzaW9uPVN0cmlu
Z1BhcmFtZXRlcihuYW1lPSJyZXZpc2lvbiIsIGRlZmF1bHQ9IiIsIHJlZ2V4PXJlLmNvbXBpbGUo
cideKFxkKikkJykpLAotCi0gICAgICAgICAgICAjIERpc2FibGUgZGVmYXVsdCBlbmFibGVkIGlu
cHV0IGZpZWxkczogYnJhbmNoLCByZXBvc2l0b3J5LCBwcm9qZWN0LCBhZGRpdGlvbmFsIHByb3Bl
cnRpZXMKLSAgICAgICAgICAgIGJyYW5jaD1GaXhlZFBhcmFtZXRlcihuYW1lPSJicmFuY2giKSwK
LSAgICAgICAgICAgIHJlcG9zaXRvcnk9Rml4ZWRQYXJhbWV0ZXIobmFtZT0icmVwb3NpdG9yeSIp
LAotICAgICAgICAgICAgcHJvamVjdD1GaXhlZFBhcmFtZXRlcihuYW1lPSJwcm9qZWN0IiksCi0g
ICAgICAgICAgICBwcm9wZXJ0aWVzPXByb3BlcnRpZXMKLSAgICAgICAgKQorICAgIGZvcmNlU2No
ZWR1bGVyID0gRm9yY2VTY2hlZHVsZXIobmFtZT0nZm9yY2UnLCBidWlsZGVyTmFtZXM9YnVpbGRl
ck5hbWVzLCByZWFzb249cmVhc29uLCBwcm9wZXJ0aWVzPXByb3BlcnRpZXMpCiAgICAgY1snc2No
ZWR1bGVycyddLmFwcGVuZChmb3JjZVNjaGVkdWxlcikKIAogICAgIGNbJ2J1aWxkZXJzJ10gPSBb
XQpAQCAtMTA5LDggKzg2LDYgQEAgZGVmIGxvYWRCdWlsZGVyQ29uZmlnKGMsIGlzX3Rlc3RfbW9k
ZV9lbgogICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIge30gaXMg
Zm9yIHBsYXRmb3JtIHt9IGJ1dCBoYXMgd29ya2VyIHt9IGZvciBwbGF0Zm9ybSB7fSEnLmZvcm1h
dChidWlsZGVyWyduYW1lJ10sIGJ1aWxkZXJbJ3BsYXRmb3JtJ10sIHdvcmtlclsnbmFtZSddLCB3
b3JrZXJbJ3BsYXRmb3JtJ10pKQogICAgICAgICAgICAgICAgIGJyZWFrCiAKLSAgICAgICAgaWYg
bm90IFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIGJ1aWxkZXJbJ3NsYXZlbmFt
ZXMnXSA9IGJ1aWxkZXIucG9wKCd3b3JrZXJuYW1lcycpCiAgICAgICAgIHBsYXRmb3JtID0gYnVp
bGRlclsncGxhdGZvcm0nXQogCiAgICAgICAgIGZhY3RvcnlOYW1lID0gYnVpbGRlci5wb3AoJ2Zh
Y3RvcnknKQpAQCAtMTI5LDEwICsxMDQsNyBAQCBkZWYgbG9hZEJ1aWxkZXJDb25maWcoYywgaXNf
dGVzdF9tb2RlX2VuCiAgICAgICAgIGlmIG5vdCBidWlsZGJvdF9pZGVudGlmaWVyc19yZS5tYXRj
aChidWlsZGVyX25hbWUpOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCdWlsZGVyIG5h
bWUgInt9IiBpcyBub3QgYSB2YWxpZCBidWlsZGJvdCBpZGVudGlmaWVyLicuZm9ybWF0KGJ1aWxk
ZXJfbmFtZSkpCiAgICAgICAgIGZvciBzdGVwIGluIGJ1aWxkZXJbImZhY3RvcnkiXS5zdGVwczoK
LSAgICAgICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgICAgICBz
dGVwX25hbWUgPSBzdGVwLmJ1aWxkU3RlcCgpLm5hbWUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgc3RlcF9uYW1lID0gc3RlcFswXS5uYW1lCisgICAgICAgICAgICBzdGVwX25h
bWUgPSBzdGVwLmJ1aWxkU3RlcCgpLm5hbWUKICAgICAgICAgICAgIGlmIGxlbihzdGVwX25hbWUp
ID4gU1RFUF9OQU1FX0xFTkdUSF9MSU1JVDoKICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ3N0ZXAgbmFtZSAie30iIGlzIGxvbmdlciB0aGFuIG1heGltdW0gYWxsb3dlZCBieSBCdWls
ZGJvdCAoe30gY2hhcmFjdGVycykuJy5mb3JtYXQoc3RlcF9uYW1lLCBTVEVQX05BTUVfTEVOR1RI
X0xJTUlUKSkKICAgICAgICAgICAgIGlmIG5vdCBidWlsZGJvdF9pZGVudGlmaWVyc19yZS5tYXRj
aChzdGVwX25hbWUpOgpAQCAtMTU4LDEwICsxMzAsNyBAQCBkZWYgbG9hZEJ1aWxkZXJDb25maWco
YywgaXNfdGVzdF9tb2RlX2VuCiAgICAgICAgIGlmIChjYXRlZ29yeSBpbiAoJ0FwcGxlTWFjJywg
J0FwcGxlV2luJywgJ2lPUycpKSBhbmQgZmFjdG9yeU5hbWUgIT0gJ0J1aWxkRmFjdG9yeSc6CiAg
ICAgICAgICAgICBidWlsZGVyWyduZXh0QnVpbGQnXSA9IHBpY2tMYXRlc3RCdWlsZAogCi0gICAg
ICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIGJ1aWxkZXJbJ3RhZ3Mn
XSA9IGdldFRhZ3NGb3JCdWlsZGVyKGJ1aWxkZXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBidWlsZGVyWydjYXRlZ29yeSddID0gY2F0ZWdvcnkKKyAgICAgICAgYnVpbGRlclsndGFncydd
ID0gZ2V0VGFnc0ZvckJ1aWxkZXIoYnVpbGRlcikKICAgICAgICAgY1snYnVpbGRlcnMnXS5hcHBl
bmQoYnVpbGRlcikKIAogCkluZGV4OiBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9s
b2FkQ29uZmlnX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NJU3VwcG9ydC9idWls
ZC13ZWJraXQtb3JnL2xvYWRDb25maWdfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3MjQ5NSkKKysr
IFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2xvYWRDb25maWdfdW5pdHRlc3QucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDkgKzI3LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBvcwog
aW1wb3J0IHVuaXR0ZXN0CiAKLVVTRV9CVUlMREJPVF9WRVJTSU9OMiA9IG9zLmdldGVudignVVNF
X0JVSUxEQk9UX1ZFUlNJT04yJykgaXMgbm90IE5vbmUKLWlmIFVTRV9CVUlMREJPVF9WRVJTSU9O
MjoKLSAgICBpbXBvcnQgbG9hZENvbmZpZworaW1wb3J0IGxvYWRDb25maWcKIAogY2xhc3MgQ29u
ZmlnRG90SlNPTlRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBnZXRfY29uZmlnKHNl
bGYpOgpJbmRleDogVG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvc3RlcHMucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvc3RlcHMucHkJKHJl
dmlzaW9uIDI3MjQ5NSkKKysrIFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL3N0ZXBz
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCwxMCBAQAogIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIGJ1aWxkYm90LnByb2Nlc3MgaW1wb3J0IGJ1aWxk
c3RlcCwgZmFjdG9yeSwgcHJvcGVydGllcworZnJvbSBidWlsZGJvdC5wcm9jZXNzIGltcG9ydCBi
dWlsZHN0ZXAsIGZhY3RvcnksIGxvZ29ic2VydmVyLCBwcm9wZXJ0aWVzCitmcm9tIGJ1aWxkYm90
LnByb2Nlc3MucmVzdWx0cyBpbXBvcnQgUmVzdWx0cwogZnJvbSBidWlsZGJvdC5zdGVwcyBpbXBv
cnQgbWFzdGVyLCBzaGVsbCwgdHJhbnNmZXIsIHRyaWdnZXIKK2Zyb20gYnVpbGRib3Quc3RlcHMu
c291cmNlLnN2biBpbXBvcnQgU1ZOCiBmcm9tIGJ1aWxkYm90LnN0YXR1cy5idWlsZGVyIGltcG9y
dCBTVUNDRVNTLCBGQUlMVVJFLCBXQVJOSU5HUywgU0tJUFBFRCwgRVhDRVBUSU9OCiAKIGZyb20g
dHdpc3RlZC5pbnRlcm5ldCBpbXBvcnQgZGVmZXIKQEAgLTM5LDE4ICs0MSw4IEBAIFJFU1VMVFNf
V0VCS0lUX1VSTCA9ICdodHRwczovL3Jlc3VsdHMud2UKIFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkg
PSAnUkVTVUxUU19TRVJWRVJfQVBJX0tFWScKIFMzVVJMID0gJ2h0dHBzOi8vczMtdXMtd2VzdC0y
LmFtYXpvbmF3cy5jb20vJwogUzNfUkVTVUxUU19VUkwgPSAne31idWlsZC53ZWJraXQub3JnLXJl
c3VsdHMvJy5mb3JtYXQoUzNVUkwpCi1VU0VfQlVJTERCT1RfVkVSU0lPTjIgPSBvcy5nZXRlbnYo
J1VTRV9CVUlMREJPVF9WRVJTSU9OMicpIGlzIG5vdCBOb25lCiBXaXRoUHJvcGVydGllcyA9IHBy
b3BlcnRpZXMuV2l0aFByb3BlcnRpZXMKLWlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICBJ
bnRlcnBvbGF0ZSA9IHByb3BlcnRpZXMuSW50ZXJwb2xhdGUKLSAgICBmcm9tIGJ1aWxkYm90LnBy
b2Nlc3MgaW1wb3J0IGxvZ29ic2VydmVyCi0gICAgZnJvbSBidWlsZGJvdC5wcm9jZXNzLnJlc3Vs
dHMgaW1wb3J0IFJlc3VsdHMKLSAgICBmcm9tIGJ1aWxkYm90LnN0ZXBzLnNvdXJjZS5zdm4gaW1w
b3J0IFNWTgotZWxzZToKLSAgICBpbXBvcnQgY1N0cmluZ0lPCi0gICAgZnJvbSBidWlsZGJvdC5z
dGVwcy5zb3VyY2UgaW1wb3J0IFNWTgotICAgIGxvZ29ic2VydmVyID0gbGFtYmRhOiBOb25lCi0g
ICAgbG9nb2JzZXJ2ZXIuTGluZUNvbnN1bWVyTG9nT2JzZXJ2ZXIgPSB0eXBlKCdMaW5lQ29uc3Vt
ZXJMb2dPYnNlcnZlcicsIChvYmplY3QsKSwge30pCitJbnRlcnBvbGF0ZSA9IHByb3BlcnRpZXMu
SW50ZXJwb2xhdGUKIAogCiBjbGFzcyBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKGxvZ29ic2VydmVy
LkxpbmVDb25zdW1lckxvZ09ic2VydmVyKToKQEAgLTkyLDE3ICs4NCw2IEBAIGNsYXNzIFRlc3RX
aXRoRmFpbHVyZUNvdW50KHNoZWxsLlRlc3QpOgogCiAgICAgICAgIHJldHVybiBTVUNDRVNTCiAK
LSAgICBkZWYgZ2V0VGV4dChzZWxmLCBjbWQsIHJlc3VsdHMpOgotICAgICAgICAjIEZJWE1FOiBk
ZWxldGUgdGhpcyBtZXRob2QgYWZ0ZXIgc3dpdGNoaW5nIHRvIEJ1aWxkYm90IHYyCi0gICAgICAg
IHJldHVybiBzZWxmLmdldFRleHQyKGNtZCwgcmVzdWx0cykKLQotICAgIGRlZiBnZXRUZXh0Mihz
ZWxmLCBjbWQsIHJlc3VsdHMpOgotICAgICAgICAjIEZJWE1FOiBkZWxldGUgdGhpcyBtZXRob2Qg
YWZ0ZXIgc3dpdGNoaW5nIHRvIEJ1aWxkYm90IHYyCi0gICAgICAgIGlmIHJlc3VsdHMgIT0gU1VD
Q0VTUyBhbmQgc2VsZi5mYWlsZWRUZXN0Q291bnQ6Ci0gICAgICAgICAgICByZXR1cm4gW3NlbGYu
ZmFpbGVkVGVzdHNGb3JtYXRTdHJpbmcgJSAoc2VsZi5mYWlsZWRUZXN0Q291bnQsIHNlbGYuZmFp
bGVkVGVzdFBsdXJhbFN1ZmZpeCldCi0KLSAgICAgICAgcmV0dXJuIFtzZWxmLm5hbWVdCi0KICAg
ICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgc3RhdHVzID0gc2VsZi5uYW1l
CiAKQEAgLTEzMSw4ICsxMTIsNiBAQCBjbGFzcyBDb25maWd1cmVCdWlsZChidWlsZHN0ZXAuQnVp
bGRTdGVwCiAgICAgICAgIHNlbGYuYnVpbGRPbmx5ID0gYnVpbGRPbmx5CiAgICAgICAgIHNlbGYu
YWRkaXRpb25hbEFyZ3VtZW50cyA9IGFkZGl0aW9uYWxBcmd1bWVudHMKICAgICAgICAgc2VsZi5k
ZXZpY2VfbW9kZWwgPSBkZXZpY2VfbW9kZWwKLSAgICAgICAgaWYgbm90IFVTRV9CVUlMREJPVF9W
RVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYuYWRkRmFjdG9yeUFyZ3VtZW50cyhwbGF0Zm9ybT1w
bGF0Zm9ybSwgY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uLCBhcmNoaXRlY3R1cmU9YXJjaGl0
ZWN0dXJlLCBidWlsZE9ubHk9YnVpbGRPbmx5LCBhZGRpdGlvbmFsQXJndW1lbnRzPWFkZGl0aW9u
YWxBcmd1bWVudHMsIGRldmljZV9tb2RlbD1kZXZpY2VfbW9kZWwpCiAKICAgICBkZWYgc3RhcnQo
c2VsZik6CiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoInBsYXRmb3JtIiwgc2VsZi5wbGF0Zm9y
bSkKQEAgLTE1MSwxMyArMTMwLDggQEAgY2xhc3MgQ29uZmlndXJlQnVpbGQoYnVpbGRzdGVwLkJ1
aWxkU3RlcAogCiBjbGFzcyBDaGVja091dFNvdXJjZShTVk4sIG9iamVjdCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04y
OgotICAgICAgICAgICAga3dhcmdzWydyZXBvdXJsJ10gPSAnaHR0cHM6Ly9zdm4ud2Via2l0Lm9y
Zy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuaycKLSAgICAgICAgICAgIGt3YXJnc1snbW9kZSddID0g
J2luY3JlbWVudGFsJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAga3dhcmdzWydiYXNlVVJM
J10gPSAiaHR0cHM6Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC8iCi0gICAgICAg
ICAgICBrd2FyZ3NbJ2RlZmF1bHRCcmFuY2gnXSA9ICJ0cnVuayIKLSAgICAgICAgICAgIGt3YXJn
c1snbW9kZSddID0gJ3VwZGF0ZScKKyAgICAgICAga3dhcmdzWydyZXBvdXJsJ10gPSAnaHR0cHM6
Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuaycKKyAgICAgICAga3dhcmdz
Wydtb2RlJ10gPSAnaW5jcmVtZW50YWwnCiAgICAgICAgIHN1cGVyKENoZWNrT3V0U291cmNlLCBz
ZWxmKS5fX2luaXRfXygqKmt3YXJncykKIAogCkBAIC0yNzQsOSArMjQ4LDggQEAgY2xhc3MgQ29t
cGlsZVdlYktpdChzaGVsbC5Db21waWxlKToKICAgICAgICAgYXJjaGl0ZWN0dXJlID0gc2VsZi5n
ZXRQcm9wZXJ0eSgnYXJjaGl0ZWN0dXJlJykKICAgICAgICAgYWRkaXRpb25hbEFyZ3VtZW50cyA9
IHNlbGYuZ2V0UHJvcGVydHkoJ2FkZGl0aW9uYWxBcmd1bWVudHMnKQogCi0gICAgICAgIGlmIFVT
RV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYubG9nX29ic2VydmVyID0gUGFy
c2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKLSAgICAgICAgICAgIHNl
bGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCisgICAgICAgIHNl
bGYubG9nX29ic2VydmVyID0gUGFyc2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0
TGluZSkKKyAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNl
cnZlcikKIAogICAgICAgICBpZiBhZGRpdGlvbmFsQXJndW1lbnRzOgogICAgICAgICAgICAgc2Vs
Zi5zZXRDb21tYW5kKHNlbGYuY29tbWFuZCArIGFkZGl0aW9uYWxBcmd1bWVudHMpCkBAIC0zMDks
MjUgKzI4Miw2IEBAIGNsYXNzIENvbXBpbGVXZWJLaXQoc2hlbGwuQ29tcGlsZSk6CiAgICAgICAg
ICAgICBsb2cgPSB5aWVsZCBzZWxmLmFkZExvZyhsb2dOYW1lKQogICAgICAgICBsb2cuYWRkU3Rk
b3V0KG1lc3NhZ2UpCiAKLSAgICBkZWYgY3JlYXRlU3VtbWFyeShzZWxmLCBsb2cpOgotICAgICAg
ICAjIEZJWE1FOiBkZWxldGUgdGhpcyBtZXRob2QgYWZ0ZXIgc3dpdGNoaW5nIHRvIEJ1aWxkYm90
IHYyCi0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBwbGF0Zm9ybSA9IHNlbGYuZ2V0UHJvcGVydHkoJ3BsYXRmb3JtJykKLSAgICAg
ICAgaWYgcGxhdGZvcm0uc3RhcnRzd2l0aCgnbWFjJyk6Ci0gICAgICAgICAgICB3YXJuaW5ncyA9
IFtdCi0gICAgICAgICAgICBlcnJvcnMgPSBbXQotICAgICAgICAgICAgc2lvID0gY1N0cmluZ0lP
LlN0cmluZ0lPKGxvZy5nZXRUZXh0KCkpCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBzaW8ucmVh
ZGxpbmVzKCk6Ci0gICAgICAgICAgICAgICAgaWYgImFybmluZzoiIGluIGxpbmU6Ci0gICAgICAg
ICAgICAgICAgICAgIHdhcm5pbmdzLmFwcGVuZChsaW5lKQotICAgICAgICAgICAgICAgIGlmICJy
cm9yOiIgaW4gbGluZToKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChsaW5lKQot
ICAgICAgICAgICAgaWYgd2FybmluZ3M6Ci0gICAgICAgICAgICAgICAgc2VsZi5hZGRDb21wbGV0
ZUxvZygnd2FybmluZ3MnLCAiIi5qb2luKHdhcm5pbmdzKSkKLSAgICAgICAgICAgIGlmIGVycm9y
czoKLSAgICAgICAgICAgICAgICBzZWxmLmFkZENvbXBsZXRlTG9nKCdlcnJvcnMnLCAiIi5qb2lu
KGVycm9ycykpCi0KIAogY2xhc3MgQ29tcGlsZUxMSU5UQ0xvb3AoQ29tcGlsZVdlYktpdCk6CiAg
ICAgY29tbWFuZCA9IFsicGVybCIsICIuL1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjIiwgIi0tY2xv
b3AiLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpXQpAQCAtMzkyLDEwICsz
NDYsNyBAQCBjbGFzcyBVcGxvYWRCdWlsdFByb2R1Y3QodHJhbnNmZXIuRmlsZVVwCiAgICAgaGFs
dE9uRmFpbHVyZSA9IFRydWUKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0g
ICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIGt3YXJnc1snd29y
a2Vyc3JjJ10gPSBzZWxmLndvcmtlcnNyYwotICAgICAgICBlbHNlOgotICAgICAgICAgICAga3dh
cmdzWydzbGF2ZXNyYyddID0gc2VsZi53b3JrZXJzcmMKKyAgICAgICAga3dhcmdzWyd3b3JrZXJz
cmMnXSA9IHNlbGYud29ya2Vyc3JjCiAgICAgICAgIGt3YXJnc1snbWFzdGVyZGVzdCddID0gc2Vs
Zi5tYXN0ZXJkZXN0CiAgICAgICAgIGt3YXJnc1snbW9kZSddID0gMG82NDQKICAgICAgICAga3dh
cmdzWydibG9ja3NpemUnXSA9IDEwMjQgKiAyNTYKQEAgLTQxOSwxNSArMzcwLDEyIEBAIGNsYXNz
IERvd25sb2FkQnVpbHRQcm9kdWN0KHNoZWxsLlNoZWxsQ28KIAogICAgIGRlZiBzdGFydChzZWxm
KToKICAgICAgICAgaWYgJ2FwcGxlJyBpbiBzZWxmLmdldFByb3BlcnR5KCdidWlsZGVybmFtZScp
Lmxvd2VyKCk6Ci0gICAgICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAg
ICAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFsnSFRUUFNfUFJPWFknXSA9IEFQUExFX1dF
QktJVF9BV1NfUFJPWFkgICMgY3VybCBlbnYgdmFyIHRvIHVzZSBhIHByb3h5Ci0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuc2xhdmVFbnZpcm9ubWVudFsnSFRUUFNfUFJP
WFknXSA9IEFQUExFX1dFQktJVF9BV1NfUFJPWFkgICMgY3VybCBlbnYgdmFyIHRvIHVzZSBhIHBy
b3h5CisgICAgICAgICAgICBzZWxmLndvcmtlckVudmlyb25tZW50WydIVFRQU19QUk9YWSddID0g
QVBQTEVfV0VCS0lUX0FXU19QUk9YWSAgIyBjdXJsIGVudiB2YXIgdG8gdXNlIGEgcHJveHkKICAg
ICAgICAgcmV0dXJuIHNoZWxsLlNoZWxsQ29tbWFuZC5zdGFydChzZWxmKQogCiAgICAgZGVmIGV2
YWx1YXRlQ29tbWFuZChzZWxmLCBjbWQpOgogICAgICAgICByYyA9IHNoZWxsLlNoZWxsQ29tbWFu
ZC5ldmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21kKQotICAgICAgICBpZiByYyA9PSBGQUlMVVJFIGFu
ZCBVU0VfQlVJTERCT1RfVkVSU0lPTjI6CisgICAgICAgIGlmIHJjID09IEZBSUxVUkU6CiAgICAg
ICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcChbRG93bmxvYWRCdWls
dFByb2R1Y3RGcm9tTWFzdGVyKCldKQogICAgICAgICByZXR1cm4gcmMKIApAQCAtNDgwLDEwICs0
MjgsNyBAQCBjbGFzcyBSdW5KYXZhU2NyaXB0Q29yZVRlc3RzKFRlc3RXaXRoRmFpCiAgICAgICAg
IFRlc3RXaXRoRmFpbHVyZUNvdW50Ll9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKIAog
ICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgot
ICAgICAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9BUElfS0VZ
XSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgc2VsZi5zbGF2ZUVudmlyb25tZW50W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0g
b3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkpCisgICAgICAgIHNlbGYud29ya2VyRW52
aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJW
RVJfQVBJX0tFWSkKICAgICAgICAgcGxhdGZvcm0gPSBzZWxmLmdldFByb3BlcnR5KCdwbGF0Zm9y
bScpCiAgICAgICAgIGFyY2hpdGVjdHVyZSA9IHNlbGYuZ2V0UHJvcGVydHkoImFyY2hpdGVjdHVy
ZSIpCiAgICAgICAgICMgQ3VycmVudGx5IHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0IGRvZXNuJ3Qg
c3VwcG9ydCBydW4gamF2YXNjcmlwdCBjb3JlIHRlc3QgYmluYXJpZXMgbGlzdCBiZWxvdyByZW1v
dGVseQpAQCAtNTI4LDEwICs0NzMsOSBAQCBjbGFzcyBSdW5UZXN0MjYyVGVzdHMoVGVzdFdpdGhG
YWlsdXJlQ291CiAgICAgdGVzdF9zdW1tYXJ5X3JlID0gcmUuY29tcGlsZShyJ15cISBORVcgRkFJ
TCcpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJT
SU9OMjoKLSAgICAgICAgICAgIHNlbGYubG9nX29ic2VydmVyID0gUGFyc2VCeUxpbmVMb2dPYnNl
cnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKLSAgICAgICAgICAgIHNlbGYuYWRkTG9nT2JzZXJ2
ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCi0gICAgICAgICAgICBzZWxmLmZhaWxlZFRl
c3RDb3VudCA9IDAKKyAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09i
c2VydmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQorICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVy
KCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQorICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3Vu
dCA9IDAKICAgICAgICAgYXBwZW5kQ3VzdG9tQnVpbGRGbGFncyhzZWxmLCBzZWxmLmdldFByb3Bl
cnR5KCdwbGF0Zm9ybScpLCBzZWxmLmdldFByb3BlcnR5KCdmdWxsUGxhdGZvcm0nKSkKICAgICAg
ICAgcmV0dXJuIHNoZWxsLlRlc3Quc3RhcnQoc2VsZikKIApAQCAtNTQxLDE0ICs0ODUsNyBAQCBj
bGFzcyBSdW5UZXN0MjYyVGVzdHMoVGVzdFdpdGhGYWlsdXJlQ291CiAgICAgICAgICAgICBzZWxm
LmZhaWxlZFRlc3RDb3VudCArPSAxCiAKICAgICBkZWYgY291bnRGYWlsdXJlcyhzZWxmLCBjbWQp
OgotICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5mYWlsZWRUZXN0Q291bnQKLQotICAgICAgICBsb2dUZXh0ID0gY21kLmxvZ3NbJ3N0ZGlv
J10uZ2V0VGV4dCgpCi0gICAgICAgIG1hdGNoZXMgPSByZS5maW5kYWxsKHInXlwhIE5FVyBGQUlM
JywgbG9nVGV4dCwgZmxhZ3M9cmUuTVVMVElMSU5FKQotICAgICAgICBpZiBtYXRjaGVzOgotICAg
ICAgICAgICAgcmV0dXJuIGxlbihtYXRjaGVzKQotICAgICAgICByZXR1cm4gMAorICAgICAgICBy
ZXR1cm4gc2VsZi5mYWlsZWRUZXN0Q291bnQKIAogCiBjbGFzcyBSdW5XZWJLaXRUZXN0cyhzaGVs
bC5UZXN0KToKQEAgLTU4NSwxNCArNTIyLDExIEBAIGNsYXNzIFJ1bldlYktpdFRlc3RzKHNoZWxs
LlRlc3QpOgogICAgICAgICBzaGVsbC5UZXN0Ll9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJ
T04yOgotICAgICAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9B
UElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQotICAgICAgICAgICAg
c2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRw
dXRMaW5lKQotICAgICAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxv
Z19vYnNlcnZlcikKLSAgICAgICAgICAgIHNlbGYuaW5jb3JyZWN0TGF5b3V0TGluZXMgPSBbXQot
ICAgICAgICAgICAgc2VsZi50ZXN0RmFpbHVyZXMgPSB7fQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi5zbGF2ZUVudmlyb25tZW50W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3Mu
Z2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkpCisgICAgICAgIHNlbGYud29ya2VyRW52aXJv
bm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJWRVJf
QVBJX0tFWSkKKyAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2Vy
dmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQorICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdz
dGRpbycsIHNlbGYubG9nX29ic2VydmVyKQorICAgICAgICBzZWxmLmluY29ycmVjdExheW91dExp
bmVzID0gW10KKyAgICAgICAgc2VsZi50ZXN0RmFpbHVyZXMgPSB7fQogCiAgICAgICAgIHBsYXRm
b3JtID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZvcm0nKQogICAgICAgICBhcHBlbmRDdXN0b21U
ZXN0aW5nRmxhZ3Moc2VsZiwgcGxhdGZvcm0sIHNlbGYuZ2V0UHJvcGVydHkoJ2RldmljZV9tb2Rl
bCcpKQpAQCAtNjE0LDI5ICs1NDgsNiBAQCBjbGFzcyBSdW5XZWJLaXRUZXN0cyhzaGVsbC5UZXN0
KToKICAgICAgICAgICAgIHJldHVybiBtYXRjaF9vYmplY3QuZ3JvdXAoJ21lc3NhZ2UnKQogICAg
ICAgICByZXR1cm4gbGluZQogCi0gICAgZGVmIF9wYXJzZVJ1bldlYktpdFRlc3RzT3V0cHV0KHNl
bGYsIGxvZ1RleHQpOgotICAgICAgICAjIEZJWE1FOiBkZWxldGUgdGhpcyBtZXRob2QgYWZ0ZXIg
c3dpdGNoaW5nIHRvIEJ1aWxkYm90IHYyCi0gICAgICAgIGluY29ycmVjdExheW91dExpbmVzID0g
W10KLSAgICAgICAgdGVzdEZhaWx1cmVzID0ge30KLQotICAgICAgICBmb3IgbGluZSBpbiBsb2dU
ZXh0LnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgIGlmIGxpbmUuZmluZCgnRXhpdGluZyBlYXJs
eScpID49IDAgb3IgbGluZS5maW5kKCdsZWFrcyBmb3VuZCcpID49IDA6Ci0gICAgICAgICAgICAg
ICAgaW5jb3JyZWN0TGF5b3V0TGluZXMuYXBwZW5kKHNlbGYuX3N0cmlwX3B5dGhvbl9sb2dnaW5n
X3ByZWZpeChsaW5lKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZm9y
IG5hbWUsIGV4cHJlc3Npb24gaW4gc2VsZi5leHByZXNzaW9uczoKLSAgICAgICAgICAgICAgICBt
YXRjaCA9IGV4cHJlc3Npb24uc2VhcmNoKGxpbmUpCi0KLSAgICAgICAgICAgICAgICBpZiBtYXRj
aDoKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWx1cmVzW25hbWVdID0gdGVzdEZhaWx1cmVz
LmdldChuYW1lLCAwKSArIGludChtYXRjaC5ncm91cCgxKSkKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWsKLQotICAgICAgICAgICAgICAgICMgRklYTUU6IFBhcnNlIGZpbGUgbmFtZXMgYW5kIHB1
dCB0aGVtIGluIHJlc3VsdHMKLQotICAgICAgICBmb3IgbmFtZSBpbiB0ZXN0RmFpbHVyZXM6Ci0g
ICAgICAgICAgICBpbmNvcnJlY3RMYXlvdXRMaW5lcy5hcHBlbmQoc3RyKHRlc3RGYWlsdXJlc1tu
YW1lXSkgKyAnICcgKyBuYW1lKQotCi0gICAgICAgIHNlbGYuaW5jb3JyZWN0TGF5b3V0TGluZXMg
PSBpbmNvcnJlY3RMYXlvdXRMaW5lcwotCiAgICAgZGVmIHBhcnNlT3V0cHV0TGluZShzZWxmLCBs
aW5lKToKICAgICAgICAgaWYgcidFeGl0aW5nIGVhcmx5JyBpbiBsaW5lIG9yIHInbGVha3MgZm91
bmQnIGluIGxpbmU6CiAgICAgICAgICAgICBzZWxmLmluY29ycmVjdExheW91dExpbmVzLmFwcGVu
ZChzZWxmLl9zdHJpcF9weXRob25fbG9nZ2luZ19wcmVmaXgobGluZSkpCkBAIC02NTEsMTggKzU2
Miw4IEBAIGNsYXNzIFJ1bldlYktpdFRlc3RzKHNoZWxsLlRlc3QpOgogICAgICAgICBmb3IgbmFt
ZSwgcmVzdWx0IGluIHNlbGYudGVzdEZhaWx1cmVzLml0ZW1zKCk6CiAgICAgICAgICAgICBzZWxm
LmluY29ycmVjdExheW91dExpbmVzLmFwcGVuZChzdHIocmVzdWx0KSArICcgJyArIG5hbWUpCiAK
LSAgICBkZWYgY29tbWFuZENvbXBsZXRlKHNlbGYsIGNtZCk6Ci0gICAgICAgICMgRklYTUU6IGRl
bGV0ZSB0aGlzIG1ldGhvZCBhZnRlciBzd2l0Y2hpbmcgdG8gQnVpbGRib3QgdjIKLSAgICAgICAg
c2hlbGwuVGVzdC5jb21tYW5kQ29tcGxldGUoc2VsZiwgY21kKQotCi0gICAgICAgIGlmIG5vdCBV
U0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBsb2dUZXh0ID0gY21kLmxvZ3NbJ3N0
ZGlvJ10uZ2V0VGV4dCgpCi0gICAgICAgICAgICBzZWxmLl9wYXJzZVJ1bldlYktpdFRlc3RzT3V0
cHV0KGxvZ1RleHQpCi0KICAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6Ci0gICAg
ICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYucHJvY2Vzc1Rl
c3RGYWlsdXJlcygpCi0KKyAgICAgICAgc2VsZi5wcm9jZXNzVGVzdEZhaWx1cmVzKCkKICAgICAg
ICAgcmVzdWx0ID0gU1VDQ0VTUwogCiAgICAgICAgIGlmIHNlbGYuaW5jb3JyZWN0TGF5b3V0TGlu
ZXM6CkBAIC02OTUsMTcgKzU5Niw2IEBAIGNsYXNzIFJ1bldlYktpdFRlc3RzKHNoZWxsLlRlc3Qp
OgogICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6IHN0YXR1c30KICAgICAgICAgcmV0dXJuIHN1
cGVyKFJ1bldlYktpdFRlc3RzLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIAotICAgIGRlZiBn
ZXRUZXh0KHNlbGYsIGNtZCwgcmVzdWx0cyk6Ci0gICAgICAgICMgRklYTUU6IGRlbGV0ZSB0aGlz
IG1ldGhvZCBhZnRlciBzd2l0Y2hpbmcgdG8gQnVpbGRib3QgdjIKLSAgICAgICAgcmV0dXJuIHNl
bGYuZ2V0VGV4dDIoY21kLCByZXN1bHRzKQotCi0gICAgZGVmIGdldFRleHQyKHNlbGYsIGNtZCwg
cmVzdWx0cyk6Ci0gICAgICAgICMgRklYTUU6IGRlbGV0ZSB0aGlzIG1ldGhvZCBhZnRlciBzd2l0
Y2hpbmcgdG8gQnVpbGRib3QgdjIKLSAgICAgICAgaWYgcmVzdWx0cyAhPSBTVUNDRVNTIGFuZCBz
ZWxmLmluY29ycmVjdExheW91dExpbmVzOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuaW5jb3Jy
ZWN0TGF5b3V0TGluZXMKLQotICAgICAgICByZXR1cm4gW3NlbGYubmFtZV0KLQogCiBjbGFzcyBS
dW5EYXNoYm9hcmRUZXN0cyhSdW5XZWJLaXRUZXN0cyk6CiAgICAgbmFtZSA9ICJkYXNoYm9hcmQt
dGVzdHMiCkBAIC03NDUsMjYgKzYzNSwxNSBAQCBjbGFzcyBSdW5BUElUZXN0cyhUZXN0V2l0aEZh
aWx1cmVDb3VudCk6CiAgICAgICAgIFRlc3RXaXRoRmFpbHVyZUNvdW50Ll9faW5pdF9fKHNlbGYs
ICphcmdzLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYgVVNF
X0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtS
RVNVTFRTX1NFUlZFUl9BUElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZ
KQotICAgICAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVy
KHNlbGYucGFyc2VPdXRwdXRMaW5lKQotICAgICAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcign
c3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikKLSAgICAgICAgICAgIHNlbGYuZmFpbGVkVGVzdENv
dW50ID0gMAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5zbGF2ZUVudmlyb25tZW50
W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9L
RVkpCisgICAgICAgIHNlbGYud29ya2VyRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tF
WV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJWRVJfQVBJX0tFWSkKKyAgICAgICAgc2VsZi5sb2df
b2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQor
ICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQor
ICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKICAgICAgICAgYXBwZW5kQ3VzdG9tVGVz
dGluZ0ZsYWdzKHNlbGYsIHNlbGYuZ2V0UHJvcGVydHkoJ3BsYXRmb3JtJyksIHNlbGYuZ2V0UHJv
cGVydHkoJ2RldmljZV9tb2RlbCcpKQogICAgICAgICByZXR1cm4gc2hlbGwuVGVzdC5zdGFydChz
ZWxmKQogCiAgICAgZGVmIGNvdW50RmFpbHVyZXMoc2VsZiwgY21kKToKLSAgICAgICAgaWYgVVNF
X0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmFpbGVkVGVzdENv
dW50Ci0KLSAgICAgICAgbG9nX3RleHQgPSBjbWQubG9nc1snc3RkaW8nXS5nZXRUZXh0KCkKLQot
ICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1JhbiAoP1A8cmFuPlxkKykgdGVzdHMgb2YgKD9Q
PHRvdGFsPlxkKykgd2l0aCAoP1A8cGFzc2VkPlxkKykgc3VjY2Vzc2Z1bCcsIGxvZ190ZXh0KQot
ICAgICAgICBpZiBub3QgbWF0Y2g6Ci0gICAgICAgICAgICByZXR1cm4gLTEKLSAgICAgICAgcmV0
dXJuIGludChtYXRjaC5ncm91cCgncmFuJykpIC0gaW50KG1hdGNoLmdyb3VwKCdwYXNzZWQnKSkK
KyAgICAgICAgcmV0dXJuIHNlbGYuZmFpbGVkVGVzdENvdW50CiAKICAgICBkZWYgcGFyc2VPdXRw
dXRMaW5lKHNlbGYsIGxpbmUpOgogICAgICAgICBtYXRjaCA9IHNlbGYudGVzdF9zdW1tYXJ5X3Jl
Lm1hdGNoKGxpbmUpCkBAIC03NzYsMTAgKzY1NSw5IEBAIGNsYXNzIFJ1blB5dGhvblRlc3RzKFRl
c3RXaXRoRmFpbHVyZUNvdW4KICAgICB0ZXN0X3N1bW1hcnlfcmUgPSByZS5jb21waWxlKHInXkZB
SUxFRCBcKCg/UDxjb3VudHM+W14pXSspXCknKSAgIyBlLmcuOiBGQUlMRUQgKGZhaWx1cmVzPTIs
IGVycm9ycz0xKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBpZiBVU0VfQlVJTERC
T1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNlQnlMaW5l
TG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExpbmUpCi0gICAgICAgICAgICBzZWxmLmFkZExv
Z09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQotICAgICAgICAgICAgc2VsZi5m
YWlsZWRUZXN0Q291bnQgPSAwCisgICAgICAgIHNlbGYubG9nX29ic2VydmVyID0gUGFyc2VCeUxp
bmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKKyAgICAgICAgc2VsZi5hZGRMb2dP
YnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikKKyAgICAgICAgc2VsZi5mYWlsZWRU
ZXN0Q291bnQgPSAwCiAgICAgICAgIHBsYXRmb3JtID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZv
cm0nKQogICAgICAgICAjIFB5dGhvbiB0ZXN0cyBhcmUgZmxha3kgb24gdGhlIEdUSyBidWlsZGVy
cywgcnVubmluZyB0aGVtIHNlcmlhbGx5CiAgICAgICAgICMgaGVscHMgYW5kIGRvZXMgbm90IHNp
Z25pZmljYW50bHkgcHJvbG9uZyB0aGUgY3ljbGUgdGltZS4KQEAgLTc5NywxOCArNjc1LDcgQEAg
Y2xhc3MgUnVuUHl0aG9uVGVzdHMoVGVzdFdpdGhGYWlsdXJlQ291bgogICAgICAgICAgICAgc2Vs
Zi5mYWlsZWRUZXN0Q291bnQgPSBzdW0oaW50KGNvbXBvbmVudC5zcGxpdCgnPScpWzFdKSBmb3Ig
Y29tcG9uZW50IGluIG1hdGNoLmdyb3VwKCdjb3VudHMnKS5zcGxpdCgnLCAnKSkKIAogICAgIGRl
ZiBjb3VudEZhaWx1cmVzKHNlbGYsIGNtZCk6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJT
SU9OMjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAotCi0gICAgICAg
IGxvZ1RleHQgPSBjbWQubG9nc1snc3RkaW8nXS5nZXRUZXh0KCkKLSAgICAgICAgIyBXZSdyZSBs
b29raW5nIGZvciB0aGUgbGluZSB0aGF0IGxvb2tzIGxpa2UgdGhpczogRkFJTEVEIChmYWlsdXJl
cz0yLCBlcnJvcnM9MSkKLSAgICAgICAgcmVnZXggPSByZS5jb21waWxlKHInXkZBSUxFRCBcKCg/
UDxjb3VudHM+W14pXSspXCknKQotICAgICAgICBmb3IgbGluZSBpbiBsb2dUZXh0LnNwbGl0bGlu
ZXMoKToKLSAgICAgICAgICAgIG1hdGNoID0gcmVnZXgubWF0Y2gobGluZSkKLSAgICAgICAgICAg
IGlmIG5vdCBtYXRjaDoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcmV0
dXJuIHN1bShpbnQoY29tcG9uZW50LnNwbGl0KCc9JylbMV0pIGZvciBjb21wb25lbnQgaW4gbWF0
Y2guZ3JvdXAoJ2NvdW50cycpLnNwbGl0KCcsICcpKQotICAgICAgICByZXR1cm4gMAorICAgICAg
ICByZXR1cm4gc2VsZi5mYWlsZWRUZXN0Q291bnQKIAogCiBjbGFzcyBSdW5XZWJLaXRQeVRlc3Rz
KFJ1blB5dGhvblRlc3RzKToKQEAgLTgzMiwxMCArNjk5LDcgQEAgY2xhc3MgUnVuV2ViS2l0UHlU
ZXN0cyhSdW5QeXRob25UZXN0cyk6CiAgICAgICAgIFJ1blB5dGhvblRlc3RzLl9faW5pdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYg
VVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVu
dFtSRVNVTFRTX1NFUlZFUl9BUElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElf
S0VZKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5zbGF2ZUVudmlyb25tZW50W1JF
U1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkp
CisgICAgICAgIHNlbGYud29ya2VyRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0g
PSBvcy5nZXRlbnYoUkVTVUxUU19TRVJWRVJfQVBJX0tFWSkKICAgICAgICAgcmV0dXJuIFJ1blB5
dGhvblRlc3RzLnN0YXJ0KHNlbGYpCiAKIApAQCAtODYyLDEwICs3MjYsOSBAQCBjbGFzcyBSdW5Q
ZXJsVGVzdHMoVGVzdFdpdGhGYWlsdXJlQ291bnQpCiAgICAgdGVzdF9zdW1tYXJ5X3JlID0gcmUu
Y29tcGlsZShyJ15GYWlsZWQgXGQrL1xkKyB0ZXN0IHByb2dyYW1zXC4gKD9QPGNvdW50PlxkKykv
XGQrIHN1YnRlc3RzIGZhaWxlZFwuJykgICMgZS5nLjogRmFpbGVkIDIvMTkgdGVzdCBwcm9ncmFt
cy4gNS8zNjMgc3VidGVzdHMgZmFpbGVkLgogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAg
ICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLmxvZ19vYnNlcnZl
ciA9IFBhcnNlQnlMaW5lTG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExpbmUpCi0gICAgICAg
ICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQotICAg
ICAgICAgICAgc2VsZi5mYWlsZWRUZXN0Q291bnQgPSAwCisgICAgICAgIHNlbGYubG9nX29ic2Vy
dmVyID0gUGFyc2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKKyAgICAg
ICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikKKyAgICAg
ICAgc2VsZi5mYWlsZWRUZXN0Q291bnQgPSAwCiAgICAgICAgIHJldHVybiBzaGVsbC5UZXN0LnN0
YXJ0KHNlbGYpCiAKICAgICBkZWYgcGFyc2VPdXRwdXRMaW5lKHNlbGYsIGxpbmUpOgpAQCAtODc0
LDE4ICs3MzcsNyBAQCBjbGFzcyBSdW5QZXJsVGVzdHMoVGVzdFdpdGhGYWlsdXJlQ291bnQpCiAg
ICAgICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IGludChtYXRjaC5ncm91cCgnY291bnQn
KSkKIAogICAgIGRlZiBjb3VudEZhaWx1cmVzKHNlbGYsIGNtZCk6Ci0gICAgICAgIGlmIFVTRV9C
VUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3Vu
dAotCi0gICAgICAgIGxvZ1RleHQgPSBjbWQubG9nc1snc3RkaW8nXS5nZXRUZXh0KCkKLSAgICAg
ICAgIyBXZSdyZSBsb29raW5nIGZvciB0aGUgbGluZSB0aGF0IGxvb2tzIGxpa2UgdGhpczogRmFp
bGVkIDIvMTkgdGVzdCBwcm9ncmFtcy4gNS8zNjMgc3VidGVzdHMgZmFpbGVkLgotICAgICAgICBy
ZWdleCA9IHJlLmNvbXBpbGUocideRmFpbGVkIFxkKy9cZCsgdGVzdCBwcm9ncmFtc1wuICg/UDxj
b3VudD5cZCspL1xkKyBzdWJ0ZXN0cyBmYWlsZWRcLicpCi0gICAgICAgIGZvciBsaW5lIGluIGxv
Z1RleHQuc3BsaXRsaW5lcygpOgotICAgICAgICAgICAgbWF0Y2ggPSByZWdleC5tYXRjaChsaW5l
KQotICAgICAgICAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICByZXR1cm4gaW50KG1hdGNoLmdyb3VwKCdjb3VudCcpKQotICAgICAgICByZXR1
cm4gMAorICAgICAgICByZXR1cm4gc2VsZi5mYWlsZWRUZXN0Q291bnQKIAogCiBjbGFzcyBSdW5M
TElOVENMb29wVGVzdHMoVGVzdFdpdGhGYWlsdXJlQ291bnQpOgpAQCAtOTE0LDEzICs3NjYsMTAg
QEAgY2xhc3MgUnVuTExJTlRDTG9vcFRlc3RzKFRlc3RXaXRoRmFpbHVyZQogICAgICAgICBUZXN0
V2l0aEZhaWx1cmVDb3VudC5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCiAKICAgICBk
ZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAg
ICAgICAgIHNlbGYud29ya2VyRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBv
cy5nZXRlbnYoUkVTVUxUU19TRVJWRVJfQVBJX0tFWSkKLSAgICAgICAgICAgIHNlbGYubG9nX29i
c2VydmVyID0gUGFyc2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKLSAg
ICAgICAgICAgIHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIp
Ci0gICAgICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuc2xhdmVFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9BUElfS0VZXSA9
IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQorICAgICAgICBzZWxmLndvcmtlckVu
dmlyb25tZW50W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VS
VkVSX0FQSV9LRVkpCisgICAgICAgIHNlbGYubG9nX29ic2VydmVyID0gUGFyc2VCeUxpbmVMb2dP
YnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKKyAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZl
cignc3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikKKyAgICAgICAgc2VsZi5mYWlsZWRUZXN0Q291
bnQgPSAwCiAgICAgICAgIHJldHVybiBzaGVsbC5UZXN0LnN0YXJ0KHNlbGYpCiAKICAgICBkZWYg
cGFyc2VPdXRwdXRMaW5lKHNlbGYsIGxpbmUpOgpAQCAtOTI5LDE4ICs3NzgsNyBAQCBjbGFzcyBS
dW5MTElOVENMb29wVGVzdHMoVGVzdFdpdGhGYWlsdXJlCiAgICAgICAgICAgICBzZWxmLmZhaWxl
ZFRlc3RDb3VudCA9IGludChtYXRjaC5ncm91cCgnY291bnQnKSkKIAogICAgIGRlZiBjb3VudEZh
aWx1cmVzKHNlbGYsIGNtZCk6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAg
ICAgICAgICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAotCi0gICAgICAgIGxvZ1RleHQg
PSBjbWQubG9nc1snc3RkaW8nXS5nZXRUZXh0KCkKLSAgICAgICAgIyBXZSdyZSBsb29raW5nIGZv
ciB0aGUgbGluZSB0aGF0IGxvb2tzIGxpa2UgdGhpczogMCByZWdyZXNzaW9ucyBmb3VuZC4KLSAg
ICAgICAgcmVnZXggPSByZS5jb21waWxlKHInXHMqKD9QPGNvdW50PlxkKykgcmVncmVzc2lvbnM/
IGZvdW5kLicpCi0gICAgICAgIGZvciBsaW5lIGluIGxvZ1RleHQuc3BsaXRsaW5lcygpOgotICAg
ICAgICAgICAgbWF0Y2ggPSByZWdleC5tYXRjaChsaW5lKQotICAgICAgICAgICAgaWYgbm90IG1h
dGNoOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICByZXR1cm4gaW50KG1h
dGNoLmdyb3VwKCdjb3VudCcpKQotICAgICAgICByZXR1cm4gMAorICAgICAgICByZXR1cm4gc2Vs
Zi5mYWlsZWRUZXN0Q291bnQKIAogCiBjbGFzcyBSdW4zMmJpdEpTQ1Rlc3RzKFRlc3RXaXRoRmFp
bHVyZUNvdW50KToKQEAgLTk2OSwxMyArODA3LDEwIEBAIGNsYXNzIFJ1bjMyYml0SlNDVGVzdHMo
VGVzdFdpdGhGYWlsdXJlQ28KICAgICAgICAgVGVzdFdpdGhGYWlsdXJlQ291bnQuX19pbml0X18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBp
ZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLndvcmtlckVudmlyb25t
ZW50W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQ
SV9LRVkpCi0gICAgICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNlQnlMaW5lTG9nT2Jz
ZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExpbmUpCi0gICAgICAgICAgICBzZWxmLmFkZExvZ09ic2Vy
dmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQotICAgICAgICAgICAgc2VsZi5mYWlsZWRU
ZXN0Q291bnQgPSAwCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnNsYXZlRW52aXJv
bm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJWRVJf
QVBJX0tFWSkKKyAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9B
UElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQorICAgICAgICBzZWxm
LmxvZ19vYnNlcnZlciA9IFBhcnNlQnlMaW5lTG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExp
bmUpCisgICAgICAgIHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2
ZXIpCisgICAgICAgIHNlbGYuZmFpbGVkVGVzdENvdW50ID0gMAogICAgICAgICByZXR1cm4gc2hl
bGwuVGVzdC5zdGFydChzZWxmKQogCiAgICAgZGVmIHBhcnNlT3V0cHV0TGluZShzZWxmLCBsaW5l
KToKQEAgLTk4NCwxOCArODE5LDcgQEAgY2xhc3MgUnVuMzJiaXRKU0NUZXN0cyhUZXN0V2l0aEZh
aWx1cmVDbwogICAgICAgICAgICAgc2VsZi5mYWlsZWRUZXN0Q291bnQgPSBpbnQobWF0Y2guZ3Jv
dXAoJ2NvdW50JykpCiAKICAgICBkZWYgY291bnRGYWlsdXJlcyhzZWxmLCBjbWQpOgotICAgICAg
ICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5mYWls
ZWRUZXN0Q291bnQKLQotICAgICAgICBsb2dUZXh0ID0gY21kLmxvZ3NbJ3N0ZGlvJ10uZ2V0VGV4
dCgpCi0gICAgICAgICMgV2UncmUgbG9va2luZyBmb3IgdGhlIGxpbmUgdGhhdCBsb29rcyBsaWtl
IHRoaXM6IDAgZmFpbHVyZXMgZm91bmQuCi0gICAgICAgIHJlZ2V4ID0gcmUuY29tcGlsZShyJ1xz
Kig/UDxjb3VudD5cZCspIGZhaWx1cmVzPyBmb3VuZC4nKQotICAgICAgICBmb3IgbGluZSBpbiBs
b2dUZXh0LnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgIG1hdGNoID0gcmVnZXgubWF0Y2gobGlu
ZSkKLSAgICAgICAgICAgIGlmIG5vdCBtYXRjaDoKLSAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgcmV0dXJuIGludChtYXRjaC5ncm91cCgnY291bnQnKSkKLSAgICAgICAgcmV0
dXJuIDAKKyAgICAgICAgcmV0dXJuIHNlbGYuZmFpbGVkVGVzdENvdW50CiAKIAogY2xhc3MgUnVu
QmluZGluZ3NUZXN0cyhzaGVsbC5UZXN0KToKQEAgLTEyNDMsMTAgKzEwNjcsNyBAQCBjbGFzcyBV
cGxvYWRUZXN0UmVzdWx0cyh0cmFuc2Zlci5GaWxlVXBsCiAgICAgbWFzdGVyZGVzdCA9IFdpdGhQ
cm9wZXJ0aWVzKCJwdWJsaWNfaHRtbC9yZXN1bHRzLyUoYnVpbGRlcm5hbWUpcy9yJShnb3RfcmV2
aXNpb24pcyAoJShidWlsZG51bWJlcilzKS56aXAiKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
ICoqa3dhcmdzKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAg
ICAga3dhcmdzWyd3b3JrZXJzcmMnXSA9IHNlbGYud29ya2Vyc3JjCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBrd2FyZ3NbJ3NsYXZlc3JjJ10gPSBzZWxmLndvcmtlcnNyYworICAgICAgICBr
d2FyZ3NbJ3dvcmtlcnNyYyddID0gc2VsZi53b3JrZXJzcmMKICAgICAgICAga3dhcmdzWydtYXN0
ZXJkZXN0J10gPSBzZWxmLm1hc3RlcmRlc3QKICAgICAgICAga3dhcmdzWydtb2RlJ10gPSAwbzY0
NAogICAgICAgICBrd2FyZ3NbJ2Jsb2Nrc2l6ZSddID0gMTAyNCAqIDI1NgpAQCAtMTI2MSwxOCAr
MTA4MiwxNSBAQCBjbGFzcyBUcmFuc2ZlclRvUzMobWFzdGVyLk1hc3RlclNoZWxsQ29tCiAgICAg
bWluaWZpZWRBcmNoaXZlID0gV2l0aFByb3BlcnRpZXMoImFyY2hpdmVzLyUoZnVsbFBsYXRmb3Jt
KXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcy9taW5pZmllZC0lKGdvdF9yZXZp
c2lvbilzLnppcCIpCiAgICAgaWRlbnRpZmllciA9IFdpdGhQcm9wZXJ0aWVzKCIlKGZ1bGxQbGF0
Zm9ybSlzLSUoYXJjaGl0ZWN0dXJlKXMtJShjb25maWd1cmF0aW9uKXMiKQogICAgIHJldmlzaW9u
ID0gV2l0aFByb3BlcnRpZXMoIiUoZ290X3JldmlzaW9uKXMiKQotICAgIGNvbW1hbmQgPSBbInB5
dGhvbiIsICIuLi9TaGFyZWQvdHJhbnNmZXItYXJjaGl2ZS10by1zMyIsICItLXJldmlzaW9uIiwg
cmV2aXNpb24sICItLWlkZW50aWZpZXIiLCBpZGVudGlmaWVyLCAiLS1hcmNoaXZlIiwgYXJjaGl2
ZV0KKyAgICBjb21tYW5kID0gWyJweXRob24zIiwgIi4uL1NoYXJlZC90cmFuc2Zlci1hcmNoaXZl
LXRvLXMzIiwgIi0tcmV2aXNpb24iLCByZXZpc2lvbiwgIi0taWRlbnRpZmllciIsIGlkZW50aWZp
ZXIsICItLWFyY2hpdmUiLCBhcmNoaXZlXQogICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBrd2FyZ3NbJ2NvbW1hbmQn
XSA9IHNlbGYuY29tbWFuZAotICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAg
ICAgICAgICBrd2FyZ3NbJ2xvZ0Vudmlyb24nXSA9IEZhbHNlCisgICAgICAgIGt3YXJnc1snbG9n
RW52aXJvbiddID0gRmFsc2UKICAgICAgICAgbWFzdGVyLk1hc3RlclNoZWxsQ29tbWFuZC5fX2lu
aXRfXyhzZWxmLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYg
VVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2VsZi5jb21tYW5kWzBdID0gJ3B5
dGhvbjMnCiAgICAgICAgIHJldHVybiBtYXN0ZXIuTWFzdGVyU2hlbGxDb21tYW5kLnN0YXJ0KHNl
bGYpCiAKICAgICBkZWYgZmluaXNoZWQoc2VsZiwgcmVzdWx0KToKQEAgLTEyODUsMzMgKzExMDMs
MTkgQEAgY2xhc3MgVHJhbnNmZXJUb1MzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbQogY2xhc3MgRXh0
cmFjdFRlc3RSZXN1bHRzKG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1hbmQpOgogICAgIG5hbWUgPSAn
ZXh0cmFjdC10ZXN0LXJlc3VsdHMnCiAgICAgZGVzY3JpcHRpb25Eb25lID0gWydFeHRyYWN0ZWQg
dGVzdCByZXN1bHRzJ10KLSAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgIHJl
bmRlcmFibGVzID0gWydyZXN1bHREaXJlY3RvcnknLCAnemlwRmlsZSddCisgICAgcmVuZGVyYWJs
ZXMgPSBbJ3Jlc3VsdERpcmVjdG9yeScsICd6aXBGaWxlJ10KIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIGt3YXJnc1snY29tbWFuZCddID0gIiIKLSAgICAgICAg
aWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAga3dhcmdzWydsb2dFbnZpcm9u
J10gPSBGYWxzZQotICAgICAgICAgICAgc2VsZi56aXBGaWxlID0gSW50ZXJwb2xhdGUoJ3B1Ymxp
Y19odG1sL3Jlc3VsdHMvJShwcm9wOmJ1aWxkZXJuYW1lKXMvciUocHJvcDpnb3RfcmV2aXNpb24p
cyAoJShwcm9wOmJ1aWxkbnVtYmVyKXMpLnppcCcpCi0gICAgICAgICAgICBzZWxmLnJlc3VsdERp
cmVjdG9yeSA9IEludGVycG9sYXRlKCdwdWJsaWNfaHRtbC9yZXN1bHRzLyUocHJvcDpidWlsZGVy
bmFtZSlzL3IlKHByb3A6Z290X3JldmlzaW9uKXMgKCUocHJvcDpidWlsZG51bWJlcilzKScpCi0g
ICAgICAgICAgICBrd2FyZ3NbJ2NvbW1hbmQnXSA9IFsnZWNobycsICdVbnppcHBpbmcgaW4gYmFj
a2dyb3VuZCwgaXQgbWlnaHQgdGFrZSBhIHdoaWxlLiddCisgICAgICAgIGt3YXJnc1snbG9nRW52
aXJvbiddID0gRmFsc2UKKyAgICAgICAgc2VsZi56aXBGaWxlID0gSW50ZXJwb2xhdGUoJ3B1Ymxp
Y19odG1sL3Jlc3VsdHMvJShwcm9wOmJ1aWxkZXJuYW1lKXMvciUocHJvcDpnb3RfcmV2aXNpb24p
cyAoJShwcm9wOmJ1aWxkbnVtYmVyKXMpLnppcCcpCisgICAgICAgIHNlbGYucmVzdWx0RGlyZWN0
b3J5ID0gSW50ZXJwb2xhdGUoJ3B1YmxpY19odG1sL3Jlc3VsdHMvJShwcm9wOmJ1aWxkZXJuYW1l
KXMvciUocHJvcDpnb3RfcmV2aXNpb24pcyAoJShwcm9wOmJ1aWxkbnVtYmVyKXMpJykKKyAgICAg
ICAga3dhcmdzWydjb21tYW5kJ10gPSBbJ2VjaG8nLCAnVW56aXBwaW5nIGluIGJhY2tncm91bmQs
IGl0IG1pZ2h0IHRha2UgYSB3aGlsZS4nXQogICAgICAgICBtYXN0ZXIuTWFzdGVyU2hlbGxDb21t
YW5kLl9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQogCiAgICAgZGVmIHJlc3VsdERpcmVjdG9yeVVS
TChzZWxmKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAg
cGF0aCA9IHNlbGYucmVzdWx0RGlyZWN0b3J5LnJlcGxhY2UoJ3B1YmxpY19odG1sL3Jlc3VsdHMv
JywgJycpICsgJy8nCi0gICAgICAgICAgICByZXR1cm4gJ3t9e30nLmZvcm1hdChTM19SRVNVTFRT
X1VSTCwgcGF0aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmJ1aWxk
LmdldFByb3BlcnRpZXMoKS5yZW5kZXIoc2VsZi5yZXN1bHREaXJlY3RvcnkpLnJlcGxhY2UoJ3B1
YmxpY19odG1sLycsICcvJykgKyAnLycKLQotICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAg
aWYgbm90IFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYuemlwRmlsZSA9
IFdpdGhQcm9wZXJ0aWVzKCJwdWJsaWNfaHRtbC9yZXN1bHRzLyUoYnVpbGRlcm5hbWUpcy9yJShn
b3RfcmV2aXNpb24pcyAoJShidWlsZG51bWJlcilzKS56aXAiKQotICAgICAgICAgICAgc2VsZi5y
ZXN1bHREaXJlY3RvcnkgPSBXaXRoUHJvcGVydGllcygicHVibGljX2h0bWwvcmVzdWx0cy8lKGJ1
aWxkZXJuYW1lKXMvciUoZ290X3JldmlzaW9uKXMgKCUoYnVpbGRudW1iZXIpcykiKQotICAgICAg
ICAgICAgc2VsZi56aXBGaWxlID0gc2VsZi5idWlsZC5nZXRQcm9wZXJ0aWVzKCkucmVuZGVyKHNl
bGYuemlwRmlsZSkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0RGlyZWN0b3J5ID0gc2VsZi5idWls
ZC5nZXRQcm9wZXJ0aWVzKCkucmVuZGVyKHNlbGYucmVzdWx0RGlyZWN0b3J5KQotICAgICAgICAg
ICAgc2VsZi5jb21tYW5kID0gWyd1bnppcCcsICctcScsICctbycsIHNlbGYuemlwRmlsZSwgJy1k
Jywgc2VsZi5yZXN1bHREaXJlY3RvcnldCi0gICAgICAgIHJldHVybiBtYXN0ZXIuTWFzdGVyU2hl
bGxDb21tYW5kLnN0YXJ0KHNlbGYpCisgICAgICAgIHBhdGggPSBzZWxmLnJlc3VsdERpcmVjdG9y
eS5yZXBsYWNlKCdwdWJsaWNfaHRtbC9yZXN1bHRzLycsICcnKSArICcvJworICAgICAgICByZXR1
cm4gJ3t9e30nLmZvcm1hdChTM19SRVNVTFRTX1VSTCwgcGF0aCkKIAogICAgIGRlZiBhZGRDdXN0
b21VUkxzKHNlbGYpOgogICAgICAgICBzZWxmLmFkZFVSTCgidmlldyBsYXlvdXQgdGVzdCByZXN1
bHRzIiwgc2VsZi5yZXN1bHREaXJlY3RvcnlVUkwoKSArICJyZXN1bHRzLmh0bWwiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419857</attachid>
            <date>2021-02-10 09:32:29 -0800</date>
            <delta_ts>2021-02-10 13:06:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221558-20210210123228.patch</filename>
            <type>text/plain</type>
            <size>34571</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MjY1OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDIxLTAyLTEwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gUmVtb3ZlIGNvZGUgc3BlY2lmaWMgdG8g
b2xkIEJ1aWxkYm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE1NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2J1aWxkYm90LnRhYzoKKyAgICAgICAg
KiBDSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9sb2FkQ29uZmlnLnB5OgorICAgICAgICAqIENJ
U3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2xvYWRDb25maWdfdW5pdHRlc3QucHk6CisgICAgICAg
ICogQ0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvbWFzdGVyLmNmZzogUmVtb3ZlZC4KKyAgICAg
ICAgKiBDSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9zdGVwcy5weToKKyAgICAgICAgKFRlc3RX
aXRoRmFpbHVyZUNvdW50LmdldFRleHQpOiBEZWxldGVkLgorICAgICAgICAoVGVzdFdpdGhGYWls
dXJlQ291bnQuZ2V0VGV4dDIpOiBEZWxldGVkLgorICAgICAgICAoQ29tcGlsZVdlYktpdC5jcmVh
dGVTdW1tYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFJ1bldlYktpdFRlc3RzLl9wYXJzZVJ1bldl
YktpdFRlc3RzT3V0cHV0KTogRGVsZXRlZC4KKyAgICAgICAgKFJ1bldlYktpdFRlc3RzLmNvbW1h
bmRDb21wbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChSdW5XZWJLaXRUZXN0cy5nZXRUZXh0KTog
RGVsZXRlZC4KKyAgICAgICAgKFJ1bldlYktpdFRlc3RzLmdldFRleHQyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEV4dHJhY3RUZXN0UmVzdWx0cy5zdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKyAgICAgICAgKiBDSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzX3VuaXR0ZXN0LnB5OgorCiAyMDIxLTAyLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBBZG9wdCBQVUlDUXVpY2tib2Fy
ZENvbnRyb2xsZXIgZm9yIHRleHQgaW5wdXQKSW5kZXg6IFRvb2xzL0NJU3VwcG9ydC9idWlsZC13
ZWJraXQtb3JnL2J1aWxkYm90LnRhYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DSVN1cHBvcnQvYnVp
bGQtd2Via2l0LW9yZy9idWlsZGJvdC50YWMJKHJldmlzaW9uIDI3MjY1OSkKKysrIFRvb2xzL0NJ
U3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2J1aWxkYm90LnRhYwkod29ya2luZyBjb3B5KQpAQCAt
MSwxNSArMSwxMCBAQAogaW1wb3J0IG9zCiAKLVVTRV9CVUlMREJPVF9WRVJTSU9OMiA9IG9zLmdl
dGVudignVVNFX0JVSUxEQk9UX1ZFUlNJT04yJykgaXMgbm90IE5vbmUKLQogZnJvbSB0d2lzdGVk
LmFwcGxpY2F0aW9uIGltcG9ydCBzZXJ2aWNlCiBmcm9tIGJ1aWxkYm90Lm1hc3RlciBpbXBvcnQg
QnVpbGRNYXN0ZXIKIAogYmFzZWRpciA9ICcuJwotaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgot
ICAgIGNvbmZpZ2ZpbGUgPSByJ21hc3Rlcl9idWlsZGJvdDIuY2ZnJwotZWxzZToKLSAgICBjb25m
aWdmaWxlID0gcidtYXN0ZXIuY2ZnJworY29uZmlnZmlsZSA9IHInbWFzdGVyX2J1aWxkYm90Mi5j
ZmcnCiByb3RhdGVMZW5ndGggPSA1MDAwMDAwMAogbWF4Um90YXRlZEZpbGVzID0gMjAKIHVtYXNr
ID0gMG8wMjIKSW5kZXg6IFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2xvYWRDb25m
aWcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvbG9h
ZENvbmZpZy5weQkocmV2aXNpb24gMjcyNjU5KQorKysgVG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdl
YmtpdC1vcmcvbG9hZENvbmZpZy5weQkod29ya2luZyBjb3B5KQpAQCAtMjEsMTIgKzIxLDggQEAK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCi1VU0VfQlVJTERCT1RfVkVSU0lPTjIgPSBvcy5n
ZXRlbnYoJ1VTRV9CVUlMREJPVF9WRVJTSU9OMicpIGlzIG5vdCBOb25lCiAKLWlmIFVTRV9CVUlM
REJPVF9WRVJTSU9OMjoKLSAgICBmcm9tIGJ1aWxkYm90LndvcmtlciBpbXBvcnQgV29ya2VyCi1l
bHNlOgotICAgIGZyb20gYnVpbGRib3QuYnVpbGRzbGF2ZSBpbXBvcnQgQnVpbGRTbGF2ZQorZnJv
bSBidWlsZGJvdC53b3JrZXIgaW1wb3J0IFdvcmtlcgogZnJvbSBidWlsZGJvdC5zY2hlZHVsZXIg
aW1wb3J0IEFueUJyYW5jaFNjaGVkdWxlciwgVHJpZ2dlcmFibGUsIE5pZ2h0bHkKIGZyb20gYnVp
bGRib3Quc2NoZWR1bGVycy5mb3JjZXNjaGVkIGltcG9ydCBGaXhlZFBhcmFtZXRlciwgRm9yY2VT
Y2hlZHVsZXIsIFN0cmluZ1BhcmFtZXRlciwgQm9vbGVhblBhcmFtZXRlcgogZnJvbSBidWlsZGJv
dC5zY2hlZHVsZXJzLmZpbHRlciBpbXBvcnQgQ2hhbmdlRmlsdGVyCkBAIC02MiwxMCArNTgsNyBA
QCBkZWYgbG9hZEJ1aWxkZXJDb25maWcoYywgaXNfdGVzdF9tb2RlX2VuCiAgICAgICAgIG9zLmVu
dmlyb25bJ1JFU1VMVFNfU0VSVkVSX0FQSV9LRVknXSA9IHJlc3VsdHNfc2VydmVyX2FwaV9rZXkK
IAogICAgIGNvbmZpZyA9IGpzb24ubG9hZChvcGVuKCdjb25maWcuanNvbicpKQotICAgIGlmIFVT
RV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgY1snd29ya2VycyddID0gW1dvcmtlcih3b3Jr
ZXJbJ25hbWUnXSwgcGFzc3dvcmRzLmdldCh3b3JrZXJbJ25hbWUnXSwgJ3Bhc3N3b3JkJyksIG1h
eF9idWlsZHM9MSkgZm9yIHdvcmtlciBpbiBjb25maWdbJ3dvcmtlcnMnXV0KLSAgICBlbHNlOgot
ICAgICAgICBjWydzbGF2ZXMnXSA9IFtCdWlsZFNsYXZlKHdvcmtlclsnbmFtZSddLCBwYXNzd29y
ZHMuZ2V0KHdvcmtlclsnbmFtZSddLCAncGFzc3dvcmQnKSwgbWF4X2J1aWxkcz0xKSBmb3Igd29y
a2VyIGluIGNvbmZpZ1snd29ya2VycyddXQorICAgIGNbJ3dvcmtlcnMnXSA9IFtXb3JrZXIod29y
a2VyWyduYW1lJ10sIHBhc3N3b3Jkcy5nZXQod29ya2VyWyduYW1lJ10sICdwYXNzd29yZCcpLCBt
YXhfYnVpbGRzPTEpIGZvciB3b3JrZXIgaW4gY29uZmlnWyd3b3JrZXJzJ11dCiAKICAgICBjWydz
Y2hlZHVsZXJzJ10gPSBbXQogICAgIGZvciBzY2hlZHVsZXIgaW4gY29uZmlnWydzY2hlZHVsZXJz
J106CkBAIC03OSwyMyArNzIsNyBAQCBkZWYgbG9hZEJ1aWxkZXJDb25maWcoYywgaXNfdGVzdF9t
b2RlX2VuCiAgICAgYnVpbGRlck5hbWVzID0gW3N0cihidWlsZGVyWyduYW1lJ10pIGZvciBidWls
ZGVyIGluIGNvbmZpZ1snYnVpbGRlcnMnXV0KICAgICByZWFzb24gPSBTdHJpbmdQYXJhbWV0ZXIo
bmFtZT0ncmVhc29uJywgZGVmYXVsdD0nJywgc2l6ZT00MCkKICAgICBwcm9wZXJ0aWVzID0gW0Jv
b2xlYW5QYXJhbWV0ZXIobmFtZT0naXNfY2xlYW4nLCBsYWJlbD0nRm9yY2UgQ2xlYW4gYnVpbGQn
KV0KLSAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgIGZvcmNlU2NoZWR1bGVy
ID0gRm9yY2VTY2hlZHVsZXIobmFtZT0nZm9yY2UnLCBidWlsZGVyTmFtZXM9YnVpbGRlck5hbWVz
LCByZWFzb249cmVhc29uLCBwcm9wZXJ0aWVzPXByb3BlcnRpZXMpCi0gICAgZWxzZToKLSAgICAg
ICAgZm9yY2VTY2hlZHVsZXIgPSBGb3JjZVNjaGVkdWxlcigKLSAgICAgICAgICAgIG5hbWU9J2Zv
cmNlJywKLSAgICAgICAgICAgIGJ1aWxkZXJOYW1lcz1idWlsZGVyTmFtZXMsCi0gICAgICAgICAg
ICByZWFzb249cmVhc29uLAotCi0gICAgICAgICAgICAjIFZhbGlkYXRlIFNWTiByZXZpc2lvbjog
bnVtYmVyIG9yIGVtcHR5IHN0cmluZwotICAgICAgICAgICAgcmV2aXNpb249U3RyaW5nUGFyYW1l
dGVyKG5hbWU9InJldmlzaW9uIiwgZGVmYXVsdD0iIiwgcmVnZXg9cmUuY29tcGlsZShyJ14oXGQq
KSQnKSksCi0KLSAgICAgICAgICAgICMgRGlzYWJsZSBkZWZhdWx0IGVuYWJsZWQgaW5wdXQgZmll
bGRzOiBicmFuY2gsIHJlcG9zaXRvcnksIHByb2plY3QsIGFkZGl0aW9uYWwgcHJvcGVydGllcwot
ICAgICAgICAgICAgYnJhbmNoPUZpeGVkUGFyYW1ldGVyKG5hbWU9ImJyYW5jaCIpLAotICAgICAg
ICAgICAgcmVwb3NpdG9yeT1GaXhlZFBhcmFtZXRlcihuYW1lPSJyZXBvc2l0b3J5IiksCi0gICAg
ICAgICAgICBwcm9qZWN0PUZpeGVkUGFyYW1ldGVyKG5hbWU9InByb2plY3QiKSwKLSAgICAgICAg
ICAgIHByb3BlcnRpZXM9cHJvcGVydGllcwotICAgICAgICApCisgICAgZm9yY2VTY2hlZHVsZXIg
PSBGb3JjZVNjaGVkdWxlcihuYW1lPSdmb3JjZScsIGJ1aWxkZXJOYW1lcz1idWlsZGVyTmFtZXMs
IHJlYXNvbj1yZWFzb24sIHByb3BlcnRpZXM9cHJvcGVydGllcykKICAgICBjWydzY2hlZHVsZXJz
J10uYXBwZW5kKGZvcmNlU2NoZWR1bGVyKQogCiAgICAgY1snYnVpbGRlcnMnXSA9IFtdCkBAIC0x
MDksOCArODYsNiBAQCBkZWYgbG9hZEJ1aWxkZXJDb25maWcoYywgaXNfdGVzdF9tb2RlX2VuCiAg
ICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQnVpbGRlciB7fSBpcyBmb3IgcGxh
dGZvcm0ge30gYnV0IGhhcyB3b3JrZXIge30gZm9yIHBsYXRmb3JtIHt9IScuZm9ybWF0KGJ1aWxk
ZXJbJ25hbWUnXSwgYnVpbGRlclsncGxhdGZvcm0nXSwgd29ya2VyWyduYW1lJ10sIHdvcmtlclsn
cGxhdGZvcm0nXSkpCiAgICAgICAgICAgICAgICAgYnJlYWsKIAotICAgICAgICBpZiBub3QgVVNF
X0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgYnVpbGRlclsnc2xhdmVuYW1lcyddID0g
YnVpbGRlci5wb3AoJ3dvcmtlcm5hbWVzJykKICAgICAgICAgcGxhdGZvcm0gPSBidWlsZGVyWydw
bGF0Zm9ybSddCiAKICAgICAgICAgZmFjdG9yeU5hbWUgPSBidWlsZGVyLnBvcCgnZmFjdG9yeScp
CkBAIC0xMjksMTAgKzEwNCw3IEBAIGRlZiBsb2FkQnVpbGRlckNvbmZpZyhjLCBpc190ZXN0X21v
ZGVfZW4KICAgICAgICAgaWYgbm90IGJ1aWxkYm90X2lkZW50aWZpZXJzX3JlLm1hdGNoKGJ1aWxk
ZXJfbmFtZSk6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0J1aWxkZXIgbmFtZSAie30i
IGlzIG5vdCBhIHZhbGlkIGJ1aWxkYm90IGlkZW50aWZpZXIuJy5mb3JtYXQoYnVpbGRlcl9uYW1l
KSkKICAgICAgICAgZm9yIHN0ZXAgaW4gYnVpbGRlclsiZmFjdG9yeSJdLnN0ZXBzOgotICAgICAg
ICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgICAgIHN0ZXBfbmFt
ZSA9IHN0ZXAuYnVpbGRTdGVwKCkubmFtZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBzdGVwX25hbWUgPSBzdGVwWzBdLm5hbWUKKyAgICAgICAgICAgIHN0ZXBfbmFtZSA9IHN0
ZXAuYnVpbGRTdGVwKCkubmFtZQogICAgICAgICAgICAgaWYgbGVuKHN0ZXBfbmFtZSkgPiBTVEVQ
X05BTUVfTEVOR1RIX0xJTUlUOgogICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignc3Rl
cCBuYW1lICJ7fSIgaXMgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGJ5IEJ1aWxkYm90ICh7
fSBjaGFyYWN0ZXJzKS4nLmZvcm1hdChzdGVwX25hbWUsIFNURVBfTkFNRV9MRU5HVEhfTElNSVQp
KQogICAgICAgICAgICAgaWYgbm90IGJ1aWxkYm90X2lkZW50aWZpZXJzX3JlLm1hdGNoKHN0ZXBf
bmFtZSk6CkBAIC0xNTgsMTAgKzEzMCw3IEBAIGRlZiBsb2FkQnVpbGRlckNvbmZpZyhjLCBpc190
ZXN0X21vZGVfZW4KICAgICAgICAgaWYgKGNhdGVnb3J5IGluICgnQXBwbGVNYWMnLCAnQXBwbGVX
aW4nLCAnaU9TJykpIGFuZCBmYWN0b3J5TmFtZSAhPSAnQnVpbGRGYWN0b3J5JzoKICAgICAgICAg
ICAgIGJ1aWxkZXJbJ25leHRCdWlsZCddID0gcGlja0xhdGVzdEJ1aWxkCiAKLSAgICAgICAgaWYg
VVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgYnVpbGRlclsndGFncyddID0gZ2V0
VGFnc0ZvckJ1aWxkZXIoYnVpbGRlcikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJ1aWxk
ZXJbJ2NhdGVnb3J5J10gPSBjYXRlZ29yeQorICAgICAgICBidWlsZGVyWyd0YWdzJ10gPSBnZXRU
YWdzRm9yQnVpbGRlcihidWlsZGVyKQogICAgICAgICBjWydidWlsZGVycyddLmFwcGVuZChidWls
ZGVyKQogCiAKSW5kZXg6IFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL2xvYWRDb25m
aWdfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdlYmtp
dC1vcmcvbG9hZENvbmZpZ191bml0dGVzdC5weQkocmV2aXNpb24gMjcyNjU5KQorKysgVG9vbHMv
Q0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvbG9hZENvbmZpZ191bml0dGVzdC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsOSArMjcsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQg
dW5pdHRlc3QKIAotVVNFX0JVSUxEQk9UX1ZFUlNJT04yID0gb3MuZ2V0ZW52KCdVU0VfQlVJTERC
T1RfVkVSU0lPTjInKSBpcyBub3QgTm9uZQotaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAg
IGltcG9ydCBsb2FkQ29uZmlnCitpbXBvcnQgbG9hZENvbmZpZwogCiBjbGFzcyBDb25maWdEb3RK
U09OVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIGdldF9jb25maWcoc2VsZik6Cklu
ZGV4OiBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9tYXN0ZXIuY2ZnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL21hc3Rlci5jZmcJKHJldmlz
aW9uIDI3MjY1OSkKKysrIFRvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL21hc3Rlci5j
ZmcJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0jIC0qLSBweXRob24gLSotCi0jIGV4
OiBzZXQgc3ludGF4PXB5dGhvbjoKLQotZnJvbSBidWlsZGJvdC5jaGFuZ2VzLnBiIGltcG9ydCBQ
QkNoYW5nZVNvdXJjZQotZnJvbSBidWlsZGJvdC5zdGF0dXMgaW1wb3J0IGh0bWwKLWZyb20gYnVp
bGRib3Quc3RhdHVzLndlYi5hdXRoeiBpbXBvcnQgQXV0aHoKLQotZnJvbSBjb21taXR0ZXJfYXV0
aCBpbXBvcnQgQ29tbWl0dGVyQXV0aAotZnJvbSBsb2FkQ29uZmlnIGltcG9ydCAqCi0KLQotaXNf
dGVzdF9tb2RlX2VuYWJsZWQgPSBvcy5nZXRlbnYoJ0JVSUxEQk9UX1RFU1RJTkcnKSBpcyBub3Qg
Tm9uZQotCi1jID0gQnVpbGRtYXN0ZXJDb25maWcgPSB7fQotCi1jWydjaGFuZ2Vfc291cmNlJ10g
PSBQQkNoYW5nZVNvdXJjZShwb3J0PTE2MDAwKQotCi0jIHBlcm1pc3Npb25zIGZvciBXZWJTdGF0
dXMKLWF1dGh6ID0gQXV0aHooCi0gICAgYXV0aD1Db21taXR0ZXJBdXRoKCdhdXRoLmpzb24nKSwK
LSAgICBmb3JjZUJ1aWxkPSdhdXRoJywKLSAgICBmb3JjZUFsbEJ1aWxkcz0nYXV0aCcsCi0gICAg
cGluZ0J1aWxkZXI9VHJ1ZSwKLSAgICBncmFjZWZ1bFNodXRkb3duPUZhbHNlLAotICAgIHN0b3BC
dWlsZD0nYXV0aCcsCi0gICAgc3RvcEFsbEJ1aWxkcz0nYXV0aCcsCi0gICAgY2FuY2VsUGVuZGlu
Z0J1aWxkPSdhdXRoJywKLSAgICBzdG9wQ2hhbmdlPVRydWUsCi0gICAgY2xlYW5TaHV0ZG93bj1G
YWxzZSkKLQotY1snc3RhdHVzJ10gPSBbXQotY1snc3RhdHVzJ10uYXBwZW5kKGh0bWwuV2ViU3Rh
dHVzKGh0dHBfcG9ydD04NzEwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dmxpbms9Imh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8lcyIsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWNvbW1lbnRsaW5rPShyIihodHRwczovL2J1
Z3NcLndlYmtpdFwub3JnL3Nob3dfYnVnXC5jZ2lcP2lkPXx3ZWJraXRcLm9yZy9iLykoXGQrKSIs
IHIiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPVwyIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aHo9YXV0aHopKQotCi1jWydzbGF2ZVBvcnRu
dW0nXSA9IDE3MDAwCi1jWydwcm9qZWN0TmFtZSddID0gIldlYktpdCIKLWNbJ3Byb2plY3RVUkwn
XSA9ICJodHRwczovL3dlYmtpdC5vcmciCi1jWydidWlsZGJvdFVSTCddID0gImh0dHBzOi8vYnVp
bGQud2Via2l0Lm9yZy8iCi0KLWNbJ2J1aWxkSG9yaXpvbiddID0gMTAwMAotY1snbG9nSG9yaXpv
biddID0gNTAwCi1jWydldmVudEhvcml6b24nXSA9IDIwMAotY1snYnVpbGRDYWNoZVNpemUnXSA9
IDYwCi0KLQotbG9hZEJ1aWxkZXJDb25maWcoYywgaXNfdGVzdF9tb2RlX2VuYWJsZWQ9aXNfdGVz
dF9tb2RlX2VuYWJsZWQpCkluZGV4OiBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9z
dGVwcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0LW9yZy9z
dGVwcy5weQkocmV2aXNpb24gMjcyNjU5KQorKysgVG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdlYmtp
dC1vcmcvc3RlcHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIwLDggKzIwLDEwIEBACiAjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gYnVpbGRib3QucHJvY2VzcyBp
bXBvcnQgYnVpbGRzdGVwLCBmYWN0b3J5LCBwcm9wZXJ0aWVzCitmcm9tIGJ1aWxkYm90LnByb2Nl
c3MgaW1wb3J0IGJ1aWxkc3RlcCwgZmFjdG9yeSwgbG9nb2JzZXJ2ZXIsIHByb3BlcnRpZXMKK2Zy
b20gYnVpbGRib3QucHJvY2Vzcy5yZXN1bHRzIGltcG9ydCBSZXN1bHRzCiBmcm9tIGJ1aWxkYm90
LnN0ZXBzIGltcG9ydCBtYXN0ZXIsIHNoZWxsLCB0cmFuc2ZlciwgdHJpZ2dlcgorZnJvbSBidWls
ZGJvdC5zdGVwcy5zb3VyY2Uuc3ZuIGltcG9ydCBTVk4KIGZyb20gYnVpbGRib3Quc3RhdHVzLmJ1
aWxkZXIgaW1wb3J0IFNVQ0NFU1MsIEZBSUxVUkUsIFdBUk5JTkdTLCBTS0lQUEVELCBFWENFUFRJ
T04KIAogZnJvbSB0d2lzdGVkLmludGVybmV0IGltcG9ydCBkZWZlcgpAQCAtMzksMTggKzQxLDgg
QEAgUkVTVUxUU19XRUJLSVRfVVJMID0gJ2h0dHBzOi8vcmVzdWx0cy53ZQogUkVTVUxUU19TRVJW
RVJfQVBJX0tFWSA9ICdSRVNVTFRTX1NFUlZFUl9BUElfS0VZJwogUzNVUkwgPSAnaHR0cHM6Ly9z
My11cy13ZXN0LTIuYW1hem9uYXdzLmNvbS8nCiBTM19SRVNVTFRTX1VSTCA9ICd7fWJ1aWxkLndl
YmtpdC5vcmctcmVzdWx0cy8nLmZvcm1hdChTM1VSTCkKLVVTRV9CVUlMREJPVF9WRVJTSU9OMiA9
IG9zLmdldGVudignVVNFX0JVSUxEQk9UX1ZFUlNJT04yJykgaXMgbm90IE5vbmUKIFdpdGhQcm9w
ZXJ0aWVzID0gcHJvcGVydGllcy5XaXRoUHJvcGVydGllcwotaWYgVVNFX0JVSUxEQk9UX1ZFUlNJ
T04yOgotICAgIEludGVycG9sYXRlID0gcHJvcGVydGllcy5JbnRlcnBvbGF0ZQotICAgIGZyb20g
YnVpbGRib3QucHJvY2VzcyBpbXBvcnQgbG9nb2JzZXJ2ZXIKLSAgICBmcm9tIGJ1aWxkYm90LnBy
b2Nlc3MucmVzdWx0cyBpbXBvcnQgUmVzdWx0cwotICAgIGZyb20gYnVpbGRib3Quc3RlcHMuc291
cmNlLnN2biBpbXBvcnQgU1ZOCi1lbHNlOgotICAgIGltcG9ydCBjU3RyaW5nSU8KLSAgICBmcm9t
IGJ1aWxkYm90LnN0ZXBzLnNvdXJjZSBpbXBvcnQgU1ZOCi0gICAgbG9nb2JzZXJ2ZXIgPSBsYW1i
ZGE6IE5vbmUKLSAgICBsb2dvYnNlcnZlci5MaW5lQ29uc3VtZXJMb2dPYnNlcnZlciA9IHR5cGUo
J0xpbmVDb25zdW1lckxvZ09ic2VydmVyJywgKG9iamVjdCwpLCB7fSkKK0ludGVycG9sYXRlID0g
cHJvcGVydGllcy5JbnRlcnBvbGF0ZQogCiAKIGNsYXNzIFBhcnNlQnlMaW5lTG9nT2JzZXJ2ZXIo
bG9nb2JzZXJ2ZXIuTGluZUNvbnN1bWVyTG9nT2JzZXJ2ZXIpOgpAQCAtOTIsMTcgKzg0LDYgQEAg
Y2xhc3MgVGVzdFdpdGhGYWlsdXJlQ291bnQoc2hlbGwuVGVzdCk6CiAKICAgICAgICAgcmV0dXJu
IFNVQ0NFU1MKIAotICAgIGRlZiBnZXRUZXh0KHNlbGYsIGNtZCwgcmVzdWx0cyk6Ci0gICAgICAg
ICMgRklYTUU6IGRlbGV0ZSB0aGlzIG1ldGhvZCBhZnRlciBzd2l0Y2hpbmcgdG8gQnVpbGRib3Qg
djIKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0VGV4dDIoY21kLCByZXN1bHRzKQotCi0gICAgZGVm
IGdldFRleHQyKHNlbGYsIGNtZCwgcmVzdWx0cyk6Ci0gICAgICAgICMgRklYTUU6IGRlbGV0ZSB0
aGlzIG1ldGhvZCBhZnRlciBzd2l0Y2hpbmcgdG8gQnVpbGRib3QgdjIKLSAgICAgICAgaWYgcmVz
dWx0cyAhPSBTVUNDRVNTIGFuZCBzZWxmLmZhaWxlZFRlc3RDb3VudDoKLSAgICAgICAgICAgIHJl
dHVybiBbc2VsZi5mYWlsZWRUZXN0c0Zvcm1hdFN0cmluZyAlIChzZWxmLmZhaWxlZFRlc3RDb3Vu
dCwgc2VsZi5mYWlsZWRUZXN0UGx1cmFsU3VmZml4KV0KLQotICAgICAgICByZXR1cm4gW3NlbGYu
bmFtZV0KLQogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAgICAgICBzdGF0dXMg
PSBzZWxmLm5hbWUKIApAQCAtMTMxLDggKzExMiw2IEBAIGNsYXNzIENvbmZpZ3VyZUJ1aWxkKGJ1
aWxkc3RlcC5CdWlsZFN0ZXAKICAgICAgICAgc2VsZi5idWlsZE9ubHkgPSBidWlsZE9ubHkKICAg
ICAgICAgc2VsZi5hZGRpdGlvbmFsQXJndW1lbnRzID0gYWRkaXRpb25hbEFyZ3VtZW50cwogICAg
ICAgICBzZWxmLmRldmljZV9tb2RlbCA9IGRldmljZV9tb2RlbAotICAgICAgICBpZiBub3QgVVNF
X0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2VsZi5hZGRGYWN0b3J5QXJndW1lbnRz
KHBsYXRmb3JtPXBsYXRmb3JtLCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sIGFyY2hpdGVj
dHVyZT1hcmNoaXRlY3R1cmUsIGJ1aWxkT25seT1idWlsZE9ubHksIGFkZGl0aW9uYWxBcmd1bWVu
dHM9YWRkaXRpb25hbEFyZ3VtZW50cywgZGV2aWNlX21vZGVsPWRldmljZV9tb2RlbCkKIAogICAg
IGRlZiBzdGFydChzZWxmKToKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgicGxhdGZvcm0iLCBz
ZWxmLnBsYXRmb3JtKQpAQCAtMTUxLDEzICsxMzAsOCBAQCBjbGFzcyBDb25maWd1cmVCdWlsZChi
dWlsZHN0ZXAuQnVpbGRTdGVwCiAKIGNsYXNzIENoZWNrT3V0U291cmNlKFNWTiwgb2JqZWN0KToK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBpZiBVU0VfQlVJTERC
T1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBrd2FyZ3NbJ3JlcG91cmwnXSA9ICdodHRwczovL3N2
bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L3RydW5rJwotICAgICAgICAgICAga3dhcmdz
Wydtb2RlJ10gPSAnaW5jcmVtZW50YWwnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBrd2Fy
Z3NbJ2Jhc2VVUkwnXSA9ICJodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0
LyIKLSAgICAgICAgICAgIGt3YXJnc1snZGVmYXVsdEJyYW5jaCddID0gInRydW5rIgotICAgICAg
ICAgICAga3dhcmdzWydtb2RlJ10gPSAndXBkYXRlJworICAgICAgICBrd2FyZ3NbJ3JlcG91cmwn
XSA9ICdodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L3RydW5rJworICAg
ICAgICBrd2FyZ3NbJ21vZGUnXSA9ICdpbmNyZW1lbnRhbCcKICAgICAgICAgc3VwZXIoQ2hlY2tP
dXRTb3VyY2UsIHNlbGYpLl9faW5pdF9fKCoqa3dhcmdzKQogCiAKQEAgLTI3NCw5ICsyNDgsOCBA
QCBjbGFzcyBDb21waWxlV2ViS2l0KHNoZWxsLkNvbXBpbGUpOgogICAgICAgICBhcmNoaXRlY3R1
cmUgPSBzZWxmLmdldFByb3BlcnR5KCdhcmNoaXRlY3R1cmUnKQogICAgICAgICBhZGRpdGlvbmFs
QXJndW1lbnRzID0gc2VsZi5nZXRQcm9wZXJ0eSgnYWRkaXRpb25hbEFyZ3VtZW50cycpCiAKLSAg
ICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2VsZi5sb2dfb2Jz
ZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQotICAg
ICAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikK
KyAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYu
cGFyc2VPdXRwdXRMaW5lKQorICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdzdGRpbycsIHNl
bGYubG9nX29ic2VydmVyKQogCiAgICAgICAgIGlmIGFkZGl0aW9uYWxBcmd1bWVudHM6CiAgICAg
ICAgICAgICBzZWxmLnNldENvbW1hbmQoc2VsZi5jb21tYW5kICsgYWRkaXRpb25hbEFyZ3VtZW50
cykKQEAgLTMwOSwyNSArMjgyLDYgQEAgY2xhc3MgQ29tcGlsZVdlYktpdChzaGVsbC5Db21waWxl
KToKICAgICAgICAgICAgIGxvZyA9IHlpZWxkIHNlbGYuYWRkTG9nKGxvZ05hbWUpCiAgICAgICAg
IGxvZy5hZGRTdGRvdXQobWVzc2FnZSkKIAotICAgIGRlZiBjcmVhdGVTdW1tYXJ5KHNlbGYsIGxv
Zyk6Ci0gICAgICAgICMgRklYTUU6IGRlbGV0ZSB0aGlzIG1ldGhvZCBhZnRlciBzd2l0Y2hpbmcg
dG8gQnVpbGRib3QgdjIKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZv
cm0nKQotICAgICAgICBpZiBwbGF0Zm9ybS5zdGFydHN3aXRoKCdtYWMnKToKLSAgICAgICAgICAg
IHdhcm5pbmdzID0gW10KLSAgICAgICAgICAgIGVycm9ycyA9IFtdCi0gICAgICAgICAgICBzaW8g
PSBjU3RyaW5nSU8uU3RyaW5nSU8obG9nLmdldFRleHQoKSkKLSAgICAgICAgICAgIGZvciBsaW5l
IGluIHNpby5yZWFkbGluZXMoKToKLSAgICAgICAgICAgICAgICBpZiAiYXJuaW5nOiIgaW4gbGlu
ZToKLSAgICAgICAgICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKGxpbmUpCi0gICAgICAgICAg
ICAgICAgaWYgInJyb3I6IiBpbiBsaW5lOgotICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBw
ZW5kKGxpbmUpCi0gICAgICAgICAgICBpZiB3YXJuaW5nczoKLSAgICAgICAgICAgICAgICBzZWxm
LmFkZENvbXBsZXRlTG9nKCd3YXJuaW5ncycsICIiLmpvaW4od2FybmluZ3MpKQotICAgICAgICAg
ICAgaWYgZXJyb3JzOgotICAgICAgICAgICAgICAgIHNlbGYuYWRkQ29tcGxldGVMb2coJ2Vycm9y
cycsICIiLmpvaW4oZXJyb3JzKSkKLQogCiBjbGFzcyBDb21waWxlTExJTlRDTG9vcChDb21waWxl
V2ViS2l0KToKICAgICBjb21tYW5kID0gWyJwZXJsIiwgIi4vVG9vbHMvU2NyaXB0cy9idWlsZC1q
c2MiLCAiLS1jbG9vcCIsIFdpdGhQcm9wZXJ0aWVzKCItLSUoY29uZmlndXJhdGlvbilzIildCkBA
IC0zOTIsMTAgKzM0Niw3IEBAIGNsYXNzIFVwbG9hZEJ1aWx0UHJvZHVjdCh0cmFuc2Zlci5GaWxl
VXAKICAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoq
a3dhcmdzKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAg
a3dhcmdzWyd3b3JrZXJzcmMnXSA9IHNlbGYud29ya2Vyc3JjCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBrd2FyZ3NbJ3NsYXZlc3JjJ10gPSBzZWxmLndvcmtlcnNyYworICAgICAgICBrd2Fy
Z3NbJ3dvcmtlcnNyYyddID0gc2VsZi53b3JrZXJzcmMKICAgICAgICAga3dhcmdzWydtYXN0ZXJk
ZXN0J10gPSBzZWxmLm1hc3RlcmRlc3QKICAgICAgICAga3dhcmdzWydtb2RlJ10gPSAwbzY0NAog
ICAgICAgICBrd2FyZ3NbJ2Jsb2Nrc2l6ZSddID0gMTAyNCAqIDI1NgpAQCAtNDE5LDE1ICszNzAs
MTIgQEAgY2xhc3MgRG93bmxvYWRCdWlsdFByb2R1Y3Qoc2hlbGwuU2hlbGxDbwogCiAgICAgZGVm
IHN0YXJ0KHNlbGYpOgogICAgICAgICBpZiAnYXBwbGUnIGluIHNlbGYuZ2V0UHJvcGVydHkoJ2J1
aWxkZXJuYW1lJykubG93ZXIoKToKLSAgICAgICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9O
MjoKLSAgICAgICAgICAgICAgICBzZWxmLndvcmtlckVudmlyb25tZW50WydIVFRQU19QUk9YWSdd
ID0gQVBQTEVfV0VCS0lUX0FXU19QUk9YWSAgIyBjdXJsIGVudiB2YXIgdG8gdXNlIGEgcHJveHkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5zbGF2ZUVudmlyb25tZW50
WydIVFRQU19QUk9YWSddID0gQVBQTEVfV0VCS0lUX0FXU19QUk9YWSAgIyBjdXJsIGVudiB2YXIg
dG8gdXNlIGEgcHJveHkKKyAgICAgICAgICAgIHNlbGYud29ya2VyRW52aXJvbm1lbnRbJ0hUVFBT
X1BST1hZJ10gPSBBUFBMRV9XRUJLSVRfQVdTX1BST1hZICAjIGN1cmwgZW52IHZhciB0byB1c2Ug
YSBwcm94eQogICAgICAgICByZXR1cm4gc2hlbGwuU2hlbGxDb21tYW5kLnN0YXJ0KHNlbGYpCiAK
ICAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CiAgICAgICAgIHJjID0gc2hlbGwu
U2hlbGxDb21tYW5kLmV2YWx1YXRlQ29tbWFuZChzZWxmLCBjbWQpCi0gICAgICAgIGlmIHJjID09
IEZBSUxVUkUgYW5kIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKKyAgICAgICAgaWYgcmMgPT0gRkFJ
TFVSRToKICAgICAgICAgICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKFtE
b3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIoKV0pCiAgICAgICAgIHJldHVybiByYwogCkBA
IC00ODAsMTAgKzQyOCw3IEBAIGNsYXNzIFJ1bkphdmFTY3JpcHRDb3JlVGVzdHMoVGVzdFdpdGhG
YWkKICAgICAgICAgVGVzdFdpdGhGYWlsdXJlQ291bnQuX19pbml0X18oc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBpZiBVU0VfQlVJTERCT1Rf
VkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLndvcmtlckVudmlyb25tZW50W1JFU1VMVFNfU0VS
VkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnNsYXZlRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJf
QVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJWRVJfQVBJX0tFWSkKKyAgICAgICAgc2Vs
Zi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9BUElfS0VZXSA9IG9zLmdldGVudihS
RVNVTFRTX1NFUlZFUl9BUElfS0VZKQogICAgICAgICBwbGF0Zm9ybSA9IHNlbGYuZ2V0UHJvcGVy
dHkoJ3BsYXRmb3JtJykKICAgICAgICAgYXJjaGl0ZWN0dXJlID0gc2VsZi5nZXRQcm9wZXJ0eSgi
YXJjaGl0ZWN0dXJlIikKICAgICAgICAgIyBDdXJyZW50bHkgcnVuLWphdmFzY3JpcHRjb3JlLXRl
c3QgZG9lc24ndCBzdXBwb3J0IHJ1biBqYXZhc2NyaXB0IGNvcmUgdGVzdCBiaW5hcmllcyBsaXN0
IGJlbG93IHJlbW90ZWx5CkBAIC01MjgsMTAgKzQ3Myw5IEBAIGNsYXNzIFJ1blRlc3QyNjJUZXN0
cyhUZXN0V2l0aEZhaWx1cmVDb3UKICAgICB0ZXN0X3N1bW1hcnlfcmUgPSByZS5jb21waWxlKHIn
XlwhIE5FVyBGQUlMJykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYgVVNFX0JV
SUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5
TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQotICAgICAgICAgICAgc2VsZi5h
ZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikKLSAgICAgICAgICAgIHNl
bGYuZmFpbGVkVGVzdENvdW50ID0gMAorICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNl
QnlMaW5lTG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExpbmUpCisgICAgICAgIHNlbGYuYWRk
TG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCisgICAgICAgIHNlbGYuZmFp
bGVkVGVzdENvdW50ID0gMAogICAgICAgICBhcHBlbmRDdXN0b21CdWlsZEZsYWdzKHNlbGYsIHNl
bGYuZ2V0UHJvcGVydHkoJ3BsYXRmb3JtJyksIHNlbGYuZ2V0UHJvcGVydHkoJ2Z1bGxQbGF0Zm9y
bScpKQogICAgICAgICByZXR1cm4gc2hlbGwuVGVzdC5zdGFydChzZWxmKQogCkBAIC01NDEsMTQg
KzQ4NSw3IEBAIGNsYXNzIFJ1blRlc3QyNjJUZXN0cyhUZXN0V2l0aEZhaWx1cmVDb3UKICAgICAg
ICAgICAgIHNlbGYuZmFpbGVkVGVzdENvdW50ICs9IDEKIAogICAgIGRlZiBjb3VudEZhaWx1cmVz
KHNlbGYsIGNtZCk6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAotCi0gICAgICAgIGxvZ1RleHQgPSBjbWQu
bG9nc1snc3RkaW8nXS5nZXRUZXh0KCkKLSAgICAgICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwocide
XCEgTkVXIEZBSUwnLCBsb2dUZXh0LCBmbGFncz1yZS5NVUxUSUxJTkUpCi0gICAgICAgIGlmIG1h
dGNoZXM6Ci0gICAgICAgICAgICByZXR1cm4gbGVuKG1hdGNoZXMpCi0gICAgICAgIHJldHVybiAw
CisgICAgICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAogCiAKIGNsYXNzIFJ1bldlYktp
dFRlc3RzKHNoZWxsLlRlc3QpOgpAQCAtNTg1LDE0ICs1MjIsMTEgQEAgY2xhc3MgUnVuV2ViS2l0
VGVzdHMoc2hlbGwuVGVzdCk6CiAgICAgICAgIHNoZWxsLlRlc3QuX19pbml0X18oc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBpZiBVU0VfQlVJ
TERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLndvcmtlckVudmlyb25tZW50W1JFU1VM
VFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkpCi0g
ICAgICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNlQnlMaW5lTG9nT2JzZXJ2ZXIoc2Vs
Zi5wYXJzZU91dHB1dExpbmUpCi0gICAgICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdzdGRp
bycsIHNlbGYubG9nX29ic2VydmVyKQotICAgICAgICAgICAgc2VsZi5pbmNvcnJlY3RMYXlvdXRM
aW5lcyA9IFtdCi0gICAgICAgICAgICBzZWxmLnRlc3RGYWlsdXJlcyA9IHt9Ci0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBzZWxmLnNsYXZlRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJ
X0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJWRVJfQVBJX0tFWSkKKyAgICAgICAgc2VsZi53
b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9BUElfS0VZXSA9IG9zLmdldGVudihSRVNV
TFRTX1NFUlZFUl9BUElfS0VZKQorICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNlQnlM
aW5lTG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExpbmUpCisgICAgICAgIHNlbGYuYWRkTG9n
T2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCisgICAgICAgIHNlbGYuaW5jb3Jy
ZWN0TGF5b3V0TGluZXMgPSBbXQorICAgICAgICBzZWxmLnRlc3RGYWlsdXJlcyA9IHt9CiAKICAg
ICAgICAgcGxhdGZvcm0gPSBzZWxmLmdldFByb3BlcnR5KCdwbGF0Zm9ybScpCiAgICAgICAgIGFw
cGVuZEN1c3RvbVRlc3RpbmdGbGFncyhzZWxmLCBwbGF0Zm9ybSwgc2VsZi5nZXRQcm9wZXJ0eSgn
ZGV2aWNlX21vZGVsJykpCkBAIC02MTQsMjkgKzU0OCw2IEBAIGNsYXNzIFJ1bldlYktpdFRlc3Rz
KHNoZWxsLlRlc3QpOgogICAgICAgICAgICAgcmV0dXJuIG1hdGNoX29iamVjdC5ncm91cCgnbWVz
c2FnZScpCiAgICAgICAgIHJldHVybiBsaW5lCiAKLSAgICBkZWYgX3BhcnNlUnVuV2ViS2l0VGVz
dHNPdXRwdXQoc2VsZiwgbG9nVGV4dCk6Ci0gICAgICAgICMgRklYTUU6IGRlbGV0ZSB0aGlzIG1l
dGhvZCBhZnRlciBzd2l0Y2hpbmcgdG8gQnVpbGRib3QgdjIKLSAgICAgICAgaW5jb3JyZWN0TGF5
b3V0TGluZXMgPSBbXQotICAgICAgICB0ZXN0RmFpbHVyZXMgPSB7fQotCi0gICAgICAgIGZvciBs
aW5lIGluIGxvZ1RleHQuc3BsaXRsaW5lcygpOgotICAgICAgICAgICAgaWYgbGluZS5maW5kKCdF
eGl0aW5nIGVhcmx5JykgPj0gMCBvciBsaW5lLmZpbmQoJ2xlYWtzIGZvdW5kJykgPj0gMDoKLSAg
ICAgICAgICAgICAgICBpbmNvcnJlY3RMYXlvdXRMaW5lcy5hcHBlbmQoc2VsZi5fc3RyaXBfcHl0
aG9uX2xvZ2dpbmdfcHJlZml4KGxpbmUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICBmb3IgbmFtZSwgZXhwcmVzc2lvbiBpbiBzZWxmLmV4cHJlc3Npb25zOgotICAgICAg
ICAgICAgICAgIG1hdGNoID0gZXhwcmVzc2lvbi5zZWFyY2gobGluZSkKLQotICAgICAgICAgICAg
ICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbHVyZXNbbmFtZV0gPSB0
ZXN0RmFpbHVyZXMuZ2V0KG5hbWUsIDApICsgaW50KG1hdGNoLmdyb3VwKDEpKQotICAgICAgICAg
ICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAgICAgIyBGSVhNRTogUGFyc2UgZmlsZSBu
YW1lcyBhbmQgcHV0IHRoZW0gaW4gcmVzdWx0cwotCi0gICAgICAgIGZvciBuYW1lIGluIHRlc3RG
YWlsdXJlczoKLSAgICAgICAgICAgIGluY29ycmVjdExheW91dExpbmVzLmFwcGVuZChzdHIodGVz
dEZhaWx1cmVzW25hbWVdKSArICcgJyArIG5hbWUpCi0KLSAgICAgICAgc2VsZi5pbmNvcnJlY3RM
YXlvdXRMaW5lcyA9IGluY29ycmVjdExheW91dExpbmVzCi0KICAgICBkZWYgcGFyc2VPdXRwdXRM
aW5lKHNlbGYsIGxpbmUpOgogICAgICAgICBpZiByJ0V4aXRpbmcgZWFybHknIGluIGxpbmUgb3Ig
cidsZWFrcyBmb3VuZCcgaW4gbGluZToKICAgICAgICAgICAgIHNlbGYuaW5jb3JyZWN0TGF5b3V0
TGluZXMuYXBwZW5kKHNlbGYuX3N0cmlwX3B5dGhvbl9sb2dnaW5nX3ByZWZpeChsaW5lKSkKQEAg
LTY1MSwxOCArNTYyLDggQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHMoc2hlbGwuVGVzdCk6CiAgICAg
ICAgIGZvciBuYW1lLCByZXN1bHQgaW4gc2VsZi50ZXN0RmFpbHVyZXMuaXRlbXMoKToKICAgICAg
ICAgICAgIHNlbGYuaW5jb3JyZWN0TGF5b3V0TGluZXMuYXBwZW5kKHN0cihyZXN1bHQpICsgJyAn
ICsgbmFtZSkKIAotICAgIGRlZiBjb21tYW5kQ29tcGxldGUoc2VsZiwgY21kKToKLSAgICAgICAg
IyBGSVhNRTogZGVsZXRlIHRoaXMgbWV0aG9kIGFmdGVyIHN3aXRjaGluZyB0byBCdWlsZGJvdCB2
MgotICAgICAgICBzaGVsbC5UZXN0LmNvbW1hbmRDb21wbGV0ZShzZWxmLCBjbWQpCi0KLSAgICAg
ICAgaWYgbm90IFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIGxvZ1RleHQgPSBj
bWQubG9nc1snc3RkaW8nXS5nZXRUZXh0KCkKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlUnVuV2Vi
S2l0VGVzdHNPdXRwdXQobG9nVGV4dCkKLQogICAgIGRlZiBldmFsdWF0ZUNvbW1hbmQoc2VsZiwg
Y21kKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2Vs
Zi5wcm9jZXNzVGVzdEZhaWx1cmVzKCkKLQorICAgICAgICBzZWxmLnByb2Nlc3NUZXN0RmFpbHVy
ZXMoKQogICAgICAgICByZXN1bHQgPSBTVUNDRVNTCiAKICAgICAgICAgaWYgc2VsZi5pbmNvcnJl
Y3RMYXlvdXRMaW5lczoKQEAgLTY5NSwxNyArNTk2LDYgQEAgY2xhc3MgUnVuV2ViS2l0VGVzdHMo
c2hlbGwuVGVzdCk6CiAgICAgICAgICAgICByZXR1cm4geydzdGVwJzogc3RhdHVzfQogICAgICAg
ICByZXR1cm4gc3VwZXIoUnVuV2ViS2l0VGVzdHMsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQog
Ci0gICAgZGVmIGdldFRleHQoc2VsZiwgY21kLCByZXN1bHRzKToKLSAgICAgICAgIyBGSVhNRTog
ZGVsZXRlIHRoaXMgbWV0aG9kIGFmdGVyIHN3aXRjaGluZyB0byBCdWlsZGJvdCB2MgotICAgICAg
ICByZXR1cm4gc2VsZi5nZXRUZXh0MihjbWQsIHJlc3VsdHMpCi0KLSAgICBkZWYgZ2V0VGV4dDIo
c2VsZiwgY21kLCByZXN1bHRzKToKLSAgICAgICAgIyBGSVhNRTogZGVsZXRlIHRoaXMgbWV0aG9k
IGFmdGVyIHN3aXRjaGluZyB0byBCdWlsZGJvdCB2MgotICAgICAgICBpZiByZXN1bHRzICE9IFNV
Q0NFU1MgYW5kIHNlbGYuaW5jb3JyZWN0TGF5b3V0TGluZXM6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5pbmNvcnJlY3RMYXlvdXRMaW5lcwotCi0gICAgICAgIHJldHVybiBbc2VsZi5uYW1lXQot
CiAKIGNsYXNzIFJ1bkRhc2hib2FyZFRlc3RzKFJ1bldlYktpdFRlc3RzKToKICAgICBuYW1lID0g
ImRhc2hib2FyZC10ZXN0cyIKQEAgLTc0NSwyNiArNjM1LDE1IEBAIGNsYXNzIFJ1bkFQSVRlc3Rz
KFRlc3RXaXRoRmFpbHVyZUNvdW50KToKICAgICAgICAgVGVzdFdpdGhGYWlsdXJlQ291bnQuX19p
bml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAg
ICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLndvcmtlckVu
dmlyb25tZW50W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VS
VkVSX0FQSV9LRVkpCi0gICAgICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNlQnlMaW5l
TG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91dHB1dExpbmUpCi0gICAgICAgICAgICBzZWxmLmFkZExv
Z09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQotICAgICAgICAgICAgc2VsZi5m
YWlsZWRUZXN0Q291bnQgPSAwCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnNsYXZl
RW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19T
RVJWRVJfQVBJX0tFWSkKKyAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NF
UlZFUl9BUElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQorICAgICAg
ICBzZWxmLmxvZ19vYnNlcnZlciA9IFBhcnNlQnlMaW5lTG9nT2JzZXJ2ZXIoc2VsZi5wYXJzZU91
dHB1dExpbmUpCisgICAgICAgIHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2df
b2JzZXJ2ZXIpCisgICAgICAgIHNlbGYuZmFpbGVkVGVzdENvdW50ID0gMAogICAgICAgICBhcHBl
bmRDdXN0b21UZXN0aW5nRmxhZ3Moc2VsZiwgc2VsZi5nZXRQcm9wZXJ0eSgncGxhdGZvcm0nKSwg
c2VsZi5nZXRQcm9wZXJ0eSgnZGV2aWNlX21vZGVsJykpCiAgICAgICAgIHJldHVybiBzaGVsbC5U
ZXN0LnN0YXJ0KHNlbGYpCiAKICAgICBkZWYgY291bnRGYWlsdXJlcyhzZWxmLCBjbWQpOgotICAg
ICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5m
YWlsZWRUZXN0Q291bnQKLQotICAgICAgICBsb2dfdGV4dCA9IGNtZC5sb2dzWydzdGRpbyddLmdl
dFRleHQoKQotCi0gICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHInUmFuICg/UDxyYW4+XGQrKSB0
ZXN0cyBvZiAoP1A8dG90YWw+XGQrKSB3aXRoICg/UDxwYXNzZWQ+XGQrKSBzdWNjZXNzZnVsJywg
bG9nX3RleHQpCi0gICAgICAgIGlmIG5vdCBtYXRjaDoKLSAgICAgICAgICAgIHJldHVybiAtMQot
ICAgICAgICByZXR1cm4gaW50KG1hdGNoLmdyb3VwKCdyYW4nKSkgLSBpbnQobWF0Y2guZ3JvdXAo
J3Bhc3NlZCcpKQorICAgICAgICByZXR1cm4gc2VsZi5mYWlsZWRUZXN0Q291bnQKIAogICAgIGRl
ZiBwYXJzZU91dHB1dExpbmUoc2VsZiwgbGluZSk6CiAgICAgICAgIG1hdGNoID0gc2VsZi50ZXN0
X3N1bW1hcnlfcmUubWF0Y2gobGluZSkKQEAgLTc3NiwxMCArNjU1LDkgQEAgY2xhc3MgUnVuUHl0
aG9uVGVzdHMoVGVzdFdpdGhGYWlsdXJlQ291bgogICAgIHRlc3Rfc3VtbWFyeV9yZSA9IHJlLmNv
bXBpbGUocideRkFJTEVEIFwoKD9QPGNvdW50cz5bXildKylcKScpICAjIGUuZy46IEZBSUxFRCAo
ZmFpbHVyZXM9MiwgZXJyb3JzPTEpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIGlm
IFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYubG9nX29ic2VydmVyID0g
UGFyc2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKLSAgICAgICAgICAg
IHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCi0gICAgICAg
ICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKKyAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIg
PSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQorICAgICAgICBz
ZWxmLmFkZExvZ09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQorICAgICAgICBz
ZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKICAgICAgICAgcGxhdGZvcm0gPSBzZWxmLmdldFByb3Bl
cnR5KCdwbGF0Zm9ybScpCiAgICAgICAgICMgUHl0aG9uIHRlc3RzIGFyZSBmbGFreSBvbiB0aGUg
R1RLIGJ1aWxkZXJzLCBydW5uaW5nIHRoZW0gc2VyaWFsbHkKICAgICAgICAgIyBoZWxwcyBhbmQg
ZG9lcyBub3Qgc2lnbmlmaWNhbnRseSBwcm9sb25nIHRoZSBjeWNsZSB0aW1lLgpAQCAtNzk3LDE4
ICs2NzUsNyBAQCBjbGFzcyBSdW5QeXRob25UZXN0cyhUZXN0V2l0aEZhaWx1cmVDb3VuCiAgICAg
ICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IHN1bShpbnQoY29tcG9uZW50LnNwbGl0KCc9
JylbMV0pIGZvciBjb21wb25lbnQgaW4gbWF0Y2guZ3JvdXAoJ2NvdW50cycpLnNwbGl0KCcsICcp
KQogCiAgICAgZGVmIGNvdW50RmFpbHVyZXMoc2VsZiwgY21kKToKLSAgICAgICAgaWYgVVNFX0JV
SUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmFpbGVkVGVzdENvdW50
Ci0KLSAgICAgICAgbG9nVGV4dCA9IGNtZC5sb2dzWydzdGRpbyddLmdldFRleHQoKQotICAgICAg
ICAjIFdlJ3JlIGxvb2tpbmcgZm9yIHRoZSBsaW5lIHRoYXQgbG9va3MgbGlrZSB0aGlzOiBGQUlM
RUQgKGZhaWx1cmVzPTIsIGVycm9ycz0xKQotICAgICAgICByZWdleCA9IHJlLmNvbXBpbGUocide
RkFJTEVEIFwoKD9QPGNvdW50cz5bXildKylcKScpCi0gICAgICAgIGZvciBsaW5lIGluIGxvZ1Rl
eHQuc3BsaXRsaW5lcygpOgotICAgICAgICAgICAgbWF0Y2ggPSByZWdleC5tYXRjaChsaW5lKQot
ICAgICAgICAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICByZXR1cm4gc3VtKGludChjb21wb25lbnQuc3BsaXQoJz0nKVsxXSkgZm9yIGNvbXBv
bmVudCBpbiBtYXRjaC5ncm91cCgnY291bnRzJykuc3BsaXQoJywgJykpCi0gICAgICAgIHJldHVy
biAwCisgICAgICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAogCiAKIGNsYXNzIFJ1bldl
YktpdFB5VGVzdHMoUnVuUHl0aG9uVGVzdHMpOgpAQCAtODMyLDEwICs2OTksNyBAQCBjbGFzcyBS
dW5XZWJLaXRQeVRlc3RzKFJ1blB5dGhvblRlc3RzKToKICAgICAgICAgUnVuUHl0aG9uVGVzdHMu
X19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgot
ICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLndvcmtl
ckVudmlyb25tZW50W1JFU1VMVFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNf
U0VSVkVSX0FQSV9LRVkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnNsYXZlRW52
aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxUU19TRVJW
RVJfQVBJX0tFWSkKKyAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZF
Ul9BUElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQogICAgICAgICBy
ZXR1cm4gUnVuUHl0aG9uVGVzdHMuc3RhcnQoc2VsZikKIAogCkBAIC04NjIsMTAgKzcyNiw5IEBA
IGNsYXNzIFJ1blBlcmxUZXN0cyhUZXN0V2l0aEZhaWx1cmVDb3VudCkKICAgICB0ZXN0X3N1bW1h
cnlfcmUgPSByZS5jb21waWxlKHInXkZhaWxlZCBcZCsvXGQrIHRlc3QgcHJvZ3JhbXNcLiAoP1A8
Y291bnQ+XGQrKS9cZCsgc3VidGVzdHMgZmFpbGVkXC4nKSAgIyBlLmcuOiBGYWlsZWQgMi8xOSB0
ZXN0IHByb2dyYW1zLiA1LzM2MyBzdWJ0ZXN0cyBmYWlsZWQuCiAKICAgICBkZWYgc3RhcnQoc2Vs
Zik6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYu
bG9nX29ic2VydmVyID0gUGFyc2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGlu
ZSkKLSAgICAgICAgICAgIHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2Jz
ZXJ2ZXIpCi0gICAgICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKKyAgICAgICAgc2Vs
Zi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRwdXRM
aW5lKQorICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2Vy
dmVyKQorICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKICAgICAgICAgcmV0dXJuIHNo
ZWxsLlRlc3Quc3RhcnQoc2VsZikKIAogICAgIGRlZiBwYXJzZU91dHB1dExpbmUoc2VsZiwgbGlu
ZSk6CkBAIC04NzQsMTggKzczNyw3IEBAIGNsYXNzIFJ1blBlcmxUZXN0cyhUZXN0V2l0aEZhaWx1
cmVDb3VudCkKICAgICAgICAgICAgIHNlbGYuZmFpbGVkVGVzdENvdW50ID0gaW50KG1hdGNoLmdy
b3VwKCdjb3VudCcpKQogCiAgICAgZGVmIGNvdW50RmFpbHVyZXMoc2VsZiwgY21kKToKLSAgICAg
ICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmFp
bGVkVGVzdENvdW50Ci0KLSAgICAgICAgbG9nVGV4dCA9IGNtZC5sb2dzWydzdGRpbyddLmdldFRl
eHQoKQotICAgICAgICAjIFdlJ3JlIGxvb2tpbmcgZm9yIHRoZSBsaW5lIHRoYXQgbG9va3MgbGlr
ZSB0aGlzOiBGYWlsZWQgMi8xOSB0ZXN0IHByb2dyYW1zLiA1LzM2MyBzdWJ0ZXN0cyBmYWlsZWQu
Ci0gICAgICAgIHJlZ2V4ID0gcmUuY29tcGlsZShyJ15GYWlsZWQgXGQrL1xkKyB0ZXN0IHByb2dy
YW1zXC4gKD9QPGNvdW50PlxkKykvXGQrIHN1YnRlc3RzIGZhaWxlZFwuJykKLSAgICAgICAgZm9y
IGxpbmUgaW4gbG9nVGV4dC5zcGxpdGxpbmVzKCk6Ci0gICAgICAgICAgICBtYXRjaCA9IHJlZ2V4
Lm1hdGNoKGxpbmUpCi0gICAgICAgICAgICBpZiBub3QgbWF0Y2g6Ci0gICAgICAgICAgICAgICAg
Y29udGludWUKLSAgICAgICAgICAgIHJldHVybiBpbnQobWF0Y2guZ3JvdXAoJ2NvdW50JykpCi0g
ICAgICAgIHJldHVybiAwCisgICAgICAgIHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAogCiAK
IGNsYXNzIFJ1bkxMSU5UQ0xvb3BUZXN0cyhUZXN0V2l0aEZhaWx1cmVDb3VudCk6CkBAIC05MTQs
MTMgKzc2NiwxMCBAQCBjbGFzcyBSdW5MTElOVENMb29wVGVzdHMoVGVzdFdpdGhGYWlsdXJlCiAg
ICAgICAgIFRlc3RXaXRoRmFpbHVyZUNvdW50Ll9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZFUlNJ
T04yOgotICAgICAgICAgICAgc2VsZi53b3JrZXJFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9B
UElfS0VZXSA9IG9zLmdldGVudihSRVNVTFRTX1NFUlZFUl9BUElfS0VZKQotICAgICAgICAgICAg
c2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJzZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRw
dXRMaW5lKQotICAgICAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxv
Z19vYnNlcnZlcikKLSAgICAgICAgICAgIHNlbGYuZmFpbGVkVGVzdENvdW50ID0gMAotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5zbGF2ZUVudmlyb25tZW50W1JFU1VMVFNfU0VSVkVS
X0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkpCisgICAgICAgIHNl
bGYud29ya2VyRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYo
UkVTVUxUU19TRVJWRVJfQVBJX0tFWSkKKyAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBQYXJz
ZUJ5TGluZUxvZ09ic2VydmVyKHNlbGYucGFyc2VPdXRwdXRMaW5lKQorICAgICAgICBzZWxmLmFk
ZExvZ09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9nX29ic2VydmVyKQorICAgICAgICBzZWxmLmZh
aWxlZFRlc3RDb3VudCA9IDAKICAgICAgICAgcmV0dXJuIHNoZWxsLlRlc3Quc3RhcnQoc2VsZikK
IAogICAgIGRlZiBwYXJzZU91dHB1dExpbmUoc2VsZiwgbGluZSk6CkBAIC05MjksMTggKzc3OCw3
IEBAIGNsYXNzIFJ1bkxMSU5UQ0xvb3BUZXN0cyhUZXN0V2l0aEZhaWx1cmUKICAgICAgICAgICAg
IHNlbGYuZmFpbGVkVGVzdENvdW50ID0gaW50KG1hdGNoLmdyb3VwKCdjb3VudCcpKQogCiAgICAg
ZGVmIGNvdW50RmFpbHVyZXMoc2VsZiwgY21kKToKLSAgICAgICAgaWYgVVNFX0JVSUxEQk9UX1ZF
UlNJT04yOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmFpbGVkVGVzdENvdW50Ci0KLSAgICAg
ICAgbG9nVGV4dCA9IGNtZC5sb2dzWydzdGRpbyddLmdldFRleHQoKQotICAgICAgICAjIFdlJ3Jl
IGxvb2tpbmcgZm9yIHRoZSBsaW5lIHRoYXQgbG9va3MgbGlrZSB0aGlzOiAwIHJlZ3Jlc3Npb25z
IGZvdW5kLgotICAgICAgICByZWdleCA9IHJlLmNvbXBpbGUocidccyooP1A8Y291bnQ+XGQrKSBy
ZWdyZXNzaW9ucz8gZm91bmQuJykKLSAgICAgICAgZm9yIGxpbmUgaW4gbG9nVGV4dC5zcGxpdGxp
bmVzKCk6Ci0gICAgICAgICAgICBtYXRjaCA9IHJlZ2V4Lm1hdGNoKGxpbmUpCi0gICAgICAgICAg
ICBpZiBub3QgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHJl
dHVybiBpbnQobWF0Y2guZ3JvdXAoJ2NvdW50JykpCi0gICAgICAgIHJldHVybiAwCisgICAgICAg
IHJldHVybiBzZWxmLmZhaWxlZFRlc3RDb3VudAogCiAKIGNsYXNzIFJ1bjMyYml0SlNDVGVzdHMo
VGVzdFdpdGhGYWlsdXJlQ291bnQpOgpAQCAtOTY5LDEzICs4MDcsMTAgQEAgY2xhc3MgUnVuMzJi
aXRKU0NUZXN0cyhUZXN0V2l0aEZhaWx1cmVDbwogICAgICAgICBUZXN0V2l0aEZhaWx1cmVDb3Vu
dC5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6
Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHNlbGYud29y
a2VyRW52aXJvbm1lbnRbUkVTVUxUU19TRVJWRVJfQVBJX0tFWV0gPSBvcy5nZXRlbnYoUkVTVUxU
U19TRVJWRVJfQVBJX0tFWSkKLSAgICAgICAgICAgIHNlbGYubG9nX29ic2VydmVyID0gUGFyc2VC
eUxpbmVMb2dPYnNlcnZlcihzZWxmLnBhcnNlT3V0cHV0TGluZSkKLSAgICAgICAgICAgIHNlbGYu
YWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2ZXIpCi0gICAgICAgICAgICBz
ZWxmLmZhaWxlZFRlc3RDb3VudCA9IDAKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu
c2xhdmVFbnZpcm9ubWVudFtSRVNVTFRTX1NFUlZFUl9BUElfS0VZXSA9IG9zLmdldGVudihSRVNV
TFRTX1NFUlZFUl9BUElfS0VZKQorICAgICAgICBzZWxmLndvcmtlckVudmlyb25tZW50W1JFU1VM
VFNfU0VSVkVSX0FQSV9LRVldID0gb3MuZ2V0ZW52KFJFU1VMVFNfU0VSVkVSX0FQSV9LRVkpCisg
ICAgICAgIHNlbGYubG9nX29ic2VydmVyID0gUGFyc2VCeUxpbmVMb2dPYnNlcnZlcihzZWxmLnBh
cnNlT3V0cHV0TGluZSkKKyAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxm
LmxvZ19vYnNlcnZlcikKKyAgICAgICAgc2VsZi5mYWlsZWRUZXN0Q291bnQgPSAwCiAgICAgICAg
IHJldHVybiBzaGVsbC5UZXN0LnN0YXJ0KHNlbGYpCiAKICAgICBkZWYgcGFyc2VPdXRwdXRMaW5l
KHNlbGYsIGxpbmUpOgpAQCAtOTg0LDE4ICs4MTksNyBAQCBjbGFzcyBSdW4zMmJpdEpTQ1Rlc3Rz
KFRlc3RXaXRoRmFpbHVyZUNvCiAgICAgICAgICAgICBzZWxmLmZhaWxlZFRlc3RDb3VudCA9IGlu
dChtYXRjaC5ncm91cCgnY291bnQnKSkKIAogICAgIGRlZiBjb3VudEZhaWx1cmVzKHNlbGYsIGNt
ZCk6Ci0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLmZhaWxlZFRlc3RDb3VudAotCi0gICAgICAgIGxvZ1RleHQgPSBjbWQubG9nc1snc3Rk
aW8nXS5nZXRUZXh0KCkKLSAgICAgICAgIyBXZSdyZSBsb29raW5nIGZvciB0aGUgbGluZSB0aGF0
IGxvb2tzIGxpa2UgdGhpczogMCBmYWlsdXJlcyBmb3VuZC4KLSAgICAgICAgcmVnZXggPSByZS5j
b21waWxlKHInXHMqKD9QPGNvdW50PlxkKykgZmFpbHVyZXM/IGZvdW5kLicpCi0gICAgICAgIGZv
ciBsaW5lIGluIGxvZ1RleHQuc3BsaXRsaW5lcygpOgotICAgICAgICAgICAgbWF0Y2ggPSByZWdl
eC5tYXRjaChsaW5lKQotICAgICAgICAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICAgICAgICAg
IGNvbnRpbnVlCi0gICAgICAgICAgICByZXR1cm4gaW50KG1hdGNoLmdyb3VwKCdjb3VudCcpKQot
ICAgICAgICByZXR1cm4gMAorICAgICAgICByZXR1cm4gc2VsZi5mYWlsZWRUZXN0Q291bnQKIAog
CiBjbGFzcyBSdW5CaW5kaW5nc1Rlc3RzKHNoZWxsLlRlc3QpOgpAQCAtMTI0MywxMCArMTA2Nyw3
IEBAIGNsYXNzIFVwbG9hZFRlc3RSZXN1bHRzKHRyYW5zZmVyLkZpbGVVcGwKICAgICBtYXN0ZXJk
ZXN0ID0gV2l0aFByb3BlcnRpZXMoInB1YmxpY19odG1sL3Jlc3VsdHMvJShidWlsZGVybmFtZSlz
L3IlKGdvdF9yZXZpc2lvbilzICglKGJ1aWxkbnVtYmVyKXMpLnppcCIpCiAKICAgICBkZWYgX19p
bml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6
Ci0gICAgICAgICAgICBrd2FyZ3NbJ3dvcmtlcnNyYyddID0gc2VsZi53b3JrZXJzcmMKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIGt3YXJnc1snc2xhdmVzcmMnXSA9IHNlbGYud29ya2Vyc3Jj
CisgICAgICAgIGt3YXJnc1snd29ya2Vyc3JjJ10gPSBzZWxmLndvcmtlcnNyYwogICAgICAgICBr
d2FyZ3NbJ21hc3RlcmRlc3QnXSA9IHNlbGYubWFzdGVyZGVzdAogICAgICAgICBrd2FyZ3NbJ21v
ZGUnXSA9IDBvNjQ0CiAgICAgICAgIGt3YXJnc1snYmxvY2tzaXplJ10gPSAxMDI0ICogMjU2CkBA
IC0xMjYxLDE4ICsxMDgyLDE1IEBAIGNsYXNzIFRyYW5zZmVyVG9TMyhtYXN0ZXIuTWFzdGVyU2hl
bGxDb20KICAgICBtaW5pZmllZEFyY2hpdmUgPSBXaXRoUHJvcGVydGllcygiYXJjaGl2ZXMvJShm
dWxsUGxhdGZvcm0pcy0lKGFyY2hpdGVjdHVyZSlzLSUoY29uZmlndXJhdGlvbilzL21pbmlmaWVk
LSUoZ290X3JldmlzaW9uKXMuemlwIikKICAgICBpZGVudGlmaWVyID0gV2l0aFByb3BlcnRpZXMo
IiUoZnVsbFBsYXRmb3JtKXMtJShhcmNoaXRlY3R1cmUpcy0lKGNvbmZpZ3VyYXRpb24pcyIpCiAg
ICAgcmV2aXNpb24gPSBXaXRoUHJvcGVydGllcygiJShnb3RfcmV2aXNpb24pcyIpCi0gICAgY29t
bWFuZCA9IFsicHl0aG9uIiwgIi4uL1NoYXJlZC90cmFuc2Zlci1hcmNoaXZlLXRvLXMzIiwgIi0t
cmV2aXNpb24iLCByZXZpc2lvbiwgIi0taWRlbnRpZmllciIsIGlkZW50aWZpZXIsICItLWFyY2hp
dmUiLCBhcmNoaXZlXQorICAgIGNvbW1hbmQgPSBbInB5dGhvbjMiLCAiLi4vU2hhcmVkL3RyYW5z
ZmVyLWFyY2hpdmUtdG8tczMiLCAiLS1yZXZpc2lvbiIsIHJldmlzaW9uLCAiLS1pZGVudGlmaWVy
IiwgaWRlbnRpZmllciwgIi0tYXJjaGl2ZSIsIGFyY2hpdmVdCiAgICAgaGFsdE9uRmFpbHVyZSA9
IFRydWUKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIGt3YXJn
c1snY29tbWFuZCddID0gc2VsZi5jb21tYW5kCi0gICAgICAgIGlmIFVTRV9CVUlMREJPVF9WRVJT
SU9OMjoKLSAgICAgICAgICAgIGt3YXJnc1snbG9nRW52aXJvbiddID0gRmFsc2UKKyAgICAgICAg
a3dhcmdzWydsb2dFbnZpcm9uJ10gPSBGYWxzZQogICAgICAgICBtYXN0ZXIuTWFzdGVyU2hlbGxD
b21tYW5kLl9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgot
ICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBzZWxmLmNvbW1h
bmRbMF0gPSAncHl0aG9uMycKICAgICAgICAgcmV0dXJuIG1hc3Rlci5NYXN0ZXJTaGVsbENvbW1h
bmQuc3RhcnQoc2VsZikKIAogICAgIGRlZiBmaW5pc2hlZChzZWxmLCByZXN1bHQpOgpAQCAtMTI4
NSwzMyArMTEwMywxOSBAQCBjbGFzcyBUcmFuc2ZlclRvUzMobWFzdGVyLk1hc3RlclNoZWxsQ29t
CiBjbGFzcyBFeHRyYWN0VGVzdFJlc3VsdHMobWFzdGVyLk1hc3RlclNoZWxsQ29tbWFuZCk6CiAg
ICAgbmFtZSA9ICdleHRyYWN0LXRlc3QtcmVzdWx0cycKICAgICBkZXNjcmlwdGlvbkRvbmUgPSBb
J0V4dHJhY3RlZCB0ZXN0IHJlc3VsdHMnXQotICAgIGlmIFVTRV9CVUlMREJPVF9WRVJTSU9OMjoK
LSAgICAgICAgcmVuZGVyYWJsZXMgPSBbJ3Jlc3VsdERpcmVjdG9yeScsICd6aXBGaWxlJ10KKyAg
ICByZW5kZXJhYmxlcyA9IFsncmVzdWx0RGlyZWN0b3J5JywgJ3ppcEZpbGUnXQogCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICAga3dhcmdzWydjb21tYW5kJ10gPSAi
IgotICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0gICAgICAgICAgICBrd2FyZ3Nb
J2xvZ0Vudmlyb24nXSA9IEZhbHNlCi0gICAgICAgICAgICBzZWxmLnppcEZpbGUgPSBJbnRlcnBv
bGF0ZSgncHVibGljX2h0bWwvcmVzdWx0cy8lKHByb3A6YnVpbGRlcm5hbWUpcy9yJShwcm9wOmdv
dF9yZXZpc2lvbilzICglKHByb3A6YnVpbGRudW1iZXIpcykuemlwJykKLSAgICAgICAgICAgIHNl
bGYucmVzdWx0RGlyZWN0b3J5ID0gSW50ZXJwb2xhdGUoJ3B1YmxpY19odG1sL3Jlc3VsdHMvJShw
cm9wOmJ1aWxkZXJuYW1lKXMvciUocHJvcDpnb3RfcmV2aXNpb24pcyAoJShwcm9wOmJ1aWxkbnVt
YmVyKXMpJykKLSAgICAgICAgICAgIGt3YXJnc1snY29tbWFuZCddID0gWydlY2hvJywgJ1Vuemlw
cGluZyBpbiBiYWNrZ3JvdW5kLCBpdCBtaWdodCB0YWtlIGEgd2hpbGUuJ10KKyAgICAgICAga3dh
cmdzWydsb2dFbnZpcm9uJ10gPSBGYWxzZQorICAgICAgICBzZWxmLnppcEZpbGUgPSBJbnRlcnBv
bGF0ZSgncHVibGljX2h0bWwvcmVzdWx0cy8lKHByb3A6YnVpbGRlcm5hbWUpcy9yJShwcm9wOmdv
dF9yZXZpc2lvbilzICglKHByb3A6YnVpbGRudW1iZXIpcykuemlwJykKKyAgICAgICAgc2VsZi5y
ZXN1bHREaXJlY3RvcnkgPSBJbnRlcnBvbGF0ZSgncHVibGljX2h0bWwvcmVzdWx0cy8lKHByb3A6
YnVpbGRlcm5hbWUpcy9yJShwcm9wOmdvdF9yZXZpc2lvbilzICglKHByb3A6YnVpbGRudW1iZXIp
cyknKQorICAgICAgICBrd2FyZ3NbJ2NvbW1hbmQnXSA9IFsnZWNobycsICdVbnppcHBpbmcgaW4g
YmFja2dyb3VuZCwgaXQgbWlnaHQgdGFrZSBhIHdoaWxlLiddCiAgICAgICAgIG1hc3Rlci5NYXN0
ZXJTaGVsbENvbW1hbmQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAKICAgICBkZWYgcmVzdWx0
RGlyZWN0b3J5VVJMKHNlbGYpOgotICAgICAgICBpZiBVU0VfQlVJTERCT1RfVkVSU0lPTjI6Ci0g
ICAgICAgICAgICBwYXRoID0gc2VsZi5yZXN1bHREaXJlY3RvcnkucmVwbGFjZSgncHVibGljX2h0
bWwvcmVzdWx0cy8nLCAnJykgKyAnLycKLSAgICAgICAgICAgIHJldHVybiAne317fScuZm9ybWF0
KFMzX1JFU1VMVFNfVVJMLCBwYXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJu
IHNlbGYuYnVpbGQuZ2V0UHJvcGVydGllcygpLnJlbmRlcihzZWxmLnJlc3VsdERpcmVjdG9yeSku
cmVwbGFjZSgncHVibGljX2h0bWwvJywgJy8nKSArICcvJwotCi0gICAgZGVmIHN0YXJ0KHNlbGYp
OgotICAgICAgICBpZiBub3QgVVNFX0JVSUxEQk9UX1ZFUlNJT04yOgotICAgICAgICAgICAgc2Vs
Zi56aXBGaWxlID0gV2l0aFByb3BlcnRpZXMoInB1YmxpY19odG1sL3Jlc3VsdHMvJShidWlsZGVy
bmFtZSlzL3IlKGdvdF9yZXZpc2lvbilzICglKGJ1aWxkbnVtYmVyKXMpLnppcCIpCi0gICAgICAg
ICAgICBzZWxmLnJlc3VsdERpcmVjdG9yeSA9IFdpdGhQcm9wZXJ0aWVzKCJwdWJsaWNfaHRtbC9y
ZXN1bHRzLyUoYnVpbGRlcm5hbWUpcy9yJShnb3RfcmV2aXNpb24pcyAoJShidWlsZG51bWJlcilz
KSIpCi0gICAgICAgICAgICBzZWxmLnppcEZpbGUgPSBzZWxmLmJ1aWxkLmdldFByb3BlcnRpZXMo
KS5yZW5kZXIoc2VsZi56aXBGaWxlKQotICAgICAgICAgICAgc2VsZi5yZXN1bHREaXJlY3Rvcnkg
PSBzZWxmLmJ1aWxkLmdldFByb3BlcnRpZXMoKS5yZW5kZXIoc2VsZi5yZXN1bHREaXJlY3Rvcnkp
Ci0gICAgICAgICAgICBzZWxmLmNvbW1hbmQgPSBbJ3VuemlwJywgJy1xJywgJy1vJywgc2VsZi56
aXBGaWxlLCAnLWQnLCBzZWxmLnJlc3VsdERpcmVjdG9yeV0KLSAgICAgICAgcmV0dXJuIG1hc3Rl
ci5NYXN0ZXJTaGVsbENvbW1hbmQuc3RhcnQoc2VsZikKKyAgICAgICAgcGF0aCA9IHNlbGYucmVz
dWx0RGlyZWN0b3J5LnJlcGxhY2UoJ3B1YmxpY19odG1sL3Jlc3VsdHMvJywgJycpICsgJy8nCisg
ICAgICAgIHJldHVybiAne317fScuZm9ybWF0KFMzX1JFU1VMVFNfVVJMLCBwYXRoKQogCiAgICAg
ZGVmIGFkZEN1c3RvbVVSTHMoc2VsZik6CiAgICAgICAgIHNlbGYuYWRkVVJMKCJ2aWV3IGxheW91
dCB0ZXN0IHJlc3VsdHMiLCBzZWxmLnJlc3VsdERpcmVjdG9yeVVSTCgpICsgInJlc3VsdHMuaHRt
bCIpCkluZGV4OiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkJKHJldmlzaW9uIDI3MjY1NykK
KysrIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkJKHdvcmtpbmcgY29weSkKQEAg
LTEyMTksNyArMTIxOSw2IEBAIGNsYXNzIFJ1bkJ1aWxkV2ViS2l0T3JnVW5pdFRlc3RzKHNoZWxs
LlMKICAgICAgICAgc3VwZXIoUnVuQnVpbGRXZWJLaXRPcmdVbml0VGVzdHMsIHNlbGYpLl9faW5p
dF9fKHdvcmtkaXI9J2J1aWxkL1Rvb2xzL0NJU3VwcG9ydCcsIHRpbWVvdXQ9MiAqIDYwLCBsb2dF
bnZpcm9uPUZhbHNlLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAg
c2VsZi53b3JrZXJFbnZpcm9ubWVudFsnVVNFX0JVSUxEQk9UX1ZFUlNJT04yJ10gPSAnVHJ1ZScK
ICAgICAgICAgcmV0dXJuIHNoZWxsLlNoZWxsQ29tbWFuZC5zdGFydChzZWxmKQogCiAgICAgZGVm
IGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CkluZGV4OiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3MjY1NykKKysrIFRvb2xzL0NJU3VwcG9y
dC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTczOCw3ICs3
MzgsNiBAQCBjbGFzcyBUZXN0UnVuQnVpbGRXZWJLaXRPcmdVbml0VGVzdHMoQnVpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lb3V0PTEyMCwKICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Z0Vudmlyb249RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsncHl0aG9u
MycsICdydW5Vbml0dGVzdHMucHknLCAnYnVpbGQtd2Via2l0LW9yZyddLAotICAgICAgICAgICAg
ICAgICAgICAgICAgZW52PXsnVVNFX0JVSUxEQk9UX1ZFUlNJT04yJzogJ1RydWUnfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICsgMCwKICAgICAgICAgKQpAQCAtNzUy
LDcgKzc1MSw2IEBAIGNsYXNzIFRlc3RSdW5CdWlsZFdlYktpdE9yZ1VuaXRUZXN0cyhCdWkKICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9MTIwLAogICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nRW52aXJvbj1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9Wydw
eXRob24zJywgJ3J1blVuaXR0ZXN0cy5weScsICdidWlsZC13ZWJraXQtb3JnJ10sCi0gICAgICAg
ICAgICAgICAgICAgICAgICBlbnY9eydVU0VfQlVJTERCT1RfVkVSU0lPTjInOiAnVHJ1ZSd9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgKyBFeHBlY3RTaGVsbC5sb2co
J3N0ZGlvJywgc3Rkb3V0PSdVbmhhbmRsZWQgRXJyb3IuIFRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KTogS2V5cyBpbiBjbWQgbWlzc2luZyBmcm9tIGV4cGVjdGF0aW9uOiBbbG9nZmls
ZXMuanNvbl0nKQogICAgICAgICAgICAgKyAyLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>