<?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>124095</bug_id>
          
          <creation_ts>2013-11-08 19:12:38 -0800</creation_ts>
          <short_desc>Improving readability of LayoutTests in fast/mediastream</short_desc>
          <delta_ts>2013-11-08 20:15:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>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>
          
          <blocked>124097</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago de Barros Lacerda">thiago.lacerda</reporter>
          <assigned_to name="Thiago de Barros Lacerda">thiago.lacerda</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948983</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-08 19:12:38 -0800</bug_when>
    <thetext>Adding some indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948987</commentid>
    <comment_count>1</comment_count>
      <attachid>216477</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-08 19:19:51 -0800</bug_when>
    <thetext>Created attachment 216477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948993</commentid>
    <comment_count>2</comment_count>
      <attachid>216477</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-11-08 19:51:46 -0800</bug_when>
    <thetext>Comment on attachment 216477
Patch

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948999</commentid>
    <comment_count>3</comment_count>
      <attachid>216477</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-08 20:15:41 -0800</bug_when>
    <thetext>Comment on attachment 216477
Patch

Clearing flags on attachment: 216477

Committed r158987: &lt;http://trac.webkit.org/changeset/158987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949000</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-08 20:15:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216477</attachid>
            <date>2013-11-08 19:19:51 -0800</date>
            <delta_ts>2013-11-08 20:15:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124095-20131109001944.patch</filename>
            <type>text/plain</type>
            <size>107900</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTg0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzM2MDMxMzY1NjgxM2YwZWNiNjRi
YWJiZjA1NzhkMDAxZDRhMDIxNy4uNzc5ZmUzYTQ2ZWExZjRiN2IxNDI0ZTk3MDAzM2RmYWYwMGI4
ZTVlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTExLTA4ICBUaGlhZ28gZGUgQmFycm9z
IExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEltcHJv
dmluZyByZWFkYWJpbGl0eSBvZiBMYXlvdXRUZXN0cyBpbiBmYXN0L21lZGlhc3RyZWFtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwOTUKKworICAg
ICAgICBBZGRpbmcgc29tZSBpbmRlbnRhdGlvbgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQt
cmVtb3ZlLXRyYWNrcy5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tb25lbmRlZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
b25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1B
ZGRSZW1vdmVTdHJlYW0uaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFubmVsLmh0bWw6CisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kdG1mLmh0bWw6CisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZS5odG1sOgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlv
bm5lZWRlZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tcmVtb3RlRGVzY3JpcHRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXN0YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5odG1sOgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vYXJndW1lbnQtdHlwZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2NvbnN0
cnVjdG9ycy5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZW5hYmxlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0bWw6CisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9uby1pbnRlcmZhY2Utb2JqZWN0Lmh0bWw6CisKIDIwMTMtMTEtMDgg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0Q3Vl
QXNIVE1MKCkgb24gYW4gZW1wdHkgY3VlIHNob3VsZCByZXR1cm4gYSBkb2N1bWVudCBmcmFnbWVu
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1h
ZGQtcmVtb3ZlLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5odG1sCmluZGV4IDdlNDA3ZGRhYTBjZTFhMDc3ODM4
MzQyYzYyNTNlOTJmYzk3M2ViZTAuLmY4ODg5NDljMjM3MDdmOTJiMjIyOWNkOWU1ODE2ZTVkZDEx
NjJiOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLmh0bWwKQEAgLTEsMTM4ICsxLDEzOCBA
QAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGFkZGluZyBh
bmQgcmVtb3ZpbmcgdHJhY2tzLiIpOwotCi12YXIgc3RyZWFtMTsKLXZhciBzdHJlYW0yOwotdmFy
IGF1ZGlvVHJhY2s7Ci12YXIgdmlkZW9UcmFjazsKLQotZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAg
dGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOwotICAgIGZpbmlzaEpTVGVz
dCgpOwotfQotCi1mdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spIHsK
LSAgICB0cnkgewotICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25h
cnksIGNhbGxiYWNrLCBlcnJvcik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0RmFp
bGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Ci0gICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdHJ5QWRkVHJhY2soc3RyZWFt
LCB0cmFjaykgewotICAgIHRyeSB7Ci0gICAgICAgIHN0cmVhbS5hZGRUcmFjayh0cmFjayk7Ci0g
ICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoImFkZFRyYWNrIHRo
cmV3IGFuIGV4Y2VwdGlvbi4iKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfQot
Ci1mdW5jdGlvbiB0cnlSZW1vdmVUcmFjayhzdHJlYW0sIHRyYWNrKSB7Ci0gICAgdHJ5IHsKLSAg
ICAgICAgc3RyZWFtLnJlbW92ZVRyYWNrKHRyYWNrKTsKLSAgICB9IGNhdGNoIChleGNlcHRpb24p
IHsKLSAgICAgICAgdGVzdEZhaWxlZCgicmVtb3ZlVHJhY2sgdGhyZXcgYW4gZXhjZXB0aW9uLiIp
OwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZE5v
dEZpcmUoKSB7Ci0gICAgdGVzdEZhaWxlZCgiXCJhZGR0cmFja1wiIG9yIFwicmVtb3ZldHJhY2tc
IiBldmVudHMgc2hvdWxkIG5vdCBmaXJlIGFzIGEgcmVzdWx0IG9mIGxvY2FsIGFkZFRyYWNrKCkg
b3IgcmVtb3ZlVHJhY2soKSBvcGVyYXRpb25zLiIpOwotfQotCi1mdW5jdGlvbiBnb3RTdHJlYW0y
KHMpIHsKLSAgICBzdHJlYW0yID0gczsKLQotICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlv
VHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbTIuZ2V0VmlkZW9UcmFj
a3MoKS5sZW5ndGgnLCAnMScpOwotCi0gICAgc3RyZWFtMS5vbmFkZHRyYWNrID0gc2hvdWxkTm90
RmlyZTsKLSAgICBzdHJlYW0xLm9ucmVtb3ZldHJhY2sgPSBzaG91bGROb3RGaXJlOwotCi0gICAg
YXVkaW9UcmFjayA9IHN0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKLSAgICB2aWRlb1RyYWNr
ID0gc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpWzBdOwotCi0gICAgZGVidWcoIjxicj4qKiogcmVt
b3ZlIGFuIGF1ZGlvIHRyYWNrIik7Ci0gICAgdHJ5UmVtb3ZlVHJhY2soc3RyZWFtMSwgYXVkaW9U
cmFjayk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAn
MCcpOwotICAgIHNob3VsZEJlTnVsbCgnc3RyZWFtMS5nZXRUcmFja0J5SWQoYXVkaW9UcmFjay5p
ZCknKTsKLQotICAgIGRlYnVnKCI8YnI+KioqIHJlbW92ZSBhIG5vbi1leGlzdGVudCAoYWxyZWFk
eSByZW1vdmVkKSB0cmFjayAoc2hvdWxkIG5vdCB0aHJvdykiKTsKLSAgICB0cnlSZW1vdmVUcmFj
ayhzdHJlYW0xLCBhdWRpb1RyYWNrKTsKLQotICAgIGRlYnVnKCI8YnI+KioqIGFkZCB0aGUgdHJh
Y2sgYmFjayB0byB0aGUgc3RyZWFtIik7Ci0gICAgdHJ5QWRkVHJhY2soc3RyZWFtMSwgYXVkaW9U
cmFjayk7Ci0KLSAgICBkZWJ1ZygiPGJyPioqKiByZW1vdmUgYSB2aWRlbyB0cmFjayIpOwotICAg
IHRyeVJlbW92ZVRyYWNrKHN0cmVhbTEsIHZpZGVvVHJhY2spOwotICAgIHNob3VsZEJlKCdzdHJl
YW0xLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKLSAgICBzaG91bGRCZU51bGwoJ3N0
cmVhbTEuZ2V0VHJhY2tCeUlkKHZpZGVvVHJhY2suaWQpJyk7Ci0KLSAgICBkZWJ1ZygiPGJyPioq
KiByZW1vdmUgYSBub24tZXhpc3RlbnQgKGFscmVhZHkgcmVtb3ZlZCkgdHJhY2sgKHNob3VsZCBu
b3QgdGhyb3cpIik7Ci0gICAgdHJ5UmVtb3ZlVHJhY2soc3RyZWFtMSwgdmlkZW9UcmFjayk7Ci0K
LSAgICBkZWJ1ZygiPGJyPioqKiBhZGQgdGhlIHRyYWNrIGJhY2sgdG8gdGhlIHN0cmVhbSIpOwot
ICAgIHRyeUFkZFRyYWNrKHN0cmVhbTEsIHZpZGVvVHJhY2spOwotCi0gICAgZGVidWcoIjxicj4q
KiogdmVyaWZ5IGFkZGVkIHRyYWNrcyIpOwotICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlv
VHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbTEuZ2V0QXVkaW9UcmFj
a3MoKVswXS5raW5kJywgJ2F1ZGlvVHJhY2sua2luZCcpOwotICAgIHNob3VsZEJlKCdzdHJlYW0x
LmdldEF1ZGlvVHJhY2tzKClbMF0ubGFiZWwnLCAnYXVkaW9UcmFjay5sYWJlbCcpOwotICAgIHNo
b3VsZEJlKCdzdHJlYW0xLmdldFZpZGVvVHJhY2tzKClbMF0ua2luZCcsICd2aWRlb1RyYWNrLmtp
bmQnKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpWzBdLmxhYmVsJywg
J3ZpZGVvVHJhY2subGFiZWwnKTsKLQotICAgIGRlYnVnKCI8YnI+KioqIHRyeSBhZGRpbmcgYSBz
dHJlYW0ncyBvd24gdHJhY2tzIGFnYWluIChub3RoaW5nIHNob3VsZCBoYXBwZW4pIik7Ci0gICAg
dHJ5QWRkVHJhY2soc3RyZWFtMSwgc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpWzBdKTsKLSAgICB0
cnlBZGRUcmFjayhzdHJlYW0xLCBzdHJlYW0xLmdldFZpZGVvVHJhY2tzKClbMF0pOwotICAgIHNo
b3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91
bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAgICBkZWJ1
ZygiPGJyPioqKiBhZGQgdHJhY2tzIGZyb20gYW5vdGhlciBzdHJlYW0iKTsKLSAgICB0cnlBZGRU
cmFjayhzdHJlYW0xLCBzdHJlYW0yLmdldEF1ZGlvVHJhY2tzKClbMF0pOwotICAgIHRyeUFkZFRy
YWNrKHN0cmVhbTEsIHN0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0KLSAgICBkZWJ1Zygi
PGJyPioqKiB2ZXJpZnkgYWRkZWQgdHJhY2tzIik7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbTEuZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMicpOwotICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoJywgJzInKTsKLQotICAgIGRlYnVnKCI8YnI+KioqIHJlbW92ZSBh
bGwgdHJhY2tzLCBzdHJlYW0uZW5kZWQgc2hvdWxkIHJldHVybiB0cnVlIik7Ci0gICAgdHJ5UmVt
b3ZlVHJhY2soc3RyZWFtMiwgc3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpWzBdKTsKLSAgICB0cnlS
ZW1vdmVUcmFjayhzdHJlYW0yLCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0pOwotICAgIHNo
b3VsZEJlKCdzdHJlYW0yLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKLSAgICBzaG91
bGRCZSgnc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0gICAgc2hvdWxk
QmVUcnVlKCdzdHJlYW0yLmVuZGVkJyk7Ci0KLSAgICBkZWJ1ZygiPGJyPioqKiBpdCBzaG91bGQg
YmUgaW1wb3NzaWJsZSB0byBhZGQgYSB0cmFjayBhZnRlciB0aGUgc3RyZWFtIGhhcyBlbmRlZCIp
OwotICAgIHNob3VsZFRocm93KCdzdHJlYW0yLmFkZFRyYWNrKGF1ZGlvVHJhY2spJywgJyJFcnJv
cjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEiJyk7Ci0gICAgc2hvdWxkVGhy
b3coJ3N0cmVhbTIucmVtb3ZlVHJhY2soYXVkaW9UcmFjayknLCAnIkVycm9yOiBJbnZhbGlkU3Rh
dGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKLQotICAgIHNldFRpbWVvdXQoZmluaXNoSlNU
ZXN0LCAwKTsKLX0KLQotZnVuY3Rpb24gZ290U3RyZWFtMShzKSB7Ci0gICAgc3RyZWFtMSA9IHM7
Ci0gICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMik7
Ci19Ci0KLWdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTEp
OwotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci13aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAg
ICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uKCJUZXN0IGFkZGluZyBhbmQgcmVtb3ZpbmcgdHJhY2tzLiIpOworCisg
ICAgICAgICAgICB2YXIgc3RyZWFtMTsKKyAgICAgICAgICAgIHZhciBzdHJlYW0yOworICAgICAg
ICAgICAgdmFyIGF1ZGlvVHJhY2s7CisgICAgICAgICAgICB2YXIgdmlkZW9UcmFjazsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gZXJyb3IoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgn
U3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBnZXRVc2VyTWVkaWEo
ZGljdGlvbmFyeSwgY2FsbGJhY2spIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAg
ICAgICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxi
YWNrLCBlcnJvcik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDon
ICsgZSk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdHJ5QWRkVHJhY2so
c3RyZWFtLCB0cmFjaykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAg
ICAgIHN0cmVhbS5hZGRUcmFjayh0cmFjayk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXhj
ZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImFkZFRyYWNrIHRocmV3
IGFuIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0
cnlSZW1vdmVUcmFjayhzdHJlYW0sIHRyYWNrKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgICAgICAgICAgc3RyZWFtLnJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICAgICAgICAg
ICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgicmVtb3ZlVHJhY2sgdGhyZXcgYW4gZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZE5vdEZpcmUoKSB7CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiXCJhZGR0cmFja1wiIG9yIFwicmVtb3ZldHJhY2tcIiBldmVudHMgc2hvdWxkIG5v
dCBmaXJlIGFzIGEgcmVzdWx0IG9mIGxvY2FsIGFkZFRyYWNrKCkgb3IgcmVtb3ZlVHJhY2soKSBv
cGVyYXRpb25zLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBnb3RT
dHJlYW0yKHMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0yID0gczsKKworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcs
ICcxJyk7CisKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuZ2V0
VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOworCisgICAgICAgICAgICAgICAgc3RyZWFtMS5v
bmFkZHRyYWNrID0gc2hvdWxkTm90RmlyZTsKKyAgICAgICAgICAgICAgICBzdHJlYW0xLm9ucmVt
b3ZldHJhY2sgPSBzaG91bGROb3RGaXJlOworCisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9
IHN0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNr
ID0gc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpWzBdOworCisgICAgICAgICAgICAgICAgZGVidWco
Ijxicj4qKiogcmVtb3ZlIGFuIGF1ZGlvIHRyYWNrIik7CisgICAgICAgICAgICAgICAgdHJ5UmVt
b3ZlVHJhY2soc3RyZWFtMSwgYXVkaW9UcmFjayk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
J3N0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlTnVsbCgnc3RyZWFtMS5nZXRUcmFja0J5SWQoYXVkaW9UcmFjay5pZCknKTsKKwor
ICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqIHJlbW92ZSBhIG5vbi1leGlzdGVudCAoYWxy
ZWFkeSByZW1vdmVkKSB0cmFjayAoc2hvdWxkIG5vdCB0aHJvdykiKTsKKyAgICAgICAgICAgICAg
ICB0cnlSZW1vdmVUcmFjayhzdHJlYW0xLCBhdWRpb1RyYWNrKTsKKworICAgICAgICAgICAgICAg
IGRlYnVnKCI8YnI+KioqIGFkZCB0aGUgdHJhY2sgYmFjayB0byB0aGUgc3RyZWFtIik7CisgICAg
ICAgICAgICAgICAgdHJ5QWRkVHJhY2soc3RyZWFtMSwgYXVkaW9UcmFjayk7CisKKyAgICAgICAg
ICAgICAgICBkZWJ1ZygiPGJyPioqKiByZW1vdmUgYSB2aWRlbyB0cmFjayIpOworICAgICAgICAg
ICAgICAgIHRyeVJlbW92ZVRyYWNrKHN0cmVhbTEsIHZpZGVvVHJhY2spOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZU51bGwoJ3N0cmVhbTEuZ2V0VHJhY2tCeUlkKHZpZGVvVHJh
Y2suaWQpJyk7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiByZW1vdmUgYSBub24t
ZXhpc3RlbnQgKGFscmVhZHkgcmVtb3ZlZCkgdHJhY2sgKHNob3VsZCBub3QgdGhyb3cpIik7Cisg
ICAgICAgICAgICAgICAgdHJ5UmVtb3ZlVHJhY2soc3RyZWFtMSwgdmlkZW9UcmFjayk7CisKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiBhZGQgdGhlIHRyYWNrIGJhY2sgdG8gdGhlIHN0
cmVhbSIpOworICAgICAgICAgICAgICAgIHRyeUFkZFRyYWNrKHN0cmVhbTEsIHZpZGVvVHJhY2sp
OworCisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKiogdmVyaWZ5IGFkZGVkIHRyYWNrcyIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlvVHJhY2tzKCkubGVu
Z3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTEu
Z2V0QXVkaW9UcmFja3MoKVswXS5raW5kJywgJ2F1ZGlvVHJhY2sua2luZCcpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlvVHJhY2tzKClbMF0ubGFiZWwnLCAnYXVk
aW9UcmFjay5sYWJlbCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldFZp
ZGVvVHJhY2tzKClbMF0ua2luZCcsICd2aWRlb1RyYWNrLmtpbmQnKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpWzBdLmxhYmVsJywgJ3ZpZGVvVHJh
Y2subGFiZWwnKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqIHRyeSBhZGRpbmcg
YSBzdHJlYW0ncyBvd24gdHJhY2tzIGFnYWluIChub3RoaW5nIHNob3VsZCBoYXBwZW4pIik7Cisg
ICAgICAgICAgICAgICAgdHJ5QWRkVHJhY2soc3RyZWFtMSwgc3RyZWFtMS5nZXRBdWRpb1RyYWNr
cygpWzBdKTsKKyAgICAgICAgICAgICAgICB0cnlBZGRUcmFjayhzdHJlYW0xLCBzdHJlYW0xLmdl
dFZpZGVvVHJhY2tzKClbMF0pOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0xLmdl
dEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgn
c3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CisKKyAgICAgICAgICAgICAg
ICBkZWJ1ZygiPGJyPioqKiBhZGQgdHJhY2tzIGZyb20gYW5vdGhlciBzdHJlYW0iKTsKKyAgICAg
ICAgICAgICAgICB0cnlBZGRUcmFjayhzdHJlYW0xLCBzdHJlYW0yLmdldEF1ZGlvVHJhY2tzKClb
MF0pOworICAgICAgICAgICAgICAgIHRyeUFkZFRyYWNrKHN0cmVhbTEsIHN0cmVhbTIuZ2V0Vmlk
ZW9UcmFja3MoKVswXSk7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiB2ZXJpZnkg
YWRkZWQgdHJhY2tzIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTEuZ2V0QXVk
aW9UcmFja3MoKS5sZW5ndGgnLCAnMicpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJl
YW0xLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzInKTsKKworICAgICAgICAgICAgICAgIGRl
YnVnKCI8YnI+KioqIHJlbW92ZSBhbGwgdHJhY2tzLCBzdHJlYW0uZW5kZWQgc2hvdWxkIHJldHVy
biB0cnVlIik7CisgICAgICAgICAgICAgICAgdHJ5UmVtb3ZlVHJhY2soc3RyZWFtMiwgc3RyZWFt
Mi5nZXRBdWRpb1RyYWNrcygpWzBdKTsKKyAgICAgICAgICAgICAgICB0cnlSZW1vdmVUcmFjayhz
dHJlYW0yLCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0pOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCdzdHJlYW0yLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdzdHJlYW0yLmVuZGVkJyk7CisKKyAgICAg
ICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiBpdCBzaG91bGQgYmUgaW1wb3NzaWJsZSB0byBhZGQg
YSB0cmFjayBhZnRlciB0aGUgc3RyZWFtIGhhcyBlbmRlZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZFRocm93KCdzdHJlYW0yLmFkZFRyYWNrKGF1ZGlvVHJhY2spJywgJyJFcnJvcjogSW52YWxp
ZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEiJyk7CisgICAgICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ3N0cmVhbTIucmVtb3ZlVHJhY2soYXVkaW9UcmFjayknLCAnIkVycm9yOiBJbnZhbGlk
U3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKKworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZmluaXNoSlNUZXN0LCAwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gZ290U3RyZWFtMShzKSB7CisgICAgICAgICAgICAgICAgc3RyZWFtMSA9IHM7CisgICAg
ICAgICAgICAgICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3Ry
ZWFtMik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGdldFVzZXJNZWRpYSh7YXVkaW86
dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTEpOworCisgICAgICAgICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9u
ZW5kZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25l
bmRlZC5odG1sCmluZGV4IDY0MWE2YmE5NWZkMjAyMWIxYjFkNjIwMzk4YmU0ZGM4YTNmNTIxYWUu
LjNkMjVkMDQ2MDA5MmVjZWZkYjQ1MDZkODEzMmE3ZjliOTdjOTE1ZGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sCkBA
IC0xLDc4ICsxLDc4IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+CiA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3RzIE1lZGlhU3RyZWFtOjpvbmVuZGVkIGNhbGxiYWNrLiIpOworICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBNZWRpYVN0cmVhbTo6b25lbmRlZCBjYWxs
YmFjay4iKTsKIAotZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdl
bmVyYXRpb24gZmFpbGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQorICAgICAgICAgICAg
ZnVuY3Rpb24gZXJyb3IoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdl
bmVyYXRpb24gZmFpbGVkLicpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgfQogCi1mdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2sp
IHsKLSAgICB0cnkgewotICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rp
b25hcnksIGNhbGxiYWNrLCBlcnJvcik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0
RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Ci0gICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldFVz
ZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFy
eSwgY2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNl
cHRpb24gOicgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogCi12YXIgc3RyZWFtOworICAgICAgICAgICAg
dmFyIHN0cmVhbTsKIAotZnVuY3Rpb24gc3RyZWFtRW5kZWQyKCkgewotICAgIGRlYnVnKCIiKTsK
LSAgICB0ZXN0UGFzc2VkKCdzdHJlYW1FbmRlZDIgd2FzIGNhbGxlZC4nKTsKLSAgICBzaG91bGRC
ZVRydWUoJ3N0cmVhbS5lbmRlZCcpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQorICAgICAgICAg
ICAgZnVuY3Rpb24gc3RyZWFtRW5kZWQyKCkgeworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdzdHJlYW1FbmRlZDIgd2FzIGNhbGxlZC4nKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3N0cmVhbS5lbmRlZCcpOworICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQogCi1mdW5jdGlvbiBnb3RTdHJl
YW0yKHMpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgdGVzdFBhc3NlZCgnZ290U3RyZWFtMiB3YXMg
Y2FsbGVkLicpOwotICAgIHN0cmVhbSA9IG5ldyB3ZWJraXRNZWRpYVN0cmVhbShzKTsKLSAgICBz
aG91bGRCZUZhbHNlKCdzdHJlYW0uZW5kZWQnKTsKLSAgICB0cnkgewotICAgICAgICBzdHJlYW0u
b25lbmRlZCA9IHN0cmVhbUVuZGVkMjsKLSAgICAgICAgc3RyZWFtLnN0b3AoKTsKLSAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ01lZGlhU3RyZWFtIHRocmV3IGV4Y2VwdGlv
biA6JyArIGUpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci19CisgICAgICAgICAg
ICBmdW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnZ290U3RyZWFtMiB3YXMgY2FsbGVkLicpOworICAg
ICAgICAgICAgICAgIHN0cmVhbSA9IG5ldyB3ZWJraXRNZWRpYVN0cmVhbShzKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZUZhbHNlKCdzdHJlYW0uZW5kZWQnKTsKKyAgICAgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgICAgICBzdHJlYW0ub25lbmRlZCA9IHN0cmVhbUVuZGVkMjsK
KyAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnN0b3AoKTsKKyAgICAgICAgICAgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ01lZGlhU3RyZWFtIHRo
cmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAKLWZ1bmN0aW9uIHN0cmVhbUVu
ZGVkKCkgewotICAgIGRlYnVnKCIiKTsKLSAgICB0ZXN0UGFzc2VkKCdzdHJlYW1FbmRlZCB3YXMg
Y2FsbGVkLicpOwotICAgIHNob3VsZEJlVHJ1ZSgnc3RyZWFtLmVuZGVkJyk7CisgICAgICAgICAg
ICBmdW5jdGlvbiBzdHJlYW1FbmRlZCgpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnc3RyZWFtRW5kZWQgd2FzIGNhbGxlZC4nKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3N0cmVhbS5lbmRlZCcpOwogCi0gICAgZ2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMik7Ci19CisgICAgICAg
ICAgICAgICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFt
Mik7CisgICAgICAgICAgICB9CiAKLWZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7Ci0gICAgZGVidWco
IiIpOwotICAgIHRlc3RQYXNzZWQoJ2dvdFN0cmVhbSB3YXMgY2FsbGVkLicpOwotICAgIHN0cmVh
bSA9IHM7Ci0gICAgc2hvdWxkQmVGYWxzZSgnc3RyZWFtLmVuZGVkJyk7Ci0gICAgdHJ5IHsKLSAg
ICAgICAgc3RyZWFtLm9uZW5kZWQgPSBzdHJlYW1FbmRlZDsKLSAgICAgICAgc3RyZWFtLnN0b3Ao
KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ01lZGlhU3RyZWFtIHRo
cmV3IGV4Y2VwdGlvbiA6JyArIGUpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci19
CisgICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0ocykgeworICAgICAgICAgICAgICAgIGRl
YnVnKCIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdnb3RTdHJlYW0gd2FzIGNhbGxl
ZC4nKTsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRmFsc2UoJ3N0cmVhbS5lbmRlZCcpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgICAgIHN0cmVhbS5vbmVuZGVkID0gc3RyZWFtRW5kZWQ7CisgICAgICAgICAgICAg
ICAgICAgIHN0cmVhbS5zdG9wKCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdNZWRpYVN0cmVhbSB0aHJldyBleGNlcHRpb24g
OicgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQogCi1nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVv
OnRydWV9LCBnb3RTdHJlYW0pOworICAgICAgICAgICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVl
LCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtKTsKIAotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
Owotd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
KyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwKaW5kZXggN2U2YmY0ODhlY2Uz
NDFlY2VmNTk1ZWQyOGNjZDFjMTEwNGI2YWRlYy4uNzFiYTgxMTliOTZkMDQ2ZDc5OGM4MTQ1MjNl
NmUxNzYxZGFhMjMxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwKQEAgLTEsMTE0ICsxLDExNCBAQAogPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB3ZWJraXRNZWRpYVN0
cmVhbS4iKTsKLQotdmFyIHVuZGVmaW5lZDsKLXZhciBzdHJlYW07Ci12YXIgbmV3U3RyZWFtOwot
dmFyIG5BdWRpbzsKLXZhciBuVmlkZW87Ci12YXIgaWRBcnJheSA9IG5ldyBBcnJheSgpOwotCi1m
dW5jdGlvbiBjaGVja0lkQXR0cmlidXRlKGlkKSB7Ci0gICAgaWYgKGlkLmxlbmd0aCAhPSAzNikK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWQubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgY2hhckNvZGUgPSBpZC5jaGFyQ29kZUF0KGkpOwotICAgICAgICBp
ZiAoY2hhckNvZGUgPT0gMHgyMQotICAgICAgICAgICAgfHwgKGNoYXJDb2RlID49IDB4MjMgJiYg
Y2hhckNvZGUgPD0gMHgyNykKLSAgICAgICAgICAgIHx8IChjaGFyQ29kZSA+PSAweDJBICYmIGNo
YXJDb2RlIDw9IDB4MkIpCi0gICAgICAgICAgICB8fCAoY2hhckNvZGUgPj0gMHgyRCAmJiBjaGFy
Q29kZSA8PSAweDJFKQotICAgICAgICAgICAgfHwgKGNoYXJDb2RlID49IDB4MzAgJiYgY2hhckNv
ZGUgPD0gMHgzOSkKLSAgICAgICAgICAgIHx8IChjaGFyQ29kZSA+PSAweDQxICYmIGNoYXJDb2Rl
IDw9IDB4NUEpCi0gICAgICAgICAgICB8fCAoY2hhckNvZGUgPj0gMHg1RSAmJiBjaGFyQ29kZSA8
PSAweDdFKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRBcnJheS5sZW5ndGg7IGkrKykgewotICAg
ICAgICBpZiAoaWQgPT09IGlkQXJyYXlbaV0pCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotICAgIGlkQXJyYXkucHVzaChpZCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVu
Y3Rpb24gZXJyb3IoKSB7Ci0gICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVk
LicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1mdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGlj
dGlvbmFyeSwgY2FsbGJhY2spIHsKLSAgICB0cnkgewotICAgICAgICBuYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrLCBlcnJvcik7Ci0gICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0
aW9uIDonICsgZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX0KLQotZnVuY3Rp
b24gZ290U3RyZWFtKHMpIHsKLSAgICBsb2NhbFN0cmVhbSA9IHM7Ci0gICAgdGVzdFBhc3NlZCgn
R290IGxvY2FsIHN0cmVhbS4nKTsKLSAgICBzaG91bGRCZSgnbG9jYWxTdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdsb2NhbFN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAgICBzaG91bGRCZVRydWUoInR5cGVvZiB3ZWJr
aXRNZWRpYVN0cmVhbSA9PT0gJ29iamVjdCciKTsKLSAgICBzaG91bGRCZVRydWUoJ2NoZWNrSWRB
dHRyaWJ1dGUobG9jYWxTdHJlYW0uaWQpJyk7Ci0gICAgdGVzdENvbnN0cnVjdG9yKGxvY2FsU3Ry
ZWFtKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbnN0cnVjdG9yKHMpIHsKLSAgICBzdHJlYW0gPSBz
OwotICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oZG9jdW1lbnQpJyk7Ci0g
ICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShbZG9jdW1lbnRdKScpOwotICAg
IHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNr
cygpWzBdLCBkb2N1bWVudF0pJyk7Ci0gICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0
cmVhbShbbnVsbF0pJyk7Ci0gICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShb
dW5kZWZpbmVkXSknKTsKLSAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKG51
bGwpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbSh1bmRlZmluZWQp
Jyk7Ci0KLSAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbSgpIiwgMCwgMCk7
Ci0gICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJlYW0oW10pIiwgMCwgMCk7Ci0K
LSAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShzdHJlYW0pIiwgcy5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCwgcy5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCk7Ci0KLSAgICB2
ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KClbMF1dKSIsIDEsIDApOwotICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFt
KFtzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMCwgMSk7Ci0gICAgdmVyaWZ5U3RyZWFt
KCJuZXcgd2Via2l0TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7Ci0gICAgdmVyaWZ5U3RyZWFtKCJuZXcg
d2Via2l0TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKVswXSwgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDEsIDEpOwot
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeVN0cmVhbShzY3JpcHQs
IG51bUF1ZGlvVHJhY2tzLCBudW1WaWRlb1RyYWNrcykgewotICAgIGRlYnVnKCI8YnI+KioqIHRl
c3RpbmcgXCIiICsgc2NyaXB0ICsgIlwiIik7Ci0gICAgbmV3U3RyZWFtID0gZXZhbChzY3JpcHQp
OwotICAgIG5BdWRpbyA9IG51bUF1ZGlvVHJhY2tzOwotICAgIG5WaWRlbyA9IG51bVZpZGVvVHJh
Y2tzOwotCi0gICAgdGVzdFBhc3NlZCgnU3RyZWFtIGNvbnN0cnVjdGVkJyk7Ci0gICAgc2hvdWxk
QmVOb25OdWxsKG5ld1N0cmVhbSk7Ci0gICAgc2hvdWxkQmVEZWZpbmVkKG5ld1N0cmVhbSk7Ci0g
ICAgc2hvdWxkQmUoIm5ld1N0cmVhbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpIiwgIidbb2JqZWN0
IHdlYmtpdE1lZGlhU3RyZWFtQ29uc3RydWN0b3JdJyIpOwotICAgIHNob3VsZEJlKCduZXdTdHJl
YW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnbkF1ZGlvJyk7Ci0gICAgc2hvdWxkQmUoJ25l
d1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICduVmlkZW8nKTsKLQotICAgIHNob3Vs
ZEJlVHJ1ZSgnY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpJyk7Ci19Ci0KLWdldFVzZXJN
ZWRpYSh7dmlkZW86dHJ1ZSwgYXVkaW86dHJ1ZX0sIGdvdFN0cmVhbSk7Ci0KLXdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLXdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHdlYmtpdE1lZGlhU3RyZWFtLiIpOworCisgICAgICAgICAgICB2YXIgdW5kZWZpbmVk
OworICAgICAgICAgICAgdmFyIHN0cmVhbTsKKyAgICAgICAgICAgIHZhciBuZXdTdHJlYW07Cisg
ICAgICAgICAgICB2YXIgbkF1ZGlvOworICAgICAgICAgICAgdmFyIG5WaWRlbzsKKyAgICAgICAg
ICAgIHZhciBpZEFycmF5ID0gbmV3IEFycmF5KCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNo
ZWNrSWRBdHRyaWJ1dGUoaWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWQubGVuZ3RoICE9IDM2
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBpZC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBj
aGFyQ29kZSA9IGlkLmNoYXJDb2RlQXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGFy
Q29kZSA9PSAweDIxCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAoY2hhckNvZGUgPj0gMHgy
MyAmJiBjaGFyQ29kZSA8PSAweDI3KQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGNoYXJD
b2RlID49IDB4MkEgJiYgY2hhckNvZGUgPD0gMHgyQikKKyAgICAgICAgICAgICAgICAgICAgICAg
IHx8IChjaGFyQ29kZSA+PSAweDJEICYmIGNoYXJDb2RlIDw9IDB4MkUpCisgICAgICAgICAgICAg
ICAgICAgICAgICB8fCAoY2hhckNvZGUgPj0gMHgzMCAmJiBjaGFyQ29kZSA8PSAweDM5KQorICAg
ICAgICAgICAgICAgICAgICAgICAgfHwgKGNoYXJDb2RlID49IDB4NDEgJiYgY2hhckNvZGUgPD0g
MHg1QSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChjaGFyQ29kZSA+PSAweDVFICYmIGNo
YXJDb2RlIDw9IDB4N0UpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZEFycmF5Lmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpZCA9PT0gaWRBcnJheVtpXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWRBcnJheS5wdXNoKGlkKTsKKworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGlj
dGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJl
dyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBnb3RTdHJlYW0ocykgeworICAgICAgICAgICAgICAgIGxvY2FsU3RyZWFtID0gczsKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCdHb3QgbG9jYWwgc3RyZWFtLicpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdsb2NhbFN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2xvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKCku
bGVuZ3RoJywgJzEnKTsKKworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidHlwZW9mIHdl
YmtpdE1lZGlhU3RyZWFtID09PSAnb2JqZWN0JyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgnY2hlY2tJZEF0dHJpYnV0ZShsb2NhbFN0cmVhbS5pZCknKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0Q29uc3RydWN0b3IobG9jYWxTdHJlYW0pOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3IocykgeworICAgICAgICAgICAgICAgIHN0cmVh
bSA9IHM7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVh
bShkb2N1bWVudCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1l
ZGlhU3RyZWFtKFtkb2N1bWVudF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25l
dyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIGRvY3VtZW50
XSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFt
KFtudWxsXSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlh
U3RyZWFtKFt1bmRlZmluZWRdKScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcg
d2Via2l0TWVkaWFTdHJlYW0obnVsbCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygn
bmV3IHdlYmtpdE1lZGlhU3RyZWFtKHVuZGVmaW5lZCknKTsKKworICAgICAgICAgICAgICAgIHZl
cmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKCkiLCAwLCAwKTsKKyAgICAgICAgICAg
ICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbXSkiLCAwLCAwKTsKKwor
ICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKHN0cmVh
bSkiLCBzLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCBzLmdldFZpZGVvVHJhY2tzKCkubGVuZ3Ro
KTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFt
KFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXV0pIiwgMSwgMCk7CisgICAgICAgICAgICAgICAg
dmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRWaWRlb1RyYWNr
cygpWzBdXSkiLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJr
aXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5l
dyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7
CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gdmVyaWZ5U3RyZWFtKHNjcmlwdCwgbnVtQXVkaW9UcmFja3MsIG51
bVZpZGVvVHJhY2tzKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKiogdGVzdGluZyBc
IiIgKyBzY3JpcHQgKyAiXCIiKTsKKyAgICAgICAgICAgICAgICBuZXdTdHJlYW0gPSBldmFsKHNj
cmlwdCk7CisgICAgICAgICAgICAgICAgbkF1ZGlvID0gbnVtQXVkaW9UcmFja3M7CisgICAgICAg
ICAgICAgICAgblZpZGVvID0gbnVtVmlkZW9UcmFja3M7CisKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCdTdHJlYW0gY29uc3RydWN0ZWQnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZU5v
bk51bGwobmV3U3RyZWFtKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZURlZmluZWQobmV3U3Ry
ZWFtKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgibmV3U3RyZWFtLmNvbnN0cnVjdG9yLnRv
U3RyaW5nKCkiLCAiJ1tvYmplY3Qgd2Via2l0TWVkaWFTdHJlYW1Db25zdHJ1Y3Rvcl0nIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ25ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0
aCcsICduQXVkaW8nKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnbmV3U3RyZWFtLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoJywgJ25WaWRlbycpOworCisgICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCdjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCknKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZ2V0VXNlck1lZGlhKHt2aWRlbzp0cnVlLCBhdWRpbzp0cnVlfSwgZ290
U3RyZWFtKTsKKworICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIDwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmh0bWwKaW5kZXggNWNlZjZjNmMxMDcwNzJl
NDYwYjljYjU4ZWJhOGUyMWY5ZTljMzZhMi4uMzY2YzZjZTFkODRjMTZkMTM5MWIzNWQ5YmE1MTE0
OGQyZTUyYmYxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ0lj
ZUNhbmRpZGF0ZS5odG1sCkBAIC0xLDM3ICsxLDM3IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ0ljZUNhbmRpZGF0ZS4iKTsKKyAgICA8aGVhZD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgUlRDSWNlQ2FuZGlkYXRlLiIpOwog
Ci12YXIgaW5pdGlhbGl6ZXIgPSB7Y2FuZGlkYXRlOiJmb28iLCBzZHBNaWQ6ImJhciIsIHNkcE1M
aW5lSW5kZXg6Nn07Ci12YXIgY2FuZGlkYXRlOwotc2hvdWxkTm90VGhyb3coJ2NhbmRpZGF0ZSA9
IG5ldyBSVENJY2VDYW5kaWRhdGUoaW5pdGlhbGl6ZXIpOycpOwotc2hvdWxkQmUoJ2NhbmRpZGF0
ZS5jYW5kaWRhdGUnLCAnImZvbyInKTsKLXNob3VsZEJlKCdjYW5kaWRhdGUuc2RwTWlkJywgJyJi
YXIiJyk7Ci1zaG91bGRCZSgnY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgnLCAnNicpOworICAgICAg
ICAgICAgdmFyIGluaXRpYWxpemVyID0ge2NhbmRpZGF0ZToiZm9vIiwgc2RwTWlkOiJiYXIiLCBz
ZHBNTGluZUluZGV4OjZ9OworICAgICAgICAgICAgdmFyIGNhbmRpZGF0ZTsKKyAgICAgICAgICAg
IHNob3VsZE5vdFRocm93KCdjYW5kaWRhdGUgPSBuZXcgUlRDSWNlQ2FuZGlkYXRlKGluaXRpYWxp
emVyKTsnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdjYW5kaWRhdGUuY2FuZGlkYXRlJywgJyJm
b28iJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnY2FuZGlkYXRlLnNkcE1pZCcsICciYmFyIicp
OworICAgICAgICAgICAgc2hvdWxkQmUoJ2NhbmRpZGF0ZS5zZHBNTGluZUluZGV4JywgJzYnKTsK
IAotc2hvdWxkTm90VGhyb3coJ2luaXRpYWxpemVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lm
eShjYW5kaWRhdGUpKTsnKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdpbml0aWFsaXpl
ciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY2FuZGlkYXRlKSk7Jyk7CiAKLXNob3VsZE5v
dFRocm93KCdjYW5kaWRhdGUgPSBuZXcgUlRDSWNlQ2FuZGlkYXRlKGluaXRpYWxpemVyKTsnKTsK
LXNob3VsZEJlKCdjYW5kaWRhdGUuY2FuZGlkYXRlJywgJyJmb28iJyk7Ci1zaG91bGRCZSgnY2Fu
ZGlkYXRlLnNkcE1pZCcsICciYmFyIicpOwotc2hvdWxkQmUoJ2NhbmRpZGF0ZS5zZHBNTGluZUlu
ZGV4JywgJzYnKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdjYW5kaWRhdGUgPSBuZXcg
UlRDSWNlQ2FuZGlkYXRlKGluaXRpYWxpemVyKTsnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdj
YW5kaWRhdGUuY2FuZGlkYXRlJywgJyJmb28iJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnY2Fu
ZGlkYXRlLnNkcE1pZCcsICciYmFyIicpOworICAgICAgICAgICAgc2hvdWxkQmUoJ2NhbmRpZGF0
ZS5zZHBNTGluZUluZGV4JywgJzYnKTsKIAotc2hvdWxkVGhyb3coJ25ldyBSVENJY2VDYW5kaWRh
dGUoe30pOycpOwotc2hvdWxkVGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoNSk7Jyk7Ci1zaG91
bGRUaHJvdygnbmV3IFJUQ0ljZUNhbmRpZGF0ZSgiZm9vYmFyIik7Jyk7Ci1zaG91bGRUaHJvdygn
bmV3IFJUQ0ljZUNhbmRpZGF0ZShjYW5kaWRhdGU6IiIpOycpOworICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoe30pOycpOworICAgICAgICAgICAgc2hvdWxkVGhy
b3coJ25ldyBSVENJY2VDYW5kaWRhdGUoNSk7Jyk7CisgICAgICAgICAgICBzaG91bGRUaHJvdygn
bmV3IFJUQ0ljZUNhbmRpZGF0ZSgiZm9vYmFyIik7Jyk7CisgICAgICAgICAgICBzaG91bGRUaHJv
dygnbmV3IFJUQ0ljZUNhbmRpZGF0ZShjYW5kaWRhdGU6IiIpOycpOwogCi1zaG91bGROb3RUaHJv
dygnbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7Y2FuZGlkYXRlOiJ4In0pOycpOworICAgICAgICAgICAg
c2hvdWxkTm90VGhyb3coJ25ldyBSVENJY2VDYW5kaWRhdGUoe2NhbmRpZGF0ZToieCJ9KTsnKTsK
IAotd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
KyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRkUmVtb3ZlU3RyZWFt
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLUFk
ZFJlbW92ZVN0cmVhbS5odG1sCmluZGV4IGM5MzVlM2UwMDc3ZTNkNzlhYWQ1ZWNlOWFlYjlmNDAz
NzRjZmU0YzEuLmUxMzk1ZjcyODM5ODk4NDdkMmE3NmQ2NjI1N2M2OWUzMWZhYzFmZjggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tQWRk
UmVtb3ZlU3RyZWFtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1BZGRSZW1vdmVTdHJlYW0uaHRtbApAQCAtMSw4MiArMSw4MiBAQAogPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1BlZXJD
b25uZWN0aW9uIFthZGR8cmVtb3ZlXVN0cmVhbS4iKTsKLQotdmFyIHN0cmVhbSA9IG51bGw7Ci12
YXIgc3RyZWFtMiA9IG51bGw7Ci12YXIgcGMgPSBudWxsOwotCi1mdW5jdGlvbiBlcnJvcigpIHsK
LSAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7Ci0gICAgZmluaXNo
SlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFj
aykgewotICAgIHRyeSB7Ci0gICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGlj
dGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHRl
c3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKLSAg
ICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBvbkVycm9uZW91c05l
Z290aWF0aW9uTmVlZGVkKCkgewotICAgIHRlc3RGYWlsZWQoJ29uRXJyb25lb3VzTmVnb3RpYXRp
b25OZWVkZWQgd2FzIGNhbGxlZC4nKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rp
b24gb25SZW1vdmVTdHJlYW0oZXZlbnQpIHsKLSAgICB0ZXN0UGFzc2VkKCdvblJlbW92ZVN0cmVh
bSB3YXMgY2FsbGVkLicpOwotCi0gICAgc2hvdWxkQmUoJ3BjLmdldExvY2FsU3RyZWFtcygpLmxl
bmd0aCcsICcwJyk7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24gb25BZGRT
dHJlYW0oZXZlbnQpIHsKLSAgICB0ZXN0UGFzc2VkKCdvbkFkZFN0cmVhbSB3YXMgY2FsbGVkLicp
OwotCi0gICAgc2hvdWxkQmUoJ3BjLmdldFN0cmVhbUJ5SWQoc3RyZWFtLmlkKScsICdzdHJlYW0n
KTsKLSAgICBzaG91bGRCZSgncGMuZ2V0U3RyZWFtQnlJZChzdHJlYW0yLmlkKScsICdudWxsJyk7
Ci0KLSAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gb25FcnJvbmVvdXNOZWdvdGlhdGlvbk5l
ZWRlZDsKLSAgICBwYy5hZGRTdHJlYW0oc3RyZWFtKTsKLSAgICBzaG91bGRCZSgncGMuZ2V0TG9j
YWxTdHJlYW1zKCkubGVuZ3RoJywgJzEnKTsKLSAgICBwYy5yZW1vdmVTdHJlYW0oc3RyZWFtMik7
Ci0gICAgc2hvdWxkQmUoJ3BjLmdldExvY2FsU3RyZWFtcygpLmxlbmd0aCcsICcxJyk7Ci0KLSAg
ICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gb25SZW1vdmVTdHJlYW07Ci0gICAgcGMucmVtb3Zl
U3RyZWFtKHN0cmVhbSk7Ci19Ci0KLWZ1bmN0aW9uIGdvdFN0cmVhbTIocykgewotICAgIHRlc3RQ
YXNzZWQoJ0dvdCBhbm90aGVyIHN0cmVhbS4nKTsKLSAgICBzdHJlYW0yID0gczsKLQotICAgIHNo
b3VsZEJlRmFsc2UoInN0cmVhbS5pZCA9PT0gc3RyZWFtMi5pZCIpOwotCi0gICAgcGMgPSBuZXcg
d2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsKLSAgICBwYy5v
bm5lZ290aWF0aW9ubmVlZGVkID0gb25BZGRTdHJlYW07Ci0gICAgcGMuYWRkU3RyZWFtKHN0cmVh
bSk7Ci19Ci0KLWZ1bmN0aW9uIGdvdFN0cmVhbTEocykgewotICAgIHRlc3RQYXNzZWQoJ0dvdCBh
IHN0cmVhbS4nKTsKLSAgICBzdHJlYW0gPSBzOwotCi0gICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0
cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMik7Ci19Ci0KLWdldFVzZXJNZWRpYSh7YXVkaW86
dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTEpOwotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci13aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rp
b24gW2FkZHxyZW1vdmVdU3RyZWFtLiIpOworCisgICAgICAgICAgICB2YXIgc3RyZWFtID0gbnVs
bDsKKyAgICAgICAgICAgIHZhciBzdHJlYW0yID0gbnVsbDsKKyAgICAgICAgICAgIHZhciBwYyA9
IG51bGw7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkgeworICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5lcmF0aW9uIGZhaWxlZC4nKTsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Z2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0
aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3
IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IG9uRXJyb25lb3VzTmVnb3RpYXRpb25OZWVkZWQoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgnb25FcnJvbmVvdXNOZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVkLicpOworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBvblJlbW92ZVN0cmVhbShldmVudCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoJ29uUmVtb3ZlU3RyZWFtIHdhcyBjYWxsZWQuJyk7CisKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgncGMuZ2V0TG9jYWxTdHJlYW1zKCkubGVuZ3RoJywgJzAnKTsKKworICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBvbkFkZFN0cmVhbShldmVudCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ29uQWRk
U3RyZWFtIHdhcyBjYWxsZWQuJyk7CisKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgncGMuZ2V0
U3RyZWFtQnlJZChzdHJlYW0uaWQpJywgJ3N0cmVhbScpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCdwYy5nZXRTdHJlYW1CeUlkKHN0cmVhbTIuaWQpJywgJ251bGwnKTsKKworICAgICAgICAg
ICAgICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBvbkVycm9uZW91c05lZ290aWF0aW9uTmVl
ZGVkOworICAgICAgICAgICAgICAgIHBjLmFkZFN0cmVhbShzdHJlYW0pOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdwYy5nZXRMb2NhbFN0cmVhbXMoKS5sZW5ndGgnLCAnMScpOworICAgICAg
ICAgICAgICAgIHBjLnJlbW92ZVN0cmVhbShzdHJlYW0yKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgncGMuZ2V0TG9jYWxTdHJlYW1zKCkubGVuZ3RoJywgJzEnKTsKKworICAgICAgICAgICAg
ICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBvblJlbW92ZVN0cmVhbTsKKyAgICAgICAgICAg
ICAgICBwYy5yZW1vdmVTdHJlYW0oc3RyZWFtKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZnVuY3Rpb24gZ290U3RyZWFtMihzKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgn
R290IGFub3RoZXIgc3RyZWFtLicpOworICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBzOworCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgic3RyZWFtLmlkID09PSBzdHJlYW0yLmlkIik7
CisKKyAgICAgICAgICAgICAgICBwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNl
U2VydmVyczpbXX0sIG51bGwpOworICAgICAgICAgICAgICAgIHBjLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSBvbkFkZFN0cmVhbTsKKyAgICAgICAgICAgICAgICBwYy5hZGRTdHJlYW0oc3RyZWFtKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMShzKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnR290IGEgc3RyZWFtLicpOworICAgICAgICAgICAg
ICAgIHN0cmVhbSA9IHM7CisKKyAgICAgICAgICAgICAgICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRy
dWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0yKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMSk7CisK
KyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlQW5zd2VyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sCmlu
ZGV4IDg5N2JhZDdjMzg4MzEyYmM5NDVkNWE3YmZjODE2YTkxOWViNDEwZGIuLjdhNTg1NGJjMmQw
ODU2Y2I5NjNjNjM2YzRiZTAwZDlkNjNkMTZmYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlQW5zd2VyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVBbnN3
ZXIuaHRtbApAQCAtMSw2MiArMSw2MiBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0
PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1BlZXJDb25uZWN0aW9uIGNyZWF0ZUFuc3dlci4iKTsK
KyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1BlZXJDb25uZWN0aW9uIGNy
ZWF0ZUFuc3dlci4iKTsKIAotdmFyIHBjID0gbnVsbDsKKyAgICAgICAgICAgIHZhciBwYyA9IG51
bGw7CiAKLWZ1bmN0aW9uIHJlcXVlc3RGYWlsZWQzKHJlYXNvbikKLXsKLSAgICB0ZXN0RmFpbGVk
KCdjcmVhdGVBbnN3ZXIgcmVxdWVzdCBmYWlsZWQuJyk7CisgICAgICAgICAgICBmdW5jdGlvbiBy
ZXF1ZXN0RmFpbGVkMyhyZWFzb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgnY3JlYXRlQW5zd2VyIHJlcXVlc3QgZmFpbGVkLicpOwogCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9
CiAKLWZ1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQzKCkKLXsKLSAgICB0ZXN0UGFzc2VkKCdjcmVh
dGVBbnN3ZXIgcmVxdWVzdCBzdWNjZWVkZWQuJyk7CisgICAgICAgICAgICBmdW5jdGlvbiByZXF1
ZXN0U3VjY2VlZGVkMygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgnY3JlYXRlQW5zd2VyIHJlcXVlc3Qgc3VjY2VlZGVkLicpOwogCi0gICAgZmluaXNoSlNUZXN0
KCk7Ci19CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CiAK
LWZ1bmN0aW9uIHJlcXVlc3RGYWlsZWQyKHJlYXNvbikKLXsKLSAgICB0ZXN0RmFpbGVkKCdzZXRS
ZW1vdGVEZXNjcmlwdGlvbiByZXF1ZXN0IGZhaWxlZC4nKTsKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHJlcXVlc3RGYWlsZWQyKHJlYXNvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCdzZXRSZW1vdGVEZXNjcmlwdGlvbiByZXF1ZXN0IGZhaWxlZC4nKTsKIAotICAg
IGZpbmlzaEpTVGVzdCgpOwotfQorICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgfQogCi1mdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigpCi17Ci0gICAgdGVzdFBh
c3NlZCgnc2V0UmVtb3RlRGVzY3JpcHRpb24gcmVxdWVzdCBzdWNjZWVkZWQuJyk7CisgICAgICAg
ICAgICBmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgnc2V0UmVtb3RlRGVzY3JpcHRpb24gcmVxdWVzdCBzdWNjZWVk
ZWQuJyk7CiAKLSAgICBzaG91bGROb3RUaHJvdygncGMuY3JlYXRlQW5zd2VyKHJlcXVlc3RTdWNj
ZWVkZWQzLCByZXF1ZXN0RmFpbGVkMyk7Jyk7Ci19CisgICAgICAgICAgICAgICAgc2hvdWxkTm90
VGhyb3coJ3BjLmNyZWF0ZUFuc3dlcihyZXF1ZXN0U3VjY2VlZGVkMywgcmVxdWVzdEZhaWxlZDMp
OycpOworICAgICAgICAgICAgfQogCi1mdW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCi17Ci0gICAg
dGVzdFBhc3NlZCgnY3JlYXRlT2ZmZXIgcmVxdWVzdCBmYWlsZWQuJyk7CisgICAgICAgICAgICBm
dW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgnY3JlYXRlT2ZmZXIgcmVxdWVzdCBmYWlsZWQuJyk7CiAKLSAgICBzZXNzaW9u
RGVzY3JpcHRpb24gPSBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBlOiJhbnN3ZXIiLCBz
ZHA6InJlbW90ZSJ9KTsKLSAgICBzaG91bGROb3RUaHJvdygncGMuc2V0UmVtb3RlRGVzY3JpcHRp
b24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxlZDIp
OycpOwotfQorICAgICAgICAgICAgICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNz
aW9uRGVzY3JpcHRpb24oe3R5cGU6ImFuc3dlciIsIHNkcDoicmVtb3RlIn0pOworICAgICAgICAg
ICAgICAgIHNob3VsZE5vdFRocm93KCdwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVz
Y3JpcHRpb24sIHJlcXVlc3RTdWNjZWVkZWQyLCByZXF1ZXN0RmFpbGVkMik7Jyk7CisgICAgICAg
ICAgICB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQxKHNkKQotewotICAgIHRlc3RGYWls
ZWQoJ2NyZWF0ZU9mZmVyIHJlcXVlc3Qgc3VjY2VlZGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfQorICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoc2QpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnY3JlYXRlT2ZmZXIgcmVxdWVzdCBz
dWNjZWVkZWQuJyk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICB9CiAKLXBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwg
bnVsbCk7Ci1wYy5jcmVhdGVPZmZlcihyZXF1ZXN0U3VjY2VlZGVkMSwgcmVxdWVzdEZhaWxlZDEp
OworICAgICAgICAgICAgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZl
cnM6W119LCBudWxsKTsKKyAgICAgICAgICAgIHBjLmNyZWF0ZU9mZmVyKHJlcXVlc3RTdWNjZWVk
ZWQxLCByZXF1ZXN0RmFpbGVkMSk7CiAKLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLXdp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CisgICAg
ICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cu
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAg
ICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKaW5kZXggM2Jl
MDEyOGFhMGEyOTBkMjMzZDc3NTFiNDNlYmU5OWJiOTRiYmI1ZS4uYzYzZmZhMTQxZTRmZjRlMGFl
MmNkMGFiMmQ5ODkwODlhOGJhOTJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbApA
QCAtMSw1MiArMSw1MiBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3Jp
cHRpb24oIlRlc3RzIFJUQ1BlZXJDb25uZWN0aW9uIGNyZWF0ZU9mZmVyLiIpOwotCi12YXIgcGMg
PSBudWxsOwotCi1mdW5jdGlvbiByZXF1ZXN0RmFpbGVkMihyZWFzb24pCi17Ci0gICAgdGVzdFBh
c3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOwotCi0gICAgZXJyb3JSZWFzb24gPSBy
ZWFzb247Ci0gICAgc2hvdWxkQmUoJ2Vycm9yUmVhc29uJywgJyJURVNUX0VSUk9SIicpOwotCi0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQyKHNkKQot
ewotICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQotewotICAgIHRl
c3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4nKTsKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0KLQotZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoc2QpCi17Ci0gICAgdGVzdFBhc3Nl
ZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOwotCi0gICAgc2Vzc2lvbkRlc2NyaXB0
aW9uID0gc2Q7Ci0gICAgc2hvdWxkQmUoJ3Nlc3Npb25EZXNjcmlwdGlvbi50eXBlJywgJyJvZmZl
ciInKTsKLQotICAgIHBjLmNyZWF0ZU9mZmVyKHJlcXVlc3RTdWNjZWVkZWQyLCByZXF1ZXN0RmFp
bGVkMiwge21hbmRhdG9yeTp7InN1Y2NlZWQiOmZhbHNlfX0pOwotfQotCi1wYyA9IG5ldyB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIG51bGwpOwotcGMuY3JlYXRlT2Zm
ZXIocmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxLCB7bWFuZGF0b3J5Onsic3VjY2Vl
ZCI6dHJ1ZX19KTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotd2luZG93LnN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1BlZXJDb25uZWN0aW9uIGNyZWF0ZU9mZmVyLiIpOwor
CisgICAgICAgICAgICB2YXIgcGMgPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiByZXF1
ZXN0RmFpbGVkMihyZWFzb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworCisgICAgICAgICAgICAgICAgZXJy
b3JSZWFzb24gPSByZWFzb247CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2Vycm9yUmVhc29u
JywgJyJURVNUX0VSUk9SIicpOworCisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQyKHNk
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNj
ZWVkZWQgd2FzIGNhbGxlZC4nKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2Fz
IGNhbGxlZC4nKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoc2QpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMg
Y2FsbGVkLicpOworCisgICAgICAgICAgICAgICAgc2Vzc2lvbkRlc2NyaXB0aW9uID0gc2Q7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3Nlc3Npb25EZXNjcmlwdGlvbi50eXBlJywgJyJvZmZl
ciInKTsKKworICAgICAgICAgICAgICAgIHBjLmNyZWF0ZU9mZmVyKHJlcXVlc3RTdWNjZWVkZWQy
LCByZXF1ZXN0RmFpbGVkMiwge21hbmRhdG9yeTp7InN1Y2NlZWQiOmZhbHNlfX0pOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7
aWNlU2VydmVyczpbXX0sIG51bGwpOworICAgICAgICAgICAgcGMuY3JlYXRlT2ZmZXIocmVxdWVz
dFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxLCB7bWFuZGF0b3J5Onsic3VjY2VlZCI6dHJ1ZX19
KTsKKworICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAg
ICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kYXRhY2hhbm5lbC5odG1s
CmluZGV4IGU0NjdlZmE1ZDkyZTJjZGE5MDFmMzAwM2FkNWM2MTZmYzYxOGZkOTQuLjhhYTNlNTZj
OTZlOGFlMjFhN2ViNmI4YzIzOGQxOGM2ZTEyMzk5MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZGF0YWNoYW5uZWwuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWRhdGFjaGFu
bmVsLmh0bWwKQEAgLTEsMTAxICsxLDEwMSBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ0RhdGFDaGFubmVsLiIpOwotCi12YXIgcGMgPSBu
dWxsOwotdmFyIGRjID0gbnVsbDsKLXZhciBkYXRhOwotdmFyIGFycmF5OwotCi1mdW5jdGlvbiBk
Y19vbmNsb3NlKCkgewotICAgIHRlc3RQYXNzZWQoImRjX29uY2xvc2Ugd2FzIGNhbGxlZCIpOwot
ICAgIHNob3VsZEJlKCJkYy5yZWFkeVN0YXRlIiwgIidjbG9zZWQnIik7Ci0KLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24gZGNfb25tZXNzYWdlX2FycmF5YnVmZmVydmlldyhlKSB7
Ci0gICAgdGVzdFBhc3NlZCgiZGNfb25tZXNzYWdlX2FycmF5YnVmZmVydmlldyB3YXMgY2FsbGVk
Iik7Ci0gICAgZGF0YSA9IGUuZGF0YTsKLSAgICBzaG91bGRCZSgiZGF0YS5ieXRlTGVuZ3RoIiwg
IjIiKTsKLSAgICBhcnJheSA9IG5ldyBJbnQ4QXJyYXkoZS5kYXRhKTsKLSAgICBzaG91bGRCZSgi
YXJyYXlbMF0iLCAiMTEiKTsKLSAgICBzaG91bGRCZSgiYXJyYXlbMV0iLCAiMTMiKTsKLQotICAg
IGRjLm9uY2xvc2UgPSBkY19vbmNsb3NlOwotICAgIGRjLmNsb3NlKCk7Ci19Ci0KLWZ1bmN0aW9u
IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlcihlKSB7Ci0gICAgdGVzdFBhc3NlZCgiZGNfb25tZXNz
YWdlX2FycmF5YnVmZmVyIHdhcyBjYWxsZWQiKTsKLSAgICBkYXRhID0gZS5kYXRhOwotICAgIHNo
b3VsZEJlKCJkYXRhLmJ5dGVMZW5ndGgiLCAiMiIpOwotICAgIGFycmF5ID0gbmV3IEludDhBcnJh
eShlLmRhdGEpOwotICAgIHNob3VsZEJlKCJhcnJheVswXSIsICIxNyIpOwotICAgIHNob3VsZEJl
KCJhcnJheVsxXSIsICIxOSIpOwotCi0gICAgYXJyYXlbMF0gPSAxMTsKLSAgICBhcnJheVsxXSA9
IDEzOwotICAgIGRjLm9ubWVzc2FnZSA9IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlcnZpZXc7Ci0g
ICAgc2hvdWxkTm90VGhyb3coImRjLnNlbmQoYXJyYXkpOyIpOwotfQotCi1mdW5jdGlvbiBkY19v
bm1lc3NhZ2Vfc3RyaW5nKGUpIHsKLSAgICB0ZXN0UGFzc2VkKCJkY19vbm1lc3NhZ2Vfc3RyaW5n
IHdhcyBjYWxsZWQiKTsKLSAgICBkYXRhID0gZS5kYXRhOwotICAgIHNob3VsZEJlKCJkYXRhIiwg
Iid4eXp6eSciKTsKLQotICAgIGRjLmJpbmFyeVR5cGUgPSAiYXJyYXlidWZmZXIiOwotICAgIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigyKTsKLSAgICB2YXIgYXJyYXkgPSBuZXcgSW50OEFycmF5
KGJ1ZmZlcik7Ci0gICAgYXJyYXlbMF0gPSAxNzsKLSAgICBhcnJheVsxXSA9IDE5OwotICAgIGRj
Lm9ubWVzc2FnZSA9IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlcjsKLSAgICBzaG91bGROb3RUaHJv
dygiZGMuc2VuZChidWZmZXIpOyIpOwotfQotCi1mdW5jdGlvbiBkY19vbm9wZW4oKSB7Ci0gICAg
dGVzdFBhc3NlZCgiZGNfb25vcGVuIHdhcyBjYWxsZWQiKTsKLSAgICBzaG91bGRCZSgiZGMucmVh
ZHlTdGF0ZSIsICInb3BlbiciKTsKLSAgICBzaG91bGRCZSgiZGMubGFiZWwiLCAiJ2xhYmVsJyIp
OwotCi0gICAgZGMub25tZXNzYWdlID0gZGNfb25tZXNzYWdlX3N0cmluZzsKLSAgICBzaG91bGRO
b3RUaHJvdygiZGMuc2VuZCgneHl6enknKTsiKTsKLX0KLQotZnVuY3Rpb24gcGNfb25kYXRhY2hh
bm5lbChlKSB7Ci0gICAgdGVzdFBhc3NlZCgicGNfb25kYXRhY2hhbm5lbCB3YXMgY2FsbGVkIik7
Ci19Ci0KLWZ1bmN0aW9uIHBjX29uaWNlY2hhbmdlKCkgewotICAgIGlmIChwYy5pY2VDb25uZWN0
aW9uU3RhdGUgPT09ICJjb21wbGV0ZWQiKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoInBjIGlzIGNv
bm5lY3RlZCIpOwotICAgICAgICBzaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hh
bm5lbCgibGFiZWwiKTsnKTsKLSAgICAgICAgc2hvdWxkQmUoImRjLnJlYWR5U3RhdGUiLCAiJ2Nv
bm5lY3RpbmcnIik7Ci0gICAgICAgIGRjLm9ub3BlbiA9IGRjX29ub3BlbjsKLSAgICB9Ci19Ci0K
LXBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwgbnVsbCk7
Ci1zaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwxIik7Jyk7
Ci1zaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwyIiwge30p
OycpOwotc2hvdWxkTm90VGhyb3coJ2RjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsMyIs
IHtvcmRlcmVkOnRydWV9KTsnKTsKLXNob3VsZE5vdFRocm93KCdkYyA9IHBjLmNyZWF0ZURhdGFD
aGFubmVsKCJsYWJlbDMiLCB7b3JkZXJlZDpmYWxzZX0pOycpOwotc2hvdWxkTm90VGhyb3coJ2Rj
ID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHttYXhSZXRyYW5zbWl0czowfSk7Jyk7
Ci1zaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwzIiwge21h
eFJldHJhbnNtaXRUaW1lOjB9KTsnKTsKLQotcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rp
b24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsKLXBjLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdl
ID0gcGNfb25pY2VjaGFuZ2U7Ci1wYy5vbmRhdGFjaGFubmVsID0gcGNfb25kYXRhY2hhbm5lbDsK
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZGVzY3JpcHRp
b24oIlRlc3RzIFJUQ0RhdGFDaGFubmVsLiIpOworCisgICAgICAgICAgICB2YXIgcGMgPSBudWxs
OworICAgICAgICAgICAgdmFyIGRjID0gbnVsbDsKKyAgICAgICAgICAgIHZhciBkYXRhOworICAg
ICAgICAgICAgdmFyIGFycmF5OworCisgICAgICAgICAgICBmdW5jdGlvbiBkY19vbmNsb3NlKCkg
eworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRjX29uY2xvc2Ugd2FzIGNhbGxlZCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJkYy5yZWFkeVN0YXRlIiwgIidjbG9zZWQnIik7CisK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZnVuY3Rpb24gZGNfb25tZXNzYWdlX2FycmF5YnVmZmVydmlldyhlKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiZGNfb25tZXNzYWdlX2FycmF5YnVmZmVydmlldyB3YXMgY2Fs
bGVkIik7CisgICAgICAgICAgICAgICAgZGF0YSA9IGUuZGF0YTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgiZGF0YS5ieXRlTGVuZ3RoIiwgIjIiKTsKKyAgICAgICAgICAgICAgICBhcnJheSA9
IG5ldyBJbnQ4QXJyYXkoZS5kYXRhKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXJyYXlb
MF0iLCAiMTEiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiYXJyYXlbMV0iLCAiMTMiKTsK
KworICAgICAgICAgICAgICAgIGRjLm9uY2xvc2UgPSBkY19vbmNsb3NlOworICAgICAgICAgICAg
ICAgIGRjLmNsb3NlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRj
X29ubWVzc2FnZV9hcnJheWJ1ZmZlcihlKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
ZGNfb25tZXNzYWdlX2FycmF5YnVmZmVyIHdhcyBjYWxsZWQiKTsKKyAgICAgICAgICAgICAgICBk
YXRhID0gZS5kYXRhOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJkYXRhLmJ5dGVMZW5ndGgi
LCAiMiIpOworICAgICAgICAgICAgICAgIGFycmF5ID0gbmV3IEludDhBcnJheShlLmRhdGEpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJhcnJheVswXSIsICIxNyIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJhcnJheVsxXSIsICIxOSIpOworCisgICAgICAgICAgICAgICAgYXJyYXlb
MF0gPSAxMTsKKyAgICAgICAgICAgICAgICBhcnJheVsxXSA9IDEzOworICAgICAgICAgICAgICAg
IGRjLm9ubWVzc2FnZSA9IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZlcnZpZXc7CisgICAgICAgICAg
ICAgICAgc2hvdWxkTm90VGhyb3coImRjLnNlbmQoYXJyYXkpOyIpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBkY19vbm1lc3NhZ2Vfc3RyaW5nKGUpIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJkY19vbm1lc3NhZ2Vfc3RyaW5nIHdhcyBjYWxsZWQiKTsKKyAg
ICAgICAgICAgICAgICBkYXRhID0gZS5kYXRhOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJk
YXRhIiwgIid4eXp6eSciKTsKKworICAgICAgICAgICAgICAgIGRjLmJpbmFyeVR5cGUgPSAiYXJy
YXlidWZmZXIiOworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigyKTsK
KyAgICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgSW50OEFycmF5KGJ1ZmZlcik7CisgICAg
ICAgICAgICAgICAgYXJyYXlbMF0gPSAxNzsKKyAgICAgICAgICAgICAgICBhcnJheVsxXSA9IDE5
OworICAgICAgICAgICAgICAgIGRjLm9ubWVzc2FnZSA9IGRjX29ubWVzc2FnZV9hcnJheWJ1ZmZl
cjsKKyAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygiZGMuc2VuZChidWZmZXIpOyIpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkY19vbm9wZW4oKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGNfb25vcGVuIHdhcyBjYWxsZWQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgiZGMucmVhZHlTdGF0ZSIsICInb3BlbiciKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgiZGMubGFiZWwiLCAiJ2xhYmVsJyIpOworCisgICAgICAgICAgICAgICAg
ZGMub25tZXNzYWdlID0gZGNfb25tZXNzYWdlX3N0cmluZzsKKyAgICAgICAgICAgICAgICBzaG91
bGROb3RUaHJvdygiZGMuc2VuZCgneHl6enknKTsiKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZnVuY3Rpb24gcGNfb25kYXRhY2hhbm5lbChlKSB7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgicGNfb25kYXRhY2hhbm5lbCB3YXMgY2FsbGVkIik7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIHBjX29uaWNlY2hhbmdlKCkgeworICAgICAgICAgICAgICAg
IGlmIChwYy5pY2VDb25uZWN0aW9uU3RhdGUgPT09ICJjb21wbGV0ZWQiKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoInBjIGlzIGNvbm5lY3RlZCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwiKTsn
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoImRjLnJlYWR5U3RhdGUiLCAiJ2Nvbm5l
Y3RpbmcnIik7CisgICAgICAgICAgICAgICAgICAgIGRjLm9ub3BlbiA9IGRjX29ub3BlbjsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBjID0gbmV3IHdl
YmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwgbnVsbCk7CisgICAgICAgICAg
ICBzaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwxIik7Jyk7
CisgICAgICAgICAgICBzaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgi
bGFiZWwyIiwge30pOycpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coJ2RjID0gcGMuY3Jl
YXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHtvcmRlcmVkOnRydWV9KTsnKTsKKyAgICAgICAgICAg
IHNob3VsZE5vdFRocm93KCdkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCJsYWJlbDMiLCB7b3Jk
ZXJlZDpmYWxzZX0pOycpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coJ2RjID0gcGMuY3Jl
YXRlRGF0YUNoYW5uZWwoImxhYmVsMyIsIHttYXhSZXRyYW5zbWl0czowfSk7Jyk7CisgICAgICAg
ICAgICBzaG91bGROb3RUaHJvdygnZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgibGFiZWwzIiwg
e21heFJldHJhbnNtaXRUaW1lOjB9KTsnKTsKKworICAgICAgICAgICAgcGMgPSBuZXcgd2Via2l0
UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsKKyAgICAgICAgICAgIHBj
Lm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gcGNfb25pY2VjaGFuZ2U7CisgICAgICAgICAg
ICBwYy5vbmRhdGFjaGFubmVsID0gcGNfb25kYXRhY2hhbm5lbDsKKworICAgICAgICAgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5Pgog
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1kdG1mLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWR0bWYuaHRtbAppbmRleCAxYTVhNjc1YmVmNzYyOTUxNDM4ZGVlMmMzNDRk
NGNhODBkMmU5NTM5Li5hZjM4MTk0OTljN2RiOGMzMDZjOTE0YTkxOWE0MDViNTg4NGY3OTY0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LWR0bWYuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLWR0bWYuaHRtbApAQCAtMSw2NiArMSw2NiBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ0RUTUZTZW5kZXIuIik7CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBSVENEVE1GU2VuZGVyLiIpOwogCi12YXIgcGMg
PSBudWxsOwotdmFyIHN0cmVhbSA9IG51bGw7Ci12YXIgZHRtZnNlbmRlciA9IG51bGw7CisgICAg
ICAgICAgICB2YXIgcGMgPSBudWxsOworICAgICAgICAgICAgdmFyIHN0cmVhbSA9IG51bGw7Cisg
ICAgICAgICAgICB2YXIgZHRtZnNlbmRlciA9IG51bGw7CiAKLWZ1bmN0aW9uIGVycm9yKCkgewot
ICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkgeworICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxlZC4nKTsKKyAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KIAotdmFyIGZpcnN0Q2FsbCA9IHRydWU7Cisg
ICAgICAgICAgICB2YXIgZmlyc3RDYWxsID0gdHJ1ZTsKIAotZnVuY3Rpb24gb250b25lY2hhbmdl
KGUpIHsKLSAgICB0ZXN0UGFzc2VkKCJvbnRvbmVjaGFuZ2Ugd2FzIGNhbGxlZC4iKTsKLSAgICBl
dmVudCA9IGU7Ci0gICAgaWYgKGZpcnN0Q2FsbCkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2V2ZW50LnRvbmUnLCAiMSIpOwotICAgICAgICBmaXJzdENhbGwgPSBmYWxzZTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvbmUnLCAi
Iik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX0KKyAgICAgICAgICAgIGZ1bmN0
aW9uIG9udG9uZWNoYW5nZShlKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgib250b25l
Y2hhbmdlIHdhcyBjYWxsZWQuIik7CisgICAgICAgICAgICAgICAgZXZlbnQgPSBlOworICAgICAg
ICAgICAgICAgIGlmIChmaXJzdENhbGwpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdldmVudC50b25lJywgIjEiKTsKKyAgICAgICAgICAgICAgICAgICAgZmly
c3RDYWxsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b25lJywgIiIpOworICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CiAKLWZ1bmN0aW9uIHBjX29uaWNlY2hhbmdlKCkgewotICAgIGlmIChwYy5pY2VDb25uZWN0
aW9uU3RhdGUgPT09ICJjb21wbGV0ZWQiKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoInBjIGlzIGNv
bm5lY3RlZCIpOwotICAgICAgICB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwor
ICAgICAgICAgICAgZnVuY3Rpb24gcGNfb25pY2VjaGFuZ2UoKSB7CisgICAgICAgICAgICAgICAg
aWYgKHBjLmljZUNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbXBsZXRlZCIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgicGMgaXMgY29ubmVjdGVkIik7CisgICAgICAgICAgICAgICAg
ICAgIHRyYWNrID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CiAKLSAgICAgICAgc2hvdWxk
VGhyb3coJ2R0bWZzZW5kZXIgPSBwYy5jcmVhdGVEVE1GU2VuZGVyKHRyYWNrKTsnKTsKLSAgICAg
ICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7Ci0gICAgICAgIHNob3VsZE5vdFRocm93KCdkdG1mc2Vu
ZGVyID0gcGMuY3JlYXRlRFRNRlNlbmRlcih0cmFjayk7Jyk7Ci0gICAgICAgIHNob3VsZEJlVHJ1
ZSgnZHRtZnNlbmRlci5jYW5JbnNlcnREVE1GJyk7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZFRocm93KCdkdG1mc2VuZGVyID0gcGMuY3JlYXRlRFRNRlNlbmRlcih0cmFjayk7Jyk7CisgICAg
ICAgICAgICAgICAgICAgIHBjLmFkZFN0cmVhbShzdHJlYW0pOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGROb3RUaHJvdygnZHRtZnNlbmRlciA9IHBjLmNyZWF0ZURUTUZTZW5kZXIodHJhY2sp
OycpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2R0bWZzZW5kZXIuY2FuSW5z
ZXJ0RFRNRicpOwogCi0gICAgICAgIGR0bWZzZW5kZXIub250b25lY2hhbmdlID0gb250b25lY2hh
bmdlOwotICAgICAgICBkdG1mc2VuZGVyLmluc2VydERUTUYoIjEiKTsKLSAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdkdG1mc2VuZGVyLnRvbmVCdWZmZXInLCAiMSIpOwotICAgIH0KLX0K
KyAgICAgICAgICAgICAgICAgICAgZHRtZnNlbmRlci5vbnRvbmVjaGFuZ2UgPSBvbnRvbmVjaGFu
Z2U7CisgICAgICAgICAgICAgICAgICAgIGR0bWZzZW5kZXIuaW5zZXJ0RFRNRigiMSIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2R0bWZzZW5kZXIudG9uZUJ1
ZmZlcicsICIxIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogCi1mdW5jdGlv
biBnb3RTdHJlYW0ocykgewotICAgIHN0cmVhbSA9IHM7Ci0gICAgdGVzdFBhc3NlZCgnU3RyZWFt
IGdlbmVyYXRlZC4nKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVu
Z3RoJywgJzEnKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3Ro
JywgJzAnKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7CisgICAgICAgICAg
ICAgICAgc3RyZWFtID0gczsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2Vu
ZXJhdGVkLicpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFj
a3MoKS5sZW5ndGgnLCAnMScpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOwogCi0gICAgcGMgPSBuZXcgd2Via2l0UlRDUGVl
ckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsKLSAgICBwYy5vbmljZWNvbm5lY3Rp
b25zdGF0ZWNoYW5nZSA9IHBjX29uaWNlY2hhbmdlOwotfQorICAgICAgICAgICAgICAgIHBjID0g
bmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgcGMub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSBwY19vbmljZWNoYW5n
ZTsKKyAgICAgICAgICAgIH0KIAotc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBnb3RTdHJlYW0sIGVycm9yKTsiKTsKKyAgICAgICAgICAg
IHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVl
fSwgZ290U3RyZWFtLCBlcnJvcik7Iik7CiAKLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LXdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Cisg
ICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5k
b3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KyAgICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1ldmVudHMuaHRtbAppbmRleCA2NDMwNWYyNTJi
NGUwZDM2ZTI5M2Y2M2U3ZTZmMTVhMmQwMzI3ZDU2Li5iMGE4NWMwZDcxNTgyYzNhZjM3YWY3NGFm
NTk2YWM4M2NkNDI2ZWMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tZXZlbnRzLmh0bWwKQEAgLTEsNjAgKzEsNTggQEAK
IDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IFJUQ1BlZXJDb25uZWN0aW9uIGV2ZW50IGNhbGxiYWNrcyBhcmUgYXN5bmMgc28gdGhhdCBmb3Ig
ZXhhbXBsZSBjbG9zZSBjYW4gYmUgY2FsbGVkIHNhZmVseS4gVGhlIG9yZGVyIG9mIHRoZSBtZXNz
YWdlcyBpcyB2ZXJ5IGltcG9ydGFudC4iKTsKLQotdmFyIHN0cmVhbSA9IG51bGw7Ci12YXIgcGMg
PSBudWxsOwotCi1mdW5jdGlvbiBlcnJvcigpIHsKLSAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2Vu
ZXJhdGlvbiBmYWlsZWQuJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGdl
dFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgewotICAgIHRyeSB7Ci0gICAgICAgIG5h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsK
LSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRp
YSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAg
fQotfQotCi1mdW5jdGlvbiBvblN0YXRlQ2hhbmdlKGV2ZW50KSB7Ci0gICAgdGVzdFBhc3NlZCgn
b25TdGF0ZUNoYW5nZSB3YXMgY2FsbGVkLicpOwotICAgIHNob3VsZEJlKCJwYy5zaWduYWxpbmdT
dGF0ZSIsICInY2xvc2VkJyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1mdW5jdGlvbiBv
bk5lZ290aWF0aW9uTmVlZGVkKGV2ZW50KSB7Ci0gICAgdGVzdFBhc3NlZCgnb25OZWdvdGlhdGlv
bk5lZWRlZCB3YXMgY2FsbGVkLicpOwotICAgIHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSBv
blN0YXRlQ2hhbmdlOwotICAgIHBjLmNsb3NlKCk7Ci0gICAgdGVzdFBhc3NlZCgnb25OZWdvdGlh
dGlvbk5lZWRlZCBkb25lLicpCi19Ci0KLWZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7Ci0gICAgdGVz
dFBhc3NlZCgnZ290U3RyZWFtIHdhcyBjYWxsZWQuJyk7Ci0gICAgc3RyZWFtID0gczsKLQotICAg
IHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwgbnVsbCk7
Ci0gICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IG9uTmVnb3RpYXRpb25OZWVkZWQ7Ci0KLSAg
ICBwYy5hZGRTdHJlYW0oc3RyZWFtKTsKLSAgICB0ZXN0UGFzc2VkKCdnb3RTdHJlYW0gZG9uZS4n
KTsKLX0KLQotZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFt
KTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotd2luZG93LnN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Ci0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IFJUQ1BlZXJDb25uZWN0aW9uIGV2ZW50IGNhbGxiYWNrcyBh
cmUgYXN5bmMgc28gdGhhdCBmb3IgZXhhbXBsZSBjbG9zZSBjYW4gYmUgY2FsbGVkIHNhZmVseS4g
VGhlIG9yZGVyIG9mIHRoZSBtZXNzYWdlcyBpcyB2ZXJ5IGltcG9ydGFudC4iKTsKKworICAgICAg
ICAgICAgdmFyIHN0cmVhbSA9IG51bGw7CisgICAgICAgICAgICB2YXIgcGMgPSBudWxsOworCisg
ICAgICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCdTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldFVzZXJNZWRp
YShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2Fs
bGJhY2ssIGVycm9yKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24g
OicgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBvblN0YXRlQ2hh
bmdlKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnb25TdGF0ZUNoYW5nZSB3
YXMgY2FsbGVkLicpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJwYy5zaWduYWxpbmdTdGF0
ZSIsICInY2xvc2VkJyIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBvbk5lZ290aWF0aW9uTmVlZGVkKGV2ZW50
KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCB3YXMg
Y2FsbGVkLicpOworICAgICAgICAgICAgICAgIHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSBv
blN0YXRlQ2hhbmdlOworICAgICAgICAgICAgICAgIHBjLmNsb3NlKCk7CisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCBkb25lLicpCisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7CisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgnZ290U3RyZWFtIHdhcyBjYWxsZWQuJyk7CisgICAgICAgICAgICAgICAgc3Ry
ZWFtID0gczsKKworICAgICAgICAgICAgICAgIHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uKHtpY2VTZXJ2ZXJzOltdfSwgbnVsbCk7CisgICAgICAgICAgICAgICAgcGMub25uZWdvdGlh
dGlvbm5lZWRlZCA9IG9uTmVnb3RpYXRpb25OZWVkZWQ7CisKKyAgICAgICAgICAgICAgICBwYy5h
ZGRTdHJlYW0oc3RyZWFtKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdnb3RTdHJlYW0g
ZG9uZS4nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZ2V0VXNlck1lZGlhKHthdWRp
bzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtKTsKKworICAgICAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1pY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taWNlLmh0bWwKaW5kZXggNGZkNmM5YTZmZjJmM2M4MzRhZjBiMzliYzE0YjhjYmZmMjI0
YzRkZS4uMWNmMzZiOGM5MGYwN2U5NzA4ZDRhNmFkOTllNzY1NDBiYjg2YTQ2MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWlj
ZS5odG1sCkBAIC0xLDU0ICsxLDU0IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+
Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIEljZSBmdW5jdGlvbmFs
aXR5LiIpOworICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJD
b25uZWN0aW9uIEljZSBmdW5jdGlvbmFsaXR5LiIpOwogCi12YXIgcGMgPSBudWxsOwotdmFyIGlj
ZUNhbmRpZGF0ZSA9IG51bGw7CisgICAgICAgICAgICB2YXIgcGMgPSBudWxsOworICAgICAgICAg
ICAgdmFyIGljZUNhbmRpZGF0ZSA9IG51bGw7CiAKLWZ1bmN0aW9uIG9uSWNlQ2hhbmdlMigpCi17
Ci0gICAgaWYgKHBjLmljZUNvbm5lY3Rpb25TdGF0ZSA9PT0gImNsb3NlZCIpIHsKLSAgICAgICAg
dGVzdFBhc3NlZCgiaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNsb3NlZC4iKTsKLSAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgfQotfQorICAgICAgICAgICAgZnVuY3Rpb24gb25JY2VDaGFuZ2Uy
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAocGMuaWNlQ29ubmVjdGlvblN0
YXRlID09PSAiY2xvc2VkIikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJpY2VD
b25uZWN0aW9uU3RhdGUgaXMgY2xvc2VkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAKLWZ1bmN0aW9uIGFk
ZEljZUNhbmRpZGF0ZVN1Y2Nlc3MoKQotewotICAgIHRlc3RQYXNzZWQoImFkZEljZUNhbmRpZGF0
ZVN1Y2Nlc3Mgd2FzIGNhbGxlZC4iKTsKLSAgICBwYy5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5n
ZSA9IG9uSWNlQ2hhbmdlMjsKLSAgICBwYy5jbG9zZSgpOwotfQorICAgICAgICAgICAgZnVuY3Rp
b24gYWRkSWNlQ2FuZGlkYXRlU3VjY2VzcygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiYWRkSWNlQ2FuZGlkYXRlU3VjY2VzcyB3YXMgY2FsbGVkLiIpOworICAg
ICAgICAgICAgICAgIHBjLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gb25JY2VDaGFuZ2Uy
OworICAgICAgICAgICAgICAgIHBjLmNsb3NlKCk7CisgICAgICAgICAgICB9CiAKLWZ1bmN0aW9u
IGFkZEljZUNhbmRpZGF0ZUZhaWx1cmUoKQotewotICAgIHRlc3RGYWlsZWQoImFkZEljZUNhbmRp
ZGF0ZUZhaWx1ZSB3YXMgY2FsbGVkLiIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQorICAgICAg
ICAgICAgZnVuY3Rpb24gYWRkSWNlQ2FuZGlkYXRlRmFpbHVyZSgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiYWRkSWNlQ2FuZGlkYXRlRmFpbHVlIHdhcyBjYWxs
ZWQuIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CiAK
LWZ1bmN0aW9uIG9uSWNlQ2hhbmdlMSgpCi17Ci0gICAgaWYgKHBjLmljZUNvbm5lY3Rpb25TdGF0
ZSA9PT0gImNvbXBsZXRlZCIpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgiaWNlQ29ubmVjdGlvblN0
YXRlIGlzIGNvbXBsZXRlZCIpOwotICAgICAgICBpY2VDYW5kaWRhdGUgPSBuZXcgUlRDSWNlQ2Fu
ZGlkYXRlKHtjYW5kaWRhdGU6Im5hbm8gbmFubyJ9KTsKLSAgICAgICAgc2hvdWxkVGhyb3coJ3Bj
LmFkZEljZUNhbmRpZGF0ZShudWxsLCBudWxsLCBudWxsKTsnKTsKLSAgICAgICAgc2hvdWxkVGhy
b3coJ3BjLmFkZEljZUNhbmRpZGF0ZShpY2VDYW5kaWRhdGUsIG51bGwsIG51bGwpOycpOwotICAg
ICAgICBzaG91bGRUaHJvdygncGMuYWRkSWNlQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSwgYWRkSWNl
Q2FuZGlkYXRlU3VjY2VzcywgbnVsbCk7Jyk7Ci0gICAgICAgIHNob3VsZE5vdFRocm93KCdwYy5h
ZGRJY2VDYW5kaWRhdGUoaWNlQ2FuZGlkYXRlLCBhZGRJY2VDYW5kaWRhdGVTdWNjZXNzLCBhZGRJ
Y2VDYW5kaWRhdGVGYWlsdXJlKTsnKTsKLSAgICB9Ci19CisgICAgICAgICAgICBmdW5jdGlvbiBv
bkljZUNoYW5nZTEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChwYy5pY2VD
b25uZWN0aW9uU3RhdGUgPT09ICJjb21wbGV0ZWQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoImljZUNvbm5lY3Rpb25TdGF0ZSBpcyBjb21wbGV0ZWQiKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWNlQ2FuZGlkYXRlID0gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7Y2FuZGlkYXRlOiJu
YW5vIG5hbm8ifSk7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCdwYy5hZGRJY2VD
YW5kaWRhdGUobnVsbCwgbnVsbCwgbnVsbCk7Jyk7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZFRocm93KCdwYy5hZGRJY2VDYW5kaWRhdGUoaWNlQ2FuZGlkYXRlLCBudWxsLCBudWxsKTsnKTsK
KyAgICAgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ3BjLmFkZEljZUNhbmRpZGF0ZShpY2VD
YW5kaWRhdGUsIGFkZEljZUNhbmRpZGF0ZVN1Y2Nlc3MsIG51bGwpOycpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGROb3RUaHJvdygncGMuYWRkSWNlQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSwg
YWRkSWNlQ2FuZGlkYXRlU3VjY2VzcywgYWRkSWNlQ2FuZGlkYXRlRmFpbHVyZSk7Jyk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogCi1zaG91bGROb3RUaHJvdygncGMgPSBuZXcg
d2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsnKTsKLXBjLm9u
aWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gb25JY2VDaGFuZ2UxOworICAgICAgICAgICAgc2hv
dWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJz
OltdfSwgbnVsbCk7Jyk7CisgICAgICAgICAgICBwYy5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5n
ZSA9IG9uSWNlQ2hhbmdlMTsKIAotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotd2luZG93
LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KKyAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWwKaW5k
ZXggYzdhNGIzNTRjMjBiMDUzNTFhODg0NzMxM2JlNTRmZGM1NjkwMTg0OC4uY2EwODc2MjJjNmYy
ODc3YTQ0NmRiZjJkZmExYzYxY2UxN2IwZDc2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERl
c2NyaXB0aW9uLmh0bWwKQEAgLTEsNTUgKzEsNTUgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBSVENQZWVyQ29ubmVjdGlvbiBsb2NhbERlc2Ny
aXB0aW9uLiIpOwotCi12YXIgcGMgPSBudWxsOwotCi1mdW5jdGlvbiByZXF1ZXN0RmFpbGVkMigp
Ci17Ci0gICAgdGVzdFBhc3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOwotCi0gICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYy5sb2NhbERlc2NyaXB0aW9uLnR5cGUnLCAib2ZmZXIi
KTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BjLmxvY2FsRGVzY3JpcHRpb24uc2RwJywg
ImxvY2FsIik7Ci0gICAgcGMuY2xvc2UoKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Bj
LmxvY2FsRGVzY3JpcHRpb24udHlwZScsICJvZmZlciIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygncGMubG9jYWxEZXNjcmlwdGlvbi5zZHAnLCAibG9jYWwiKTsKLQotICAgIGZpbmlzaEpT
VGVzdCgpOwotfQotCi1mdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigpCi17Ci0gICAgdGVzdEZh
aWxlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfQotCi1mdW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCi17Ci0gICAgdGVzdEZhaWxlZCgncmVx
dWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1mdW5j
dGlvbiByZXF1ZXN0U3VjY2VlZGVkMSgpCi17Ci0gICAgdGVzdFBhc3NlZCgncmVxdWVzdFN1Y2Nl
ZWRlZCB3YXMgY2FsbGVkLicpOwotCi0gICAgc2Vzc2lvbkRlc2NyaXB0aW9uID0gbmV3IFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbih7dHlwZToiYW5zd2VyIiwgc2RwOiJyZW1vdGUifSk7Ci0gICAgc2hv
dWxkTm90VGhyb3coJ3BjLnNldExvY2FsRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCBy
ZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxlZDIpOycpOwotfQotCi1wYyA9IG5ldyB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIG51bGwpOwotdmFyIHNlc3Npb25E
ZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6Im9mZmVyIiwgc2Rw
OiJsb2NhbCJ9KTsKLXNob3VsZE5vdFRocm93KCdwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHNlc3Np
b25EZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxKTsnKTsKLQot
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci13aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gbG9jYWxEZXNjcmlwdGlvbi4iKTsKKworICAgICAg
ICAgICAgdmFyIHBjID0gbnVsbDsKKworICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdEZhaWxl
ZDIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RG
YWlsZWQgd2FzIGNhbGxlZC4nKTsKKworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygncGMubG9jYWxEZXNjcmlwdGlvbi50eXBlJywgIm9mZmVyIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYy5sb2NhbERlc2NyaXB0aW9uLnNkcCcsICJsb2Nh
bCIpOworICAgICAgICAgICAgICAgIHBjLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdwYy5sb2NhbERlc2NyaXB0aW9uLnR5cGUnLCAib2ZmZXIiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BjLmxvY2FsRGVzY3JpcHRpb24u
c2RwJywgImxvY2FsIik7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDIoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNjZWVkZWQg
d2FzIGNhbGxlZC4nKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxl
ZC4nKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4n
KTsKKworICAgICAgICAgICAgICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9u
RGVzY3JpcHRpb24oe3R5cGU6ImFuc3dlciIsIHNkcDoicmVtb3RlIn0pOworICAgICAgICAgICAg
ICAgIHNob3VsZE5vdFRocm93KCdwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHNlc3Npb25EZXNjcmlw
dGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQyKTsnKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNl
cnZlcnM6W119LCBudWxsKTsKKyAgICAgICAgICAgIHZhciBzZXNzaW9uRGVzY3JpcHRpb24gPSBu
ZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBlOiJvZmZlciIsIHNkcDoibG9jYWwifSk7Cisg
ICAgICAgICAgICBzaG91bGROb3RUaHJvdygncGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9u
RGVzY3JpcHRpb24sIHJlcXVlc3RTdWNjZWVkZWQxLCByZXF1ZXN0RmFpbGVkMSk7Jyk7CisKKwor
ICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAgICAgd2lu
ZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CisgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25u
ZWVkZWQuaHRtbAppbmRleCA5Y2Q1ZjliNmM1MmIwN2UyMTNjN2YzMzlmNjY4MjAwMDg5MWE4Yzll
Li5mZmQ3MGMxMDE1ODUzMmI4N2ViNzUwZjYyOWM4MzdjZGI5M2E5YjIyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRp
b25uZWVkZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbApAQCAtMSw1MCArMSw1MCBAQAogPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1BlZXJD
b25uZWN0aW9uIG9ubmVnb3RpYXRpb25uZWVkZWQuIik7Ci0KLXZhciBzdHJlYW0gPSBudWxsOwot
dmFyIHBjID0gbnVsbDsKLQotZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAgdGVzdEZhaWxlZCgnU3Ry
ZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1mdW5j
dGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spIHsKLSAgICB0cnkgewotICAg
ICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrLCBl
cnJvcik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRV
c2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgIH0KLX0KLQotZnVuY3Rpb24gb25OZWdvdGlhdGlvbk5lZWRlZChldmVudCkgewotICAg
IHRlc3RQYXNzZWQoJ29uTmVnb3RpYXRpb25OZWVkZWQgd2FzIGNhbGxlZC4nKTsKLQotICAgIGZp
bmlzaEpTVGVzdCgpOwotfQotCi1mdW5jdGlvbiBnb3RTdHJlYW0ocykgewotICAgIHRlc3RQYXNz
ZWQoJ0dvdCBhIHN0cmVhbS4nKTsKLSAgICBzdHJlYW0gPSBzOwotCi0gICAgcGMgPSBuZXcgd2Vi
a2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsKLSAgICBwYy5vbm5l
Z290aWF0aW9ubmVlZGVkID0gb25OZWdvdGlhdGlvbk5lZWRlZDsKLQotICAgIHBjLmFkZFN0cmVh
bShzdHJlYW0pOwotfQotCi1nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBn
b3RTdHJlYW0pOwotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci13aW5kb3cuc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgorICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gb25uZWdvdGlhdGlvbm5lZWRl
ZC4iKTsKKworICAgICAgICAgICAgdmFyIHN0cmVhbSA9IG51bGw7CisgICAgICAgICAgICB2YXIg
cGMgPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgeworICAgICAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
ZGljdGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0
aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBvbk5lZ290aWF0aW9uTmVlZGVkKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVkLicpOworCisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGdvdFN0cmVhbShzKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnR290IGEgc3RyZWFt
LicpOworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisKKyAgICAgICAgICAgICAgICBwYyA9
IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIG51bGwpOworICAg
ICAgICAgICAgICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBvbk5lZ290aWF0aW9uTmVlZGVk
OworCisgICAgICAgICAgICAgICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdv
dFN0cmVhbSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVt
b3RlRGVzY3JpcHRpb24uaHRtbAppbmRleCBmMzU3ZThlZDgzMmMyOWNhZDcyMGI2OTkzNjQ5NTFm
NzA5MjQ5OWM0Li40ODAzMWU0YTJiMGY4Mjk2ODVjYjk1YmIyNGYyZGM2YTUyMzc1NjAwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJl
bW90ZURlc2NyaXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1sCkBAIC0xLDU1ICsxLDU1IEBA
CiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgUlRD
UGVlckNvbm5lY3Rpb24gcmVtb3RlRGVzY3JpcHRpb24uIik7Ci0KLXZhciBwYyA9IG51bGw7Ci0K
LWZ1bmN0aW9uIHJlcXVlc3RGYWlsZWQyKCkKLXsKLSAgICB0ZXN0UGFzc2VkKCdyZXF1ZXN0RmFp
bGVkIHdhcyBjYWxsZWQuJyk7Ci0KLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BjLnJlbW90
ZURlc2NyaXB0aW9uLnR5cGUnLCAiYW5zd2VyIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAnLCAicmVtb3RlIik7Ci0gICAgcGMuY2xvc2UoKTsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUnLCAi
YW5zd2VyIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYy5yZW1vdGVEZXNjcmlwdGlv
bi5zZHAnLCAicmVtb3RlIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24g
cmVxdWVzdFN1Y2NlZWRlZDIoKQotewotICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNjZWVkZWQg
d2FzIGNhbGxlZC4nKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24gcmVxdWVz
dEZhaWxlZDEoKQotewotICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4n
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEo
KQotewotICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKLQot
ICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6
Im9mZmVyIiwgc2RwOiJsb2NhbCJ9KTsKLSAgICBzaG91bGROb3RUaHJvdygncGMuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVz
dEZhaWxlZDIpOycpOwotfQotCi1wYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNl
U2VydmVyczpbXX0sIG51bGwpOwotdmFyIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNz
aW9uRGVzY3JpcHRpb24oe3R5cGU6ImFuc3dlciIsIHNkcDoicmVtb3RlIn0pOwotc2hvdWxkTm90
VGhyb3coJ3BjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjcmlwdGlvbiwgcmVxdWVz
dFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxKTsnKTsKLQotCi13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci13aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNvbm5l
Y3Rpb24gcmVtb3RlRGVzY3JpcHRpb24uIik7CisKKyAgICAgICAgICAgIHZhciBwYyA9IG51bGw7
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJlcXVlc3RGYWlsZWQyKCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdyZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuJyk7
CisKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BjLnJlbW90ZURlc2Ny
aXB0aW9uLnR5cGUnLCAiYW5zd2VyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAnLCAicmVtb3RlIik7CisgICAgICAgICAg
ICAgICAgcGMuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUnLCAiYW5zd2VyIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAnLCAicmVtb3Rl
Iik7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDIoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4n
KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4nKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKKworICAgICAg
ICAgICAgICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24o
e3R5cGU6Im9mZmVyIiwgc2RwOiJsb2NhbCJ9KTsKKyAgICAgICAgICAgICAgICBzaG91bGROb3RU
aHJvdygncGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0
U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxlZDIpOycpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIG51
bGwpOworICAgICAgICAgICAgdmFyIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9u
RGVzY3JpcHRpb24oe3R5cGU6ImFuc3dlciIsIHNkcDoicmVtb3RlIn0pOworICAgICAgICAgICAg
c2hvdWxkTm90VGhyb3coJ3BjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjcmlwdGlv
biwgcmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxKTsnKTsKKworCisgICAgICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRlLmh0bWwKaW5kZXggYWNjOGIyMzA4NzhhZDhkNWJkMzdj
NmVhMTMxMTg5OWNmYmM1YzA1MC4uNDRkYzZkYTlhMDIyYzk1NDAyM2Y2MzM2ZjUzMzk0Y2VlOTQw
N2Q0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1zdGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tc3RhdGUuaHRtbApAQCAtMSwyOSArMSwyOSBAQAogPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBSVENQZWVyQ29ubmVj
dGlvbiBzdGF0ZXMuIik7CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
UlRDUGVlckNvbm5lY3Rpb24gc3RhdGVzLiIpOwogCi12YXIgcGMgPSBudWxsOworICAgICAgICAg
ICAgdmFyIHBjID0gbnVsbDsKIAotZnVuY3Rpb24gc3RhdGVDaGFuZ2VkKCkKLXsKLSAgICB0ZXN0
UGFzc2VkKCJzdGF0ZUNoYW5nZWQgd2FzIGNhbGxlZCIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygncGMuc2lnbmFsaW5nU3RhdGUnLCAnY2xvc2VkJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19CisgICAgICAgICAgICBmdW5jdGlvbiBzdGF0ZUNoYW5nZWQoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoInN0YXRlQ2hhbmdlZCB3YXMgY2FsbGVkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwYy5zaWduYWxpbmdTdGF0ZScs
ICdjbG9zZWQnKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0KIAotc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtp
Y2VTZXJ2ZXJzOltdfSwgbnVsbCk7Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BjLnNpZ25h
bGluZ1N0YXRlJywgJ3N0YWJsZScpOwotcGMub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHN0YXRl
Q2hhbmdlZDsKLXBjLmNsb3NlKCk7CisgICAgICAgICAgICBzaG91bGROb3RUaHJvdygncGMgPSBu
ZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCBudWxsKTsnKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncGMuc2lnbmFsaW5nU3RhdGUnLCAnc3Rh
YmxlJyk7CisgICAgICAgICAgICBwYy5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gc3RhdGVDaGFu
Z2VkOworICAgICAgICAgICAgcGMuY2xvc2UoKTsKIAotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwotd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KKyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAg
IHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbAppbmRleCA0NGZhOWZj
MDI1NDdlODNiZDk5ZjBhZGI5YTZmMTA5YzVmMzIyNTFiLi5mMGZmYzQyY2Y2MDJhYzQ3N2IxNzlh
ZTQwZTBmYzc2NDRhOTRjYzUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCkBAIC0xLDg0ICsxLDgzIEBA
Ci0KIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0
aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdHMgaW50ZXJmYWNlLiIpOworICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRzIGludGVyZmFj
ZS4iKTsKIAotdmFyIHBjID0gbnVsbDsKLXZhciByZXN1bHQ7Ci12YXIgdGltZXN0YW1wOwotdmFy
IGxvY2FsOworICAgICAgICAgICAgdmFyIHBjID0gbnVsbDsKKyAgICAgICAgICAgIHZhciByZXN1
bHQ7CisgICAgICAgICAgICB2YXIgdGltZXN0YW1wOworICAgICAgICAgICAgdmFyIGxvY2FsOwog
Ci1mdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spIHsKLSAgICB0cnkg
ewotICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxi
YWNrLCBlcnJvcik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJr
aXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Ci0gICAgICAgIGZpbmlzaEpT
VGVzdCgpOwotICAgIH0KLX0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldFVzZXJNZWRpYShkaWN0
aW9uYXJ5LCBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2ss
IGVycm9yKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBl
KTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQogCi1mdW5jdGlvbiBlcnJvcigpIHsKLSAgICB0ZXN0RmFpbGVkKCdT
dHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19CisgICAg
ICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdT
dHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICB9CiAKLWZ1bmN0aW9uIHN0YXRzSGFuZGxlcjEoc3RhdHVzKQotewot
ICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlcjEgd2FzIGNhbGxlZCIpOwotICAgIHNob3VsZEJl
Tm9uTnVsbCgnc3RhdHVzJyk7Ci0gICAgcmVzdWx0ID0gc3RhdHVzLnJlc3VsdCgpOwotICAgIHNo
b3VsZEJlKCdyZXN1bHQubGVuZ3RoJywgJzAnKTsKLSAgICBzaG91bGROb3RUaHJvdygnZ2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtKScpOwotfQorICAgICAg
ICAgICAgZnVuY3Rpb24gc3RhdHNIYW5kbGVyMShzdGF0dXMpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyMSB3YXMgY2FsbGVkIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCdzdGF0dXMnKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBzdGF0dXMucmVzdWx0KCk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3Jlc3Vs
dC5sZW5ndGgnLCAnMCcpOworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdnZXRVc2Vy
TWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pJyk7CisgICAgICAgICAg
ICB9CiAKLWZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7Ci0gICAgdGVzdFBhc3NlZCgnR290IGEgc3Ry
ZWFtLicpOwotICAgIHN0cmVhbSA9IHM7CisgICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0o
cykgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ0dvdCBhIHN0cmVhbS4nKTsKKyAgICAg
ICAgICAgICAgICBzdHJlYW0gPSBzOwogCi0gICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7Ci0gICAg
c2hvdWxkTm90VGhyb3coJ3BjLmdldFN0YXRzKHN0YXRzSGFuZGxlcjIpJyk7Ci19CisgICAgICAg
ICAgICAgICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90
VGhyb3coJ3BjLmdldFN0YXRzKHN0YXRzSGFuZGxlcjIpJyk7CisgICAgICAgICAgICB9CiAKLWZ1
bmN0aW9uIHN0YXRzSGFuZGxlcjIoc3RhdHVzKQotewotICAgIHRlc3RQYXNzZWQoInN0YXRzSGFu
ZGxlcjIgd2FzIGNhbGxlZCIpOwotICAgIC8vIFN0YXR1cyBtdXN0IGJlIGEgZ2xvYmFsIHZhcmlh
YmxlIHRvIGJlIHVzZWQgaW4gdGVzdCBzdGF0ZW1lbnRzLgotICAgIHN0YXR1c19nID0gc3RhdHVz
OwotICAgIHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFu
T3JFcXVhbCgncmVzdWx0Lmxlbmd0aCcsICcyJyk7Ci0gICAgLy8gVGhlICJsb2NhbCIgaW50ZXJm
YWNlIGlzIGRlcHJlY2F0ZWQuIEtlZXAgdGVzdCB1bnRpbCBpbnRlcmZhY2UgZGVsZXRlZC4KLSAg
ICBsb2NhbCA9IHJlc3VsdFswXS5sb2NhbDsKLSAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1lc3Rh
bXA7Ci0gICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFydFRp
bWUnKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgnbG9jYWwubmFtZXMoKS5sZW5n
dGgnLCAnMScpOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdsb2NhbC5uYW1lcygp
LmluZGV4T2YoInR5cGUiKScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2xvY2FsLnN0YXQoInR5cGUi
KScsICciYXVkaW8iJyk7Ci0gICAgLy8gTmV3ZXIgaW50ZXJmYWNlLgotICAgIHJlcyA9IHJlc3Vs
dFswXTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLnRpbWVzdGFtcCcsICdz
dGFydFRpbWUnKTsKLSAgICBzaG91bGRCZU5vbk51bGwoJ3Jlcy5pZCcpOwotICAgIHNob3VsZEJl
Tm9uTnVsbCgncmVzLnR5cGUnKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVz
Lm5hbWVzKCkubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgn
cmVzLm5hbWVzKCkuaW5kZXhPZigidHlwZSIpJywgJzAnKTsKLSAgICBzaG91bGRCZSgncmVzLnN0
YXQoInR5cGUiKScsICciYXVkaW8iJyk7Ci0gICAgLy8gTmFtZWQgZ2V0dGVyOiBDYW4gYWNjZXNz
IHJlc3VsdHMgYnkgdGhlaXIgSUQgdmFsdWVzLgotICAgIHNob3VsZEJlTm9uTnVsbCgnc3RhdHVz
X2cubmFtZWRJdGVtKHJlcy5pZCknKTsKLSAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1c19nW3Jl
cy5pZF0nKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0
YXRzSGFuZGxlcjIoc3RhdHVzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoInN0YXRzSGFuZGxlcjIgd2FzIGNhbGxlZCIpOworICAgICAgICAgICAgICAgIC8vIFN0
YXR1cyBtdXN0IGJlIGEgZ2xvYmFsIHZhcmlhYmxlIHRvIGJlIHVzZWQgaW4gdGVzdCBzdGF0ZW1l
bnRzLgorICAgICAgICAgICAgICAgIHN0YXR1c19nID0gc3RhdHVzOworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUdyZWF0
ZXJUaGFuT3JFcXVhbCgncmVzdWx0Lmxlbmd0aCcsICcyJyk7CisgICAgICAgICAgICAgICAgLy8g
VGhlICJsb2NhbCIgaW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQuIEtlZXAgdGVzdCB1bnRpbCBpbnRl
cmZhY2UgZGVsZXRlZC4KKyAgICAgICAgICAgICAgICBsb2NhbCA9IHJlc3VsdFswXS5sb2NhbDsK
KyAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1lc3RhbXA7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFydFRpbWUn
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgnbG9jYWwubmFt
ZXMoKS5sZW5ndGgnLCAnMScpOworICAgICAgICAgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5P
ckVxdWFsKCdsb2NhbC5uYW1lcygpLmluZGV4T2YoInR5cGUiKScsICcwJyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ2xvY2FsLnN0YXQoInR5cGUiKScsICciYXVkaW8iJyk7CisgICAgICAg
ICAgICAgICAgLy8gTmV3ZXIgaW50ZXJmYWNlLgorICAgICAgICAgICAgICAgIHJlcyA9IHJlc3Vs
dFswXTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLnRp
bWVzdGFtcCcsICdzdGFydFRpbWUnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwo
J3Jlcy5pZCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgncmVzLnR5cGUnKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLm5hbWVzKCku
bGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgncmVzLm5hbWVzKCkuaW5kZXhPZigidHlwZSIpJywgJzAnKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgncmVzLnN0YXQoInR5cGUiKScsICciYXVkaW8iJyk7CisgICAgICAgICAgICAgICAg
Ly8gTmFtZWQgZ2V0dGVyOiBDYW4gYWNjZXNzIHJlc3VsdHMgYnkgdGhlaXIgSUQgdmFsdWVzLgor
ICAgICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgnc3RhdHVzX2cubmFtZWRJdGVtKHJlcy5p
ZCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1c19nW3Jlcy5pZF0n
KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KIAotdmFy
IHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwotc2hvdWxkTm90VGhyb3coJ3BjID0g
bmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSknKTsKLXNob3VsZE5v
dFRocm93KCdwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIxKScpOworICAgICAgICAgICAgdmFyIHN0
YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgc2hvdWxkTm90VGhy
b3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSknKTsK
KyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIxKScp
OwogCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci13aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgorICAgICAgICAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0c1NlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbAppbmRleCAxMWIyZjFmZjA5MjYxNTU1MDVi
MjgwYTg1NGI0NGFjOWY3MTdiZWJkLi45YWM3NzEwZDMxOGI3MTRkNzM5NGU1M2RlM2NhOGJhNmYy
MzAxOWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzU2VsZWN0b3IuaHRtbApAQCAtMSw1OCArMSw1
OCBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBSVENQZWVyQ29ubmVjdGlvbiBzdGF0cyBzZWxlY3RvciBhcmd1bWVudC4iKTsKLQotdmFy
IHBjID0gbnVsbDsKLXZhciByZXN1bHQ7Ci12YXIgdGltZXN0YW1wOwotdmFyIGxvY2FsOwotCi1m
dW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spIHsKLSAgICB0cnkgewot
ICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNr
LCBlcnJvcik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRH
ZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVz
dCgpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAgdGVzdEZhaWxlZCgnU3Ry
ZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1mdW5j
dGlvbiBnb3RTdHJlYW0ocykgewotICAgIHRlc3RQYXNzZWQoJ0dvdCBhIHN0cmVhbS4nKTsKLSAg
ICBzdHJlYW0gPSBzOwotCi0gICAgcGMuYWRkU3RyZWFtKHN0cmVhbSk7Ci0gICAgc2hvdWxkTm90
VGhyb3coJ3BjLmdldFN0YXRzKHN0YXRzSGFuZGxlcjIsIHBjLmdldExvY2FsU3RyZWFtcygpWzBd
LmdldFZpZGVvVHJhY2tzKClbMF0pJyk7Ci19Ci0KLWZ1bmN0aW9uIHN0YXRzSGFuZGxlcjIoc3Rh
dHVzKQotewotICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlcjIgd2FzIGNhbGxlZCIpOwotICAg
IHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgncmVzdWx0Lmxlbmd0aCcsICcxJyk7Ci0gICAgbG9jYWwgPSByZXN1bHRbMF0ubG9jYWw7Ci0g
ICAgdGltZXN0YW1wID0gbG9jYWwudGltZXN0YW1wOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5P
ckVxdWFsKCd0aW1lc3RhbXAnLCAnc3RhcnRUaW1lJyk7Ci0gICAgc2hvdWxkQmUoJ2xvY2FsLnN0
YXQoInR5cGUiKScsICcidmlkZW8iJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXZhciBz
dGFydFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKLXNob3VsZE5vdFRocm93KCdwYyA9IG5l
dyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0pJyk7Ci1zaG91bGROb3RU
aHJvdygnZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtKScp
OwotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci13aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlw
dGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRzIHNlbGVjdG9yIGFyZ3VtZW50
LiIpOworCisgICAgICAgICAgICB2YXIgcGMgPSBudWxsOworICAgICAgICAgICAgdmFyIHJlc3Vs
dDsKKyAgICAgICAgICAgIHZhciB0aW1lc3RhbXA7CisgICAgICAgICAgICB2YXIgbG9jYWw7CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykg
eworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsKKyAgICAgICAg
ICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ3dl
YmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCdTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVh
bShzKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnR290IGEgc3RyZWFtLicpOworICAg
ICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisKKyAgICAgICAgICAgICAgICBwYy5hZGRTdHJlYW0o
c3RyZWFtKTsKKyAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygncGMuZ2V0U3RhdHMoc3Rh
dHNIYW5kbGVyMiwgcGMuZ2V0TG9jYWxTdHJlYW1zKClbMF0uZ2V0VmlkZW9UcmFja3MoKVswXSkn
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhdHNIYW5kbGVyMihz
dGF0dXMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgic3RhdHNI
YW5kbGVyMiB3YXMgY2FsbGVkIik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3RhdHVzLnJl
c3VsdCgpOworICAgICAgICAgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdyZXN1
bHQubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBsb2NhbCA9IHJlc3VsdFswXS5sb2Nh
bDsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1lc3RhbXA7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFydFRp
bWUnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnbG9jYWwuc3RhdCgidHlwZSIpJywgJyJ2
aWRlbyInKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAg
ICAgICAgICAgc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9u
KHtpY2VTZXJ2ZXJzOltdfSknKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdnZXRVc2Vy
TWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pJyk7CisKKyAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaHRtbAppbmRleCAxMGM5ZDY4MjI1Zjg0MDhiZThmYTJhM2MyNTc4NGY1
ZjAzZDM3ZGU2Li4xMmQyYWE5NTEyNjFiZTI5NmJlYWFmNzg4NDU4ZmNlNWZmZjU5MTQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5o
dG1sCkBAIC0xLDY5ICsxLDY5IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+CiA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIGNvbnN0cnVjdG9yLiIpOwor
ICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9u
IGNvbnN0cnVjdG9yLiIpOwogCi1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uKG51bGwpOyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihu
dWxsLCBudWxsKTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24o
dW5kZWZpbmVkKTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24o
dW5kZWZpbmVkLCB1bmRlZmluZWQpOyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVy
Q29ubmVjdGlvbigpOyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bignJyk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGws
ICcnKTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe30pOyIp
Owotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7fSwgJycpOyIpOwot
c2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7fSwgbnVsbCk7Iik7Ci1z
aG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHt9LCB7fSk7Iik7Ci1zaG91
bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKCcnLCB7fSk7Iik7Ci1zaG91bGRU
aHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwsIHt9KTsiKTsKLXNob3VsZFRo
cm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24odW5kZWZpbmVkLCB7fSk7Iik7Ci1zaG91
bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwgbnVs
bCk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2
ZXJzOlt7dXJsOidzdHVuOmZvby5jb20nfV19LCBudWxsKTsiKTsKLXNob3VsZFRocm93KCJuZXcg
d2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3R1cm46Zm9vLmNvbScs
IGNyZWRlbnRpYWw6J3gnfV19LCBudWxsKTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRD
UGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3R1cm46Zm9vLmNvbScsIGNyZWRlbnRp
YWw6J3gnfSx7dXJsOidzdHVuOmJhci5jb20nfV19LCBudWxsKTsiKTsKLXNob3VsZFRocm93KCJu
ZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3N0dW46Zm9vLmNv
bScsIHVzZXJuYW1lOid1c2VyJ31dfSwgbnVsbCk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtp
dFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZvby5jb20nLCB1c2Vy
bmFtZTondXNlcicsIGNyZWRlbnRpYWw6J3gnfV19LCBudWxsKTsiKTsKLXNob3VsZFRocm93KCJu
ZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3R1cm46Zm9vLmNv
bScsIHVzZXJuYW1lOid1c2VyJywgY3JlZGVudGlhbDoneCd9LHt1cmw6J3N0dW46YmFyLmNvbScs
IHVzZXJuYW1lOid1c2VyMicsIGNyZWRlbnRpYWw6J3gnfV19LCBudWxsKTsiKQorICAgICAgICAg
ICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKTsiKTsKKyAg
ICAgICAgICAgIHNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCwg
bnVsbCk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25u
ZWN0aW9uKHVuZGVmaW5lZCk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtp
dFJUQ1BlZXJDb25uZWN0aW9uKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsiKTsKKyAgICAgICAgICAg
IHNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oKTsiKTsKKyAgICAgICAg
ICAgIHNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oJycpOyIpOworICAg
ICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsLCAn
Jyk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uKHt9KTsiKTsKKyAgICAgICAgICAgIHNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNv
bm5lY3Rpb24oe30sICcnKTsiKTsKKyAgICAgICAgICAgIHNob3VsZFRocm93KCJuZXcgd2Via2l0
UlRDUGVlckNvbm5lY3Rpb24oe30sIG51bGwpOyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3co
Im5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7fSwge30pOyIpOworICAgICAgICAgICAgc2hv
dWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbignJywge30pOyIpOworICAgICAg
ICAgICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsLCB7fSk7
Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9u
KHVuZGVmaW5lZCwge30pOyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRS
VENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIG51bGwpOyIpOworICAgICAgICAgICAg
c2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbe3Vy
bDonc3R1bjpmb28uY29tJ31dfSwgbnVsbCk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygi
bmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZvby5j
b20nLCBjcmVkZW50aWFsOid4J31dfSwgbnVsbCk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJv
dygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZv
by5jb20nLCBjcmVkZW50aWFsOid4J30se3VybDonc3R1bjpiYXIuY29tJ31dfSwgbnVsbCk7Iik7
CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtp
Y2VTZXJ2ZXJzOlt7dXJsOidzdHVuOmZvby5jb20nLCB1c2VybmFtZTondXNlcid9XX0sIG51bGwp
OyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bih7aWNlU2VydmVyczpbe3VybDondHVybjpmb28uY29tJywgdXNlcm5hbWU6J3VzZXInLCBjcmVk
ZW50aWFsOid4J31dfSwgbnVsbCk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdl
YmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZvby5jb20nLCB1
c2VybmFtZTondXNlcicsIGNyZWRlbnRpYWw6J3gnfSx7dXJsOidzdHVuOmJhci5jb20nLCB1c2Vy
bmFtZTondXNlcjInLCBjcmVkZW50aWFsOid4J31dfSwgbnVsbCk7IikKIAotc2hvdWxkTm90VGhy
b3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0pOyIpOwotc2hv
dWxkTm90VGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0s
IHt9KTsiKTsKLXNob3VsZE5vdFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2lj
ZVNlcnZlcnM6W3t1cmw6J3N0dW46Zm9vLmNvbSd9XX0sIHt9KTsiKTsKLXNob3VsZE5vdFRocm93
KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3R1cm46Zm9v
LmNvbScsIGNyZWRlbnRpYWw6J3gnfV19LCB7fSk7Iik7Ci1zaG91bGROb3RUaHJvdygibmV3IHdl
YmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZvby5jb20nLCBj
cmVkZW50aWFsOid4J30se3VybDonc3R1bjpiYXIuY29tJ31dfSwge30pOyIpOwotc2hvdWxkTm90
VGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbe3VybDonc3R1
bjpmb28uY29tJywgdXNlcm5hbWU6J3VzZXInfV19LCB7fSk7Iik7Ci1zaG91bGROb3RUaHJvdygi
bmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZvby5j
b20nLCB1c2VybmFtZTondXNlcicsIGNyZWRlbnRpYWw6J3gnfV19LCB7fSk7Iik7Ci1zaG91bGRO
b3RUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0
dXJuOmZvby5jb20nLCB1c2VybmFtZTondXNlcicsIGNyZWRlbnRpYWw6J3gnfSx7dXJsOidzdHVu
OmJhci5jb20nLCB1c2VybmFtZTondXNlcjInLCBjcmVkZW50aWFsOid4J31dfSwge30pOyIpOwor
ICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7
aWNlU2VydmVyczpbXX0pOyIpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHt9KTsiKTsKKyAgICAgICAgICAg
IHNob3VsZE5vdFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6
W3t1cmw6J3N0dW46Zm9vLmNvbSd9XX0sIHt9KTsiKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRo
cm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3R1cm46
Zm9vLmNvbScsIGNyZWRlbnRpYWw6J3gnfV19LCB7fSk7Iik7CisgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0
dXJuOmZvby5jb20nLCBjcmVkZW50aWFsOid4J30se3VybDonc3R1bjpiYXIuY29tJ31dfSwge30p
OyIpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVj
dGlvbih7aWNlU2VydmVyczpbe3VybDonc3R1bjpmb28uY29tJywgdXNlcm5hbWU6J3VzZXInfV19
LCB7fSk7Iik7CisgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJD
b25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZvby5jb20nLCB1c2VybmFtZTondXNl
cicsIGNyZWRlbnRpYWw6J3gnfV19LCB7fSk7Iik7CisgICAgICAgICAgICBzaG91bGROb3RUaHJv
dygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOid0dXJuOmZv
by5jb20nLCB1c2VybmFtZTondXNlcicsIGNyZWRlbnRpYWw6J3gnfSx7dXJsOidzdHVuOmJhci5j
b20nLCB1c2VybmFtZTondXNlcjInLCBjcmVkZW50aWFsOid4J31dfSwge30pOyIpOwogCi1zaG91
bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtmb29TZXJ2ZXJzOltdfSwge30p
OyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVy
czp0cnVlfSwge30pOyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bih7aWNlU2VydmVyczpbMSwgMiwgM119LCB7fSk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtp
dFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7fV19LCB7fSk7Iik7Ci1zaG91bGRUaHJv
dygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOidmb28nfV19
LCB7fSk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VT
ZXJ2ZXJzOltdfSwge21hbmRhdG9yeTp0cnVlfSk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtp
dFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwge29wdGlvbmFsOmZhbHNlfSk7Iik7
Ci1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltd
fSwge29wdGlvbmFsOnt9fSk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtp
dFJUQ1BlZXJDb25uZWN0aW9uKHtmb29TZXJ2ZXJzOltdfSwge30pOyIpOworICAgICAgICAgICAg
c2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczp0cnVl
fSwge30pOyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29u
bmVjdGlvbih7aWNlU2VydmVyczpbMSwgMiwgM119LCB7fSk7Iik7CisgICAgICAgICAgICBzaG91
bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7fV19LCB7
fSk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOidmb28nfV19LCB7fSk7Iik7CisgICAgICAgICAgICBzaG91
bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwge21h
bmRhdG9yeTp0cnVlfSk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJU
Q1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwge29wdGlvbmFsOmZhbHNlfSk7Iik7Cisg
ICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VT
ZXJ2ZXJzOltdfSwge29wdGlvbmFsOnt9fSk7Iik7CiAKLXNob3VsZE5vdFRocm93KCJuZXcgd2Vi
a2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7bWFuZGF0b3J5Ont2YWxpZF9h
bmRfc3VwcG9ydGVkXzE6MX19KTsiKTsKLXNob3VsZE5vdFRocm93KCJuZXcgd2Via2l0UlRDUGVl
ckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7bWFuZGF0b3J5Ont2YWxpZF9hbmRfc3VwcG9y
dGVkXzE6MSwgdmFsaWRfYW5kX3N1cHBvcnRlZF8yOjF9fSk7Iik7Ci1zaG91bGROb3RUaHJvdygi
bmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwge29wdGlvbmFsOlt7
dmFsaWRfYW5kX3N1cHBvcnRlZF8xOjB9XX0pOyIpOwotc2hvdWxkTm90VGhyb3coIm5ldyB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHtvcHRpb25hbDpbe3ZhbGlkX2Fu
ZF9zdXBwb3J0ZWRfMTowfSx7dmFsaWRfYW5kX3N1cHBvcnRlZF8yOjB9XX0pOyIpOwotc2hvdWxk
Tm90VGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHtv
cHRpb25hbDpbe3ZhbGlkX2J1dF91bnN1cHBvcnRlZF8xOjB9LHt2YWxpZF9idXRfdW5zdXBwb3J0
ZWRfMjowfV19KTsiKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuZXcgd2Via2l0UlRD
UGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7bWFuZGF0b3J5Ont2YWxpZF9hbmRfc3Vw
cG9ydGVkXzE6MX19KTsiKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuZXcgd2Via2l0
UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7bWFuZGF0b3J5Ont2YWxpZF9hbmRf
c3VwcG9ydGVkXzE6MSwgdmFsaWRfYW5kX3N1cHBvcnRlZF8yOjF9fSk7Iik7CisgICAgICAgICAg
ICBzaG91bGROb3RUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJz
OltdfSwge29wdGlvbmFsOlt7dmFsaWRfYW5kX3N1cHBvcnRlZF8xOjB9XX0pOyIpOworICAgICAg
ICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2Vy
dmVyczpbXX0sIHtvcHRpb25hbDpbe3ZhbGlkX2FuZF9zdXBwb3J0ZWRfMTowfSx7dmFsaWRfYW5k
X3N1cHBvcnRlZF8yOjB9XX0pOyIpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyB3
ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHtvcHRpb25hbDpbe3ZhbGlk
X2J1dF91bnN1cHBvcnRlZF8xOjB9LHt2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMjowfV19KTsiKTsK
IAotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpb
XX0sIHttYW5kYXRvcnk6e3ZhbGlkX2FuZF9zdXBwb3J0ZWRfMTo2Nn19KTsiKTsKLXNob3VsZFRo
cm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7bWFuZGF0
b3J5OntpbnZhbGlkOjF9fSk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25u
ZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwge21hbmRhdG9yeTp7dmFsaWRfYnV0X3Vuc3VwcG9ydGVk
XzE6MX19KTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2lj
ZVNlcnZlcnM6W119LCB7bWFuZGF0b3J5Ont2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMToxLCB2YWxp
ZF9hbmRfc3VwcG9ydGVkXzE6MX19KTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVl
ckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7b3B0aW9uYWw6e3ZhbGlkX2FuZF9zdXBwb3J0
ZWRfMTowfX0pOyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7
aWNlU2VydmVyczpbXX0sIHtvcHRpb25hbDpbe3ZhbGlkX2FuZF9zdXBwb3J0ZWRfMTowLHZhbGlk
X2FuZF9zdXBwb3J0ZWRfMjowfV19KTsiKTsKLXNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVl
ckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7b3B0aW9uYWw6W3tpbnZhbGlkOjB9XX0pOyIp
Owotc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpb
XX0sIHt2YWxpZF9hbmRfc3VwcG9ydGVkXzE6MX0pOyIpOwotc2hvdWxkVGhyb3coIm5ldyB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHt2YWxpZF9idXRfdW5zdXBwb3J0
ZWRfMToxfSk7Iik7Ci1zaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtp
Y2VTZXJ2ZXJzOltdfSwge3ZhbGlkX2FuZF9zdXBwb3J0ZWRfMjoxLCBtYW5kYXRvcnk6e3ZhbGlk
X2FuZF9zdXBwb3J0ZWRfMToxfX0pOyIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CisgICAgICAgICAg
ICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltd
fSwge21hbmRhdG9yeTp7dmFsaWRfYW5kX3N1cHBvcnRlZF8xOjY2fX0pOyIpOworICAgICAgICAg
ICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpb
XX0sIHttYW5kYXRvcnk6e2ludmFsaWQ6MX19KTsiKTsKKyAgICAgICAgICAgIHNob3VsZFRocm93
KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W119LCB7bWFuZGF0b3J5
Ont2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMToxfX0pOyIpOworICAgICAgICAgICAgc2hvdWxkVGhy
b3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHttYW5kYXRv
cnk6e3ZhbGlkX2J1dF91bnN1cHBvcnRlZF8xOjEsIHZhbGlkX2FuZF9zdXBwb3J0ZWRfMToxfX0p
OyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bih7aWNlU2VydmVyczpbXX0sIHtvcHRpb25hbDp7dmFsaWRfYW5kX3N1cHBvcnRlZF8xOjB9fSk7
Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9u
KHtpY2VTZXJ2ZXJzOltdfSwge29wdGlvbmFsOlt7dmFsaWRfYW5kX3N1cHBvcnRlZF8xOjAsdmFs
aWRfYW5kX3N1cHBvcnRlZF8yOjB9XX0pOyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5l
dyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczpbXX0sIHtvcHRpb25hbDpbe2lu
dmFsaWQ6MH1dfSk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1Bl
ZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOltdfSwge3ZhbGlkX2FuZF9zdXBwb3J0ZWRfMToxfSk7
Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9u
KHtpY2VTZXJ2ZXJzOltdfSwge3ZhbGlkX2J1dF91bnN1cHBvcnRlZF8xOjF9KTsiKTsKKyAgICAg
ICAgICAgIHNob3VsZFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZl
cnM6W119LCB7dmFsaWRfYW5kX3N1cHBvcnRlZF8yOjEsIG1hbmRhdG9yeTp7dmFsaWRfYW5kX3N1
cHBvcnRlZF8xOjF9fSk7Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENT
ZXNzaW9uRGVzY3JpcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmh0bWwKaW5kZXggODUzNzZhNWRmZTU1ZjI3ODZmOWUwOWQ0ZjU5
NjcwZTJiMzEwZGUyNi4uMzUxODk0NmYxMjQ3ZGYxYzNlNjQ4ZDdmY2VmMjJjZTNmYjQ5ZjcxYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbi5odG1sCkBAIC0xLDM4ICsxLDM4IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi4iKTsKKyAgICA8
aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLiIpOwogCi12YXIgaW5pdGlhbGl6ZXIgPSB7dHlwZToib2ZmZXIiLCBzZHA6ImZvb2Jh
ciJ9OwotdmFyIHNlc3Npb25EZXNjcmlwdGlvbjsKLXNob3VsZE5vdFRocm93KCJzZXNzaW9uRGVz
Y3JpcHRpb24gPSBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKGluaXRpYWxpemVyKTsiKTsKLXNo
b3VsZEJlKCdzZXNzaW9uRGVzY3JpcHRpb24udHlwZScsICcib2ZmZXIiJyk7Ci1zaG91bGRCZSgn
c2Vzc2lvbkRlc2NyaXB0aW9uLnNkcCcsICciZm9vYmFyIicpOworICAgICAgICAgICAgdmFyIGlu
aXRpYWxpemVyID0ge3R5cGU6Im9mZmVyIiwgc2RwOiJmb29iYXIifTsKKyAgICAgICAgICAgIHZh
ciBzZXNzaW9uRGVzY3JpcHRpb247CisgICAgICAgICAgICBzaG91bGROb3RUaHJvdygic2Vzc2lv
bkRlc2NyaXB0aW9uID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbihpbml0aWFsaXplcik7Iik7
CisgICAgICAgICAgICBzaG91bGRCZSgnc2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUnLCAnIm9mZmVy
IicpOworICAgICAgICAgICAgc2hvdWxkQmUoJ3Nlc3Npb25EZXNjcmlwdGlvbi5zZHAnLCAnImZv
b2JhciInKTsKIAotc2hvdWxkTm90VGhyb3coJ2luaXRpYWxpemVyID0gSlNPTi5wYXJzZShKU09O
LnN0cmluZ2lmeShzZXNzaW9uRGVzY3JpcHRpb24pKTsnKTsKKyAgICAgICAgICAgIHNob3VsZE5v
dFRocm93KCdpbml0aWFsaXplciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc2Vzc2lvbkRl
c2NyaXB0aW9uKSk7Jyk7CiAKLXNob3VsZE5vdFRocm93KCJzZXNzaW9uRGVzY3JpcHRpb24gPSBu
ZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKGluaXRpYWxpemVyKTsiKTsKLXNob3VsZEJlKCdzZXNz
aW9uRGVzY3JpcHRpb24udHlwZScsICcib2ZmZXIiJyk7Ci1zaG91bGRCZSgnc2Vzc2lvbkRlc2Ny
aXB0aW9uLnNkcCcsICciZm9vYmFyIicpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coInNl
c3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oaW5pdGlhbGl6ZXIp
OyIpOworICAgICAgICAgICAgc2hvdWxkQmUoJ3Nlc3Npb25EZXNjcmlwdGlvbi50eXBlJywgJyJv
ZmZlciInKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdzZXNzaW9uRGVzY3JpcHRpb24uc2RwJywg
JyJmb29iYXIiJyk7CiAKLXNob3VsZFRocm93KCJuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt9
KTsiKTsKLXNob3VsZFRocm93KCJuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKDUpOyIpOwotc2hv
dWxkVGhyb3coIm5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oJ2Zvb2JhcicpOyIpOwotc2hvdWxk
VGhyb3coIm5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6J2Zvb2JhcicsIHNkcDoneCd9
KTsiKTsKLXNob3VsZFRocm93KCJuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBlOidvZmZl
cicsIHNkcDonJ30pOyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyBSVENTZXNzaW9u
RGVzY3JpcHRpb24oe30pOyIpOworICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyBSVENTZXNz
aW9uRGVzY3JpcHRpb24oNSk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygibmV3IFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbignZm9vYmFyJyk7Iik7CisgICAgICAgICAgICBzaG91bGRUaHJvdygi
bmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZTonZm9vYmFyJywgc2RwOid4J30pOyIpOwor
ICAgICAgICAgICAgc2hvdWxkVGhyb3coIm5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6
J29mZmVyJywgc2RwOicnfSk7Iik7CiAKLXNob3VsZE5vdFRocm93KCJuZXcgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uKHt0eXBlOidvZmZlcicsIHNkcDoneCd9KTsiKTsKLXNob3VsZE5vdFRocm93KCJu
ZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBlOidhbnN3ZXInLCBzZHA6J3gnfSk7Iik7Ci1z
aG91bGROb3RUaHJvdygibmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToncHJhbnN3ZXIn
LCBzZHA6J3gnfSk7Iik7CisgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmV3IFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbih7dHlwZTonb2ZmZXInLCBzZHA6J3gnfSk7Iik7CisgICAgICAgICAgICBz
aG91bGROb3RUaHJvdygibmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZTonYW5zd2VyJywg
c2RwOid4J30pOyIpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyBSVENTZXNzaW9u
RGVzY3JpcHRpb24oe3R5cGU6J3ByYW5zd2VyJywgc2RwOid4J30pOyIpOwogCi13aW5kb3cuc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgorICAgICAgICAgICAg
d2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIDwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9hcmd1bWVudC10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9hcmd1bWVudC10eXBlcy5odG1sCmluZGV4IGVlMDc0N2Q3MjRmMzFmMjliMzUwYzdiNzNi
ZGJhNDgzMjA0NTYxZDMuLmRkYjFhYjMxYmEzZjhhNGY1MjE1OWM1NTNkZGE0MWNmYzNjNDdhYzIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLmh0
bWwKQEAgLTEsMTAgKzEsMTAgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAg
ICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2NvbnN0cnVjdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9jb25z
dHJ1Y3RvcnMuaHRtbAppbmRleCAxNDJkM2MzYjYxOTI3ZjVmY2EzNzZiMWM2YzRhNzQwNjU0YmVi
OTMxLi5iNDZmYTZlOWU4NmY4MzNlYzk3ODczMzMwM2JjZDc1NmE1M2QxZDVmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2NvbnN0cnVjdG9ycy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vY29uc3RydWN0b3JzLmh0bWwKQEAgLTEsMjggKzEs
MjggQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhl
IEpTRVAgUGVlckNvbm5lY3Rpb24gcmVsYXRlZCBjb25zdHJ1Y3RvcnMuIik7CisgICAgPGhlYWQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBKU0VQIFBlZXJDb25uZWN0
aW9uIHJlbGF0ZWQgY29uc3RydWN0b3JzLiIpOwogCi1zaG91bGRCZVRydWUoInR5cGVvZiB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbiA9PT0gJ2Z1bmN0aW9uJyIpOwotc2hvdWxkQmVUcnVlKCJ0eXBl
b2YgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uID09PSAnZnVuY3Rpb24nIik7Ci1zaG91bGRCZVRydWUo
InR5cGVvZiBSVENJY2VDYW5kaWRhdGUgPT09ICdmdW5jdGlvbiciKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidHlwZW9mIHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uID09PSAnZnVuY3Rpb24n
Iik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInR5cGVvZiBSVENTZXNzaW9uRGVzY3JpcHRp
b24gPT09ICdmdW5jdGlvbiciKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidHlwZW9mIFJU
Q0ljZUNhbmRpZGF0ZSA9PT0gJ2Z1bmN0aW9uJyIpOwogCi1zaG91bGRUaHJvdygid2Via2l0UlRD
UGVlckNvbm5lY3Rpb24oKSIpOwotc2hvdWxkVGhyb3coIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbigp
Iik7Ci1zaG91bGRUaHJvdygiUlRDSWNlQ2FuZGlkYXRlKCkiKTsKKyAgICAgICAgICAgIHNob3Vs
ZFRocm93KCJ3ZWJraXRSVENQZWVyQ29ubmVjdGlvbigpIik7CisgICAgICAgICAgICBzaG91bGRU
aHJvdygiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKCkiKTsKKyAgICAgICAgICAgIHNob3VsZFRocm93
KCJSVENJY2VDYW5kaWRhdGUoKSIpOwogCi1zaG91bGROb3RUaHJvdygibmV3IHdlYmtpdFJUQ1Bl
ZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOidzdHVuOi8vZm9vYmFyLmNvbToxMjM0NSd9
XX0sIG51bGwpOyIpOwotc2hvdWxkTm90VGhyb3coIm5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24o
e3R5cGU6J29mZmVyJyxzZHA6J2Zvb2Jhcid9KTsiKTsKLXNob3VsZE5vdFRocm93KCJuZXcgUlRD
SWNlQ2FuZGlkYXRlKHtjYW5kaWRhdGU6J2Zvbyd9KTsiKTsKKyAgICAgICAgICAgIHNob3VsZE5v
dFRocm93KCJuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmw6J3N0
dW46Ly9mb29iYXIuY29tOjEyMzQ1J31dfSwgbnVsbCk7Iik7CisgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygibmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZTonb2ZmZXInLHNkcDonZm9v
YmFyJ30pOyIpOworICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5ldyBSVENJY2VDYW5kaWRh
dGUoe2NhbmRpZGF0ZTonZm9vJ30pOyIpOwogCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNl
OwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+CisgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IGZhbHNlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW5hYmxlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVkLmh0bWwKaW5kZXggMTFlYjU2MGMy
NDFjMWJlMzgzOTYxMGVhMjI4N2I0MTY5ZDA3MTg4Yy4uMTkxOTQ0NjA2MTMxZGIxODVmZDZmZjkw
MjFmNGRlYTQwYTEyM2VkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9lbmFibGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbmFibGVk
Lmh0bWwKQEAgLTEsMTAgKzEsMTAgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9lbmFibGVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2VuYWJsZWQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5Pgog
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2Vy
bWVkaWEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0dXNlcm1lZGlhLmh0
bWwKaW5kZXggMzMyMDQyYjAyYWZjOGIxZjNlMGZiYzk4MjRhZTcxNWE3YzRlYjViOS4uYzk2M2Q1
NzZkZjQyOTZlNzY3MDM4NWIxZDliYTQ5ZTUxNGRjYTVjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXR1c2VybWVkaWEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldHVzZXJtZWRpYS5odG1sCkBAIC0xLDg2ICsxLDg2IEBACiA8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdEdldFVzZXJN
ZWRpYS4iKTsKLQotdmFyIHN0cmVhbTsKLXZhciBlcnJvckFyZzsKLQotZnVuY3Rpb24gZXJyb3Io
KSB7Ci0gICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgY2FsbGVkLicpOwotICAgIGZpbmlz
aEpTVGVzdCgpOwotfQotCi1mdW5jdGlvbiBnb3RTdHJlYW1JbkVycm9yKHMpIHsKLSAgICB0ZXN0
RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1m
dW5jdGlvbiBnb3RTdHJlYW01KHMpIHsKLSAgICBzdHJlYW0gPSBzOwotICAgIHRlc3RQYXNzZWQo
J1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygp
Lmxlbmd0aCcsICcxJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGVycm9y
MShlKSB7Ci0gICAgZXJyb3JBcmcgPSBlOwotICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNr
IGNhbGxlZC4nKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yQXJnLm5hbWUnLCAn
Q29uc3RyYWludE5vdFNhdGlzZmllZEVycm9yJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlcnJvckFyZy5jb25zdHJhaW50TmFtZScsICd2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMScpOwot
Ci0gICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlv
OnttYW5kYXRvcnk6eyd2YWxpZF9hbmRfc3VwcG9ydGVkXzEnOjF9LCBvcHRpb25hbDpbeyd2YWxp
ZF9idXRfdW5zdXBwb3J0ZWRfMSc6MH1dfSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIGVycm9y
KTsiKTsKLX0KLQotZnVuY3Rpb24gZ290U3RyZWFtNChzKSB7Ci0gICAgc3RyZWFtID0gczsKLSAg
ICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwotICAgIHNob3VsZEJlKCdzdHJlYW0u
Z2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwotCi0gICAgc2hvdWxkTm90VGhyb3coIm5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnttYW5kYXRvcnk6eyd2YWxpZF9idXRfdW5z
dXBwb3J0ZWRfMSc6MH0sIG9wdGlvbmFsOltdfSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbUluRXJy
b3IsIGVycm9yMSk7Iik7Ci19Ci0KLWZ1bmN0aW9uIGdvdFN0cmVhbTMocykgewotICAgIHN0cmVh
bSA9IHM7Ci0gICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICBzaG91bGRC
ZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91bGRCZSgn
c3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKLQotICAgIHNob3VsZE5vdFRo
cm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp7bWFuZGF0b3J5Ont9LCBv
cHRpb25hbDpbXX0sIHZpZGVvOnRydWV9LCBnb3RTdHJlYW00LCBlcnJvcik7Iik7Ci19Ci0KLWZ1
bmN0aW9uIGdvdFN0cmVhbTIocykgewotICAgIHN0cmVhbSA9IHM7Ci0gICAgdGVzdFBhc3NlZCgn
U3RyZWFtIGdlbmVyYXRlZC4nKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoJywgJzAnKTsKLSAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCku
bGVuZ3RoJywgJzEnKTsKLQotICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMywgZXJyb3IpOyIp
OwotfQotCi1mdW5jdGlvbiBnb3RTdHJlYW0xKHMpIHsKLSAgICBzdHJlYW0gPSBzOwotICAgIHRl
c3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCcsICcwJyk7Ci0KLSAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTIsIGVycm9yKTsiKQot
fQotCi1zaG91bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86ZmFs
c2UsIHZpZGVvOmZhbHNlfSwgZXJyb3IsIGVycm9yKTsiKQotc2hvdWxkTm90VGhyb3coIm5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBnb3RTdHJlYW0xLCBlcnJvcik7
Iik7Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLXdpbmRvdy5zdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CisgICAgPGhlYWQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cisg
ICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdEdldFVzZXJNZWRpYS4iKTsKKworICAgICAg
ICAgICAgdmFyIHN0cmVhbTsKKyAgICAgICAgICAgIHZhciBlcnJvckFyZzsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gZXJyb3IoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3Ig
Y2FsbGJhY2sgY2FsbGVkLicpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW1JbkVycm9yKHMpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBnb3RTdHJlYW01KHMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOworICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBnZW5lcmF0ZWQuJyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcs
ICcxJyk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yMShlKSB7CisgICAgICAgICAgICAgICAgZXJyb3JB
cmcgPSBlOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGNhbGxl
ZC4nKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vycm9yQXJnLm5h
bWUnLCAnQ29uc3RyYWludE5vdFNhdGlzZmllZEVycm9yJyk7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlcnJvckFyZy5jb25zdHJhaW50TmFtZScsICd2YWxpZF9idXRf
dW5zdXBwb3J0ZWRfMScpOworCisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnttYW5kYXRvcnk6eyd2YWxpZF9hbmRfc3Vw
cG9ydGVkXzEnOjF9LCBvcHRpb25hbDpbeyd2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMSc6MH1dfSwg
dmlkZW86dHJ1ZX0sIGdvdFN0cmVhbTUsIGVycm9yKTsiKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtNChzKSB7CisgICAgICAgICAgICAgICAgc3RyZWFt
ID0gczsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gZ2VuZXJhdGVkLicpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgn
LCAnMScpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3Mo
KS5sZW5ndGgnLCAnMScpOworCisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnttYW5kYXRvcnk6eyd2YWxpZF9idXRfdW5z
dXBwb3J0ZWRfMSc6MH0sIG9wdGlvbmFsOltdfSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbUluRXJy
b3IsIGVycm9yMSk7Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdv
dFN0cmVhbTMocykgeworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKwor
ICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzp7bWFuZGF0b3J5Ont9LCBvcHRpb25hbDpbXX0sIHZpZGVvOnRydWV9LCBnb3RT
dHJlYW00LCBlcnJvcik7Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGdvdFN0cmVhbTIocykgeworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGdlbmVyYXRlZC4nKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsK
KworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3RyZWFtMywgZXJyb3IpOyIpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0xKHMpIHsKKyAg
ICAgICAgICAgICAgICBzdHJlYW0gPSBzOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0
cmVhbSBnZW5lcmF0ZWQuJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0
cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7CisKKyAgICAgICAgICAgICAgICBz
aG91bGROb3RUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86dHJ1ZX0s
IGdvdFN0cmVhbTIsIGVycm9yKTsiKQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzaG91
bGRUaHJvdygibmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVv
OmZhbHNlfSwgZXJyb3IsIGVycm9yKTsiKQorICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBnb3RTdHJlYW0xLCBlcnJv
cik7Iik7CisKKyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbm8taW50ZXJmYWNlLW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9uby1pbnRlcmZhY2Utb2JqZWN0Lmh0bWwKaW5kZXggZGZjNzk0NmJl
ODlmZWJhMTFlNWJlNTc5MDZiYmRhN2UwMzExNmI0MC4uMTVlMzMzM2IxNWE4ZGM2YjY1NzdlY2Zl
Mjc2YjgyODI3MWUwZjQzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9uby1pbnRlcmZhY2Utb2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9uby1pbnRlcmZhY2Utb2JqZWN0Lmh0bWwKQEAgLTEsMTAgKzEsMTAgQEAKIDwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uby1pbnRlcmZhY2Utb2Jq
ZWN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL25vLWludGVy
ZmFjZS1vYmplY3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>