<?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>58752</bug_id>
          
          <creation_ts>2011-04-17 15:52:15 -0700</creation_ts>
          <short_desc>new-run-webkit-tests: obsolete old threading code, part 1: remove dump_render_tree_thread, old message_broker</short_desc>
          <delta_ts>2011-04-18 16:44:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>58753</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>387440</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-17 15:52:15 -0700</bug_when>
    <thetext>new-run-webkit-tests: obsolete old threading code, part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387442</commentid>
    <comment_count>1</comment_count>
      <attachid>89965</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-17 15:55:35 -0700</bug_when>
    <thetext>Created attachment 89965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387467</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-17 16:56:31 -0700</bug_when>
    <thetext>Note that the &quot;real&quot; message_broker code is in message_broker2.py; that will be renamed to message_broker in a subsequent patch.

Also test_runner is unchanged except that the _run() method is stripped out and will raise an error. test_runner2 will be renamed to test_runner in a later patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387804</commentid>
    <comment_count>3</comment_count>
      <attachid>89965</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-18 09:40:32 -0700</bug_when>
    <thetext>Comment on attachment 89965
Patch

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388170</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-18 16:44:06 -0700</bug_when>
    <thetext>Committed r84210: &lt;http://trac.webkit.org/changeset/84210&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89965</attachid>
            <date>2011-04-17 15:55:35 -0700</date>
            <delta_ts>2011-04-18 09:40:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58752-20110417155533.patch</filename>
            <type>text/plain</type>
            <size>32063</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4OTUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YjliOWI4ZjNkNmIzYWZmYTkxZWFjNGIyZGY2MmMyYWE0
YWQwNGUxLi45ZGY4MzlkZjFkMzNiZDE2YTg0Zjc2ZDc3YmMwZjA4Nzc4NzAzODYxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDQtMTcgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IG9ic29sZXRlIG9sZCB0aHJlYWRpbmcgY29kZSwgcGFydCAxCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODc1MgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVtb3ZlcyBzdXBwb3J0IGZvciB0aGUgJ29sZC1pbmxpbmUnIGFuZAorICAgICAg
ICAnb2xkLXRocmVhZHMnIHdvcmtlciBtb2RlbHMsIGFuZCBkZWxldGVzIHRoZSBjb3JyZXNwb25k
aW5nIGNvZGUuCisgICAgICAgIE5vdyB0aGF0IHRoZSBuZXcgY29kZSBpcyBzdGFibGUsIHRoaXMg
c3R1ZmYgaXMgbm8gbG9uZ2VyCisgICAgICAgIG5lY2Vzc2FyeS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVf
dGhyZWFkLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJv
a2VyX3VuaXR0ZXN0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eToKKwogMjAxMS0wNC0xNCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90
aHJlYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmQ1Y2RhOGU2YmE1ZDI2Mzk1MjU0OWMyYmZiNDgwZDhjZTQyYmMyMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDIyNiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24K
LSMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
IENvcHlyaWdodCAoQykgMjAxMCBHYWJvciBSYXBjc2FueWkgKHJnYWJvckBpbmYudS1zemVnZWQu
aHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIiIiVGhpcyBt
b2R1bGUgaW1wbGVtZW50cyBhIHNoYXJlZC1tZW1vcnksIHRocmVhZC1iYXNlZCB2ZXJzaW9uIG9m
IHRoZSB3b3JrZXIKLXRhc2sgaW4gbmV3LXJ1bi13ZWJraXQtdGVzdHM6IGl0IHJlY2VpdmVzIGEg
bGlzdCBvZiB0ZXN0cyBmcm9tIFRlc3RTaGVsbFRocmVhZAotYW5kIHBhc3NlcyB0aGVtIG9uZSBh
dCBhIHRpbWUgdG8gU2luZ2xlVGVzdFJ1bm5lciB0byBleGVjdXRlLiIiIgotCi1pbXBvcnQgbG9n
Z2luZwotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgc2lnbmFsCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGhy
ZWFkCi1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdGltZQotCi1mcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgd29ya2VyX21peGluCi0KLV9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlLiIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAiZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQiKQotCi0KLWNs
YXNzIFRlc3RTaGVsbFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkLCB3b3JrZXJfbWl4aW4uV29ya2Vy
TWl4aW4pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCB3b3JrZXJfbnVt
YmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAgICAgICAgICAgZmlsZW5hbWVfbGlzdF9xdWV1ZSwg
cmVzdWx0X3F1ZXVlKToKLSAgICAgICAgIiIiSW5pdGlhbGl6ZSBhbGwgdGhlIGxvY2FsIHN0YXRl
IGZvciB0aGlzIER1bXBSZW5kZXJUcmVlIHRocmVhZC4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgIHBvcnQ6IGludGVyZmFjZSB0byBwb3J0LXNwZWNpZmljIGhvb2tzCi0gICAgICAgICAgb3B0
aW9uczogY29tbWFuZCBsaW5lIG9wdGlvbnMgYXJndW1lbnQgZnJvbSBvcHRwYXJzZQotICAgICAg
ICAgIHdvcmtlcl9udW1iZXI6IGlkZW50aWZpZXIgZm9yIGEgcGFydGljdWxhciB3b3JrZXIgdGhy
ZWFkLgotICAgICAgICAgIHdvcmtlcl9uYW1lOiBmb3IgbG9nZ2luZy4KLSAgICAgICAgICBmaWxl
bmFtZV9saXN0X3F1ZXVlOiBBIHRocmVhZCBzYWZlIFF1ZXVlIGNsYXNzIHRoYXQgY29udGFpbnMg
bGlzdHMKLSAgICAgICAgICAgICAgb2YgdHVwbGVzIG9mIChmaWxlbmFtZSwgdXJpKSBwYWlycy4K
LSAgICAgICAgICByZXN1bHRfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3MgdGhhdCB3
aWxsIGNvbnRhaW4KLSAgICAgICAgICAgICAgc2VyaWFsaXplZCBUZXN0UmVzdWx0IG9iamVjdHMu
Ci0gICAgICAgICIiIgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0g
ICAgICAgIHNlbGYuX2NhbmNlbGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fZXhjZXB0aW9uX2lu
Zm8gPSBOb25lCi0gICAgICAgIHNlbGYuX25leHRfdGltZW91dCA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fdGhyZWFkX2lkID0gTm9uZQotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBz
ZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29y
a2VyX251bWJlcgotICAgICAgICBzZWxmLl9uYW1lID0gd29ya2VyX25hbWUKLSAgICAgICAgc2Vs
Zi5fZmlsZW5hbWVfbGlzdF9xdWV1ZSA9IGZpbGVuYW1lX2xpc3RfcXVldWUKLSAgICAgICAgc2Vs
Zi5fcmVzdWx0X3F1ZXVlID0gcmVzdWx0X3F1ZXVlCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZ3Jv
dXAgPSBOb25lCi0gICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3QgPSBbXQotICAgICAgICBzZWxm
Ll90ZXN0X2dyb3VwX3RpbWluZ19zdGF0cyA9IHt9Ci0gICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0
cyA9IFtdCi0gICAgICAgIHNlbGYuX251bV90ZXN0cyA9IDAKLSAgICAgICAgc2VsZi5fc3RhcnRf
dGltZSA9IDAKLSAgICAgICAgc2VsZi5fc3RvcF90aW1lID0gMAotICAgICAgICBzZWxmLl9odHRw
X2xvY2tfd2FpdF9iZWdpbiA9IDAKLSAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfZW5kID0g
MAotCi0gICAgZGVmIGNhbmNlbChzZWxmKToKLSAgICAgICAgIiIiU2V0IGEgZmxhZyB0ZWxsaW5n
IHRoaXMgdGhyZWFkIHRvIHF1aXQuIiIiCi0gICAgICAgIHNlbGYuX2NhbmNlbGVkID0gVHJ1ZQot
Ci0gICAgZGVmIGNsZWFyX25leHRfdGltZW91dChzZWxmKToKLSAgICAgICAgIiIiTWFyayBhIGZs
YWcgdGVsbGluZyB0aGlzIHRocmVhZCB0byBzdG9wIHNldHRpbmcgdGltZW91dHMuIiIiCi0gICAg
ICAgIHNlbGYuX3RpbWVvdXQgPSAwCi0KLSAgICBkZWYgZXhjZXB0aW9uX2luZm8oc2VsZik6Ci0g
ICAgICAgICIiIklmIHJ1bigpIHRlcm1pbmF0ZWQgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uLCBy
ZXR1cm4gaXQgaGVyZQotICAgICAgICAoKHR5cGUsIHZhbHVlLCB0cmFjZWJhY2spIHR1cGxlKS4K
LSAgICAgICAgUmV0dXJucyBOb25lIGlmIHJ1bigpIHRlcm1pbmF0ZWQgbm9ybWFsbHkuIE1lYW50
IHRvIGJlIGNhbGxlZCBhZnRlcgotICAgICAgICBqb2luaW5nIHRoaXMgdGhyZWFkLiIiIgotICAg
ICAgICByZXR1cm4gc2VsZi5fZXhjZXB0aW9uX2luZm8KLQotICAgIGRlZiBpZChzZWxmKToKLSAg
ICAgICAgIiIiUmV0dXJuIGEgdGhyZWFkIGlkZW50aWZpZXIuIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLl90aHJlYWRfaWQKLQotICAgIGRlZiBuZXh0X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgICIi
IlJldHVybiB0aGUgdGltZSB0aGUgdGVzdCBpcyBzdXBwb3NlZCB0byBmaW5pc2ggYnkuIiIiCi0g
ICAgICAgIGlmIHNlbGYuX25leHRfdGltZW91dDoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9u
ZXh0X3RpbWVvdXQgKyBzZWxmLl9odHRwX2xvY2tfd2FpdF90aW1lKCkKLSAgICAgICAgcmV0dXJu
IHNlbGYuX25leHRfdGltZW91dAotCi0gICAgZGVmIGdldF90ZXN0X2dyb3VwX3RpbWluZ19zdGF0
cyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyBhIGRpY3Rpb25hcnkgbWFwcGluZyB0ZXN0IGdy
b3VwIHRvIGEgdHVwbGUgb2YKLSAgICAgICAgKG51bWJlciBvZiB0ZXN0cyBpbiB0aGF0IGdyb3Vw
LCB0aW1lIHRvIHJ1biB0aGUgdGVzdHMpIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl90ZXN0X2dy
b3VwX3RpbWluZ19zdGF0cwotCi0gICAgZGVmIGdldF90ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAg
ICAgICIiIlJldHVybiB0aGUgbGlzdCBvZiBhbGwgdGVzdHMgcnVuIG9uIHRoaXMgdGhyZWFkLgot
Ci0gICAgICAgIFRoaXMgaXMgdXNlZCB0byBjYWxjdWxhdGUgcGVyLXRocmVhZCBzdGF0aXN0aWNz
LgotCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCi0KLSAg
ICBkZWYgZ2V0X3RvdGFsX3RpbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBtYXgoc2VsZi5fc3Rv
cF90aW1lIC0gc2VsZi5fc3RhcnRfdGltZSAtCi0gICAgICAgICAgICAgICAgICAgc2VsZi5faHR0
cF9sb2NrX3dhaXRfdGltZSgpLCAwLjApCi0KLSAgICBkZWYgZ2V0X251bV90ZXN0cyhzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuX251bV90ZXN0cwotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAg
ICAgICAgIiIiRGVsZWdhdGUgbWFpbiB3b3JrIHRvIGEgaGVscGVyIG1ldGhvZCBhbmQgd2F0Y2gg
Zm9yIHVuY2F1Z2h0Ci0gICAgICAgIGV4Y2VwdGlvbnMuIiIiCi0KLSAgICAgICAgc2VsZi5fY292
ZXJlZF9ydW4oKQotCi0gICAgZGVmIF9jb3ZlcmVkX3J1bihzZWxmKToKLSAgICAgICAgIyBGSVhN
RTogdGhpcyBpcyBhIHNlcGFyYXRlIHJvdXRpbmUgdG8gd29yayBhcm91bmQgYSBidWcKLSAgICAg
ICAgIyBpbiBjb3ZlcmFnZTogc2VlIGh0dHA6Ly9iaXRidWNrZXQub3JnL25lZC9jb3ZlcmFnZXB5
L2lzc3VlLzg1LgotICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkK
LSAgICAgICAgc2VsZi5fc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgIHNlbGYuX251
bV90ZXN0cyA9IDAKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnJXMgc3Rh
cnRpbmcnICUgKHNlbGYuZ2V0TmFtZSgpKSkKLSAgICAgICAgICAgIHNlbGYuX3J1bih0ZXN0X3J1
bm5lcj1Ob25lLCByZXN1bHRfc3VtbWFyeT1Ob25lKQotICAgICAgICAgICAgX2xvZy5kZWJ1Zygn
JXMgZG9uZSAoJWQgdGVzdHMpJyAlIChzZWxmLmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5nZXRfbnVtX3Rlc3RzKCkpKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRl
cnJ1cHQ6Ci0gICAgICAgICAgICBzZWxmLl9leGNlcHRpb25faW5mbyA9IHN5cy5leGNfaW5mbygp
Ci0gICAgICAgICAgICBfbG9nLmRlYnVnKCIlcyBpbnRlcnJ1cHRlZCIgJSBzZWxmLmdldE5hbWUo
KSkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgIyBTYXZlIHRoZSBleGNlcHRpb24gZm9y
IG91ciBjYWxsZXIgdG8gc2VlLgotICAgICAgICAgICAgc2VsZi5fZXhjZXB0aW9uX2luZm8gPSBz
eXMuZXhjX2luZm8oKQotICAgICAgICAgICAgc2VsZi5fc3RvcF90aW1lID0gdGltZS50aW1lKCkK
LSAgICAgICAgICAgIF9sb2cuZXJyb3IoJyVzIGR5aW5nLCBleGNlcHRpb24gcmFpc2VkJyAlIHNl
bGYuZ2V0TmFtZSgpKQotCi0gICAgICAgIHNlbGYuX3N0b3BfdGltZSA9IHRpbWUudGltZSgpCi0K
LSAgICBkZWYgcnVuX2luX21haW5fdGhyZWFkKHNlbGYsIHRlc3RfcnVubmVyLCByZXN1bHRfc3Vt
bWFyeSk6Ci0gICAgICAgICIiIlRoaXMgaG9vayBhbGxvd3MgdXMgdG8gcnVuIHRoZSB0ZXN0cyBm
cm9tIHRoZSBtYWluIHRocmVhZCBpZgotICAgICAgICAtLW51bS10ZXN0LXNoZWxscz09MSwgaW5z
dGVhZCBvZiBoYXZpbmcgdG8gYWx3YXlzIHJ1biB0d28gb3IgbW9yZQotICAgICAgICB0aHJlYWRz
LiBUaGlzIGFsbG93cyB1cyB0byBkZWJ1ZyB0aGUgdGVzdCBoYXJuZXNzIHdpdGhvdXQgaGF2aW5n
IHRvCi0gICAgICAgIGRvIG11bHRpLXRocmVhZGVkIGRlYnVnZ2luZy4iIiIKLSAgICAgICAgc2Vs
Zi5fcnVuKHRlc3RfcnVubmVyLCByZXN1bHRfc3VtbWFyeSkKLQotICAgIGRlZiBfaHR0cF9sb2Nr
X3dhaXRfdGltZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSB0aW1lIHdoYXQgaHR0cCBs
b2NraW5nIHRha2VzLiIiIgotICAgICAgICBpZiBzZWxmLl9odHRwX2xvY2tfd2FpdF9iZWdpbiA9
PSAwOgotICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgaWYgc2VsZi5faHR0cF9sb2NrX3dh
aXRfZW5kID09IDA6Ci0gICAgICAgICAgICByZXR1cm4gdGltZS50aW1lKCkgLSBzZWxmLl9odHRw
X2xvY2tfd2FpdF9iZWdpbgotICAgICAgICByZXR1cm4gc2VsZi5faHR0cF9sb2NrX3dhaXRfZW5k
IC0gc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4KLQotICAgIGRlZiBfcnVuKHNlbGYsIHRlc3Rf
cnVubmVyLCByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAgICIiIk1haW4gd29yayBlbnRyeSBwb2lu
dCBvZiB0aGUgdGhyZWFkLiBCYXNpY2FsbHkgd2UgcHVsbCB1cmxzIGZyb20gdGhlCi0gICAgICAg
IGZpbGVuYW1lIHF1ZXVlIGFuZCBydW4gdGhlIHRlc3RzIHVudGlsIHdlIHJ1biBvdXQgb2YgdXJs
cy4KLQotICAgICAgICBJZiB0ZXN0X3J1bm5lciBpcyBub3QgTm9uZSwgdGhlbiB3ZSBjYWxsIHRl
c3RfcnVubmVyLlVwZGF0ZVN1bW1hcnkoKQotICAgICAgICB3aXRoIHRoZSByZXN1bHRzIG9mIGVh
Y2ggdGVzdC4iIiIKLQotICAgICAgICAjIEluaXRpYWxpemUgdGhlIHJlYWwgc3RhdGUgb2YgdGhl
IFdvcmtlck1peGluIG5vdyB0aGF0IHdlJ3JlIGV4ZWN1dGluZwotICAgICAgICAjIGluIHRoZSBj
aGlsZCB0aHJlYWQuIFRlY2huaWNhbGx5LCB3ZSBjb3VsZCBoYXZlIGNhbGxlZCB0aGlzIGR1cmlu
ZwotICAgICAgICAjIF9faW5pdF9fKCksIGJ1dCB3ZSB3YWl0IHVudGlsIG5vdyB0byBtYXRjaCBX
b3JrZXIucnVuKCkuCi0gICAgICAgIHNlbGYuc2FmZV9pbml0KHNlbGYuX3BvcnQpCi0KLSAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGlmIHNlbGYuX2NhbmNlbGVkOgotICAgICAgICAg
ICAgICAgIF9sb2cuZGVidWcoJ1Rlc3RpbmcgY2FuY2VsbGVkJykKLSAgICAgICAgICAgICAgICBz
ZWxmLmNsZWFudXAoKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBpZiBs
ZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkgaXMgMDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9j
dXJyZW50X2dyb3VwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0
X2dyb3VwX3RpbWluZ19zdGF0c1tzZWxmLl9jdXJyZW50X2dyb3VwXSA9IFwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIChzZWxmLl9udW1fdGVzdHNfaW5fY3VycmVudF9ncm91cCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lLnRpbWUoKSAtIHNlbGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRf
dGltZSkKLQotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
Y3VycmVudF9ncm91cCwgc2VsZi5fZmlsZW5hbWVfbGlzdCA9IFwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3RfcXVldWUuZ2V0X25vd2FpdCgpCi0gICAgICAgICAg
ICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLmNsZWFu
dXAoKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgICAgIGlmIHNl
bGYuX2N1cnJlbnRfZ3JvdXAgPT0gInRlc3RzX3RvX2h0dHBfbG9jayI6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2JlZ2luID0gdGltZS50aW1lKCkKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jaygpCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCA9IHRpbWUudGltZSgpCi0gICAgICAgICAg
ICAgICAgZWxpZiBzZWxmLl9oYXNfaHR0cF9sb2NrOgotICAgICAgICAgICAgICAgICAgICBzZWxm
LnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQotCi0gICAgICAgICAgICAgICAgc2VsZi5fbnVtX3Rl
c3RzX2luX2N1cnJlbnRfZ3JvdXAgPSBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkKLSAgICAgICAg
ICAgICAgICBzZWxmLl9jdXJyZW50X2dyb3VwX3N0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotCi0g
ICAgICAgICAgICB0ZXN0X2lucHV0ID0gc2VsZi5fZmlsZW5hbWVfbGlzdC5wb3AoMCkKLQotICAg
ICAgICAgICAgIyBXZSBoYXZlIGEgdXJsLCBydW4gdGVzdHMuCi0gICAgICAgICAgICBzZWxmLl9u
dW1fdGVzdHMgKz0gMQotCi0gICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJ1bl90ZXN0X3dpdGhf
dGltZW91dCh0ZXN0X2lucHV0LCBzZWxmLnRpbWVvdXQodGVzdF9pbnB1dCkpCi0KLSAgICAgICAg
ICAgIHNlbGYuY2xlYW5fdXBfYWZ0ZXJfdGVzdCh0ZXN0X2lucHV0LCByZXN1bHQpCi0gICAgICAg
ICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKHJlc3VsdCkKLSAgICAgICAgICAgIHNlbGYu
X3Jlc3VsdF9xdWV1ZS5wdXQocmVzdWx0LmR1bXBzKCkpCi0KLSAgICAgICAgICAgIGlmIHRlc3Rf
cnVubmVyOgotICAgICAgICAgICAgICAgIHRlc3RfcnVubmVyLnVwZGF0ZV9zdW1tYXJ5KHJlc3Vs
dF9zdW1tYXJ5KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZhN2FhOGY2ZTMyM2ZiYjlkNjE4NjkwYzZhZTMwNzQ2
OTExYTJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdl
X2Jyb2tlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3OCArMCwwIEBACi0jIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotIiIiTW9kdWxlIGZvciBoYW5kbGluZyBtZXNzYWdlcywgdGhyZWFkcywgcHJvY2Vzc2Vz
LCBhbmQgY29uY3VycmVuY3kgZm9yIHJ1bi13ZWJraXQtdGVzdHMuCi0KLVRlc3RpbmcgaXMgYWNj
b21wbGlzaGVkIGJ5IGhhdmluZyBhIG1hbmFnZXIgKFRlc3RSdW5uZXIpIGdhdGhlciBhbGwgb2Yg
dGhlCi10ZXN0cyB0byBiZSBydW4sIGFuZCBzZW5kaW5nIG1lc3NhZ2VzIHRvIGEgcG9vbCBvZiB3
b3JrZXJzIChUZXN0U2hlbGxUaHJlYWRzKQotdG8gcnVuIGVhY2ggdGVzdC4gRWFjaCB3b3JrZXIg
Y29tbXVuaWNhdGVzIHdpdGggb25lIGRyaXZlciAodXN1YWxseQotRHVtcFJlbmRlclRyZWUpIHRv
IHJ1biBvbmUgdGVzdCBhdCBhIHRpbWUgYW5kIHRoZW4gY29tcGFyZSB0aGUgb3V0cHV0IGFnYWlu
c3QKLXdoYXQgd2UgZXhwZWN0ZWQgdG8gZ2V0LgotCi1UaGlzIG1vZHVsZXMgcHJvdmlkZXMgYSBt
ZXNzYWdlIGJyb2tlciB0aGF0IGNvbm5lY3RzIHRoZSBtYW5hZ2VyIHRvIHRoZQotd29ya2Vyczog
aXQgcHJvdmlkZXMgYSBtZXNzYWdpbmcgYWJzdHJhY3Rpb24gYW5kIG1lc3NhZ2UgbG9vcHMsIGFu
ZAotaGFuZGxlcyBsYXVuY2hpbmcgdGhyZWFkcyBhbmQvb3IgcHJvY2Vzc2VzIGRlcGVuZGluZyBv
biB0aGUKLXJlcXVlc3RlZCBjb25maWd1cmF0aW9uLgotIiIiCi0KLWltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgdGltZQotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHN0YWNrX3V0
aWxzCi0KLWltcG9ydCBkdW1wX3JlbmRlcl90cmVlX3RocmVhZAotCi1fbG9nID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCi0KLQotZGVmIGdldChwb3J0LCBvcHRpb25zKToKLSAgICAiIiJS
ZXR1cm4gYW4gaW5zdGFuY2Ugb2YgYSBXb3JrZXJNZXNzYWdlQnJva2VyLiIiIgotICAgIHdvcmtl
cl9tb2RlbCA9IG9wdGlvbnMud29ya2VyX21vZGVsCi0gICAgaWYgd29ya2VyX21vZGVsID09ICdv
bGQtaW5saW5lJzoKLSAgICAgICAgcmV0dXJuIElubGluZUJyb2tlcihwb3J0LCBvcHRpb25zKQot
ICAgIGlmIHdvcmtlcl9tb2RlbCA9PSAnb2xkLXRocmVhZHMnOgotICAgICAgICByZXR1cm4gTXVs
dGlUaHJlYWRlZEJyb2tlcihwb3J0LCBvcHRpb25zKQotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Vu
c3VwcG9ydGVkIHZhbHVlIGZvciAtLXdvcmtlci1tb2RlbDogJXMnICUgd29ya2VyX21vZGVsKQot
Ci0KLWNsYXNzIF9Xb3JrZXJTdGF0ZShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
YW1lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAgICBzZWxmLnRocmVhZCA9IE5v
bmUKLQotCi1jbGFzcyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAg
ICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9udW1fd29ya2VycyA9
IGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykKLQotICAgICAgICAjIFRoaXMgbWFw
cyB3b3JrZXIgbmFtZXMgdG8gdGhlaXIgX1dvcmtlclN0YXRlIHZhbHVlcy4KLSAgICAgICAgc2Vs
Zi5fd29ya2VycyA9IHt9Ci0KLSAgICBkZWYgX3RocmVhZHMoc2VsZik6Ci0gICAgICAgIHJldHVy
biB0dXBsZShbdy50aHJlYWQgZm9yIHcgaW4gc2VsZi5fd29ya2Vycy52YWx1ZXMoKV0pCi0KLSAg
ICBkZWYgc3RhcnRfd29ya2VycyhzZWxmLCB0ZXN0X3J1bm5lcik6Ci0gICAgICAgICIiIlN0YXJ0
cyB1cCB0aGUgcG9vbCBvZiB3b3JrZXJzIGZvciBydW5uaW5nIHRoZSB0ZXN0cy4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgdGVzdF9ydW5uZXI6IGEgaGFuZGxlIHRvIHRoZSBtYW5hZ2Vy
L1Rlc3RSdW5uZXIgb2JqZWN0Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLl90ZXN0X3J1bm5l
ciA9IHRlc3RfcnVubmVyCi0gICAgICAgIGZvciB3b3JrZXJfbnVtYmVyIGluIHhyYW5nZShzZWxm
Ll9udW1fd29ya2Vycyk6Ci0gICAgICAgICAgICB3b3JrZXIgPSBfV29ya2VyU3RhdGUoJ3dvcmtl
ci0lZCcgJSB3b3JrZXJfbnVtYmVyKQotICAgICAgICAgICAgd29ya2VyLnRocmVhZCA9IHNlbGYu
X3N0YXJ0X3dvcmtlcih3b3JrZXJfbnVtYmVyLCB3b3JrZXIubmFtZSkKLSAgICAgICAgICAgIHNl
bGYuX3dvcmtlcnNbd29ya2VyLm5hbWVdID0gd29ya2VyCi0gICAgICAgIHJldHVybiBzZWxmLl90
aHJlYWRzKCkKLQotICAgIGRlZiBfc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIsIHdv
cmtlcl9uYW1lKToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotCi0gICAgZGVm
IHJ1bl9tZXNzYWdlX2xvb3Aoc2VsZik6Ci0gICAgICAgICIiIkxvb3AgcHJvY2Vzc2luZyBtZXNz
YWdlcyB1bnRpbCBkb25lLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0K
LSAgICBkZWYgY2FuY2VsX3dvcmtlcnMoc2VsZik6Ci0gICAgICAgICIiIkNhbmNlbC9pbnRlcnJ1
cHQgYW55IHdvcmtlcnMgdGhhdCBhcmUgc3RpbGwgYWxpdmUuIiIiCi0gICAgICAgIHBhc3MKLQot
ICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtIGFueSBuZWNlc3Nhcnkg
Y2xlYW51cCBvbiBzaHV0ZG93bi4iIiIKLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIElubGluZUJy
b2tlcihXb3JrZXJNZXNzYWdlQnJva2VyKToKLSAgICBkZWYgX3N0YXJ0X3dvcmtlcihzZWxmLCB3
b3JrZXJfbnVtYmVyLCB3b3JrZXJfbmFtZSk6Ci0gICAgICAgICMgRklYTUU6IFJlcGxhY2Ugd2l0
aCBzb21ldGhpbmcgdGhhdCBpc24ndCBhIHRocmVhZC4KLSAgICAgICAgdGhyZWFkID0gZHVtcF9y
ZW5kZXJfdHJlZV90aHJlYWQuVGVzdFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLCB3b3JrZXJfbnVtYmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAgICAg
IHNlbGYuX3Rlc3RfcnVubmVyLl9jdXJyZW50X2ZpbGVuYW1lX3F1ZXVlLAotICAgICAgICAgICAg
c2VsZi5fdGVzdF9ydW5uZXIuX3Jlc3VsdF9xdWV1ZSkKLSAgICAgICAgIyBOb3RlOiBEb24ndCBz
dGFydCgpIHRoZSB0aHJlYWQhIElmIHdlIGRpZCwgaXQgd291bGQgYWN0dWFsbHkKLSAgICAgICAg
IyBjcmVhdGUgYW5vdGhlciB0aHJlYWQgYW5kIHN0YXJ0IGV4ZWN1dGluZyBpdCwgYW5kIHdlJ2Qg
bm8gbG9uZ2VyCi0gICAgICAgICMgYmUgc2luZ2xlLXRocmVhZGVkLgotICAgICAgICByZXR1cm4g
dGhyZWFkCi0KLSAgICBkZWYgcnVuX21lc3NhZ2VfbG9vcChzZWxmKToKLSAgICAgICAgdGhyZWFk
ID0gc2VsZi5fdGhyZWFkcygpWzBdCi0gICAgICAgIHRocmVhZC5ydW5faW5fbWFpbl90aHJlYWQo
c2VsZi5fdGVzdF9ydW5uZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fdGVzdF9ydW5uZXIuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnkpCi0gICAgICAgIHNlbGYuX3Rl
c3RfcnVubmVyLnVwZGF0ZSgpCi0KLQotY2xhc3MgTXVsdGlUaHJlYWRlZEJyb2tlcihXb3JrZXJN
ZXNzYWdlQnJva2VyKToKLSAgICBkZWYgX3N0YXJ0X3dvcmtlcihzZWxmLCB3b3JrZXJfbnVtYmVy
LCB3b3JrZXJfbmFtZSk6Ci0gICAgICAgIHRocmVhZCA9IGR1bXBfcmVuZGVyX3RyZWVfdGhyZWFk
LlRlc3RTaGVsbFRocmVhZChzZWxmLl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywg
d29ya2VyX251bWJlciwgd29ya2VyX25hbWUsCi0gICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5l
ci5fY3VycmVudF9maWxlbmFtZV9xdWV1ZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVy
Ll9yZXN1bHRfcXVldWUpCi0gICAgICAgIHRocmVhZC5zdGFydCgpCi0gICAgICAgIHJldHVybiB0
aHJlYWQKLQotICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYpOgotICAgICAgICB0aHJlYWRz
ID0gc2VsZi5fdGhyZWFkcygpCi0gICAgICAgIHdlZGdlZF90aHJlYWRzID0gc2V0KCkKLQotICAg
ICAgICAjIExvb3AgdGhyb3VnaCBhbGwgdGhlIHRocmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBm
aW5pc2guCi0gICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gVHJ1ZQotICAgICAgICB3aGls
ZSBzb21lX3RocmVhZF9pc19hbGl2ZToKLSAgICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZl
ID0gRmFsc2UKLSAgICAgICAgICAgIHQgPSB0aW1lLnRpbWUoKQotICAgICAgICAgICAgZm9yIHRo
cmVhZCBpbiB0aHJlYWRzOgotICAgICAgICAgICAgICAgIGlmIHRocmVhZC5pc0FsaXZlKCk6Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIHRocmVhZCBpbiB3ZWRnZWRfdGhyZWFkczoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICAgICAgc29tZV90aHJl
YWRfaXNfYWxpdmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIG5leHRfdGltZW91dCA9IHRo
cmVhZC5uZXh0X3RpbWVvdXQoKQotICAgICAgICAgICAgICAgICAgICBpZiBuZXh0X3RpbWVvdXQg
YW5kIHQgPiBuZXh0X3RpbWVvdXQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGFja191dGls
cy5sb2dfdGhyZWFkX3N0YXRlKF9sb2cuZXJyb3IsIHRocmVhZC5nZXROYW1lKCksIHRocmVhZC5p
ZCgpLCAiaXMgd2VkZ2VkIikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZC5jbGVhcl9u
ZXh0X3RpbWVvdXQoKQotICAgICAgICAgICAgICAgICAgICAgICAgd2VkZ2VkX3RocmVhZHMuYWRk
KHRocmVhZCkKLQotICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9pbmZvID0gdGhyZWFkLmV4Y2Vw
dGlvbl9pbmZvKCkKLSAgICAgICAgICAgICAgICBpZiBleGNlcHRpb25faW5mbyBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICAgICAgIyBSZS1yYWlzZSB0aGUgdGhyZWFkJ3MgZXhjZXB0aW9u
IGhlcmUgdG8gbWFrZSBpdAotICAgICAgICAgICAgICAgICAgICAjIGNsZWFyIHRoYXQgdGVzdGlu
ZyB3YXMgYWJvcnRlZC4gT3RoZXJ3aXNlLAotICAgICAgICAgICAgICAgICAgICAjIHRoZSB0ZXN0
cyB0aGF0IGRpZCBub3QgcnVuIHdvdWxkIGJlIGFzc3VtZWQKLSAgICAgICAgICAgICAgICAgICAg
IyB0byBoYXZlIHBhc3NlZC4KLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uX2lu
Zm9bMF0sIGV4Y2VwdGlvbl9pbmZvWzFdLCBleGNlcHRpb25faW5mb1syXQotCi0gICAgICAgICAg
ICBzZWxmLl90ZXN0X3J1bm5lci51cGRhdGUoKQotCi0gICAgICAgICAgICBpZiBzb21lX3RocmVh
ZF9pc19hbGl2ZToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCi0KLSAgICAgICAg
aWYgd2VkZ2VkX3RocmVhZHM6Ci0gICAgICAgICAgICBfbG9nLndhcm5pbmcoIkFsbCByZW1haW5p
bmcgdGhyZWFkcyBhcmUgd2VkZ2VkLCBiYWlsaW5nIG91dC4iKQotCi0gICAgZGVmIGNhbmNlbF93
b3JrZXJzKHNlbGYpOgotICAgICAgICB0aHJlYWRzID0gc2VsZi5fdGhyZWFkcygpCi0gICAgICAg
IGZvciB0aHJlYWQgaW4gdGhyZWFkczoKLSAgICAgICAgICAgIHRocmVhZC5jYW5jZWwoKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjRjYjVkMjc1ODI0ODkzYmM2OWViYTFlZDJhNTVi
YmJmNDM2ZmVkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNz
YWdlX2Jyb2tlcl91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE2MSArMCwwIEBACi0j
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBRdWV1ZQotaW1wb3J0IHN5
cwotaW1wb3J0IHRocmVhZAotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHRpbWUKLWltcG9ydCB1
bml0dGVzdAotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgYXJyYXlfc3RyZWFtCi1mcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNhcHR1cmUKLWZyb20gd2Via2l0
cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKLQotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMgaW1w
b3J0IHJ1bl93ZWJraXRfdGVzdHMKLQotaW1wb3J0IG1lc3NhZ2VfYnJva2VyCi0KLQotY2xhc3Mg
VGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc3Rh
cnRlZF9xdWV1ZSwgc3RvcHBpbmdfcXVldWUpOgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9f
aW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3RocmVhZF9pZCA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fc3RhcnRlZF9xdWV1ZSA9IHN0YXJ0ZWRfcXVldWUKLSAgICAgICAgc2VsZi5fc3RvcHBpbmdf
cXVldWUgPSBzdG9wcGluZ19xdWV1ZQotICAgICAgICBzZWxmLl90aW1lb3V0ID0gRmFsc2UKLSAg
ICAgICAgc2VsZi5fdGltZW91dF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgc2VsZi5f
ZXhjZXB0aW9uX2luZm8gPSBOb25lCi0KLSAgICBkZWYgaWQoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl90aHJlYWRfaWQKLQotICAgIGRlZiBnZXROYW1lKHNlbGYpOgotICAgICAgICByZXR1
cm4gIndvcmtlci0wIgotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgc2VsZi5fY292ZXJl
ZF9ydW4oKQotCi0gICAgZGVmIF9jb3ZlcmVkX3J1bihzZWxmKToKLSAgICAgICAgIyBGSVhNRTog
dGhpcyBpcyBhIHNlcGFyYXRlIHJvdXRpbmUgdG8gd29yayBhcm91bmQgYSBidWcKLSAgICAgICAg
IyBpbiBjb3ZlcmFnZTogc2VlIGh0dHA6Ly9iaXRidWNrZXQub3JnL25lZC9jb3ZlcmFnZXB5L2lz
c3VlLzg1LgotICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fc3RhcnRlZF9xdWV1ZS5wdXQoJycpCi0gICAg
ICAgICAgICBtc2cgPSBzZWxmLl9zdG9wcGluZ19xdWV1ZS5nZXQoKQotICAgICAgICAgICAgaWYg
bXNnID09ICdLZXlib2FyZEludGVycnVwdCc6Ci0gICAgICAgICAgICAgICAgcmFpc2UgS2V5Ym9h
cmRJbnRlcnJ1cHQKLSAgICAgICAgICAgIGVsaWYgbXNnID09ICdFeGNlcHRpb24nOgotICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQotICAgICAgICAgICAgZWxpZiBtc2cgPT0gJ1Rp
bWVvdXQnOgotICAgICAgICAgICAgICAgIHNlbGYuX3RpbWVvdXQgPSBUcnVlCi0gICAgICAgICAg
ICAgICAgc2VsZi5fdGltZW91dF9xdWV1ZS5nZXQoKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAg
ICAgICBzZWxmLl9leGNlcHRpb25faW5mbyA9IHN5cy5leGNfaW5mbygpCi0KLSAgICBkZWYgZXhj
ZXB0aW9uX2luZm8oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9leGNlcHRpb25faW5mbwot
Ci0gICAgZGVmIG5leHRfdGltZW91dChzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fdGltZW91dDoK
LSAgICAgICAgICAgIHJldHVybiB0aW1lLnRpbWUoKSAtIDEwCi0gICAgICAgIHJldHVybiB0aW1l
LnRpbWUoKQotCi0gICAgZGVmIGNsZWFyX25leHRfdGltZW91dChzZWxmKToKLSAgICAgICAgc2Vs
Zi5fbmV4dF90aW1lb3V0ID0gTm9uZQotCi1jbGFzcyBUZXN0SGFuZGxlcihsb2dnaW5nLkhhbmRs
ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhc3RyZWFtKToKLSAgICAgICAgbG9nZ2luZy5I
YW5kbGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9IGFzdHJlYW0KLQot
ICAgIGRlZiBlbWl0KHNlbGYsIHJlY29yZCk6Ci0gICAgICAgIHNlbGYuX3N0cmVhbS53cml0ZShz
ZWxmLmZvcm1hdChyZWNvcmQpKQotCi0KLWNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICBjbGFzcyBNb2NrVGVzdFJ1bm5lcihvYmplY3QpOgotICAg
ICAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgZGVm
IF9fZGVsX18oc2VsZik6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgZGVmIHVwZGF0ZShz
ZWxmKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgIGRlZiBydW5fb25lX3RocmVhZChzZWxmLCBt
c2cpOgotICAgICAgICBydW5uZXIgPSBzZWxmLk1vY2tUZXN0UnVubmVyKCkKLSAgICAgICAgcG9y
dCA9IE5vbmUKLSAgICAgICAgb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25zKGNoaWxkX3By
b2Nlc3Nlcz0nMScpCi0gICAgICAgIHN0YXJ0aW5nX3F1ZXVlID0gUXVldWUuUXVldWUoKQotICAg
ICAgICBzdG9wcGluZ19xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgYnJva2VyID0gbWVz
c2FnZV9icm9rZXIuTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0LCBvcHRpb25zKQotICAgICAgICBi
cm9rZXIuX3Rlc3RfcnVubmVyID0gcnVubmVyCi0gICAgICAgIGNoaWxkX3RocmVhZCA9IFRlc3RU
aHJlYWQoc3RhcnRpbmdfcXVldWUsIHN0b3BwaW5nX3F1ZXVlKQotICAgICAgICBicm9rZXIuX3dv
cmtlcnNbJ3dvcmtlci0wJ10gPSBtZXNzYWdlX2Jyb2tlci5fV29ya2VyU3RhdGUoJ3dvcmtlci0w
JykKLSAgICAgICAgYnJva2VyLl93b3JrZXJzWyd3b3JrZXItMCddLnRocmVhZCA9IGNoaWxkX3Ro
cmVhZAotICAgICAgICBjaGlsZF90aHJlYWQuc3RhcnQoKQotICAgICAgICBzdGFydGVkX21zZyA9
IHN0YXJ0aW5nX3F1ZXVlLmdldCgpCi0gICAgICAgIHN0b3BwaW5nX3F1ZXVlLnB1dChtc2cpCi0g
ICAgICAgIHJlcyA9IGJyb2tlci5ydW5fbWVzc2FnZV9sb29wKCkKLSAgICAgICAgaWYgbXNnID09
ICdUaW1lb3V0JzoKLSAgICAgICAgICAgIGNoaWxkX3RocmVhZC5fdGltZW91dF9xdWV1ZS5wdXQo
J2RvbmUnKQotICAgICAgICBjaGlsZF90aHJlYWQuam9pbigxLjApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoY2hpbGRfdGhyZWFkLmlzQWxpdmUoKSkKLSAgICAgICAgcmV0dXJuIHJlcwotCi0g
ICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6Ci0gICAgICAgIGludGVycnVwdGVkID0gc2VsZi5ydW5f
b25lX3RocmVhZCgnJykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbnRlcnJ1cHRlZCkKLQot
ICAgIGRlZiB0ZXN0X2ludGVycnVwdChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
S2V5Ym9hcmRJbnRlcnJ1cHQsIHNlbGYucnVuX29uZV90aHJlYWQsICdLZXlib2FyZEludGVycnVw
dCcpCi0KLSAgICBkZWYgdGVzdF90aW1lb3V0KHNlbGYpOgotICAgICAgICAjIEJlY2F1c2UgdGhl
IHRpbWVvdXQgc2hvd3MgdXAgYXMgYSB3ZWRnZWQgdGhyZWFkLCB0aGlzIGFsc28gdGVzdHMKLSAg
ICAgICAgIyBsb2dfd2VkZ2VkX3dvcmtlcigpLgotICAgICAgICBvYyA9IG91dHB1dGNhcHR1cmUu
T3V0cHV0Q2FwdHVyZSgpCi0gICAgICAgIHN0ZG91dCwgc3RkZXJyID0gb2MuY2FwdHVyZV9vdXRw
dXQoKQotICAgICAgICBsb2dnZXIgPSBtZXNzYWdlX2Jyb2tlci5fbG9nCi0gICAgICAgIGFzdHJl
YW0gPSBhcnJheV9zdHJlYW0uQXJyYXlTdHJlYW0oKQotICAgICAgICBoYW5kbGVyID0gVGVzdEhh
bmRsZXIoYXN0cmVhbSkKLSAgICAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKLSAgICAg
ICAgaW50ZXJydXB0ZWQgPSBzZWxmLnJ1bl9vbmVfdGhyZWFkKCdUaW1lb3V0JykKLSAgICAgICAg
c3Rkb3V0LCBzdGRlcnIgPSBvYy5yZXN0b3JlX291dHB1dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoaW50ZXJydXB0ZWQpCi0gICAgICAgIGxvZ2dlci5oYW5kbGVycy5yZW1vdmUoaGFuZGxl
cikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdBbGwgcmVtYWluaW5nIHRocmVhZHMgYXJlIHdl
ZGdlZCwgYmFpbGluZyBvdXQuJyBpbiBhc3RyZWFtLmdldCgpKQotCi0gICAgZGVmIHRlc3RfZXhj
ZXB0aW9uKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxm
LnJ1bl9vbmVfdGhyZWFkLCAnRXhjZXB0aW9uJykKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9ydW5uZXIucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3J1bm5lci5w
eQppbmRleCBkODFiOWM4ODdhNDI4OTQwNDc5NWExYzZmYzZjMDcwNDQyNTIxNDExLi5hNjY4MGUz
NzY1MDg4NGJjYjI1YTU5YTEwNzAwMmQ4M2U4NDQ0YjZjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3J1bm5lci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X3J1bm5lci5weQpAQCAtNDYsMTAgKzQ2LDggQEAgaW1wb3J0IHJhbmRvbQogaW1wb3J0IHN5
cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2th
Z2UgaW1wb3J0IGR1bXBfcmVuZGVyX3RyZWVfdGhyZWFkCiBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQganNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IK
IGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBqc29uX3Jl
c3VsdHNfZ2VuZXJhdG9yCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2Fn
ZSBpbXBvcnQgbWVzc2FnZV9icm9rZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91
dF9wYWNrYWdlIGltcG9ydCBwcmludGluZwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5
b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgdGVzdF9mYWlsdXJlcwpAQCAtNTMyLDU0ICs1
MzAsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAgICAgICBpbiB0aGUgZm9ybSB7Zmls
ZW5hbWU6ZmlsZW5hbWUsIHRlc3RfcnVuX3RpbWU6dGVzdF9ydW5fdGltZX0KICAgICAgICAgICAg
IHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IG9iamVjdCB0byBwb3B1bGF0ZSB3aXRoIHRoZSByZXN1
bHRzCiAgICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCdT
aGFyZGluZyB0ZXN0cyAuLi4nKQotICAgICAgICBudW1fd29ya2VycyA9IHNlbGYuX251bV93b3Jr
ZXJzKCkKLSAgICAgICAgdGVzdF9saXN0cyA9IHNlbGYuX3NoYXJkX3Rlc3RzKGZpbGVfbGlzdCwK
LSAgICAgICAgICAgIG51bV93b3JrZXJzID4gMSBhbmQgbm90IHNlbGYuX29wdGlvbnMuZXhwZXJp
bWVudGFsX2Z1bGx5X3BhcmFsbGVsKQotICAgICAgICBmaWxlbmFtZV9xdWV1ZSA9IFF1ZXVlLlF1
ZXVlKCkKLSAgICAgICAgZm9yIGl0ZW0gaW4gdGVzdF9saXN0czoKLSAgICAgICAgICAgIGZpbGVu
YW1lX3F1ZXVlLnB1dChpdGVtKQotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRl
KCdTdGFydGluZyAlcyAuLi4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhbW1hci5wbHVyYWxpemUoJ3dvcmtlcicsIG51bV93b3JrZXJzKSkKLSAgICAgICAgc2VsZi5f
bWVzc2FnZV9icm9rZXIgPSBtZXNzYWdlX2Jyb2tlci5nZXQoc2VsZi5fcG9ydCwgc2VsZi5fb3B0
aW9ucykKLSAgICAgICAgYnJva2VyID0gc2VsZi5fbWVzc2FnZV9icm9rZXIKLSAgICAgICAgc2Vs
Zi5fY3VycmVudF9maWxlbmFtZV9xdWV1ZSA9IGZpbGVuYW1lX3F1ZXVlCi0gICAgICAgIHNlbGYu
X2N1cnJlbnRfcmVzdWx0X3N1bW1hcnkgPSByZXN1bHRfc3VtbWFyeQotCi0gICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLmRyeV9ydW46Ci0gICAgICAgICAgICB0aHJlYWRzID0gYnJva2VyLnN0
YXJ0X3dvcmtlcnMoc2VsZikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRocmVhZHMgPSB7
fQotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCJTdGFydGluZyB0ZXN0aW5n
IC4uLiIpCi0gICAgICAgIGtleWJvYXJkX2ludGVycnVwdGVkID0gRmFsc2UKLSAgICAgICAgaW50
ZXJydXB0ZWQgPSBGYWxzZQotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGJyb2tlci5ydW5fbWVzc2FnZV9sb29w
KCkKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgICAg
ICBfbG9nLmluZm8oIkludGVycnVwdGVkLCBleGl0aW5nIikKLSAgICAgICAgICAgICAgICBicm9r
ZXIuY2FuY2VsX3dvcmtlcnMoKQotICAgICAgICAgICAgICAgIGtleWJvYXJkX2ludGVycnVwdGVk
ID0gVHJ1ZQotICAgICAgICAgICAgICAgIGludGVycnVwdGVkID0gVHJ1ZQotICAgICAgICAgICAg
ZXhjZXB0IFRlc3RSdW5JbnRlcnJ1cHRlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBf
bG9nLmluZm8oZS5yZWFzb24pCi0gICAgICAgICAgICAgICAgYnJva2VyLmNhbmNlbF93b3JrZXJz
KCkKLSAgICAgICAgICAgICAgICBpbnRlcnJ1cHRlZCA9IFRydWUKLSAgICAgICAgICAgIGV4Y2Vw
dDoKLSAgICAgICAgICAgICAgICAjIFVuZXhwZWN0ZWQgZXhjZXB0aW9uOyBkb24ndCB0cnkgdG8g
Y2xlYW4gdXAgd29ya2Vycy4KLSAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkV4Y2VwdGlvbiBy
YWlzZWQsIGV4aXRpbmciKQotICAgICAgICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAgdGhyZWFk
X3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MgPSBcCi0gICAg
ICAgICAgICBzZWxmLl9jb2xsZWN0X3RpbWluZ19pbmZvKHRocmVhZHMpCi0KLSAgICAgICAgYnJv
a2VyLmNsZWFudXAoKQotICAgICAgICBzZWxmLl9tZXNzYWdlX2Jyb2tlciA9IE5vbmUKLSAgICAg
ICAgcmV0dXJuIChpbnRlcnJ1cHRlZCwga2V5Ym9hcmRfaW50ZXJydXB0ZWQsIHRocmVhZF90aW1p
bmdzLCB0ZXN0X3RpbWluZ3MsCi0gICAgICAgICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWlu
Z3MpCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCiAgICAgZGVmIHVwZGF0
ZShzZWxmKToKICAgICAgICAgc2VsZi51cGRhdGVfc3VtbWFyeShzZWxmLl9jdXJyZW50X3Jlc3Vs
dF9zdW1tYXJ5KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggZWE0MmNjMzY4YTVlMGVlMDM2YjEyNzM5NmU0
ZTFkYmQyNTMyZWRhYS4uOTU0ZTEwNjlhYzRlNDkwNWVhMTY3YzdhMzE3MTI5ODVhMDFjNjQyNyAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzLnB5CkBAIC04OSwxMSArODksNyBAQCBkZWYgcnVuKHBvcnQsIG9wdGlvbnMs
IGFyZ3MsIHJlZ3VsYXJfb3V0cHV0PXN5cy5zdGRlcnIsCiAgICAgIyBpbiBhIHRyeS9maW5hbGx5
IHRvIGVuc3VyZSB0aGF0IHdlIGNsZWFuIHVwIHRoZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAg
ICAgbnVtX3VuZXhwZWN0ZWRfcmVzdWx0cyA9IC0xCiAgICAgdHJ5OgotICAgICAgICBpZiBvcHRp
b25zLndvcmtlcl9tb2RlbCBpbiAoJ2lubGluZScsICd0aHJlYWRzJywgJ3Byb2Nlc3NlcycpOgot
ICAgICAgICAgICAgcnVubmVyID0gdGVzdF9ydW5uZXIyLlRlc3RSdW5uZXIyKHBvcnQsIG9wdGlv
bnMsIHByaW50ZXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBydW5uZXIgPSB0ZXN0X3J1
bm5lci5UZXN0UnVubmVyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpCi0KKyAgICAgICAgcnVubmVy
ID0gdGVzdF9ydW5uZXIyLlRlc3RSdW5uZXIyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpCiAgICAg
ICAgIHJ1bm5lci5fcHJpbnRfY29uZmlnKCkKIAogICAgICAgICBwcmludGVyLnByaW50X3VwZGF0
ZSgiQ29sbGVjdGluZyB0ZXN0cyAuLi4iKQpAQCAtMTM1LDkgKzEzMSw5IEBAIGRlZiBfc2V0X3Vw
X2Rlcml2ZWRfb3B0aW9ucyhwb3J0X29iaiwgb3B0aW9ucyk6CiAgICAgaWYgb3B0aW9ucy53b3Jr
ZXJfbW9kZWwgaXMgTm9uZToKICAgICAgICAgb3B0aW9ucy53b3JrZXJfbW9kZWwgPSBwb3J0X29i
ai5kZWZhdWx0X3dvcmtlcl9tb2RlbCgpCiAKLSAgICBpZiBvcHRpb25zLndvcmtlcl9tb2RlbCBp
biAoJ2lubGluZScsICdvbGQtaW5saW5lJyk6CisgICAgaWYgb3B0aW9ucy53b3JrZXJfbW9kZWwg
PT0gJ2lubGluZSc6CiAgICAgICAgIGlmIG9wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzIGFuZCBpbnQo
b3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpID4gMToKLSAgICAgICAgICAgIHdhcm5pbmdzLmFwcGVu
ZCgiLS13b3JrZXItbW9kZWw9JXMgb3ZlcnJpZGVzIC0tY2hpbGQtcHJvY2Vzc2VzIiAlIG9wdGlv
bnMud29ya2VyX21vZGVsKQorICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKCItLXdvcmtlci1t
b2RlbD1pbmxpbmUgb3ZlcnJpZGVzIC0tY2hpbGQtcHJvY2Vzc2VzIikKICAgICAgICAgb3B0aW9u
cy5jaGlsZF9wcm9jZXNzZXMgPSAiMSIKICAgICBpZiBub3Qgb3B0aW9ucy5jaGlsZF9wcm9jZXNz
ZXM6CiAgICAgICAgIG9wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzID0gb3MuZW52aXJvbi5nZXQoIldF
QktJVF9URVNUX0NISUxEX1BST0NFU1NFUyIsCkBAIC0zNzgsOCArMzc0LDggQEAgZGVmIHBhcnNl
X2FyZ3MoYXJncz1Ob25lKToKICAgICAgICAgICAgIGhlbHA9Ik51bWJlciBvZiBEdW1wUmVuZGVy
VHJlZXMgdG8gcnVuIGluIHBhcmFsbGVsLiIpLAogICAgICAgICAjIEZJWE1FOiBEaXNwbGF5IGRl
ZmF1bHQgbnVtYmVyIG9mIGNoaWxkIHByb2Nlc3NlcyB0aGF0IHdpbGwgcnVuLgogICAgICAgICBv
cHRwYXJzZS5tYWtlX29wdGlvbigiLS13b3JrZXItbW9kZWwiLCBhY3Rpb249InN0b3JlIiwKLSAg
ICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0oImNvbnRyb2xzIHdvcmtlciBtb2RlbC4gVmFs
aWQgdmFsdWVzIGFyZSAnb2xkLWlubGluZScsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIidvbGQtdGhyZWFkcycsICdpbmxpbmUnLCAndGhyZWFkcycsIGFuZCAncHJvY2Vzc2Vz
Jy4iKSksCisgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9KCJjb250cm9scyB3b3JrZXIg
bW9kZWwuIFZhbGlkIHZhbHVlcyBhcmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiJ2lubGluZScsICd0aHJlYWRzJywgYW5kICdwcm9jZXNzZXMnLiIpKSwKICAgICAgICAgb3B0
cGFyc2UubWFrZV9vcHRpb24oIi0tZXhwZXJpbWVudGFsLWZ1bGx5LXBhcmFsbGVsIiwKICAgICAg
ICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICBo
ZWxwPSJydW4gYWxsIHRlc3RzIGluIHBhcmFsbGVsIiksCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0
dGVzdC5weQppbmRleCA2ZjM5YTkyMDcwODUzNjU3ZTIzZjEyNGU2ZDBkYjFiZjI1ZDA4NWIzLi40
ODhlY2U3ZmFiZTk2YjI0M2U2NmViMjRjMWVlOGQ4YjJiYjljMWI1IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHNfdW5pdHRlc3QucHkKQEAgLTU0LDcgKzU0LDYgQEAgZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtIGltcG9ydCBmaWxlc3lzdGVtX21vY2sKIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQg
bW9ja3Rvb2wKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0CiBmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQgcnVuX3dlYmtpdF90ZXN0cwotZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IGR1bXBfcmVuZGVyX3RyZWVfdGhy
ZWFkCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3QgaW1wb3J0IFRlc3RQb3J0
LCBUZXN0RHJpdmVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3RfZmlsZXMg
aW1wb3J0IGlzX3JlZmVyZW5jZV9odG1sX2ZpbGUKIGZyb20gd2Via2l0cHkucHl0aG9uMjQudmVy
c2lvbmluZyBpbXBvcnQgY29tcGFyZV92ZXJzaW9uCkBAIC00OTQsMTUgKzQ5Myw2IEBAIGNsYXNz
IE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9ydW5fb3JkZXJfX2lu
bGluZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfcnVuX29yZGVyKCdpbmxpbmUnKQogCi0g
ICAgZGVmIHRlc3RfcnVuX29yZGVyX19vbGRfaW5saW5lKHNlbGYpOgotICAgICAgICBzZWxmLmFz
c2VydF9ydW5fb3JkZXIoJ29sZC1pbmxpbmUnKQotCi0gICAgZGVmIHRlc3RfcnVuX29yZGVyX190
aHJlYWRzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF9ydW5fb3JkZXIoJ29sZC1pbmxpbmUn
LCBjaGlsZF9wcm9jZXNzZXM9JzInKQotCi0gICAgZGVmIHRlc3RfcnVuX29yZGVyX19vbGRfdGhy
ZWFkcyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRfcnVuX29yZGVyKCdvbGQtdGhyZWFkcycs
IGNoaWxkX3Byb2Nlc3Nlcz0nMicpCi0KICAgICBkZWYgdGVzdF90b2xlcmFuY2Uoc2VsZik6CiAg
ICAgICAgIGNsYXNzIEltYWdlRGlmZlRlc3RQb3J0KFRlc3RQb3J0KToKICAgICAgICAgICAgIGRl
ZiBkaWZmX2ltYWdlKHNlbGYsIGV4cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29udGVudHMsCkBA
IC01MzgsMTIgKzUyOCw2IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
LS13b3JrZXItbW9kZWw9aW5saW5lIG92ZXJyaWRlcyAtLWNoaWxkLXByb2Nlc3Nlc1xuJyBpbiBl
cnIuZ2V0KCkpCiAKLSAgICBkZWYgdGVzdF93b3JrZXJfbW9kZWxfX29sZF9pbmxpbmUoc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXNzaW5nX3J1bihbJy0td29ya2VyLW1vZGVsJywg
J29sZC1pbmxpbmUnXSkpCi0KLSAgICBkZWYgdGVzdF93b3JrZXJfbW9kZWxfX29sZF90aHJlYWRz
KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUocGFzc2luZ19ydW4oWyctLXdvcmtlci1t
b2RlbCcsICdvbGQtdGhyZWFkcyddKSkKLQogICAgIGRlZiB0ZXN0X3dvcmtlcl9tb2RlbF9fcHJv
Y2Vzc2VzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIGZpeCB0
ZXN0LXdlYmtpdHB5IHRvIHdvcmsgcHJvcGVybHkKICAgICAgICAgIyB3aXRoIHRoZSBtdWx0aXBy
b2Nlc3NpbmcgbW9kdWxlIChidWcgNTQ1MjApLgo=
</data>
<flag name="review"
          id="82682"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>