<?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>222213</bug_id>
          
          <creation_ts>2021-02-19 16:33:16 -0800</creation_ts>
          <short_desc>[webkitscmpy] Add remote BitBucket</short_desc>
          <delta_ts>2022-02-10 16:39:18 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>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>dewei_zhu</cc>
    
    <cc>kocsen_chung</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731671</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-19 16:33:16 -0800</bug_when>
    <thetext>We need a remote BitBucket API to support identifiers in the Safari repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731672</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-19 16:33:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/74542626&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731673</commentid>
    <comment_count>2</comment_count>
      <attachid>421056</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-19 16:36:20 -0800</bug_when>
    <thetext>Created attachment 421056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732626</commentid>
    <comment_count>3</comment_count>
      <attachid>421056</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-23 11:25:04 -0800</bug_when>
    <thetext>Comment on attachment 421056
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732684</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 14:22:30 -0800</bug_when>
    <thetext>Committed r273333 (234485@main): &lt;https://commits.webkit.org/234485@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421056</attachid>
            <date>2021-02-19 16:36:20 -0800</date>
            <delta_ts>2022-02-10 16:39:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222213-20210219163620.patch</filename>
            <type>text/plain</type>
            <size>33910</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MzE4MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM4IEBACisyMDIxLTAyLTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIEFkZCByZW1vdGUgQml0QnVja2V0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyMTMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc0NTQyNjI2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAu
cHk6IEluY3JlbWVudCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvX19pbml0X18u
cHk6IEV4cG9ydCBtb2NrIEJpdEJ1Y2tldC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVja2V0LnB5OiBBZGRlZC4K
KyAgICAgICAgKEJpdEJ1Y2tldCk6IE1vY2sgbGltaXRlZCBzZXQgb2YgQml0QnVja2V0IFJFU1Qg
QVBJcy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9yZW1vdGUvX19pbml0X18ucHk6IEV4cG9ydCBCaXRCdWNrZXQgY2xhc3MuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2JpdGJ1Y2tl
dC5weTogQWRkZWQuCisgICAgICAgIChCaXRCdWNrZXQpOiBSZXBvc2l0b3J5IG9iamVjdCBpbnRl
cmFjdGluZyB3aXRoIEJpdEJ1Y2tldCB2aWEgUkVTVCBBUEkuCisgICAgICAgIChCaXRCdWNrZXQu
aXNfd2Vic2VydmVyKTogQ2hlY2sgaWYgdGhlIHByb3ZpZGVkIFVSTCBpcyBhIGJpdGJ1Y2tldCBV
UkwuCisgICAgICAgIChCaXRCdWNrZXQuX19pbml0X18pOgorICAgICAgICAoQml0QnVja2V0Lmlz
X2dpdCk6CisgICAgICAgIChCaXRCdWNrZXQucmVxdWVzdCk6IENvbWJpbmUgcGFnaW5hdGVkIHJl
cXVlc3RzIGludG8gYSBzaW5nbGUgQVBJIGNhbGwuCisgICAgICAgIChCaXRCdWNrZXQuX2Rpc3Rh
bmNlKTogUHJlZm9ybSBiaW5hcnkgc2VhcmNoIAorICAgICAgICAoQml0QnVja2V0Ll9icmFuY2hl
c19mb3IpOiBSZXR1cm4gYnJhbmNoZXMgZm9yIHJlZmVyZW5jZS4KKyAgICAgICAgKEJpdEJ1Y2tl
dC5kZWZhdWx0X2JyYW5jaCk6IFJldHVybiB0aGUgZGVmYXVsdCBicmFuY2guCisgICAgICAgIChC
aXRCdWNrZXQuYnJhbmNoZXMpOiBSZXR1cm4gYWxsIGJyYW5jaGVzIGZvciByZXBvc2l0b3J5Lgor
ICAgICAgICAoQml0QnVja2V0LnRhZ3MpOiBSZXR1cm4gYWxsIHRhZ3MgZm9yIHJlcG9zaXRvcnku
CisgICAgICAgIChCaXRCdWNrZXQuY29tbWl0KTogQ29udmVydCBoYXNoLCBpZGVudGlmaWVyIG9y
IGdpdCByZWYgdG8gQ29tbWl0IG9iamVjdC4KKyAgICAgICAgKEJpdEJ1Y2tldC5maW5kKTogVXNl
IGdpdCB0byBtYXRjaCBicmFuY2hlcyBhbmQgdGFncyB0byBhIGhhc2ggaW5zdGVhZCBvZiB0cnlp
bmcgdG8gZG8gaXQgb3Vyc2VsdmVzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHk6CisgICAgICAgIChTY20uZnJvbV91cmwp
OiBBZGQgQml0QnVja2V0LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEdpdEh1Yi50
ZXN0X2RldGVjdGlvbik6IEFkZCBiaXRidWNrZXQgdXJsLgorICAgICAgICAoVGVzdEJpdEJ1Y2tl
dCk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFJlbW90ZVN2bi50ZXN0
X2RldGVjdGlvbik6IEFkZCBiaXRidWNrZXQgdXJsLgorCiAyMDIxLTAyLTE2ICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBHZW5lcmF0ZSBzZWNyZXQg
dG9rZW4gYW5kIGNvcnJlc3BvbmRpbmcgdW5saW5rYWJsZSB0b2tlbgpJbmRleDogVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAucHkJKHJldmlzaW9uIDI3MzE4MCkK
KysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFt
ZT0nd2Via2l0c2NtcHknLAotICAgIHZlcnNpb249JzAuMTAuMCcsCisgICAgdmVyc2lvbj0nMC4x
MS4wJywKICAgICBkZXNjcmlwdGlvbj0nTGlicmFyeSBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRo
IGdpdCBhbmQgc3ZuIHJlcG9zaXRvcmllcy4nLAogICAgIGxvbmdfZGVzY3JpcHRpb249cmVhZG1l
KCksCiAgICAgY2xhc3NpZmllcnM9WwpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkJKHJldmlz
aW9uIDI3MzE4MCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIGV4Y2Vw
dCBJbXBvcnRFcnJvcjoKICAgICAgICAgIlBsZWFzZSBpbnN0YWxsIHdlYmtpdGNvcmVweSB3aXRo
IGBwaXAgaW5zdGFsbCB3ZWJraXRjb3JlcHkgLS1leHRyYS1pbmRleC11cmwgPHBhY2thZ2UgaW5k
ZXggVVJMPmAiCiAgICAgKQogCi12ZXJzaW9uID0gVmVyc2lvbigwLCAxMCwgMCkKK3ZlcnNpb24g
PSBWZXJzaW9uKDAsIDExLCAwKQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdlbnRy
eXBvaW50cycsIFZlcnNpb24oMCwgMywgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgnZmFzdGVuZXJzJywgVmVyc2lvbigwLCAxNSwgMCkpKQpJbmRleDogVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL19faW5pdF9fLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L21vY2tzL3JlbW90ZS9fX2luaXRfXy5weQkocmV2aXNpb24gMjczMTgwKQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3Rl
L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw1ICsyMCw2IEBACiAjIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2Zyb20gd2Via2l0c2NtcHkubW9ja3MucmVt
b3RlLmJpdGJ1Y2tldCBpbXBvcnQgQml0QnVja2V0CiBmcm9tIHdlYmtpdHNjbXB5Lm1vY2tzLnJl
bW90ZS5naXRfaHViIGltcG9ydCBHaXRIdWIKIGZyb20gd2Via2l0c2NtcHkubW9ja3MucmVtb3Rl
LnN2biBpbXBvcnQgU3ZuCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVja2V0LnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90
ZS9iaXRidWNrZXQucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE5NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IG9zCitpbXBvcnQganNvbgorCitmcm9tIHdlYmtpdGNvcmVweSBpbXBv
cnQgbW9ja3MKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgcmVtb3RlIGFzIHNjbXJl
bW90ZQorCisKK2NsYXNzIEJpdEJ1Y2tldChtb2Nrcy5SZXF1ZXN0cyk6CisgICAgdG9wID0gTm9u
ZQorCisgICAgZGVmIF9faW5pdF9fKAorICAgICAgICBzZWxmLCByZW1vdGU9J2JpdGJ1Y2tldC5l
eGFtcGxlLmNvbS9wcm9qZWN0cy9XRUJLSVQvcmVwb3Mvd2Via2l0JywgZGF0YWZpbGU9Tm9uZSwK
KyAgICAgICAgZGVmYXVsdF9icmFuY2g9J21haW4nLCBnaXRfc3ZuPUZhbHNlLAorICAgICk6Cisg
ICAgICAgIGlmIG5vdCBzY21yZW1vdGUuQml0QnVja2V0LmlzX3dlYnNlcnZlcignaHR0cHM6Ly97
fScuZm9ybWF0KHJlbW90ZSkpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignInt9IiBp
cyBub3QgYSB2YWxpZCBCaXRCdWNrZXQgcmVtb3RlJy5mb3JtYXQocmVtb3RlKSkKKworICAgICAg
ICBzZWxmLmRlZmF1bHRfYnJhbmNoID0gZGVmYXVsdF9icmFuY2gKKyAgICAgICAgc2VsZi5yZW1v
dGUgPSByZW1vdGUKKyAgICAgICAgc2VsZi5wcm9qZWN0ID0gJy8nLmpvaW4ocmVtb3RlLnNwbGl0
KCcvJylbMTpdKQorCisgICAgICAgIHN1cGVyKEJpdEJ1Y2tldCwgc2VsZikuX19pbml0X18oc2Vs
Zi5yZW1vdGUuc3BsaXQoJy8nKVswXSkKKworICAgICAgICB3aXRoIG9wZW4oZGF0YWZpbGUgb3Ig
b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKSwg
J2dpdC1yZXBvLmpzb24nKSkgYXMgZmlsZToKKyAgICAgICAgICAgIHNlbGYuY29tbWl0cyA9IGpz
b24ubG9hZChmaWxlKQorICAgICAgICBmb3Iga2V5LCBjb21taXRzIGluIHNlbGYuY29tbWl0cy5p
dGVtcygpOgorICAgICAgICAgICAgc2VsZi5jb21taXRzW2tleV0gPSBbQ29tbWl0KCoqa3dhcmdz
KSBmb3Iga3dhcmdzIGluIGNvbW1pdHNdCisgICAgICAgICAgICBpZiBub3QgZ2l0X3N2bjoKKyAg
ICAgICAgICAgICAgICBmb3IgY29tbWl0IGluIHNlbGYuY29tbWl0c1trZXldOgorICAgICAgICAg
ICAgICAgICAgICBjb21taXQucmV2aXNpb24gPSBOb25lCisKKyAgICAgICAgc2VsZi5oZWFkID0g
c2VsZi5jb21taXRzW3NlbGYuZGVmYXVsdF9icmFuY2hdWy0xXQorICAgICAgICBzZWxmLnRhZ3Mg
PSB7fQorCisgICAgZGVmIGNvbW1pdChzZWxmLCByZWYpOgorICAgICAgICBpZiByZWYgaW4gc2Vs
Zi5jb21taXRzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29tbWl0c1tyZWZdWy0xXQorICAg
ICAgICBpZiByZWYgaW4gc2VsZi50YWdzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYudGFnc1ty
ZWZdCisKKyAgICAgICAgZm9yIGJyYW5jaCwgY29tbWl0cyBpbiBzZWxmLmNvbW1pdHMuaXRlbXMo
KToKKyAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAgICAgICAgICAgICAgICBp
ZiBjb21taXQuaGFzaC5zdGFydHN3aXRoKHJlZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBjb21taXQKKworICAgICAgICBpZiAnficgbm90IGluIHJlZjoKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgIHJlZiwgZGVsdGEgPSByZWYuc3BsaXQoJ34nKQorICAgICAgICBjb21t
aXQgPSBzZWxmLmNvbW1pdChyZWYpCisgICAgICAgIGlmIG5vdCBjb21taXQ6CisgICAgICAgICAg
ICByZXR1cm4gTm9uZQorICAgICAgICBkZWx0YSA9IGludChkZWx0YSkKKworICAgICAgICBpZiBk
ZWx0YSA8IGNvbW1pdC5pZGVudGlmaWVyOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29tbWl0
c1tjb21taXQuYnJhbmNoXVtjb21taXQuaWRlbnRpZmllciAtIGRlbHRhIC0gMV0KKyAgICAgICAg
ZGVsdGEgLT0gY29tbWl0LmlkZW50aWZpZXIKKyAgICAgICAgaWYgY29tbWl0LmJyYW5jaF9wb2lu
dCBhbmQgZGVsdGEgPCBjb21taXQuYnJhbmNoX3BvaW50OgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYuY29tbWl0c1tzZWxmLmRlZmF1bHRfYnJhbmNoXVtjb21taXQuYnJhbmNoX3BvaW50IC0gZGVs
dGEgLSAxXQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9icmFuY2hlc19kZWZhdWx0
KHNlbGYsIHVybCk6CisgICAgICAgIHJlY2VudCA9IHNlbGYuY29tbWl0KHNlbGYuZGVmYXVsdF9i
cmFuY2gpCisgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5mcm9tSnNvbihkaWN0KAorICAg
ICAgICAgICAgaWQ9J3JlZnMvaGVhZHMve30nLmZvcm1hdChzZWxmLmRlZmF1bHRfYnJhbmNoKSwK
KyAgICAgICAgICAgIGRpc3BsYXlJZD1zZWxmLmRlZmF1bHRfYnJhbmNoLAorICAgICAgICAgICAg
dHlwZT0nQlJBTkNIJywKKyAgICAgICAgICAgIGxhdGVzdENvbW1pdD1yZWNlbnQuaGFzaCwKKyAg
ICAgICAgICAgIGxhdGVzdENoYW5nZXNldD1yZWNlbnQuaGFzaCwKKyAgICAgICAgICAgIGlzRGVm
YXVsdD1UcnVlLAorICAgICAgICApLCB1cmw9dXJsKQorCisgICAgZGVmIF9icmFuY2hlcyhzZWxm
LCB1cmwsIHBhcmFtcyk6CisgICAgICAgIGxpbWl0ID0gcGFyYW1zLmdldCgnbGltaXQnLCAyNSkK
KyAgICAgICAgc3RhcnQgPSBwYXJhbXMuZ2V0KCdzdGFydCcsIDApCisgICAgICAgIGJyYW5jaGVz
ID0gW2JyYW5jaCBmb3IgYnJhbmNoIGluIHNvcnRlZChzZWxmLmNvbW1pdHMua2V5cygpKVtzdGFy
dCAqIGxpbWl0OiAoc3RhcnQgKyAxKSAqIGxpbWl0XV0KKworICAgICAgICByZXR1cm4gbW9ja3Mu
UmVzcG9uc2UuZnJvbUpzb24oZGljdCgKKyAgICAgICAgICAgIHNpemU9bGVuKGJyYW5jaGVzKSwK
KyAgICAgICAgICAgIGxpbWl0PWxpbWl0LAorICAgICAgICAgICAgaXNMYXN0UGFnZT0oc3RhcnQg
KyAxKSAqIGxpbWl0ID4gbGVuKHNlbGYuY29tbWl0cy5rZXlzKCkpLAorICAgICAgICAgICAgc3Rh
cnQ9c3RhcnQsCisgICAgICAgICAgICBuZXh0UGFnZVN0YXJ0PXN0YXJ0ICsgbGltaXQsCisgICAg
ICAgICAgICB2YWx1ZXM9WworICAgICAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAg
ICAgIGlkPSdyZWZzL2hlYWRzL3t9Jy5mb3JtYXQoYnJhbmNoKSwKKyAgICAgICAgICAgICAgICAg
ICAgZGlzcGxheUlkPWJyYW5jaCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0nQlJBTkNIJywK
KyAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0PXNlbGYuZGVmYXVsdF9icmFuY2ggPT0gYnJh
bmNoLAorICAgICAgICAgICAgICAgICAgICBsYXRlc3RDb21taXQ9c2VsZi5jb21taXRzW2JyYW5j
aF1bLTFdLmhhc2gsCisgICAgICAgICAgICAgICAgKSBmb3IgYnJhbmNoIGluIGJyYW5jaGVzCisg
ICAgICAgICAgICBdLAorICAgICAgICApLCB1cmw9dXJsKQorCisgICAgZGVmIF90YWdzKHNlbGYs
IHVybCwgcGFyYW1zKToKKyAgICAgICAgbGltaXQgPSBwYXJhbXMuZ2V0KCdsaW1pdCcsIDI1KQor
ICAgICAgICBzdGFydCA9IHBhcmFtcy5nZXQoJ3N0YXJ0JywgMCkKKyAgICAgICAgdGFncyA9IFt0
YWcgZm9yIHRhZyBpbiBzb3J0ZWQoc2VsZi50YWdzLmtleXMoKSlbc3RhcnQgKiBsaW1pdDogKHN0
YXJ0ICsgMSkgKiBsaW1pdF1dCisKKyAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21K
c29uKGRpY3QoCisgICAgICAgICAgICBzaXplPWxlbih0YWdzKSwKKyAgICAgICAgICAgIGxpbWl0
PWxpbWl0LAorICAgICAgICAgICAgaXNMYXN0UGFnZT0oc3RhcnQgKyAxKSAqIGxpbWl0ID4gbGVu
KHNlbGYudGFncy5rZXlzKCkpLAorICAgICAgICAgICAgc3RhcnQ9c3RhcnQsCisgICAgICAgICAg
ICBuZXh0UGFnZVN0YXJ0PXN0YXJ0ICsgbGltaXQsCisgICAgICAgICAgICB2YWx1ZXM9WworICAg
ICAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgICAgIGlkPSdyZWZzL3RhZ3Mve30n
LmZvcm1hdCh0YWcpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5SWQ9dGFnLAorICAgICAg
ICAgICAgICAgICAgICB0eXBlPSdUQUcnLAorICAgICAgICAgICAgICAgICAgICBsYXRlc3RDb21t
aXQ9c2VsZi50YWdzW3RhZ10uaGFzaCwKKyAgICAgICAgICAgICAgICApIGZvciB0YWcgaW4gdGFn
cworICAgICAgICAgICAgXSwKKyAgICAgICAgKSwgdXJsPXVybCkKKworICAgIGRlZiBfYnJhbmNo
ZXNfZm9yKHNlbGYsIHJlZiwgdXJsLCBwYXJhbXMpOgorICAgICAgICBsaW1pdCA9IHBhcmFtcy5n
ZXQoJ2xpbWl0JywgMjUpCisgICAgICAgIHN0YXJ0ID0gcGFyYW1zLmdldCgnc3RhcnQnLCAwKQor
ICAgICAgICBjb21taXQgPSBzZWxmLmNvbW1pdChyZWYpCisgICAgICAgIGlmIG5vdCBjb21taXQ6
CisgICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuY3JlYXRlNDA0KHVybCkKKworICAg
ICAgICBicmFuY2hlcyA9IFtjb21taXQuYnJhbmNoXVtzdGFydCAqIGxpbWl0OiAoc3RhcnQgKyAx
KSAqIGxpbWl0XQorICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24oZGljdCgK
KyAgICAgICAgICAgIHNpemU9bGVuKGJyYW5jaGVzKSwKKyAgICAgICAgICAgIGxpbWl0PWxpbWl0
LAorICAgICAgICAgICAgaXNMYXN0UGFnZT0oc3RhcnQgKyAxKSAqIGxpbWl0ID4gMSwKKyAgICAg
ICAgICAgIHN0YXJ0PXN0YXJ0LAorICAgICAgICAgICAgbmV4dFBhZ2VTdGFydD1zdGFydCArIGxp
bWl0LAorICAgICAgICAgICAgdmFsdWVzPVsKKyAgICAgICAgICAgICAgICBkaWN0KAorICAgICAg
ICAgICAgICAgICAgICBpZD0ncmVmcy90YWdzL3t9Jy5mb3JtYXQoYnJhbmNoKSwKKyAgICAgICAg
ICAgICAgICAgICAgZGlzcGxheUlkPWJyYW5jaCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0n
QlJBTkNIJywKKyAgICAgICAgICAgICAgICApIGZvciBicmFuY2ggaW4gYnJhbmNoZXMKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICksIHVybD11cmwpCisKKyAgICBkZWYgcmVxdWVzdChzZWxmLCBt
ZXRob2QsIHVybCwgZGF0YT1Ob25lLCBwYXJhbXM9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBp
ZiBub3QgdXJsLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKSBhbmQgbm90IHVybC5zdGFydHN3aXRoKCdo
dHRwczovLycpOgorICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmNyZWF0ZTQwNCh1
cmwpCisKKyAgICAgICAgc3RyaXBwZWRfdXJsID0gdXJsLnNwbGl0KCc6Ly8nKVstMV0KKyAgICAg
ICAgaWYgc3RyaXBwZWRfdXJsID09ICd7fS9yZXN0L2FwaS8xLjAve30vYnJhbmNoZXMvZGVmYXVs
dCcuZm9ybWF0KHNlbGYuaG9zdHNbMF0sIHNlbGYucHJvamVjdCk6CisgICAgICAgICAgICByZXR1
cm4gc2VsZi5fYnJhbmNoZXNfZGVmYXVsdCh1cmwpCisKKyAgICAgICAgaWYgc3RyaXBwZWRfdXJs
ID09ICd7fS9yZXN0L2FwaS8xLjAve30vYnJhbmNoZXMnLmZvcm1hdChzZWxmLmhvc3RzWzBdLCBz
ZWxmLnByb2plY3QpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2JyYW5jaGVzKHVybCwgcGFy
YW1zIG9yIHt9KQorCisgICAgICAgIGlmIHN0cmlwcGVkX3VybCA9PSAne30vcmVzdC9hcGkvMS4w
L3t9L3RhZ3MnLmZvcm1hdChzZWxmLmhvc3RzWzBdLCBzZWxmLnByb2plY3QpOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX3RhZ3ModXJsLCBwYXJhbXMgb3Ige30pCisKKyAgICAgICAgaWYgc3Ry
aXBwZWRfdXJsLnN0YXJ0c3dpdGgoJ3t9L3Jlc3QvYXBpLzEuMC97fS9jb21taXRzLycuZm9ybWF0
KHNlbGYuaG9zdHNbMF0sIHNlbGYucHJvamVjdCkpOgorICAgICAgICAgICAgY29tbWl0ID0gc2Vs
Zi5jb21taXQoc3RyaXBwZWRfdXJsLnNwbGl0KCcvJylbLTFdKQorICAgICAgICAgICAgaWYgbm90
IGNvbW1pdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuY3JlYXRlNDA0
KHVybCkKKyAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5mcm9tSnNvbihkaWN0KAor
ICAgICAgICAgICAgICAgIGlkPWNvbW1pdC5oYXNoLAorICAgICAgICAgICAgICAgIGRpc3BsYXlJ
ZD1jb21taXQuaGFzaFs6MTJdLAorICAgICAgICAgICAgICAgIGF1dGhvcj1kaWN0KAorICAgICAg
ICAgICAgICAgICAgICBlbWFpbEFkZHJlc3M9Y29tbWl0LmF1dGhvci5lbWFpbCwKKyAgICAgICAg
ICAgICAgICAgICAgZGlzcGxheU5hbWU9Y29tbWl0LmF1dGhvci5uYW1lLAorICAgICAgICAgICAg
ICAgICksIGNvbW1pdHRlcj1kaWN0KAorICAgICAgICAgICAgICAgICAgICBlbWFpbEFkZHJlc3M9
Y29tbWl0LmF1dGhvci5lbWFpbCwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU9Y29t
bWl0LmF1dGhvci5uYW1lLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgY29t
bWl0dGVyVGltZXN0YW1wPWNvbW1pdC50aW1lc3RhbXAgKiAxMDAsCisgICAgICAgICAgICAgICAg
bWVzc2FnZT1jb21taXQubWVzc2FnZSwKKyAgICAgICAgICAgICkpCisKKyAgICAgICAgaWYgc3Ry
aXBwZWRfdXJsLnN0YXJ0c3dpdGgoJ3t9L3Jlc3QvYnJhbmNoLXV0aWxzL2xhdGVzdC97fS9icmFu
Y2hlcy9pbmZvLycuZm9ybWF0KHNlbGYuaG9zdHNbMF0sIHNlbGYucHJvamVjdCkpOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX2JyYW5jaGVzX2ZvcihzdHJpcHBlZF91cmwuc3BsaXQoJy8nKVst
MV0sIHVybCwgcGFyYW1zIG9yIHt9KQorCisgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5j
cmVhdGU0MDQodXJsKQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcmVtb3RlL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9fX2luaXRfXy5weQko
cmV2aXNpb24gMjczMTgwKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcmVtb3RlL19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsy
Myw0IEBACiBmcm9tIHdlYmtpdHNjbXB5LnJlbW90ZS5zY20gaW1wb3J0IFNjbQogZnJvbSB3ZWJr
aXRzY21weS5yZW1vdGUuc3ZuIGltcG9ydCBTdm4KIGZyb20gd2Via2l0c2NtcHkucmVtb3RlLmdp
dF9odWIgaW1wb3J0IEdpdEh1YgorZnJvbSB3ZWJraXRzY21weS5yZW1vdGUuYml0YnVja2V0IGlt
cG9ydCBCaXRCdWNrZXQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3JlbW90ZS9iaXRidWNrZXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2JpdGJ1Y2tldC5w
eQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9yZW1vdGUvYml0YnVja2V0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjY1IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgcmUK
K2ltcG9ydCByZXF1ZXN0cworaW1wb3J0IHNpeAoraW1wb3J0IHN5cworCitmcm9tIHdlYmtpdGNv
cmVweSBpbXBvcnQgZGVjb3JhdG9ycworZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0Citm
cm9tIHdlYmtpdHNjbXB5LnJlbW90ZS5zY20gaW1wb3J0IFNjbQorCisKK2NsYXNzIEJpdEJ1Y2tl
dChTY20pOgorICAgIFVSTF9SRSA9IHJlLmNvbXBpbGUocidcQWh0dHBzPzovLyg/UDxkb21haW4+
XFMrKS9wcm9qZWN0cy8oP1A8cHJvamVjdD5cUyspL3JlcG9zLyg/UDxyZXBvc2l0b3J5PlxTKylc
WicpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaXNfd2Vic2VydmVyKGNscywgdXJsKToK
KyAgICAgICAgcmV0dXJuIFRydWUgaWYgY2xzLlVSTF9SRS5tYXRjaCh1cmwpIGVsc2UgRmFsc2UK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIGRldl9icmFuY2hlcz1Ob25lLCBwcm9kX2Jy
YW5jaGVzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25lKToKKyAgICAgICAgbWF0Y2ggPSBzZWxmLlVS
TF9SRS5tYXRjaCh1cmwpCisgICAgICAgIGlmIG5vdCBtYXRjaDoKKyAgICAgICAgICAgIHJhaXNl
IHNlbGYuRXhjZXB0aW9uKCIne30nIGlzIG5vdCBhIHZhbGlkIEJpdEJ1Y2tldCBwcm9qZWN0Ii5m
b3JtYXQodXJsKSkKKyAgICAgICAgc2VsZi5kb21haW4gPSBtYXRjaC5ncm91cCgnZG9tYWluJykK
KyAgICAgICAgc2VsZi5wcm9qZWN0ID0gbWF0Y2guZ3JvdXAoJ3Byb2plY3QnKQorICAgICAgICBz
ZWxmLm5hbWUgPSBtYXRjaC5ncm91cCgncmVwb3NpdG9yeScpCisKKyAgICAgICAgc3VwZXIoQml0
QnVja2V0LCBzZWxmKS5fX2luaXRfXyh1cmwsIGRldl9icmFuY2hlcz1kZXZfYnJhbmNoZXMsIHBy
b2RfYnJhbmNoZXM9cHJvZF9icmFuY2hlcywgY29udHJpYnV0b3JzPWNvbnRyaWJ1dG9ycykKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19naXQoc2VsZik6CisgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICBkZWYgcmVxdWVzdChzZWxmLCBwYXRoPU5vbmUsIHBhcmFtcz1Ob25lLCBoZWFkZXJz
PU5vbmUsIGFwaT1Ob25lLCBpZ25vcmVfZXJyb3JzPUZhbHNlKToKKyAgICAgICAgaGVhZGVycyA9
IHtrZXk6IHZhbHVlIGZvciBrZXksIHZhbHVlIGluIGhlYWRlcnMuaXRlbXMoKX0gaWYgaGVhZGVy
cyBlbHNlIGRpY3QoKQorCisgICAgICAgIHBhcmFtcyA9IHtrZXk6IHZhbHVlIGZvciBrZXksIHZh
bHVlIGluIHBhcmFtcy5pdGVtcygpfSBpZiBwYXJhbXMgZWxzZSBkaWN0KCkKKyAgICAgICAgcGFy
YW1zWydsaW1pdCddID0gcGFyYW1zLmdldCgnbGltaXQnLCA1MDApCisgICAgICAgIHBhcmFtc1sn
c3RhcnQnXSA9IDAKKyAgICAgICAgdXJsID0gJ2h0dHBzOi8ve2RvbWFpbn0vcmVzdC97YXBpfS9w
cm9qZWN0cy97cHJvamVjdH0vcmVwb3Mve25hbWV9e3BhdGh9Jy5mb3JtYXQoCisgICAgICAgICAg
ICBhcGk9YXBpIG9yICdhcGkvMS4wJywKKyAgICAgICAgICAgIGRvbWFpbj1zZWxmLmRvbWFpbiwK
KyAgICAgICAgICAgIHByb2plY3Q9c2VsZi5wcm9qZWN0LAorICAgICAgICAgICAgbmFtZT1zZWxm
Lm5hbWUsCisgICAgICAgICAgICBwYXRoPScve30nLmZvcm1hdChwYXRoKSBpZiBwYXRoIGVsc2Ug
JycsCisgICAgICAgICkKKyAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQodXJsLCBwYXJh
bXM9cGFyYW1zLCBoZWFkZXJzPWhlYWRlcnMpCisgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19j
b2RlICE9IDIwMDoKKyAgICAgICAgICAgIGlmIG5vdCBpZ25vcmVfZXJyb3JzOgorICAgICAgICAg
ICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlJlcXVlc3QgdG8gJ3t9JyByZXR1cm5lZCBzdGF0dXMg
Y29kZSAne30nXG4iLmZvcm1hdCh1cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKSkKKyAgICAgICAg
ICAgIHJldHVybiBOb25lCisgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuanNvbigpCisgICAg
ICAgIHJlc3VsdCA9IHJlc3BvbnNlLmdldCgndmFsdWVzJywgTm9uZSkKKyAgICAgICAgaWYgcmVz
dWx0IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgICAgICB3aGls
ZSBub3QgcmVzcG9uc2UuZ2V0KCdpc0xhc3RQYWdlJywgVHJ1ZSk6CisgICAgICAgICAgICBwYXJh
bXNbJ3N0YXJ0J10gKz0gcGFyYW1zWydsaW1pdCddCisgICAgICAgICAgICByZXNwb25zZSA9IHJl
cXVlc3RzLmdldCh1cmwsIHBhcmFtcz1wYXJhbXMsIGhlYWRlcnM9aGVhZGVycykKKyAgICAgICAg
ICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKKyAgICAgICAgICAgICAgICBpZiBp
Z25vcmVfZXJyb3JzOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAg
IHJhaXNlIHNlbGYuRXhjZXB0aW9uKCJGYWlsZWQgdG8gYXNzZW1ibGUgcGFnaW5hdGlvbiByZXF1
ZXN0cyBmb3IgJ3t9JywgZmFpbGVkIG9uIHN0YXJ0IHt9Ii5mb3JtYXQodXJsLCBwYXJhbXNbJ3N0
YXJ0J10pKQorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5qc29uKCkKKyAgICAgICAg
ICAgIHJlc3VsdC5leHRlbmQocmVzcG9uc2UuZ2V0KCd2YWx1ZXMnLCBbXSkpCisgICAgICAgIHJl
dHVybiByZXN1bHQKKworICAgIEBkZWNvcmF0b3JzLk1lbW9pemUoKQorICAgIGRlZiBfZGlzdGFu
Y2Uoc2VsZiwgcmVmLCBtYWduaXR1ZGU9Tm9uZSwgY29uZGl0aW9uPU5vbmUpOgorICAgICAgICBi
b3VuZCA9IFswLCBtYWduaXR1ZGUgaWYgbWFnbml0dWRlIGVsc2UgNjU1MzZdCisgICAgICAgIGNv
bmRpdGlvbiA9IGNvbmRpdGlvbiBvciAobGFtYmRhIHZhbDogdmFsKQorCisgICAgICAgIGJyYW5j
aGVzID0gc2VsZi5fYnJhbmNoZXNfZm9yKCd7fX57fScuZm9ybWF0KHJlZiwgYm91bmRbMV0pLCBp
Z25vcmVfZXJyb3JzPVRydWUpCisgICAgICAgIHdoaWxlIGJyYW5jaGVzIGFuZCBjb25kaXRpb24o
YnJhbmNoZXMpOgorICAgICAgICAgICAgYm91bmQgPSBbYm91bmRbMV0sIGJvdW5kWzFdICogMl0K
KyAgICAgICAgICAgIGJyYW5jaGVzID0gc2VsZi5fYnJhbmNoZXNfZm9yKCd7fX57fScuZm9ybWF0
KHJlZiwgYm91bmRbMV0pLCBpZ25vcmVfZXJyb3JzPVRydWUpCisKKyAgICAgICAgd2hpbGUgVHJ1
ZToKKyAgICAgICAgICAgIGN1cnJlbnQgPSBib3VuZFswXSArIGludCgoYm91bmRbMV0gLSBib3Vu
ZFswXSkgLyAyKQorCisgICAgICAgICAgICBicmFuY2hlcyA9IHNlbGYuX2JyYW5jaGVzX2Zvcign
e31+e30nLmZvcm1hdChyZWYsIGN1cnJlbnQpLCBpZ25vcmVfZXJyb3JzPVRydWUpCisgICAgICAg
ICAgICBpZiBicmFuY2hlcyBhbmQgY29uZGl0aW9uKGJyYW5jaGVzKToKKyAgICAgICAgICAgICAg
ICBpZiBib3VuZFsxXSAtIGJvdW5kWzBdIDw9IDE6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBjdXJyZW50ICsgMQorICAgICAgICAgICAgICAgIGJvdW5kID0gW2N1cnJlbnQsIGJvdW5kWzFd
XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBib3VuZFsxXSAtIGJvdW5k
WzBdIDw9IDE6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3VuZFsxXSArIDEgaWYgY3Vy
cmVudCA9PSBib3VuZFswXSBlbHNlIGJvdW5kWzBdICsgMQorICAgICAgICAgICAgICAgIGJvdW5k
ID0gW2JvdW5kWzBdLCBjdXJyZW50XQorCisgICAgZGVmIF9icmFuY2hlc19mb3Ioc2VsZiwgaGFz
aCwgaWdub3JlX2Vycm9ycz1GYWxzZSk6CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5yZXF1ZXN0
KCdicmFuY2hlcy9pbmZvL3t9Jy5mb3JtYXQoaGFzaCksIGFwaT0nYnJhbmNoLXV0aWxzL2xhdGVz
dCcsIGlnbm9yZV9lcnJvcnM9aWdub3JlX2Vycm9ycykKKyAgICAgICAgaWYgbm90IHJlc3BvbnNl
OgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBzb3J0ZWQoW2RldGFpbHMu
Z2V0KCdkaXNwbGF5SWQnKSBmb3IgZGV0YWlscyBpbiByZXNwb25zZSBpZiBkZXRhaWxzLmdldCgn
ZGlzcGxheUlkJyldKQorCisgICAgQHByb3BlcnR5CisgICAgQGRlY29yYXRvcnMuTWVtb2l6ZSgp
CisgICAgZGVmIGRlZmF1bHRfYnJhbmNoKHNlbGYpOgorICAgICAgICByZXNwb25zZSA9IHNlbGYu
cmVxdWVzdCgnYnJhbmNoZXMvZGVmYXVsdCcpCisgICAgICAgIGlmIG5vdCByZXNwb25zZToKKyAg
ICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCJGYWlsZWQgdG8gcXVlcnkge30gZm9yIHt9
J3MgZGVmYXVsdCBicmFuY2giLmZvcm1hdChzZWxmLmRvbWFpbiwgc2VsZi5uYW1lKSkKKyAgICAg
ICAgcmV0dXJuIHJlc3BvbnNlLmdldCgnZGlzcGxheUlkJykKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBicmFuY2hlcyhzZWxmKToKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnJlcXVlc3QoJ2Jy
YW5jaGVzJykKKyAgICAgICAgaWYgbm90IHJlc3BvbnNlOgorICAgICAgICAgICAgcmV0dXJuIFtz
ZWxmLmRlZmF1bHRfYnJhbmNoXQorICAgICAgICByZXR1cm4gc29ydGVkKFtkZXRhaWxzLmdldCgn
ZGlzcGxheUlkJykgZm9yIGRldGFpbHMgaW4gcmVzcG9uc2UgaWYgZGV0YWlscy5nZXQoJ2Rpc3Bs
YXlJZCcpXSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0YWdzKHNlbGYpOgorICAgICAgICBy
ZXNwb25zZSA9IHNlbGYucmVxdWVzdCgndGFncycpCisgICAgICAgIGlmIG5vdCByZXNwb25zZToK
KyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICByZXR1cm4gc29ydGVkKFtkZXRhaWxzLmdl
dCgnZGlzcGxheUlkJykgZm9yIGRldGFpbHMgaW4gcmVzcG9uc2UgaWYgZGV0YWlscy5nZXQoJ2Rp
c3BsYXlJZCcpXSkKKworICAgIGRlZiBjb21taXQoc2VsZiwgaGFzaD1Ob25lLCByZXZpc2lvbj1O
b25lLCBpZGVudGlmaWVyPU5vbmUsIGJyYW5jaD1Ob25lLCB0YWc9Tm9uZSwgaW5jbHVkZV9sb2c9
VHJ1ZSk6CisgICAgICAgIGlmIHJldmlzaW9uOgorICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNl
cHRpb24oJ0Nhbm5vdCBtYXAgcmV2aXNpb25zIHRvIGNvbW1pdHMgb24gQml0QnVja2V0JykKKwor
ICAgICAgICBpZiBpZGVudGlmaWVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgcmV2aXNp
b246CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGRlZmluZSBib3Ro
IHJldmlzaW9uIGFuZCBpZGVudGlmaWVyJykKKyAgICAgICAgICAgIGlmIGhhc2g6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGRlZmluZSBib3RoIGhhc2ggYW5kIGlk
ZW50aWZpZXInKQorICAgICAgICAgICAgaWYgdGFnOgorICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ0Nhbm5vdCBkZWZpbmUgYm90aCB0YWcgYW5kIGlkZW50aWZpZXInKQorCisgICAg
ICAgICAgICBwYXJzZWRfYnJhbmNoX3BvaW50LCBpZGVudGlmaWVyLCBwYXJzZWRfYnJhbmNoID0g
Q29tbWl0Ll9wYXJzZV9pZGVudGlmaWVyKGlkZW50aWZpZXIsIGRvX2Fzc2VydD1UcnVlKQorICAg
ICAgICAgICAgaWYgcGFyc2VkX2JyYW5jaDoKKyAgICAgICAgICAgICAgICBpZiBicmFuY2ggYW5k
IGJyYW5jaCAhPSBwYXJzZWRfYnJhbmNoOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbGxlciBwYXNzZWQgYm90aCAnYnJh
bmNoJyBhbmQgJ2lkZW50aWZpZXInLCBidXQgc3BlY2lmaWVkIGRpZmZlcmVudCBicmFuY2hlcyAo
e30gYW5kIHt9KSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaCwg
cGFyc2VkX2JyYW5jaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgICBicmFuY2ggPSBwYXJzZWRfYnJhbmNoCisKKyAgICAg
ICAgICAgIGJyYW5jaCA9IGJyYW5jaCBvciBzZWxmLmRlZmF1bHRfYnJhbmNoCisgICAgICAgICAg
ICBpc19kZWZhdWx0ID0gYnJhbmNoID09IHNlbGYuZGVmYXVsdF9icmFuY2gKKworICAgICAgICAg
ICAgaWYgaXNfZGVmYXVsdCBhbmQgcGFyc2VkX2JyYW5jaF9wb2ludDoKKyAgICAgICAgICAgICAg
ICByYWlzZSBzZWxmLkV4Y2VwdGlvbignQ2Fubm90IHByb3ZpZGUgYSBicmFuY2ggcG9pbnQgZm9y
IGEgY29tbWl0IG9uIHRoZSBkZWZhdWx0IGJyYW5jaCcpCisKKyAgICAgICAgICAgIGNvbW1pdF9k
YXRhID0gc2VsZi5yZXF1ZXN0KCdjb21taXRzL3t9Jy5mb3JtYXQoYnJhbmNoKSwgcGFyYW1zPWRp
Y3QobGltaXQ9MSkpCisgICAgICAgICAgICBpZiBub3QgY29tbWl0X2RhdGE6CisgICAgICAgICAg
ICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oIkZhaWxlZCB0byByZXRyaWV2ZSBjb21taXQgaW5m
b3JtYXRpb24gZm9yICd7fSciLmZvcm1hdChicmFuY2gpKQorICAgICAgICAgICAgYmFzZV9yZWYg
PSBjb21taXRfZGF0YVsnaWQnXQorCisgICAgICAgICAgICBpZiBpc19kZWZhdWx0OgorICAgICAg
ICAgICAgICAgIGJhc2VfY291bnQgPSBzZWxmLl9kaXN0YW5jZShiYXNlX3JlZikKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYmFzZV9jb3VudCA9IHNlbGYuX2Rpc3RhbmNlKGJh
c2VfcmVmLCBtYWduaXR1ZGU9MjU2LCBjb25kaXRpb249bGFtYmRhIHZhbDogc2VsZi5kZWZhdWx0
X2JyYW5jaCBub3QgaW4gdmFsKQorCisgICAgICAgICAgICBpZiBpZGVudGlmaWVyID4gYmFzZV9j
b3VudDoKKyAgICAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignSWRlbnRpZmllciB7
fSBjYW5ub3QgYmUgZm91bmQgb24ge30nLmZvcm1hdChpZGVudGlmaWVyLCBicmFuY2gpKQorCisg
ICAgICAgICAgICAjIE5lZ2F0aXZlIGlkZW50aWZpZXJzIGFyZSBhY3R1YWxseSBjb21taXRzIG9u
IHRoZSBkZWZhdWx0IGJyYW5jaCwgd2Ugd2lsbCBuZWVkIHRvIHJlLWNvbXB1dGUgdGhlIGlkZW50
aWZpZXIKKyAgICAgICAgICAgIGlmIGlkZW50aWZpZXIgPCAwIGFuZCBpc19kZWZhdWx0OgorICAg
ICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCdJbGxlZ2FsIG5lZ2F0aXZlIGlkZW50
aWZpZXIgb24gdGhlIGRlZmF1bHQgYnJhbmNoJykKKworICAgICAgICAgICAgY29tbWl0X2RhdGEg
PSBzZWxmLnJlcXVlc3QoJ2NvbW1pdHMve31+e30nLmZvcm1hdChiYXNlX3JlZiwgYmFzZV9jb3Vu
dCAtIGlkZW50aWZpZXIpKQorICAgICAgICAgICAgaWYgbm90IGNvbW1pdF9kYXRhOgorICAgICAg
ICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCJGYWlsZWQgdG8gcmV0cmlldmUgY29tbWl0
IGluZm9ybWF0aW9uIGZvciAne31Ae30nIi5mb3JtYXQoaWRlbnRpZmllciwgYnJhbmNoIG9yICdI
RUFEJykpCisKKyAgICAgICAgICAgICMgSWYgYW4gaWRlbnRpZmllciBpcyBuZWdhdGl2ZSwgdW5z
ZXQgaXQgc28gd2UgcmUtY29tcHV0ZSBiZWZvcmUgY29uc3RydWN0aW5nIHRoZSBjb21taXQuCisg
ICAgICAgICAgICBpZiBpZGVudGlmaWVyIDw9IDA6CisgICAgICAgICAgICAgICAgaWRlbnRpZmll
ciA9IE5vbmUKKworICAgICAgICBlbGlmIGJyYW5jaCBvciB0YWc6CisgICAgICAgICAgICBpZiBo
YXNoOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBkZWZpbmUgYm90
aCB0YWcvYnJhbmNoIGFuZCBoYXNoJykKKyAgICAgICAgICAgIGlmIGJyYW5jaCBhbmQgdGFnOgor
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBkZWZpbmUgYm90aCB0YWcg
YW5kIGJyYW5jaCcpCisgICAgICAgICAgICBjb21taXRfZGF0YSA9IHNlbGYucmVxdWVzdCgnY29t
bWl0cy97fScuZm9ybWF0KGJyYW5jaCBvciB0YWcpKQorICAgICAgICAgICAgaWYgbm90IGNvbW1p
dF9kYXRhOgorICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCJGYWlsZWQgdG8g
cmV0cmlldmUgY29tbWl0IGluZm9ybWF0aW9uIGZvciAne30nIi5mb3JtYXQoYnJhbmNoIG9yIHRh
ZykpCisKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhhc2ggPSBDb21taXQuX3BhcnNlX2hh
c2goaGFzaCwgZG9fYXNzZXJ0PVRydWUpCisgICAgICAgICAgICBjb21taXRfZGF0YSA9IHNlbGYu
cmVxdWVzdCgnY29tbWl0cy97fScuZm9ybWF0KGhhc2ggb3Igc2VsZi5kZWZhdWx0X2JyYW5jaCkp
CisgICAgICAgICAgICBpZiBub3QgY29tbWl0X2RhdGE6CisgICAgICAgICAgICAgICAgcmFpc2Ug
c2VsZi5FeGNlcHRpb24oIkZhaWxlZCB0byByZXRyaWV2ZSBjb21taXQgaW5mb3JtYXRpb24gZm9y
ICd7fSciLmZvcm1hdChoYXNoIG9yICdIRUFEJykpCisKKyAgICAgICAgYnJhbmNoZXMgPSBzZWxm
Ll9icmFuY2hlc19mb3IoY29tbWl0X2RhdGFbJ2lkJ10pCisgICAgICAgIGlmIGJyYW5jaGVzOgor
ICAgICAgICAgICAgYnJhbmNoID0gc2VsZi5wcmlvcml0aXplX2JyYW5jaGVzKGJyYW5jaGVzKQor
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEEgY29tbWl0IG5vdCBvbiBhbnkgYnJhbmNo
ZXMgY2Fubm90IGhhdmUgYW4gaWRlbnRpZmllcgorICAgICAgICAgICAgaWRlbnRpZmllciA9IE5v
bmUKKyAgICAgICAgICAgIGJyYW5jaCA9IE5vbmUKKworICAgICAgICBicmFuY2hfcG9pbnQgPSBO
b25lCisgICAgICAgIGlmIGJyYW5jaCBhbmQgYnJhbmNoID09IHNlbGYuZGVmYXVsdF9icmFuY2g6
CisgICAgICAgICAgICBpZiBub3QgaWRlbnRpZmllcjoKKyAgICAgICAgICAgICAgICBpZGVudGlm
aWVyID0gc2VsZi5fZGlzdGFuY2UoY29tbWl0X2RhdGFbJ2lkJ10pCisKKyAgICAgICAgZWxpZiBi
cmFuY2g6CisgICAgICAgICAgICBpZiBub3QgaWRlbnRpZmllcjoKKyAgICAgICAgICAgICAgICBp
ZGVudGlmaWVyID0gc2VsZi5fZGlzdGFuY2UoY29tbWl0X2RhdGFbJ2lkJ10sIG1hZ25pdHVkZT0y
NTYsIGNvbmRpdGlvbj1sYW1iZGEgdmFsOiBzZWxmLmRlZmF1bHRfYnJhbmNoIG5vdCBpbiB2YWwp
CisgICAgICAgICAgICBicmFuY2hfcG9pbnQgPSBzZWxmLl9kaXN0YW5jZShjb21taXRfZGF0YVsn
aWQnXSkgLSBpZGVudGlmaWVyCisKKyAgICAgICAgbWF0Y2hlcyA9IHNlbGYuR0lUX1NWTl9SRVZJ
U0lPTi5maW5kYWxsKGNvbW1pdF9kYXRhWydtZXNzYWdlJ10pCisgICAgICAgIHJldmlzaW9uID0g
aW50KG1hdGNoZXNbLTFdLnNwbGl0KCdAJylbMF0pIGlmIG1hdGNoZXMgZWxzZSBOb25lCisKKyAg
ICAgICAgcmV0dXJuIENvbW1pdCgKKyAgICAgICAgICAgIGhhc2g9Y29tbWl0X2RhdGFbJ2lkJ10s
CisgICAgICAgICAgICByZXZpc2lvbj1yZXZpc2lvbiwKKyAgICAgICAgICAgIGJyYW5jaF9wb2lu
dD1icmFuY2hfcG9pbnQsCisgICAgICAgICAgICBpZGVudGlmaWVyPWlkZW50aWZpZXIsCisgICAg
ICAgICAgICBicmFuY2g9YnJhbmNoLAorICAgICAgICAgICAgdGltZXN0YW1wPWludChjb21taXRf
ZGF0YVsnY29tbWl0dGVyVGltZXN0YW1wJ10gLyAxMDApLAorICAgICAgICAgICAgYXV0aG9yPXNl
bGYuY29udHJpYnV0b3JzLmNyZWF0ZSgKKyAgICAgICAgICAgICAgICBjb21taXRfZGF0YS5nZXQo
J2NvbW1pdHRlcicsIHt9KS5nZXQoJ2Rpc3BsYXlOYW1lJywgTm9uZSksCisgICAgICAgICAgICAg
ICAgY29tbWl0X2RhdGEuZ2V0KCdjb21taXR0ZXInLCB7fSkuZ2V0KCdlbWFpbEFkZHJlc3MnLCBO
b25lKSwKKyAgICAgICAgICAgICksIG1lc3NhZ2U9Y29tbWl0X2RhdGFbJ21lc3NhZ2UnXSBpZiBp
bmNsdWRlX2xvZyBlbHNlIE5vbmUsCisgICAgICAgICkKKworICAgIGRlZiBmaW5kKHNlbGYsIGFy
Z3VtZW50LCBpbmNsdWRlX2xvZz1UcnVlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJn
dW1lbnQsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
RXhwZWN0ZWQgJ2FyZ3VtZW50JyB0byBiZSBhIHN0cmluZywgbm90ICd7fSciLmZvcm1hdCh0eXBl
KGFyZ3VtZW50KSkpCisKKyAgICAgICAgaWYgYXJndW1lbnQgaW4gc2VsZi5ERUZBVUxUX0JSQU5D
SEVTOgorICAgICAgICAgICAgYXJndW1lbnQgPSBzZWxmLmRlZmF1bHRfYnJhbmNoCisKKyAgICAg
ICAgcGFyc2VkX2NvbW1pdCA9IENvbW1pdC5wYXJzZShhcmd1bWVudCwgZG9fYXNzZXJ0PUZhbHNl
KQorICAgICAgICBpZiBwYXJzZWRfY29tbWl0OgorICAgICAgICAgICAgaWYgcGFyc2VkX2NvbW1p
dC5icmFuY2ggaW4gc2VsZi5ERUZBVUxUX0JSQU5DSEVTOgorICAgICAgICAgICAgICAgIHBhcnNl
ZF9jb21taXQuYnJhbmNoID0gc2VsZi5kZWZhdWx0X2JyYW5jaAorCisgICAgICAgICAgICByZXR1
cm4gc2VsZi5jb21taXQoCisgICAgICAgICAgICAgICAgaGFzaD1wYXJzZWRfY29tbWl0Lmhhc2gs
CisgICAgICAgICAgICAgICAgcmV2aXNpb249cGFyc2VkX2NvbW1pdC5yZXZpc2lvbiwKKyAgICAg
ICAgICAgICAgICBpZGVudGlmaWVyPXBhcnNlZF9jb21taXQuaWRlbnRpZmllciwKKyAgICAgICAg
ICAgICAgICBicmFuY2g9cGFyc2VkX2NvbW1pdC5icmFuY2gsCisgICAgICAgICAgICAgICAgaW5j
bHVkZV9sb2c9aW5jbHVkZV9sb2csCisgICAgICAgICAgICApCisKKyAgICAgICAgY29tbWl0X2Rh
dGEgPSBzZWxmLnJlcXVlc3QoJ2NvbW1pdHMve30nLmZvcm1hdChhcmd1bWVudCkpCisgICAgICAg
IGlmIG5vdCBjb21taXRfZGF0YToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid7fScg
aXMgbm90IGFuIGFyZ3VtZW50IHJlY29nbml6ZWQgYnkgZ2l0Ii5mb3JtYXQoYXJndW1lbnQpKQor
ICAgICAgICByZXR1cm4gc2VsZi5jb21taXQoaGFzaD1jb21taXRfZGF0YVsnaWQnXSwgaW5jbHVk
ZV9sb2c9aW5jbHVkZV9sb2cpCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9yZW1vdGUvc2NtLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHkJKHJldmlz
aW9uIDI3MzE4MCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3JlbW90ZS9zY20ucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEwICszMCwxMCBAQCBj
bGFzcyBTY20oU2NtQmFzZSk6CiAgICAgZGVmIGZyb21fdXJsKGNscywgdXJsLCBjb250cmlidXRv
cnM9Tm9uZSk6CiAgICAgICAgIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IHJlbW90ZQogCi0gICAg
ICAgIGlmIHJlbW90ZS5Tdm4uaXNfd2Vic2VydmVyKHVybCk6Ci0gICAgICAgICAgICByZXR1cm4g
cmVtb3RlLlN2bih1cmwsIGNvbnRyaWJ1dG9ycz1jb250cmlidXRvcnMpCi0gICAgICAgIGlmIHJl
bW90ZS5HaXRIdWIuaXNfd2Vic2VydmVyKHVybCk6Ci0gICAgICAgICAgICByZXR1cm4gcmVtb3Rl
LkdpdEh1Yih1cmwsIGNvbnRyaWJ1dG9ycz1jb250cmlidXRvcnMpCisgICAgICAgIGZvciBjYW5k
aWRhdGUgaW4gW3JlbW90ZS5Tdm4sIHJlbW90ZS5HaXRIdWIsIHJlbW90ZS5CaXRCdWNrZXRdOgor
ICAgICAgICAgICAgaWYgY2FuZGlkYXRlLmlzX3dlYnNlcnZlcih1cmwpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBjYW5kaWRhdGUodXJsLCBjb250cmlidXRvcnM9Y29udHJpYnV0b3JzKQorCiAg
ICAgICAgIHJhaXNlIE9TRXJyb3IoIid7fScgaXMgbm90IGEga25vd24gU0NNIHNlcnZlciIuZm9y
bWF0KHVybCkpCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsLCBkZXZfYnJhbmNoZXM9Tm9u
ZSwgcHJvZF9icmFuY2hlcz1Ob25lLCBjb250cmlidXRvcnM9Tm9uZSk6CkluZGV4OiBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2dpdF91bml0dGVz
dC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS90ZXN0L2dpdF91bml0dGVzdC5weQkocmV2aXNpb24gMjczMTgwKQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9naXRfdW5p
dHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3OSw2ICsyNzksNyBAQCBjbGFzcyBUZXN0R2l0
SHViKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZW1vdGUu
R2l0SHViLmlzX3dlYnNlcnZlcignaHR0cHM6Ly9naXRodWIuZXhhbXBsZS5jb20vV2ViS2l0L3dl
YmtpdCcpLCBUcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlbW90ZS5HaXRIdWIuaXNf
d2Vic2VydmVyKCdodHRwOi8vZ2l0aHViLmV4YW1wbGUuY29tL1dlYktpdC93ZWJraXQnKSwgVHJ1
ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZW1vdGUuR2l0SHViLmlzX3dlYnNlcnZlcign
aHR0cHM6Ly9zdm4uZXhhbXBsZS5vcmcvcmVwb3NpdG9yeS93ZWJraXQnKSwgRmFsc2UpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVtb3RlLkdpdEh1Yi5pc193ZWJzZXJ2ZXIoJ2h0dHBzOi8v
Yml0YnVja2V0LmV4YW1wbGUuY29tL3Byb2plY3RzL1dlYktpdC9yZXBvcy93ZWJraXQnKSwgRmFs
c2UpCiAKICAgICBkZWYgdGVzdF9icmFuY2hlcyhzZWxmKToKICAgICAgICAgd2l0aCBtb2Nrcy5y
ZW1vdGUuR2l0SHViKCk6CkBAIC0zNzgsMyArMzc5LDExMiBAQCBjbGFzcyBUZXN0R2l0SHViKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuR2l0SHViKCk6CiAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihyZW1vdGUuR2l0SHViKHNlbGYucmVtb3Rl
KS5maW5kKCc0QHRydW5rJykpLCAnNEBtYWluJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyKHJlbW90ZS5HaXRIdWIoc2VsZi5yZW1vdGUpLmZpbmQoJzRAbWFzdGVyJykpLCAnNEBt
YWluJykKKworCitjbGFzcyBUZXN0Qml0QnVja2V0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBy
ZW1vdGUgPSAnaHR0cHM6Ly9iaXRidWNrZXQuZXhhbXBsZS5jb20vcHJvamVjdHMvV0VCS0lUL3Jl
cG9zL3dlYmtpdCcKKworICAgIGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChyZW1vdGUuQml0QnVja2V0LmlzX3dlYnNlcnZlcignaHR0cHM6Ly9iaXRi
dWNrZXQuZXhhbXBsZS5jb20vcHJvamVjdHMvV2ViS2l0L3JlcG9zL3dlYmtpdCcpLCBUcnVlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlbW90ZS5CaXRCdWNrZXQuaXNfd2Vic2VydmVyKCdo
dHRwOi8vYml0YnVja2V0LmV4YW1wbGUuY29tL3Byb2plY3RzL1dlYktpdC9yZXBvcy93ZWJraXQn
KSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZW1vdGUuQml0QnVja2V0LmlzX3dl
YnNlcnZlcignaHR0cHM6Ly9zdm4uZXhhbXBsZS5vcmcvcmVwb3NpdG9yeS93ZWJraXQnKSwgRmFs
c2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVtb3RlLkJpdEJ1Y2tldC5pc193ZWJzZXJ2
ZXIoJ2h0dHBzOi8vZ2l0aHViLmV4YW1wbGUuY29tL1dlYktpdC93ZWJraXQnKSwgRmFsc2UpCisK
KyAgICBkZWYgdGVzdF9icmFuY2hlcyhzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUu
Qml0QnVja2V0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAg
ICAgIHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmJyYW5jaGVzLAorICAgICAgICAgICAg
ICAgIFsnYnJhbmNoLWEnLCAnYnJhbmNoLWInLCAnbWFpbiddLAorICAgICAgICAgICAgKQorCisg
ICAgZGVmIHRlc3RfdGFncyhzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuQml0QnVj
a2V0KCkgYXMgbW9jazoKKyAgICAgICAgICAgIG1vY2sudGFnc1sndGFnLTEnXSA9IG1vY2suY29t
bWl0c1snYnJhbmNoLWEnXVstMV0KKyAgICAgICAgICAgIG1vY2sudGFnc1sndGFnLTInXSA9IG1v
Y2suY29tbWl0c1snYnJhbmNoLWInXVstMV0KKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKKyAgICAgICAgICAgICAgICByZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS50YWdzLAor
ICAgICAgICAgICAgICAgIFsndGFnLTEnLCAndGFnLTInXSwKKyAgICAgICAgICAgICkKKworICAg
IGRlZiB0ZXN0X3NjbV90eXBlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlbW90
ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmlzX3N2bikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmlzX2dpdCkKKworICAgIGRlZiB0ZXN0X2Nv
bW1pdF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuQml0QnVja2V0
KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxQG1haW4nLCBzdHIocmVtb3RlLkJp
dEJ1Y2tldChzZWxmLnJlbW90ZSkuY29tbWl0KGhhc2g9JzliODMxMWYyJykpKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnMkBtYWluJywgc3RyKHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5y
ZW1vdGUpLmNvbW1pdChoYXNoPSdmZmY4M2JiMicpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJzIuMUBicmFuY2gtYScsIHN0cihyZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5j
b21taXQoaGFzaD0nYTMwY2U4NDknKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcz
QG1haW4nLCBzdHIocmVtb3RlLkJpdEJ1Y2tldChzZWxmLnJlbW90ZSkuY29tbWl0KGhhc2g9JzFh
YmUyNWI0JykpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4yQGJyYW5jaC1iJywg
c3RyKHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmNvbW1pdChoYXNoPSczY2QzMmUzNScp
KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzRAbWFpbicsIHN0cihyZW1vdGUuQml0
QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaGFzaD0nYmFlNWQxZTknKSkpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcyLjJAYnJhbmNoLWEnLCBzdHIocmVtb3RlLkJpdEJ1Y2tldChz
ZWxmLnJlbW90ZSkuY29tbWl0KGhhc2g9JzYyMTY1MmFkJykpKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnMi4zQGJyYW5jaC1iJywgc3RyKHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1v
dGUpLmNvbW1pdChoYXNoPSc3OTA3MjVhNicpKSkKKworICAgIGRlZiB0ZXN0X2NvbW1pdF9mcm9t
X2JyYW5jaChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuQml0QnVja2V0KCk6Cisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QG1haW4nLCBzdHIocmVtb3RlLkJpdEJ1Y2tl
dChzZWxmLnJlbW90ZSkuY29tbWl0KGJyYW5jaD0nbWFpbicpKSkKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYScsIHN0cihyZW1vdGUuQml0QnVja2V0KHNlbGYucmVt
b3RlKS5jb21taXQoYnJhbmNoPSdicmFuY2gtYScpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJzIuM0BicmFuY2gtYicsIHN0cihyZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5j
b21taXQoYnJhbmNoPSdicmFuY2gtYicpKSkKKworICAgIGRlZiB0ZXN0X2lkZW50aWZpZXIoc2Vs
Zik6CisgICAgICAgIHdpdGggbW9ja3MucmVtb3RlLkJpdEJ1Y2tldCgpOgorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAnOWI4MzExZjI1YTc3YmExNDkyM2Q5
ZDVhNjUzMjEwM2Y1NGFiZWZjYicsCisgICAgICAgICAgICAgICAgcmVtb3RlLkJpdEJ1Y2tldChz
ZWxmLnJlbW90ZSkuY29tbWl0KGlkZW50aWZpZXI9JzFAbWFpbicpLmhhc2gsCisgICAgICAgICAg
ICApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgICdmZmY4
M2JiMmQ5MTcxYjRkOTE5NmU5NzdlYjA1MDhmZDU3ZTdhMDhkJywKKyAgICAgICAgICAgICAgICBy
ZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nMkBtYWluJyku
aGFzaCwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAg
ICAgICAgICAgICAgJ2EzMGNlODQ5NGJmMWFjMjgwN2E2OTg0NGY3MjZiZTRhOTg0M2NhNTUnLAor
ICAgICAgICAgICAgICAgIHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmNvbW1pdChpZGVu
dGlmaWVyPScyLjFAYnJhbmNoLWEnKS5oYXNoLAorICAgICAgICAgICAgKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAnMWFiZTI1YjQ0M2U5ODVmOTNiOTBk
ODMwZTRhN2UzNzMxMzM2YWY0ZCcsCisgICAgICAgICAgICAgICAgcmVtb3RlLkJpdEJ1Y2tldChz
ZWxmLnJlbW90ZSkuY29tbWl0KGlkZW50aWZpZXI9JzNAbWFpbicpLmhhc2gsCisgICAgICAgICAg
ICApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgICczY2Qz
MmUzNTI0MTA1NjViYjU0MzgyMWZiZjg1NmE2ZDNjYWFkMWM0JywKKyAgICAgICAgICAgICAgICBy
ZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nMi4yQGJyYW5j
aC1iJykuaGFzaCwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
CisgICAgICAgICAgICAgICAgJ2JhZTVkMWU5MDk5OWQ0ZjkxNmE4YTE1ODEwY2NmYTQzZjM3YTJm
ZDYnLAorICAgICAgICAgICAgICAgIHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmNvbW1p
dChpZGVudGlmaWVyPSc0QG1haW4nKS5oYXNoLAorICAgICAgICAgICAgKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAnNjIxNjUyYWRkN2ZjNDE2MDk5YmQy
MDYzMzY2Y2MzOGZmNjFhZmUzNicsCisgICAgICAgICAgICAgICAgcmVtb3RlLkJpdEJ1Y2tldChz
ZWxmLnJlbW90ZSkuY29tbWl0KGlkZW50aWZpZXI9JzIuMkBicmFuY2gtYScpLmhhc2gsCisgICAg
ICAgICAgICApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAg
ICc3OTA3MjVhNmQ3OWUyOGRiMmVjZGRlMjk1NDhkMjI2MmMwYmQwNTlkJywKKyAgICAgICAgICAg
ICAgICByZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nMi4z
QGJyYW5jaC1iJykuaGFzaCwKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X25vbl9jYW5u
b25pY2FsX2lkZW50aWZpZXJzKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLnJlbW90ZS5CaXRC
dWNrZXQoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzJAbWFpbicsIHN0cihyZW1v
dGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nMEBicmFuY2gtYScp
KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzFAbWFpbicsIHN0cihyZW1vdGUuQml0
QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nLTFAYnJhbmNoLWEnKSkpCisK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzJAbWFpbicsIHN0cihyZW1vdGUuQml0QnVj
a2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nMEBicmFuY2gtYicpKSkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzFAbWFpbicsIHN0cihyZW1vdGUuQml0QnVja2V0KHNl
bGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmllcj0nLTFAYnJhbmNoLWInKSkpCisKKyAgICBkZWYg
dGVzdF90YWcoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MucmVtb3RlLkJpdEJ1Y2tldCgpIGFz
IG1vY2s6CisgICAgICAgICAgICBtb2NrLnRhZ3NbJ3RhZy0xJ10gPSBtb2NrLmNvbW1pdHNbJ2Jy
YW5jaC1hJ11bLTFdCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAg
ICAgICAgJzYyMTY1MmFkZDdmYzQxNjA5OWJkMjA2MzM2NmNjMzhmZjYxYWZlMzYnLAorICAgICAg
ICAgICAgICAgIHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUpLmNvbW1pdCh0YWc9J3RhZy0x
JykuaGFzaCwKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X25vX2xvZyhzZWxmKToKKyAg
ICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuQml0QnVja2V0KCk6CisgICAgICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShyZW1vdGUuQml0QnVja2V0KHNlbGYucmVtb3RlKS5jb21taXQoaWRlbnRpZmll
cj0nNEBtYWluJywgaW5jbHVkZV9sb2c9RmFsc2UpLm1lc3NhZ2UpCisKKyAgICBkZWYgdGVzdF9h
bHRlcm5hdGl2ZV9kZWZhdWx0X2JyYW5jaChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1v
dGUuQml0QnVja2V0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihyZW1vdGUu
Qml0QnVja2V0KHNlbGYucmVtb3RlKS5maW5kKCc0QHRydW5rJykpLCAnNEBtYWluJykKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHJlbW90ZS5CaXRCdWNrZXQoc2VsZi5yZW1vdGUp
LmZpbmQoJzRAbWFzdGVyJykpLCAnNEBtYWluJykKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rl
c3Qvc3ZuX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzMxODApCisrKyBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3N2bl91bml0dGVzdC5weQkod29y
a2luZyBjb3B5KQpAQCAtMjM1LDYgKzIzNSw3IEBAIGNsYXNzIFRlc3RSZW1vdGVTdm4odW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlbW90ZS5Tdm4uaXNfd2Vi
c2VydmVyKCdodHRwczovL3N2bi5leGFtcGxlLm9yZy9yZXBvc2l0b3J5L3dlYmtpdCcpLCBUcnVl
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlbW90ZS5Tdm4uaXNfd2Vic2VydmVyKCdodHRw
Oi8vc3ZuLmV4YW1wbGUub3JnL3JlcG9zaXRvcnkvd2Via2l0JyksIFRydWUpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVtb3RlLlN2bi5pc193ZWJzZXJ2ZXIoJ2h0dHBzOi8vZ2l0aHViLmV4
YW1wbGUub3JnL1dlYktpdC93ZWJraXQnKSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmVtb3RlLkdpdEh1Yi5pc193ZWJzZXJ2ZXIoJ2h0dHBzOi8vYml0YnVja2V0LmV4YW1wbGUu
Y29tL3Byb2plY3RzL1dlYktpdC9yZXBvcy93ZWJraXQnKSwgRmFsc2UpCiAKICAgICBkZWYgdGVz
dF9icmFuY2hlcyhzZWxmKToKICAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuU3ZuKCk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>