<?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>218131</bug_id>
          
          <creation_ts>2020-10-23 11:27:16 -0700</creation_ts>
          <short_desc>[webkitpy] Remove the old autointaller</short_desc>
          <delta_ts>2020-10-23 12:27:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214950</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1701084</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-23 11:27:16 -0700</bug_when>
    <thetext>Now that everything has adopted webkitcorepy&apos;s autoinstaller, we should remove webkitpy&apos;s autoinstaller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701085</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-23 11:27:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/70627699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701090</commentid>
    <comment_count>2</comment_count>
      <attachid>412201</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-23 11:32:44 -0700</bug_when>
    <thetext>Created attachment 412201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701096</commentid>
    <comment_count>3</comment_count>
      <attachid>412201</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-10-23 11:40:29 -0700</bug_when>
    <thetext>Comment on attachment 412201
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701108</commentid>
    <comment_count>4</comment_count>
      <attachid>412203</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-23 12:01:02 -0700</bug_when>
    <thetext>Created attachment 412203
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701114</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-23 12:27:22 -0700</bug_when>
    <thetext>Committed r268937: &lt;https://trac.webkit.org/changeset/268937&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412203.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412201</attachid>
            <date>2020-10-23 11:32:44 -0700</date>
            <delta_ts>2020-10-23 12:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218131-20201023113243.patch</filename>
            <type>text/plain</type>
            <size>30120</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODkzMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFJlbW92ZSB0aGUgb2xkIGF1dG9pbnRhbGxlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTMxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDYyNzY5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5Ogor
ICAgICAgICAoVGVzdGVyLl9ydW5fdGVzdHMpOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG9sZCBhdXRv
aW5zdGFsbGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRf
Xy5weTogRGVsZXRlZCBjb250ZW50LgorICAgICAgICAoYXV0b2luc3RhbGxfZXZlcnl0aGluZyk6
IERlbGV0ZWQuCisKIDIwMjAtMTAtMjMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtidWlsZC53ZWJraXQub3JnXSBDcmVhdGUgbWFzdGVyLmNmZyBmb3Ig
bmV3ZXIgYnVpbGRib3QKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9hdXRvaW5zdGFsbC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vYXV0b2luc3RhbGwucHkJKHJldmlzaW9uIDI2ODkzMCkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9hdXRvaW5zdGFsbC5weQkobm9uZXhpc3RlbnQp
CkBAIC0xLDU0NSArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAwOSwgRGFuaWVsIEtyZWNoIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoQykgMjAxMCBDaHJpcyBKZXJkb25layAo
Y2plcmRvbmVrQHdlYmtpdC5vcmcpCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIwotIyAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0jCi0jICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIERhbmll
bCBLcmVjaCBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBIT0xE
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJTdXBwb3J0IGZv
ciBhdXRvbWF0aWNhbGx5IGRvd25sb2FkaW5nIFB5dGhvbiBwYWNrYWdlcyBmcm9tIGFuIFVSTC4i
IiIKLQotCi1pbXBvcnQgY29kZWNzCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQg
c2h1dGlsCi1pbXBvcnQgc3RhdAotaW1wb3J0IHN5cwotaW1wb3J0IHRhcmZpbGUKLWltcG9ydCB0
ZW1wZmlsZQotaW1wb3J0IHppcGZpbGUKLWltcG9ydCByZQotZnJvbSBkaXN0dXRpbHMgaW1wb3J0
IGRpcl91dGlsCi1mcm9tIGdsb2IgaW1wb3J0IGdsb2IKLWltcG9ydCBzdWJwcm9jZXNzCi0KLWlm
IHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6Ci0gICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBv
cnQgdXJsb3BlbgotICAgIGltcG9ydCB1cmxsaWIucGFyc2UgYXMgdXJscGFyc2UKLWVsc2U6Ci0g
ICAgZnJvbSB1cmxsaWIyIGltcG9ydCB1cmxvcGVuCi0gICAgaW1wb3J0IHVybHBhcnNlCi0KLQot
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotaWYgbm90IF9sb2cuaGFuZGxlcnM6
ICAjIE5vIHBhcmVudCBsb2dnZXJzIHNldHVwLgotICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVh
bUhhbmRsZXIoKQotICAgIGhhbmRsZXIuc2V0TGV2ZWwobG9nZ2luZy5JTkZPKQotICAgIGZvcm1h
dHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKGFzY3RpbWUpcyAtICUobmFtZSlzIC0gJShsZXZl
bG5hbWUpcyAtICUobWVzc2FnZSlzJykKLSAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0
ZXIpCi0gICAgX2xvZy5hZGRIYW5kbGVyKGhhbmRsZXIpCi0KLV9NSVJST1JfUkVHRVhTID0gcmUu
Y29tcGlsZSgnLipzb3VyY2Vmb3JnZS4qJyksIHJlLmNvbXBpbGUoJy4qcHlwaS4qJykKLV9QWVBJ
X0VOVl9WQVIgPSAnUFlQSV9NSVJST1JTJwotX1NPVVJDRUZPUkdFX0VOVl9WQVIgPSAnU09VUkNF
Rk9SR0VfTUlSUk9SUycKLV9DQUNIRV9FTlZfVkFSID0gJ0xPQ0FMX0FVVE9JTlNUQUxMX0NBQ0hF
JwotCi0KLWNsYXNzIEF1dG9JbnN0YWxsZXIob2JqZWN0KToKLQotICAgICIiIlN1cHBvcnRzIGF1
dG9tYXRpY2FsbHkgaW5zdGFsbGluZyBQeXRob24gcGFja2FnZXMgZnJvbSBhbiBVUkwuCi0KLSAg
ICBTdXBwb3J0cyB1bmNvbXByZXNzZWQgZmlsZXMsIC50YXIuZ3osIC50YXIuYnoyIGFuZCAuemlw
IGZvcm1hdHMuCi0KLSAgICBCYXNpYyB1c2FnZToKLQotICAgIGluc3RhbGxlciA9IEF1dG9JbnN0
YWxsZXIoKQotCi0gICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwOi8vcHlwaS5weXRob24u
b3JnL3BhY2thZ2VzL3NvdXJjZS9wL3BlcDgvcGVwOC0wLjUuMC50YXIuZ3ojbWQ1PTUxMmE4MThh
Zjk5NzkyOTBjZDYxOWNjZThlOWMyZTJiIiwKLSAgICAgICAgICAgICAgICAgICAgICB1cmxfc3Vi
cGF0aD0icGVwOC0wLjUuMC9wZXA4LnB5IikKLSAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0
dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL20vbWVjaGFuaXplL21lY2hhbml6
ZS0wLjIuNC56aXAiLAotICAgICAgICAgICAgICAgICAgICAgIHVybF9zdWJwYXRoPSJtZWNoYW5p
emUiKQotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwZW5kX3RvX3NlYXJj
aF9wYXRoPUZhbHNlLCBwcmVwZW5kX3RvX3NlYXJjaF9wYXRoPUZhbHNlLCBtYWtlX3BhY2thZ2U9
VHJ1ZSwKLSAgICAgICAgICAgICAgICAgdGFyZ2V0X2Rpcj1Ob25lLCB0ZW1wX2Rpcj1Ob25lKToK
LSAgICAgICAgIiIiQ3JlYXRlIGFuIEF1dG9JbnN0YWxsZXIgaW5zdGFuY2UsIGFuZCBzZXQgdXAg
dGhlIHRhcmdldCBkaXJlY3RvcnkuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICBhcHBlbmRf
dG9fc2VhcmNoX3BhdGg6IEEgYm9vbGVhbiB2YWx1ZSBvZiB3aGV0aGVyIHRvIGFwcGVuZCB0aGUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCBkaXJlY3RvcnkgdG8gdGhl
IHN5cy5wYXRoIHNlYXJjaCBwYXRoLgotICAgICAgICAgIHByZXBlbmRfdG9fc2VhcmNoX3BhdGg6
IEEgYm9vbGVhbiB2YWx1ZSBvZiB3aGV0aGVyIHRvIHByZXBlbmQgdGhlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YXJnZXQgZGlyZWN0b3J5IHRvIHRoZSBzeXMucGF0aCBzZWFy
Y2ggcGF0aC4KLSAgICAgICAgICBtYWtlX3BhY2thZ2U6IEEgYm9vbGVhbiB2YWx1ZSBvZiB3aGV0
aGVyIHRvIG1ha2UgdGhlIHRhcmdldAotICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5
IGEgcGFja2FnZS4gIFRoaXMgYWRkcyBhbiBfX2luaXRfXy5weSBmaWxlCi0gICAgICAgICAgICAg
ICAgICAgICAgICB0byB0aGUgdGFyZ2V0IGRpcmVjdG9yeSAtLSBhbGxvd2luZyBwYWNrYWdlcyBh
bmQKLSAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZXMgd2l0aGluIHRoZSB0YXJnZXQgZGly
ZWN0b3J5IHRvIGJlIGltcG9ydGVkCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBsaWNpdGx5
IHVzaW5nIGRvdHRlZCBtb2R1bGUgbmFtZXMuCi0gICAgICAgICAgdGFyZ2V0X2RpcjogVGhlIGRp
cmVjdG9yeSBwYXRoIHRvIHdoaWNoIHBhY2thZ2VzIHNob3VsZCBiZSBpbnN0YWxsZWQuCi0gICAg
ICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGZvbGRl
ciBjb250YWluaW5nCi0gICAgICAgICAgICAgICAgICAgICAgdGhpcyBtb2R1bGUgY2FsbGVkICJh
dXRvaW5zdGFsbGVkIi4KLSAgICAgICAgICB0ZW1wX2RpcjogVGhlIGRpcmVjdG9yeSBwYXRoIHRv
IHVzZSBmb3IgYW55IHRlbXBvcmFyeSBmaWxlcwotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
ZWQgd2hpbGUgZG93bmxvYWRpbmcsIHVuemlwcGluZywgYW5kIGV4dHJhY3RpbmcKLSAgICAgICAg
ICAgICAgICAgICAgcGFja2FnZXMgdG8gaW5zdGFsbC4gIERlZmF1bHRzIHRvIGEgc3RhbmRhcmQg
dGVtcG9yYXJ5Ci0gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uIGdlbmVyYXRlZCBieSB0aGUg
dGVtcGZpbGUgbW9kdWxlLiAgVGhpcwotICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgc2hv
dWxkIG5vcm1hbGx5IGJlIHVzZWQgb25seSBmb3IgZGV2ZWxvcG1lbnQKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdGluZy4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgdGFyZ2V0X2RpciBpcyBO
b25lOgotICAgICAgICAgICAgdGhpc19kaXIgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCi0g
ICAgICAgICAgICB0YXJnZXRfZGlyID0gb3MucGF0aC5qb2luKHRoaXNfZGlyLCAiYXV0b2luc3Rh
bGxlZCIpCi0KLSAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBleGlz
dHMuCi0gICAgICAgIHNlbGYuX3NldF91cF90YXJnZXRfZGlyKHRhcmdldF9kaXIsIGFwcGVuZF90
b19zZWFyY2hfcGF0aCwgcHJlcGVuZF90b19zZWFyY2hfcGF0aCwgbWFrZV9wYWNrYWdlKQotCi0g
ICAgICAgIHNlbGYuX3RhcmdldF9kaXIgPSB0YXJnZXRfZGlyCi0gICAgICAgIHNlbGYuX3RlbXBf
ZGlyID0gdGVtcF9kaXIKLQotICAgIGRlZiBfd3JpdGVfZmlsZShzZWxmLCBwYXRoLCB0ZXh0LCBl
bmNvZGluZyk6Ci0gICAgICAgIHdpdGggY29kZWNzLm9wZW4ocGF0aCwgInciLCBlbmNvZGluZykg
YXMgZmlsZWhhbmRsZToKLSAgICAgICAgICAgIGZpbGVoYW5kbGUud3JpdGUodGV4dCkKLQotICAg
IGRlZiBfc2V0X3VwX3RhcmdldF9kaXIoc2VsZiwgdGFyZ2V0X2RpciwgYXBwZW5kX3RvX3NlYXJj
aF9wYXRoLCBwcmVwZW5kX3RvX3NlYXJjaF9wYXRoLCBtYWtlX3BhY2thZ2UpOgotICAgICAgICAi
IiJTZXQgdXAgYSB0YXJnZXQgZGlyZWN0b3J5LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
dGFyZ2V0X2RpcjogVGhlIHBhdGggdG8gdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc2V0IHVwLgot
ICAgICAgICAgIGFwcGVuZF90b19zZWFyY2hfcGF0aDogQSBib29sZWFuIHZhbHVlIG9mIHdoZXRo
ZXIgdG8gYXBwZW5kIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0
IGRpcmVjdG9yeSB0byB0aGUgc3lzLnBhdGggc2VhcmNoIHBhdGguCi0gICAgICAgICAgcHJlcGVu
ZF90b19zZWFyY2hfcGF0aDogQSBib29sZWFuIHZhbHVlIG9mIHdoZXRoZXIgdG8gcHJlcGVuZCB0
aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCBkaXJlY3RvcnkgdG8g
dGhlIHN5cy5wYXRoIHNlYXJjaCBwYXRoLgotICAgICAgICAgIG1ha2VfcGFja2FnZTogQSBib29s
ZWFuIHZhbHVlIG9mIHdoZXRoZXIgdG8gbWFrZSB0aGUgdGFyZ2V0Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBkaXJlY3RvcnkgYSBwYWNrYWdlLiAgVGhpcyBhZGRzIGFuIF9faW5pdF9fLnB5IGZp
bGUKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSB0YXJnZXQgZGlyZWN0b3J5IC0tIGFs
bG93aW5nIHBhY2thZ2VzIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlcyB3aXRo
aW4gdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gYmUgaW1wb3J0ZWQKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGxpY2l0bHkgdXNpbmcgZG90dGVkIG1vZHVsZSBuYW1lcy4KLQotICAgICAgICAi
IiIKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHRhcmdldF9kaXIpOgotICAgICAgICAg
ICAgb3MubWFrZWRpcnModGFyZ2V0X2RpcikKLQotICAgICAgICBpZiBhcHBlbmRfdG9fc2VhcmNo
X3BhdGg6Ci0gICAgICAgICAgICBzeXMucGF0aC5hcHBlbmQodGFyZ2V0X2RpcikKLQotICAgICAg
ICBpZiBwcmVwZW5kX3RvX3NlYXJjaF9wYXRoOgotICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0
KDAsIHRhcmdldF9kaXIpCi0KLSAgICAgICAgaWYgbWFrZV9wYWNrYWdlOgotICAgICAgICAgICAg
c2VsZi5fbWFrZV9wYWNrYWdlKHRhcmdldF9kaXIpCi0KLSAgICBkZWYgX21ha2VfcGFja2FnZShz
ZWxmLCB0YXJnZXRfZGlyKToKLSAgICAgICAgaW5pdF9wYXRoID0gb3MucGF0aC5qb2luKHRhcmdl
dF9kaXIsICJfX2luaXRfXy5weSIpCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhpbml0
X3BhdGgpOgotICAgICAgICAgICAgdGV4dCA9ICgiIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFB5dGhvbiB0byBzZWFyY2ggdGhpcyAiCi0gICAgICAgICAgICAgICAgICAgICJkaXJlY3Rvcnkg
Zm9yIG1vZHVsZXMuXG4iKQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfZmlsZShpbml0X3BhdGgs
IHRleHQsICJhc2NpaSIpCi0KLSAgICBkZWYgX2NyZWF0ZV9zY3JhdGNoX2RpcmVjdG9yeV9pbm5l
cihzZWxmLCBwcmVmaXgpOgotICAgICAgICAiIiJDcmVhdGUgYSBzY3JhdGNoIGRpcmVjdG9yeSB3
aXRob3V0IGV4Y2VwdGlvbiBoYW5kbGluZy4KLQotICAgICAgICBDcmVhdGVzIGEgc2NyYXRjaCBk
aXJlY3RvcnkgaW5zaWRlIHRoZSBBdXRvSW5zdGFsbGVyIHRlbXAKLSAgICAgICAgZGlyZWN0b3J5
IHNlbGYuX3RlbXBfZGlyLCBvciBpbnNpZGUgYSBwbGF0Zm9ybS1kZXBlbmRlbnQgdGVtcAotICAg
ICAgICBkaXJlY3RvcnkgaWYgc2VsZi5fdGVtcF9kaXIgaXMgTm9uZS4gIFJldHVybnMgdGhlIHBh
dGggdG8gdGhlCi0gICAgICAgIGNyZWF0ZWQgc2NyYXRjaCBkaXJlY3RvcnkuCi0KLSAgICAgICAg
UmFpc2VzOgotICAgICAgICAgIE9TRXJyb3I6IFtFcnJubyAyXSBpZiB0aGUgY29udGFpbmluZyB0
ZW1wIGRpcmVjdG9yeSBzZWxmLl90ZW1wX2RpcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpcyBub3QgTm9uZSBhbmQgZG9lcyBub3QgZXhpc3QuCi0KLSAgICAgICAgIiIiCi0gICAgICAg
ICMgVGhlIHRlbXBmaWxlLm1rZHRlbXAoKSBtZXRob2QgZnVuY3Rpb24gcmVxdWlyZXMgdGhhdCB0
aGUKLSAgICAgICAgIyBkaXJlY3RvcnkgY29ycmVzcG9uZGluZyB0byB0aGUgImRpciIgcGFyYW1l
dGVyIGFscmVhZHkgZXhpc3QKLSAgICAgICAgIyBpZiBpdCBpcyBub3QgTm9uZS4KLSAgICAgICAg
c2NyYXRjaF9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKHByZWZpeD1wcmVmaXgucmVwbGFjZSgnLycs
ICcuJyksIGRpcj1zZWxmLl90ZW1wX2RpcikKLSAgICAgICAgcmV0dXJuIHNjcmF0Y2hfZGlyCi0K
LSAgICBkZWYgX2NyZWF0ZV9zY3JhdGNoX2RpcmVjdG9yeShzZWxmLCB0YXJnZXRfbmFtZSk6Ci0g
ICAgICAgICIiIkNyZWF0ZSBhIHRlbXBvcmFyeSBzY3JhdGNoIGRpcmVjdG9yeSwgYW5kIHJldHVy
biBpdHMgcGF0aC4KLQotICAgICAgICBUaGUgc2NyYXRjaCBkaXJlY3RvcnkgaXMgZ2VuZXJhdGVk
IGluc2lkZSB0aGUgdGVtcCBkaXJlY3RvcnkKLSAgICAgICAgb2YgdGhpcyBBdXRvSW5zdGFsbGVy
IGluc3RhbmNlLiAgVGhpcyBtZXRob2QgYWxzbyBjcmVhdGVzIHRoZQotICAgICAgICB0ZW1wIGRp
cmVjdG9yeSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LgotCi0gICAgICAgICIiIgotICAg
ICAgICBwcmVmaXggPSB0YXJnZXRfbmFtZS5yZXBsYWNlKG9zLnNlcCwgIl8iKSArICJfIgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzY3JhdGNoX2RpciA9IHNlbGYuX2NyZWF0ZV9zY3JhdGNo
X2RpcmVjdG9yeV9pbm5lcihwcmVmaXgpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAg
ICAgICAgIyBIYW5kbGUgY2FzZSBvZiBjb250YWluaW5nIHRlbXAgZGlyZWN0b3J5IG5vdCBleGlz
dGluZy0tCi0gICAgICAgICAgICAjIE9TRXJyb3I6IFtFcnJubyAyXSBObyBzdWNoIGZpbGUgb3Ig
ZGlyZWN0b3J5Oi4uLgotICAgICAgICAgICAgdGVtcF9kaXIgPSBzZWxmLl90ZW1wX2RpcgotICAg
ICAgICAgICAgaWYgdGVtcF9kaXIgaXMgTm9uZSBvciBvcy5wYXRoLmV4aXN0cyh0ZW1wX2Rpcik6
Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICMgRWxzZSB0cnkgYWdhaW4gYWZ0
ZXIgY3JlYXRpbmcgdGhlIHRlbXAgZGlyZWN0b3J5LgotICAgICAgICAgICAgb3MubWFrZWRpcnMo
dGVtcF9kaXIpCi0gICAgICAgICAgICBzY3JhdGNoX2RpciA9IHNlbGYuX2NyZWF0ZV9zY3JhdGNo
X2RpcmVjdG9yeV9pbm5lcihwcmVmaXgpCi0KLSAgICAgICAgcmV0dXJuIHNjcmF0Y2hfZGlyCi0K
LSAgICBkZWYgX3VybF9kb3dubG9hZGVkX3BhdGgoc2VsZiwgdGFyZ2V0X25hbWUpOgotICAgICAg
ICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYuX3RhcmdldF9kaXIsICIuJXMudXJsIiAlIHRhcmdl
dF9uYW1lLnJlcGxhY2UoJy8nLCAnXycpKQotCi0gICAgZGVmIF9pc19kb3dubG9hZGVkKHNlbGYs
IHRhcmdldF9uYW1lLCB1cmwpOgotICAgICAgICB2ZXJzaW9uX3BhdGggPSBzZWxmLl91cmxfZG93
bmxvYWRlZF9wYXRoKHRhcmdldF9uYW1lKQotCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyh2ZXJzaW9uX3BhdGgpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgd2l0
aCBjb2RlY3Mub3Blbih2ZXJzaW9uX3BhdGgsICJyIiwgInV0Zi04IikgYXMgZmlsZWhhbmRsZToK
LSAgICAgICAgICAgIHJldHVybiBmaWxlaGFuZGxlLnJlYWQoKS5zdHJpcCgpID09IHVybC5zdHJp
cCgpCi0KLSAgICBkZWYgX3JlY29yZF91cmxfZG93bmxvYWRlZChzZWxmLCB0YXJnZXRfbmFtZSwg
dXJsKToKLSAgICAgICAgdmVyc2lvbl9wYXRoID0gc2VsZi5fdXJsX2Rvd25sb2FkZWRfcGF0aCh0
YXJnZXRfbmFtZSkKLSAgICAgICAgc2VsZi5fd3JpdGVfZmlsZSh2ZXJzaW9uX3BhdGgsIHVybCwg
InV0Zi04IikKLQotICAgIGRlZiBfZXh0cmFjdF90YXIoc2VsZiwgcGF0aCwgc2NyYXRjaF9kaXIp
OgotICAgICAgICAjIHRhcmZpbGUuZXh0cmFjdGFsbCgpIGV4dHJhY3RzIHRvIGEgcGF0aCB3aXRo
b3V0IHRoZSB0cmFpbGluZyAiLnRhci5neiIgb3IgIi50YXIuYnoyIi4KLQotICAgICAgICBpZiBw
YXRoLmVuZHN3aXRoKCIudGFyLmd6Iik6Ci0gICAgICAgICAgICB0YXJGaWxlU3VmZml4ID0gIi50
YXIuZ3oiCi0gICAgICAgIGVsaWYgcGF0aC5lbmRzd2l0aCgiLnRhci5iejIiKToKLSAgICAgICAg
ICAgIHRhckZpbGVTdWZmaXggPSAiLnRhci5iejIiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oIi4uLiIpCi0KLSAgICAgICAgdGFyZ2V0X2Jhc2VuYW1lID0gb3Mu
cGF0aC5iYXNlbmFtZShwYXRoWzotbGVuKHRhckZpbGVTdWZmaXgpXSkKLSAgICAgICAgdGFyZ2V0
X3BhdGggPSBvcy5wYXRoLmpvaW4oc2NyYXRjaF9kaXIsIHRhcmdldF9iYXNlbmFtZSkKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICB0YXJfZmlsZSA9IHRhcmZpbGUub3BlbihwYXRoKQotICAg
ICAgICBleGNlcHQgdGFyZmlsZS5SZWFkRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgIyBBcHBl
bmQgZXhpc3RpbmcgRXJyb3IgbWVzc2FnZSB0byBuZXcgRXJyb3IuCi0gICAgICAgICAgICBtZXNz
YWdlID0gKCJDb3VsZCBub3Qgb3BlbiB0YXIgZmlsZTogJXNcbiIKLSAgICAgICAgICAgICAgICAg
ICAgICAgIiBUaGUgZmlsZSBwcm9iYWJseSBkb2VzIG5vdCBoYXZlIHRoZSBjb3JyZWN0IGZvcm1h
dC5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIiAtLT4gSW5uZXIgbWVzc2FnZTogJXMiCi0g
ICAgICAgICAgICAgICAgICAgICAgICUgKHBhdGgsIGVycikpCi0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24obWVzc2FnZSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0YXJfZmlsZS5l
eHRyYWN0YWxsKHRhcmdldF9wYXRoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgdGFy
X2ZpbGUuY2xvc2UoKQotCi0gICAgICAgIHJldHVybiB0YXJnZXRfcGF0aAotCi0gICAgIyBUaGlz
IGlzIGEgcmVwbGFjZW1lbnQgZm9yIFppcEZpbGUuZXh0cmFjdGFsbCgpLCB3aGljaCBkb2Vzbid0
Ci0gICAgIyBzZWVtIHRvIHdvcmsgd2l0aCBhbnkgc2hpcHBlZCBweXRob24gMi43LnggdmVyc2lv
bnMuCi0gICAgIyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzc1MTk+IGZvciBkZXRhaWxzLgotICAgIGRlZiBfZXh0cmFjdF9hbGwoc2VsZiwgemlwX2ZpbGUs
IHRhcmdldF9kaXIpOgotICAgICAgICBmb3IgbmFtZSBpbiB6aXBfZmlsZS5uYW1lbGlzdCgpOgot
ICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbih0YXJnZXRfZGlyLCBuYW1lKQotICAgICAg
ICAgICAgaWYgbm90IG9zLnBhdGguYmFzZW5hbWUocGF0aCk6Ci0gICAgICAgICAgICAgICAgIyBU
aGVuIHRoZSBwYXRoIGVuZHMgaW4gYSBzbGFzaCwgc28gaXQgaXMgYSBkaXJlY3RvcnkuCi0gICAg
ICAgICAgICAgICAgb3MubWFrZWRpcnMocGF0aCkKLSAgICAgICAgICAgICAgICBjb250aW51ZQot
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIyBXZSBvcGVuIHRoaXMgZmlsZSB3
L28gZW5jb2RpbmcsIGFzIHdlJ3JlIHJlYWRpbmcvd3JpdGluZwotICAgICAgICAgICAgICAgICMg
dGhlIHJhdyBieXRlLXN0cmVhbSBmcm9tIHRoZSB6aXAgZmlsZS4KLSAgICAgICAgICAgICAgICBv
dXRmaWxlID0gb3BlbihwYXRoLCAnd2InKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0g
ICAgICAgICAgICAgICAgIyBOb3QgYWxsIHppcCBmaWxlcyBzZWVtIHRvIGxpc3QgdGhlIGRpcmVj
dG9yaWVzIGV4cGxpY2l0bHksCi0gICAgICAgICAgICAgICAgIyBzbyB0cnkgYWdhaW4gYWZ0ZXIg
Y3JlYXRpbmcgdGhlIGNvbnRhaW5pbmcgZGlyZWN0b3J5LgotICAgICAgICAgICAgICAgIF9sb2cu
ZGVidWcoIkdvdCBJT0Vycm9yOiByZXRyeWluZyBhZnRlciBjcmVhdGluZyBkaXJlY3RvcnkuLi4i
KQotICAgICAgICAgICAgICAgIGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKLSAgICAg
ICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQotICAgICAgICAgICAgICAgIG91dGZpbGUg
PSBvcGVuKHBhdGgsICd3YicpCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBv
dXRmaWxlLndyaXRlKHppcF9maWxlLnJlYWQobmFtZSkpCi0gICAgICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgICAgIG91dGZpbGUuY2xvc2UoKQotCi0gICAgZGVmIF91bnppcChzZWxmLCBw
YXRoLCBzY3JhdGNoX2Rpcik6Ci0gICAgICAgICMgemlwZmlsZS5leHRyYWN0YWxsKCkgZXh0cmFj
dHMgdG8gYSBwYXRoIHdpdGhvdXQgdGhlIHRyYWlsaW5nICIuemlwIi4KLSAgICAgICAgdGFyZ2V0
X2Jhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShwYXRoWzotbGVuKCIuemlwIildKQotICAgICAg
ICB0YXJnZXRfcGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2Jhc2VuYW1l
KQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHppcF9maWxlID0gemlwZmlsZS5aaXBGaWxl
KHBhdGgsICJyIikKLSAgICAgICAgZXhjZXB0IHppcGZpbGUuQmFkWmlwZmlsZSBhcyBlcnI6Ci0g
ICAgICAgICAgICBtZXNzYWdlID0gKCJDb3VsZCBub3Qgb3BlbiB6aXAgZmlsZTogJXNcbiIKLSAg
ICAgICAgICAgICAgICAgICAgICAgIiAtLT4gSW5uZXIgbWVzc2FnZTogJXMiCi0gICAgICAgICAg
ICAgICAgICAgICAgICUgKHBhdGgsIGVycikpCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
bWVzc2FnZSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9leHRyYWN0X2FsbCh6
aXBfZmlsZSwgdGFyZ2V0X3BhdGgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICB6aXBf
ZmlsZS5jbG9zZSgpCi0KLSAgICAgICAgcmV0dXJuIHRhcmdldF9wYXRoCi0KLSAgICBkZWYgX2Nv
cHlfdW5wYWNrYWdlZF9maWxlc19mcm9tX2xvY2FsX2NhY2hlKHNlbGYsIHBhdGgsIHNjcmF0Y2hf
ZGlyKToKLQotICAgICAgICB0YXJnZXRfYmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHBhdGgp
Ci0gICAgICAgIHRhcmdldF9wYXRoID0gb3MucGF0aC5qb2luKHNjcmF0Y2hfZGlyLCB0YXJnZXRf
YmFzZW5hbWUpCi0KLSAgICAgICAgc2h1dGlsLmNvcHkocGF0aCwgdGFyZ2V0X3BhdGgpCi0gICAg
ICAgIHJldHVybiB0YXJnZXRfcGF0aAotCi0gICAgZGVmIF9wcmVwYXJlX3BhY2thZ2Uoc2VsZiwg
cGF0aCwgc2NyYXRjaF9kaXIpOgotICAgICAgICAiIiJQcmVwYXJlIGEgcGFja2FnZSBmb3IgdXNl
LCBpZiBuZWNlc3NhcnksIGFuZCByZXR1cm4gdGhlIG5ldyBwYXRoLgotCi0gICAgICAgIEZvciBl
eGFtcGxlLCB0aGlzIG1ldGhvZCB1bnppcHMgemlwcGVkIGZpbGVzIGFuZCBleHRyYWN0cwotICAg
ICAgICB0YXIgZmlsZXMuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICBwYXRoOiBUaGUgcGF0
aCB0byB0aGUgZG93bmxvYWRlZCBVUkwgY29udGVudHMuCi0gICAgICAgICAgc2NyYXRjaF9kaXI6
IFRoZSBzY3JhdGNoIGRpcmVjdG9yeS4gIE5vdGUgdGhhdCB0aGUgc2NyYXRjaAotICAgICAgICAg
ICAgICAgICAgICAgICBkaXJlY3RvcnkgY29udGFpbnMgdGhlIGZpbGUgZGVzaWduYXRlZCBieSB0
aGUKLSAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBwYXJhbWV0ZXIuCi0KLSAgICAgICAgIiIi
Ci0gICAgICAgICMgRklYTUU6IEFkZCBvdGhlciBuYXR1cmFsIGV4dGVuc2lvbnMuCi0gICAgICAg
IGlmIHBhdGguZW5kc3dpdGgoIi56aXAiKToKLSAgICAgICAgICAgIG5ld19wYXRoID0gc2VsZi5f
dW56aXAocGF0aCwgc2NyYXRjaF9kaXIpCi0gICAgICAgIGVsaWYgcGF0aC5lbmRzd2l0aCgiLnRh
ci5neiIpIG9yIHBhdGguZW5kc3dpdGgoIi50YXIuYnoyIik6Ci0gICAgICAgICAgICBuZXdfcGF0
aCA9IHNlbGYuX2V4dHJhY3RfdGFyKHBhdGgsIHNjcmF0Y2hfZGlyKQotICAgICAgICBlbGlmIF9D
QUNIRV9FTlZfVkFSIGluIG9zLmVudmlyb246Ci0gICAgICAgICAgICBuZXdfcGF0aCA9IHBhdGgK
LSAgICAgICAgICAgIGlmIG9zLnBhdGguZGlybmFtZShwYXRoKSA9PSBvcy5wYXRoLm5vcm1wYXRo
KG9zLmVudmlyb25bX0NBQ0hFX0VOVl9WQVJdKToKLSAgICAgICAgICAgICAgICBuZXdfcGF0aCA9
IHNlbGYuX2NvcHlfdW5wYWNrYWdlZF9maWxlc19mcm9tX2xvY2FsX2NhY2hlKHBhdGgsIHNjcmF0
Y2hfZGlyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBObyBwcmVwYXJhdGlvbiBpcyBu
ZWVkZWQuCi0gICAgICAgICAgICBuZXdfcGF0aCA9IHBhdGgKLQotICAgICAgICByZXR1cm4gbmV3
X3BhdGgKLQotICAgIGRlZiBfcGFyc2VfY29sb25fc2VwYXJhdGVkX21pcnJvcnNfZnJvbV9lbnYo
c2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBQeXBpIG1pcnJvciBleGFtbGU6IFBZUElfTUlS
Uk9SUz1weXBpLmh1c3R1bmlxdWUuY29tLi4uCi0gICAgICAgIFNvdXJjZWZvcmdlIG1pcnJvciBl
eGFtcGxlOiBTT1VSQ0VGT1JHRV9NSVJST1JTPWFhcm5ldC5kbC5zb3VyY2Vmb3JnZS5uZXQ6Y2l0
eWxhbi5kbC5zb3VyY2Vmb3JnZS5uZXQuLi4KLSAgICAgICAgTWlycm9yIHNvdXJjZXM6IGh0dHA6
Ly93d3cucHlwaS1taXJyb3JzLm9yZy8sIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvYXBwcy90cmFj
L3NvdXJjZWZvcmdlL3dpa2kvTWlycm9ycwotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcHlwaV9taXJyb3JzX2xpc3QgPSBvcy5lbnZpcm9uW19QWVBJX0VOVl9WQVJdLnNw
bGl0KCc6JykKLSAgICAgICAgZXhjZXB0KEtleUVycm9yKToKLSAgICAgICAgICAgIHB5cGlfbWly
cm9yc19saXN0ID0gKCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzb3VyY2Vmb3JnZV9t
aXJyb3JzX2xpc3QgPSBvcy5lbnZpcm9uW19TT1VSQ0VGT1JHRV9FTlZfVkFSXS5zcGxpdCgnOicp
Ci0gICAgICAgIGV4Y2VwdChLZXlFcnJvcik6Ci0gICAgICAgICAgICBzb3VyY2Vmb3JnZV9taXJy
b3JzX2xpc3QgPSAoKQotCi0gICAgICAgIG1pcnJvcml0ZXJhdG9ycyA9IGl0ZXIoc291cmNlZm9y
Z2VfbWlycm9yc19saXN0KSwgaXRlcihweXBpX21pcnJvcnNfbGlzdCkKLSAgICAgICAgcmV0dXJu
IHppcChfTUlSUk9SX1JFR0VYUywgbWlycm9yaXRlcmF0b3JzKQotCi0gICAgZGVmIF9yZXBsYWNl
X2RvbWFpbl93aXRoX25leHRfbWlycm9yKHNlbGYsIHVybCwgbWlycm9ycyk6Ci0gICAgICAgIHBh
cnNlZF91cmwgPSBsaXN0KHVybHBhcnNlLnVybHBhcnNlKHVybCkpCi0gICAgICAgIG5ld191cmwg
PSBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvciByZWdleCwgYWRkcmVzc2VzIGlu
IG1pcnJvcnM6Ci0gICAgICAgICAgICAgICAgaWYgcmVnZXgubWF0Y2gocGFyc2VkX3VybFsxXSk6
Ci0gICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmxbMV0gPSBhZGRyZXNzZXMubmV4dCgpCi0g
ICAgICAgICAgICAgICAgICAgIG5ld191cmwgPSB1cmxwYXJzZS51cmx1bnBhcnNlKHBhcnNlZF91
cmwpCi0gICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uIGFzIGU6Ci0gICAgICAgICAgICBfbG9n
LmluZm8oJ1JhbiBvdXQgb2YgbWlycm9ycy4nKQotCi0gICAgICAgIHJldHVybiBuZXdfdXJsCi0K
LSAgICBkZWYgX2Rvd25sb2FkX3RvX3N0cmVhbShzZWxmLCB1cmwsIHN0cmVhbSk6Ci0gICAgICAg
IG1pcnJvcnMgPSBzZWxmLl9wYXJzZV9jb2xvbl9zZXBhcmF0ZWRfbWlycm9yc19mcm9tX2Vudigp
Ci0gICAgICAgIGZhaWx1cmVzID0gMAotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIG5ldHN0cmVhbSA9IHVybG9wZW4odXJsLCB0aW1lb3V0PTMw
KQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBl
cnI6Ci0gICAgICAgICAgICAgICAgIyBUcnkgbXVsdGlwbGUgdGltZXMKLSAgICAgICAgICAgICAg
ICBpZiBmYWlsdXJlcyA8IDI6Ci0gICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygiRmFp
bGVkIHRvIGRvd25sb2FkICVzLCAlcyByZXRyeWluZyIgJSAoCi0gICAgICAgICAgICAgICAgICAg
ICAgICB1cmwsIGVycikpCi0gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVzICs9IDEKLSAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIHVybCA9IHNlbGYuX3Jl
cGxhY2VfZG9tYWluX3dpdGhfbmV4dF9taXJyb3IodXJsLCBtaXJyb3JzKQotICAgICAgICAgICAg
ICAgIGlmIHVybDoKLSAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMgPSAwCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICAjIEFwcGVuZCBleGlzdGluZyBF
cnJvciBtZXNzYWdlIHRvIG5ldyBFcnJvci4KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gKCdD
b3VsZCBub3QgZG93bmxvYWQgUHl0aG9uIG1vZHVsZXMgZnJvbSBVUkwgIiVzIi5cbicKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIgTWFrZSBzdXJlIHlvdSBhcmUgY29ubmVjdGVkIHRvIHRo
ZSBpbnRlcm5ldC5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICIgWW91IG11c3QgYmUg
Y29ubmVjdGVkIHRvIHRoZSBpbnRlcm5ldCB3aGVuICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkb3dubG9hZGluZyBuZWVkZWQgbW9kdWxlcyBmb3IgdGhlIGZpcnN0IHRpbWUuXG4iCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0tPiBJbm5lciBtZXNzYWdlOiAlcyIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICUgKHVybCwgZXJyKSkKLSAgICAgICAgICAgICAgICByYWlz
ZSBJT0Vycm9yKG1lc3NhZ2UpCi0gICAgICAgIGNvZGUgPSAyMDAKLSAgICAgICAgaWYgbm90IHVy
bC5zdGFydHN3aXRoKCJmaWxlIikgYW5kIGhhc2F0dHIobmV0c3RyZWFtLCAiZ2V0Y29kZSIpOgot
ICAgICAgICAgICAgY29kZSA9IG5ldHN0cmVhbS5nZXRjb2RlKCkKLSAgICAgICAgaWYgbm90IDIw
MCA8PSBjb2RlIDwgMzAwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSFRUUCBFcnJv
ciBjb2RlICVzIiAlIGNvZGUpCi0KLSAgICAgICAgQlVGU0laRSA9IDIgKiogMTMgICMgOEtCCi0g
ICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBkYXRhID0gbmV0c3RyZWFtLnJlYWQoQlVG
U0laRSkKLSAgICAgICAgICAgIGlmIG5vdCBkYXRhOgotICAgICAgICAgICAgICAgIGJyZWFrCi0g
ICAgICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSkKLSAgICAgICAgbmV0c3RyZWFtLmNsb3NlKCkK
LQotICAgIGRlZiBfY2hlY2tfcGFja2FnZV9pbl9sb2NhbF9hdXRvaW5zdGFsbF9jYWNoZShzZWxm
LCBmaWxlbmFtZSk6Ci0gICAgICAgIGlmIF9DQUNIRV9FTlZfVkFSIG5vdCBpbiBvcy5lbnZpcm9u
OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHBhdGggPSBnbG9iKG9zLnBhdGgu
am9pbihvcy5lbnZpcm9uW19DQUNIRV9FTlZfVkFSXSwgZmlsZW5hbWUpICsgJyonKQotICAgICAg
ICBpZiBub3QgcGF0aDoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIHJldHVy
biBwYXRoWzBdCi0KLSAgICBkZWYgX2Rvd25sb2FkKHNlbGYsIHVybCwgc2NyYXRjaF9kaXIpOgot
ICAgICAgICB1cmxfcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHVybClbMl0KLSAgICAgICAgdXJs
X3BhdGggPSBvcy5wYXRoLm5vcm1wYXRoKHVybF9wYXRoKSAgIyBSZW1vdmVzIHRyYWlsaW5nIHNs
YXNoLgotICAgICAgICB0YXJnZXRfZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHVybF9wYXRo
KQotCi0gICAgICAgIGNhY2hlID0gc2VsZi5fY2hlY2tfcGFja2FnZV9pbl9sb2NhbF9hdXRvaW5z
dGFsbF9jYWNoZSh0YXJnZXRfZmlsZW5hbWUpCi0gICAgICAgIGlmIGNhY2hlOgotICAgICAgICAg
ICAgcmV0dXJuIGNhY2hlCi0KLSAgICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2Ny
YXRjaF9kaXIsIHRhcmdldF9maWxlbmFtZSkKLQotICAgICAgICBpZiBvcy5uYW1lID09ICdwb3Np
eCc6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY29tbWFuZCA9IFsnY3VybCcs
IHVybCwgJy1MJywgJy0tb3V0cHV0JywgdGFyZ2V0X3BhdGhdCi0gICAgICAgICAgICAgICAgd2l0
aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZGV2bnVsbDoKLSAgICAgICAgICAgICAgICAgICAg
c3VicHJvY2Vzcy5jaGVja19jYWxsKGNvbW1hbmQsIHN0ZG91dD1kZXZudWxsLCBzdGRlcnI9ZGV2
bnVsbCkKLSAgICAgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBh
cyBlOgotICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnRXJyb3I6IEZhaWxlZCB0byBkb3dubG9h
ZCB7fSB0byB7fS4gQ29tbWFuZDoge30nLmZvcm1hdCh1cmwsIHRhcmdldF9wYXRoLCBjb21tYW5k
KSkKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICBlbHNlOiAgIyBXaW5kb3dzCi0gICAg
ICAgICAgICB3aXRoIG9wZW4odGFyZ2V0X3BhdGgsICJ3YiIpIGFzIHN0cmVhbToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9kb3dubG9hZF90b19zdHJlYW0odXJsLCBzdHJlYW0pCi0KLSAgICAgICAg
aWYgX0NBQ0hFX0VOVl9WQVIgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgICAgIGRpcl91dGlsLmNv
cHlfdHJlZShzY3JhdGNoX2Rpciwgb3MuZW52aXJvbltfQ0FDSEVfRU5WX1ZBUl0pCi0KLSAgICAg
ICAgcmV0dXJuIHRhcmdldF9wYXRoCi0KLSAgICBkZWYgX2luc3RhbGwoc2VsZiwgc2NyYXRjaF9k
aXIsIHBhY2thZ2VfbmFtZSwgdGFyZ2V0X3BhdGgsIHVybCwgdXJsX3N1YnBhdGgsIGZpbGVzX3Rv
X3JlbW92ZSk6Ci0gICAgICAgICIiIkluc3RhbGwgYSBweXRob24gcGFja2FnZSBmcm9tIGFuIFVS
TC4KLQotICAgICAgICBUaGlzIGludGVybmFsIG1ldGhvZCBvdmVyd3JpdGVzIHRoZSB0YXJnZXQg
cGF0aCBpZiB0aGUgdGFyZ2V0Ci0gICAgICAgIHBhdGggYWxyZWFkeSBleGlzdHMuCi0KLSAgICAg
ICAgIiIiCi0gICAgICAgIHBhdGggPSBzZWxmLl9kb3dubG9hZCh1cmw9dXJsLCBzY3JhdGNoX2Rp
cj1zY3JhdGNoX2RpcikKLSAgICAgICAgcGF0aCA9IHNlbGYuX3ByZXBhcmVfcGFja2FnZShwYXRo
LCBzY3JhdGNoX2RpcikKLQotICAgICAgICBpZiB1cmxfc3VicGF0aCBpcyBOb25lOgotICAgICAg
ICAgICAgc291cmNlX3BhdGggPSBwYXRoCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzb3Vy
Y2VfcGF0aCA9IG9zLnBhdGguam9pbihwYXRoLCB1cmxfc3VicGF0aCkKLQotICAgICAgICBmb3Ig
ZmlsZW5hbWUgaW4gZmlsZXNfdG9fcmVtb3ZlOgotICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgu
am9pbihzb3VyY2VfcGF0aCwgZmlsZW5hbWUucmVwbGFjZSgnLycsIG9zLnNlcCkpCi0gICAgICAg
ICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKLSAgICAgICAgICAgICAgICAjIFByZS1lbXB0
aXZlbHkgY2hhbmdlIHRoZSBwZXJtaXNzaW9ucyB0byAjMDc3NyB0byB0cnkgYW5kIHdvcmsgYXJv
dW5kIHdpbjMyIHBlcm1pc3Npb25zIGlzc3Vlcy4KLSAgICAgICAgICAgICAgICBvcy5jaG1vZChw
YXRoLCBzdGF0LlNfSVJXWFUgfCBzdGF0LlNfSVJXWEcgfCBzdGF0LlNfSVJXWE8pCi0gICAgICAg
ICAgICAgICAgb3MucmVtb3ZlKHBhdGgpCi0KLSAgICAgICAgaWYgb3MucGF0aC5leGlzdHModGFy
Z2V0X3BhdGgpOgotICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcih0YXJnZXRfcGF0aCk6Ci0g
ICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSh0YXJnZXRfcGF0aCwgaWdub3JlX2Vycm9ycz1U
cnVlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBvcy5yZW1vdmUodGFyZ2V0
X3BhdGgpCi0KLSAgICAgICAgIyBzaHV0aWwubW92ZSgpIGNvbW1hbmQgY3JlYXRlcyBpbnRlcm1l
ZGlhdGUgZGlyZWN0b3JpZXMgaWYgdGhleSBkbyBub3QgZXhpc3QuCi0gICAgICAgIHNodXRpbC5t
b3ZlKHNvdXJjZV9wYXRoLCB0YXJnZXRfcGF0aCkKLQotICAgICAgICAjIGVuc3VyZSBhbGwgdGhl
IG5ldyBkaXJlY3RvcmllcyBhcmUgaW1wb3J0YWJsZS4KLSAgICAgICAgaW50ZXJtZWRpYXRlX2Rp
cnMgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWxwYXRoKHRhcmdldF9wYXRoLCBzZWxmLl90
YXJnZXRfZGlyKSkKLSAgICAgICAgcGFyZW50X2Rpcm5hbWUgPSBzZWxmLl90YXJnZXRfZGlyCi0g
ICAgICAgIGZvciBkaXJuYW1lIGluIGludGVybWVkaWF0ZV9kaXJzLnNwbGl0KG9zLnNlcCk6Ci0g
ICAgICAgICAgICBwYXJlbnRfZGlybmFtZSA9IG9zLnBhdGguam9pbihwYXJlbnRfZGlybmFtZSwg
ZGlybmFtZSkKLSAgICAgICAgICAgIHNlbGYuX21ha2VfcGFja2FnZShwYXJlbnRfZGlybmFtZSkK
LQotICAgICAgICBzZWxmLl9yZWNvcmRfdXJsX2Rvd25sb2FkZWQocGFja2FnZV9uYW1lLCB1cmwp
Ci0KLSAgICBkZWYgaW5zdGFsbChzZWxmLCB1cmwsIHNob3VsZF9yZWZyZXNoPUZhbHNlLCB0YXJn
ZXRfbmFtZT1Ob25lLAotICAgICAgICAgICAgICAgIHVybF9zdWJwYXRoPU5vbmUsIGZpbGVzX3Rv
X3JlbW92ZT1Ob25lKToKLSAgICAgICAgIiIiSW5zdGFsbCBhIHB5dGhvbiBwYWNrYWdlIGZyb20g
YW4gVVJMLCByZXR1cm4gRmFsc2UgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICB1cmw6IFRoZSBVUkwgZnJvbSB3aGljaCB0byBkb3dubG9hZCB0aGUgcGFj
a2FnZS4KLQotICAgICAgICBPcHRpb25hbCBBcmdzOgotICAgICAgICAgIHNob3VsZF9yZWZyZXNo
OiBBIGJvb2xlYW4gdmFsdWUgb2Ygd2hldGhlciB0aGUgcGFja2FnZSBzaG91bGQgYmUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWRlZCBhbmQgcmVpbnN0YWxsZWQgYWdhaW4gZXZl
biBpZiB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZSBpcyBhbHJlYWR5IHBy
ZXNlbnQuCi0gICAgICAgICAgdGFyZ2V0X25hbWU6IFRoZSBuYW1lIG9mIHRoZSBmb2xkZXIgb3Ig
ZmlsZSBpbiB0aGUgYXV0b2luc3RhbGxlcgotICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQg
ZGlyZWN0b3J5IGF0IHdoaWNoIHRoZSBwYWNrYWdlIHNob3VsZCBiZQotICAgICAgICAgICAgICAg
ICAgICAgICBpbnN0YWxsZWQuICBEZWZhdWx0cyB0byB0aGUgYmFzZSBuYW1lIG9mIHRoZQotICAg
ICAgICAgICAgICAgICAgICAgICBVUkwgc3ViLXBhdGguICBUaGlzIHBhcmFtZXRlciBtdXN0IGJl
IHByb3ZpZGVkIGlmCi0gICAgICAgICAgICAgICAgICAgICAgIHRoZSBVUkwgc3ViLXBhdGggaXMg
bm90IHNwZWNpZmllZC4KLSAgICAgICAgICB1cmxfc3VicGF0aDogVGhlIHJlbGF0aXZlIHBhdGgg
b2YgdGhlIFVSTCBkaXJlY3RvcnkgdGhhdCBzaG91bGQKLSAgICAgICAgICAgICAgICAgICAgICAg
YmUgaW5zdGFsbGVkLiAgRGVmYXVsdHMgdG8gdGhlIGZ1bGwgZGlyZWN0b3J5LCBvcgotICAgICAg
ICAgICAgICAgICAgICAgICB0aGUgZW50aXJlIFVSTCBjb250ZW50cy4KLQotICAgICAgICAiIiIK
LSAgICAgICAgaWYgdGFyZ2V0X25hbWUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIG5vdCB1cmxf
c3VicGF0aDoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUaGUgInRhcmdldF9u
YW1lIiBwYXJhbWV0ZXIgbXVzdCBiZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAncHJvdmlkZWQgaWYgdGhlICJ1cmxfc3VicGF0aCIgcGFyYW1ldGVyICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJpcyBub3QgcHJvdmlkZWQuIikKLSAgICAgICAgICAgICMg
UmVtb3ZlIGFueSB0cmFpbGluZyBzbGFzaGVzLgotICAgICAgICAgICAgdXJsX3N1YnBhdGggPSBv
cy5wYXRoLm5vcm1wYXRoKHVybF9zdWJwYXRoKQotICAgICAgICAgICAgdGFyZ2V0X25hbWUgPSBv
cy5wYXRoLmJhc2VuYW1lKHVybF9zdWJwYXRoKQotCi0gICAgICAgIHRhcmdldF9wYXRoID0gb3Mu
cGF0aC5qb2luKHNlbGYuX3RhcmdldF9kaXIsIHRhcmdldF9uYW1lLnJlcGxhY2UoJy8nLCBvcy5z
ZXApKQotICAgICAgICBpZiBub3Qgc2hvdWxkX3JlZnJlc2ggYW5kIHNlbGYuX2lzX2Rvd25sb2Fk
ZWQodGFyZ2V0X25hbWUsIHVybCkgYW5kIG9zLnBhdGguZXhpc3RzKHRhcmdldF9wYXRoKToKLSAg
ICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGZpbGVzX3RvX3JlbW92ZSA9IGZpbGVz
X3RvX3JlbW92ZSBvciBbXQotICAgICAgICBwYWNrYWdlX25hbWUgPSB0YXJnZXRfbmFtZS5yZXBs
YWNlKG9zLnNlcCwgJy4nKQotICAgICAgICBfbG9nLmluZm8oIkF1dG8taW5zdGFsbGluZyBwYWNr
YWdlOiAlcyIgJSBwYWNrYWdlX25hbWUpCi0KLSAgICAgICAgIyBUaGUgc2NyYXRjaCBkaXJlY3Rv
cnkgaXMgd2hlcmUgd2Ugd2lsbCBkb3dubG9hZCBhbmQgcHJlcGFyZQotICAgICAgICAjIGZpbGVz
IHNwZWNpZmljIHRvIHRoaXMgaW5zdGFsbCB1bnRpbCB0aGV5IGFyZSByZWFkeSB0byBtb3ZlCi0g
ICAgICAgICMgaW50byBwbGFjZS4KLSAgICAgICAgc2NyYXRjaF9kaXIgPSBzZWxmLl9jcmVhdGVf
c2NyYXRjaF9kaXJlY3RvcnkodGFyZ2V0X25hbWUpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5faW5zdGFsbChwYWNrYWdlX25hbWU9cGFja2FnZV9uYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICB0YXJnZXRfcGF0aD10YXJnZXRfcGF0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2NyYXRjaF9kaXI9c2NyYXRjaF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHVybD11cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9zdWJwYXRoPXVybF9z
dWJwYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc190b19yZW1vdmU9ZmlsZXNf
dG9fcmVtb3ZlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycjoKLSAgICAgICAgICAg
ICMgQXBwZW5kIGV4aXN0aW5nIEVycm9yIG1lc3NhZ2UgdG8gbmV3IEVycm9yLgotICAgICAgICAg
ICAgbWVzc2FnZSA9ICgiRXJyb3IgYXV0by1pbnN0YWxsaW5nIHRoZSAlcyBwYWNrYWdlIHRvOlxu
IgotICAgICAgICAgICAgICAgICAgICAgICAnICIlcyJcbicKLSAgICAgICAgICAgICAgICAgICAg
ICAgIiAtLT4gSW5uZXIgbWVzc2FnZTogJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICUgKHRh
cmdldF9uYW1lLCB0YXJnZXRfcGF0aCwgZXJyKSkKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bihtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShz
Y3JhdGNoX2RpciwgaWdub3JlX2Vycm9ycz1UcnVlKQotICAgICAgICBfbG9nLmRlYnVnKCdBdXRv
LWluc3RhbGxlZCAlcyB0bzonICUgdXJsKQotICAgICAgICBfbG9nLmRlYnVnKCcgICAgIiVzIicg
JSB0YXJnZXRfcGF0aCkKLSAgICAgICAgcmV0dXJuIFRydWUKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdGVzdC9tYWluLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdGVzdC9tYWluLnB5CShyZXZpc2lvbiAyNjg5MzApCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rlc3QvbWFpbi5weQkod29ya2luZyBjb3B5KQpAQCAtMTUxLDEyICsxNTEsNiBAQCBjbGFz
cyBUZXN0ZXIob2JqZWN0KToKICAgICAgICAgIyBNYWtlIHN1cmUgUFlUSE9OUEFUSCBpcyBzZXQg
dXAgcHJvcGVybHkuCiAgICAgICAgIHN5cy5wYXRoID0gc2VsZi5maW5kZXIuYWRkaXRpb25hbF9w
YXRocyhzeXMucGF0aCkgKyBzeXMucGF0aAogCi0gICAgICAgICMgV2UgYXV0b2luc3RhbGwgZXZl
cnl0aGluZyB1cCBzbyB0aGF0IHdlIGNhbiBydW4gdGVzdHMgY29uY3VycmVudGx5Ci0gICAgICAg
ICMgYW5kIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0IGF1dG9pbnN0YWxsaW5nIHBhY2thZ2VzIGNv
bmN1cnJlbnRseS4KLSAgICAgICAgc2VsZi5wcmludGVyLndyaXRlX3VwZGF0ZSgiQ2hlY2tpbmcg
YXV0b2luc3RhbGxlZCBwYWNrYWdlcyAuLi4iKQotICAgICAgICBmcm9tIHdlYmtpdHB5LnRoaXJk
cGFydHkgaW1wb3J0IGF1dG9pbnN0YWxsX2V2ZXJ5dGhpbmcKLSAgICAgICAgYXV0b2luc3RhbGxf
ZXZlcnl0aGluZygpCi0KICAgICAgICAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9JbnN0
YWxsCiAgICAgICAgIEF1dG9JbnN0YWxsLmluc3RhbGxfZXZlcnl0aGluZygpCiAKQEAgLTE2OSw5
ICsxNjMsNyBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGltcG9ydCBjb3Zl
cmFnZQogICAgICAgICAgICAgY292ID0gY292ZXJhZ2UuY292ZXJhZ2Uob21pdD1bCiAgICAgICAg
ICAgICAgICAgIi91c3IvKiIsCi0gICAgICAgICAgICAgICAgIiovd2Via2l0cHkvdGhpcmRwYXJ0
eS9hdXRvaW5zdGFsbGVkLyoiLAotICAgICAgICAgICAgICAgICIqL3dlYmtpdHB5L3RoaXJkcGFy
dHkvQmVhdXRpZnVsU291cC5weSIsCi0gICAgICAgICAgICAgICAgIiovd2Via2l0cHkvdGhpcmRw
YXJ0eS9CZWF1dGlmdWxTb3VwX2xlZ2FjeS5weSIsCisgICAgICAgICAgICAgICAgIiovd2Via2l0
cHkvdGhpcmRwYXJ0eS8qIiwKICAgICAgICAgICAgIF0pCiAgICAgICAgICAgICBjb3Yuc3RhcnQo
KQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9f
LnB5CShyZXZpc2lvbiAyNjg5MzApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFy
dHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw0IEBACi0jIENvcHlyaWdo
dCAoQykgMjAxMCBDaHJpcyBKZXJkb25layAoY2plcmRvbmVrQHdlYmtpdC5vcmcpCi0jIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDcgKzksNyBAQAogIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KICMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECiAj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECiAjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKICMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKQEAgLTIwLDEwMCArMTksMyBAQAogIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAogIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jIFRoaXMgbW9kdWxlIGlzIHJlcXVpcmVk
IGZvciBQeXRob24gdG8gdHJlYXQgdGhpcyBkaXJlY3RvcnkgYXMgYSBwYWNrYWdlLgotCi0iIiJB
dXRvaW5zdGFsbHMgdGhpcmQtcGFydHkgY29kZSByZXF1aXJlZCBieSBXZWJLaXQuIiIiCi0KLQot
aW1wb3J0IGpzb24KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1pZiBzeXMudmVyc2lvbl9pbmZv
ID4gKDMsIDApOgotICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KLWVsc2U6
Ci0gICAgZnJvbSB1cmxsaWIyIGltcG9ydCB1cmxvcGVuCi0KLWZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5hdXRvaW5zdGFsbCBpbXBvcnQgQXV0b0luc3RhbGxlcgotZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KLWZyb20gd2Via2l0Y29y
ZXB5IGltcG9ydCBBdXRvSW5zdGFsbAotCi1fVEhJUkRQQVJUWV9ESVIgPSBvcy5wYXRoLmRpcm5h
bWUoX19maWxlX18pCi1fQVVUT0lOU1RBTExFRF9ESVIgPSBvcy5wYXRoLmpvaW4oX1RISVJEUEFS
VFlfRElSLCAiYXV0b2luc3RhbGxlZCIpCi0KLSMgUHV0dGluZyB0aGUgYXV0b2luc3RhbGwgY29k
ZSBpbnRvIHdlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKLSMgZW5zdXJlcyB0aGF0IG5v
IGF1dG9pbnN0YWxsaW5nIG9jY3VycyB1bnRpbCBhIGNhbGxlciBpbXBvcnRzIGZyb20KLSMgd2Vi
a2l0cHkudGhpcmRwYXJ0eS4gIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSBjYWxsZXIgd2FudHMgdG8g
Y29uZmlndXJlCi0jIGxvZ2dpbmcgcHJpb3IgdG8gZXhlY3V0aW5nIGF1dG9pbnN0YWxsIGNvZGUu
Ci0KLSMgRklYTUU6IElmIGFueSBvZiB0aGVzZSBzZXJ2ZXJzIGlzIG9mZmxpbmUsIHdlYmtpdC1w
YXRjaCBicmVha3MgKGFuZCBtYXliZQotIyBvdGhlciBzY3JpcHRzIGRvLCB0b28pLiBTZWUgPGh0
dHA6Ly93ZWJraXQub3JnL2IvNDIwODA+LgotCi0jIFdlIHB1dCBhdXRvLWluc3RhbGxlZCB0aGly
ZC1wYXJ0eSBtb2R1bGVzIGluIHRoaXMgZGlyZWN0b3J5LS0KLSMKLSMgICAgIHdlYmtpdHB5L3Ro
aXJkcGFydHkvYXV0b2luc3RhbGxlZAotCi1mcyA9IEZpbGVTeXN0ZW0oKQotZnMubWF5YmVfbWFr
ZV9kaXJlY3RvcnkoX0FVVE9JTlNUQUxMRURfRElSKQotCi1pbml0X3BhdGggPSBmcy5qb2luKF9B
VVRPSU5TVEFMTEVEX0RJUiwgIl9faW5pdF9fLnB5IikKLWlmIG5vdCBmcy5leGlzdHMoaW5pdF9w
YXRoKToKLSAgICBmcy53cml0ZV90ZXh0X2ZpbGUoaW5pdF9wYXRoLCAiIikKLQotcmVhZG1lX3Bh
dGggPSBmcy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgIlJFQURNRSIpCi1pZiBub3QgZnMuZXhp
c3RzKHJlYWRtZV9wYXRoKToKLSAgICBmcy53cml0ZV90ZXh0X2ZpbGUocmVhZG1lX3BhdGgsCi0g
ICAgICAgICJUaGlzIGRpcmVjdG9yeSBpcyBhdXRvLWdlbmVyYXRlZCBieSBXZWJLaXQgYW5kIGlz
ICIKLSAgICAgICAgInNhZmUgdG8gZGVsZXRlLlxuSXQgY29udGFpbnMgbmVlZGVkIHRoaXJkLXBh
cnR5IFB5dGhvbiAiCi0gICAgICAgICJwYWNrYWdlcyBhdXRvbWF0aWNhbGx5IGRvd25sb2FkZWQg
ZnJvbSB0aGUgd2ViLiIpCi0KLQotY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRIb29rKG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzeXN0ZW09Tm9uZSk6Ci0gICAgICAgIHNlbGYu
X2ZzID0gZmlsZXN5c3RlbSBvciBGaWxlU3lzdGVtKCkKLQotICAgIGRlZiBfZW5zdXJlX2F1dG9p
bnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRoKHNlbGYpOgotICAgICAgICAjIFNvbWUgcGFja2Fn
ZXMgcmVxdWlyZSB0aGF0IHRoZSBhcmUgYmVpbmcgcHV0IHNvbWV3aGVyZSB1bmRlciBhIGRpcmVj
dG9yeSBpbiBzeXMucGF0aC4KLSAgICAgICAgaWYgbm90IF9BVVRPSU5TVEFMTEVEX0RJUiBpbiBz
eXMucGF0aDoKLSAgICAgICAgICAgIHN5cy5wYXRoLmluc2VydChzeXMucGF0aC5pbmRleChBdXRv
SW5zdGFsbC5kaXJlY3RvcnkpICsgMSBpZiBBdXRvSW5zdGFsbC5kaXJlY3RvcnkgaW4gc3lzLnBh
dGggZWxzZSAwLCBfQVVUT0lOU1RBTExFRF9ESVIpCi0KLSAgICBkZWYgZmluZF9tb2R1bGUoc2Vs
ZiwgZnVsbG5hbWUsIHBhdGg9Tm9uZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBzdGF0aWNtZXRo
b2QKLSAgICBkZWYgZ3JlYXRlcl90aGFuX2VxdWFsX3RvX3ZlcnNpb24obWluaW11bSwgdmVyc2lv
bik6Ci0gICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihtaW5pbXVtLnNwbGl0KCcuJykpKToKLSAg
ICAgICAgICAgIGlmIGludCh2ZXJzaW9uLnNwbGl0KCcuJylbaV0pID4gaW50KG1pbmltdW0uc3Bs
aXQoJy4nKVtpXSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgICAgIGlm
IGludCh2ZXJzaW9uLnNwbGl0KCcuJylbaV0pIDwgaW50KG1pbmltdW0uc3BsaXQoJy4nKVtpXSk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAg
ICBkZWYgX2luc3RhbGwoc2VsZiwgdXJsLCB1cmxfc3VicGF0aD1Ob25lLCB0YXJnZXRfbmFtZT1O
b25lKToKLSAgICAgICAgaW5zdGFsbGVyID0gQXV0b0luc3RhbGxlcih0YXJnZXRfZGlyPV9BVVRP
SU5TVEFMTEVEX0RJUikKLSAgICAgICAgcmV0dXJuIGluc3RhbGxlci5pbnN0YWxsKHVybD11cmws
IHVybF9zdWJwYXRoPXVybF9zdWJwYXRoLCB0YXJnZXRfbmFtZT10YXJnZXRfbmFtZSkKLQotICAg
IGRlZiBnZXRfbGF0ZXN0X3B5cGlfdXJsKHNlbGYsIHBhY2thZ2VfbmFtZSwgdXJsX3N1YnBhdGhf
Zm9ybWF0PSd7bmFtZX0te3ZlcnNpb259L3tsbmFtZX0nKToKLSAgICAgICAganNvbl91cmwgPSAi
aHR0cHM6Ly9weXBpLm9yZy9weXBpLyVzL2pzb24iICUgcGFja2FnZV9uYW1lCi0gICAgICAgIHJl
c3BvbnNlID0gdXJsb3Blbihqc29uX3VybCwgdGltZW91dD0zMCkKLSAgICAgICAgZGF0YSA9IGpz
b24ubG9hZChyZXNwb25zZSkKLSAgICAgICAgdXJsID0gZGF0YVsndXJscyddWzFdWyd1cmwnXQot
ICAgICAgICBzdWJwYXRoID0gdXJsX3N1YnBhdGhfZm9ybWF0LmZvcm1hdChuYW1lPXBhY2thZ2Vf
bmFtZSwgdmVyc2lvbj1kYXRhWydpbmZvJ11bJ3ZlcnNpb24nXSwgbG5hbWU9cGFja2FnZV9uYW1l
Lmxvd2VyKCkpCi0gICAgICAgIHJldHVybiAodXJsLCBzdWJwYXRoKQotCi0gICAgZGVmIGluc3Rh
bGxfYmluYXJ5KHNlbGYsIHVybCwgbmFtZSk6Ci0gICAgICAgIHNlbGYuX2luc3RhbGwodXJsPXVy
bCwgdGFyZ2V0X25hbWU9bmFtZSkKLSAgICAgICAgZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKF9B
VVRPSU5TVEFMTEVEX0RJUiwgbmFtZSkKLSAgICAgICAgb3MuY2htb2Qob3MucGF0aC5qb2luKGRp
cmVjdG9yeSwgbmFtZSksIDBvNzU1KQotICAgICAgICBvcGVuKG9zLnBhdGguam9pbihkaXJlY3Rv
cnksICdfX2luaXRfXy5weScpLCAndysnKS5jbG9zZSgpCi0KLQotX2hvb2sgPSBBdXRvaW5zdGFs
bEltcG9ydEhvb2soKQotc3lzLm1ldGFfcGF0aC5pbnNlcnQoMCwgX2hvb2spCi0KLQotZGVmIGF1
dG9pbnN0YWxsX2V2ZXJ5dGhpbmcoKToKLSAgICBpbnN0YWxsX21ldGhvZHMgPSBbbWV0aG9kIGZv
ciBtZXRob2QgaW4gZGlyKF9ob29rLl9fY2xhc3NfXykgaWYgbWV0aG9kLnN0YXJ0c3dpdGgoJ19p
bnN0YWxsXycpXQotICAgIGZvciBtZXRob2QgaW4gaW5zdGFsbF9tZXRob2RzOgotICAgICAgICBn
ZXRhdHRyKF9ob29rLCBtZXRob2QpKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412203</attachid>
            <date>2020-10-23 12:01:02 -0700</date>
            <delta_ts>2020-10-23 12:27:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218131-20201023120101.patch</filename>
            <type>text/plain</type>
            <size>30116</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODkzNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFJlbW92ZSB0aGUgb2xkIGF1dG9pbnRhbGxlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTMxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDYyNzY5OT4KKworICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBBYWthc2ggSmFpbi4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5
OgorICAgICAgICAoVGVzdGVyLl9ydW5fdGVzdHMpOiBSZW1vdmUgcmVmZXJlbmNlIHRvIG9sZCBh
dXRvaW5zdGFsbGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2lu
aXRfXy5weTogRGVsZXRlZCBjb250ZW50LgorICAgICAgICAoYXV0b2luc3RhbGxfZXZlcnl0aGlu
Zyk6IERlbGV0ZWQuCisKIDIwMjAtMTAtMjMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtidWlsZC53ZWJraXQub3JnXSBBZGQgcHl0aG9uIDMgc3VwcG9y
dCAtIHBhcnQgMgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1
dG9pbnN0YWxsLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9hdXRvaW5zdGFsbC5weQkocmV2aXNpb24gMjY4OTM1KQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5CShub25leGlzdGVudCkKQEAg
LTEsNTQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDA5LCBEYW5pZWwgS3JlY2ggQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDEwIENocmlzIEplcmRvbmVrIChjamVy
ZG9uZWtAd2Via2l0Lm9yZykKLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jCi0jICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSMgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSMKLSMgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgRGFuaWVsIEty
ZWNoIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIEhPTERFUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIlN1cHBvcnQgZm9yIGF1
dG9tYXRpY2FsbHkgZG93bmxvYWRpbmcgUHl0aG9uIHBhY2thZ2VzIGZyb20gYW4gVVJMLiIiIgot
Ci0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzaHV0
aWwKLWltcG9ydCBzdGF0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGFyZmlsZQotaW1wb3J0IHRlbXBm
aWxlCi1pbXBvcnQgemlwZmlsZQotaW1wb3J0IHJlCi1mcm9tIGRpc3R1dGlscyBpbXBvcnQgZGly
X3V0aWwKLWZyb20gZ2xvYiBpbXBvcnQgZ2xvYgotaW1wb3J0IHN1YnByb2Nlc3MKLQotaWYgc3lz
LnZlcnNpb25faW5mbyA+ICgzLCAwKToKLSAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1
cmxvcGVuCi0gICAgaW1wb3J0IHVybGxpYi5wYXJzZSBhcyB1cmxwYXJzZQotZWxzZToKLSAgICBm
cm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4KLSAgICBpbXBvcnQgdXJscGFyc2UKLQotCi1fbG9n
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi1pZiBub3QgX2xvZy5oYW5kbGVyczogICMg
Tm8gcGFyZW50IGxvZ2dlcnMgc2V0dXAuCi0gICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFu
ZGxlcigpCi0gICAgaGFuZGxlci5zZXRMZXZlbChsb2dnaW5nLklORk8pCi0gICAgZm9ybWF0dGVy
ID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJyUoYXNjdGltZSlzIC0gJShuYW1lKXMgLSAlKGxldmVsbmFt
ZSlzIC0gJShtZXNzYWdlKXMnKQotICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikK
LSAgICBfbG9nLmFkZEhhbmRsZXIoaGFuZGxlcikKLQotX01JUlJPUl9SRUdFWFMgPSByZS5jb21w
aWxlKCcuKnNvdXJjZWZvcmdlLionKSwgcmUuY29tcGlsZSgnLipweXBpLionKQotX1BZUElfRU5W
X1ZBUiA9ICdQWVBJX01JUlJPUlMnCi1fU09VUkNFRk9SR0VfRU5WX1ZBUiA9ICdTT1VSQ0VGT1JH
RV9NSVJST1JTJwotX0NBQ0hFX0VOVl9WQVIgPSAnTE9DQUxfQVVUT0lOU1RBTExfQ0FDSEUnCi0K
LQotY2xhc3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgotCi0gICAgIiIiU3VwcG9ydHMgYXV0b21h
dGljYWxseSBpbnN0YWxsaW5nIFB5dGhvbiBwYWNrYWdlcyBmcm9tIGFuIFVSTC4KLQotICAgIFN1
cHBvcnRzIHVuY29tcHJlc3NlZCBmaWxlcywgLnRhci5neiwgLnRhci5iejIgYW5kIC56aXAgZm9y
bWF0cy4KLQotICAgIEJhc2ljIHVzYWdlOgotCi0gICAgaW5zdGFsbGVyID0gQXV0b0luc3RhbGxl
cigpCi0KLSAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHA6Ly9weXBpLnB5dGhvbi5vcmcv
cGFja2FnZXMvc291cmNlL3AvcGVwOC9wZXA4LTAuNS4wLnRhci5neiNtZDU9NTEyYTgxOGFmOTk3
OTI5MGNkNjE5Y2NlOGU5YzJlMmIiLAotICAgICAgICAgICAgICAgICAgICAgIHVybF9zdWJwYXRo
PSJwZXA4LTAuNS4wL3BlcDgucHkiKQotICAgIGluc3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cDov
L3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvbS9tZWNoYW5pemUvbWVjaGFuaXplLTAu
Mi40LnppcCIsCi0gICAgICAgICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9Im1lY2hhbml6ZSIp
Ci0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBlbmRfdG9fc2VhcmNoX3Bh
dGg9RmFsc2UsIHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9RmFsc2UsIG1ha2VfcGFja2FnZT1UcnVl
LAotICAgICAgICAgICAgICAgICB0YXJnZXRfZGlyPU5vbmUsIHRlbXBfZGlyPU5vbmUpOgotICAg
ICAgICAiIiJDcmVhdGUgYW4gQXV0b0luc3RhbGxlciBpbnN0YW5jZSwgYW5kIHNldCB1cCB0aGUg
dGFyZ2V0IGRpcmVjdG9yeS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIGFwcGVuZF90b19z
ZWFyY2hfcGF0aDogQSBib29sZWFuIHZhbHVlIG9mIHdoZXRoZXIgdG8gYXBwZW5kIHRoZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0IGRpcmVjdG9yeSB0byB0aGUgc3lz
LnBhdGggc2VhcmNoIHBhdGguCi0gICAgICAgICAgcHJlcGVuZF90b19zZWFyY2hfcGF0aDogQSBi
b29sZWFuIHZhbHVlIG9mIHdoZXRoZXIgdG8gcHJlcGVuZCB0aGUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhcmdldCBkaXJlY3RvcnkgdG8gdGhlIHN5cy5wYXRoIHNlYXJjaCBw
YXRoLgotICAgICAgICAgIG1ha2VfcGFja2FnZTogQSBib29sZWFuIHZhbHVlIG9mIHdoZXRoZXIg
dG8gbWFrZSB0aGUgdGFyZ2V0Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkgYSBw
YWNrYWdlLiAgVGhpcyBhZGRzIGFuIF9faW5pdF9fLnB5IGZpbGUKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRvIHRoZSB0YXJnZXQgZGlyZWN0b3J5IC0tIGFsbG93aW5nIHBhY2thZ2VzIGFuZAot
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlcyB3aXRoaW4gdGhlIHRhcmdldCBkaXJlY3Rv
cnkgdG8gYmUgaW1wb3J0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0bHkgdXNp
bmcgZG90dGVkIG1vZHVsZSBuYW1lcy4KLSAgICAgICAgICB0YXJnZXRfZGlyOiBUaGUgZGlyZWN0
b3J5IHBhdGggdG8gd2hpY2ggcGFja2FnZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4KLSAgICAgICAg
ICAgICAgICAgICAgICBEZWZhdWx0cyB0byBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgZm9sZGVyIGNv
bnRhaW5pbmcKLSAgICAgICAgICAgICAgICAgICAgICB0aGlzIG1vZHVsZSBjYWxsZWQgImF1dG9p
bnN0YWxsZWQiLgotICAgICAgICAgIHRlbXBfZGlyOiBUaGUgZGlyZWN0b3J5IHBhdGggdG8gdXNl
IGZvciBhbnkgdGVtcG9yYXJ5IGZpbGVzCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZCB3
aGlsZSBkb3dubG9hZGluZywgdW56aXBwaW5nLCBhbmQgZXh0cmFjdGluZwotICAgICAgICAgICAg
ICAgICAgICBwYWNrYWdlcyB0byBpbnN0YWxsLiAgRGVmYXVsdHMgdG8gYSBzdGFuZGFyZCB0ZW1w
b3JhcnkKLSAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gZ2VuZXJhdGVkIGJ5IHRoZSB0ZW1w
ZmlsZSBtb2R1bGUuICBUaGlzCi0gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlciBzaG91bGQg
bm9ybWFsbHkgYmUgdXNlZCBvbmx5IGZvciBkZXZlbG9wbWVudAotICAgICAgICAgICAgICAgICAg
ICB0ZXN0aW5nLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiB0YXJnZXRfZGlyIGlzIE5vbmU6
Ci0gICAgICAgICAgICB0aGlzX2RpciA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKLSAgICAg
ICAgICAgIHRhcmdldF9kaXIgPSBvcy5wYXRoLmpvaW4odGhpc19kaXIsICJhdXRvaW5zdGFsbGVk
IikKLQotICAgICAgICAjIEVuc3VyZSB0aGF0IHRoZSB0YXJnZXQgZGlyZWN0b3J5IGV4aXN0cy4K
LSAgICAgICAgc2VsZi5fc2V0X3VwX3RhcmdldF9kaXIodGFyZ2V0X2RpciwgYXBwZW5kX3RvX3Nl
YXJjaF9wYXRoLCBwcmVwZW5kX3RvX3NlYXJjaF9wYXRoLCBtYWtlX3BhY2thZ2UpCi0KLSAgICAg
ICAgc2VsZi5fdGFyZ2V0X2RpciA9IHRhcmdldF9kaXIKLSAgICAgICAgc2VsZi5fdGVtcF9kaXIg
PSB0ZW1wX2RpcgotCi0gICAgZGVmIF93cml0ZV9maWxlKHNlbGYsIHBhdGgsIHRleHQsIGVuY29k
aW5nKToKLSAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihwYXRoLCAidyIsIGVuY29kaW5nKSBhcyBm
aWxlaGFuZGxlOgotICAgICAgICAgICAgZmlsZWhhbmRsZS53cml0ZSh0ZXh0KQotCi0gICAgZGVm
IF9zZXRfdXBfdGFyZ2V0X2RpcihzZWxmLCB0YXJnZXRfZGlyLCBhcHBlbmRfdG9fc2VhcmNoX3Bh
dGgsIHByZXBlbmRfdG9fc2VhcmNoX3BhdGgsIG1ha2VfcGFja2FnZSk6Ci0gICAgICAgICIiIlNl
dCB1cCBhIHRhcmdldCBkaXJlY3RvcnkuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0YXJn
ZXRfZGlyOiBUaGUgcGF0aCB0byB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzZXQgdXAuCi0gICAg
ICAgICAgYXBwZW5kX3RvX3NlYXJjaF9wYXRoOiBBIGJvb2xlYW4gdmFsdWUgb2Ygd2hldGhlciB0
byBhcHBlbmQgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgZGly
ZWN0b3J5IHRvIHRoZSBzeXMucGF0aCBzZWFyY2ggcGF0aC4KLSAgICAgICAgICBwcmVwZW5kX3Rv
X3NlYXJjaF9wYXRoOiBBIGJvb2xlYW4gdmFsdWUgb2Ygd2hldGhlciB0byBwcmVwZW5kIHRoZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0IGRpcmVjdG9yeSB0byB0aGUg
c3lzLnBhdGggc2VhcmNoIHBhdGguCi0gICAgICAgICAgbWFrZV9wYWNrYWdlOiBBIGJvb2xlYW4g
dmFsdWUgb2Ygd2hldGhlciB0byBtYWtlIHRoZSB0YXJnZXQKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRpcmVjdG9yeSBhIHBhY2thZ2UuICBUaGlzIGFkZHMgYW4gX19pbml0X18ucHkgZmlsZQot
ICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIHRhcmdldCBkaXJlY3RvcnkgLS0gYWxsb3dp
bmcgcGFja2FnZXMgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVzIHdpdGhpbiB0
aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBiZSBpbXBvcnRlZAotICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwbGljaXRseSB1c2luZyBkb3R0ZWQgbW9kdWxlIG5hbWVzLgotCi0gICAgICAgICIiIgot
ICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHModGFyZ2V0X2Rpcik6Ci0gICAgICAgICAgICBv
cy5tYWtlZGlycyh0YXJnZXRfZGlyKQotCi0gICAgICAgIGlmIGFwcGVuZF90b19zZWFyY2hfcGF0
aDoKLSAgICAgICAgICAgIHN5cy5wYXRoLmFwcGVuZCh0YXJnZXRfZGlyKQotCi0gICAgICAgIGlm
IHByZXBlbmRfdG9fc2VhcmNoX3BhdGg6Ci0gICAgICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwg
dGFyZ2V0X2RpcikKLQotICAgICAgICBpZiBtYWtlX3BhY2thZ2U6Ci0gICAgICAgICAgICBzZWxm
Ll9tYWtlX3BhY2thZ2UodGFyZ2V0X2RpcikKLQotICAgIGRlZiBfbWFrZV9wYWNrYWdlKHNlbGYs
IHRhcmdldF9kaXIpOgotICAgICAgICBpbml0X3BhdGggPSBvcy5wYXRoLmpvaW4odGFyZ2V0X2Rp
ciwgIl9faW5pdF9fLnB5IikKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGluaXRfcGF0
aCk6Ci0gICAgICAgICAgICB0ZXh0ID0gKCIjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzICIKLSAgICAgICAgICAgICAgICAgICAgImRpcmVjdG9yeSBmb3Ig
bW9kdWxlcy5cbiIpCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9maWxlKGluaXRfcGF0aCwgdGV4
dCwgImFzY2lpIikKLQotICAgIGRlZiBfY3JlYXRlX3NjcmF0Y2hfZGlyZWN0b3J5X2lubmVyKHNl
bGYsIHByZWZpeCk6Ci0gICAgICAgICIiIkNyZWF0ZSBhIHNjcmF0Y2ggZGlyZWN0b3J5IHdpdGhv
dXQgZXhjZXB0aW9uIGhhbmRsaW5nLgotCi0gICAgICAgIENyZWF0ZXMgYSBzY3JhdGNoIGRpcmVj
dG9yeSBpbnNpZGUgdGhlIEF1dG9JbnN0YWxsZXIgdGVtcAotICAgICAgICBkaXJlY3Rvcnkgc2Vs
Zi5fdGVtcF9kaXIsIG9yIGluc2lkZSBhIHBsYXRmb3JtLWRlcGVuZGVudCB0ZW1wCi0gICAgICAg
IGRpcmVjdG9yeSBpZiBzZWxmLl90ZW1wX2RpciBpcyBOb25lLiAgUmV0dXJucyB0aGUgcGF0aCB0
byB0aGUKLSAgICAgICAgY3JlYXRlZCBzY3JhdGNoIGRpcmVjdG9yeS4KLQotICAgICAgICBSYWlz
ZXM6Ci0gICAgICAgICAgT1NFcnJvcjogW0Vycm5vIDJdIGlmIHRoZSBjb250YWluaW5nIHRlbXAg
ZGlyZWN0b3J5IHNlbGYuX3RlbXBfZGlyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlz
IG5vdCBOb25lIGFuZCBkb2VzIG5vdCBleGlzdC4KLQotICAgICAgICAiIiIKLSAgICAgICAgIyBU
aGUgdGVtcGZpbGUubWtkdGVtcCgpIG1ldGhvZCBmdW5jdGlvbiByZXF1aXJlcyB0aGF0IHRoZQot
ICAgICAgICAjIGRpcmVjdG9yeSBjb3JyZXNwb25kaW5nIHRvIHRoZSAiZGlyIiBwYXJhbWV0ZXIg
YWxyZWFkeSBleGlzdAotICAgICAgICAjIGlmIGl0IGlzIG5vdCBOb25lLgotICAgICAgICBzY3Jh
dGNoX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAocHJlZml4PXByZWZpeC5yZXBsYWNlKCcvJywgJy4n
KSwgZGlyPXNlbGYuX3RlbXBfZGlyKQotICAgICAgICByZXR1cm4gc2NyYXRjaF9kaXIKLQotICAg
IGRlZiBfY3JlYXRlX3NjcmF0Y2hfZGlyZWN0b3J5KHNlbGYsIHRhcmdldF9uYW1lKToKLSAgICAg
ICAgIiIiQ3JlYXRlIGEgdGVtcG9yYXJ5IHNjcmF0Y2ggZGlyZWN0b3J5LCBhbmQgcmV0dXJuIGl0
cyBwYXRoLgotCi0gICAgICAgIFRoZSBzY3JhdGNoIGRpcmVjdG9yeSBpcyBnZW5lcmF0ZWQgaW5z
aWRlIHRoZSB0ZW1wIGRpcmVjdG9yeQotICAgICAgICBvZiB0aGlzIEF1dG9JbnN0YWxsZXIgaW5z
dGFuY2UuICBUaGlzIG1ldGhvZCBhbHNvIGNyZWF0ZXMgdGhlCi0gICAgICAgIHRlbXAgZGlyZWN0
b3J5IGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuCi0KLSAgICAgICAgIiIiCi0gICAgICAg
IHByZWZpeCA9IHRhcmdldF9uYW1lLnJlcGxhY2Uob3Muc2VwLCAiXyIpICsgIl8iCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNjcmF0Y2hfZGlyID0gc2VsZi5fY3JlYXRlX3NjcmF0Y2hfZGly
ZWN0b3J5X2lubmVyKHByZWZpeCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAg
ICAjIEhhbmRsZSBjYXNlIG9mIGNvbnRhaW5pbmcgdGVtcCBkaXJlY3Rvcnkgbm90IGV4aXN0aW5n
LS0KLSAgICAgICAgICAgICMgT1NFcnJvcjogW0Vycm5vIDJdIE5vIHN1Y2ggZmlsZSBvciBkaXJl
Y3Rvcnk6Li4uCi0gICAgICAgICAgICB0ZW1wX2RpciA9IHNlbGYuX3RlbXBfZGlyCi0gICAgICAg
ICAgICBpZiB0ZW1wX2RpciBpcyBOb25lIG9yIG9zLnBhdGguZXhpc3RzKHRlbXBfZGlyKToKLSAg
ICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgIyBFbHNlIHRyeSBhZ2FpbiBhZnRlciBj
cmVhdGluZyB0aGUgdGVtcCBkaXJlY3RvcnkuCi0gICAgICAgICAgICBvcy5tYWtlZGlycyh0ZW1w
X2RpcikKLSAgICAgICAgICAgIHNjcmF0Y2hfZGlyID0gc2VsZi5fY3JlYXRlX3NjcmF0Y2hfZGly
ZWN0b3J5X2lubmVyKHByZWZpeCkKLQotICAgICAgICByZXR1cm4gc2NyYXRjaF9kaXIKLQotICAg
IGRlZiBfdXJsX2Rvd25sb2FkZWRfcGF0aChzZWxmLCB0YXJnZXRfbmFtZSk6Ci0gICAgICAgIHJl
dHVybiBvcy5wYXRoLmpvaW4oc2VsZi5fdGFyZ2V0X2RpciwgIi4lcy51cmwiICUgdGFyZ2V0X25h
bWUucmVwbGFjZSgnLycsICdfJykpCi0KLSAgICBkZWYgX2lzX2Rvd25sb2FkZWQoc2VsZiwgdGFy
Z2V0X25hbWUsIHVybCk6Ci0gICAgICAgIHZlcnNpb25fcGF0aCA9IHNlbGYuX3VybF9kb3dubG9h
ZGVkX3BhdGgodGFyZ2V0X25hbWUpCi0KLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHZl
cnNpb25fcGF0aCk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICB3aXRoIGNv
ZGVjcy5vcGVuKHZlcnNpb25fcGF0aCwgInIiLCAidXRmLTgiKSBhcyBmaWxlaGFuZGxlOgotICAg
ICAgICAgICAgcmV0dXJuIGZpbGVoYW5kbGUucmVhZCgpLnN0cmlwKCkgPT0gdXJsLnN0cmlwKCkK
LQotICAgIGRlZiBfcmVjb3JkX3VybF9kb3dubG9hZGVkKHNlbGYsIHRhcmdldF9uYW1lLCB1cmwp
OgotICAgICAgICB2ZXJzaW9uX3BhdGggPSBzZWxmLl91cmxfZG93bmxvYWRlZF9wYXRoKHRhcmdl
dF9uYW1lKQotICAgICAgICBzZWxmLl93cml0ZV9maWxlKHZlcnNpb25fcGF0aCwgdXJsLCAidXRm
LTgiKQotCi0gICAgZGVmIF9leHRyYWN0X3RhcihzZWxmLCBwYXRoLCBzY3JhdGNoX2Rpcik6Ci0g
ICAgICAgICMgdGFyZmlsZS5leHRyYWN0YWxsKCkgZXh0cmFjdHMgdG8gYSBwYXRoIHdpdGhvdXQg
dGhlIHRyYWlsaW5nICIudGFyLmd6IiBvciAiLnRhci5iejIiLgotCi0gICAgICAgIGlmIHBhdGgu
ZW5kc3dpdGgoIi50YXIuZ3oiKToKLSAgICAgICAgICAgIHRhckZpbGVTdWZmaXggPSAiLnRhci5n
eiIKLSAgICAgICAgZWxpZiBwYXRoLmVuZHN3aXRoKCIudGFyLmJ6MiIpOgotICAgICAgICAgICAg
dGFyRmlsZVN1ZmZpeCA9ICIudGFyLmJ6MiIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigiLi4uIikKLQotICAgICAgICB0YXJnZXRfYmFzZW5hbWUgPSBvcy5wYXRo
LmJhc2VuYW1lKHBhdGhbOi1sZW4odGFyRmlsZVN1ZmZpeCldKQotICAgICAgICB0YXJnZXRfcGF0
aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2Jhc2VuYW1lKQotCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHRhcl9maWxlID0gdGFyZmlsZS5vcGVuKHBhdGgpCi0gICAgICAg
IGV4Y2VwdCB0YXJmaWxlLlJlYWRFcnJvciBhcyBlcnI6Ci0gICAgICAgICAgICAjIEFwcGVuZCBl
eGlzdGluZyBFcnJvciBtZXNzYWdlIHRvIG5ldyBFcnJvci4KLSAgICAgICAgICAgIG1lc3NhZ2Ug
PSAoIkNvdWxkIG5vdCBvcGVuIHRhciBmaWxlOiAlc1xuIgotICAgICAgICAgICAgICAgICAgICAg
ICAiIFRoZSBmaWxlIHByb2JhYmx5IGRvZXMgbm90IGhhdmUgdGhlIGNvcnJlY3QgZm9ybWF0Llxu
IgotICAgICAgICAgICAgICAgICAgICAgICAiIC0tPiBJbm5lciBtZXNzYWdlOiAlcyIKLSAgICAg
ICAgICAgICAgICAgICAgICAgJSAocGF0aCwgZXJyKSkKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbihtZXNzYWdlKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRhcl9maWxlLmV4dHJh
Y3RhbGwodGFyZ2V0X3BhdGgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICB0YXJfZmls
ZS5jbG9zZSgpCi0KLSAgICAgICAgcmV0dXJuIHRhcmdldF9wYXRoCi0KLSAgICAjIFRoaXMgaXMg
YSByZXBsYWNlbWVudCBmb3IgWmlwRmlsZS5leHRyYWN0YWxsKCksIHdoaWNoIGRvZXNuJ3QKLSAg
ICAjIHNlZW0gdG8gd29yayB3aXRoIGFueSBzaGlwcGVkIHB5dGhvbiAyLjcueCB2ZXJzaW9ucy4K
LSAgICAjIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzUx
OT4gZm9yIGRldGFpbHMuCi0gICAgZGVmIF9leHRyYWN0X2FsbChzZWxmLCB6aXBfZmlsZSwgdGFy
Z2V0X2Rpcik6Ci0gICAgICAgIGZvciBuYW1lIGluIHppcF9maWxlLm5hbWVsaXN0KCk6Ci0gICAg
ICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHRhcmdldF9kaXIsIG5hbWUpCi0gICAgICAgICAg
ICBpZiBub3Qgb3MucGF0aC5iYXNlbmFtZShwYXRoKToKLSAgICAgICAgICAgICAgICAjIFRoZW4g
dGhlIHBhdGggZW5kcyBpbiBhIHNsYXNoLCBzbyBpdCBpcyBhIGRpcmVjdG9yeS4KLSAgICAgICAg
ICAgICAgICBvcy5tYWtlZGlycyhwYXRoKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAjIFdlIG9wZW4gdGhpcyBmaWxlIHcvbyBl
bmNvZGluZywgYXMgd2UncmUgcmVhZGluZy93cml0aW5nCi0gICAgICAgICAgICAgICAgIyB0aGUg
cmF3IGJ5dGUtc3RyZWFtIGZyb20gdGhlIHppcCBmaWxlLgotICAgICAgICAgICAgICAgIG91dGZp
bGUgPSBvcGVuKHBhdGgsICd3YicpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAg
ICAgICAgICAgICAjIE5vdCBhbGwgemlwIGZpbGVzIHNlZW0gdG8gbGlzdCB0aGUgZGlyZWN0b3Jp
ZXMgZXhwbGljaXRseSwKLSAgICAgICAgICAgICAgICAjIHNvIHRyeSBhZ2FpbiBhZnRlciBjcmVh
dGluZyB0aGUgY29udGFpbmluZyBkaXJlY3RvcnkuCi0gICAgICAgICAgICAgICAgX2xvZy5kZWJ1
ZygiR290IElPRXJyb3I6IHJldHJ5aW5nIGFmdGVyIGNyZWF0aW5nIGRpcmVjdG9yeS4uLiIpCi0g
ICAgICAgICAgICAgICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShwYXRoKQotICAgICAgICAg
ICAgICAgIG9zLm1ha2VkaXJzKGRpcm5hbWUpCi0gICAgICAgICAgICAgICAgb3V0ZmlsZSA9IG9w
ZW4ocGF0aCwgJ3diJykKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG91dGZp
bGUud3JpdGUoemlwX2ZpbGUucmVhZChuYW1lKSkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICAgICAgb3V0ZmlsZS5jbG9zZSgpCi0KLSAgICBkZWYgX3VuemlwKHNlbGYsIHBhdGgs
IHNjcmF0Y2hfZGlyKToKLSAgICAgICAgIyB6aXBmaWxlLmV4dHJhY3RhbGwoKSBleHRyYWN0cyB0
byBhIHBhdGggd2l0aG91dCB0aGUgdHJhaWxpbmcgIi56aXAiLgotICAgICAgICB0YXJnZXRfYmFz
ZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHBhdGhbOi1sZW4oIi56aXAiKV0pCi0gICAgICAgIHRh
cmdldF9wYXRoID0gb3MucGF0aC5qb2luKHNjcmF0Y2hfZGlyLCB0YXJnZXRfYmFzZW5hbWUpCi0K
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgemlwX2ZpbGUgPSB6aXBmaWxlLlppcEZpbGUocGF0
aCwgInIiKQotICAgICAgICBleGNlcHQgemlwZmlsZS5CYWRaaXBmaWxlIGFzIGVycjoKLSAgICAg
ICAgICAgIG1lc3NhZ2UgPSAoIkNvdWxkIG5vdCBvcGVuIHppcCBmaWxlOiAlc1xuIgotICAgICAg
ICAgICAgICAgICAgICAgICAiIC0tPiBJbm5lciBtZXNzYWdlOiAlcyIKLSAgICAgICAgICAgICAg
ICAgICAgICAgJSAocGF0aCwgZXJyKSkKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihtZXNz
YWdlKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2V4dHJhY3RfYWxsKHppcF9m
aWxlLCB0YXJnZXRfcGF0aCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHppcF9maWxl
LmNsb3NlKCkKLQotICAgICAgICByZXR1cm4gdGFyZ2V0X3BhdGgKLQotICAgIGRlZiBfY29weV91
bnBhY2thZ2VkX2ZpbGVzX2Zyb21fbG9jYWxfY2FjaGUoc2VsZiwgcGF0aCwgc2NyYXRjaF9kaXIp
OgotCi0gICAgICAgIHRhcmdldF9iYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUocGF0aCkKLSAg
ICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2NyYXRjaF9kaXIsIHRhcmdldF9iYXNl
bmFtZSkKLQotICAgICAgICBzaHV0aWwuY29weShwYXRoLCB0YXJnZXRfcGF0aCkKLSAgICAgICAg
cmV0dXJuIHRhcmdldF9wYXRoCi0KLSAgICBkZWYgX3ByZXBhcmVfcGFja2FnZShzZWxmLCBwYXRo
LCBzY3JhdGNoX2Rpcik6Ci0gICAgICAgICIiIlByZXBhcmUgYSBwYWNrYWdlIGZvciB1c2UsIGlm
IG5lY2Vzc2FyeSwgYW5kIHJldHVybiB0aGUgbmV3IHBhdGguCi0KLSAgICAgICAgRm9yIGV4YW1w
bGUsIHRoaXMgbWV0aG9kIHVuemlwcyB6aXBwZWQgZmlsZXMgYW5kIGV4dHJhY3RzCi0gICAgICAg
IHRhciBmaWxlcy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHBhdGg6IFRoZSBwYXRoIHRv
IHRoZSBkb3dubG9hZGVkIFVSTCBjb250ZW50cy4KLSAgICAgICAgICBzY3JhdGNoX2RpcjogVGhl
IHNjcmF0Y2ggZGlyZWN0b3J5LiAgTm90ZSB0aGF0IHRoZSBzY3JhdGNoCi0gICAgICAgICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSBjb250YWlucyB0aGUgZmlsZSBkZXNpZ25hdGVkIGJ5IHRoZQot
ICAgICAgICAgICAgICAgICAgICAgICBwYXRoIHBhcmFtZXRlci4KLQotICAgICAgICAiIiIKLSAg
ICAgICAgIyBGSVhNRTogQWRkIG90aGVyIG5hdHVyYWwgZXh0ZW5zaW9ucy4KLSAgICAgICAgaWYg
cGF0aC5lbmRzd2l0aCgiLnppcCIpOgotICAgICAgICAgICAgbmV3X3BhdGggPSBzZWxmLl91bnpp
cChwYXRoLCBzY3JhdGNoX2RpcikKLSAgICAgICAgZWxpZiBwYXRoLmVuZHN3aXRoKCIudGFyLmd6
Iikgb3IgcGF0aC5lbmRzd2l0aCgiLnRhci5iejIiKToKLSAgICAgICAgICAgIG5ld19wYXRoID0g
c2VsZi5fZXh0cmFjdF90YXIocGF0aCwgc2NyYXRjaF9kaXIpCi0gICAgICAgIGVsaWYgX0NBQ0hF
X0VOVl9WQVIgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgICAgIG5ld19wYXRoID0gcGF0aAotICAg
ICAgICAgICAgaWYgb3MucGF0aC5kaXJuYW1lKHBhdGgpID09IG9zLnBhdGgubm9ybXBhdGgob3Mu
ZW52aXJvbltfQ0FDSEVfRU5WX1ZBUl0pOgotICAgICAgICAgICAgICAgIG5ld19wYXRoID0gc2Vs
Zi5fY29weV91bnBhY2thZ2VkX2ZpbGVzX2Zyb21fbG9jYWxfY2FjaGUocGF0aCwgc2NyYXRjaF9k
aXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIE5vIHByZXBhcmF0aW9uIGlzIG5lZWRl
ZC4KLSAgICAgICAgICAgIG5ld19wYXRoID0gcGF0aAotCi0gICAgICAgIHJldHVybiBuZXdfcGF0
aAotCi0gICAgZGVmIF9wYXJzZV9jb2xvbl9zZXBhcmF0ZWRfbWlycm9yc19mcm9tX2VudihzZWxm
KToKLSAgICAgICAgIiIiCi0gICAgICAgIFB5cGkgbWlycm9yIGV4YW1sZTogUFlQSV9NSVJST1JT
PXB5cGkuaHVzdHVuaXF1ZS5jb20uLi4KLSAgICAgICAgU291cmNlZm9yZ2UgbWlycm9yIGV4YW1w
bGU6IFNPVVJDRUZPUkdFX01JUlJPUlM9YWFybmV0LmRsLnNvdXJjZWZvcmdlLm5ldDpjaXR5bGFu
LmRsLnNvdXJjZWZvcmdlLm5ldC4uLgotICAgICAgICBNaXJyb3Igc291cmNlczogaHR0cDovL3d3
dy5weXBpLW1pcnJvcnMub3JnLywgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9hcHBzL3RyYWMvc291
cmNlZm9yZ2Uvd2lraS9NaXJyb3JzCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBweXBpX21pcnJvcnNfbGlzdCA9IG9zLmVudmlyb25bX1BZUElfRU5WX1ZBUl0uc3BsaXQo
JzonKQotICAgICAgICBleGNlcHQoS2V5RXJyb3IpOgotICAgICAgICAgICAgcHlwaV9taXJyb3Jz
X2xpc3QgPSAoKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNvdXJjZWZvcmdlX21pcnJv
cnNfbGlzdCA9IG9zLmVudmlyb25bX1NPVVJDRUZPUkdFX0VOVl9WQVJdLnNwbGl0KCc6JykKLSAg
ICAgICAgZXhjZXB0KEtleUVycm9yKToKLSAgICAgICAgICAgIHNvdXJjZWZvcmdlX21pcnJvcnNf
bGlzdCA9ICgpCi0KLSAgICAgICAgbWlycm9yaXRlcmF0b3JzID0gaXRlcihzb3VyY2Vmb3JnZV9t
aXJyb3JzX2xpc3QpLCBpdGVyKHB5cGlfbWlycm9yc19saXN0KQotICAgICAgICByZXR1cm4gemlw
KF9NSVJST1JfUkVHRVhTLCBtaXJyb3JpdGVyYXRvcnMpCi0KLSAgICBkZWYgX3JlcGxhY2VfZG9t
YWluX3dpdGhfbmV4dF9taXJyb3Ioc2VsZiwgdXJsLCBtaXJyb3JzKToKLSAgICAgICAgcGFyc2Vk
X3VybCA9IGxpc3QodXJscGFyc2UudXJscGFyc2UodXJsKSkKLSAgICAgICAgbmV3X3VybCA9IE5v
bmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZm9yIHJlZ2V4LCBhZGRyZXNzZXMgaW4gbWly
cm9yczoKLSAgICAgICAgICAgICAgICBpZiByZWdleC5tYXRjaChwYXJzZWRfdXJsWzFdKToKLSAg
ICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybFsxXSA9IGFkZHJlc3Nlcy5uZXh0KCkKLSAgICAg
ICAgICAgICAgICAgICAgbmV3X3VybCA9IHVybHBhcnNlLnVybHVucGFyc2UocGFyc2VkX3VybCkK
LSAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb24gYXMgZToKLSAgICAgICAgICAgIF9sb2cuaW5m
bygnUmFuIG91dCBvZiBtaXJyb3JzLicpCi0KLSAgICAgICAgcmV0dXJuIG5ld191cmwKLQotICAg
IGRlZiBfZG93bmxvYWRfdG9fc3RyZWFtKHNlbGYsIHVybCwgc3RyZWFtKToKLSAgICAgICAgbWly
cm9ycyA9IHNlbGYuX3BhcnNlX2NvbG9uX3NlcGFyYXRlZF9taXJyb3JzX2Zyb21fZW52KCkKLSAg
ICAgICAgZmFpbHVyZXMgPSAwCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgbmV0c3RyZWFtID0gdXJsb3Blbih1cmwsIHRpbWVvdXQ9MzApCi0g
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoK
LSAgICAgICAgICAgICAgICAjIFRyeSBtdWx0aXBsZSB0aW1lcwotICAgICAgICAgICAgICAgIGlm
IGZhaWx1cmVzIDwgMjoKLSAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJGYWlsZWQg
dG8gZG93bmxvYWQgJXMsICVzIHJldHJ5aW5nIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAg
IHVybCwgZXJyKSkKLSAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMgKz0gMQotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgdXJsID0gc2VsZi5fcmVwbGFj
ZV9kb21haW5fd2l0aF9uZXh0X21pcnJvcih1cmwsIG1pcnJvcnMpCi0gICAgICAgICAgICAgICAg
aWYgdXJsOgotICAgICAgICAgICAgICAgICAgICBmYWlsdXJlcyA9IDAKLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgICMgQXBwZW5kIGV4aXN0aW5nIEVycm9y
IG1lc3NhZ2UgdG8gbmV3IEVycm9yLgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAoJ0NvdWxk
IG5vdCBkb3dubG9hZCBQeXRob24gbW9kdWxlcyBmcm9tIFVSTCAiJXMiLlxuJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiBNYWtlIHN1cmUgeW91IGFyZSBjb25uZWN0ZWQgdG8gdGhlIGlu
dGVybmV0LlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBZb3UgbXVzdCBiZSBjb25u
ZWN0ZWQgdG8gdGhlIGludGVybmV0IHdoZW4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRvd25sb2FkaW5nIG5lZWRlZCBtb2R1bGVzIGZvciB0aGUgZmlyc3QgdGltZS5cbiIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIgLS0+IElubmVyIG1lc3NhZ2U6ICVzIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJSAodXJsLCBlcnIpKQotICAgICAgICAgICAgICAgIHJhaXNlIElP
RXJyb3IobWVzc2FnZSkKLSAgICAgICAgY29kZSA9IDIwMAotICAgICAgICBpZiBub3QgdXJsLnN0
YXJ0c3dpdGgoImZpbGUiKSBhbmQgaGFzYXR0cihuZXRzdHJlYW0sICJnZXRjb2RlIik6Ci0gICAg
ICAgICAgICBjb2RlID0gbmV0c3RyZWFtLmdldGNvZGUoKQotICAgICAgICBpZiBub3QgMjAwIDw9
IGNvZGUgPCAzMDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJIVFRQIEVycm9yIGNv
ZGUgJXMiICUgY29kZSkKLQotICAgICAgICBCVUZTSVpFID0gMiAqKiAxMyAgIyA4S0IKLSAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGRhdGEgPSBuZXRzdHJlYW0ucmVhZChCVUZTSVpF
KQotICAgICAgICAgICAgaWYgbm90IGRhdGE6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgIHN0cmVhbS53cml0ZShkYXRhKQotICAgICAgICBuZXRzdHJlYW0uY2xvc2UoKQotCi0g
ICAgZGVmIF9jaGVja19wYWNrYWdlX2luX2xvY2FsX2F1dG9pbnN0YWxsX2NhY2hlKHNlbGYsIGZp
bGVuYW1lKToKLSAgICAgICAgaWYgX0NBQ0hFX0VOVl9WQVIgbm90IGluIG9zLmVudmlyb246Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcGF0aCA9IGdsb2Iob3MucGF0aC5qb2lu
KG9zLmVudmlyb25bX0NBQ0hFX0VOVl9WQVJdLCBmaWxlbmFtZSkgKyAnKicpCi0gICAgICAgIGlm
IG5vdCBwYXRoOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIHBh
dGhbMF0KLQotICAgIGRlZiBfZG93bmxvYWQoc2VsZiwgdXJsLCBzY3JhdGNoX2Rpcik6Ci0gICAg
ICAgIHVybF9wYXRoID0gdXJscGFyc2UudXJsc3BsaXQodXJsKVsyXQotICAgICAgICB1cmxfcGF0
aCA9IG9zLnBhdGgubm9ybXBhdGgodXJsX3BhdGgpICAjIFJlbW92ZXMgdHJhaWxpbmcgc2xhc2gu
Ci0gICAgICAgIHRhcmdldF9maWxlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUodXJsX3BhdGgpCi0K
LSAgICAgICAgY2FjaGUgPSBzZWxmLl9jaGVja19wYWNrYWdlX2luX2xvY2FsX2F1dG9pbnN0YWxs
X2NhY2hlKHRhcmdldF9maWxlbmFtZSkKLSAgICAgICAgaWYgY2FjaGU6Ci0gICAgICAgICAgICBy
ZXR1cm4gY2FjaGUKLQotICAgICAgICB0YXJnZXRfcGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNo
X2RpciwgdGFyZ2V0X2ZpbGVuYW1lKQotCi0gICAgICAgIGlmIG9zLm5hbWUgPT0gJ3Bvc2l4JzoK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjb21tYW5kID0gWydjdXJsJywgdXJs
LCAnLUwnLCAnLS1vdXRwdXQnLCB0YXJnZXRfcGF0aF0KLSAgICAgICAgICAgICAgICB3aXRoIG9w
ZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBkZXZudWxsOgotICAgICAgICAgICAgICAgICAgICBzdWJw
cm9jZXNzLmNoZWNrX2NhbGwoY29tbWFuZCwgc3Rkb3V0PWRldm51bGwsIHN0ZGVycj1kZXZudWxs
KQotICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6
Ci0gICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdFcnJvcjogRmFpbGVkIHRvIGRvd25sb2FkIHt9
IHRvIHt9LiBDb21tYW5kOiB7fScuZm9ybWF0KHVybCwgdGFyZ2V0X3BhdGgsIGNvbW1hbmQpKQot
ICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGVsc2U6ICAjIFdpbmRvd3MKLSAgICAgICAg
ICAgIHdpdGggb3Blbih0YXJnZXRfcGF0aCwgIndiIikgYXMgc3RyZWFtOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2Rvd25sb2FkX3RvX3N0cmVhbSh1cmwsIHN0cmVhbSkKLQotICAgICAgICBpZiBf
Q0FDSEVfRU5WX1ZBUiBpbiBvcy5lbnZpcm9uOgotICAgICAgICAgICAgZGlyX3V0aWwuY29weV90
cmVlKHNjcmF0Y2hfZGlyLCBvcy5lbnZpcm9uW19DQUNIRV9FTlZfVkFSXSkKLQotICAgICAgICBy
ZXR1cm4gdGFyZ2V0X3BhdGgKLQotICAgIGRlZiBfaW5zdGFsbChzZWxmLCBzY3JhdGNoX2Rpciwg
cGFja2FnZV9uYW1lLCB0YXJnZXRfcGF0aCwgdXJsLCB1cmxfc3VicGF0aCwgZmlsZXNfdG9fcmVt
b3ZlKToKLSAgICAgICAgIiIiSW5zdGFsbCBhIHB5dGhvbiBwYWNrYWdlIGZyb20gYW4gVVJMLgot
Ci0gICAgICAgIFRoaXMgaW50ZXJuYWwgbWV0aG9kIG92ZXJ3cml0ZXMgdGhlIHRhcmdldCBwYXRo
IGlmIHRoZSB0YXJnZXQKLSAgICAgICAgcGF0aCBhbHJlYWR5IGV4aXN0cy4KLQotICAgICAgICAi
IiIKLSAgICAgICAgcGF0aCA9IHNlbGYuX2Rvd25sb2FkKHVybD11cmwsIHNjcmF0Y2hfZGlyPXNj
cmF0Y2hfZGlyKQotICAgICAgICBwYXRoID0gc2VsZi5fcHJlcGFyZV9wYWNrYWdlKHBhdGgsIHNj
cmF0Y2hfZGlyKQotCi0gICAgICAgIGlmIHVybF9zdWJwYXRoIGlzIE5vbmU6Ci0gICAgICAgICAg
ICBzb3VyY2VfcGF0aCA9IHBhdGgKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNvdXJjZV9w
YXRoID0gb3MucGF0aC5qb2luKHBhdGgsIHVybF9zdWJwYXRoKQotCi0gICAgICAgIGZvciBmaWxl
bmFtZSBpbiBmaWxlc190b19yZW1vdmU6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2lu
KHNvdXJjZV9wYXRoLCBmaWxlbmFtZS5yZXBsYWNlKCcvJywgb3Muc2VwKSkKLSAgICAgICAgICAg
IGlmIG9zLnBhdGguZXhpc3RzKHBhdGgpOgotICAgICAgICAgICAgICAgICMgUHJlLWVtcHRpdmVs
eSBjaGFuZ2UgdGhlIHBlcm1pc3Npb25zIHRvICMwNzc3IHRvIHRyeSBhbmQgd29yayBhcm91bmQg
d2luMzIgcGVybWlzc2lvbnMgaXNzdWVzLgotICAgICAgICAgICAgICAgIG9zLmNobW9kKHBhdGgs
IHN0YXQuU19JUldYVSB8IHN0YXQuU19JUldYRyB8IHN0YXQuU19JUldYTykKLSAgICAgICAgICAg
ICAgICBvcy5yZW1vdmUocGF0aCkKLQotICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyh0YXJnZXRf
cGF0aCk6Ci0gICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKHRhcmdldF9wYXRoKToKLSAgICAg
ICAgICAgICAgICBzaHV0aWwucm10cmVlKHRhcmdldF9wYXRoLCBpZ25vcmVfZXJyb3JzPVRydWUp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG9zLnJlbW92ZSh0YXJnZXRfcGF0
aCkKLQotICAgICAgICAjIHNodXRpbC5tb3ZlKCkgY29tbWFuZCBjcmVhdGVzIGludGVybWVkaWF0
ZSBkaXJlY3RvcmllcyBpZiB0aGV5IGRvIG5vdCBleGlzdC4KLSAgICAgICAgc2h1dGlsLm1vdmUo
c291cmNlX3BhdGgsIHRhcmdldF9wYXRoKQotCi0gICAgICAgICMgZW5zdXJlIGFsbCB0aGUgbmV3
IGRpcmVjdG9yaWVzIGFyZSBpbXBvcnRhYmxlLgotICAgICAgICBpbnRlcm1lZGlhdGVfZGlycyA9
IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJlbHBhdGgodGFyZ2V0X3BhdGgsIHNlbGYuX3Rhcmdl
dF9kaXIpKQotICAgICAgICBwYXJlbnRfZGlybmFtZSA9IHNlbGYuX3RhcmdldF9kaXIKLSAgICAg
ICAgZm9yIGRpcm5hbWUgaW4gaW50ZXJtZWRpYXRlX2RpcnMuc3BsaXQob3Muc2VwKToKLSAgICAg
ICAgICAgIHBhcmVudF9kaXJuYW1lID0gb3MucGF0aC5qb2luKHBhcmVudF9kaXJuYW1lLCBkaXJu
YW1lKQotICAgICAgICAgICAgc2VsZi5fbWFrZV9wYWNrYWdlKHBhcmVudF9kaXJuYW1lKQotCi0g
ICAgICAgIHNlbGYuX3JlY29yZF91cmxfZG93bmxvYWRlZChwYWNrYWdlX25hbWUsIHVybCkKLQot
ICAgIGRlZiBpbnN0YWxsKHNlbGYsIHVybCwgc2hvdWxkX3JlZnJlc2g9RmFsc2UsIHRhcmdldF9u
YW1lPU5vbmUsCi0gICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9Tm9uZSwgZmlsZXNfdG9fcmVt
b3ZlPU5vbmUpOgotICAgICAgICAiIiJJbnN0YWxsIGEgcHl0aG9uIHBhY2thZ2UgZnJvbSBhbiBV
UkwsIHJldHVybiBGYWxzZSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgIHVybDogVGhlIFVSTCBmcm9tIHdoaWNoIHRvIGRvd25sb2FkIHRoZSBwYWNrYWdl
LgotCi0gICAgICAgIE9wdGlvbmFsIEFyZ3M6Ci0gICAgICAgICAgc2hvdWxkX3JlZnJlc2g6IEEg
Ym9vbGVhbiB2YWx1ZSBvZiB3aGV0aGVyIHRoZSBwYWNrYWdlIHNob3VsZCBiZQotICAgICAgICAg
ICAgICAgICAgICAgICAgICBkb3dubG9hZGVkIGFuZCByZWluc3RhbGxlZCBhZ2FpbiBldmVuIGlm
IHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlIGlzIGFscmVhZHkgcHJlc2Vu
dC4KLSAgICAgICAgICB0YXJnZXRfbmFtZTogVGhlIG5hbWUgb2YgdGhlIGZvbGRlciBvciBmaWxl
IGluIHRoZSBhdXRvaW5zdGFsbGVyCi0gICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCBkaXJl
Y3RvcnkgYXQgd2hpY2ggdGhlIHBhY2thZ2Ugc2hvdWxkIGJlCi0gICAgICAgICAgICAgICAgICAg
ICAgIGluc3RhbGxlZC4gIERlZmF1bHRzIHRvIHRoZSBiYXNlIG5hbWUgb2YgdGhlCi0gICAgICAg
ICAgICAgICAgICAgICAgIFVSTCBzdWItcGF0aC4gIFRoaXMgcGFyYW1ldGVyIG11c3QgYmUgcHJv
dmlkZWQgaWYKLSAgICAgICAgICAgICAgICAgICAgICAgdGhlIFVSTCBzdWItcGF0aCBpcyBub3Qg
c3BlY2lmaWVkLgotICAgICAgICAgIHVybF9zdWJwYXRoOiBUaGUgcmVsYXRpdmUgcGF0aCBvZiB0
aGUgVVJMIGRpcmVjdG9yeSB0aGF0IHNob3VsZAotICAgICAgICAgICAgICAgICAgICAgICBiZSBp
bnN0YWxsZWQuICBEZWZhdWx0cyB0byB0aGUgZnVsbCBkaXJlY3RvcnksIG9yCi0gICAgICAgICAg
ICAgICAgICAgICAgIHRoZSBlbnRpcmUgVVJMIGNvbnRlbnRzLgotCi0gICAgICAgICIiIgotICAg
ICAgICBpZiB0YXJnZXRfbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgbm90IHVybF9zdWJw
YXRoOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RoZSAidGFyZ2V0X25hbWUi
IHBhcmFtZXRlciBtdXN0IGJlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdw
cm92aWRlZCBpZiB0aGUgInVybF9zdWJwYXRoIiBwYXJhbWV0ZXIgJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImlzIG5vdCBwcm92aWRlZC4iKQotICAgICAgICAgICAgIyBSZW1v
dmUgYW55IHRyYWlsaW5nIHNsYXNoZXMuCi0gICAgICAgICAgICB1cmxfc3VicGF0aCA9IG9zLnBh
dGgubm9ybXBhdGgodXJsX3N1YnBhdGgpCi0gICAgICAgICAgICB0YXJnZXRfbmFtZSA9IG9zLnBh
dGguYmFzZW5hbWUodXJsX3N1YnBhdGgpCi0KLSAgICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRo
LmpvaW4oc2VsZi5fdGFyZ2V0X2RpciwgdGFyZ2V0X25hbWUucmVwbGFjZSgnLycsIG9zLnNlcCkp
Ci0gICAgICAgIGlmIG5vdCBzaG91bGRfcmVmcmVzaCBhbmQgc2VsZi5faXNfZG93bmxvYWRlZCh0
YXJnZXRfbmFtZSwgdXJsKSBhbmQgb3MucGF0aC5leGlzdHModGFyZ2V0X3BhdGgpOgotICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgZmlsZXNfdG9fcmVtb3ZlID0gZmlsZXNfdG9f
cmVtb3ZlIG9yIFtdCi0gICAgICAgIHBhY2thZ2VfbmFtZSA9IHRhcmdldF9uYW1lLnJlcGxhY2Uo
b3Muc2VwLCAnLicpCi0gICAgICAgIF9sb2cuaW5mbygiQXV0by1pbnN0YWxsaW5nIHBhY2thZ2U6
ICVzIiAlIHBhY2thZ2VfbmFtZSkKLQotICAgICAgICAjIFRoZSBzY3JhdGNoIGRpcmVjdG9yeSBp
cyB3aGVyZSB3ZSB3aWxsIGRvd25sb2FkIGFuZCBwcmVwYXJlCi0gICAgICAgICMgZmlsZXMgc3Bl
Y2lmaWMgdG8gdGhpcyBpbnN0YWxsIHVudGlsIHRoZXkgYXJlIHJlYWR5IHRvIG1vdmUKLSAgICAg
ICAgIyBpbnRvIHBsYWNlLgotICAgICAgICBzY3JhdGNoX2RpciA9IHNlbGYuX2NyZWF0ZV9zY3Jh
dGNoX2RpcmVjdG9yeSh0YXJnZXRfbmFtZSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBz
ZWxmLl9pbnN0YWxsKHBhY2thZ2VfbmFtZT1wYWNrYWdlX25hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldF9wYXRoPXRhcmdldF9wYXRoLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBzY3JhdGNoX2Rpcj1zY3JhdGNoX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
dXJsPXVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9dXJsX3N1YnBh
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19y
ZW1vdmUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyOgotICAgICAgICAgICAgIyBB
cHBlbmQgZXhpc3RpbmcgRXJyb3IgbWVzc2FnZSB0byBuZXcgRXJyb3IuCi0gICAgICAgICAgICBt
ZXNzYWdlID0gKCJFcnJvciBhdXRvLWluc3RhbGxpbmcgdGhlICVzIHBhY2thZ2UgdG86XG4iCi0g
ICAgICAgICAgICAgICAgICAgICAgICcgIiVzIlxuJwotICAgICAgICAgICAgICAgICAgICAgICAi
IC0tPiBJbm5lciBtZXNzYWdlOiAlcyIKLSAgICAgICAgICAgICAgICAgICAgICAgJSAodGFyZ2V0
X25hbWUsIHRhcmdldF9wYXRoLCBlcnIpKQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKG1l
c3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKHNjcmF0
Y2hfZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0gICAgICAgIF9sb2cuZGVidWcoJ0F1dG8taW5z
dGFsbGVkICVzIHRvOicgJSB1cmwpCi0gICAgICAgIF9sb2cuZGVidWcoJyAgICAiJXMiJyAlIHRh
cmdldF9wYXRoKQotICAgICAgICByZXR1cm4gVHJ1ZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90ZXN0L21haW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
ZXN0L21haW4ucHkJKHJldmlzaW9uIDI2ODkzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dGVzdC9tYWluLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsMTIgKzE1MSw2IEBAIGNsYXNzIFRl
c3RlcihvYmplY3QpOgogICAgICAgICAjIE1ha2Ugc3VyZSBQWVRIT05QQVRIIGlzIHNldCB1cCBw
cm9wZXJseS4KICAgICAgICAgc3lzLnBhdGggPSBzZWxmLmZpbmRlci5hZGRpdGlvbmFsX3BhdGhz
KHN5cy5wYXRoKSArIHN5cy5wYXRoCiAKLSAgICAgICAgIyBXZSBhdXRvaW5zdGFsbCBldmVyeXRo
aW5nIHVwIHNvIHRoYXQgd2UgY2FuIHJ1biB0ZXN0cyBjb25jdXJyZW50bHkKLSAgICAgICAgIyBh
bmQgbm90IGhhdmUgdG8gd29ycnkgYWJvdXQgYXV0b2luc3RhbGxpbmcgcGFja2FnZXMgY29uY3Vy
cmVudGx5LgotICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVfdXBkYXRlKCJDaGVja2luZyBhdXRv
aW5zdGFsbGVkIHBhY2thZ2VzIC4uLiIpCi0gICAgICAgIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0
eSBpbXBvcnQgYXV0b2luc3RhbGxfZXZlcnl0aGluZwotICAgICAgICBhdXRvaW5zdGFsbF9ldmVy
eXRoaW5nKCkKLQogICAgICAgICBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwK
ICAgICAgICAgQXV0b0luc3RhbGwuaW5zdGFsbF9ldmVyeXRoaW5nKCkKIApAQCAtMTY5LDkgKzE2
Myw3IEBAIGNsYXNzIFRlc3RlcihvYmplY3QpOgogICAgICAgICAgICAgaW1wb3J0IGNvdmVyYWdl
CiAgICAgICAgICAgICBjb3YgPSBjb3ZlcmFnZS5jb3ZlcmFnZShvbWl0PVsKICAgICAgICAgICAg
ICAgICAiL3Vzci8qIiwKLSAgICAgICAgICAgICAgICAiKi93ZWJraXRweS90aGlyZHBhcnR5L2F1
dG9pbnN0YWxsZWQvKiIsCi0gICAgICAgICAgICAgICAgIiovd2Via2l0cHkvdGhpcmRwYXJ0eS9C
ZWF1dGlmdWxTb3VwLnB5IiwKLSAgICAgICAgICAgICAgICAiKi93ZWJraXRweS90aGlyZHBhcnR5
L0JlYXV0aWZ1bFNvdXBfbGVnYWN5LnB5IiwKKyAgICAgICAgICAgICAgICAiKi93ZWJraXRweS90
aGlyZHBhcnR5LyoiLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGNvdi5zdGFydCgpCiAK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkJ
KHJldmlzaW9uIDI2ODkzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9f
X2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChD
KSAyMDEwIENocmlzIEplcmRvbmVrIChjamVyZG9uZWtAd2Via2l0Lm9yZykKLSMgQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTAsNyArOSw3IEBACiAjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgogIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKICMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKICMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQogIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgpA
QCAtMjAsMTAwICsxOSwzIEBACiAjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCiAjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBtb2R1bGUgaXMgcmVxdWlyZWQgZm9y
IFB5dGhvbiB0byB0cmVhdCB0aGlzIGRpcmVjdG9yeSBhcyBhIHBhY2thZ2UuCi0KLSIiIkF1dG9p
bnN0YWxscyB0aGlyZC1wYXJ0eSBjb2RlIHJlcXVpcmVkIGJ5IFdlYktpdC4iIiIKLQotCi1pbXBv
cnQganNvbgotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWlmIHN5cy52ZXJzaW9uX2luZm8gPiAo
MywgMCk6Ci0gICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotZWxzZToKLSAg
ICBmcm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4KLQotZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmF1dG9pbnN0YWxsIGltcG9ydCBBdXRvSW5zdGFsbGVyCi1mcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQotZnJvbSB3ZWJraXRjb3JlcHkg
aW1wb3J0IEF1dG9JbnN0YWxsCi0KLV9USElSRFBBUlRZX0RJUiA9IG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXykKLV9BVVRPSU5TVEFMTEVEX0RJUiA9IG9zLnBhdGguam9pbihfVEhJUkRQQVJUWV9E
SVIsICJhdXRvaW5zdGFsbGVkIikKLQotIyBQdXR0aW5nIHRoZSBhdXRvaW5zdGFsbCBjb2RlIGlu
dG8gd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weQotIyBlbnN1cmVzIHRoYXQgbm8gYXV0
b2luc3RhbGxpbmcgb2NjdXJzIHVudGlsIGEgY2FsbGVyIGltcG9ydHMgZnJvbQotIyB3ZWJraXRw
eS50aGlyZHBhcnR5LiAgVGhpcyBpcyB1c2VmdWwgaWYgdGhlIGNhbGxlciB3YW50cyB0byBjb25m
aWd1cmUKLSMgbG9nZ2luZyBwcmlvciB0byBleGVjdXRpbmcgYXV0b2luc3RhbGwgY29kZS4KLQot
IyBGSVhNRTogSWYgYW55IG9mIHRoZXNlIHNlcnZlcnMgaXMgb2ZmbGluZSwgd2Via2l0LXBhdGNo
IGJyZWFrcyAoYW5kIG1heWJlCi0jIG90aGVyIHNjcmlwdHMgZG8sIHRvbykuIFNlZSA8aHR0cDov
L3dlYmtpdC5vcmcvYi80MjA4MD4uCi0KLSMgV2UgcHV0IGF1dG8taW5zdGFsbGVkIHRoaXJkLXBh
cnR5IG1vZHVsZXMgaW4gdGhpcyBkaXJlY3RvcnktLQotIwotIyAgICAgd2Via2l0cHkvdGhpcmRw
YXJ0eS9hdXRvaW5zdGFsbGVkCi0KLWZzID0gRmlsZVN5c3RlbSgpCi1mcy5tYXliZV9tYWtlX2Rp
cmVjdG9yeShfQVVUT0lOU1RBTExFRF9ESVIpCi0KLWluaXRfcGF0aCA9IGZzLmpvaW4oX0FVVE9J
TlNUQUxMRURfRElSLCAiX19pbml0X18ucHkiKQotaWYgbm90IGZzLmV4aXN0cyhpbml0X3BhdGgp
OgotICAgIGZzLndyaXRlX3RleHRfZmlsZShpbml0X3BhdGgsICIiKQotCi1yZWFkbWVfcGF0aCA9
IGZzLmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAiUkVBRE1FIikKLWlmIG5vdCBmcy5leGlzdHMo
cmVhZG1lX3BhdGgpOgotICAgIGZzLndyaXRlX3RleHRfZmlsZShyZWFkbWVfcGF0aCwKLSAgICAg
ICAgIlRoaXMgZGlyZWN0b3J5IGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFdlYktpdCBhbmQgaXMgIgot
ICAgICAgICAic2FmZSB0byBkZWxldGUuXG5JdCBjb250YWlucyBuZWVkZWQgdGhpcmQtcGFydHkg
UHl0aG9uICIKLSAgICAgICAgInBhY2thZ2VzIGF1dG9tYXRpY2FsbHkgZG93bmxvYWRlZCBmcm9t
IHRoZSB3ZWIuIikKLQotCi1jbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgZmlsZXN5c3RlbT1Ob25lKToKLSAgICAgICAgc2VsZi5fZnMg
PSBmaWxlc3lzdGVtIG9yIEZpbGVTeXN0ZW0oKQotCi0gICAgZGVmIF9lbnN1cmVfYXV0b2luc3Rh
bGxlZF9kaXJfaXNfaW5fc3lzX3BhdGgoc2VsZik6Ci0gICAgICAgICMgU29tZSBwYWNrYWdlcyBy
ZXF1aXJlIHRoYXQgdGhlIGFyZSBiZWluZyBwdXQgc29tZXdoZXJlIHVuZGVyIGEgZGlyZWN0b3J5
IGluIHN5cy5wYXRoLgotICAgICAgICBpZiBub3QgX0FVVE9JTlNUQUxMRURfRElSIGluIHN5cy5w
YXRoOgotICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KHN5cy5wYXRoLmluZGV4KEF1dG9JbnN0
YWxsLmRpcmVjdG9yeSkgKyAxIGlmIEF1dG9JbnN0YWxsLmRpcmVjdG9yeSBpbiBzeXMucGF0aCBl
bHNlIDAsIF9BVVRPSU5TVEFMTEVEX0RJUikKLQotICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBm
dWxsbmFtZSwgcGF0aD1Ob25lKToKLSAgICAgICAgcGFzcwotCi0gICAgQHN0YXRpY21ldGhvZAot
ICAgIGRlZiBncmVhdGVyX3RoYW5fZXF1YWxfdG9fdmVyc2lvbihtaW5pbXVtLCB2ZXJzaW9uKToK
LSAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKG1pbmltdW0uc3BsaXQoJy4nKSkpOgotICAgICAg
ICAgICAgaWYgaW50KHZlcnNpb24uc3BsaXQoJy4nKVtpXSkgPiBpbnQobWluaW11bS5zcGxpdCgn
LicpW2ldKToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAgICAgaWYgaW50
KHZlcnNpb24uc3BsaXQoJy4nKVtpXSkgPCBpbnQobWluaW11bS5zcGxpdCgnLicpW2ldKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRl
ZiBfaW5zdGFsbChzZWxmLCB1cmwsIHVybF9zdWJwYXRoPU5vbmUsIHRhcmdldF9uYW1lPU5vbmUp
OgotICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9X0FVVE9JTlNU
QUxMRURfRElSKQotICAgICAgICByZXR1cm4gaW5zdGFsbGVyLmluc3RhbGwodXJsPXVybCwgdXJs
X3N1YnBhdGg9dXJsX3N1YnBhdGgsIHRhcmdldF9uYW1lPXRhcmdldF9uYW1lKQotCi0gICAgZGVm
IGdldF9sYXRlc3RfcHlwaV91cmwoc2VsZiwgcGFja2FnZV9uYW1lLCB1cmxfc3VicGF0aF9mb3Jt
YXQ9J3tuYW1lfS17dmVyc2lvbn0ve2xuYW1lfScpOgotICAgICAgICBqc29uX3VybCA9ICJodHRw
czovL3B5cGkub3JnL3B5cGkvJXMvanNvbiIgJSBwYWNrYWdlX25hbWUKLSAgICAgICAgcmVzcG9u
c2UgPSB1cmxvcGVuKGpzb25fdXJsLCB0aW1lb3V0PTMwKQotICAgICAgICBkYXRhID0ganNvbi5s
b2FkKHJlc3BvbnNlKQotICAgICAgICB1cmwgPSBkYXRhWyd1cmxzJ11bMV1bJ3VybCddCi0gICAg
ICAgIHN1YnBhdGggPSB1cmxfc3VicGF0aF9mb3JtYXQuZm9ybWF0KG5hbWU9cGFja2FnZV9uYW1l
LCB2ZXJzaW9uPWRhdGFbJ2luZm8nXVsndmVyc2lvbiddLCBsbmFtZT1wYWNrYWdlX25hbWUubG93
ZXIoKSkKLSAgICAgICAgcmV0dXJuICh1cmwsIHN1YnBhdGgpCi0KLSAgICBkZWYgaW5zdGFsbF9i
aW5hcnkoc2VsZiwgdXJsLCBuYW1lKToKLSAgICAgICAgc2VsZi5faW5zdGFsbCh1cmw9dXJsLCB0
YXJnZXRfbmFtZT1uYW1lKQotICAgICAgICBkaXJlY3RvcnkgPSBvcy5wYXRoLmpvaW4oX0FVVE9J
TlNUQUxMRURfRElSLCBuYW1lKQotICAgICAgICBvcy5jaG1vZChvcy5wYXRoLmpvaW4oZGlyZWN0
b3J5LCBuYW1lKSwgMG83NTUpCi0gICAgICAgIG9wZW4ob3MucGF0aC5qb2luKGRpcmVjdG9yeSwg
J19faW5pdF9fLnB5JyksICd3KycpLmNsb3NlKCkKLQotCi1faG9vayA9IEF1dG9pbnN0YWxsSW1w
b3J0SG9vaygpCi1zeXMubWV0YV9wYXRoLmluc2VydCgwLCBfaG9vaykKLQotCi1kZWYgYXV0b2lu
c3RhbGxfZXZlcnl0aGluZygpOgotICAgIGluc3RhbGxfbWV0aG9kcyA9IFttZXRob2QgZm9yIG1l
dGhvZCBpbiBkaXIoX2hvb2suX19jbGFzc19fKSBpZiBtZXRob2Quc3RhcnRzd2l0aCgnX2luc3Rh
bGxfJyldCi0gICAgZm9yIG1ldGhvZCBpbiBpbnN0YWxsX21ldGhvZHM6Ci0gICAgICAgIGdldGF0
dHIoX2hvb2ssIG1ldGhvZCkoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>