<?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>232018</bug_id>
          
          <creation_ts>2021-10-20 09:23:40 -0700</creation_ts>
          <short_desc>Move layout_test_finder to layout_test_finder_legacy</short_desc>
          <delta_ts>2021-10-21 02:49:16 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>220421</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Sneddon [:gsnedders]">gsnedders</reporter>
          <assigned_to name="Sam Sneddon [:gsnedders]">gsnedders</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806656</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-10-20 09:23:40 -0700</bug_when>
    <thetext>In anticipation of landing the new implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806657</commentid>
    <comment_count>1</comment_count>
      <attachid>441888</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-10-20 09:26:47 -0700</bug_when>
    <thetext>Created attachment 441888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807060</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-21 02:48:34 -0700</bug_when>
    <thetext>Committed r284595 (243326@main): &lt;https://commits.webkit.org/243326@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441888.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807061</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-21 02:49:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84499693&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441888</attachid>
            <date>2021-10-20 09:26:47 -0700</date>
            <delta_ts>2021-10-21 02:48:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232018-20211020172645.patch</filename>
            <type>text/plain</type>
            <size>43486</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGRiNDg2ODJmNTYwYTgwNjNmMDYzYWJlZmQyNjJiY2Jl
M2M0MTcwNS4uZTZiYjgxZTIxMDc2NTg2ZWVmMzljYWY2ZWJjNmZlNWI5NGI2MzNlZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDIxLTEwLTIwICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTW92ZSBsYXlvdXRfdGVzdF9maW5kZXIgdG8gbGF5b3V0X3Rlc3RfZmluZGVyX2xlZ2Fj
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMDE4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
cyBhIHNpbXBsZSByZW5hbWU7IG5vIGZ1cnRoZXIgY2hhbmdlcy4KKworICAgICAgICAqIFNjcmlw
dHMvb3Blbi1sYXlvdXQtdGVzdDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXJfbGVnYWN5LnB5OiBSZW5hbWVkIGZy
b20gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0
X3Rlc3RfZmluZGVyLnB5LgorICAgICAgICAoX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUpOgorICAg
ICAgICAoX2hhc19zdXBwb3J0ZWRfZXh0ZW5zaW9uKToKKyAgICAgICAgKExheW91dFRlc3RGaW5k
ZXIpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fX2luaXRfXyk6CisgICAgICAgIChMYXlv
dXRUZXN0RmluZGVyLmZpbmRfdGVzdHMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5maW5k
X3Rlc3RzX2J5X3BhdGgpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fZXhwYW5kZWRfcGF0
aHMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fcmVhbF90ZXN0cyk6CisgICAgICAgIChM
YXlvdXRUZXN0RmluZGVyLl9pc190ZXN0X2ZpbGUpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRl
ci5faXNfdzNjX3Jlc291cmNlX2ZpbGUpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fc3Ry
aXBfdGVzdF9kaXJfcHJlZml4ZXMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fc3RyaXBf
dGVzdF9kaXJfcHJlZml4KToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXIuX3JlYWRfdGVzdF9u
YW1lc19mcm9tX2ZpbGUpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fc3RyaXBfY29tbWVu
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L2xheW91dF90ZXN0X2ZpbmRlcl9sZWdhY3lfdW5pdHRlc3QucHk6IFJlbmFtZWQgZnJvbSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9m
aW5kZXJfdW5pdHRlc3QucHkuCisgICAgICAgIChNb2NrTGF5b3V0VGVzdEZpbmRlcik6CisgICAg
ICAgIChNb2NrTGF5b3V0VGVzdEZpbmRlci5fcmVhbF90ZXN0cyk6CisgICAgICAgIChMYXlvdXRU
ZXN0RmluZGVyVGVzdHMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRlc3RzLm1ha2VfZmlu
ZGVyKToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50ZXN0X3N1cHBvcnRlZF90ZXN0
X2V4dGVuc2lvbnMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRlc3RzLnRlc3RfaXNfcmVm
ZXJlbmNlX2h0bWxfZmlsZSk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMudGVzdF9m
aW5kX25vX3BhdGhzX3NwZWNpZmllZCk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMu
dGVzdF9maW5kX29uZV90ZXN0KToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50ZXN0
X2ZpbmRfZ2xvYik6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMudGVzdF9maW5kX3dp
dGhfc2tpcHBlZF9kaXJlY3Rvcmllcyk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMu
dGVzdF9maW5kX3dpdGhfc2tpcHBlZF9kaXJlY3Rvcmllc18yKToKKyAgICAgICAgKExheW91dFRl
c3RGaW5kZXJUZXN0cy50ZXN0X2lzX3Rlc3RfZmlsZSk6CisgICAgICAgIChMYXlvdXRUZXN0Rmlu
ZGVyVGVzdHMudGVzdF9pc193M2NfcmVzb3VyY2VfZmlsZSk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllcy5weToKKwogMjAyMS0xMC0xOSAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBbRVdTXSBNb3Zl
IEVXUyBib3RzIHRvIGlPUyAxNSAvIHdhdGNoT1MgOCAvIHR2T1MgMTUKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvb3Blbi1sYXlvdXQtdGVzdCBiL1Rvb2xzL1NjcmlwdHMvb3Blbi1sYXlvdXQt
dGVzdAppbmRleCAxODczNzlmMTliNmVmYTAyMTZhYzYyM2VhZDkxMTBlM2U3ZTk4NjVjLi5mMTAz
YjZjMzI3MWE5OWNlMjQ1YjUyN2E5MmRlZTJkZWE0OTY0YmRkIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL29wZW4tbGF5b3V0LXRlc3QKKysrIGIvVG9vbHMvU2NyaXB0cy9vcGVuLWxheW91dC10
ZXN0CkBAIC0zMiw3ICszMiw3IEBAIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKLWZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmNvbnRyb2xsZXJzLmxheW91dF90ZXN0X2ZpbmRlciBpbXBvcnQgTGF5b3V0VGVzdEZp
bmRlcgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMubGF5b3V0X3Rlc3Rf
ZmluZGVyX2xlZ2FjeSBpbXBvcnQgTGF5b3V0VGVzdEZpbmRlcgogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMuc2VydmVycy5ydW5fd2Via2l0X2h0dHBkIGltcG9ydCBydW5fc2VydmVyIGFzIHJ1
bl93ZWJraXRfaHR0cGQKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMucnVuX3dl
YmtpdF9odHRwZCBpbXBvcnQgcGFyc2VfYXJncyBhcyBwYXJzZV9odHRwZF9hcmdzCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X2ZpbmRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMmM3MTNmOTNmNGFjMTgwNWI2MjNiM2YyZDhjOTU3NWQ0NTEwZWExZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXIucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwyMTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBl
cnJubwotaW1wb3J0IGpzb24KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcmUKLQotZnJvbSB3ZWJr
aXRweS5jb21tb24gaW1wb3J0IGZpbmRfZmlsZXMKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscy50ZXN0IGltcG9ydCBUZXN0Ci1mcm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQg
UG9ydAotCi0KLV9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi0jIFdoZW4g
Y29sbGVjdGluZyB0ZXN0IGNhc2VzLCB3ZSBpbmNsdWRlIGFueSBmaWxlIHdpdGggdGhlc2UgZXh0
ZW5zaW9ucy4KLV9zdXBwb3J0ZWRfdGVzdF9leHRlbnNpb25zID0gc2V0KFsnLmh0bWwnLCAnLnNo
dG1sJywgJy54bWwnLCAnLnhodG1sJywgJy5wbCcsICcucHknLCAnLmh0bScsICcucGhwJywgJy5z
dmcnLCAnLm1odCcsICcueGh0J10pCi0KLV9za2lwcGVkX2ZpbGVuYW1lX3BhdHRlcm5zID0gc2V0
KFsKLSAgICAjIFNwZWNpYWwgY2FzZSBmb3IgV2ViU29ja2V0IHRvb2xpbmcuCi0gICAgcicuKl93
c2gucHknLAotCi0gICAgIyBUaGUgV2ViS2l0MSBib3Qgc29tZXRpbWVzIGNyZWF0ZXMgdGhlc2Ug
ZmlsZXMgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGVzdGluZy4KLSAgICAjIGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzIwODQ3NwotICAgIHInYm9vdFwueG1sJywKLSAgICByJ3Jvb3RcLnhtbCcKLV0pCi0K
LQotIyBJZiBhbnkgY2hhbmdlcyBhcmUgbWFkZSBoZXJlIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBp
c1VzZWRJblJlZnRlc3QgbWV0aG9kIGluIG9sZC1ydW4td2Via2l0LXRlc3RzIGFzIHdlbGwuCi1k
ZWYgX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwgZGlybmFtZSwgZmlsZW5hbWUp
OgotICAgIGlmIGZpbGVuYW1lLnN0YXJ0c3dpdGgoJ3JlZi0nKSBvciBmaWxlbmFtZS5zdGFydHN3
aXRoKCdub3RyZWYtJyk6Ci0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZmlsZW5hbWVfd2lob3V0
X2V4dCwgZXh0ID0gZmlsZXN5c3RlbS5zcGxpdGV4dChmaWxlbmFtZSkKLSAgICAjIEZJWE1FOiBf
c3VwcG9ydGVkX3JlZmVyZW5jZV9leHRlbnNpb25zIHNob3VsZCBiZSBoZXJlLCBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNDIxCi0gICAgaWYgZXh0IG5vdCBpbiBQ
b3J0Ll9zdXBwb3J0ZWRfcmVmZXJlbmNlX2V4dGVuc2lvbnM6Ci0gICAgICAgIHJldHVybiBGYWxz
ZQotICAgIGZvciBzdWZmaXggaW4gWyctZXhwZWN0ZWQnLCAnLWV4cGVjdGVkLW1pc21hdGNoJywg
Jy1yZWYnLCAnLW5vdHJlZiddOgotICAgICAgICBpZiBmaWxlbmFtZV93aWhvdXRfZXh0LmVuZHN3
aXRoKHN1ZmZpeCk6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxzZQot
Ci0KLWRlZiBfaGFzX3N1cHBvcnRlZF9leHRlbnNpb24oZmlsZXN5c3RlbSwgZmlsZW5hbWUpOgot
ICAgICIiIlJldHVybiB0cnVlIGlmIGZpbGVuYW1lIGlzIG9uZSBvZiB0aGUgZmlsZSBleHRlbnNp
b25zIHdlIHdhbnQgdG8gcnVuIGEgdGVzdCBvbi4iIiIKLSAgICBleHRlbnNpb24gPSBmaWxlc3lz
dGVtLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXQotICAgIHJldHVybiBleHRlbnNpb24gaW4gX3N1cHBv
cnRlZF90ZXN0X2V4dGVuc2lvbnMKLQotCi1jbGFzcyBMYXlvdXRUZXN0RmluZGVyKG9iamVjdCk6
Ci0gICAgIiIiRmluZHMgTGF5b3V0VGVzdHMKLQotICAgIFdlIGNvbnNpZGVyIGFueSBmaWxlIHdp
bGwgYSBnaXZlbiBzZXQgb2YgZXh0ZW5zaW9ucyBhcyB0ZXN0cywgZXhjZXB0IGZvcgotICAgIHRo
b3NlIHdoaWNoIGFwcGVhciB0byBiZSByZWZlcmVuY2VzICgtZXhwZWN0ZWQuaHRtbCwgZXRjLiku
IE5vdGFibHkgdGhpcwotICAgIG1lYW5zIHRoYXQgYSB0ZXN0IF9kb2Vzbid0XyBuZWVkIHRvIGhh
dmUgYW55IGFzc29jaWF0ZWQgLWV4cGVjdGVkLiogZmlsZQotICAgIChpbiB0aG9zZSBjYXNlcywg
d2Ugd2lsbCByZXBvcnQgdGhlIG1pc3NpbmcgcmVzdWx0KS4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zKToKLSAgICAgICAgIyBGSVhNRTogd2Ugc2hvdWxk
IG1pbmltaXplL2VsaW1pbmF0ZSB1c2FnZSBvZiB0aGUgcG9ydCwgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDQyMQotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAot
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9maWxlc3lzdGVt
ID0gc2VsZi5fcG9ydC5ob3N0LmZpbGVzeXN0ZW0KLSAgICAgICAgc2VsZi5MQVlPVVRfVEVTVFNf
RElSRUNUT1JZID0gJ0xheW91dFRlc3RzJwotICAgICAgICBzZWxmLl93M2NfcmVzb3VyY2VfZmls
ZXMgPSBOb25lCi0gICAgICAgIHNlbGYuaHR0cF9zdWJkaXIgPSAnaHR0cCcgKyBwb3J0LlRFU1Rf
UEFUSF9TRVBBUkFUT1IgKyAndGVzdCcKLSAgICAgICAgc2VsZi53ZWJzb2NrZXRfc3ViZGlyID0g
J3dlYnNvY2tldCcgKyBwb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IKLSAgICAgICAgc2VsZi53ZWJf
cGxhdGZvcm1fdGVzdF9zdWJkaXIgPSBwb3J0LndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9kb2Nf
cm9vdCgpCi0gICAgICAgIHNlbGYud2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90ZXN0X3N1
YmRpciA9ICgKLSAgICAgICAgICAgICdodHRwJyArIHBvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUiAr
ICd3cHQnICsgcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9SCi0gICAgICAgICkKLQotICAgIGRlZiBm
aW5kX3Rlc3RzKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIGRldmljZV90eXBlPU5vbmUpOgotICAgICAg
ICBwYXRocyA9IHNlbGYuX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVzKGFyZ3MpCi0gICAgICAgIGlm
IG9wdGlvbnMgYW5kIG9wdGlvbnMudGVzdF9saXN0OgotICAgICAgICAgICAgcGF0aHMgKz0gc2Vs
Zi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4ZXMoc2VsZi5fcmVhZF90ZXN0X25hbWVzX2Zyb21fZmls
ZShvcHRpb25zLnRlc3RfbGlzdCwgc2VsZi5fcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9SKSkKLSAg
ICAgICAgdGVzdHMgPSBzZWxmLmZpbmRfdGVzdHNfYnlfcGF0aChwYXRocywgZGV2aWNlX3R5cGU9
ZGV2aWNlX3R5cGUpCi0gICAgICAgIHJldHVybiAocGF0aHMsIHRlc3RzKQotCi0gICAgZGVmIGZp
bmRfdGVzdHNfYnlfcGF0aChzZWxmLCBwYXRocywgZGV2aWNlX3R5cGU9Tm9uZSk6Ci0gICAgICAg
ICIiIlJldHVybiB0aGUgbGlzdCBvZiB0ZXN0cyBmb3VuZC4gQm90aCBnZW5lcmljIGFuZCBwbGF0
Zm9ybS1zcGVjaWZpYyB0ZXN0cyBtYXRjaGluZyBwYXRocyBzaG91bGQgYmUgcmV0dXJuZWQuIiIi
Ci0gICAgICAgIGV4cGFuZGVkX3BhdGhzID0gc2VsZi5fZXhwYW5kZWRfcGF0aHMocGF0aHMsIGRl
dmljZV90eXBlPWRldmljZV90eXBlKQotICAgICAgICByZXR1cm4gWwotICAgICAgICAgICAgVGVz
dCgKLSAgICAgICAgICAgICAgICB0ZXN0X2ZpbGUsCi0gICAgICAgICAgICAgICAgaXNfaHR0cF90
ZXN0PXNlbGYuaHR0cF9zdWJkaXIgaW4gdGVzdF9maWxlLAotICAgICAgICAgICAgICAgIGlzX3dl
YnNvY2tldF90ZXN0PXNlbGYud2Vic29ja2V0X3N1YmRpciBpbiB0ZXN0X2ZpbGUsCi0gICAgICAg
ICAgICAgICAgaXNfd3B0X3Rlc3Q9KAotICAgICAgICAgICAgICAgICAgICBzZWxmLndlYl9wbGF0
Zm9ybV90ZXN0X3N1YmRpciBpbiB0ZXN0X2ZpbGUKLSAgICAgICAgICAgICAgICAgICAgb3Igc2Vs
Zi53ZWJraXRfc3BlY2lmaWNfd2ViX3BsYXRmb3JtX3Rlc3Rfc3ViZGlyIGluIHRlc3RfZmlsZQot
ICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBmb3IgdGVzdF9m
aWxlIGluIHNlbGYuX3JlYWxfdGVzdHMoZXhwYW5kZWRfcGF0aHMpCi0gICAgICAgIF0KLQotICAg
IGRlZiBfZXhwYW5kZWRfcGF0aHMoc2VsZiwgcGF0aHMsIGRldmljZV90eXBlPU5vbmUpOgotICAg
ICAgICBleHBhbmRlZF9wYXRocyA9IFtdCi0gICAgICAgIGZzID0gc2VsZi5fcG9ydC5fZmlsZXN5
c3RlbQotICAgICAgICBhbGxfcGxhdGZvcm1fZGlycyA9IFtwYXRoIGZvciBwYXRoIGluIGZzLmds
b2IoZnMuam9pbihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwgJ3BsYXRmb3JtJywgJyon
KSkgaWYgZnMuaXNkaXIocGF0aCldCi0gICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgotICAgICAg
ICAgICAgZXhwYW5kZWRfcGF0aHMuYXBwZW5kKHBhdGgpCi0gICAgICAgICAgICBpZiBzZWxmLl9w
b3J0LnRlc3RfaXNkaXIocGF0aCkgYW5kIG5vdCBwYXRoLnN0YXJ0c3dpdGgoJ3BsYXRmb3JtJykg
YW5kIG5vdCBmcy5pc2FicyhwYXRoKToKLSAgICAgICAgICAgICAgICBmb3IgcGxhdGZvcm1fZGly
IGluIGFsbF9wbGF0Zm9ybV9kaXJzOgotICAgICAgICAgICAgICAgICAgICBpZiBmcy5pc2Rpcihm
cy5qb2luKHBsYXRmb3JtX2RpciwgcGF0aCkpIGFuZCBwbGF0Zm9ybV9kaXIgaW4gc2VsZi5fcG9y
dC5iYXNlbGluZV9zZWFyY2hfcGF0aChkZXZpY2VfdHlwZT1kZXZpY2VfdHlwZSk6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBleHBhbmRlZF9wYXRocy5hcHBlbmQoc2VsZi5fcG9ydC5yZWxhdGl2
ZV90ZXN0X2ZpbGVuYW1lKGZzLmpvaW4ocGxhdGZvcm1fZGlyLCBwYXRoKSkpCi0KLSAgICAgICAg
cmV0dXJuIGV4cGFuZGVkX3BhdGhzCi0KLSAgICBkZWYgX3JlYWxfdGVzdHMoc2VsZiwgcGF0aHMp
OgotICAgICAgICAjIFdoZW4gY29sbGVjdGluZyB0ZXN0IGNhc2VzLCBza2lwIHRoZXNlIGRpcmVj
dG9yaWVzCi0gICAgICAgIHNraXBwZWRfZGlyZWN0b3JpZXMgPSBzZXQoWycuc3ZuJywgJ19zdm4n
LCAncmVzb3VyY2VzJywgJ3N1cHBvcnQnLCAnc2NyaXB0LXRlc3RzJywgJ3Rvb2xzJywgJ3JlZmVy
ZW5jZScsICdyZWZ0ZXN0J10pCi0gICAgICAgIGZpbGVzID0gZmluZF9maWxlcy5maW5kKHNlbGYu
X3BvcnQuX2ZpbGVzeXN0ZW0sIHNlbGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCBwYXRocywg
c2tpcHBlZF9kaXJlY3Rvcmllcywgc2VsZi5faXNfdGVzdF9maWxlLCBzZWxmLl9wb3J0LnRlc3Rf
a2V5KQotICAgICAgICByZXR1cm4gW3NlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShm
KSBmb3IgZiBpbiBmaWxlc10KLQotICAgIGRlZiBfaXNfdGVzdF9maWxlKHNlbGYsIGZpbGVzeXN0
ZW0sIGRpcm5hbWUsIGZpbGVuYW1lKToKLSAgICAgICAgaWYgbm90IF9oYXNfc3VwcG9ydGVkX2V4
dGVuc2lvbihmaWxlc3lzdGVtLCBmaWxlbmFtZSk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UK
LSAgICAgICAgaWYgX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwgZGlybmFtZSwg
ZmlsZW5hbWUpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHNlbGYuX2lz
X3czY19yZXNvdXJjZV9maWxlKGZpbGVzeXN0ZW0sIGRpcm5hbWUsIGZpbGVuYW1lKToKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGZvciBwYXR0ZXJuIGluIF9za2lwcGVkX2Zp
bGVuYW1lX3BhdHRlcm5zOgotICAgICAgICAgICAgaWYgcmUubWF0Y2gocGF0dGVybiwgZmlsZW5h
bWUpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQot
Ci0gICAgZGVmIF9pc193M2NfcmVzb3VyY2VfZmlsZShzZWxmLCBmaWxlc3lzdGVtLCBkaXJuYW1l
LCBmaWxlbmFtZSk6Ci0gICAgICAgIHBhdGggPSBmaWxlc3lzdGVtLmpvaW4oZGlybmFtZSwgZmls
ZW5hbWUpCi0gICAgICAgIHczY19wYXRoID0gZmlsZXN5c3RlbS5qb2luKHNlbGYuX3BvcnQubGF5
b3V0X3Rlc3RzX2RpcigpLCAiaW1wb3J0ZWQiLCAidzNjIikKLSAgICAgICAgaWYgdzNjX3BhdGgg
bm90IGluIHBhdGg6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBpZiBub3Qg
c2VsZi5fdzNjX3Jlc291cmNlX2ZpbGVzOgotICAgICAgICAgICAgZmlsZXBhdGggPSBmaWxlc3lz
dGVtLmpvaW4odzNjX3BhdGgsICJyZXNvdXJjZXMiLCAicmVzb3VyY2UtZmlsZXMuanNvbiIpCi0g
ICAgICAgICAgICBqc29uX2RhdGEgPSBmaWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKGZpbGVwYXRo
KQotICAgICAgICAgICAgc2VsZi5fdzNjX3Jlc291cmNlX2ZpbGVzID0ganNvbi5sb2Fkcyhqc29u
X2RhdGEpCi0KLSAgICAgICAgXywgZXh0ZW5zaW9uID0gZmlsZXN5c3RlbS5zcGxpdGV4dChmaWxl
bmFtZSkKLSAgICAgICAgaWYgZXh0ZW5zaW9uID09ICcucHknOgotICAgICAgICAgICAgcmV0dXJu
IFRydWUKLQotICAgICAgICBzdWJwYXRoID0gcGF0aFtsZW4odzNjX3BhdGgpICsgMTpdLnJlcGxh
Y2UoJ1xcJywgJy8nKQotICAgICAgICBpZiBzdWJwYXRoIGluIHNlbGYuX3czY19yZXNvdXJjZV9m
aWxlc1siZmlsZXMiXToKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGZvciBkaXJw
YXRoIGluIHNlbGYuX3czY19yZXNvdXJjZV9maWxlc1siZGlyZWN0b3JpZXMiXToKLSAgICAgICAg
ICAgIGlmIGRpcnBhdGggaW4gc3VicGF0aDoKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQot
ICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBfc3RyaXBfdGVzdF9kaXJfcHJlZml4ZXMo
c2VsZiwgcGF0aHMpOgotICAgICAgICByZXR1cm4gW3NlbGYuX3N0cmlwX3Rlc3RfZGlyX3ByZWZp
eChwYXRoKSBmb3IgcGF0aCBpbiBwYXRocyBpZiBwYXRoXQotCi0gICAgZGVmIF9zdHJpcF90ZXN0
X2Rpcl9wcmVmaXgoc2VsZiwgcGF0aCk6Ci0gICAgICAgICMgSGFuZGxlIGJvdGggIkxheW91dFRl
c3RzL2Zvby9iYXIuaHRtbCIgYW5kICJMYXlvdXRUZXN0c1xmb29cYmFyLmh0bWwiIGlmCi0gICAg
ICAgICMgdGhlIGZpbGVzeXN0ZW0gdXNlcyAnXFwnIGFzIGEgZGlyZWN0b3J5IHNlcGFyYXRvci4K
LSAgICAgICAgaWYgcGF0aC5zdGFydHN3aXRoKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSAr
IHNlbGYuX3BvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUik6Ci0gICAgICAgICAgICByZXR1cm4gcGF0
aFtsZW4oc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZICsgc2VsZi5fcG9ydC5URVNUX1BBVEhf
U0VQQVJBVE9SKTpdCi0gICAgICAgIGlmIHBhdGguc3RhcnRzd2l0aChzZWxmLkxBWU9VVF9URVNU
U19ESVJFQ1RPUlkgKyBzZWxmLl9maWxlc3lzdGVtLnNlcCk6Ci0gICAgICAgICAgICByZXR1cm4g
cGF0aFtsZW4oc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZICsgc2VsZi5fZmlsZXN5c3RlbS5z
ZXApOl0KLSAgICAgICAgcmV0dXJuIHBhdGgKLQotICAgIGRlZiBfcmVhZF90ZXN0X25hbWVzX2Zy
b21fZmlsZShzZWxmLCBmaWxlbmFtZXMsIHRlc3RfcGF0aF9zZXBhcmF0b3IpOgotICAgICAgICBm
cyA9IHNlbGYuX2ZpbGVzeXN0ZW0KLSAgICAgICAgdGVzdHMgPSBbXQotICAgICAgICBmb3IgZmls
ZW5hbWUgaW4gZmlsZW5hbWVzOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlm
IHRlc3RfcGF0aF9zZXBhcmF0b3IgIT0gZnMuc2VwOgotICAgICAgICAgICAgICAgICAgICBmaWxl
bmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UodGVzdF9wYXRoX3NlcGFyYXRvciwgZnMuc2VwKQotICAg
ICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmcy5yZWFkX3RleHRfZmlsZShmaWxlbmFtZSku
c3BsaXQoJ1xuJykKLSAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBmaWxlX2NvbnRlbnRzOgot
ICAgICAgICAgICAgICAgICAgICBsaW5lID0gc2VsZi5fc3RyaXBfY29tbWVudHMobGluZSkKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbGluZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rz
LmFwcGVuZChsaW5lKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAgICAg
ICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgICAgICAgICAg
X2xvZy5jcml0aWNhbCgnJykKLSAgICAgICAgICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnLS10
ZXN0LWxpc3QgZmlsZSAie30iIG5vdCBmb3VuZCcuZm9ybWF0KGZpbGVuYW1lcykpCi0gICAgICAg
ICAgICAgICAgcmFpc2UKLSAgICAgICAgcmV0dXJuIHRlc3RzCi0KLSAgICBAc3RhdGljbWV0aG9k
Ci0gICAgZGVmIF9zdHJpcF9jb21tZW50cyhsaW5lKToKLSAgICAgICAgY29tbWVudEluZGV4ID0g
bGluZS5maW5kKCcvLycpCi0gICAgICAgIGlmIGNvbW1lbnRJbmRleCA9PSAtMToKLSAgICAgICAg
ICAgIGNvbW1lbnRJbmRleCA9IGxlbihsaW5lKQotCi0gICAgICAgIGxpbmUgPSByZS5zdWIocidc
cysnLCAnICcsIGxpbmVbOmNvbW1lbnRJbmRleF0uc3RyaXAoKSkKLSAgICAgICAgaWYgbGluZSA9
PSAnJzoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICByZXR1cm4gbGluZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyX2xlZ2FjeS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRl
cl9sZWdhY3kucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM3MTNmOTNmNGFjMTgwNWI2MjNiM2YyZDhjOTU3NWQ0
NTEwZWExZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlcl9sZWdhY3kucHkKQEAgLTAsMCAr
MSwyMTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0
cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgZXJybm8KK2ltcG9ydCBqc29uCitp
bXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCisKK2Zyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBm
aW5kX2ZpbGVzCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdCBpbXBvcnQg
VGVzdAorZnJvbSB3ZWJraXRweS5wb3J0LmJhc2UgaW1wb3J0IFBvcnQKKworCitfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworIyBXaGVuIGNvbGxlY3RpbmcgdGVzdCBjYXNl
cywgd2UgaW5jbHVkZSBhbnkgZmlsZSB3aXRoIHRoZXNlIGV4dGVuc2lvbnMuCitfc3VwcG9ydGVk
X3Rlc3RfZXh0ZW5zaW9ucyA9IHNldChbJy5odG1sJywgJy5zaHRtbCcsICcueG1sJywgJy54aHRt
bCcsICcucGwnLCAnLnB5JywgJy5odG0nLCAnLnBocCcsICcuc3ZnJywgJy5taHQnLCAnLnhodCdd
KQorCitfc2tpcHBlZF9maWxlbmFtZV9wYXR0ZXJucyA9IHNldChbCisgICAgIyBTcGVjaWFsIGNh
c2UgZm9yIFdlYlNvY2tldCB0b29saW5nLgorICAgIHInLipfd3NoLnB5JywKKworICAgICMgVGhl
IFdlYktpdDEgYm90IHNvbWV0aW1lcyBjcmVhdGVzIHRoZXNlIGZpbGVzIGR1cmluZyB0aGUgY291
cnNlIG9mIHRlc3RpbmcuCisgICAgIyBodHRwczovL3dlYmtpdC5vcmcvYi8yMDg0NzcKKyAgICBy
J2Jvb3RcLnhtbCcsCisgICAgcidyb290XC54bWwnCitdKQorCisKKyMgSWYgYW55IGNoYW5nZXMg
YXJlIG1hZGUgaGVyZSBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgaXNVc2VkSW5SZWZ0ZXN0IG1ldGhv
ZCBpbiBvbGQtcnVuLXdlYmtpdC10ZXN0cyBhcyB3ZWxsLgorZGVmIF9pc19yZWZlcmVuY2VfaHRt
bF9maWxlKGZpbGVzeXN0ZW0sIGRpcm5hbWUsIGZpbGVuYW1lKToKKyAgICBpZiBmaWxlbmFtZS5z
dGFydHN3aXRoKCdyZWYtJykgb3IgZmlsZW5hbWUuc3RhcnRzd2l0aCgnbm90cmVmLScpOgorICAg
ICAgICByZXR1cm4gVHJ1ZQorICAgIGZpbGVuYW1lX3dpaG91dF9leHQsIGV4dCA9IGZpbGVzeXN0
ZW0uc3BsaXRleHQoZmlsZW5hbWUpCisgICAgIyBGSVhNRTogX3N1cHBvcnRlZF9yZWZlcmVuY2Vf
ZXh0ZW5zaW9ucyBzaG91bGQgYmUgaGVyZSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMDQyMQorICAgIGlmIGV4dCBub3QgaW4gUG9ydC5fc3VwcG9ydGVkX3JlZmVy
ZW5jZV9leHRlbnNpb25zOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBmb3Igc3VmZml4IGlu
IFsnLWV4cGVjdGVkJywgJy1leHBlY3RlZC1taXNtYXRjaCcsICctcmVmJywgJy1ub3RyZWYnXToK
KyAgICAgICAgaWYgZmlsZW5hbWVfd2lob3V0X2V4dC5lbmRzd2l0aChzdWZmaXgpOgorICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworCitkZWYgX2hhc19zdXBwb3J0
ZWRfZXh0ZW5zaW9uKGZpbGVzeXN0ZW0sIGZpbGVuYW1lKToKKyAgICAiIiJSZXR1cm4gdHJ1ZSBp
ZiBmaWxlbmFtZSBpcyBvbmUgb2YgdGhlIGZpbGUgZXh0ZW5zaW9ucyB3ZSB3YW50IHRvIHJ1biBh
IHRlc3Qgb24uIiIiCisgICAgZXh0ZW5zaW9uID0gZmlsZXN5c3RlbS5zcGxpdGV4dChmaWxlbmFt
ZSlbMV0KKyAgICByZXR1cm4gZXh0ZW5zaW9uIGluIF9zdXBwb3J0ZWRfdGVzdF9leHRlbnNpb25z
CisKKworY2xhc3MgTGF5b3V0VGVzdEZpbmRlcihvYmplY3QpOgorICAgICIiIkZpbmRzIExheW91
dFRlc3RzCisKKyAgICBXZSBjb25zaWRlciBhbnkgZmlsZSB3aWxsIGEgZ2l2ZW4gc2V0IG9mIGV4
dGVuc2lvbnMgYXMgdGVzdHMsIGV4Y2VwdCBmb3IKKyAgICB0aG9zZSB3aGljaCBhcHBlYXIgdG8g
YmUgcmVmZXJlbmNlcyAoLWV4cGVjdGVkLmh0bWwsIGV0Yy4pLiBOb3RhYmx5IHRoaXMKKyAgICBt
ZWFucyB0aGF0IGEgdGVzdCBfZG9lc24ndF8gbmVlZCB0byBoYXZlIGFueSBhc3NvY2lhdGVkIC1l
eHBlY3RlZC4qIGZpbGUKKyAgICAoaW4gdGhvc2UgY2FzZXMsIHdlIHdpbGwgcmVwb3J0IHRoZSBt
aXNzaW5nIHJlc3VsdCkuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwg
b3B0aW9ucyk6CisgICAgICAgICMgRklYTUU6IHdlIHNob3VsZCBtaW5pbWl6ZS9lbGltaW5hdGUg
dXNhZ2Ugb2YgdGhlIHBvcnQsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjA0MjEKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5fb3B0aW9u
cyA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IHNlbGYuX3BvcnQuaG9zdC5m
aWxlc3lzdGVtCisgICAgICAgIHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSA9ICdMYXlvdXRU
ZXN0cycKKyAgICAgICAgc2VsZi5fdzNjX3Jlc291cmNlX2ZpbGVzID0gTm9uZQorICAgICAgICBz
ZWxmLmh0dHBfc3ViZGlyID0gJ2h0dHAnICsgcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9SICsgJ3Rl
c3QnCisgICAgICAgIHNlbGYud2Vic29ja2V0X3N1YmRpciA9ICd3ZWJzb2NrZXQnICsgcG9ydC5U
RVNUX1BBVEhfU0VQQVJBVE9SCisgICAgICAgIHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc3ViZGly
ID0gcG9ydC53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXJfZG9jX3Jvb3QoKQorICAgICAgICBzZWxm
LndlYmtpdF9zcGVjaWZpY193ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgPSAoCisgICAgICAgICAg
ICAnaHR0cCcgKyBwb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IgKyAnd3B0JyArIHBvcnQuVEVTVF9Q
QVRIX1NFUEFSQVRPUgorICAgICAgICApCisKKyAgICBkZWYgZmluZF90ZXN0cyhzZWxmLCBvcHRp
b25zLCBhcmdzLCBkZXZpY2VfdHlwZT1Ob25lKToKKyAgICAgICAgcGF0aHMgPSBzZWxmLl9zdHJp
cF90ZXN0X2Rpcl9wcmVmaXhlcyhhcmdzKQorICAgICAgICBpZiBvcHRpb25zIGFuZCBvcHRpb25z
LnRlc3RfbGlzdDoKKyAgICAgICAgICAgIHBhdGhzICs9IHNlbGYuX3N0cmlwX3Rlc3RfZGlyX3By
ZWZpeGVzKHNlbGYuX3JlYWRfdGVzdF9uYW1lc19mcm9tX2ZpbGUob3B0aW9ucy50ZXN0X2xpc3Qs
IHNlbGYuX3BvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUikpCisgICAgICAgIHRlc3RzID0gc2VsZi5m
aW5kX3Rlc3RzX2J5X3BhdGgocGF0aHMsIGRldmljZV90eXBlPWRldmljZV90eXBlKQorICAgICAg
ICByZXR1cm4gKHBhdGhzLCB0ZXN0cykKKworICAgIGRlZiBmaW5kX3Rlc3RzX2J5X3BhdGgoc2Vs
ZiwgcGF0aHMsIGRldmljZV90eXBlPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGxpc3Qg
b2YgdGVzdHMgZm91bmQuIEJvdGggZ2VuZXJpYyBhbmQgcGxhdGZvcm0tc3BlY2lmaWMgdGVzdHMg
bWF0Y2hpbmcgcGF0aHMgc2hvdWxkIGJlIHJldHVybmVkLiIiIgorICAgICAgICBleHBhbmRlZF9w
YXRocyA9IHNlbGYuX2V4cGFuZGVkX3BhdGhzKHBhdGhzLCBkZXZpY2VfdHlwZT1kZXZpY2VfdHlw
ZSkKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgIFRlc3QoCisgICAgICAgICAgICAgICAg
dGVzdF9maWxlLAorICAgICAgICAgICAgICAgIGlzX2h0dHBfdGVzdD1zZWxmLmh0dHBfc3ViZGly
IGluIHRlc3RfZmlsZSwKKyAgICAgICAgICAgICAgICBpc193ZWJzb2NrZXRfdGVzdD1zZWxmLndl
YnNvY2tldF9zdWJkaXIgaW4gdGVzdF9maWxlLAorICAgICAgICAgICAgICAgIGlzX3dwdF90ZXN0
PSgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgaW4g
dGVzdF9maWxlCisgICAgICAgICAgICAgICAgICAgIG9yIHNlbGYud2Via2l0X3NwZWNpZmljX3dl
Yl9wbGF0Zm9ybV90ZXN0X3N1YmRpciBpbiB0ZXN0X2ZpbGUKKyAgICAgICAgICAgICAgICApLAor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgZm9yIHRlc3RfZmlsZSBpbiBzZWxmLl9yZWFsX3Rl
c3RzKGV4cGFuZGVkX3BhdGhzKQorICAgICAgICBdCisKKyAgICBkZWYgX2V4cGFuZGVkX3BhdGhz
KHNlbGYsIHBhdGhzLCBkZXZpY2VfdHlwZT1Ob25lKToKKyAgICAgICAgZXhwYW5kZWRfcGF0aHMg
PSBbXQorICAgICAgICBmcyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KKyAgICAgICAgYWxsX3Bs
YXRmb3JtX2RpcnMgPSBbcGF0aCBmb3IgcGF0aCBpbiBmcy5nbG9iKGZzLmpvaW4oc2VsZi5fcG9y
dC5sYXlvdXRfdGVzdHNfZGlyKCksICdwbGF0Zm9ybScsICcqJykpIGlmIGZzLmlzZGlyKHBhdGgp
XQorICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgICAgIGV4cGFuZGVkX3BhdGhz
LmFwcGVuZChwYXRoKQorICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC50ZXN0X2lzZGlyKHBhdGgp
IGFuZCBub3QgcGF0aC5zdGFydHN3aXRoKCdwbGF0Zm9ybScpIGFuZCBub3QgZnMuaXNhYnMocGF0
aCk6CisgICAgICAgICAgICAgICAgZm9yIHBsYXRmb3JtX2RpciBpbiBhbGxfcGxhdGZvcm1fZGly
czoKKyAgICAgICAgICAgICAgICAgICAgaWYgZnMuaXNkaXIoZnMuam9pbihwbGF0Zm9ybV9kaXIs
IHBhdGgpKSBhbmQgcGxhdGZvcm1fZGlyIGluIHNlbGYuX3BvcnQuYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoZGV2aWNlX3R5cGU9ZGV2aWNlX3R5cGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhw
YW5kZWRfcGF0aHMuYXBwZW5kKHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmcy5q
b2luKHBsYXRmb3JtX2RpciwgcGF0aCkpKQorCisgICAgICAgIHJldHVybiBleHBhbmRlZF9wYXRo
cworCisgICAgZGVmIF9yZWFsX3Rlc3RzKHNlbGYsIHBhdGhzKToKKyAgICAgICAgIyBXaGVuIGNv
bGxlY3RpbmcgdGVzdCBjYXNlcywgc2tpcCB0aGVzZSBkaXJlY3RvcmllcworICAgICAgICBza2lw
cGVkX2RpcmVjdG9yaWVzID0gc2V0KFsnLnN2bicsICdfc3ZuJywgJ3Jlc291cmNlcycsICdzdXBw
b3J0JywgJ3NjcmlwdC10ZXN0cycsICd0b29scycsICdyZWZlcmVuY2UnLCAncmVmdGVzdCddKQor
ICAgICAgICBmaWxlcyA9IGZpbmRfZmlsZXMuZmluZChzZWxmLl9wb3J0Ll9maWxlc3lzdGVtLCBz
ZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwgcGF0aHMsIHNraXBwZWRfZGlyZWN0b3JpZXMs
IHNlbGYuX2lzX3Rlc3RfZmlsZSwgc2VsZi5fcG9ydC50ZXN0X2tleSkKKyAgICAgICAgcmV0dXJu
IFtzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoZikgZm9yIGYgaW4gZmlsZXNdCisK
KyAgICBkZWYgX2lzX3Rlc3RfZmlsZShzZWxmLCBmaWxlc3lzdGVtLCBkaXJuYW1lLCBmaWxlbmFt
ZSk6CisgICAgICAgIGlmIG5vdCBfaGFzX3N1cHBvcnRlZF9leHRlbnNpb24oZmlsZXN5c3RlbSwg
ZmlsZW5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIF9pc19yZWZl
cmVuY2VfaHRtbF9maWxlKGZpbGVzeXN0ZW0sIGRpcm5hbWUsIGZpbGVuYW1lKToKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBzZWxmLl9pc193M2NfcmVzb3VyY2VfZmlsZShm
aWxlc3lzdGVtLCBkaXJuYW1lLCBmaWxlbmFtZSk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgICAgICBmb3IgcGF0dGVybiBpbiBfc2tpcHBlZF9maWxlbmFtZV9wYXR0ZXJuczoKKyAg
ICAgICAgICAgIGlmIHJlLm1hdGNoKHBhdHRlcm4sIGZpbGVuYW1lKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfaXNfdzNjX3Jl
c291cmNlX2ZpbGUoc2VsZiwgZmlsZXN5c3RlbSwgZGlybmFtZSwgZmlsZW5hbWUpOgorICAgICAg
ICBwYXRoID0gZmlsZXN5c3RlbS5qb2luKGRpcm5hbWUsIGZpbGVuYW1lKQorICAgICAgICB3M2Nf
cGF0aCA9IGZpbGVzeXN0ZW0uam9pbihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwgImlt
cG9ydGVkIiwgInczYyIpCisgICAgICAgIGlmIHczY19wYXRoIG5vdCBpbiBwYXRoOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgbm90IHNlbGYuX3czY19yZXNvdXJjZV9m
aWxlczoKKyAgICAgICAgICAgIGZpbGVwYXRoID0gZmlsZXN5c3RlbS5qb2luKHczY19wYXRoLCAi
cmVzb3VyY2VzIiwgInJlc291cmNlLWZpbGVzLmpzb24iKQorICAgICAgICAgICAganNvbl9kYXRh
ID0gZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShmaWxlcGF0aCkKKyAgICAgICAgICAgIHNlbGYu
X3czY19yZXNvdXJjZV9maWxlcyA9IGpzb24ubG9hZHMoanNvbl9kYXRhKQorCisgICAgICAgIF8s
IGV4dGVuc2lvbiA9IGZpbGVzeXN0ZW0uc3BsaXRleHQoZmlsZW5hbWUpCisgICAgICAgIGlmIGV4
dGVuc2lvbiA9PSAnLnB5JzoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgc3Vi
cGF0aCA9IHBhdGhbbGVuKHczY19wYXRoKSArIDE6XS5yZXBsYWNlKCdcXCcsICcvJykKKyAgICAg
ICAgaWYgc3VicGF0aCBpbiBzZWxmLl93M2NfcmVzb3VyY2VfZmlsZXNbImZpbGVzIl06CisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBmb3IgZGlycGF0aCBpbiBzZWxmLl93M2NfcmVz
b3VyY2VfZmlsZXNbImRpcmVjdG9yaWVzIl06CisgICAgICAgICAgICBpZiBkaXJwYXRoIGluIHN1
YnBhdGg6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICBkZWYgX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVzKHNlbGYsIHBhdGhzKToKKyAgICAg
ICAgcmV0dXJuIFtzZWxmLl9zdHJpcF90ZXN0X2Rpcl9wcmVmaXgocGF0aCkgZm9yIHBhdGggaW4g
cGF0aHMgaWYgcGF0aF0KKworICAgIGRlZiBfc3RyaXBfdGVzdF9kaXJfcHJlZml4KHNlbGYsIHBh
dGgpOgorICAgICAgICAjIEhhbmRsZSBib3RoICJMYXlvdXRUZXN0cy9mb28vYmFyLmh0bWwiIGFu
ZCAiTGF5b3V0VGVzdHNcZm9vXGJhci5odG1sIiBpZgorICAgICAgICAjIHRoZSBmaWxlc3lzdGVt
IHVzZXMgJ1xcJyBhcyBhIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisgICAgICAgIGlmIHBhdGguc3Rh
cnRzd2l0aChzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlkgKyBzZWxmLl9wb3J0LlRFU1RfUEFU
SF9TRVBBUkFUT1IpOgorICAgICAgICAgICAgcmV0dXJuIHBhdGhbbGVuKHNlbGYuTEFZT1VUX1RF
U1RTX0RJUkVDVE9SWSArIHNlbGYuX3BvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUik6XQorICAgICAg
ICBpZiBwYXRoLnN0YXJ0c3dpdGgoc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZICsgc2VsZi5f
ZmlsZXN5c3RlbS5zZXApOgorICAgICAgICAgICAgcmV0dXJuIHBhdGhbbGVuKHNlbGYuTEFZT1VU
X1RFU1RTX0RJUkVDVE9SWSArIHNlbGYuX2ZpbGVzeXN0ZW0uc2VwKTpdCisgICAgICAgIHJldHVy
biBwYXRoCisKKyAgICBkZWYgX3JlYWRfdGVzdF9uYW1lc19mcm9tX2ZpbGUoc2VsZiwgZmlsZW5h
bWVzLCB0ZXN0X3BhdGhfc2VwYXJhdG9yKToKKyAgICAgICAgZnMgPSBzZWxmLl9maWxlc3lzdGVt
CisgICAgICAgIHRlc3RzID0gW10KKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiB0ZXN0X3BhdGhfc2VwYXJhdG9y
ICE9IGZzLnNlcDoKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZS5yZXBs
YWNlKHRlc3RfcGF0aF9zZXBhcmF0b3IsIGZzLnNlcCkKKyAgICAgICAgICAgICAgICBmaWxlX2Nv
bnRlbnRzID0gZnMucmVhZF90ZXh0X2ZpbGUoZmlsZW5hbWUpLnNwbGl0KCdcbicpCisgICAgICAg
ICAgICAgICAgZm9yIGxpbmUgaW4gZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgICAgICAgICAg
bGluZSA9IHNlbGYuX3N0cmlwX2NvbW1lbnRzKGxpbmUpCisgICAgICAgICAgICAgICAgICAgIGlm
IGxpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cy5hcHBlbmQobGluZSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9
PSBlcnJuby5FTk9FTlQ6CisgICAgICAgICAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJycpCisg
ICAgICAgICAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJy0tdGVzdC1saXN0IGZpbGUgInt9IiBu
b3QgZm91bmQnLmZvcm1hdChmaWxlbmFtZXMpKQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAg
ICAgIHJldHVybiB0ZXN0cworCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfc3RyaXBfY29t
bWVudHMobGluZSk6CisgICAgICAgIGNvbW1lbnRJbmRleCA9IGxpbmUuZmluZCgnLy8nKQorICAg
ICAgICBpZiBjb21tZW50SW5kZXggPT0gLTE6CisgICAgICAgICAgICBjb21tZW50SW5kZXggPSBs
ZW4obGluZSkKKworICAgICAgICBsaW5lID0gcmUuc3ViKHInXHMrJywgJyAnLCBsaW5lWzpjb21t
ZW50SW5kZXhdLnN0cmlwKCkpCisgICAgICAgIGlmIGxpbmUgPT0gJyc6CisgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGxpbmUKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X2ZpbmRlcl9sZWdhY3lfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXJfbGVnYWN5X3Vu
aXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZWIwN2I5ZGRkMzVmMWQzMzMxMmVkYjBlODY2M2ExZGZj
MTU5NjcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXJfbGVnYWN5X3VuaXR0ZXN0LnB5CkBA
IC0wLDAgKzEsMTM4IEBACisjIENvcHlyaWdodCAoYykgMjAxNSwgQ2Fub24gSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL2djb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5j
LiBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
CisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CisKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5sYXlvdXRfdGVzdF9maW5kZXJfbGVnYWN5
IGltcG9ydCBMYXlvdXRUZXN0RmluZGVyLCBQb3J0LCBfaXNfcmVmZXJlbmNlX2h0bWxfZmlsZSwg
X3N1cHBvcnRlZF90ZXN0X2V4dGVuc2lvbnMKK2Zyb20gd2Via2l0cHkucG9ydC50ZXN0IGltcG9y
dCBhZGRfdW5pdF90ZXN0c190b19tb2NrX2ZpbGVzeXN0ZW0sIFRlc3RQb3J0CisKKworY2xhc3Mg
TW9ja0xheW91dFRlc3RGaW5kZXIoTGF5b3V0VGVzdEZpbmRlcik6CisgICAgZGVmIF9yZWFsX3Rl
c3RzKHNlbGYsIHBhdGhzKToKKyAgICAgICAgcmV0dXJuIFtwYXRoIGZvciBwYXRoIGluIHBhdGhz
IGlmIHBhdGguZW5kc3dpdGgoJy5odG1sJyldCisKKworY2xhc3MgTGF5b3V0VGVzdEZpbmRlclRl
c3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgbWFrZV9maW5kZXIoc2VsZik6CisgICAg
ICAgIGhvc3QgPSBNb2NrSG9zdChjcmVhdGVfc3R1Yl9yZXBvc2l0b3J5X2ZpbGVzPVRydWUpCisg
ICAgICAgIGFkZF91bml0X3Rlc3RzX3RvX21vY2tfZmlsZXN5c3RlbShob3N0LmZpbGVzeXN0ZW0p
CisgICAgICAgIHBvcnQgPSBUZXN0UG9ydChob3N0KQorICAgICAgICByZXR1cm4gTGF5b3V0VGVz
dEZpbmRlcihwb3J0LCBOb25lKQorCisgICAgZGVmIHRlc3Rfc3VwcG9ydGVkX3Rlc3RfZXh0ZW5z
aW9ucyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfc3VwcG9ydGVkX3Rlc3RfZXh0
ZW5zaW9ucyAmIFBvcnQuX3N1cHBvcnRlZF9yZWZlcmVuY2VfZXh0ZW5zaW9ucywgUG9ydC5fc3Vw
cG9ydGVkX3JlZmVyZW5jZV9leHRlbnNpb25zKQorCisgICAgZGVmIHRlc3RfaXNfcmVmZXJlbmNl
X2h0bWxfZmlsZShzZWxmKToKKyAgICAgICAgZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKF9pc19yZWZlcmVuY2VfaHRtbF9maWxlKGZpbGVzeXN0
ZW0sICcnLCAnZm9vLWV4cGVjdGVkLmh0bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKF9p
c19yZWZlcmVuY2VfaHRtbF9maWxlKGZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLW1pc21h
dGNoLnhtbCcpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoX2lzX3JlZmVyZW5jZV9odG1sX2Zp
bGUoZmlsZXN5c3RlbSwgJycsICdmb28tcmVmLnhodG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShfaXNfcmVmZXJlbmNlX2h0bWxfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1ub3RyZWYu
c3ZnJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUo
ZmlsZXN5c3RlbSwgJycsICdmb28uaHRtbCcpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKF9p
c19yZWZlcmVuY2VfaHRtbF9maWxlKGZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLnR4dCcp
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKF9pc19yZWZlcmVuY2VfaHRtbF9maWxlKGZpbGVz
eXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLnNodG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQu
cGhwJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUo
ZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQubWh0JykpCisKKyAgICBkZWYgdGVzdF9maW5k
X25vX3BhdGhzX3NwZWNpZmllZChzZWxmKToKKyAgICAgICAgZmluZGVyID0gc2VsZi5tYWtlX2Zp
bmRlcigpCisgICAgICAgIHRlc3RzID0gZmluZGVyLmZpbmRfdGVzdHNfYnlfcGF0aChbXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChsZW4odGVzdHMpLCAwKQorCisgICAgZGVmIHRlc3Rf
ZmluZF9vbmVfdGVzdChzZWxmKToKKyAgICAgICAgZmluZGVyID0gc2VsZi5tYWtlX2ZpbmRlcigp
CisgICAgICAgIHRlc3RzID0gZmluZGVyLmZpbmRfdGVzdHNfYnlfcGF0aChbJ2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlLmh0bWwnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGVzdHMp
LCAxKQorCisgICAgZGVmIHRlc3RfZmluZF9nbG9iKHNlbGYpOgorICAgICAgICBmaW5kZXIgPSBz
ZWxmLm1ha2VfZmluZGVyKCkKKyAgICAgICAgdGVzdHMgPSBmaW5kZXIuZmluZF90ZXN0c19ieV9w
YXRoKFsnZmFpbHVyZXMvZXhwZWN0ZWQvaW0qJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKHRlc3RzKSwgMikKKworICAgIGRlZiB0ZXN0X2ZpbmRfd2l0aF9za2lwcGVkX2RpcmVjdG9y
aWVzKHNlbGYpOgorICAgICAgICBmaW5kZXIgPSBzZWxmLm1ha2VfZmluZGVyKCkKKyAgICAgICAg
dGVzdHMgPSBmaW5kZXIuZmluZF90ZXN0c19ieV9wYXRoKFsndXNlcnNjcmlwdHMnXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnROb3RJbigndXNlcnNjcmlwdHMvcmVzb3VyY2VzL2lmcmFtZS5odG1sJywg
W3Rlc3QudGVzdF9wYXRoIGZvciB0ZXN0IGluIHRlc3RzXSkKKworICAgIGRlZiB0ZXN0X2ZpbmRf
d2l0aF9za2lwcGVkX2RpcmVjdG9yaWVzXzIoc2VsZik6CisgICAgICAgIGZpbmRlciA9IHNlbGYu
bWFrZV9maW5kZXIoKQorICAgICAgICB0ZXN0cyA9IGZpbmRlci5maW5kX3Rlc3RzX2J5X3BhdGgo
Wyd1c2Vyc2NyaXB0cy9yZXNvdXJjZXMnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0
cywgW10pCisKKyAgICBkZWYgdGVzdF9pc190ZXN0X2ZpbGUoc2VsZik6CisgICAgICAgIGZpbmRl
ciA9IHNlbGYubWFrZV9maW5kZXIoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZmluZGVyLl9p
c190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby5odG1sJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0s
ICcnLCAnZm9vLnNodG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3Rl
c3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLnN2ZycpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywg
J3Rlc3QtcmVmLXRlc3QuaHRtbCcpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbmRlci5f
aXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdmb28ucG5nJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVt
LCAnJywgJ2Zvby1leHBlY3RlZC5odG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlu
ZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3RlZC5z
dmcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5k
ZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLnhodCcpKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGZpbmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdm
b28tZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCcpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZp
bmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQt
bWlzbWF0Y2guc3ZnJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0
X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3RlZC1taXNtYXRjaC54aHRt
bCcpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbmRlci5faXNfdGVzdF9maWxlKGZpbmRl
ci5fZmlsZXN5c3RlbSwgJycsICdmb28tcmVmLmh0bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLW5v
dHJlZi5odG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2Zp
bGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby1ub3RyZWYueGh0JykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAn
JywgJ2Zvby1yZWYueGh0bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lz
X3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAncmVmLWZvby5odG1sJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lz
dGVtLCAnJywgJ25vdHJlZi1mb28ueGhyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlu
ZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvb193c2gucHknKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2Zp
bGVzeXN0ZW0sICcnLCAnX3dzaC5weScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbmRl
ci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdib290LnhtbCcpKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5
c3RlbSwgJycsICdyb290LnhtbCcpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZmluZGVyLl9p
c190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby1ib290LnhtbCcpKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lz
dGVtLCAnJywgJ2Zvby1yb290LnhtbCcpKQorCisgICAgZGVmIHRlc3RfaXNfdzNjX3Jlc291cmNl
X2ZpbGUoc2VsZik6CisgICAgICAgIGZpbmRlciA9IHNlbGYubWFrZV9maW5kZXIoKQorCisgICAg
ICAgIGZpbmRlci5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoZmluZGVyLl9wb3J0LmxheW91
dF90ZXN0c19kaXIoKSArICIvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5q
c29uIiwgIiIiCit7ImRpcmVjdG9yaWVzIjogWworIndlYi1wbGF0Zm9ybS10ZXN0cy9jb21tb24i
LAorIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1u
YW1lc3BhY2UtdGVzdHMiLAorIndlYi1wbGF0Zm9ybS10ZXN0cy9mb250cyIsCisid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9uYXZpZ2F0aW5nLWFjcm9z
cy1kb2N1bWVudHMvc291cmNlL3N1cHBvcnQiLAorIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvdW5sb2FkaW5nLWRvY3VtZW50cy9zdXBwb3J0IiwKKyJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVy
ZmFjZS9ub24tYXV0b21hdGVkIiwKKyJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9o
aXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2Uvbm9uLWF1dG9tYXRlZCIsCisid2ViLXBsYXRm
b3JtLXRlc3RzL2ltYWdlcyIsCisid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyIs
Cisid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzIgorXSwgImZpbGVzIjogWworIndlYi1wbGF0Zm9y
bS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5jLWJsb2NrLWRlZmVyLXNj
cmlwdHMtc3ViZnJhbWUuaHRtbCIsCisid2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXN5bmMtbm90LWhhbmctc2NyaXB0bG9hZGVyLXN1YmZyYW1lLmh0bWwi
CitdfSIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3czY19yZXNvdXJj
ZV9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgZmluZGVyLl9wb3J0LmxheW91dF90ZXN0c19kaXIo
KSArICIvaW1wb3J0ZWQvdzMiLCAicmVzb3VyY2VfZmlsZS5odG1sIikpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoZmluZGVyLl9pc193M2NfcmVzb3VyY2VfZmlsZShmaW5kZXIuX2ZpbGVzeXN0
ZW0sIGZpbmRlci5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkgKyAiL2ltcG9ydGVkL3czYyIsICJy
ZXNvdXJjZV9maWxlLmh0bWwiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lz
X3czY19yZXNvdXJjZV9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgZmluZGVyLl9wb3J0LmxheW91
dF90ZXN0c19kaXIoKSArICIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdCIsICJ4bWxodHRwcmVxdWVzdC1zeW5jLWJsb2NrLWRlZmVyLXNjcmlwdHMtc3ViZnJh
bWUuaHRtbC5odG1sIikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3czY19y
ZXNvdXJjZV9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgZmluZGVyLl9wb3J0LmxheW91dF90ZXN0
c19kaXIoKSArICIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dCIsICJ4bWxodHRwcmVxdWVzdC1zeW5jLWJsb2NrLWRlZmVyLXNjcmlwdHMtc3ViZnJhbWUuaHRt
bCIpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZmluZGVyLl9pc193M2NfcmVzb3VyY2VfZmls
ZShmaW5kZXIuX2ZpbGVzeXN0ZW0sIGZpbmRlci5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkgKyAi
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0
ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzIiwgInRlc3QuaHRtbCIpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3Rf
ZmluZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MThlNjFiMjBjMmNjNjE5OTM4ZjUyZWM2NmNiMzEwY2IwNGY5ZjA0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRl
cl91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0jIENvcHlyaWdo
dCAoYykgMjAxNSwgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL2dj
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCi0jICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0jICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
Q0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSMgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gY29sbGVjdGlvbnMg
aW1wb3J0IE9yZGVyZWREaWN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBv
cnQgTW9ja0hvc3QKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sg
aW1wb3J0IE1vY2tGaWxlU3lzdGVtCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9s
bGVycy5sYXlvdXRfdGVzdF9maW5kZXIgaW1wb3J0IExheW91dFRlc3RGaW5kZXIsIFBvcnQsIF9p
c19yZWZlcmVuY2VfaHRtbF9maWxlLCBfc3VwcG9ydGVkX3Rlc3RfZXh0ZW5zaW9ucwotZnJvbSB3
ZWJraXRweS5wb3J0LnRlc3QgaW1wb3J0IGFkZF91bml0X3Rlc3RzX3RvX21vY2tfZmlsZXN5c3Rl
bSwgVGVzdFBvcnQKLQotCi1jbGFzcyBNb2NrTGF5b3V0VGVzdEZpbmRlcihMYXlvdXRUZXN0Rmlu
ZGVyKToKLSAgICBkZWYgX3JlYWxfdGVzdHMoc2VsZiwgcGF0aHMpOgotICAgICAgICByZXR1cm4g
W3BhdGggZm9yIHBhdGggaW4gcGF0aHMgaWYgcGF0aC5lbmRzd2l0aCgnLmh0bWwnKV0KLQotCi1j
bGFzcyBMYXlvdXRUZXN0RmluZGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiBt
YWtlX2ZpbmRlcihzZWxmKToKLSAgICAgICAgaG9zdCA9IE1vY2tIb3N0KGNyZWF0ZV9zdHViX3Jl
cG9zaXRvcnlfZmlsZXM9VHJ1ZSkKLSAgICAgICAgYWRkX3VuaXRfdGVzdHNfdG9fbW9ja19maWxl
c3lzdGVtKGhvc3QuZmlsZXN5c3RlbSkKLSAgICAgICAgcG9ydCA9IFRlc3RQb3J0KGhvc3QpCi0g
ICAgICAgIHJldHVybiBMYXlvdXRUZXN0RmluZGVyKHBvcnQsIE5vbmUpCi0KLSAgICBkZWYgdGVz
dF9zdXBwb3J0ZWRfdGVzdF9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKF9zdXBwb3J0ZWRfdGVzdF9leHRlbnNpb25zICYgUG9ydC5fc3VwcG9ydGVkX3JlZmVyZW5j
ZV9leHRlbnNpb25zLCBQb3J0Ll9zdXBwb3J0ZWRfcmVmZXJlbmNlX2V4dGVuc2lvbnMpCi0KLSAg
ICBkZWYgdGVzdF9pc19yZWZlcmVuY2VfaHRtbF9maWxlKHNlbGYpOgotICAgICAgICBmaWxlc3lz
dGVtID0gTW9ja0ZpbGVTeXN0ZW0oKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoX2lzX3JlZmVy
ZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQuaHRtbCcpKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwg
JycsICdmb28tZXhwZWN0ZWQtbWlzbWF0Y2gueG1sJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShfaXNfcmVmZXJlbmNlX2h0bWxfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1yZWYueGh0bWwn
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKF9pc19yZWZlcmVuY2VfaHRtbF9maWxlKGZpbGVz
eXN0ZW0sICcnLCAnZm9vLW5vdHJlZi5zdmcnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShf
aXNfcmVmZXJlbmNlX2h0bWxfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby5odG1sJykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoX2lzX3JlZmVyZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwg
JycsICdmb28tZXhwZWN0ZWQudHh0JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoX2lzX3Jl
ZmVyZW5jZV9odG1sX2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQuc2h0bWwnKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShfaXNfcmVmZXJlbmNlX2h0bWxfZmlsZShmaWxlc3lz
dGVtLCAnJywgJ2Zvby1leHBlY3RlZC5waHAnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShf
aXNfcmVmZXJlbmNlX2h0bWxfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3RlZC5taHQn
KSkKLQotICAgIGRlZiB0ZXN0X2ZpbmRfbm9fcGF0aHNfc3BlY2lmaWVkKHNlbGYpOgotICAgICAg
ICBmaW5kZXIgPSBzZWxmLm1ha2VfZmluZGVyKCkKLSAgICAgICAgdGVzdHMgPSBmaW5kZXIuZmlu
ZF90ZXN0c19ieV9wYXRoKFtdKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGxlbih0ZXN0
cyksIDApCi0KLSAgICBkZWYgdGVzdF9maW5kX29uZV90ZXN0KHNlbGYpOgotICAgICAgICBmaW5k
ZXIgPSBzZWxmLm1ha2VfZmluZGVyKCkKLSAgICAgICAgdGVzdHMgPSBmaW5kZXIuZmluZF90ZXN0
c19ieV9wYXRoKFsnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCddKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbih0ZXN0cyksIDEpCi0KLSAgICBkZWYgdGVzdF9maW5kX2dsb2Ioc2Vs
Zik6Ci0gICAgICAgIGZpbmRlciA9IHNlbGYubWFrZV9maW5kZXIoKQotICAgICAgICB0ZXN0cyA9
IGZpbmRlci5maW5kX3Rlc3RzX2J5X3BhdGgoWydmYWlsdXJlcy9leHBlY3RlZC9pbSonXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGVzdHMpLCAyKQotCi0gICAgZGVmIHRlc3RfZmlu
ZF93aXRoX3NraXBwZWRfZGlyZWN0b3JpZXMoc2VsZik6Ci0gICAgICAgIGZpbmRlciA9IHNlbGYu
bWFrZV9maW5kZXIoKQotICAgICAgICB0ZXN0cyA9IGZpbmRlci5maW5kX3Rlc3RzX2J5X3BhdGgo
Wyd1c2Vyc2NyaXB0cyddKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKCd1c2Vyc2NyaXB0cy9y
ZXNvdXJjZXMvaWZyYW1lLmh0bWwnLCBbdGVzdC50ZXN0X3BhdGggZm9yIHRlc3QgaW4gdGVzdHNd
KQotCi0gICAgZGVmIHRlc3RfZmluZF93aXRoX3NraXBwZWRfZGlyZWN0b3JpZXNfMihzZWxmKToK
LSAgICAgICAgZmluZGVyID0gc2VsZi5tYWtlX2ZpbmRlcigpCi0gICAgICAgIHRlc3RzID0gZmlu
ZGVyLmZpbmRfdGVzdHNfYnlfcGF0aChbJ3VzZXJzY3JpcHRzL3Jlc291cmNlcyddKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRlc3RzLCBbXSkKLQotICAgIGRlZiB0ZXN0X2lzX3Rlc3RfZmls
ZShzZWxmKToKLSAgICAgICAgZmluZGVyID0gc2VsZi5tYWtlX2ZpbmRlcigpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcn
LCAnZm9vLmh0bWwnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbmRlci5faXNfdGVzdF9m
aWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdmb28uc2h0bWwnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGZpbmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdm
b28uc3ZnJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShm
aW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAndGVzdC1yZWYtdGVzdC5odG1sJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAn
JywgJ2Zvby5wbmcnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rlc3Rf
ZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLmh0bWwnKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0
ZW0sICcnLCAnZm9vLWV4cGVjdGVkLnN2ZycpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZp
bmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQu
eGh0JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmlu
ZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3RlZC1taXNtYXRjaC5odG1sJykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lz
dGVtLCAnJywgJ2Zvby1leHBlY3RlZC1taXNtYXRjaC5zdmcnKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9v
LWV4cGVjdGVkLW1pc21hdGNoLnhodG1sJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlu
ZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ2Zvby1yZWYuaHRtbCcp
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5f
ZmlsZXN5c3RlbSwgJycsICdmb28tbm90cmVmLmh0bWwnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLW5v
dHJlZi54aHQnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rlc3RfZmls
ZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLXJlZi54aHRtbCcpKQotICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGZpbmRlci5faXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycs
ICdyZWYtZm9vLmh0bWwnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rl
c3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnbm90cmVmLWZvby54aHInKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0
ZW0sICcnLCAnZm9vX3dzaC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbmRlci5f
aXNfdGVzdF9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgJycsICdfd3NoLnB5JykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVt
LCAnJywgJ2Jvb3QueG1sJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmluZGVyLl9pc190
ZXN0X2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCAnJywgJ3Jvb3QueG1sJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3Rlc3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcn
LCAnZm9vLWJvb3QueG1sJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5kZXIuX2lzX3Rl
c3RfZmlsZShmaW5kZXIuX2ZpbGVzeXN0ZW0sICcnLCAnZm9vLXJvb3QueG1sJykpCi0KLSAgICBk
ZWYgdGVzdF9pc193M2NfcmVzb3VyY2VfZmlsZShzZWxmKToKLSAgICAgICAgZmluZGVyID0gc2Vs
Zi5tYWtlX2ZpbmRlcigpCi0KLSAgICAgICAgZmluZGVyLl9maWxlc3lzdGVtLndyaXRlX3RleHRf
ZmlsZShmaW5kZXIuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpICsgIi9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24iLCAiIiIKLXsiZGlyZWN0b3JpZXMiOiBbCi0id2Vi
LXBsYXRmb3JtLXRlc3RzL2NvbW1vbiIsCi0id2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
b2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cyIsCi0id2ViLXBsYXRmb3JtLXRl
c3RzL2ZvbnRzIiwKLSJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10
aGUtd2ViL25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cy9zb3VyY2Uvc3VwcG9ydCIsCi0id2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmct
ZG9jdW1lbnRzL3N1cHBvcnQiLAotIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hp
c3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL25vbi1hdXRvbWF0ZWQiLAotIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9ub24t
YXV0b21hdGVkIiwKLSJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2VzIiwKLSJ3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzIiwKLSJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMiCi1dLCAi
ZmlsZXMiOiBbCi0id2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LXN5bmMtYmxvY2stZGVmZXItc2NyaXB0cy1zdWJmcmFtZS5odG1sIiwKLSJ3ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1ub3QtaGFuZy1zY3Jp
cHRsb2FkZXItc3ViZnJhbWUuaHRtbCIKLV19IiIiKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KGZpbmRlci5faXNfdzNjX3Jlc291cmNlX2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCBmaW5kZXIu
X3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpICsgIi9pbXBvcnRlZC93MyIsICJyZXNvdXJjZV9maWxl
Lmh0bWwiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaW5kZXIuX2lzX3czY19yZXNvdXJj
ZV9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgZmluZGVyLl9wb3J0LmxheW91dF90ZXN0c19kaXIo
KSArICIvaW1wb3J0ZWQvdzNjIiwgInJlc291cmNlX2ZpbGUuaHRtbCIpKQotICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGZpbmRlci5faXNfdzNjX3Jlc291cmNlX2ZpbGUoZmluZGVyLl9maWxlc3lz
dGVtLCBmaW5kZXIuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpICsgIi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0IiwgInhtbGh0dHByZXF1ZXN0LXN5bmMtYmxv
Y2stZGVmZXItc2NyaXB0cy1zdWJmcmFtZS5odG1sLmh0bWwiKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGZpbmRlci5faXNfdzNjX3Jlc291cmNlX2ZpbGUoZmluZGVyLl9maWxlc3lzdGVtLCBm
aW5kZXIuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpICsgIi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0IiwgInhtbGh0dHByZXF1ZXN0LXN5bmMtYmxvY2stZGVm
ZXItc2NyaXB0cy1zdWJmcmFtZS5odG1sIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5k
ZXIuX2lzX3czY19yZXNvdXJjZV9maWxlKGZpbmRlci5fZmlsZXN5c3RlbSwgZmluZGVyLl9wb3J0
LmxheW91dF90ZXN0c19kaXIoKSArICIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3BhY2UtdGVzdHMiLCAidGVzdC5o
dG1sIikpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCA4NDI0YjcyMmI3YTQ1MzFiNjk1ZTc1MDc2
MWFjNTVmMzM3Yzg1OTIyLi4xZWQyMGRjNzg5ZTk0ODczYWVlNjAyNWUyYTRiMjE4MTdiYTdkYmIz
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTUwLDcgKzUwLDcgQEAgZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgZGVmYXVsdGRpY3QsIE9yZGVyZWREaWN0CiBmcm9tIHdlYmtpdGNvcmVweS5zdHJp
bmdfdXRpbHMgaW1wb3J0IHBsdXJhbGl6ZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5pdGVyYXRp
b25fY29tcGF0aWJpbGl0eSBpbXBvcnQgaXRlcml0ZW1zLCBpdGVydmFsdWVzCi1mcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5sYXlvdXRfdGVzdF9maW5kZXIgaW1wb3J0IExh
eW91dFRlc3RGaW5kZXIKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLmxh
eW91dF90ZXN0X2ZpbmRlcl9sZWdhY3kgaW1wb3J0IExheW91dFRlc3RGaW5kZXIKIGZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLmxheW91dF90ZXN0X3J1bm5lciBpbXBvcnQg
TGF5b3V0VGVzdFJ1bm5lcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMu
dGVzdF9yZXN1bHRfd3JpdGVyIGltcG9ydCBUZXN0UmVzdWx0V3JpdGVyCiBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQganNvbl9sYXlvdXRfcmVzdWx0c19n
ZW5lcmF0b3IKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9xdWVyaWVzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJp
ZXMucHkKaW5kZXggNjFiM2ZiNGFlNGM3OGMwZWQ4MjcyN2YxZmI0YzJkOWNhOWVlNjNkZC4uYWJk
ZDNlNDQ0YjI5NTBhYjljZjdlZTNmNzJjNjQwNzFhOGQ1OTI0ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkKQEAgLTQ5LDcgKzQ5LDcgQEAg
ZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1aWxkYm90IGltcG9ydCBCdWlsZEJvdAogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LnJlZ3Jlc3Npb253aW5kb3cgaW1wb3J0IFJlZ3Jlc3Npb25XaW5k
b3cKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5jcmFzaGxvZ3MgaW1wb3J0IENyYXNoTG9n
cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIKLWZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLmxheW91dF90ZXN0X2ZpbmRlciBpbXBvcnQg
TGF5b3V0VGVzdEZpbmRlcgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMu
bGF5b3V0X3Rlc3RfZmluZGVyX2xlZ2FjeSBpbXBvcnQgTGF5b3V0VGVzdEZpbmRlcgogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0
RXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IHBsYXRmb3JtX29wdGlvbnMs
IGNvbmZpZ3VyYXRpb25fb3B0aW9ucwogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmFic3Ry
YWN0c2VxdWVuY2VkY29tbWFuZCBpbXBvcnQgQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>