<?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>124446</bug_id>
          
          <creation_ts>2013-11-15 17:13:45 -0800</creation_ts>
          <short_desc>Make results.html more sane</short_desc>
          <delta_ts>2013-11-15 17:29:55 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951297</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-11-15 17:13:45 -0800</bug_when>
    <thetext>Make results.html more sane</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951299</commentid>
    <comment_count>1</comment_count>
      <attachid>217108</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-11-15 17:16:08 -0800</bug_when>
    <thetext>Created attachment 217108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951302</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-11-15 17:29:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159374</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217108</attachid>
            <date>2013-11-15 17:16:08 -0800</date>
            <delta_ts>2013-11-15 17:17:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124446-20131115171600.patch</filename>
            <type>text/plain</type>
            <size>51751</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MzQ0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzgyZjllMDk0NTIzMThhMzMyNDY3
NzExNzg1M2RhOWZmZDE1NWI1NS4uZTBiOGJhOGNlZjBiOGE2NjRkZWM2NTA3YTFiNmFhODI4YTc4
YTZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTExLTE1ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgcmVzdWx0cy5odG1sIG1vcmUg
c2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0
NDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBGaXggdmFyaW91cyBpc3N1ZXMgd2l0aCByZXN1bHRzLmh0bWw6CisgICAgICAgICAgICAq
IG1ha2UgaXQgdXNlIHBhZ2Ugc2Nyb2xsaW5nLCBub3Qgb3ZlcmZsb3cgc2Nyb2xsaW5nCisgICAg
ICAgICAgICAqIHJlbW92ZSAtd2Via2l0LWZsZXggc3R1ZmYgdGhhdCB3YXNuJ3QgZG9pbmcgYW55
dGhpbmcKKyAgICAgICAgICAgICogcHJldHRpZnkgdGhlIGZsb2F0aW5nIG92ZXJsYXkgZm9yIGZs
YWdnZWQgdGVzdHMKKyAgICAgICAgICAgICogcHVsbCBzb21lIG1hcmt1cCBvdXQgb2YgdGhlIEpT
IGFuZCBpbnRvIHRoZSBIVE1MCisgICAgICAgICAgICAqIHJlbW92ZSB0aGUgc2VsZi10ZXN0aW5n
LCB3aGljaCBwcm92aWRlcyB2ZXJ5IGxpdHRsZSByZXdhcmQuCisKKyAgICAgICAgKiBmYXN0L2hh
cm5lc3MvcmVzb3VyY2VzL3Jlc3VsdHMtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2hhcm5lc3MvcmVzdWx0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9oYXJuZXNzL3Jl
c3VsdHMuaHRtbDoKKwogMjAxMy0xMS0xNSAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBbQ1NTIFNoYXBlc11bQ1NTIFJlZ2lvbnNdIFNpbXBsaWZ5IHNoYXBl
LWluc2lkZS1vbi1tdWx0aXBsZS1yZWdpb25zLXdpdGgtbmVnYXRpdmUtc2hhcGUtdG9wLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXNvdXJjZXMvcmVzdWx0cy10
ZXN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc291cmNlcy9yZXN1bHRzLXRlc3Qu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhYjMxOWMxMzg1YmE0ZTEwMjY1N2M0
OGIxN2YyYjgxNGIyOWVlZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc291cmNlcy9yZXN1bHRzLXRlc3Qu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw3OTQgKzAsMCBAQAotLy8gVG8gcnVuIHRoZXNlIHRlc3Rz
LCBsb2FkIGpzb25fcmVzdWx0cy5odG1sIGluIGEgYnJvd3Nlci4KLS8vIFlvdSBzaG91bGQgc2Vl
IGEgc2VyaWVzIG9mIFBBU1MgbGluZXMuCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXZhciB0ZXN0U3R5bGVzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3R5bGUnKTsKLXRlc3RTdHlsZXMuaW5uZXJUZXh0ID0gIi50ZXN0LXBhc3MgeyBj
b2xvcjogZ3JlZW47IH0gLnRlc3QtZmFpbCB7IGNvbG9yOiByZWQ7IH0iOwotZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignaGVhZCcpLmFwcGVuZENoaWxkKHRlc3RTdHlsZXMpOwotCi12YXIgZ190ZXN0
SW5kZXggPSAwOwotdmFyIGdfbG9nID0gWyJZb3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNT
IGxpbmVzLiJdOwotCi0vLyBNYWtlIGFzeW5jIGFjdHVhbGx5IGJlIHN5bmMgZm9yIHRoZSBzYWtl
IG9mIHNpbXBsZXIgdGVzdGluZy4KLWZ1bmN0aW9uIGFzeW5jKGZ1bmMsIGFyZ3MpCi17Ci0gICAg
ZnVuYy5hcHBseShudWxsLCBhcmdzKTsKLX0KLQotZnVuY3Rpb24gbW9ja1Jlc3VsdHMoKQotewot
ICAgIHJldHVybiB7Ci0gICAgICAgIHRlc3RzOiB7fSwKLSAgICAgICAgInNraXBwZWQiOiAwLAot
ICAgICAgICAibnVtX3JlZ3Jlc3Npb25zIjogMCwKLSAgICAgICAgInZlcnNpb24iOiAwLAotICAg
ICAgICAibnVtX3Bhc3NlcyI6IDAsCi0gICAgICAgICJmaXhhYmxlIjogMCwKLSAgICAgICAgIm51
bV9mbGFreSI6IDAsCi0gICAgICAgICJsYXlvdXRfdGVzdHNfZGlyIjogIi9XRUJLSVRST09UIiwK
LSAgICAgICAgInVzZXNfZXhwZWN0YXRpb25zX2ZpbGUiOiB0cnVlLAotICAgICAgICAiaGFzX3By
ZXR0eV9wYXRjaCI6IGZhbHNlLAotICAgICAgICAiaGFzX3dkaWZmIjogZmFsc2UsCi0gICAgICAg
ICJyZXZpc2lvbiI6IDEyMzQ1LAotICAgICAgICAicGl4ZWxfdGVzdHNfZW5hYmxlZCI6IHRydWUK
LSAgICB9OwotfQotCi1mdW5jdGlvbiBtb2NrRXhwZWN0YXRpb24oZXhwZWN0ZWQsIGFjdHVhbCwg
ZGlmZl9wZXJjZW50YWdlKQotewotICAgIGRpZmZfcGVyY2VudGFnZSA9ICh0eXBlb2YoZGlmZl9w
ZXJjZW50YWdlKSA9PSB1bmRlZmluZWQpID8gMCA6IGRpZmZfcGVyY2VudGFnZTsKLSAgICByZXR1
cm4gewotICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWQsCi0gICAgICAgIHRpbWVfbXM6IDEsCi0g
ICAgICAgIGFjdHVhbDogYWN0dWFsLAotICAgICAgICBpbWFnZV9kaWZmX3BlcmNlbnQ6IGRpZmZf
cGVyY2VudGFnZSwKLSAgICAgICAgaGFzX3N0ZGVycjogZmFsc2UKLSAgICB9OwotfQotCi1mdW5j
dGlvbiBsb2dQYXNzKG1zZykKLXsKLSAgICBnX2xvZy5wdXNoKCdURVNULScgKyBnX3Rlc3RJbmRl
eCArICc6IDxzcGFuIGNsYXNzPSJ0ZXN0LXBhc3MiPicgKyBtc2cgKyAnPC9zcGFuPicpCi19Ci0K
LWZ1bmN0aW9uIGxvZ0ZhaWwobXNnKQotewotICAgIGdfbG9nLnB1c2goJ1RFU1QtJyArIGdfdGVz
dEluZGV4ICsgJzogPHNwYW4gY2xhc3M9InRlc3QtZmFpbCI+JyArIG1zZyArICc8L3NwYW4+JykK
LX0KLQotZnVuY3Rpb24gYXNzZXJ0VHJ1ZShib29sKQotewotICAgIGlmIChib29sKQotICAgICAg
ICBsb2dQYXNzKCdQQVNTJyk7Ci0gICAgZWxzZQotICAgICAgICBsb2dGYWlsKCdGQUlMJyk7Ci19
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QocmVzdWx0cywgYXNzZXJ0aW9ucywgb3B0X2xvY2FsU3RvcmFn
ZVZhbHVlKQotewotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJyc7Ci0gICAgZ190ZXN0
SW5kZXgrKzsKLSAgICBnX3N0YXRlID0gdW5kZWZpbmVkOwotICAgIGxvY2FsU3RvcmFnZS5zZXRJ
dGVtKE9wdGlvbldyaXRlci5fa2V5LCBvcHRfbG9jYWxTdG9yYWdlVmFsdWUgfHwgJycpOwotCi0g
ICAgdHJ5IHsKLSAgICAgICAgQUREX1JFU1VMVFMocmVzdWx0cyk7Ci0gICAgICAgIG9yaWdpbmFs
R2VuZXJhdGVQYWdlKCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBsb2dGYWlsKCJGQUlM
OiB1bmNhdWdodCBleGNlcHRpb24gIiArIGUudG9TdHJpbmcoKSk7Ci0gICAgfQotICAgIAotICAg
IHRyeSB7Ci0gICAgICAgIGFzc2VydGlvbnMoKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IGxvZ0ZhaWwoIkZBSUw6IHVuY2F1Z2h0IGV4Y2VwdGlvbiBleGVjdXRpbmcgYXNzZXJ0aW9ucyAi
ICsgZS50b1N0cmluZygpKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHJ1bkRlZmF1bHRTaW5nbGVS
b3dUZXN0KHRlc3QsIGV4cGVjdGVkLCBhY3R1YWwsIGRpZmZfcGVyY2VudGFnZSwgaXNFeHBlY3Rl
ZCwgdGV4dFJlc3VsdHMsIGltYWdlUmVzdWx0cykKLXsKLSAgICByZXN1bHRzID0gbW9ja1Jlc3Vs
dHMoKTsKLSAgICByZXN1bHRzLnRlc3RzW3Rlc3RdID0gbW9ja0V4cGVjdGF0aW9uKGV4cGVjdGVk
LCBhY3R1YWwsIGRpZmZfcGVyY2VudGFnZSk7Ci0gICAgcnVuU2luZ2xlUm93VGVzdChyZXN1bHRz
LCBpc0V4cGVjdGVkLCB0ZXh0UmVzdWx0cywgaW1hZ2VSZXN1bHRzKTsKLX0KLQotZnVuY3Rpb24g
cnVuU2luZ2xlUm93VGVzdChyZXN1bHRzLCBpc0V4cGVjdGVkLCB0ZXh0UmVzdWx0cywgaW1hZ2VS
ZXN1bHRzKQotewotICAgIGZvciAodmFyIGtleSBpbiByZXN1bHRzLnRlc3RzKQotICAgICAgICB2
YXIgdGVzdCA9IGtleTsKLSAgICB2YXIgZXhwZWN0ZWQgPSByZXN1bHRzLnRlc3RzW3Rlc3RdLmV4
cGVjdGVkOwotICAgIHZhciBhY3R1YWwgPSByZXN1bHRzLnRlc3RzW3Rlc3RdLmFjdHVhbDsKLSAg
ICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAoaXNFeHBlY3RlZCkK
LSAgICAgICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGJvZHknKS5j
bGFzc05hbWUgPT0gJ2V4cGVjdGVkJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFzc2Vy
dFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGJvZHknKS5jbGFzc05hbWUuaW5kZXhPZign
ZXhwZWN0ZWQnKSA9PSAtMSk7Ci0KLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCd0Ym9keSB0ZDpudGgtY2hpbGQoMSknKS50ZXh0Q29udGVudCA9PSAnKycgKyB0ZXN0
ICsgJyBcdTI2OTEnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCd0Ym9keSB0ZDpudGgtY2hpbGQoMiknKS50ZXh0Q29udGVudCA9PSB0ZXh0UmVzdWx0cyk7Ci0g
ICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGJvZHkgdGQ6bnRoLWNo
aWxkKDMpJykudGV4dENvbnRlbnQgPT0gaW1hZ2VSZXN1bHRzKTsKLSAgICAgICAgYXNzZXJ0VHJ1
ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0Ym9keSB0ZDpudGgtY2hpbGQoNCknKS50ZXh0Q29u
dGVudCA9PSBhY3R1YWwpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ3Rib2R5IHRkOm50aC1jaGlsZCg1KScpLnRleHRDb250ZW50ID09IGV4cGVjdGVkKTsKLSAg
ICB9KTsKLSAgICAKLX0KLQotZnVuY3Rpb24gcnVuVGVzdHMoKQotewotICAgIHZhciByZXN1bHRz
ID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJlc3VsdHMudGVzdHNbJ2Zvbydd
ID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdQQVNTJywg
J1RFWFQnKTsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBhc3Nl
cnRUcnVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZS1yZXN1bHRzLWhlYWRlcicpLnRl
eHRDb250ZW50ID09ICcnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGV4dC1yZXN1bHRzLWhlYWRlcicpLnRleHRDb250ZW50ICE9ICcnKTsKLSAgICAgICAg
Ci0gICAgICAgIHZhciBvcHRpb25zTWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcHRp
b25zLW1lbnUnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShv
cHRpb25zTWVudSwgbnVsbClbJ29wYWNpdHknXSA9PSAwKQotICAgICAgICB0b2dnbGVPcHRpb25z
TWVudSgpOwotICAgICAgICB0b2dnbGVPcHRpb25zTWVudSgpOwotICAgICAgICAvLyBGSVhNRTog
VGVzdCB0aGUgb3BhY2l0eSBhZnRlciB0b2dnbGluZyB0aGUgbWVudS4KLSAgICAgICAgLy8gQ2Fu
J3QganVzdCBkbyBpdCBpbmxpbmUgZHVlIHRvIENTUyB0cmFuc2l0aW9ucy4KLSAgICB9KTsKLQot
ICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAgIHZhciBzdWJ0cmVlID0gcmVzdWx0cy50
ZXN0c1snZm9vJ10gPSB7fQotICAgIHN1YnRyZWVbJ2Jhci5odG1sJ10gPSBtb2NrRXhwZWN0YXRp
b24oJ1RFWFQnLCAnTUlTU0lORycpOwotICAgIHN1YnRyZWVbJ2Jhci5odG1sJ10uaXNfbWlzc2lu
Z190ZXh0ID0gdHJ1ZTsKLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddLmlzX21pc3NpbmdfYXVkaW8g
PSB0cnVlOwotICAgIHN1YnRyZWVbJ2Jhci5odG1sJ10uaXNfbWlzc2luZ19pbWFnZSA9IHRydWU7
Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZSgh
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMtdGFibGUnKSk7Ci0gICAgICAgIGFzc2Vy
dFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21pc3NpbmctdGFibGUgLnRlc3QtbGluaycp
LnRleHRDb250ZW50ID09ICdmb28vYmFyLmh0bWwnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1
bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZXN1bHQtbGluaycpWzBdLnRleHRDb250ZW50
ID09ICdhdWRpbyByZXN1bHQnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lKCdyZXN1bHQtbGluaycpWzFdLnRleHRDb250ZW50ID09ICdyZXN1bHQn
KTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdy
ZXN1bHQtbGluaycpWzJdLnRleHRDb250ZW50ID09ICdwbmcgcmVzdWx0Jyk7Ci0gICAgfSk7Ci0K
LSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJlc3VsdHMu
dGVzdHNbJ2ZvbyddID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddID0gbW9ja0V4cGVjdGF0
aW9uKCdQQVNTJywgJ1RFWFQnKTsKLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddLmhhc19zdGRlcnIg
PSB0cnVlOwotICAgIHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2Vy
dFRydWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMtdGFibGUnKSk7Ci0gICAgICAg
IGFzc2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3N0ZGVyci10YWJsZSAucmVzdWx0
LWxpbmsnKS50ZXh0Q29udGVudCA9PSAnc3RkZXJyJyk7Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRz
ID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJlc3VsdHMudGVzdHNbJ2Zvbydd
ID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywg
J1BBU1MnKTsKLSAgICBzdWJ0cmVlWydiYXIxLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignQ1JB
U0gnLCAnUEFTUycpOwotICAgIHN1YnRyZWVbJ2JhcjIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9u
KCdJTUFHRScsICdQQVNTJyk7Ci0gICAgc3VidHJlZVsnY3Jhc2guaHRtbCddID0gbW9ja0V4cGVj
dGF0aW9uKCdJTUFHRScsICdDUkFTSCcpOwotICAgIHN1YnRyZWVbJ3RpbWVvdXQuaHRtbCddID0g
bW9ja0V4cGVjdGF0aW9uKCdJTUFHRScsICdUSU1FT1VUJyk7Ci0gICAgcnVuVGVzdChyZXN1bHRz
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZSghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Jlc3VsdHMtdGFibGUnKSk7Ci0KLSAgICAgICAgdmFyIHRlc3RMaW5rcyA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJyNwYXNzZXMtdGFibGUgLnRlc3QtbGluaycpOwotICAgICAgICBh
c3NlcnRUcnVlKHRlc3RMaW5rc1swXS50ZXh0Q29udGVudCA9PSAnZm9vL2Jhci5odG1sJyk7Ci0g
ICAgICAgIGFzc2VydFRydWUodGVzdExpbmtzWzFdLnRleHRDb250ZW50ID09ICdmb28vYmFyMS5o
dG1sJyk7Ci0gICAgICAgIGFzc2VydFRydWUodGVzdExpbmtzWzJdLnRleHRDb250ZW50ID09ICdm
b28vYmFyMi5odG1sJyk7Ci0gICAgICAgIAotICAgICAgICBhc3NlcnRUcnVlKCFkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjcGFzc2VzLXRhYmxlIC5leHBhbmQtYnV0dG9uJykpOwotCi0gICAgICAg
IHZhciBleHBlY3RhdGlvblR5cGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Bhc3Nl
cy10YWJsZSB0ZDpsYXN0LW9mLXR5cGUnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShleHBlY3RhdGlv
blR5cGVzWzBdLnRleHRDb250ZW50ID09ICdURVhUJyk7Ci0gICAgICAgIGFzc2VydFRydWUoZXhw
ZWN0YXRpb25UeXBlc1sxXS50ZXh0Q29udGVudCA9PSAnQ1JBU0gnKTsKLSAgICAgICAgYXNzZXJ0
VHJ1ZShleHBlY3RhdGlvblR5cGVzWzJdLnRleHRDb250ZW50ID09ICdJTUFHRScpOwotICAgICAg
ICAKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3Jhc2gtdGVz
dHMtdGFibGUnKSk7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NyYXNoLXRlc3RzLXRhYmxlJykudGV4dENvbnRlbnQuaW5kZXhPZignY3Jhc2ggbG9nJykgIT0g
LTEpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aW1lb3V0
LXRlc3RzLXRhYmxlJykpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0aW1lb3V0LXRlc3RzLXRhYmxlJykudGV4dENvbnRlbnQuaW5kZXhPZignZXhwZWN0ZWQg
YWN0dWFsIGRpZmYnKSAhPSAtMSk7Ci0gICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBpc0V4cGFuZGVk
KGV4cGFuZExpbmspCi0gICAgewotICAgICAgICB2YXIgZW5EYXNoID0gJ1x1MjAxMyc7Ci0gICAg
ICAgIHJldHVybiBleHBhbmRMaW5rLnRleHRDb250ZW50ID09IGVuRGFzaDsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBpc0NvbGxhcHNlZChleHBhbmRMaW5rKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGV4cGFuZExpbmsudGV4dENvbnRlbnQgPT0gJysnOwotICAgIH0KLQotICAgIHJlc3VsdHMgPSBt
b2NrUmVzdWx0cygpOwotICAgIHZhciBzdWJ0cmVlID0gcmVzdWx0cy50ZXN0c1snZm9vJ10gPSB7
fQotICAgIHN1YnRyZWVbJ2Jhci5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1RFWFQnLCAnUEFT
UycpOwotICAgIHN1YnRyZWVbJ2Jhci1taXNzaW5nLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbign
VEVYVCcsICdNSVNTSU5HJyk7Ci0gICAgc3VidHJlZVsnYmFyLW1pc3NpbmcuaHRtbCddLmlzX21p
c3NpbmdfdGV4dCA9IHRydWU7Ci0gICAgc3VidHJlZVsnYmFyLXN0ZGVyci5odG1sJ10gPSBtb2Nr
RXhwZWN0YXRpb24oJ1BBU1MnLCAnVEVYVCcpOwotICAgIHN1YnRyZWVbJ2Jhci1zdGRlcnIuaHRt
bCddLmhhc19zdGRlcnIgPSB0cnVlOwotICAgIHN1YnRyZWVbJ2Jhci11bmV4cGVjdGVkLXBhc3Mu
aHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ1BBU1MnKTsKLSAgICBydW5UZXN0KHJl
c3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJ3Rib2R5IHRyJykubGVuZ3RoID09IDUpOwotICAgICAgICBleHBhbmRBbGxFeHBl
Y3RhdGlvbnMoKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCd0Ym9keSB0cicpLmxlbmd0aCA9PSA4KTsKLSAgICAgICAgdmFyIGV4cGFuZExpbmtzID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmV4cGFuZC1idXR0b24tdGV4dCcpOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGV4cGFuZExpbmtzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAg
YXNzZXJ0VHJ1ZShpc0V4cGFuZGVkKGV4cGFuZExpbmtzW2ldKSk7Ci0gICAgICAgIAotICAgICAg
ICBjb2xsYXBzZUFsbEV4cGVjdGF0aW9ucygpOwotICAgICAgICAvLyBDb2xsYXBzZWQgZXhwZWN0
YXRpb25zIHN0YXkgaW4gdGhlIGRvbSwgYnV0IGFyZSBkaXNwbGF5Om5vbmUuCi0gICAgICAgIGFz
c2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGJvZHkgdHInKS5sZW5ndGggPT0g
OCk7Ci0gICAgICAgIHZhciBleHBhbmRMaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Jy5leHBhbmQtYnV0dG9uLXRleHQnKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBh
bmRMaW5rcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIGFzc2VydFRydWUoaXNDb2xsYXBzZWQo
ZXhwYW5kTGlua3NbaV0pKTsKLSAgICAgICAgICAgIAotICAgICAgICBleHBhbmRFeHBlY3RhdGlv
bnMoZXhwYW5kTGlua3NbMV0pOwotICAgICAgICBhc3NlcnRUcnVlKGlzQ29sbGFwc2VkKGV4cGFu
ZExpbmtzWzBdKSk7Ci0gICAgICAgIGFzc2VydFRydWUoaXNFeHBhbmRlZChleHBhbmRMaW5rc1sx
XSkpOwotCi0gICAgICAgIGNvbGxhcHNlRXhwZWN0YXRpb25zKGV4cGFuZExpbmtzWzFdKTsKLSAg
ICAgICAgYXNzZXJ0VHJ1ZShleHBhbmRMaW5rc1sxXS50ZXh0Q29udGVudCA9PSAnKycpOwotICAg
IH0pOwotCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAgdmFyIHN1YnRyZWUgPSBy
ZXN1bHRzLnRlc3RzWydmb28nXSA9IHt9Ci0gICAgc3VidHJlZVsnYmFyLmh0bWwnXSA9IG1vY2tF
eHBlY3RhdGlvbignUEFTUycsICdURVhUJyk7Ci0gICAgc3VidHJlZVsnYmFyLWV4cGVjdGVkLWZh
aWwuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ1RFWFQnKTsKLSAgICBydW5UZXN0
KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJy5leHBlY3RlZCcpLmxlbmd0aCA9PSAxKTsKLSAgICAgICAgYXNzZXJ0VHJ1
ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZXhwZWN0ZWQgLnRlc3QtbGluaycpLnRleHRDb250
ZW50ID09ICdmb28vYmFyLWV4cGVjdGVkLWZhaWwuaHRtbCcpOwotCi0gICAgICAgIGFzc2VydFRy
dWUod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGJv
ZHknKVswXSwgbnVsbClbJ2Rpc3BsYXknXSA9PSAnbm9uZScpOwotCi0gICAgICAgIGV4cGFuZEFs
bEV4cGVjdGF0aW9ucygpOwotICAgICAgICBhc3NlcnRUcnVlKHZpc2libGVFeHBhbmRMaW5rcygp
Lmxlbmd0aCA9PSAxKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcucmVzdWx0cy1yb3cnKS5sZW5ndGggPT0gMSk7Ci0gICAgICAgIGFzc2VydFRydWUod2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGJvZHknKVsw
XSwgbnVsbClbJ2Rpc3BsYXknXSA9PSAnbm9uZScpOwotICAgICAgICAKLSAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3VuZXhwZWN0ZWQtcmVzdWx0cycpLmNoZWNrZWQgPSBmYWxzZTsK
LSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VuZXhwZWN0ZWQtcmVzdWx0cycpLm9u
Y2hhbmdlKCk7Ci0KLSAgICAgICAgYXNzZXJ0VHJ1ZSh2aXNpYmxlRXhwYW5kTGlua3MoKS5sZW5n
dGggPT0gMik7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
LnJlc3VsdHMtcm93JykubGVuZ3RoID09IDEpOwotICAgICAgICBhc3NlcnRUcnVlKHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Rib2R5JylbMF0sIG51
bGwpWydkaXNwbGF5J10gIT0gJ25vbmUnKTsKLSAgICAgICAgCi0gICAgICAgIGV4cGFuZEFsbEV4
cGVjdGF0aW9ucygpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoJy5yZXN1bHRzLXJvdycpLmxlbmd0aCA9PSAyKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0Ym9keScpWzBd
LCBudWxsKVsnZGlzcGxheSddICE9ICdub25lJyk7Ci0gICAgfSk7Ci0gICAgCi0gICAgcmVzdWx0
cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAgcmVzdWx0cy50ZXN0c1snb25seS1leHBlY3RlZC1mYWls
Lmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdURVhUJyk7Ci0gICAgcnVuVGVzdChy
ZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cy10YWJsZScpLnBhcmVudE5v
ZGUsIG51bGwpWydkaXNwbGF5J10gPT0gJ25vbmUnKTsKLSAgICB9KTsKLQotICAgIHJ1bkRlZmF1
bHRTaW5nbGVSb3dUZXN0KCdiYXItc2tpcC5odG1sJywgJ1RFWFQnLCAnU0tJUCcsIDAsIHRydWUs
ICcnLCAnJyk7Ci0gICAgcnVuRGVmYXVsdFNpbmdsZVJvd1Rlc3QoJ2Jhci1mbGFreS1mYWlsLmh0
bWwnLCAnUEFTUyBGQUlMJywgJ1RFWFQnLCAwLCB0cnVlLCAnZXhwZWN0ZWQgYWN0dWFsIGRpZmYg
JywgJycpOwotICAgIHJ1bkRlZmF1bHRTaW5nbGVSb3dUZXN0KCdiYXItZmxha3ktZmFpbC11bmV4
cGVjdGVkLmh0bWwnLCAnUEFTUyBURVhUJywgJ0lNQUdFJywgMSwgZmFsc2UsICcnLCAnaW1hZ2Vz
IGRpZmYgKDElKSAnKTsKLSAgICBydW5EZWZhdWx0U2luZ2xlUm93VGVzdCgnYmFyLWF1ZGlvLmh0
bWwnLCAnVEVYVCcsICdBVURJTycsIDAsIGZhbHNlLCAnZXhwZWN0ZWQgYXVkaW8gYWN0dWFsIGF1
ZGlvICcsICcnKTsKLSAgICBydW5EZWZhdWx0U2luZ2xlUm93VGVzdCgnYmFyLWltYWdlLmh0bWwn
LCAnVEVYVCcsICdJTUFHRScsIDEsIGZhbHNlLCAnJywgJ2ltYWdlcyBkaWZmICgxJSkgJyk7Ci0g
ICAgcnVuRGVmYXVsdFNpbmdsZVJvd1Rlc3QoJ2Jhci1pbWFnZS1wbHVzLXRleHQuaHRtbCcsICdU
RVhUJywgJ0lNQUdFK1RFWFQnLCAxLCBmYWxzZSwgJ2V4cGVjdGVkIGFjdHVhbCBkaWZmICcsICdp
bWFnZXMgZGlmZiAoMSUpICcpOwotCi0gICAgLy8gdGVzdCB0aGUgbWFwcGluZyBmb3IgRkFJTCBv
bnRvIG9ubHkgWydURVhUJywgJ0lNQUdFK1RFWFQnLCAnQVVESU8nXQotICAgIHJ1bkRlZmF1bHRT
aW5nbGVSb3dUZXN0KCdiYXItaW1hZ2UuaHRtbCcsICdGQUlMJywgJ0lNQUdFK1RFWFQnLCAxLCB0
cnVlLCAnZXhwZWN0ZWQgYWN0dWFsIGRpZmYgJywgJ2ltYWdlcyBkaWZmICgxJSkgJyk7Ci0gICAg
cnVuRGVmYXVsdFNpbmdsZVJvd1Rlc3QoJ2Jhci1pbWFnZS5odG1sJywgJ0ZBSUwnLCAnQVVESU8n
LCAxLCB0cnVlLCAnZXhwZWN0ZWQgYXVkaW8gYWN0dWFsIGF1ZGlvICcsICcnKTsKLSAgICBydW5E
ZWZhdWx0U2luZ2xlUm93VGVzdCgnYmFyLWltYWdlLmh0bWwnLCAnRkFJTCcsICdURVhUJywgMCwg
dHJ1ZSwgJ2V4cGVjdGVkIGFjdHVhbCBkaWZmICcsICcnKTsKLSAgICBydW5EZWZhdWx0U2luZ2xl
Um93VGVzdCgnYmFyLWltYWdlLmh0bWwnLCAnRkFJTCcsICdJTUFHRScsIDEsIGZhbHNlLCAnJywg
J2ltYWdlcyBkaWZmICgxJSkgJyk7Ci0KLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAg
ICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1BB
U1MnLCAnSU1BR0UnLCAxKTsKLSAgICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC5odG1sJ10u
cmVmdGVzdF90eXBlID0gWyc9PSddOwotICAgIHJ1blNpbmdsZVJvd1Rlc3QocmVzdWx0cywgZmFs
c2UsICcnLCAncmVmZXJlbmNlIGltYWdlcyBkaWZmICgxJSkgJyk7Ci0KLSAgICByZXN1bHRzID0g
bW9ja1Jlc3VsdHMoKTsKLSAgICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC1taXNtYXRjaC5o
dG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1BBU1MnLCAnSU1BR0UnKTsKLSAgICByZXN1bHRzLnRl
c3RzWydiYXItcmVmdGVzdC1taXNtYXRjaC5odG1sJ10ucmVmdGVzdF90eXBlID0gWychPSddOwot
ICAgIHJ1blNpbmdsZVJvd1Rlc3QocmVzdWx0cywgZmFsc2UsICcnLCAncmVmIG1pc21hdGNoIGFj
dHVhbCAnKTsKLQotICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAgIHJlc3VsdHMudGVz
dHNbJ2Jhci1yZWZ0ZXN0Lmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignSU1BR0UnLCAnUEFTUycp
OwotICAgIHJlc3VsdHMudGVzdHNbJ2Jhci1yZWZ0ZXN0Lmh0bWwnXS5yZWZ0ZXN0X3R5cGUgPSBb
Jz09J107Ci0gICAgcmVzdWx0cy5waXhlbF90ZXN0c19lbmFibGVkID0gZmFsc2U7Ci0gICAgcnVu
VGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCd0Ym9keSB0ZDpudGgtY2hpbGQoMSknKS50ZXh0Q29udGVudCA9PSAnYmFy
LXJlZnRlc3QuaHRtbCBcdTI2OTEnKTsKLSAgICB9KTsKLQotICAgIHJlc3VsdHMgPSBtb2NrUmVz
dWx0cygpOwotICAgIHJlc3VsdHMudGVzdHNbJ2Jhci1yZWZ0ZXN0LW1pc21hdGNoLmh0bWwnXSA9
IG1vY2tFeHBlY3RhdGlvbignSU1BR0UnLCAnUEFTUycpOwotICAgIHJlc3VsdHMudGVzdHNbJ2Jh
ci1yZWZ0ZXN0LW1pc21hdGNoLmh0bWwnXS5yZWZ0ZXN0X3R5cGUgPSBbJyE9J107Ci0gICAgcmVz
dWx0cy5waXhlbF90ZXN0c19lbmFibGVkID0gZmFsc2U7Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0
Ym9keSB0ZDpudGgtY2hpbGQoMSknKS50ZXh0Q29udGVudCA9PSAnYmFyLXJlZnRlc3QtbWlzbWF0
Y2guaHRtbCBcdTI2OTEnKTsKLSAgICB9KTsKLQotICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygp
OwotICAgIHZhciBzdWJ0cmVlID0gcmVzdWx0cy50ZXN0c1snZm9vJ10gPSB7fQotICAgIHN1YnRy
ZWVbJ2Jhci1mbGFreS1wYXNzLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignUEFTUyBURVhUJywg
J1BBU1MnKTsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBhc3Nl
cnRUcnVlKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cy10YWJsZScpKTsKLSAgICAg
ICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc2VzLXRhYmxlJykpOwot
ICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LmJvZHkudGV4dENvbnRlbnQuaW5kZXhPZignZm9v
L2Jhci1mbGFreS1wYXNzLmh0bWwnKSAhPSAtMSk7Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRzID0g
bW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJlc3VsdHMudGVzdHNbJ2ZvbyddID0g
e30KLSAgICBzdWJ0cmVlWydiYXItZmxha3ktZmFpbC5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24o
J1BBU1MgVEVYVCcsICdJTUFHRSBQQVNTJyk7Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZSghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dHMtdGFibGUnKSk7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ZsYWt5LXRlc3RzLXRhYmxlJykpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LmJvZHku
dGV4dENvbnRlbnQuaW5kZXhPZignYmFyLWZsYWt5LWZhaWwuaHRtbCcpICE9IC0xKTsKLSAgICB9
KTsKLQotICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAgIHZhciBzdWJ0cmVlID0gcmVz
dWx0cy50ZXN0c1snZm9vJ10gPSB7fQotICAgIHN1YnRyZWVbJ2Jhci1mbGFreS1leHBlY3RlZC5o
dG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1BBU1MgRkFJTCcsICdQQVNTIFRFWFQnKTsKLSAgICBy
dW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRUcnVlKCFkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cy10YWJsZScpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxha3ktdGVzdHMtdGFibGUnKSk7Ci0gICAgICAgIGFz
c2VydFRydWUoZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudC5pbmRleE9mKCdiYXItZmxha3ktZXhw
ZWN0ZWQuaHRtbCcpICE9IC0xKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCd0Ym9keScpLmNsYXNzTmFtZSA9PSAnZXhwZWN0ZWQnKTsKLSAgICB9KTsKLQotICAg
IHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAgIHZhciBzdWJ0cmVlID0gcmVzdWx0cy50ZXN0
c1snZm9vJ10gPSB7fQotICAgIHN1YnRyZWVbJ2Jhci1yZWFsbHktbG9uZy1wYXRoLXRoYXQtc2hv
dWxkLXByb2JhYmx5LXdyYXAtYmVjYXVzZS1vdGhlcndpc2UtdGhlLXRhYmxlLXdpbGwtYmUtdG9v
LXdpZGUuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdQQVNTJywgJ1RFWFQnKTsKLSAgICBydW5U
ZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndp
ZHRoID0gJzgwMHB4JzsKLSAgICAgICAgdmFyIGxpbmtzID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgndGJvZHkgYScpOwotICAgICAgICBhc3NlcnRUcnVlKGxpbmtzWzBdLmdldENsaWVudFJl
Y3RzKCkubGVuZ3RoID09IDIpOwotICAgICAgICBhc3NlcnRUcnVlKGxpbmtzWzFdLmdldENsaWVu
dFJlY3RzKCkubGVuZ3RoID09IDEpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRo
ID0gJyc7Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIg
c3VidHJlZSA9IHJlc3VsdHMudGVzdHNbJ2ZvbyddID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRt
bCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ1RFWFQnKTsKLSAgICBzdWJ0cmVlWydiYXIx
Lmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignQ1JBU0gnLCAnUEFTUycpOwotICAgIHN1YnRyZWVb
J2JhcjIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdJTUFHRScsICdQQVNTJyk7Ci0gICAgc3Vi
dHJlZVsnZmxha3ktZmFpbC5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1BBU1MgVEVYVCcsICdJ
TUFHRSBQQVNTJyk7Ci0gICAgcmVzdWx0cy51c2VzX2V4cGVjdGF0aW9uc19maWxlID0gZmFsc2U7
Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cy10
YWJsZScpLnBhcmVudE5vZGUsIG51bGwpWydkaXNwbGF5J10gIT0gJ25vbmUnKTsKLSAgICAgICAg
YXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjcmVzdWx0cy10YWJsZSB0Ym9k
eSB0ZCcpLmxlbmd0aCA9PSA0KTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSghZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndGJvZHkuZXhwZWN0ZWQnKSk7Ci0gICAgICAgIGFzc2VydFRydWUoIWRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwYXNzZXMtdGFibGUnKSk7Ci0gICAgICAgIGFzc2VydFRydWUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2ZsYWt5LXRlc3RzLXRhYmxlIHRib2R5IHRkJykubGVu
Z3RoID09IDUpOwotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAg
dmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9IHt9Ci0gICAgc3VidHJlZVsnYmFy
Lmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdURVhUJyk7Ci0gICAgcmVzdWx0cy5o
YXNfcHJldHR5X3BhdGNoID0gdHJ1ZTsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkg
ewotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Rib2R5IHRkOm50
aC1jaGlsZCgyKScpLnRleHRDb250ZW50LmluZGV4T2YoJ3ByZXR0eSBkaWZmJykgIT0gLTEpOwot
ICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Rib2R5IHRkOm50aC1j
aGlsZCgyKScpLnRleHRDb250ZW50LmluZGV4T2YoJ3dkaWZmJykgPT0gLTEpOwotICAgIH0pOwot
Ci0gICAgcmVzdWx0cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRz
LnRlc3RzWydmb28nXSA9IHt9Ci0gICAgc3VidHJlZVsnYmFyLmh0bWwnXSA9IG1vY2tFeHBlY3Rh
dGlvbignVEVYVCcsICdURVhUJyk7Ci0gICAgcmVzdWx0cy5oYXNfd2RpZmYgPSB0cnVlOwotICAg
IHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigndGJvZHkgdGQ6bnRoLWNoaWxkKDIpJykudGV4dENvbnRlbnQuaW5k
ZXhPZignd2RpZmYnKSAhPSAtMSk7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndGJvZHkgdGQ6bnRoLWNoaWxkKDIpJykudGV4dENvbnRlbnQuaW5kZXhPZigncHJl
dHR5IGRpZmYnKSA9PSAtMSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1
bHRzKCk7Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9IHt9Ci0gICAg
c3VidHJlZVsnYmFyLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdQQVNTJyk7Ci0g
ICAgc3VidHJlZVsnYmFyLTEuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ0NSQVNI
Jyk7Ci0gICAgc3VidHJlZVsnYmFyLTUuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywg
J0lNQUdFK1RFWFQnKTsKLSAgICBzdWJ0cmVlWydiYXItMy5odG1sJ10gPSBtb2NrRXhwZWN0YXRp
b24oJ1BBU1MnLCAnVEVYVCcpOwotICAgIHN1YnRyZWVbJ2Jhci0yLmh0bWwnXSA9IG1vY2tFeHBl
Y3RhdGlvbignUEFTUycsICdJTUFHRScpOwotICAgIHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGp1c3QgZW5zdXJlcyB3ZSBkb24ndCBnZXQgYSBK
UyBlcnJvci4KLSAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHNvcnQgaXMgY29ycmVjdCBhbmQg
dGhhdCBpbmxpbmUgZXhwYW5kZWQgZXhwZWN0YXRpb25zCi0gICAgICAgIC8vIG1vdmUgYWxvbmcg
d2l0aCB0aGUgdGVzdCB0aGV5J3JlIGF0dGFjaGVkIHRvLgotICAgICAgICBUYWJsZVNvcnRlci5z
b3J0Q29sdW1uKDApOwotICAgICAgICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDApOwotICAgICAg
ICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDEpOwotICAgICAgICBUYWJsZVNvcnRlci5zb3J0Q29s
dW1uKDEpOwotICAgICAgICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDIpOwotICAgICAgICBUYWJs
ZVNvcnRlci5zb3J0Q29sdW1uKDIpOwotICAgICAgICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDMp
OwotICAgICAgICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDMpOwotICAgICAgICBUYWJsZVNvcnRl
ci5zb3J0Q29sdW1uKDQpOwotICAgICAgICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDQpOwotICAg
ICAgICBUYWJsZVNvcnRlci5zb3J0Q29sdW1uKDApOwotICAgICAgICBsb2dQYXNzKCdQQVNTJyk7
Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJl
ZSA9IHJlc3VsdHMudGVzdHNbJ2ZvbyddID0ge30KLSAgICBzdWJ0cmVlWydiYXItNS5odG1sJ10g
PSBtb2NrRXhwZWN0YXRpb24oJ1RFWFQnLCAnSU1BR0UrVEVYVCcpOwotICAgIHJ1blRlc3QocmVz
dWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV4cGFuZEFsbEV4cGVjdGF0aW9ucygpOwotICAg
ICAgICB2YXIgcG5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW3NyYyo9ImJhci01LWV4cGVj
dGVkLnBuZyJdJyk7Ci0gICAgICAgIHZhciB4ID0gcG5nLm9mZnNldExlZnQgKyAxOwotICAgICAg
ICB2YXIgeSA9IHBuZy5vZmZzZXRUb3AgKyAxOwotICAgICAgICB2YXIgbW9ja0V2ZW50ID0gewot
ICAgICAgICAgICAgdGFyZ2V0OiBwbmcsCi0gICAgICAgICAgICBjbGllbnRYOiB4LAotICAgICAg
ICAgICAgY2xpZW50WTogeQotICAgICAgICB9Ci0gICAgICAgIFBpeGVsWm9vbWVyLnNob3dPbkRl
bGF5ID0gZmFsc2U7Ci0gICAgICAgIFBpeGVsWm9vbWVyLmhhbmRsZU1vdXNlTW92ZShtb2NrRXZl
bnQpOwotICAgICAgICBhc3NlcnRUcnVlKCEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpeGVs
LXpvb20tY29udGFpbmVyJykpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJy56b29tLWltYWdlLWNvbnRhaW5lcicpLmxlbmd0aCA9PSAzKTsKLSAgICB9KTsK
LSAgICAKLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJl
c3VsdHMudGVzdHNbJ2Z1bGxzY3JlZW4nXSA9IHt9Ci0gICAgc3VidHJlZVsnZnVsbC1zY3JlZW4t
YXBpLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdJTUFHRStURVhUJyk7Ci0gICAg
cnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gVXNlIGEgcmVnZXhwIHRv
IG1hdGNoIHdpbmRvd3MgYW5kIHVuaXgtc3R5bGUgcGF0aHMuCi0gICAgICAgIHZhciBleHBlY3Rl
ZFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ15maWxlLionICsgcmVzdWx0cy5sYXlvdXRfdGVzdHNfZGly
ICsgJy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWFwaS5odG1sJCcpOwotICAgICAgICBhc3NlcnRU
cnVlKGV4cGVjdGVkUmVnRXhwLmV4ZWMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGJvZHkgdGQ6
Zmlyc3QtY2hpbGQgYScpLmhyZWYpKTsKLSAgICB9KTsKLQotICAgIHZhciBvbGRTaG91bGRVc2VU
cmFjTGlua3MgPSBzaG91bGRVc2VUcmFjTGlua3M7Ci0gICAgc2hvdWxkVXNlVHJhY0xpbmtzID0g
ZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9OwotICAgIAotICAgIHJlc3VsdHMgPSBtb2NrUmVz
dWx0cygpOwotICAgIHZhciBzdWJ0cmVlID0gcmVzdWx0cy50ZXN0c1snZnVsbHNjcmVlbiddID0g
e30KLSAgICBzdWJ0cmVlWydmdWxsLXNjcmVlbi1hcGkuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9u
KCdURVhUJywgJ0lNQUdFK1RFWFQnKTsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkg
ewotICAgICAgICB2YXIgZXhwZWN0ZWRIcmVmID0gJ2h0dHA6Ly90cmFjLndlYmtpdC5vcmcvZXhw
b3J0LycgKyByZXN1bHRzLnJldmlzaW9uICsgJy90cnVuay9MYXlvdXRUZXN0cy9mdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLWFwaS5odG1sJzsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCd0Ym9keSB0ZDpmaXJzdC1jaGlsZCBhJykuaHJlZiA9PSBleHBlY3RlZEhyZWYp
OwotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAgdmFyIHN1YnRy
ZWUgPSByZXN1bHRzLnRlc3RzWydmdWxsc2NyZWVuJ10gPSB7fQotICAgIHN1YnRyZWVbJ2Z1bGwt
c2NyZWVuLWFwaS5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1RFWFQnLCAnSU1BR0UrVEVYVCcp
OwotICAgIHJlc3VsdHMucmV2aXNpb24gPSAnJzsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0
aW9uKCkgewotICAgICAgICB2YXIgZXhwZWN0ZWRIcmVmID0gJ2h0dHA6Ly90cmFjLndlYmtpdC5v
cmcvYnJvd3Nlci90cnVuay9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWFwaS5o
dG1sJzsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0Ym9keSB0
ZDpmaXJzdC1jaGlsZCBhJykuaHJlZiA9PSBleHBlY3RlZEhyZWYpOwotICAgIH0pOwotCi0gICAg
c2hvdWxkVXNlVHJhY0xpbmtzID0gb2xkU2hvdWxkVXNlVHJhY0xpbmtzOwotCi0gICAgcmVzdWx0
cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLmh0bWwnXSA9IG1vY2tF
eHBlY3RhdGlvbignUEFTUycsICdJTUFHRScsIDEpOwotICAgIHJ1blRlc3QocmVzdWx0cywgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGJv
ZHkgdGQ6bnRoLWNoaWxkKDMpJykudGV4dENvbnRlbnQgPT0gJ2ltYWdlcyBkaWZmICgxJSkgJyk7
Ci0KLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvZ2dsZS1pbWFnZXMnKS5jaGVj
a2VkID0gZmFsc2U7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgbmVlZCB0byBjYWxs
IHVwZGF0ZVRvZ2dsaW5nSW1hZ2VzLiBTZXR0aW5nIGNoZWNrZWQgYWJvdmUgc2hvdWxkIGNhbGwg
aXQuCi0gICAgICAgIHVwZGF0ZVRvZ2dsaW5nSW1hZ2VzKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBX
ZSBnZXQgZXh0cmEgc3BhY2VzIGluIHRoZSBET00gZXZlcnkgdGltZSB3ZSBlbmFibGUvZGlzYWJs
ZSBpbWFnZSB0b2dnbGluZy4KLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCd0Ym9keSB0ZDpudGgtY2hpbGQoMyknKS50ZXh0Q29udGVudCA9PSAnZXhwZWN0ZWQgYWN0
dWFsICBkaWZmICgxJSkgJyk7Ci0gICAgICAgIAotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndG9nZ2xlLWltYWdlcycpLmNoZWNrZWQgPSB0cnVlOwotICAgICAgICB1cGRhdGVUb2dn
bGluZ0ltYWdlcygpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
J3Rib2R5IHRkOm50aC1jaGlsZCgzKScpLnRleHRDb250ZW50ID09ICcgaW1hZ2VzICAgZGlmZiAo
MSUpICcpOwotICAgIH0pOwotICAgIAotICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAg
IHJlc3VsdHMudGVzdHNbJ3JlYWRpbmctb3B0aW9ucy1mcm9tLWxvY2Fsc3RvcmFnZS5odG1sJ10g
PSBtb2NrRXhwZWN0YXRpb24oJ0lNQUdFK1RFWFQnLCAnSU1BR0UrVEVYVCcsIDEpOwotICAgIHJ1
blRlc3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydFRydWUod2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGJvZHknKSwgbnVsbClbJ2Rp
c3BsYXknXSAhPSAnbm9uZScpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ3Rib2R5IHRkOm50aC1jaGlsZCgzKScpLnRleHRDb250ZW50ID09ICdleHBlY3RlZCBh
Y3R1YWwgIGRpZmYgKDElKSAnKTsKLSAgICB9LCAneyJ0b2dnbGUtaW1hZ2VzIjpmYWxzZSwidW5l
eHBlY3RlZC1yZXN1bHRzIjpmYWxzZX0nKTsKLQotICAgIGZ1bmN0aW9uIGVuY2xvc2luZ05vZGVX
aXRoVGFnTmFtZUhhc0NsYXNzTmFtZShub2RlLCB0YWdOYW1lLCBjbGFzc05hbWUpIHsKLSAgICAg
ICAgd2hpbGUgKG5vZGUgJiYgKCFub2RlLnRhZ05hbWUgfHwgbm9kZS5sb2NhbE5hbWUgIT0gdGFn
TmFtZSkpCi0gICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlOwotICAgICAgICBpZiAo
IW5vZGUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBub2RlLmNs
YXNzTmFtZSA9PSBjbGFzc05hbWU7Ci0gICAgfQotCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1bHRz
KCk7Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9IHt9Ci0gICAgc3Vi
dHJlZVsnZXhwZWN0ZWQtdG8tcGFzcy1idXQtY3Jhc2hlZC5odG1sJ10gPSBtb2NrRXhwZWN0YXRp
b24oJ1BBU1MnLCAnQ1JBU0gnKTsKLSAgICBzdWJ0cmVlWydleHBlY3RlZC10by1wYXNzLW9yLWNy
YXNoLWFuZC1jcmFzaGVkLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignUEFTUyBDUkFTSCcsICdD
UkFTSCcpOwotICAgIHN1YnRyZWVbJ2V4cGVjdGVkLXRvLXBhc3MtYnV0LXRpbWVvdXRlZC5odG1s
J10gPSBtb2NrRXhwZWN0YXRpb24oJ1BBU1MnLCAnQ1JBU0gnKTsKLSAgICBzdWJ0cmVlWydleHBl
Y3RlZC10by1wYXNzLW9yLXRpbWVvdXQtYW5kLXRpbWVvdXRlZC5odG1sJ10gPSBtb2NrRXhwZWN0
YXRpb24oJ1BBU1MgVElNRU9VVCcsICdUSU1FT1VUJyk7Ci0gICAgc3VidHJlZVsnZXhwZWN0ZWQt
ZmFpbC1idXQtcGFzc2VkLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignRkFJTCcsICdQQVNTJyk7
Ci0gICAgc3VidHJlZVsnZXhwZWN0ZWQtcGFzcy1vci1mYWlsLWFuZC1wYXNzZWQuaHRtbCddID0g
bW9ja0V4cGVjdGF0aW9uKCdQQVNTIEZBSUwnLCAnUEFTUycpOwotICAgIHJ1blRlc3QocmVzdWx0
cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydFRydWUoIWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHRzLXRhYmxlJykpOwotCi0gICAgICAgIHZhciB0ZXN0TGlua3MgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCcudGVzdC1saW5rJyk7Ci0gICAgICAgIGFzc2VydFRydWUodGVz
dExpbmtzWzBdLmlubmVyVGV4dCA9PSAnZm9vL2V4cGVjdGVkLXRvLXBhc3MtYnV0LWNyYXNoZWQu
aHRtbCcpOwotICAgICAgICBhc3NlcnRUcnVlKCFlbmNsb3NpbmdOb2RlV2l0aFRhZ05hbWVIYXND
bGFzc05hbWUodGVzdExpbmtzWzBdLCAndGJvZHknLCAnZXhwZWN0ZWQnKSk7Ci0gICAgICAgIGFz
c2VydFRydWUodGVzdExpbmtzWzFdLmlubmVyVGV4dCA9PSAnZm9vL2V4cGVjdGVkLXRvLXBhc3Mt
b3ItY3Jhc2gtYW5kLWNyYXNoZWQuaHRtbCcpOwotICAgICAgICBhc3NlcnRUcnVlKGVuY2xvc2lu
Z05vZGVXaXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0ZXN0TGlua3NbMV0sICd0Ym9keScsICdleHBl
Y3RlZCcpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSghZW5jbG9zaW5nTm9kZVdpdGhUYWdOYW1lSGFz
Q2xhc3NOYW1lKHRlc3RMaW5rc1swXSwgJ3RhYmxlJywgJ2V4cGVjdGVkJykpOwotCi0gICAgICAg
IGFzc2VydFRydWUodGVzdExpbmtzWzJdLmlubmVyVGV4dCA9PSAnZm9vL2V4cGVjdGVkLXRvLXBh
c3MtYnV0LXRpbWVvdXRlZC5odG1sJyk7Ci0gICAgICAgIGFzc2VydFRydWUoIWVuY2xvc2luZ05v
ZGVXaXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0ZXN0TGlua3NbMl0sICd0Ym9keScsICdleHBlY3Rl
ZCcpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh0ZXN0TGlua3NbM10uaW5uZXJUZXh0ID09ICdmb28v
ZXhwZWN0ZWQtdG8tcGFzcy1vci10aW1lb3V0LWFuZC10aW1lb3V0ZWQuaHRtbCcpOwotICAgICAg
ICBhc3NlcnRUcnVlKGVuY2xvc2luZ05vZGVXaXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0ZXN0TGlu
a3NbM10sICd0Ym9keScsICdleHBlY3RlZCcpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSghZW5jbG9z
aW5nTm9kZVdpdGhUYWdOYW1lSGFzQ2xhc3NOYW1lKHRlc3RMaW5rc1syXSwgJ3RhYmxlJywgJ2V4
cGVjdGVkJykpOwotCi0gICAgICAgIGFzc2VydFRydWUodGVzdExpbmtzWzRdLmlubmVyVGV4dCA9
PSAnZm9vL2V4cGVjdGVkLWZhaWwtYnV0LXBhc3NlZC5odG1sJyk7Ci0gICAgICAgIGFzc2VydFRy
dWUoIWVuY2xvc2luZ05vZGVXaXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0ZXN0TGlua3NbNF0sICd0
Ym9keScsICdleHBlY3RlZCcpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh0ZXN0TGlua3NbNV0uaW5u
ZXJUZXh0ID09ICdmb28vZXhwZWN0ZWQtcGFzcy1vci1mYWlsLWFuZC1wYXNzZWQuaHRtbCcpOwot
ICAgICAgICBhc3NlcnRUcnVlKGVuY2xvc2luZ05vZGVXaXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0
ZXN0TGlua3NbNV0sICd0Ym9keScsICdleHBlY3RlZCcpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSgh
ZW5jbG9zaW5nTm9kZVdpdGhUYWdOYW1lSGFzQ2xhc3NOYW1lKHRlc3RMaW5rc1s0XSwgJ3RhYmxl
JywgJ2V4cGVjdGVkJykpOwotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1bHRzKCk7
Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9IHt9Ci0gICAgc3VidHJl
ZVsnZXhwZWN0ZWQtdG8tcGFzcy1vci1jcmFzaC1hbmQtY3Jhc2hlZC5odG1sJ10gPSBtb2NrRXhw
ZWN0YXRpb24oJ1BBU1MgQ1JBU0gnLCAnQ1JBU0gnKTsKLSAgICBzdWJ0cmVlWydleHBlY3RlZC10
by1wYXNzLW9yLXRpbWVvdXQtYW5kLXRpbWVvdXRlZC5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24o
J1BBU1MgVElNRU9VVCcsICdUSU1FT1VUJyk7Ci0gICAgc3VidHJlZVsnZXhwZWN0ZWQtcGFzcy1v
ci1mYWlsLWFuZC1wYXNzZWQuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdQQVNTIEZBSUwnLCAn
UEFTUycpOwotICAgIHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2Vy
dFRydWUoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzLXRhYmxlJykpOwotCi0gICAg
ICAgIHZhciB0ZXN0TGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGVzdC1saW5r
Jyk7Ci0gICAgICAgIGFzc2VydFRydWUodGVzdExpbmtzWzBdLmlubmVyVGV4dCA9PSAnZm9vL2V4
cGVjdGVkLXRvLXBhc3Mtb3ItY3Jhc2gtYW5kLWNyYXNoZWQuaHRtbCcpOwotICAgICAgICBhc3Nl
cnRUcnVlKGVuY2xvc2luZ05vZGVXaXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0ZXN0TGlua3NbMF0s
ICd0Ym9keScsICdleHBlY3RlZCcpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShlbmNsb3NpbmdOb2Rl
V2l0aFRhZ05hbWVIYXNDbGFzc05hbWUodGVzdExpbmtzWzBdLCAnZGl2JywgJ2V4cGVjdGVkJykp
OwotCi0gICAgICAgIGFzc2VydFRydWUodGVzdExpbmtzWzFdLmlubmVyVGV4dCA9PSAnZm9vL2V4
cGVjdGVkLXRvLXBhc3Mtb3ItdGltZW91dC1hbmQtdGltZW91dGVkLmh0bWwnKTsKLSAgICAgICAg
YXNzZXJ0VHJ1ZShlbmNsb3NpbmdOb2RlV2l0aFRhZ05hbWVIYXNDbGFzc05hbWUodGVzdExpbmtz
WzFdLCAndGJvZHknLCAnZXhwZWN0ZWQnKSk7Ci0gICAgICAgIGFzc2VydFRydWUoZW5jbG9zaW5n
Tm9kZVdpdGhUYWdOYW1lSGFzQ2xhc3NOYW1lKHRlc3RMaW5rc1sxXSwgJ2RpdicsICdleHBlY3Rl
ZCcpKTsKLQotICAgICAgICBhc3NlcnRUcnVlKHRlc3RMaW5rc1syXS5pbm5lclRleHQgPT0gJ2Zv
by9leHBlY3RlZC1wYXNzLW9yLWZhaWwtYW5kLXBhc3NlZC5odG1sJyk7Ci0gICAgICAgIGFzc2Vy
dFRydWUoZW5jbG9zaW5nTm9kZVdpdGhUYWdOYW1lSGFzQ2xhc3NOYW1lKHRlc3RMaW5rc1syXSwg
J3Rib2R5JywgJ2V4cGVjdGVkJykpOwotICAgICAgICBhc3NlcnRUcnVlKGVuY2xvc2luZ05vZGVX
aXRoVGFnTmFtZUhhc0NsYXNzTmFtZSh0ZXN0TGlua3NbMl0sICdkaXYnLCAnZXhwZWN0ZWQnKSk7
Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJl
ZSA9IHJlc3VsdHMudGVzdHNbJ2ZvbyddID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddID0g
bW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ1BBU1MnKTsKLSAgICBzdWJ0cmVlWydjcmFzaC5odG1s
J10gPSBtb2NrRXhwZWN0YXRpb24oJ0lNQUdFJywgJ0NSQVNIJyk7Ci0gICAgc3VidHJlZVsnZmxh
a3ktZmFpbC5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1BBU1MgVEVYVCcsICdJTUFHRSBQQVNT
Jyk7Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1
ZSghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMtdGFibGUnKSk7Ci0KLSAgICAgICAg
dmFyIHJlc3VsdFRleHQgPSBkb2N1bWVudC5ib2R5LnRleHRDb250ZW50OwotICAgICAgICBhc3Nl
cnRUcnVlKHJlc3VsdFRleHQuaW5kZXhPZignY3Jhc2guaHRtbCcpICE9IC0xKTsKLSAgICAgICAg
YXNzZXJ0VHJ1ZShyZXN1bHRUZXh0LmluZGV4T2YoJ2ZsYWt5LWZhaWwuaHRtbCcpICE9IC0xKTsK
LSAgICAgICAgYXNzZXJ0VHJ1ZShyZXN1bHRUZXh0LmluZGV4T2YoJ2NyYXNoLmh0bWwnKSA8IHJl
c3VsdFRleHQuaW5kZXhPZignZmxha3ktZmFpbC5odG1sJykpOwotICAgIH0pOwotCi0gICAgcmVz
dWx0cyA9IG1vY2tSZXN1bHRzKCk7Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydm
b28nXSA9IHt9Ci0gICAgc3VidHJlZVsnZXhwZWN0ZWQtbWlzc2luZy5odG1sJ10gPSBtb2NrRXhw
ZWN0YXRpb24oJ01JU1NJTkcnLCAnTUlTU0lORycpOwotICAgIHN1YnRyZWVbJ2V4cGVjdGVkLW1p
c3NpbmcuaHRtbCddLmlzX21pc3NpbmdfdGV4dCA9IHRydWU7Ci0gICAgc3VidHJlZVsnZXhwZWN0
ZWQtbWlzc2luZy5odG1sJ10uaXNfbWlzc2luZ19pbWFnZSA9IHRydWU7Ci0gICAgc3VidHJlZVsn
dW5leHBlY3RlZC1taXNzaW5nLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignUEFTUycsICdNSVNT
SU5HJyk7Ci0gICAgc3VidHJlZVsndW5leHBlY3RlZC1taXNzaW5nLmh0bWwnXS5pc19taXNzaW5n
X3RleHQgPSB0cnVlOwotICAgIHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IGFzc2VydFRydWUoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzLXRhYmxlJykpOwot
ICAgICAgICBhc3NlcnRUcnVlKHZpc2libGVFeHBhbmRMaW5rcygpLmxlbmd0aCA9PSAxKTsKLSAg
ICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWlzc2luZy10YWJsZSB0
Ym9keS5leHBlY3RlZCAudGVzdC1saW5rJykudGV4dENvbnRlbnQgPT0gJ2Zvby9leHBlY3RlZC1t
aXNzaW5nLmh0bWwnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcjbWlzc2luZy10YWJsZSB0Ym9keS5leHBlY3RlZCcpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
J3Jlc3VsdC1saW5rJylbMF0udGV4dENvbnRlbnQgPT0gJ3Jlc3VsdCcpOwotICAgICAgICBhc3Nl
cnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtaXNzaW5nLXRhYmxlIHRib2R5LmV4cGVj
dGVkJykuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVzdWx0LWxpbmsnKVsxXS50ZXh0Q29udGVu
dCA9PSAncG5nIHJlc3VsdCcpOwotICAgICAgICBhc3NlcnRUcnVlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJyNtaXNzaW5nLXRhYmxlIHRib2R5Om5vdCguZXhwZWN0ZWQpIC50ZXN0LWxpbmsnKS50
ZXh0Q29udGVudCA9PSAnZm9vL3VuZXhwZWN0ZWQtbWlzc2luZy5odG1sJyk7Ci0gICAgICAgIGFz
c2VydFRydWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21pc3NpbmctdGFibGUgdGJvZHk6bm90
KC5leHBlY3RlZCkgLnJlc3VsdC1saW5rJykudGV4dENvbnRlbnQgPT0gJ3Jlc3VsdCcpOwotCi0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmV4cGVjdGVkLXJlc3VsdHMnKS5jaGVj
a2VkID0gZmFsc2U7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmV4cGVjdGVk
LXJlc3VsdHMnKS5vbmNoYW5nZSgpOwotICAgICAgICBleHBhbmRBbGxFeHBlY3RhdGlvbnMoKTsK
LSAgICAgICAgYXNzZXJ0VHJ1ZSh2aXNpYmxlRXhwYW5kTGlua3MoKS5sZW5ndGggPT0gMik7Ci0g
ICAgfSk7Ci0gICAgCi0KLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3Vi
dHJlZSA9IHJlc3VsdHMudGVzdHNbJ2ZvbyddID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRtbCdd
ID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ0ZBSUwnKTsKLSAgICBzdWJ0cmVlWydiYXIxLmh0
bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdGQUlMJyk7Ci0gICAgc3VidHJlZVsnYmFy
Mi5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1RFWFQnLCAnRkFJTCcpOwotCi0gICAgcnVuVGVz
dChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
ewotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignaycpOyAvLyBwcmV2aW91cwotICAg
ICAgICAgICAgdmFyIHRlc3RSb3dzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Jlc3Vs
dHMtdGFibGUgdGJvZHknKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoIXRlc3RSb3dzWzBdLmNs
YXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoIXRl
c3RSb3dzWzFdLmNsYXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsKLSAgICAgICAgICAgIGFz
c2VydFRydWUodGVzdFJvd3NbMl0uY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpOwotICAg
ICAgICB9Ci0gICAgfSk7Ci0KLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAg
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCdqJyk7IC8vIG5leHQKLSAgICAgICAgICAgIHZhciB0ZXN0Um93cyA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJyNyZXN1bHRzLXRhYmxlIHRib2R5Jyk7Ci0gICAgICAgICAgICBh
c3NlcnRUcnVlKHRlc3RSb3dzWzBdLmNsYXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsKLSAg
ICAgICAgICAgIGFzc2VydFRydWUoIXRlc3RSb3dzWzFdLmNsYXNzTGlzdC5jb250YWlucygnY3Vy
cmVudCcpKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoIXRlc3RSb3dzWzJdLmNsYXNzTGlzdC5j
b250YWlucygnY3VycmVudCcpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9
IG1vY2tSZXN1bHRzKCk7Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9
IHt9Ci0gICAgc3VidHJlZVsnYmFyLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdG
QUlMJyk7Ci0gICAgc3VidHJlZVsnYmFyMS5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1RFWFQn
LCAnRkFJTCcpOwotICAgIHN1YnRyZWVbJ2JhcjIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdU
RVhUJywgJ0ZBSUwnKTsKLSAgICBzdWJ0cmVlWydiYXIzLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlv
bignVEVYVCcsICdQQVNTJyk7Ci0gICAgc3VidHJlZVsnYmFyNC5odG1sJ10gPSBtb2NrRXhwZWN0
YXRpb24oJ0lNQUdFJywgJ1BBU1MnKTsKLQotICAgIHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMt
dGFibGUnKSk7Ci0gICAgICAgIGFzc2VydFRydWUodmlzaWJsZUV4cGFuZExpbmtzKCkubGVuZ3Ro
ID09IDMpOwotICAgICAgICAKLSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignaScsIFsibWV0YUtleSJdKTsKLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2knLCBbInNoaWZ0S2V5Il0pOwotICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bignaScsIFsiY3RybEtleSJdKTsKLSAgICAgICAgICAgIHZhciB0
ZXN0Um93cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Rib2R5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnRUcnVlKCF0ZXN0Um93c1swXS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7
Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1sxXS5jbGFzc0xpc3QuY29udGFpbnMo
J2N1cnJlbnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1syXS5jbGFzc0xp
c3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0KLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oJ2knKTsgLy8gZmlyc3QKLSAgICAgICAgICAgIGFzc2VydFRydWUodGVzdFJvd3NbMF0uY2xh
c3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpOwotICAgICAgICAgICAgYXNzZXJ0VHJ1ZSghdGVz
dFJvd3NbMV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpOwotICAgICAgICAgICAgYXNz
ZXJ0VHJ1ZSghdGVzdFJvd3NbMl0uY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpOwotCi0g
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCdqJywgWyJtZXRhS2V5Il0pOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignaicsIFsic2hpZnRLZXkiXSk7Ci0gICAgICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCdqJywgWyJjdHJsS2V5Il0pOwotICAgICAgICAgICAgYXNz
ZXJ0VHJ1ZSh0ZXN0Um93c1swXS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0gICAg
ICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1sxXS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJl
bnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1syXS5jbGFzc0xpc3QuY29u
dGFpbnMoJ2N1cnJlbnQnKSk7Ci0KLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2on
KTsgLy8gbmV4dAotICAgICAgICAgICAgYXNzZXJ0VHJ1ZSghdGVzdFJvd3NbMF0uY2xhc3NMaXN0
LmNvbnRhaW5zKCdjdXJyZW50JykpOwotICAgICAgICAgICAgYXNzZXJ0VHJ1ZSh0ZXN0Um93c1sx
XS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVl
KCF0ZXN0Um93c1syXS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0KLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2snLCBbIm1ldGFLZXkiXSk7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCdrJywgWyJzaGlmdEtleSJdKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oJ2snLCBbImN0cmxLZXkiXSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVl
KCF0ZXN0Um93c1swXS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0gICAgICAgICAg
ICBhc3NlcnRUcnVlKHRlc3RSb3dzWzFdLmNsYXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsK
LSAgICAgICAgICAgIGFzc2VydFRydWUoIXRlc3RSb3dzWzJdLmNsYXNzTGlzdC5jb250YWlucygn
Y3VycmVudCcpKTsKLQotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignaycpOyAvLyBw
cmV2aW91cwotICAgICAgICAgICAgYXNzZXJ0VHJ1ZSh0ZXN0Um93c1swXS5jbGFzc0xpc3QuY29u
dGFpbnMoJ2N1cnJlbnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1sxXS5j
bGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0
ZXN0Um93c1syXS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0KLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oJ2wnLCBbIm1ldGFLZXkiXSk7Ci0gICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCdsJywgWyJzaGlmdEtleSJdKTsKLSAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oJ2wnLCBbImN0cmxLZXkiXSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKHRl
c3RSb3dzWzBdLmNsYXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsKLSAgICAgICAgICAgIGFz
c2VydFRydWUoIXRlc3RSb3dzWzFdLmNsYXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsKLSAg
ICAgICAgICAgIGFzc2VydFRydWUoIXRlc3RSb3dzWzJdLmNsYXNzTGlzdC5jb250YWlucygnY3Vy
cmVudCcpKTsKLQotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignbCcpOyAvLyBsYXN0
Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1swXS5jbGFzc0xpc3QuY29udGFpbnMo
J2N1cnJlbnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCF0ZXN0Um93c1sxXS5jbGFzc0xp
c3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKHRlc3RSb3dz
WzRdLmNsYXNzTGlzdC5jb250YWlucygnY3VycmVudCcpKTsKLQotICAgICAgICAgICAgdmFyIGZs
YWdnZWRUZXN0c1RleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxhZ2dlZC10ZXN0
cycpOwotCi0gICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCdmJyk7IC8vIGZsYWcKLSAg
ICAgICAgICAgIGFzc2VydFRydWUoZmxhZ2dlZFRlc3RzVGV4dGJveC5pbm5lclRleHQgPT0gJ2Zv
by9iYXI0Lmh0bWwnKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2YnKTsgLy8g
dW5mbGFnCi0KLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2knKTsgLy8gZmlyc3QK
LQotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignZScsIFsibWV0YUtleSJdKTsKLSAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2UnLCBbInNoaWZ0S2V5Il0pOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignZScsIFsiY3RybEtleSJdKTsKLSAgICAgICAgICAg
IHZhciBleHBhbmRMaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5leHBhbmQtYnV0
dG9uLXRleHQnKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoIWlzRXhwYW5kZWQoZXhwYW5kTGlu
a3NbMF0pKTsKLQotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignZScpOyAvLyBleHBh
bmQKLSAgICAgICAgICAgIGFzc2VydFRydWUoaXNFeHBhbmRlZChleHBhbmRMaW5rc1swXSkpOwot
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCdjJywgWyJtZXRhS2V5Il0pOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignYycsIFsic2hpZnRLZXkiXSk7Ci0gICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCdjJywgWyJjdHJsS2V5Il0pOwotICAgICAgICAgICAg
YXNzZXJ0VHJ1ZShpc0V4cGFuZGVkKGV4cGFuZExpbmtzWzBdKSk7Ci0KLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmtleURvd24oJ2MnKTsgLy8gY29sbGFwc2UKLSAgICAgICAgICAgIGFzc2VydFRy
dWUoaXNDb2xsYXBzZWQoZXhwYW5kTGlua3NbMF0pKTsKLQotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIua2V5RG93bignZicsIFsibWV0YUtleSJdKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oJ2YnLCBbInNoaWZ0S2V5Il0pOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bignZicsIFsiY3RybEtleSJdKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoZmxhZ2dlZFRlc3Rz
VGV4dGJveC5pbm5lclRleHQgPT0gJycpOwotCi0gICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCdmJyk7IC8vIGZsYWcKLSAgICAgICAgICAgIGFzc2VydFRydWUoZmxhZ2dlZFRlc3RzVGV4
dGJveC5pbm5lclRleHQgPT0gJ2Zvby9iYXIuaHRtbCcpOwotCi0gICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCdqJyk7IC8vIG5leHQKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oJ2YnKTsgLy8gZmxhZwotICAgICAgICAgICAgYXNzZXJ0VHJ1ZShmbGFnZ2VkVGVzdHNUZXh0
Ym94LmlubmVyVGV4dCA9PSAnZm9vL2Jhci5odG1sXG5mb28vYmFyMS5odG1sJyk7Ci0KLSAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2UtbmV3bGluZXMnKS5jaGVja2VkID0g
ZmFsc2U7Ci0gICAgICAgICAgICBUZXN0TmF2aWdhdG9yLnVwZGF0ZUZsYWdnZWRUZXN0cygpOwot
ICAgICAgICAgICAgYXNzZXJ0VHJ1ZShmbGFnZ2VkVGVzdHNUZXh0Ym94LmlubmVyVGV4dCA9PSAn
Zm9vL2Jhci5odG1sIGZvby9iYXIxLmh0bWwnKTsKLQotICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bignZicpOyAvLyB1bmZsYWcKLSAgICAgICAgICAgIGFzc2VydFRydWUoZmxhZ2dlZFRl
c3RzVGV4dGJveC5pbm5lclRleHQgPT0gJ2Zvby9iYXIuaHRtbCcpOwotCi0gICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCdrJyk7IC8vIHByZXZpb3VzCi0gICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCdmJyk7IC8vIGZsYWcKLSAgICAgICAgICAgIGFzc2VydFRydWUoZmxhZ2dl
ZFRlc3RzVGV4dGJveC5pbm5lclRleHQgPT0gJycpOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAg
ICByZXN1bHRzID0gbW9ja1Jlc3VsdHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJlc3VsdHMudGVz
dHNbJ2ZvbyddID0ge30KLSAgICBzdWJ0cmVlWydiYXIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9u
KCdURVhUJywgJ1BBU1MnKTsKLSAgICBzdWJ0cmVlWydiYXItMS5odG1sJ10gPSBtb2NrRXhwZWN0
YXRpb24oJ1RFWFQnLCAnQ1JBU0gnKTsKLSAgICBzdWJ0cmVlWydiYXItMi5odG1sJ10gPSBtb2Nr
RXhwZWN0YXRpb24oJ1BBU1MnLCAnSU1BR0UnKTsKLSAgICBzdWJ0cmVlWydiYXItMy5odG1sJ10g
PSBtb2NrRXhwZWN0YXRpb24oJ1BBU1MnLCAnVEVYVCcpOwotICAgIHN1YnRyZWVbJ2Jhci00Lmh0
bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignVEVYVCcsICdURVhUJyk7Ci0gICAgc3VidHJlZVsnYmFy
LTUuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ0lNQUdFK1RFWFQnKTsKLSAgICBz
dWJ0cmVlWydiYXItc3RkZXJyLWV4cGVjdGVkLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignSU1B
R0UnLCAnSU1BR0UnKTsKLSAgICBzdWJ0cmVlWydiYXItc3RkZXJyLWV4cGVjdGVkLmh0bWwnXS5o
YXNfc3RkZXJyID0gdHJ1ZTsKLSAgICBzdWJ0cmVlWydiYXItZXhwZWN0ZWQtdGltZW91dC5odG1s
J10gPSBtb2NrRXhwZWN0YXRpb24oJ1RJTUVPVVQnLCAnVElNRU9VVCcpOwotICAgIHN1YnRyZWVb
J2Jhci1leHBlY3RlZC1jcmFzaC5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ0NSQVNIJywgJ0NS
QVNIJyk7Ci0gICAgc3VidHJlZVsnYmFyLW1pc3NpbmcuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9u
KCdURVhUJywgJ01JU1NJTkcnKTsKLSAgICBzdWJ0cmVlWydiYXItbWlzc2luZy5odG1sJ10uaXNf
bWlzc2luZ190ZXh0ID0gdHJ1ZTsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgdGl0bGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gxJyk7
Ci0gICAgICAgIGFzc2VydFRydWUodGl0bGVzWzBdLnRleHRDb250ZW50ID09ICdUZXN0cyB0aGF0
IGNyYXNoZWQgKDEpOiBmbGFnIGFsbCcpOwotICAgICAgICBhc3NlcnRUcnVlKHRpdGxlc1sxXS50
ZXh0Q29udGVudCA9PSAnVGVzdHMgdGhhdCBmYWlsZWQgdGV4dC9waXhlbC9hdWRpbyBkaWZmICgz
KTogZmxhZyBhbGwnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh0aXRsZXNbMl0udGV4dENvbnRlbnQg
PT0gJ1Rlc3RzIHRoYXQgaGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgKHByb2JhYmx5IG5ldykgKDEp
OiBmbGFnIGFsbCcpOwotICAgICAgICBhc3NlcnRUcnVlKHRpdGxlc1szXS50ZXh0Q29udGVudCA9
PSAnVGVzdHMgdGhhdCB0aW1lZCBvdXQgKDApOiBmbGFnIGFsbCcpOwotICAgICAgICBhc3NlcnRU
cnVlKHRpdGxlc1s0XS50ZXh0Q29udGVudCA9PSAnVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1
dCAoMSk6IGZsYWcgYWxsJyk7Ci0gICAgICAgIGFzc2VydFRydWUodGl0bGVzWzVdLnRleHRDb250
ZW50ID09ICdUZXN0cyBleHBlY3RlZCB0byBmYWlsIGJ1dCBwYXNzZWQgKDEpOiBmbGFnIGFsbCcp
OwotCi0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmV4cGVjdGVkLXJlc3VsdHMn
KS5jaGVja2VkID0gZmFsc2U7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmV4
cGVjdGVkLXJlc3VsdHMnKS5vbmNoYW5nZSgpOwotCi0gICAgICAgIGFzc2VydFRydWUodGl0bGVz
WzBdLnRleHRDb250ZW50ID09ICdUZXN0cyB0aGF0IGNyYXNoZWQgKDIpOiBmbGFnIGFsbCcpOwot
ICAgICAgICBhc3NlcnRUcnVlKHRpdGxlc1sxXS50ZXh0Q29udGVudCA9PSAnVGVzdHMgdGhhdCBm
YWlsZWQgdGV4dC9waXhlbC9hdWRpbyBkaWZmICg1KTogZmxhZyBhbGwnKTsKLSAgICAgICAgYXNz
ZXJ0VHJ1ZSh0aXRsZXNbMl0udGV4dENvbnRlbnQgPT0gJ1Rlc3RzIHRoYXQgaGFkIG5vIGV4cGVj
dGVkIHJlc3VsdHMgKHByb2JhYmx5IG5ldykgKDEpOiBmbGFnIGFsbCcpOwotICAgICAgICBhc3Nl
cnRUcnVlKHRpdGxlc1szXS50ZXh0Q29udGVudCA9PSAnVGVzdHMgdGhhdCB0aW1lZCBvdXQgKDEp
OiBmbGFnIGFsbCcpOwotICAgICAgICBhc3NlcnRUcnVlKHRpdGxlc1s0XS50ZXh0Q29udGVudCA9
PSAnVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1dCAoMSk6IGZsYWcgYWxsJyk7Ci0gICAgICAg
IGFzc2VydFRydWUodGl0bGVzWzVdLnRleHRDb250ZW50ID09ICdUZXN0cyBleHBlY3RlZCB0byBm
YWlsIGJ1dCBwYXNzZWQgKDEpOiBmbGFnIGFsbCcpOwotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9
IG1vY2tSZXN1bHRzKCk7Ci0gICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9
IHt9Ci0gICAgc3VidHJlZVsnYmFyLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignJywgJ1BBU1Mg
VEVYVCcpOwotICAgIHN1YnRyZWVbJ2Jhci0xLmh0bWwnXSA9IG1vY2tFeHBlY3RhdGlvbignJywg
J1RFWFQgSU1BR0UnKTsKLSAgICBzdWJ0cmVlWydiYXItMi5odG1sJ10gPSBtb2NrRXhwZWN0YXRp
b24oJ0lNQUdFIFRFWFQnLCAnVEVYVCBJTUFHRScpOwotICAgIHN1YnRyZWVbJ2Jhci0zLmh0bWwn
XSA9IG1vY2tFeHBlY3RhdGlvbignUEFTUyBURVhUJywgJ1RFWFQgUEFTUycpOwotICAgIHJ1blRl
c3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB0aXRsZXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnaDEnKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh0aXRsZXNbMF0u
dGV4dENvbnRlbnQgPT0gJ1Rlc3RzIHRoYXQgZmFpbGVkIHRleHQvcGl4ZWwvYXVkaW8gZGlmZiAo
MSk6IGZsYWcgYWxsJyk7Ci0gICAgICAgIGFzc2VydFRydWUodGl0bGVzWzFdLnRleHRDb250ZW50
ID09J0ZsYWt5IHRlc3RzIChmYWlsZWQgdGhlIGZpcnN0IHJ1biBhbmQgcGFzc2VkIG9uIHJldHJ5
KSAoMSk6IGZsYWcgYWxsJyk7Ci0KLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcjcmVzdWx0cy10YWJsZSB0Ym9keScpLmxlbmd0aCA9PSAyKTsKLSAgICAgICAg
YXNzZXJ0VHJ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjZmxha3ktdGVzdHMtdGFibGUg
dGJvZHknKS5sZW5ndGggPT0gMik7Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRzID0gbW9ja1Jlc3Vs
dHMoKTsKLSAgICB2YXIgc3VidHJlZSA9IHJlc3VsdHMudGVzdHNbJ2ZvbyddID0ge30KLSAgICBz
dWJ0cmVlWydiYXIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ0lNQUdFJyk7Ci0g
ICAgc3VidHJlZVsnYmFyMS5odG1sJ10gPSBtb2NrRXhwZWN0YXRpb24oJ1RFWFQnLCAnVEVYVCcp
OwotICAgIHN1YnRyZWVbJ2JhcjIuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdURVhUJywgJ1RF
WFQnKTsKLSAgICBydW5UZXN0KHJlc3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgZmxh
Z2dlZFRlc3RzVGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbGFnZ2VkLXRlc3Rz
Jyk7Ci0KLSAgICAgICAgZmxhZ0FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZmxhZy1hbGwn
KSk7Ci0gICAgICAgIGFzc2VydFRydWUoZmxhZ2dlZFRlc3RzVGV4dGJveC5pbm5lclRleHQgPT0g
J2Zvby9iYXIuaHRtbCcpOwotCi0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmV4
cGVjdGVkLXJlc3VsdHMnKS5jaGVja2VkID0gZmFsc2U7Ci0gICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd1bmV4cGVjdGVkLXJlc3VsdHMnKS5vbmNoYW5nZSgpOwotCi0gICAgICAgIGZs
YWdBbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZsYWctYWxsJykpOwotICAgICAgICBhc3Nl
cnRUcnVlKGZsYWdnZWRUZXN0c1RleHRib3guaW5uZXJUZXh0ID09ICdmb28vYmFyLmh0bWxcbmZv
by9iYXIxLmh0bWxcbmZvby9iYXIyLmh0bWwnKTsKLQotICAgICAgICB1bmZsYWcoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignLmZsYWcnKSk7Ci0gICAgICAgIGFzc2VydFRydWUoZmxhZ2dlZFRlc3Rz
VGV4dGJveC5pbm5lclRleHQgPT0gJ2Zvby9iYXIxLmh0bWxcbmZvby9iYXIyLmh0bWwnKTsKLSAg
ICB9KTsKLQotICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAgIHJlc3VsdHMudGVzdHNb
J2Zvby9iYXItaW1hZ2UuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdQQVNTJywgJ1RFWFQgSU1B
R0UrVEVYVCcpOwotICAgIHJlc3VsdHMucGl4ZWxfdGVzdHNfZW5hYmxlZCA9IGZhbHNlOwotICAg
IHJ1blRlc3QocmVzdWx0cywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydFRydWUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigndGJvZHkgdGQ6bnRoLWNoaWxkKDMpIGEnKS5nZXRBdHRyaWJ1dGUo
J2hyZWYnKSA9PSAncmV0cmllcy9mb28vYmFyLWltYWdlLWRpZmZzLmh0bWwnKTsKLSAgICB9KTsK
LQotICAgIHJlc3VsdHMgPSBtb2NrUmVzdWx0cygpOwotICAgIHJlc3VsdHMudGVzdHNbJ2Zvby9i
YXItaW1hZ2UuaHRtbCddID0gbW9ja0V4cGVjdGF0aW9uKCdQQVNTJywgJ1RFWFQgSU1BR0UnKTsK
LSAgICByZXN1bHRzLnBpeGVsX3Rlc3RzX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBydW5UZXN0KHJl
c3VsdHMsIGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRUcnVlKCFkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0cy10YWJsZScpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjZmxha3ktdGVzdHMtdGFibGUgdGQ6bnRoLWNoaWxkKDMpIGEnKS5nZXRB
dHRyaWJ1dGUoJ2hyZWYnKSA9PSAncmV0cmllcy9mb28vYmFyLWltYWdlLWRpZmZzLmh0bWwnKTsK
LSAgICB9KTsKLQotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJzxwcmU+JyArIGdfbG9n
LmpvaW4oJ1xuJykgKyAnPC9wcmU+JzsKLX0KLQotdmFyIG9yaWdpbmFsR2VuZXJhdGVQYWdlID0g
Z2VuZXJhdGVQYWdlOwotZ2VuZXJhdGVQYWdlID0gcnVuVGVzdHM7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2hhcm5lc3MvcmVzdWx0cy1leHBlY3RlZC50eHQKaW5kZXggNjE5OWQyODBiN2VlMDg3NzJh
YjRlNjdjNmEzM2UwNGYzYmZjYjlmMy4uM2FiNDEwYWVmMjg1ODM5ZGE5NTZiZGNlOTA3NTFmN2Vl
YzY4NTMwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXN1bHRzLWV4cGVjdGVk
LnR4dApAQCAtMSwyNTYgKzEsNiBAQAotWW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBs
aW5lcy4KLVRFU1QtMTogUEFTUwotVEVTVC0xOiBQQVNTCi1URVNULTE6IFBBU1MKLVRFU1QtMjog
UEFTUwotVEVTVC0yOiBQQVNTCi1URVNULTI6IFBBU1MKLVRFU1QtMjogUEFTUwotVEVTVC0yOiBQ
QVNTCi1URVNULTM6IFBBU1MKLVRFU1QtMzogUEFTUwotVEVTVC00OiBQQVNTCi1URVNULTQ6IFBB
U1MKLVRFU1QtNDogUEFTUwotVEVTVC00OiBQQVNTCi1URVNULTQ6IFBBU1MKLVRFU1QtNDogUEFT
UwotVEVTVC00OiBQQVNTCi1URVNULTQ6IFBBU1MKLVRFU1QtNDogUEFTUwotVEVTVC00OiBQQVNT
Ci1URVNULTQ6IFBBU1MKLVRFU1QtNDogUEFTUwotVEVTVC01OiBQQVNTCi1URVNULTU6IFBBU1MK
LVRFU1QtNTogUEFTUwotVEVTVC01OiBQQVNTCi1URVNULTU6IFBBU1MKLVRFU1QtNTogUEFTUwot
VEVTVC01OiBQQVNTCi1URVNULTU6IFBBU1MKLVRFU1QtNTogUEFTUwotVEVTVC01OiBQQVNTCi1U
RVNULTU6IFBBU1MKLVRFU1QtNTogUEFTUwotVEVTVC02OiBQQVNTCi1URVNULTY6IFBBU1MKLVRF
U1QtNjogUEFTUwotVEVTVC02OiBQQVNTCi1URVNULTY6IFBBU1MKLVRFU1QtNjogUEFTUwotVEVT
VC02OiBQQVNTCi1URVNULTY6IFBBU1MKLVRFU1QtNjogUEFTUwotVEVTVC02OiBQQVNTCi1URVNU
LTY6IFBBU1MKLVRFU1QtNzogUEFTUwotVEVTVC04OiBQQVNTCi1URVNULTg6IFBBU1MKLVRFU1Qt
ODogUEFTUwotVEVTVC04OiBQQVNTCi1URVNULTg6IFBBU1MKLVRFU1QtODogUEFTUwotVEVTVC05
OiBQQVNTCi1URVNULTk6IFBBU1MKLVRFU1QtOTogUEFTUwotVEVTVC05OiBQQVNTCi1URVNULTk6
IFBBU1MKLVRFU1QtOTogUEFTUwotVEVTVC0xMDogUEFTUwotVEVTVC0xMDogUEFTUwotVEVTVC0x
MDogUEFTUwotVEVTVC0xMDogUEFTUwotVEVTVC0xMDogUEFTUwotVEVTVC0xMDogUEFTUwotVEVT
VC0xMTogUEFTUwotVEVTVC0xMTogUEFTUwotVEVTVC0xMTogUEFTUwotVEVTVC0xMTogUEFTUwot
VEVTVC0xMTogUEFTUwotVEVTVC0xMTogUEFTUwotVEVTVC0xMjogUEFTUwotVEVTVC0xMjogUEFT
UwotVEVTVC0xMjogUEFTUwotVEVTVC0xMjogUEFTUwotVEVTVC0xMjogUEFTUwotVEVTVC0xMjog
UEFTUwotVEVTVC0xMzogUEFTUwotVEVTVC0xMzogUEFTUwotVEVTVC0xMzogUEFTUwotVEVTVC0x
MzogUEFTUwotVEVTVC0xMzogUEFTUwotVEVTVC0xMzogUEFTUwotVEVTVC0xNDogUEFTUwotVEVT
VC0xNDogUEFTUwotVEVTVC0xNDogUEFTUwotVEVTVC0xNDogUEFTUwotVEVTVC0xNDogUEFTUwot
VEVTVC0xNDogUEFTUwotVEVTVC0xNTogUEFTUwotVEVTVC0xNTogUEFTUwotVEVTVC0xNTogUEFT
UwotVEVTVC0xNTogUEFTUwotVEVTVC0xNTogUEFTUwotVEVTVC0xNTogUEFTUwotVEVTVC0xNjog
UEFTUwotVEVTVC0xNjogUEFTUwotVEVTVC0xNjogUEFTUwotVEVTVC0xNjogUEFTUwotVEVTVC0x
NjogUEFTUwotVEVTVC0xNjogUEFTUwotVEVTVC0xNzogUEFTUwotVEVTVC0xNzogUEFTUwotVEVT
VC0xNzogUEFTUwotVEVTVC0xNzogUEFTUwotVEVTVC0xNzogUEFTUwotVEVTVC0xNzogUEFTUwot
VEVTVC0xODogUEFTUwotVEVTVC0xODogUEFTUwotVEVTVC0xODogUEFTUwotVEVTVC0xODogUEFT
UwotVEVTVC0xODogUEFTUwotVEVTVC0xODogUEFTUwotVEVTVC0xOTogUEFTUwotVEVTVC0xOTog
UEFTUwotVEVTVC0xOTogUEFTUwotVEVTVC0xOTogUEFTUwotVEVTVC0xOTogUEFTUwotVEVTVC0x
OTogUEFTUwotVEVTVC0yMDogUEFTUwotVEVTVC0yMTogUEFTUwotVEVTVC0yMjogUEFTUwotVEVT
VC0yMjogUEFTUwotVEVTVC0yMjogUEFTUwotVEVTVC0yMzogUEFTUwotVEVTVC0yMzogUEFTUwot
VEVTVC0yMzogUEFTUwotVEVTVC0yNDogUEFTUwotVEVTVC0yNDogUEFTUwotVEVTVC0yNDogUEFT
UwotVEVTVC0yNDogUEFTUwotVEVTVC0yNTogUEFTUwotVEVTVC0yNTogUEFTUwotVEVTVC0yNjog
UEFTUwotVEVTVC0yNjogUEFTUwotVEVTVC0yNjogUEFTUwotVEVTVC0yNjogUEFTUwotVEVTVC0y
NjogUEFTUwotVEVTVC0yNzogUEFTUwotVEVTVC0yNzogUEFTUwotVEVTVC0yODogUEFTUwotVEVT
VC0yODogUEFTUwotVEVTVC0yOTogUEFTUwotVEVTVC0zMDogUEFTUwotVEVTVC0zMDogUEFTUwot
VEVTVC0zMTogUEFTUwotVEVTVC0zMjogUEFTUwotVEVTVC0zMzogUEFTUwotVEVTVC0zNDogUEFT
UwotVEVTVC0zNDogUEFTUwotVEVTVC0zNDogUEFTUwotVEVTVC0zNTogUEFTUwotVEVTVC0zNTog
UEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0z
NjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVT
VC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwot
VEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFTUwotVEVTVC0zNjogUEFT
UwotVEVTVC0zNjogUEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0zNzog
UEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0z
NzogUEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0zNzogUEFTUwotVEVTVC0zNzogUEFTUwotVEVT
VC0zODogUEFTUwotVEVTVC0zODogUEFTUwotVEVTVC0zODogUEFTUwotVEVTVC0zODogUEFTUwot
VEVTVC0zOTogUEFTUwotVEVTVC0zOTogUEFTUwotVEVTVC0zOTogUEFTUwotVEVTVC0zOTogUEFT
UwotVEVTVC0zOTogUEFTUwotVEVTVC0zOTogUEFTUwotVEVTVC0zOTogUEFTUwotVEVTVC0zOTog
UEFTUwotVEVTVC00MDogUEFTUwotVEVTVC00MDogUEFTUwotVEVTVC00MDogUEFTUwotVEVTVC00
MTogUEFTUwotVEVTVC00MTogUEFTUwotVEVTVC00MTogUEFTUwotVEVTVC00MjogUEFTUwotVEVT
VC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwot
VEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFT
UwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00Mjog
UEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00
MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVT
VC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwot
VEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFT
UwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00Mjog
UEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00
MjogUEFTUwotVEVTVC00MjogUEFTUwotVEVTVC00MzogUEFTUwotVEVTVC00MzogUEFTUwotVEVT
VC00MzogUEFTUwotVEVTVC00MzogUEFTUwotVEVTVC00MzogUEFTUwotVEVTVC00MzogUEFTUwot
VEVTVC00MzogUEFTUwotVEVTVC00MzogUEFTUwotVEVTVC00MzogUEFTUwotVEVTVC00MzogUEFT
UwotVEVTVC00MzogUEFTUwotVEVTVC00MzogUEFTUwotVEVTVC00NDogUEFTUwotVEVTVC00NDog
UEFTUwotVEVTVC00NDogUEFTUwotVEVTVC00NDogUEFTUwotVEVTVC00NTogUEFTUwotVEVTVC00
NTogUEFTUwotVEVTVC00NTogUEFTUwotVEVTVC00NjogUEFTUwotVEVTVC00NzogUEFTUwotVEVT
VC00NzogUEFTUworVXNlIHRoZSBpLCBqLCBrIGFuZCBsIGtleXMgdG8gbmF2aWdhdGUsIGUsIGMg
dG8gZXhwYW5kIGFuZCBjb2xsYXBzZSwgYW5kIGYgdG8gZmxhZworZXhwYW5kIGFsbCBjb2xsYXBz
ZSBhbGwgb3B0aW9ucworT25seSB1bmV4cGVjdGVkIHJlc3VsdHMKK1RvZ2dsZSBpbWFnZXMKK1Vz
ZSBuZXdsaW5lcyBpbiBmbGFnZ2VkIGxpc3QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oYXJuZXNzL3Jlc3VsdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXN1bHRz
Lmh0bWwKaW5kZXggM2ExYjUzMDdhZmMyODQyMzBlZmFjYzljZjg4NDBjYmY0NTY3MDVkYS4uZGNi
MmViNTRiN2MzYTAwNmMyM2NhNTAzZDA0YWM0ZTk4M2ExMDJkZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hh
cm5lc3MvcmVzdWx0cy5odG1sCkBAIC0xLDE1ICsxLDkgQEAKIDwhRE9DVFlQRSBodG1sPgogPHN0
eWxlPgotaHRtbCB7Ci0gICAgaGVpZ2h0OiAxMDAlOwotfQogYm9keSB7CiAgICAgbWFyZ2luOiAw
OwogICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICAgZm9udC1zaXpl
OiAxMXB0OwotICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgICAtd2Via2l0LWZsZXgtZGly
ZWN0aW9uOiBjb2x1bW47Ci0gICAgaGVpZ2h0OiAxMDAlOwogfQogCiBib2R5ID4gKiB7CkBAIC01
Miw5ICs0Niw3IEBAIHRoIHsKIH0KIAogLmNvbnRlbnQtY29udGFpbmVyIHsKLSAgICAtd2Via2l0
LWZsZXg6IDE7CiAgICAgbWluLWhlaWdodDogMDsKLSAgICBvdmVyZmxvdzogYXV0bzsKIH0KIAog
Lm5vdGUgewpAQCAtNzcsMTEgKzY5LDE0IEBAIHRoIHsKIAogI3Rvb2xiYXIgewogICAgIHBvc2l0
aW9uOiBmaXhlZDsKLSAgICBwYWRkaW5nOiA0cHg7CiAgICAgdG9wOiAycHg7CiAgICAgcmlnaHQ6
IDJweDsKICAgICB0ZXh0LWFsaWduOiByaWdodDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Jh
KDI1NSwgMjU1LCAyNTUsIDAuODUpOworfQorCisuZmxvYXRpbmctcGFuZWwgeworICAgIHBhZGRp
bmc6IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7
CiAgICAgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyOwogICAgIGJvcmRlci1yYWRpdXM6IDRweDsK
IH0KQEAgLTIwOCwxNCArMjAzLDMyIEBAIHRib2R5LmZsYWdnZWQgLmZsYWcgewogICAgIGltYWdl
LXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKIH0KIAorI2ZsYWdnZWQtdGVz
dC1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICBib3R0b206IDRweDsKKyAg
ICByaWdodDogNHB4OworICAgIHdpZHRoOiA1MCU7CisgICAgbWluLXdpZHRoOiA0MDBweDsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOworfQorCisjZmxh
Z2dlZC10ZXN0LWNvbnRhaW5lciA+IGgyIHsKKyAgICBtYXJnaW46IDAgMCA0cHggMDsKK30KKwog
I2ZsYWdnZWQtdGVzdHMgewotICAgIHBhZGRpbmc6IDVweDsKLSAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgIHBhZGRpbmc6IDAgNXB4OworICAgIG1hcmdpbjogMDsKKyAgICBoZWlnaHQ6IDdlbTsKKyAg
ICBvdmVyZmxvdy15OiBzY3JvbGw7CiB9CiA8L3N0eWxlPgogPHN0eWxlIGlkPSJ1bmV4cGVjdGVk
LXN0eWxlIj48L3N0eWxlPgogCiA8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCiB2YXIgZ19zdGF0ZTsKIGZ1bmN0aW9uIGdsb2Jh
bFN0YXRlKCkKIHsKQEAgLTYwNywxOSArNjIwLDYgQEAgZnVuY3Rpb24gaW1hZ2VSZXN1bHRzQ2Vs
bCh0ZXN0T2JqZWN0LCB0ZXN0UHJlZml4LCBhY3R1YWwpIHsKICAgICByZXR1cm4gcm93OwogfQog
Ci1mdW5jdGlvbiBmbGFraW5lc3NEYXNoYm9hcmRVUkxGb3JUZXN0cyh0ZXN0T2JqZWN0cykKLXsK
LSAgICB2YXIgdGVzdExpc3QgPSAiIjsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RPYmpl
Y3RzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHRlc3RMaXN0ICs9IHRlc3RPYmplY3RzW2ldLm5h
bWU7Ci0KLSAgICAgICAgaWYgKGkgIT0gdGVzdE9iamVjdHMubGVuZ3RoIC0gMSkKLSAgICAgICAg
ICAgIHRlc3RMaXN0ICs9ICIsIjsKLSAgICB9Ci0KLSAgICByZXR1cm4gJ2h0dHA6Ly93ZWJraXQt
dGVzdC1yZXN1bHRzLmFwcHNwb3QuY29tL2Rhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5o
dG1sI3Nob3dBbGxSdW5zPXRydWUmdGVzdHM9JyArIGVuY29kZVVSSUNvbXBvbmVudCh0ZXN0TGlz
dCk7Ci19Ci0KIGZ1bmN0aW9uIHRhYmxlUm93KHRlc3RPYmplY3QpCiB7ICAgIAogICAgIHZhciBy
b3cgPSAnPHRib2R5JwpAQCAtNjY1LDggKzY2NSw2IEBAIGZ1bmN0aW9uIHRhYmxlUm93KHRlc3RP
YmplY3QpCiAgICAgaWYgKGdsb2JhbFN0YXRlKCkucmVzdWx0cy51c2VzX2V4cGVjdGF0aW9uc19m
aWxlKQogICAgICAgICByb3cgKz0gJzx0ZD4nICsgKGFjdHVhbC5pbmRleE9mKCdNSVNTSU5HJykg
PT0gLTEgPyB0ZXN0T2JqZWN0LmV4cGVjdGVkIDogJycpICsgJzwvdGQ+JzsKIAotICAgIHJvdyAr
PSAnPHRkPjxhIGhyZWY9IicgKyBmbGFraW5lc3NEYXNoYm9hcmRVUkxGb3JUZXN0cyhbdGVzdE9i
amVjdF0pICsgJyI+aGlzdG9yeTwvYT48L3RkPic7Ci0KICAgICByb3cgKz0gJzwvdHI+PC90Ym9k
eT4nOwogICAgIHJldHVybiByb3c7CiB9CkBAIC0xMTExLDYgKzExMDksNyBAQCBUZXN0TmF2aWdh
dG9yLnVwZGF0ZUZsYWdnZWRUZXN0cyA9IGZ1bmN0aW9uKCkKICAgICBpZiAoIWZsYWdnZWRUZXN0
VGV4dGJveCkgewogICAgICAgICB2YXIgZmxhZ2dlZFRlc3RDb250YWluZXIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgZmxhZ2dlZFRlc3RDb250YWluZXIuaWQgPSAn
ZmxhZ2dlZC10ZXN0LWNvbnRhaW5lcic7CisgICAgICAgIGZsYWdnZWRUZXN0Q29udGFpbmVyLmNs
YXNzTmFtZSA9ICdmbG9hdGluZy1wYW5lbCc7CiAgICAgICAgIGZsYWdnZWRUZXN0Q29udGFpbmVy
LmlubmVySFRNTCA9ICc8aDI+RmxhZ2dlZCBUZXN0czwvaDI+PHByZSBpZD0iZmxhZ2dlZC10ZXN0
cyIgY29udGVudEVkaXRhYmxlPjwvcHJlPic7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZmxhZ2dlZFRlc3RDb250YWluZXIpOwogCkBAIC0xMTQ5LDkgKzExNDgsOCBAQCBUZXN0
TmF2aWdhdG9yLl9zY3JvbGxUb0N1cnJlbnRUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICByZXR1
cm47CiAKICAgICB2YXIgcm93UmVjdCA9IHRhcmdldExpbmsuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7Ci0gICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250ZW50
LWNvbnRhaW5lcicpOwogICAgIC8vIHJvd1JlY3QgaXMgaW4gY2xpZW50IGNvb3JkcyAoaS5lLiBy
ZWxhdGl2ZSB0byB2aWV3cG9ydCksIHNvIHdlIGp1c3Qgd2FudCB0byBhZGQgaXRzIHRvcCB0byB0
aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24uCi0gICAgY29udGFpbmVyLnNjcm9sbFRvcCArPSBy
b3dSZWN0LnRvcCAtIDIwOworICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICs9IHJvd1JlY3Qu
dG9wOwogfQogCiBUZXN0TmF2aWdhdG9yLm9ubHlTaG93VW5leHBlY3RlZEZhaWx1cmVzQ2hhbmdl
ZCA9IGZ1bmN0aW9uKCkKQEAgLTExNjcsNyArMTE2NSw2IEBAIFRlc3ROYXZpZ2F0b3Iub25seVNo
b3dVbmV4cGVjdGVkRmFpbHVyZXNDaGFuZ2VkID0gZnVuY3Rpb24oKQogICAgICAgICAvLyBSZWNv
bXB1dGUgVGVzdE5hdmlnYXRvci5jdXJyZW50VGVzdEluZGV4CiAgICAgICAgIHZhciBsaW5rcyA9
IHZpc2libGVUZXN0cygpOwogICAgICAgICBUZXN0TmF2aWdhdG9yLmN1cnJlbnRUZXN0SW5kZXgg
PSBsaW5rcy5pbmRleE9mKGN1cnJlbnRUZXN0KTsKLSAgICAgICAgd2luZG93LmNvbnNvbGUubG9n
KCdUZXN0TmF2aWdhdG9yLmN1cnJlbnRUZXN0SW5kZXggaXMgJywgVGVzdE5hdmlnYXRvci5jdXJy
ZW50VGVzdEluZGV4KQogICAgIH0KIH0KIApAQCAtMTMyOSwxNCArMTMyNiwxMSBAQCBmdW5jdGlv
biBmYWlsaW5nVGVzdHNUYWJsZSh0ZXN0cywgdGl0bGUsIGlkKQogICAgIGlmIChnbG9iYWxTdGF0
ZSgpLnJlc3VsdHMudXNlc19leHBlY3RhdGlvbnNfZmlsZSkKICAgICAgICAgaGVhZGVyICs9ICc8
dGg+YWN0dWFsIGZhaWx1cmU8L3RoPjx0aD5leHBlY3RlZCBmYWlsdXJlPC90aD4nOwogCi0gICAg
aGVhZGVyICs9ICc8dGg+PGEgaHJlZj0iJyArIGZsYWtpbmVzc0Rhc2hib2FyZFVSTEZvclRlc3Rz
KHRlc3RzKSArICciPmhpc3Rvcnk8L2E+PC90aD4nOwotCiAgICAgaWYgKGlkID09ICdmbGFreS10
ZXN0cy10YWJsZScpCiAgICAgICAgIGhlYWRlciArPSAnPHRoPmZhaWx1cmVzPC90aD4nOwogCiAg
ICAgaGVhZGVyICs9ICc8L3RyPjwvdGhlYWQ+JzsKIAotCiAgICAgcmV0dXJuIGhlYWRlciArIHRh
YmxlUm93SHRtbCArICc8L3RhYmxlPjwvZGl2Pic7CiB9CiAKQEAgLTEzNDUsMTYgKzEzMzksNyBA
QCBmdW5jdGlvbiBnZW5lcmF0ZVBhZ2UoKQogewogICAgIGZvckVhY2hUZXN0KHByb2Nlc3NHbG9i
YWxTdGF0ZUZvcik7CiAKLSAgICB2YXIgaHRtbCA9ICc8ZGl2IGNsYXNzPWNvbnRlbnQtY29udGFp
bmVyPjxkaXYgaWQ9dG9vbGJhcj4nICsKLSAgICAgICAgJzxkaXYgY2xhc3M9Im5vdGUiPlVzZSB0
aGUgaSwgaiwgayBhbmQgbCBrZXlzIHRvIG5hdmlnYXRlLCBlLCBjIHRvIGV4cGFuZCBhbmQgY29s
bGFwc2UsIGFuZCBmIHRvIGZsYWc8L2Rpdj4nICsKLSAgICAgICAgJzxhIGhyZWY9ImphdmFzY3Jp
cHQ6dm9pZCgpIiBvbmNsaWNrPSJleHBhbmRBbGxFeHBlY3RhdGlvbnMoKSI+ZXhwYW5kIGFsbDwv
YT4gJyArCi0gICAgICAgICc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoKSIgb25jbGljaz0iY29s
bGFwc2VBbGxFeHBlY3RhdGlvbnMoKSI+Y29sbGFwc2UgYWxsPC9hPiAnICsKLSAgICAgICAgJzxh
IGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgpIiBpZD1vcHRpb25zLWxpbmsgb25jbGljaz0idG9nZ2xl
T3B0aW9uc01lbnUoKSI+b3B0aW9uczwvYT4nICsKLSAgICAgICAgJzxkaXYgaWQ9b3B0aW9ucy1t
ZW51IGNsYXNzPWhpZGRlbi1tZW51PicgKwotICAgICAgICAgICAgJzxsYWJlbD48aW5wdXQgaWQ9
InVuZXhwZWN0ZWQtcmVzdWx0cyIgdHlwZT1jaGVja2JveCBjaGVja2VkIG9uY2hhbmdlPSJoYW5k
bGVVbmV4cGVjdGVkUmVzdWx0c0NoYW5nZSgpIj5Pbmx5IHVuZXhwZWN0ZWQgcmVzdWx0czwvbGFi
ZWw+JyArCi0gICAgICAgICAgICAnPGxhYmVsPjxpbnB1dCBpZD0idG9nZ2xlLWltYWdlcyIgdHlw
ZT1jaGVja2JveCBjaGVja2VkIG9uY2hhbmdlPSJoYW5kbGVUb2dnbGVJbWFnZXNDaGFuZ2UoKSI+
VG9nZ2xlIGltYWdlczwvbGFiZWw+JyArCi0gICAgICAgICAgICAnPGxhYmVsIHRpdGxlPSJVc2Ug
bmV3bGluZXMgaW5zdGVhZCBvZiBzcGFjZXMgdG8gc2VwYXJhdGUgZmxhZ2dlZCB0ZXN0cyI+PGlu
cHV0IGlkPSJ1c2UtbmV3bGluZXMiIHR5cGU9Y2hlY2tib3ggY2hlY2tlZCBvbmNoYW5nZT0iaGFu
ZGxlVG9nZ2xlVXNlTmV3bGluZXMoKSI+VXNlIG5ld2xpbmVzPC9pbnB1dD4nICsKLSAgICAgICAg
JzwvZGl2PjwvZGl2Pic7CisgICAgdmFyIGh0bWwgPSAiIjsKIAogICAgIGlmIChnbG9iYWxTdGF0
ZSgpLnJlc3VsdHMuaW50ZXJydXB0ZWQpCiAgICAgICAgIGh0bWwgKz0gIjxwIGNsYXNzPSdzdG9w
cGVkLXJ1bm5pbmctZWFybHktbWVzc2FnZSc+VGVzdGluZyBleGl0ZWQgZWFybHkuPC9wPiIKQEAg
LTEzODUsNyArMTM3MCw3IEBAIGZ1bmN0aW9uIGdlbmVyYXRlUGFnZSgpCiAgICAgICAgICAgICAn
PHA+aHR0cGQgZXJyb3IgbG9nOiA8YSBocmVmPSJlcnJvcl9sb2cudHh0Ij5lcnJvcl9sb2cudHh0
PC9hPjwvcD4nOwogICAgIH0KIAotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaHRtbCAr
ICc8L2Rpdj4nOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLWNvbnRlbnQnKS5p
bm5lckhUTUwgPSBodG1sICsgJzwvZGl2Pic7CiAKICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdHMtdGFibGUnKSkgewogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0cy10YWJsZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgVGFibGVTb3J0ZXIu
aGFuZGxlQ2xpY2ssIGZhbHNlKTsKQEAgLTE0MDYsNyArMTM5MSwyMSBAQCBmdW5jdGlvbiBnZW5l
cmF0ZVBhZ2UoKQogICAgIE9wdGlvbldyaXRlci5hcHBseSgpOwogfQogPC9zY3JpcHQ+Ci08IS0t
IEhBQ0s6IHdoZW4ganNvbl9yZXN1bHRzX3Rlc3QuanMgaXMgaW5jbHVkZWQsIGxvYWRpbmcgdGhp
cyBwYWdlIHJ1bnMgdGhlIHRlc3RzLgotSXQgaXMgbm90IGNvcGllZCB0byB0aGUgbGF5b3V0LXRl
c3QtcmVzdWx0cyBvdXRwdXQgZGlyZWN0b3J5LiAtLT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVzdWx0cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxib2R5IG9ubG9hZD0iZ2VuZXJhdGVQYWdlKCki
PjwvYm9keT4KKzxib2R5IG9ubG9hZD0iZ2VuZXJhdGVQYWdlKCkiPgorICAgIAorICAgIDxkaXYg
Y2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBpZD0idG9vbGJhciIgY2xh
c3M9ImZsb2F0aW5nLXBhbmVsIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ibm90ZSI+VXNlIHRoZSBp
LCBqLCBrIGFuZCBsIGtleXMgdG8gbmF2aWdhdGUsIGUsIGMgdG8gZXhwYW5kIGFuZCBjb2xsYXBz
ZSwgYW5kIGYgdG8gZmxhZzwvZGl2PgorICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQo
KSIgb25jbGljaz0iZXhwYW5kQWxsRXhwZWN0YXRpb25zKCkiPmV4cGFuZCBhbGw8L2E+CisgICAg
ICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgpIiBvbmNsaWNrPSJjb2xsYXBzZUFsbEV4cGVj
dGF0aW9ucygpIj5jb2xsYXBzZSBhbGw8L2E+CisgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6
dm9pZCgpIiBpZD1vcHRpb25zLWxpbmsgb25jbGljaz0idG9nZ2xlT3B0aW9uc01lbnUoKSI+b3B0
aW9uczwvYT4KKyAgICAgICAgPGRpdiBpZD0ib3B0aW9ucy1tZW51IiBjbGFzcz0iaGlkZGVuLW1l
bnUiPgorICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCBpZD0idW5leHBlY3RlZC1yZXN1bHRzIiB0
eXBlPSJjaGVja2JveCIgY2hlY2tlZCBvbmNoYW5nZT0iaGFuZGxlVW5leHBlY3RlZFJlc3VsdHND
aGFuZ2UoKSI+T25seSB1bmV4cGVjdGVkIHJlc3VsdHM8L2xhYmVsPgorICAgICAgICAgICAgPGxh
YmVsPjxpbnB1dCBpZD0idG9nZ2xlLWltYWdlcyIgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQgb25j
aGFuZ2U9ImhhbmRsZVRvZ2dsZUltYWdlc0NoYW5nZSgpIj5Ub2dnbGUgaW1hZ2VzPC9sYWJlbD4K
KyAgICAgICAgICAgIDxsYWJlbCB0aXRsZT0iVXNlIG5ld2xpbmVzIGluc3RlYWQgb2Ygc3BhY2Vz
IHRvIHNlcGFyYXRlIGZsYWdnZWQgdGVzdHMiPjxpbnB1dCBpZD0idXNlLW5ld2xpbmVzIiB0eXBl
PSJjaGVja2JveCIgY2hlY2tlZCBvbmNoYW5nZT0iaGFuZGxlVG9nZ2xlVXNlTmV3bGluZXMoKSI+
VXNlIG5ld2xpbmVzIGluIGZsYWdnZWQgbGlzdDwvaW5wdXQ+CisgICAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorCis8ZGl2IGlkPSJtYWluLWNvbnRlbnQiPjwvZGl2PgorCis8L2JvZHk+Cg==
</data>
<flag name="review"
          id="240187"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>