<?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>224563</bug_id>
          
          <creation_ts>2021-04-14 11:12:45 -0700</creation_ts>
          <short_desc>Store whether a test is slow on TestInput</short_desc>
          <delta_ts>2021-05-20 06:48:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=161626</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Sneddon [:gsnedders]">gsnedders</reporter>
          <assigned_to name="Sam Sneddon [:gsnedders]">gsnedders</assigned_to>
          <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750235</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-04-14 11:12:45 -0700</bug_when>
    <thetext>Bug 161626 introduced test-objects.json, however no test-objects.json files were ever added and this has thus been permanently dead code. Given it&apos;s lack of usage, let&apos;s remove it.

Additionally, with it gone, the expectations is once against the canonical source of knowledge about whether a test is slow and we don&apos;t need to communicate this through all the various components.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750248</commentid>
    <comment_count>1</comment_count>
      <attachid>426022</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-04-14 11:32:10 -0700</bug_when>
    <thetext>Created attachment 426022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750604</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-04-15 07:22:35 -0700</bug_when>
    <thetext>Somehow I totally missed the file (did I look in Tools or something equally silly?), and this is in fact used. Hmm. I wonder what to do here instead; having two different places where we store this metadata (especially within webkitpy&apos;s data model) is somewhat clumsy and annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750635</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-04-15 08:52:15 -0700</bug_when>
    <thetext>(In reply to Sam Sneddon [:gsnedders] from comment #2)
&gt; Somehow I totally missed the file (did I look in Tools or something equally
&gt; silly?), and this is in fact used. Hmm. I wonder what to do here instead;
&gt; having two different places where we store this metadata (especially within
&gt; webkitpy&apos;s data model) is somewhat clumsy and annoying.

Seems like all the effected tests are http tests....is there any reason we can&apos;t convert them to normal test expectations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752829</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-21 11:13:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/76969468&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761757</commentid>
    <comment_count>5</comment_count>
      <attachid>429110</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-05-19 16:18:08 -0700</bug_when>
    <thetext>Created attachment 429110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761758</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-05-19 16:21:10 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #3)
&gt; (In reply to Sam Sneddon [:gsnedders] from comment #2)
&gt; &gt; Somehow I totally missed the file (did I look in Tools or something equally
&gt; &gt; silly?), and this is in fact used. Hmm. I wonder what to do here instead;
&gt; &gt; having two different places where we store this metadata (especially within
&gt; &gt; webkitpy&apos;s data model) is somewhat clumsy and annoying.
&gt; 
&gt; Seems like all the effected tests are http tests....is there any reason we
&gt; can&apos;t convert them to normal test expectations?

We could, though there was concern about bloating TestExpectations with WPT before.

I think some of this is also related to the fact they&apos;d need to be marked as slow in _every_ TestExpectations file, unless I&apos;m misremembering how platform-specific expectations are added.

That said, this new patch does a bunch of refactoring that we need to do anyway, and with that done it becomes pretty easy to support tests-options.json again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761933</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-20 06:48:50 -0700</bug_when>
    <thetext>Committed r277781 (237942@main): &lt;https://commits.webkit.org/237942@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429110.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426022</attachid>
            <date>2021-04-14 11:32:10 -0700</date>
            <delta_ts>2021-05-19 16:18:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224563-20210414193208.patch</filename>
            <type>text/plain</type>
            <size>17945</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzk1YjliN2YxZWExYTJmYmVkMDkyZGJmZGI3YTljNzM0
MGI0OTkzYy4uNjY4ZDQyZmQ3NmEwOWQ0NDgyMmQyOGMzNzc4MDQ0NzIxNWI4OTUxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDIxLTA0LTE0ICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIFRlc3RFeHBlY3RhdGlvbnMgZGlyZWN0bHkgdG8gY2hlY2sgd2hldGhlciBhIHRl
c3QgaXMgc2xvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI0NTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyByZW1vdmVzIHN1cHBvcnQgZm9yIHRlc3Qtb2JqZWN0cy5qc29uIGZpbGVzLCBhcyBu
b25lIHdlcmUgZXZlciBhZGRlZCBhbmQgdGhpcyBoYXMgdGh1cworICAgICAgICBiZWVuIHBlcm1h
bmVudGx5IGRlYWQgY29kZSwgYWxsb3dpbmcgdXMgdG8gc2ltcGxpZnkgb3VyIGNvZGUgdG8gaW5z
cGVjdCB0aGUgZXhwZWN0YXRpb24KKyAgICAgICAgb2JqZWN0IGRpcmVjdGx5IGZyb20gVGVzdFJ1
blJlc3VsdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVy
Ll9faW5pdF9fKTogUmVtb3ZlIHRlc3RfaXNfc2xvd19mbiBhcmd1bWVudAorICAgICAgICAoTGF5
b3V0VGVzdFJ1bm5lci5fbWFya19pbnRlcnJ1cHRlZF90ZXN0c19hc19za2lwcGVkKTogU3RvcCBw
YXNzaW5nIHRlc3RfaXNfc2xvdworICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fdXBkYXRlX3N1
bW1hcnlfd2l0aF9yZXN1bHQpOiBTdG9wIHBhc3NpbmcgdGVzdF9pc19zbG93CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVu
bmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lclRlc3RzLl9ydW5uZXIp
OiBTdG9wIHBhc3NpbmcgdGVzdF9pc19zbG93CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIpOiBJ
bXByb3ZlIGRvY3N0cmluZworICAgICAgICAoTWFuYWdlci5fX2luaXRfXyk6IFN0b3AgcGFzc2lu
ZyB0ZXN0X2lzX3Nsb3cKKyAgICAgICAgKE1hbmFnZXIuX3Rlc3RfaXNfc2xvdyk6IFN0b3AgcGFz
c2luZyB0ZXN0X2lzX3Nsb3cKKyAgICAgICAgKE1hbmFnZXIucnVuKTogU3RvcCBwYXNzaW5nIHRl
c3RfaXNfc2xvdworICAgICAgICAoTWFuYWdlci5fbG9va19mb3JfbmV3X2NyYXNoX2xvZ3MpOiBT
dG9wIHBhc3NpbmcgdGVzdF9pc19zbG93CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChUZXN0UnVuUmVz
dWx0cy5hZGQpOiBSZW1vdmUgdGVzdF9pc19zbG93X2ZuIGFyZ3VtZW50OyBxdWVyeSBUZXN0RXhw
ZWN0YXRpb25zIHRvIGNoZWNrIGlmIHRlc3QgaXMgc2xvdworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAoc3VtbWFyaXplZF9yZXN1bHRzKTogU3RvcCBwYXNzaW5nIHRlc3RfaXNfc2xvdwor
CiAyMDIxLTA0LTE0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgog
CiAgICAgICAgIFNlcnZpY2Ugd29ya2VyIHNvZnQtdXBkYXRlIGxvYWRzIG5vdCBiZWluZyBtYXJr
ZWQgYXBwLWJvdW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKaW5k
ZXggMmU2MGIzMTJkZTZlYzhiMjNiNzM3MmE3YzcyNWY2NzE1OGNkNjZlYy4uYTNlY2FlMzg3NTQ5
MmRjMjZiNDBkNmZkMzY2ODc4YWM1ZGM4NDBmMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91
dF90ZXN0X3J1bm5lci5weQpAQCAtNjMsMTIgKzYzLDExIEBAIGNsYXNzIFRlc3RSdW5JbnRlcnJ1
cHRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgogCiAKIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2Jq
ZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVz
dWx0c19kaXJlY3RvcnksIHRlc3RfaXNfc2xvd19mbiwgbmVlZHNfaHR0cD1GYWxzZSwgbmVlZHNf
d2Vic29ja2V0cz1GYWxzZSwgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyPUZhbHNlKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0c19k
aXJlY3RvcnksIG5lZWRzX2h0dHA9RmFsc2UsIG5lZWRzX3dlYnNvY2tldHM9RmFsc2UsIG5lZWRz
X3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcj1GYWxzZSk6CiAgICAgICAgIHNlbGYuX29wdGlvbnMg
PSBvcHRpb25zCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3ByaW50
ZXIgPSBwcmludGVyCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0c19k
aXJlY3RvcnkKLSAgICAgICAgc2VsZi5fdGVzdF9pc19zbG93ID0gdGVzdF9pc19zbG93X2ZuCiAg
ICAgICAgIHNlbGYuX25lZWRzX2h0dHAgPSBuZWVkc19odHRwCiAgICAgICAgIHNlbGYuX25lZWRz
X3dlYnNvY2tldHMgPSBuZWVkc193ZWJzb2NrZXRzCiAgICAgICAgIHNlbGYuX25lZWRzX3dlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlciA9IG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcgpAQCAt
MTYyLDcgKzE2MSw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAjIEZJWE1FOiBXZSBwcm9iYWJseSBuZWVkIHRvIGxvb3AgaGVyZSBpZiB0aGVyZSBh
cmUgbXVsdGlwbGUgaXRlcmF0aW9ucy4KICAgICAgICAgICAgICAgICAjIEZJWE1FOiBBbHNvLCB0
aGVzZSByZXN1bHRzIGFyZSByZWFsbHkgbmVpdGhlciBleHBlY3RlZCBub3IgdW5leHBlY3RlZC4g
V2UgcHJvYmFibHkKICAgICAgICAgICAgICAgICAjIG5lZWQgYSB0aGlyZCB0eXBlIG9mIHJlc3Vs
dC4KLSAgICAgICAgICAgICAgICBydW5fcmVzdWx0cy5hZGQocmVzdWx0LCBleHBlY3RlZD1GYWxz
ZSwgdGVzdF9pc19zbG93PXNlbGYuX3Rlc3RfaXNfc2xvdyh0ZXN0X2lucHV0LnRlc3RfbmFtZSkp
CisgICAgICAgICAgICAgICAgcnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2Up
CiAKICAgICBkZWYgX2ludGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyhzZWxmLCBydW5fcmVz
dWx0cyk6CiAgICAgICAgICMgTm90ZTogVGhlIG1lc3NhZ2VzIGluIHRoaXMgbWV0aG9kIGFyZSBj
b25zdHJ1Y3RlZCB0byBtYXRjaCBvbGQtcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTk1LDcgKzE5NCw3
IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgIGV4cF9zdHIg
PSBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5leHBlY3RhdGlvbnNfdG9fc3RyaW5nKGV4cGVj
dGF0aW9ucykKICAgICAgICAgICAgIGdvdF9zdHIgPSBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwo
KS5leHBlY3RhdGlvbl90b19zdHJpbmcocmVzdWx0LnR5cGUpCiAKLSAgICAgICAgcnVuX3Jlc3Vs
dHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQsIHNlbGYuX3Rlc3RfaXNfc2xvdyhyZXN1bHQudGVzdF9u
YW1lKSkKKyAgICAgICAgcnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQpCiAKICAgICAg
ICAgc2VsZi5fcHJpbnRlci5wcmludF9maW5pc2hlZF90ZXN0KHJlc3VsdCwgZXhwZWN0ZWQsIGV4
cF9zdHIsIGdvdF9zdHIpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0
X3J1bm5lcl91bml0dGVzdC5weQppbmRleCAwZjI3MjFjOTJlOTRkYWE1NDc5MTdjNTU4YTYzZDI0
N2E5ZGVlZDcwLi5hZmU4OTM2OWJkMzQ0Zjc5ODQ4YmY2NGE2MDI0NTZmNWI1YWExMTNmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5
CkBAIC03OSw3ICs3OSw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXJUZXN0cyh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgcG9ydCA9IHBv
cnQgb3IgaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KG9wdGlvbnMucGxhdGZvcm0sIG9wdGlvbnM9b3B0
aW9ucykKLSAgICAgICAgcmV0dXJuIExheW91dFRlc3RSdW5uZXIob3B0aW9ucywgcG9ydCwgRmFr
ZVByaW50ZXIoKSwgcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBsYW1iZGEgdGVzdF9uYW1lOiBG
YWxzZSkKKyAgICAgICAgcmV0dXJuIExheW91dFRlc3RSdW5uZXIob3B0aW9ucywgcG9ydCwgRmFr
ZVByaW50ZXIoKSwgcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpKQogCiAgICAgZGVmIF9ydW5fdGVz
dHMoc2VsZiwgcnVubmVyLCB0ZXN0cyk6CiAgICAgICAgIHRlc3RfaW5wdXRzID0gW1Rlc3RJbnB1
dChUZXN0KHRlc3QpLCA2MDAwKSBmb3IgdGVzdCBpbiB0ZXN0c10KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5
CmluZGV4IDcyOGExNjUwMzczOWFjY2M2OGE1NGY0MDM2MmU3MDdmOTIxOGU1NTguLjRhM2UwOThi
YWFmNjY0ZjczZGUxM2FmZmMzOGU0ZmFlZjFmYWNkYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpA
QCAtNjYsOCArNjYsMTMgQEAgVGVzdEV4cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0YXRpb25zLlRl
c3RFeHBlY3RhdGlvbnMKIAogCiBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFz
cyBmb3IgbWFuYWdpbmcgcnVubmluZyBhIHNlcmllcyBvZiB0ZXN0cyBvbiBhIHNlcmllcyBvZiBs
YXlvdXQKLSAgICB0ZXN0IGZpbGVzLiIiIgorICAgICIiIlRlc3QgZXhlY3V0aW9uIG1hbmFnZXIK
KworICAgIFRoaXMgY2xhc3MgaGFzIHRoZSBtYWluIGVudHJ5IHBvaW50cyBmb3IgcnVuLXdlYmtp
dC10ZXN0czsgdGhlIC4ucnVuX3dlYmtpdF90ZXN0cyBtb2R1bGUgYWxtb3N0CisgICAgZXhjbHVz
aXZlbHkganVzdCBoYW5kbGVzIENMSSBvcHRpb25zLiBJdCBvcmNoZXN0cmF0ZXMgY29sbGVjdGlu
ZyB0aGUgdGVzdHMgKHRocm91Z2gKKyAgICBMYXlvdXRUZXN0RmluZGVyKSwgcnVubmluZyB0aGVt
IChMYXlvdXRUZXN0UnVubmVyKSwgYW5kIHRoZW4gZGlzcGxheWluZyB0aGUgcmVzdWx0cworICAg
IChUZXN0UmVzdWx0V3JpdGVyL1ByaW50ZXIpLgorICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpOgogICAgICAgICAiIiJJbml0aWFsaXplIHRl
c3QgcnVubmVyIGRhdGEgc3RydWN0dXJlcy4KQEAgLTgyLDE0ICs4NywxMCBAQCBjbGFzcyBNYW5h
Z2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNl
bGYuX3ByaW50ZXIgPSBwcmludGVyCiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IE9yZGVy
ZWREaWN0KCkKLSAgICAgICAgc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZID0gJ0xheW91dFRl
c3RzJwogICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX3BvcnQucmVzdWx0
c19kaXJlY3RvcnkoKQogICAgICAgICBzZWxmLl9maW5kZXIgPSBMYXlvdXRUZXN0RmluZGVyKHNl
bGYuX3BvcnQsIHNlbGYuX29wdGlvbnMpCiAgICAgICAgIHNlbGYuX3J1bm5lciA9IE5vbmUKIAot
ICAgICAgICB0ZXN0X29wdGlvbnNfanNvbl9wYXRoID0gc2VsZi5fcG9ydC5wYXRoX2Zyb21fd2Vi
a2l0X2Jhc2Uoc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZLCAidGVzdHMtb3B0aW9ucy5qc29u
IikKLSAgICAgICAgc2VsZi5fdGVzdHNfb3B0aW9ucyA9IGpzb24ubG9hZHMoc2VsZi5fZmlsZXN5
c3RlbS5yZWFkX3RleHRfZmlsZSh0ZXN0X29wdGlvbnNfanNvbl9wYXRoKSkgaWYgc2VsZi5fZmls
ZXN5c3RlbS5leGlzdHModGVzdF9vcHRpb25zX2pzb25fcGF0aCkgZWxzZSB7fQotCiAgICAgZGVm
IF9jb2xsZWN0X3Rlc3RzKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhzLCAgIyB0
eXBlOiBMaXN0W3N0cl0KICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3R5cGVfbGlzdCwg
ICMgdHlwZTogTGlzdFtPcHRpb25hbFtEZXZpY2VUeXBlXV0KQEAgLTIyNCw3ICsyMjUsNyBAQCBj
bGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF90ZXN0X2lzX3Nsb3coc2VsZiwgdGVzdF9m
aWxlLCBkZXZpY2VfdHlwZSk6CiAgICAgICAgIGlmIHNlbGYuX2V4cGVjdGF0aW9uc1tkZXZpY2Vf
dHlwZV0ubW9kZWwoKS5oYXNfbW9kaWZpZXIodGVzdF9maWxlLCB0ZXN0X2V4cGVjdGF0aW9ucy5T
TE9XKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiAic2xvdyIgaW4g
c2VsZi5fdGVzdHNfb3B0aW9ucy5nZXQodGVzdF9maWxlLCBbXSkKKyAgICAgICAgcmV0dXJuIEZh
bHNlCiAKICAgICBkZWYgX3Rlc3Rfc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycihz
ZWxmLCB0ZXN0X2ZpbGUsIGRldmljZV90eXBlKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVj
dGF0aW9uc1tkZXZpY2VfdHlwZV0ubW9kZWwoKS5oYXNfbW9kaWZpZXIodGVzdF9maWxlLCB0ZXN0
X2V4cGVjdGF0aW9ucy5EVU1QSlNDT05TT0xFTE9HSU5TVERFUlIpCkBAIC0zMjMsNyArMzI0LDcg
QEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICBuZWVkc19odHRwID0gYW55KHRlc3Qu
bmVlZHNfaHR0cF9zZXJ2ZXIgZm9yIHRlc3RzIGluIGl0ZXJ2YWx1ZXModGVzdHNfdG9fcnVuX2J5
X2RldmljZSkgZm9yIHRlc3QgaW4gdGVzdHMpCiAgICAgICAgIG5lZWRzX3dlYl9wbGF0Zm9ybV90
ZXN0X3NlcnZlciA9IGFueSh0ZXN0Lm5lZWRzX3dwdF9zZXJ2ZXIgZm9yIHRlc3RzIGluIGl0ZXJ2
YWx1ZXModGVzdHNfdG9fcnVuX2J5X2RldmljZSkgZm9yIHRlc3QgaW4gdGVzdHMpCiAgICAgICAg
IG5lZWRzX3dlYnNvY2tldHMgPSBhbnkodGVzdC5uZWVkc193ZWJzb2NrZXRfc2VydmVyIGZvciB0
ZXN0cyBpbiBpdGVydmFsdWVzKHRlc3RzX3RvX3J1bl9ieV9kZXZpY2UpIGZvciB0ZXN0IGluIHRl
c3RzKQotICAgICAgICBzZWxmLl9ydW5uZXIgPSBMYXlvdXRUZXN0UnVubmVyKHNlbGYuX29wdGlv
bnMsIHNlbGYuX3BvcnQsIHNlbGYuX3ByaW50ZXIsIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCBz
ZWxmLl90ZXN0X2lzX3Nsb3csCisgICAgICAgIHNlbGYuX3J1bm5lciA9IExheW91dFRlc3RSdW5u
ZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwgc2VsZi5fcHJpbnRlciwgc2VsZi5fcmVzdWx0
c19kaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVl
ZHNfaHR0cD1uZWVkc19odHRwLCBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXI9bmVlZHNf
d2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLCBuZWVkc193ZWJzb2NrZXRzPW5lZWRzX3dlYnNvY2tl
dHMpCiAKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzID0gTm9uZQpAQCAtMzM1LDcgKzMzNiw2IEBA
IGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgdXBsb2FkcyA9IFtdCiAKICAgICAgICAg
Zm9yIGRldmljZV90eXBlIGluIGRldmljZV90eXBlX2xpc3Q6Ci0gICAgICAgICAgICBzZWxmLl9y
dW5uZXIuX3Rlc3RfaXNfc2xvdyA9IGxhbWJkYSB0ZXN0X2ZpbGU6IHNlbGYuX3Rlc3RfaXNfc2xv
dyh0ZXN0X2ZpbGUsIGRldmljZV90eXBlPWRldmljZV90eXBlKQogICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMgPSBtaW4oc2VsZi5fcG9ydC5tYXhfY2hpbGRfcHJvY2Vz
c2VzKGRldmljZV90eXBlPWRldmljZV90eXBlKSwgaW50KGNoaWxkX3Byb2Nlc3Nlc19vcHRpb25f
dmFsdWUgb3Igc2VsZi5fcG9ydC5kZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhkZXZpY2VfdHlwZT1k
ZXZpY2VfdHlwZSkpKQogCiAgICAgICAgICAgICBfbG9nLmluZm8oJycpCkBAIC0zNjUsNyArMzY1
LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgZm9yIHNraXBwZWRfdGVz
dCBpbiBzZXQoYWdncmVnYXRlX3Rlc3RzX3RvX3NraXApOgogICAgICAgICAgICAgICAgIHNraXBw
ZWRfcmVzdWx0ID0gdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoc2tpcHBlZF90ZXN0LnRlc3RfcGF0
aCkKICAgICAgICAgICAgICAgICBza2lwcGVkX3Jlc3VsdC50eXBlID0gdGVzdF9leHBlY3RhdGlv
bnMuU0tJUAotICAgICAgICAgICAgICAgIHNraXBwZWRfcmVzdWx0cy5hZGQoc2tpcHBlZF9yZXN1
bHQsIGV4cGVjdGVkPVRydWUsIHRlc3RfaXNfc2xvdz1zZWxmLl90ZXN0X2lzX3Nsb3coc2tpcHBl
ZF90ZXN0LnRlc3RfcGF0aCwgZGV2aWNlX3R5cGU9ZGV2aWNlX3R5cGUpKQorICAgICAgICAgICAg
ICAgIHNraXBwZWRfcmVzdWx0cy5hZGQoc2tpcHBlZF9yZXN1bHQsIGV4cGVjdGVkPVRydWUpCiAg
ICAgICAgICAgICB0ZW1wX2luaXRpYWxfcmVzdWx0cyA9IHRlbXBfaW5pdGlhbF9yZXN1bHRzLm1l
cmdlKHNraXBwZWRfcmVzdWx0cykKIAogICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5yZXBv
cnRfdXJsczoKQEAgLTU1OSw3ICs1NTksNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3QpCiAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC50eXBlID0gdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gK
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmlzX290aGVyX2NyYXNoID0gVHJ1ZQotICAgICAg
ICAgICAgICAgICAgICBydW5fcmVzdWx0cy5hZGQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgdGVz
dF9pc19zbG93PUZhbHNlKQorICAgICAgICAgICAgICAgICAgICBydW5fcmVzdWx0cy5hZGQocmVz
dWx0LCBleHBlY3RlZD1GYWxzZSkKICAgICAgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiQWRk
aW5nIHJlc3VsdHMgZm9yIG90aGVyIGNyYXNoOiAiICsgc3RyKHRlc3QpKQogCiAgICAgZGVmIF9j
bG9iYmVyX29sZF9yZXN1bHRzKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQppbmRl
eCA4ZjkxNmQ4YTdjNzA5NDIzMDk4MDYwYjFjMzg4ZTgwYWFkYTBjNTkyLi40OTIzZTNmMGYyNTIw
OGU4NDk3ZmYxZTBmZjJhZTJjYTI3OWRkYjc5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5w
eQpAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBUZXN0UnVuUmVzdWx0cyhvYmplY3QpOgogICAgICAg
ICBzZWxmLmludGVycnVwdGVkID0gRmFsc2UKICAgICAgICAgc2VsZi5rZXlib2FyZF9pbnRlcnJ1
cHRlZCA9IEZhbHNlCiAKLSAgICBkZWYgYWRkKHNlbGYsIHRlc3RfcmVzdWx0LCBleHBlY3RlZCwg
dGVzdF9pc19zbG93KToKKyAgICBkZWYgYWRkKHNlbGYsIHRlc3RfcmVzdWx0LCBleHBlY3RlZCk6
CiAgICAgICAgIHNlbGYudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9yZXN1bHQudHlwZV0uYWRk
KHRlc3RfcmVzdWx0LnRlc3RfbmFtZSkKICAgICAgICAgc2VsZi5yZXN1bHRzX2J5X25hbWVbdGVz
dF9yZXN1bHQudGVzdF9uYW1lXSA9IHRlc3RfcmVzdWx0CiAgICAgICAgIGlmIHRlc3RfcmVzdWx0
LmlzX290aGVyX2NyYXNoOgpAQCAtOTIsNiArOTIsNyBAQCBjbGFzcyBUZXN0UnVuUmVzdWx0cyhv
YmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jcmFzaGVzICs9IDEKICAg
ICAgICAgICAgIGVsaWYgdGVzdF9yZXN1bHQudHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5USU1F
T1VUOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF90aW1lb3V0cyArPSAxCisgICAg
ICAgIHRlc3RfaXNfc2xvdyA9IHNlbGYuZXhwZWN0YXRpb25zLm1vZGVsKCkuaGFzX21vZGlmaWVy
KHRlc3RfcmVzdWx0LnRlc3RfbmFtZSwgdGVzdF9leHBlY3RhdGlvbnMuU0xPVykKICAgICAgICAg
aWYgdGVzdF9pc19zbG93OgogICAgICAgICAgICAgc2VsZi5zbG93X3Rlc3RzLmFkZCh0ZXN0X3Jl
c3VsdC50ZXN0X25hbWUpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRl
c3QucHkKaW5kZXggMGU5MWEzMmM5OTBmNjFhNzU5MjkyZWYzODc4MDMwMDhmMTg4OWQ2Yi4uNDMw
NWFlMTczMDYxOWE5NjllZDBhYjMzYmRjOTlmY2FhY2NkOGUzYSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTYwLDU4ICs2MCw1NiBAQCBkZWYgcnVu
X3Jlc3VsdHMocG9ydCk6CiAKIAogZGVmIHN1bW1hcml6ZWRfcmVzdWx0cyhwb3J0LCBleHBlY3Rl
ZCwgcGFzc2luZywgZmxha3ksIGluY2x1ZGVfcGFzc2VzPUZhbHNlKToKLSAgICB0ZXN0X2lzX3Ns
b3cgPSBGYWxzZQotCiAgICAgaW5pdGlhbF9yZXN1bHRzID0gcnVuX3Jlc3VsdHMocG9ydCkKICAg
ICBpZiBleHBlY3RlZDoKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdw
YXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0
X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkFVRElPKSwgZXhwZWN0
ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1F
T1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFk
ZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICBpbml0aWFsX3Jl
c3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9u
cy5QQVNTKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3Vs
dCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkFVRElP
KSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFp
bHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCks
IGV4cGVjdGVkKQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVj
dGVkKQogCiAgICAgICAgIGlmIHBvcnQuX29wdGlvbnMucGl4ZWxfdGVzdHM6Ci0gICAgICAgICAg
ICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVs
LWZhaWwuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFKSwgZXhwZWN0ZWQsIHRlc3RfaXNf
c2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuSU1BR0UpLCBl
eHBlY3RlZCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJywgdGVzdF9leHBl
Y3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBpbml0
aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwu
aHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3RlZCkKIAogICAgICAgICBpZiBw
b3J0Ll9vcHRpb25zLndvcmxkX2xlYWtzOgotICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFk
ZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCB0ZXN0X2V4cGVjdGF0
aW9ucy5MRUFLKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgdGVz
dF9leHBlY3RhdGlvbnMuTEVBSyksIGV4cGVjdGVkKQogICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFr
Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykK
KyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhw
ZWN0ZWQvbGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkKQogCiAg
ICAgZWxpZiBwYXNzaW5nOgotICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQo
J3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgaW5p
dGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1s
JyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIGV4cGVjdGVkLCB0
ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFp
bHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAg
ICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwg
ZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcpLCBleHBlY3RlZCkKKyAgICAgICAgaW5pdGlhbF9yZXN1
bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgZXhw
ZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBleHBlY3RlZCkKIAogICAgICAgICBpZiBwb3J0Ll9vcHRp
b25zLnBpeGVsX3Rlc3RzOgotICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3Rf
aXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFp
bHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJyksIGV4cGVjdGVkKQogICAgICAgICBlbHNl
OgotICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9l
eHBlY3RlZC9waXhlbC1mYWlsLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5JTUFHRSksIGV4cGVj
dGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9y
ZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcsIHRlc3RfZXhwZWN0YXRp
b25zLklNQUdFKSwgZXhwZWN0ZWQpCiAKICAgICAgICAgaWYgcG9ydC5fb3B0aW9ucy53b3JsZF9s
ZWFrczoKLSAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvbGVhay5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAg
ICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xl
YWsuaHRtbCcpLCBleHBlY3RlZCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGluaXRpYWxf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgdGVz
dF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAg
ICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsu
aHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3RlZCkKICAgICBlbHNlOgotICAg
ICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0
ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAg
ICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9hdWRp
by5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQVVESU8pLCBleHBlY3RlZCwgdGVzdF9pc19zbG93
KQotICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVj
dGVkL3RpbWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWls
dXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4
cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJywgdGVzdF9leHBlY3RhdGlv
bnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVz
dWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgdGVzdF9l
eHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICBpbml0
aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsIHRlc3RfZXhwZWN0YXRp
b25zLkFVRElPKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMu
Q1JBU0gpLCBleHBlY3RlZCkKKyAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9V
VCksIGV4cGVjdGVkKQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2Zh
aWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVP
VVQpLCBleHBlY3RlZCkKKyAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4
cGVjdGVkKQogCiAgICAgICAgICMgd2Ugb25seSBsaXN0IGhhbmcuaHRtbCBoZXJlLCBzaW5jZSBu
b3JtYWxseSB0aGlzIGlzIFdvbnRGaXgKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5U
SU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgaW5pdGlhbF9yZXN1bHRz
LmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCiAKICAgICBpZiBmbGFreToKICAgICAgICAgcmV0
cnlfcmVzdWx0cyA9IHJ1bl9yZXN1bHRzKHBvcnQpCi0gICAgICAgIHJldHJ5X3Jlc3VsdHMuYWRk
KGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAg
ICAgICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1l
b3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAgICAgICByZXRyeV9yZXN1bHRzLmFk
ZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUsIHRlc3Rf
aXNfc2xvdykKLSAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKLSAgICAgICAg
cmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1s
JyksIFRydWUsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jl
c3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlKQorICAgICAgICByZXRyeV9yZXN1bHRzLmFk
ZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSkKKyAg
ICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jh
c2guaHRtbCcpLCBUcnVlKQorICAgICAgICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0bWwnKSwgVHJ1ZSkKKyAgICAgICAgcmV0cnlf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJyksIFRy
dWUpCiAgICAgZWxzZToKICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IE5vbmUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429110</attachid>
            <date>2021-05-19 16:18:08 -0700</date>
            <delta_ts>2021-05-20 06:48:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224563-20210520001806.patch</filename>
            <type>text/plain</type>
            <size>34842</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjY1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmE5NTc2ZTljZTYzNDI0MmI0NjdiNTI5MGVmZWE2Mjlh
YmEwZjk5Ni4uYWExYTk1ZmI5NjRlZjkxYmIwMDQ3NjU2M2QzOWJhNDJiZjRmY2U1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDIxLTA1LTE5ICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RvcmUgd2hldGhlciBhIHRlc3QgaXMgc2xvdyBvbiBUZXN0SW5wdXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDU2MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgbm90
YWJseSwgdGhpcyBtYWtlcyBhIFRlc3RSZXN1bHQgc3RvcmUgYSBUZXN0SW5wdXQgcmF0aGVyIHRo
YW4gYQorICAgICAgICB0ZXN0X25hbWUgc3RyaW5nLiBXaXRoIHRoYXQgdGhlcmUsIHdlIHRoZW4g
ZG9uJ3QgbmVlZCB0byBwdW5jaCB0aHJvdWdoIG11bHRpcGxlCisgICAgICAgIGxheWVycyB0byBm
aW5kIG91dCB3aGV0aGVyIGEgdGVzdCBpcyBzbG93IG9yIG5vdC4gTm90ZSB0aGF0IHJlcGxhY2lu
ZyB0aGUKKyAgICAgICAgdGVzdF9uYW1lIHdpdGggYSBUZXN0IG9yIFRlc3RJbnB1dCBhcyBwYXJ0
IG9mIHJlbW92aW5nIHRoZSAxOjEgcmVsYXRpb25zaGlwCisgICAgICAgIGJldHdlZW4gZmlsZXMg
YW5kIHRlc3RzLgorCisgICAgICAgIFdpdGggdGhpcyBkb25lLCB3ZSBkb24ndCBoYXZlIHRvIHBh
c3MgYXJvdW5kIGEgdGVzdF9pc19zbG93X2ZuLCBhcyB3ZSBjYW4gZGlyZWN0bHkKKyAgICAgICAg
bG9vayBhdCB0aGUgcmVzdWx0IHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBpdCBpcyBzbG93
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bGF5b3V0X3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fX2luaXRf
Xyk6IFJlbW92ZSB0ZXN0X2lzX3Nsb3dfZm4gYXJndW1lbnQKKyAgICAgICAgKExheW91dFRlc3RS
dW5uZXIuX21hcmtfaW50ZXJydXB0ZWRfdGVzdHNfYXNfc2tpcHBlZCk6IFJlbW92ZSB0ZXN0X2lz
X3Nsb3cgYXJndW1lbnQKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX3VwZGF0ZV9zdW1tYXJ5
X3dpdGhfcmVzdWx0KTogUmVtb3ZlIHRlc3RfaXNfc2xvdyBhcmd1bWVudAorICAgICAgICAoV29y
a2VyLl9ydW5fdGVzdF9pbl9hbm90aGVyX3RocmVhZCk6IFJlbW92ZSB0ZXN0X2lzX3Nsb3cgYXJn
dW1lbnQKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChMYXlvdXRUZXN0UnVu
bmVyVGVzdHMuX3J1bm5lcik6IFJlbW92ZSB0ZXN0X2lzX3Nsb3dfZm4gYXJndW1lbnQKKyAgICAg
ICAgKExheW91dFRlc3RSdW5uZXJUZXN0cy50ZXN0X3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0
KTogVGVzdFJlc3VsdCBhcmcgcmVuYW1lCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIpOiBJbXBy
b3ZlIGRvY3N0cmluZworICAgICAgICAoTWFuYWdlci5fX2luaXRfXyk6IFRpZHkgdXAgcmVhZGlu
ZyB0ZXN0cy1vcHRpb25zLmpzb24KKyAgICAgICAgKE1hbmFnZXIuX3Rlc3RfaW5wdXRfZm9yX2Zp
bGUpOiBTZXQgaXNfc2xvdworICAgICAgICAoTWFuYWdlci5ydW4pOiBSZW1vdmUgdGVzdF9pc19z
bG93X2ZuIGFyZ3VtZW50CisgICAgICAgIChNYW5hZ2VyLl9sb29rX2Zvcl9uZXdfY3Jhc2hfbG9n
cyk6IFJlbW92ZSB0ZXN0X2lzX3Nsb3dfZm4vdGVzdF9pc19zbG93IGFyZ3VtZW50CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3Rf
cnVubmVyLnB5OgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lci5fX2luaXRfXyk6IFN0b3JlIFRl
c3RJbnB1dCBvYmplY3QKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3Rlc3RfbmFtZSk6IFJl
cGxhY2VtZW50IGdldHRlcgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lci5fc2hvdWxkX3J1bl9w
aXhlbF90ZXN0KTogUmVwbGFjZW1lbnQgZ2V0dGVyCisgICAgICAgIChTaW5nbGVUZXN0UnVubmVy
Ll9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyKTogUmVwbGFjZW1lbnQgZ2V0dGVy
CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9yZWZlcmVuY2VfZmlsZXMpOiBSZXBsYWNlbWVu
dCBnZXR0ZXIKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3RpbWVvdXQpOiBSZXBsYWNlbWVu
dCBnZXR0ZXIKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2NvbXBhcmVfb3V0cHV0KTogUGFz
cyBUZXN0SW5wdXQgdG8gVGVzdFJlc3VsdAorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lci5fcnVu
X3JlZnRlc3QpOiBQYXNzIFRlc3RJbnB1dCB0byBUZXN0UmVzdWx0CisgICAgICAgIChTaW5nbGVU
ZXN0UnVubmVyLl9jb21wYXJlX291dHB1dF93aXRoX3JlZmVyZW5jZSk6IFBhc3MgVGVzdElucHV0
IHRvIFRlc3RSZXN1bHQKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9t
b2RlbHMvdGVzdF9pbnB1dC5weToKKyAgICAgICAgKFRlc3RJbnB1dCk6IEFkZCBpc19zbG93IGJv
b2xlYW4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9yZXN1bHRzLnB5OgorICAgICAgICAoVGVzdFJlc3VsdC5fX2luaXRfXyk6IFJlbmFtZSB0ZXN0
X25hbWUgLT4gdGVzdF9pbnB1dCwgY29uc3RydWN0IFRlc3RJbnB1dCBpZiB3ZSBtdXN0CisgICAg
ICAgIChUZXN0UmVzdWx0LnRlc3RfbmFtZSk6IFJlcGxhY2VtZW50IGdldHRlcgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHNfdW5pdHRl
c3QucHk6CisgICAgICAgIChUZXN0UmVzdWx0c1Rlc3QudGVzdF9waWNrbGVfcm91bmR0cmlwKTog
VGVzdFJlc3VsdCBhcmcgcmVuYW1lCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChUZXN0UnVuUmVzdWx0
cy5hZGQpOiBSZW1vdmUgdGVzdF9pc19zbG93IGFyZ3VtZW50LCBsb29rIGF0IFRlc3RSZXN1bHQK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5f
cmVzdWx0c191bml0dGVzdC5weToKKyAgICAgICAgKHN1bW1hcml6ZWRfcmVzdWx0cyk6IFJlbW92
ZSB0ZXN0X2lzX3Nsb3cgYXJndW1lbnQKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKFJ1
blRlc3QudGVzdF90ZXN0c19vcHRpb25zKTogQWRkIGEgdGVzdCB0aGF0IHRlc3Qtb3B0aW9ucy5q
c29uIHdvcmtzCisKIDIwMjEtMDUtMTggIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmpp
dHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBbUGxheVN0YXRpb25dIEZpeCBQbGF5U3RhdGlv
biBwb3J0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKaW5kZXggMmM2
OTc4ZGU5OGQzNzNiY2I1OWI2MDRhMDUwZTIyNDE2NmI1YTA5My4uNjI2YmY3ZGRjYmJlNTI3ODAz
MDBkMDZmNjMyNDMwZGJhNzc4MmU0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0
X3J1bm5lci5weQpAQCAtNjIsMTIgKzYyLDExIEBAIGNsYXNzIFRlc3RSdW5JbnRlcnJ1cHRlZEV4
Y2VwdGlvbihFeGNlcHRpb24pOgogCiAKIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0c19k
aXJlY3RvcnksIHRlc3RfaXNfc2xvd19mbiwgbmVlZHNfaHR0cD1GYWxzZSwgbmVlZHNfd2Vic29j
a2V0cz1GYWxzZSwgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyPUZhbHNlKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0c19kaXJlY3Rv
cnksIG5lZWRzX2h0dHA9RmFsc2UsIG5lZWRzX3dlYnNvY2tldHM9RmFsc2UsIG5lZWRzX3dlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlcj1GYWxzZSk6CiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRp
b25zCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3ByaW50ZXIgPSBw
cmludGVyCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0c19kaXJlY3Rv
cnkKLSAgICAgICAgc2VsZi5fdGVzdF9pc19zbG93ID0gdGVzdF9pc19zbG93X2ZuCiAgICAgICAg
IHNlbGYuX25lZWRzX2h0dHAgPSBuZWVkc19odHRwCiAgICAgICAgIHNlbGYuX25lZWRzX3dlYnNv
Y2tldHMgPSBuZWVkc193ZWJzb2NrZXRzCiAgICAgICAgIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9y
bV90ZXN0X3NlcnZlciA9IG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcgpAQCAtMTQ1LDEx
ICsxNDQsMTEgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBfbWFy
a19pbnRlcnJ1cHRlZF90ZXN0c19hc19za2lwcGVkKHNlbGYsIHJ1bl9yZXN1bHRzKToKICAgICAg
ICAgZm9yIHRlc3RfaW5wdXQgaW4gc2VsZi5fdGVzdF9pbnB1dHM6CiAgICAgICAgICAgICBpZiB0
ZXN0X2lucHV0LnRlc3RfbmFtZSBub3QgaW4gcnVuX3Jlc3VsdHMucmVzdWx0c19ieV9uYW1lOgot
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5w
dXQudGVzdF9uYW1lLCBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlRWFybHlFeGl0KCldKQorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5wdXQsIFt0
ZXN0X2ZhaWx1cmVzLkZhaWx1cmVFYXJseUV4aXQoKV0pCiAgICAgICAgICAgICAgICAgIyBGSVhN
RTogV2UgcHJvYmFibHkgbmVlZCB0byBsb29wIGhlcmUgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGl0
ZXJhdGlvbnMuCiAgICAgICAgICAgICAgICAgIyBGSVhNRTogQWxzbywgdGhlc2UgcmVzdWx0cyBh
cmUgcmVhbGx5IG5laXRoZXIgZXhwZWN0ZWQgbm9yIHVuZXhwZWN0ZWQuIFdlIHByb2JhYmx5CiAg
ICAgICAgICAgICAgICAgIyBuZWVkIGEgdGhpcmQgdHlwZSBvZiByZXN1bHQuCi0gICAgICAgICAg
ICAgICAgcnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UsIHRlc3RfaXNfc2xv
dz1zZWxmLl90ZXN0X2lzX3Nsb3codGVzdF9pbnB1dC50ZXN0X25hbWUpKQorICAgICAgICAgICAg
ICAgIHJ1bl9yZXN1bHRzLmFkZChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlKQogCiAgICAgZGVmIF9p
bnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdHMoc2VsZiwgcnVuX3Jlc3VsdHMpOgogICAgICAg
ICAjIE5vdGU6IFRoZSBtZXNzYWdlcyBpbiB0aGlzIG1ldGhvZCBhcmUgY29uc3RydWN0ZWQgdG8g
bWF0Y2ggb2xkLXJ1bi13ZWJraXQtdGVzdHMKQEAgLTE4Miw3ICsxODEsNyBAQCBjbGFzcyBMYXlv
dXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICBleHBfc3RyID0gc2VsZi5fZXhwZWN0
YXRpb25zLm1vZGVsKCkuZXhwZWN0YXRpb25zX3RvX3N0cmluZyhleHBlY3RhdGlvbnMpCiAgICAg
ICAgICAgICBnb3Rfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuZXhwZWN0YXRpb25f
dG9fc3RyaW5nKHJlc3VsdC50eXBlKQogCi0gICAgICAgIHJ1bl9yZXN1bHRzLmFkZChyZXN1bHQs
IGV4cGVjdGVkLCBzZWxmLl90ZXN0X2lzX3Nsb3cocmVzdWx0LnRlc3RfbmFtZSkpCisgICAgICAg
IHJ1bl9yZXN1bHRzLmFkZChyZXN1bHQsIGV4cGVjdGVkKQogCiAgICAgICAgIHNlbGYuX3ByaW50
ZXIucHJpbnRfZmluaXNoZWRfdGVzdChyZXN1bHQsIGV4cGVjdGVkLCBleHBfc3RyLCBnb3Rfc3Ry
KQogCkBAIC00MzUsNyArNDM0LDcgQEAgY2xhc3MgV29ya2VyKG9iamVjdCk6CiAgICAgICAgIGRy
aXZlci5zdG9wKCkKIAogICAgICAgICBpZiBub3QgcmVzdWx0OgotICAgICAgICAgICAgcmVzdWx0
ID0gdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQodGVzdF9pbnB1dC50ZXN0X25hbWUsIGZhaWx1cmVz
PWZhaWx1cmVzLCB0ZXN0X3J1bl90aW1lPTApCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0X3Jl
c3VsdHMuVGVzdFJlc3VsdCh0ZXN0X2lucHV0LCBmYWlsdXJlcz1mYWlsdXJlcywgdGVzdF9ydW5f
dGltZT0wKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKICAgICBkZWYgX3J1bl90ZXN0X2luX3Ro
aXNfdGhyZWFkKHNlbGYsIHRlc3RfaW5wdXQsIHN0b3Bfd2hlbl9kb25lKToKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90
ZXN0X3J1bm5lcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weQppbmRleCAwZjI3
MjFjOTJlOTRkYWE1NDc5MTdjNTU4YTYzZDI0N2E5ZGVlZDcwLi4xMjRlYjRiYWRjMDYyZDVlNTlk
MjUzNDViM2U5NTFmODdjNTQ2OWU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5
b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC03OSw3ICs3OSw3IEBAIGNsYXNzIExheW91
dFRlc3RSdW5uZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKICAgICAgICAgcG9ydCA9IHBvcnQgb3IgaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KG9w
dGlvbnMucGxhdGZvcm0sIG9wdGlvbnM9b3B0aW9ucykKLSAgICAgICAgcmV0dXJuIExheW91dFRl
c3RSdW5uZXIob3B0aW9ucywgcG9ydCwgRmFrZVByaW50ZXIoKSwgcG9ydC5yZXN1bHRzX2RpcmVj
dG9yeSgpLCBsYW1iZGEgdGVzdF9uYW1lOiBGYWxzZSkKKyAgICAgICAgcmV0dXJuIExheW91dFRl
c3RSdW5uZXIob3B0aW9ucywgcG9ydCwgRmFrZVByaW50ZXIoKSwgcG9ydC5yZXN1bHRzX2RpcmVj
dG9yeSgpKQogCiAgICAgZGVmIF9ydW5fdGVzdHMoc2VsZiwgcnVubmVyLCB0ZXN0cyk6CiAgICAg
ICAgIHRlc3RfaW5wdXRzID0gW1Rlc3RJbnB1dChUZXN0KHRlc3QpLCA2MDAwKSBmb3IgdGVzdCBp
biB0ZXN0c10KQEAgLTEzMSwxOSArMTMxLDE5IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXJUZXN0
cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJ1bm5lci5fZXhwZWN0YXRpb25zID0gZXhw
ZWN0YXRpb25zCiAKICAgICAgICAgcnVuX3Jlc3VsdHMgPSBUZXN0UnVuUmVzdWx0cyhleHBlY3Rh
dGlvbnMsIDEpCi0gICAgICAgIHJlc3VsdCA9IFRlc3RSZXN1bHQodGVzdF9uYW1lPXRlc3QsIGZh
aWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWROb3RPY2N1cigp
XSwgcmVmdGVzdF90eXBlPVsnIT0nXSkKKyAgICAgICAgcmVzdWx0ID0gVGVzdFJlc3VsdCh0ZXN0
LCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoRGlkTm90T2Nj
dXIoKV0sIHJlZnRlc3RfdHlwZT1bJyE9J10pCiAgICAgICAgIHJ1bm5lci5fdXBkYXRlX3N1bW1h
cnlfd2l0aF9yZXN1bHQocnVuX3Jlc3VsdHMsIHJlc3VsdCkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBydW5fcmVzdWx0cy5leHBlY3RlZCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCBydW5fcmVzdWx0cy51bmV4cGVjdGVkKQogCiAgICAgICAgIHJ1bl9yZXN1bHRzID0gVGVzdFJ1
blJlc3VsdHMoZXhwZWN0YXRpb25zLCAxKQotICAgICAgICByZXN1bHQgPSBUZXN0UmVzdWx0KHRl
c3RfbmFtZT10ZXN0LCBmYWlsdXJlcz1bXSwgcmVmdGVzdF90eXBlPVsnPT0nXSkKKyAgICAgICAg
cmVzdWx0ID0gVGVzdFJlc3VsdCh0ZXN0LCBmYWlsdXJlcz1bXSwgcmVmdGVzdF90eXBlPVsnPT0n
XSkKICAgICAgICAgcnVubmVyLl91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChydW5fcmVzdWx0
cywgcmVzdWx0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHJ1bl9yZXN1bHRzLmV4cGVj
dGVkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWQp
CiAKICAgICAgICAgcnVuX3Jlc3VsdHMgPSBUZXN0UnVuUmVzdWx0cyhleHBlY3RhdGlvbnMsIDEp
Ci0gICAgICAgIHJlc3VsdCA9IFRlc3RSZXN1bHQodGVzdF9uYW1lPWxlYWtfdGVzdCwgZmFpbHVy
ZXM9W10pCisgICAgICAgIHJlc3VsdCA9IFRlc3RSZXN1bHQobGVha190ZXN0LCBmYWlsdXJlcz1b
XSkKICAgICAgICAgcnVubmVyLl91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChydW5fcmVzdWx0
cywgcmVzdWx0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHJ1bl9yZXN1bHRzLmV4cGVj
dGVkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWQp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlci5weQppbmRleCA5YTg5ZjhkOGUxMTJkYzhlNTVlZWJlMTAxYWUyMTNm
MTdhMjMzZWQyLi4wYjNmYTkxMDk5YjFmOGJjNjI3ZTk1OTM1ZTA2OWM1N2UzYWQ3MTYxIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9t
YW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXIucHkKQEAgLTY0LDggKzY0LDEzIEBAIFRlc3RFeHBlY3RhdGlvbnMgPSB0
ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zCiAKIAogY2xhc3MgTWFuYWdlcihvYmpl
Y3QpOgotICAgICIiIkEgY2xhc3MgZm9yIG1hbmFnaW5nIHJ1bm5pbmcgYSBzZXJpZXMgb2YgdGVz
dHMgb24gYSBzZXJpZXMgb2YgbGF5b3V0Ci0gICAgdGVzdCBmaWxlcy4iIiIKKyAgICAiIiJUZXN0
IGV4ZWN1dGlvbiBtYW5hZ2VyCisKKyAgICBUaGlzIGNsYXNzIGhhcyB0aGUgbWFpbiBlbnRyeSBw
b2ludHMgZm9yIHJ1bi13ZWJraXQtdGVzdHM7IHRoZSAuLnJ1bl93ZWJraXRfdGVzdHMgbW9kdWxl
IGFsbW9zdAorICAgIGV4Y2x1c2l2ZWx5IGp1c3QgaGFuZGxlcyBDTEkgb3B0aW9ucy4gSXQgb3Jj
aGVzdHJhdGVzIGNvbGxlY3RpbmcgdGhlIHRlc3RzICh0aHJvdWdoCisgICAgTGF5b3V0VGVzdEZp
bmRlciksIHJ1bm5pbmcgdGhlbSAoTGF5b3V0VGVzdFJ1bm5lciksIGFuZCB0aGVuIGRpc3BsYXlp
bmcgdGhlIHJlc3VsdHMKKyAgICAoVGVzdFJlc3VsdFdyaXRlci9QcmludGVyKS4KKyAgICAiIiIK
IAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCBwcmludGVyKToKICAgICAg
ICAgIiIiSW5pdGlhbGl6ZSB0ZXN0IHJ1bm5lciBkYXRhIHN0cnVjdHVyZXMuCkBAIC03NiwxNyAr
ODEsMjMgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgIHByaW50ZXI6IGEgUHJp
bnRlciBvYmplY3QgdG8gcmVjb3JkIHVwZGF0ZXMgdG8uCiAgICAgICAgICIiIgogICAgICAgICBz
ZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gcG9ydC5ob3N0LmZp
bGVzeXN0ZW0KKyAgICAgICAgZnMgPSBwb3J0Lmhvc3QuZmlsZXN5c3RlbQorICAgICAgICBzZWxm
Ll9maWxlc3lzdGVtID0gZnMKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAg
ICAgc2VsZi5fcHJpbnRlciA9IHByaW50ZXIKICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0g
T3JkZXJlZERpY3QoKQotICAgICAgICBzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlkgPSAnTGF5
b3V0VGVzdHMnCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5y
ZXN1bHRzX2RpcmVjdG9yeSgpCiAgICAgICAgIHNlbGYuX2ZpbmRlciA9IExheW91dFRlc3RGaW5k
ZXIoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucykKICAgICAgICAgc2VsZi5fcnVubmVyID0gTm9u
ZQogCi0gICAgICAgIHRlc3Rfb3B0aW9uc19qc29uX3BhdGggPSBzZWxmLl9wb3J0LnBhdGhfZnJv
bV93ZWJraXRfYmFzZShzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlksICJ0ZXN0cy1vcHRpb25z
Lmpzb24iKQotICAgICAgICBzZWxmLl90ZXN0c19vcHRpb25zID0ganNvbi5sb2FkcyhzZWxmLl9m
aWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHRlc3Rfb3B0aW9uc19qc29uX3BhdGgpKSBpZiBzZWxm
Ll9maWxlc3lzdGVtLmV4aXN0cyh0ZXN0X29wdGlvbnNfanNvbl9wYXRoKSBlbHNlIHt9CisgICAg
ICAgIHNlbGYuX3Rlc3RzX29wdGlvbnMgPSB7fQorICAgICAgICB0ZXN0X29wdGlvbnNfanNvbl9w
YXRoID0gZnMuam9pbihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwgInRlc3RzLW9wdGlv
bnMuanNvbiIpCisgICAgICAgIGlmIGZzLmV4aXN0cyh0ZXN0X29wdGlvbnNfanNvbl9wYXRoKToK
KyAgICAgICAgICAgIHdpdGggZnMub3Blbl9iaW5hcnlfZmlsZV9mb3JfcmVhZGluZyh0ZXN0X29w
dGlvbnNfanNvbl9wYXRoKSBhcyBmZDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3Rlc3RzX29wdGlvbnMgPSBqc29uLmxvYWQoZmQpCisgICAgICAgICAg
ICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBJT0Vycm9yKToKKyAgICAgICAgICAgICAgICAgICAg
cGFzcwogCiAgICAgZGVmIF9jb2xsZWN0X3Rlc3RzKHNlbGYsCiAgICAgICAgICAgICAgICAgICAg
ICAgIHBhdGhzLCAgIyB0eXBlOiBMaXN0W3N0cl0KQEAgLTIxMywxMiArMjI0LDEzIEBAIGNsYXNz
IE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHRlc3RzX3RvX3J1bgogCiAgICAgZGVm
IF90ZXN0X2lucHV0X2Zvcl9maWxlKHNlbGYsIHRlc3RfZmlsZSwgZGV2aWNlX3R5cGUpOgorICAg
ICAgICB0ZXN0X2lzX3Nsb3cgPSBzZWxmLl90ZXN0X2lzX3Nsb3codGVzdF9maWxlLnRlc3RfcGF0
aCwgZGV2aWNlX3R5cGU9ZGV2aWNlX3R5cGUpCiAgICAgICAgIHJlZmVyZW5jZV9maWxlcyA9IHNl
bGYuX3BvcnQucmVmZXJlbmNlX2ZpbGVzKAogICAgICAgICAgICAgdGVzdF9maWxlLnRlc3RfcGF0
aCwgZGV2aWNlX3R5cGU9ZGV2aWNlX3R5cGUKICAgICAgICAgKQogICAgICAgICB0aW1lb3V0ID0g
KAogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVfb3V0X21zCi0gICAgICAgICAg
ICBpZiBzZWxmLl90ZXN0X2lzX3Nsb3codGVzdF9maWxlLnRlc3RfcGF0aCwgZGV2aWNlX3R5cGU9
ZGV2aWNlX3R5cGUpCisgICAgICAgICAgICBpZiB0ZXN0X2lzX3Nsb3cKICAgICAgICAgICAgIGVs
c2Ugc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcwogICAgICAgICApCiAgICAgICAgIHNob3VsZF9k
dW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIgPSAoCkBAIC0yNDIsNiArMjU0LDcgQEAgY2xhc3Mg
TWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gVGVzdElucHV0KAogICAgICAgICAgICAg
dGVzdF9maWxlLAogICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAorICAgICAgICAgICAgaXNf
c2xvdz10ZXN0X2lzX3Nsb3csCiAgICAgICAgICAgICBuZWVkc19zZXJ2ZXJzPXRlc3RfZmlsZS5u
ZWVkc19hbnlfc2VydmVyLAogICAgICAgICAgICAgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2lu
X3N0ZGVycj1zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyLAogICAgICAgICAgICAg
cmVmZXJlbmNlX2ZpbGVzPXJlZmVyZW5jZV9maWxlcywKQEAgLTM1Miw3ICszNjUsNyBAQCBjbGFz
cyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIG5lZWRzX2h0dHAgPSBhbnkodGVzdC5uZWVkc19o
dHRwX3NlcnZlciBmb3IgdGVzdHMgaW4gaXRlcnZhbHVlcyh0ZXN0c190b19ydW5fYnlfZGV2aWNl
KSBmb3IgdGVzdCBpbiB0ZXN0cykKICAgICAgICAgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2Vy
dmVyID0gYW55KHRlc3QubmVlZHNfd3B0X3NlcnZlciBmb3IgdGVzdHMgaW4gaXRlcnZhbHVlcyh0
ZXN0c190b19ydW5fYnlfZGV2aWNlKSBmb3IgdGVzdCBpbiB0ZXN0cykKICAgICAgICAgbmVlZHNf
d2Vic29ja2V0cyA9IGFueSh0ZXN0Lm5lZWRzX3dlYnNvY2tldF9zZXJ2ZXIgZm9yIHRlc3RzIGlu
IGl0ZXJ2YWx1ZXModGVzdHNfdG9fcnVuX2J5X2RldmljZSkgZm9yIHRlc3QgaW4gdGVzdHMpCi0g
ICAgICAgIHNlbGYuX3J1bm5lciA9IExheW91dFRlc3RSdW5uZXIoc2VsZi5fb3B0aW9ucywgc2Vs
Zi5fcG9ydCwgc2VsZi5fcHJpbnRlciwgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksIHNlbGYuX3Rl
c3RfaXNfc2xvdywKKyAgICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5lcihzZWxm
Ll9vcHRpb25zLCBzZWxmLl9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRzX2RpcmVj
dG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkc19odHRw
PW5lZWRzX2h0dHAsIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcj1uZWVkc193ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIsIG5lZWRzX3dlYnNvY2tldHM9bmVlZHNfd2Vic29ja2V0cykKIAog
ICAgICAgICBpbml0aWFsX3Jlc3VsdHMgPSBOb25lCkBAIC0zNjQsNyArMzc3LDYgQEAgY2xhc3Mg
TWFuYWdlcihvYmplY3QpOgogICAgICAgICB1cGxvYWRzID0gW10KIAogICAgICAgICBmb3IgZGV2
aWNlX3R5cGUgaW4gZGV2aWNlX3R5cGVfbGlzdDoKLSAgICAgICAgICAgIHNlbGYuX3J1bm5lci5f
dGVzdF9pc19zbG93ID0gbGFtYmRhIHRlc3RfZmlsZTogc2VsZi5fdGVzdF9pc19zbG93KHRlc3Rf
ZmlsZSwgZGV2aWNlX3R5cGU9ZGV2aWNlX3R5cGUpCiAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LmNoaWxkX3Byb2Nlc3NlcyA9IG1pbihzZWxmLl9wb3J0Lm1heF9jaGlsZF9wcm9jZXNzZXMoZGV2
aWNlX3R5cGU9ZGV2aWNlX3R5cGUpLCBpbnQoY2hpbGRfcHJvY2Vzc2VzX29wdGlvbl92YWx1ZSBv
ciBzZWxmLl9wb3J0LmRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKGRldmljZV90eXBlPWRldmljZV90
eXBlKSkpCiAKICAgICAgICAgICAgIF9sb2cuaW5mbygnJykKQEAgLTM5OCw3ICs0MTAsNyBAQCBj
bGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICBmb3Igc2tpcHBlZF90ZXN0IGluIHNl
dChhZ2dyZWdhdGVfdGVzdHNfdG9fc2tpcCk6CiAgICAgICAgICAgICAgICAgc2tpcHBlZF9yZXN1
bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdChza2lwcGVkX3Rlc3QudGVzdF9wYXRoKQogICAg
ICAgICAgICAgICAgIHNraXBwZWRfcmVzdWx0LnR5cGUgPSB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQ
Ci0gICAgICAgICAgICAgICAgc2tpcHBlZF9yZXN1bHRzLmFkZChza2lwcGVkX3Jlc3VsdCwgZXhw
ZWN0ZWQ9VHJ1ZSwgdGVzdF9pc19zbG93PXNlbGYuX3Rlc3RfaXNfc2xvdyhza2lwcGVkX3Rlc3Qu
dGVzdF9wYXRoLCBkZXZpY2VfdHlwZT1kZXZpY2VfdHlwZSkpCisgICAgICAgICAgICAgICAgc2tp
cHBlZF9yZXN1bHRzLmFkZChza2lwcGVkX3Jlc3VsdCwgZXhwZWN0ZWQ9VHJ1ZSkKICAgICAgICAg
ICAgIHRlbXBfaW5pdGlhbF9yZXN1bHRzID0gdGVtcF9pbml0aWFsX3Jlc3VsdHMubWVyZ2Uoc2tp
cHBlZF9yZXN1bHRzKQogCiAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnJlcG9ydF91cmxz
OgpAQCAtNjAwLDcgKzYxMiw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQodGVzdCkKICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSAogICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuaXNfb3RoZXJfY3Jhc2ggPSBUcnVlCi0gICAgICAgICAgICAg
ICAgICAgIHJ1bl9yZXN1bHRzLmFkZChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCB0ZXN0X2lzX3Ns
b3c9RmFsc2UpCisgICAgICAgICAgICAgICAgICAgIHJ1bl9yZXN1bHRzLmFkZChyZXN1bHQsIGV4
cGVjdGVkPUZhbHNlKQogICAgICAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCJBZGRpbmcgcmVz
dWx0cyBmb3Igb3RoZXIgY3Jhc2g6ICIgKyBzdHIodGVzdCkpCiAKICAgICBkZWYgX2Nsb2JiZXJf
b2xkX3Jlc3VsdHMoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIu
cHkKaW5kZXggNzc1NjFlNDk4ZThjMDA3ZDVlYTM0ZjdmMWY2MmU2NzMyOTk2ZDVlZC4uN2EzMjU3
ZTAyZTA4ZTk1NmFkN2NkMTU0MDRlZTkxNTliYjQ0YTEwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L3NpbmdsZV90ZXN0X3J1bm5lci5weQpAQCAtNTYsMTIgKzU2LDggQEAgY2xhc3MgU2luZ2xlVGVz
dFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3Vs
dHNfZGlyZWN0b3J5CiAgICAgICAgIHNlbGYuX2RyaXZlciA9IGRyaXZlcgogICAgICAgICBzZWxm
Ll93b3JrZXJfbmFtZSA9IHdvcmtlcl9uYW1lCi0gICAgICAgIHNlbGYuX3Rlc3RfbmFtZSA9IHRl
c3RfaW5wdXQudGVzdF9uYW1lCi0gICAgICAgIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCA9
IHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0Ci0gICAgICAgIHNlbGYuX3Nob3VsZF9k
dW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIgPSB0ZXN0X2lucHV0LnNob3VsZF9kdW1wX2pzY29u
c29sZWxvZ19pbl9zdGRlcnIKLSAgICAgICAgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzID0gdGVzdF9p
bnB1dC5yZWZlcmVuY2VfZmlsZXMKKyAgICAgICAgc2VsZi5fdGVzdF9pbnB1dCA9IHRlc3RfaW5w
dXQKICAgICAgICAgc2VsZi5fc3RvcF93aGVuX2RvbmUgPSBzdG9wX3doZW5fZG9uZQotICAgICAg
ICBzZWxmLl90aW1lb3V0ID0gdGVzdF9pbnB1dC50aW1lb3V0CiAKICAgICAgICAgaWYgc2VsZi5f
cmVmZXJlbmNlX2ZpbGVzOgogICAgICAgICAgICAgIyBEZXRlY3QgYW5kIHJlcG9ydCBhIHRlc3Qg
d2hpY2ggaGFzIGEgd3JvbmcgY29tYmluYXRpb24gb2YgZXhwZWN0YXRpb24gZmlsZXMuCkBAIC03
Myw2ICs2OSwyNiBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoZXhwZWN0ZWRfZmlsZW5hbWUpOgogICAg
ICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCclcyBpcyBhIHJlZnRlc3QsIGJ1dCBoYXMgYW4g
dW51c2VkIGV4cGVjdGF0aW9uIGZpbGUuIFBsZWFzZSByZW1vdmUgJXMuJywgc2VsZi5fdGVzdF9u
YW1lLCBleHBlY3RlZF9maWxlbmFtZSkKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfdGVzdF9u
YW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9pbnB1dC50ZXN0X25hbWUKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfc2hvdWxkX3J1bl9waXhlbF90ZXN0KHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBfc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycihz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfaW5wdXQuc2hvdWxkX2R1bXBfanNjb25z
b2xlbG9nX2luX3N0ZGVycgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIF9yZWZlcmVuY2VfZmls
ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxl
cworCisgICAgQHByb3BlcnR5CisgICAgZGVmIF90aW1lb3V0KHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZi5fdGVzdF9pbnB1dC50aW1lb3V0CisKICAgICBkZWYgX2V4cGVjdGVkX2RyaXZlcl9v
dXRwdXQoc2VsZik6CiAgICAgICAgIHJldHVybiBEcml2ZXJPdXRwdXQoc2VsZi5fcG9ydC5leHBl
Y3RlZF90ZXh0KHNlbGYuX3Rlc3RfbmFtZSwgZGV2aWNlX3R5cGU9c2VsZi5fZHJpdmVyLmhvc3Qu
ZGV2aWNlX3R5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcG9y
dC5leHBlY3RlZF9pbWFnZShzZWxmLl90ZXN0X25hbWUsIGRldmljZV90eXBlPXNlbGYuX2RyaXZl
ci5ob3N0LmRldmljZV90eXBlKSwKQEAgLTk2LDcgKzExMiw3IEBAIGNsYXNzIFNpbmdsZVRlc3RS
dW5uZXIob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzOgogICAgICAg
ICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdub19yZWZfdGVzdHMnKSBvciBzZWxmLl9v
cHRpb25zLnJlc2V0X3Jlc3VsdHM6CiAgICAgICAgICAgICAgICAgcmVmdGVzdF90eXBlID0gc2V0
KFtyZWZlcmVuY2VfZmlsZVswXSBmb3IgcmVmZXJlbmNlX2ZpbGUgaW4gc2VsZi5fcmVmZXJlbmNl
X2ZpbGVzXSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBUZXN0UmVzdWx0KHNlbGYuX3Rlc3Rf
bmFtZSwgcmVmdGVzdF90eXBlPXJlZnRlc3RfdHlwZSkKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBUZXN0UmVzdWx0KHNlbGYuX3Rlc3RfaW5wdXQsIHJlZnRlc3RfdHlwZT1yZWZ0ZXN0X3R5cGUp
CiAgICAgICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3J1
bl9yZWZ0ZXN0KCkKQEAgLTEzMSw3ICsxNDcsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9i
amVjdCk6CiAgICAgICAgICMgRklYTUU6IEl0IHRoZSB0ZXN0IGNyYXNoZWQgb3IgdGltZWQgb3V0
LCBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gYXZvaWQKICAgICAgICAgIyB0byB3cml0ZSBuZXcgYmFz
ZWxpbmVzLgogICAgICAgICBzZWxmLl9vdmVyd3JpdGVfYmFzZWxpbmVzKGRyaXZlcl9vdXRwdXQp
Ci0gICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX3Rlc3RfbmFtZSwgZmFpbHVyZXMsIGRy
aXZlcl9vdXRwdXQudGVzdF90aW1lLCBkcml2ZXJfb3V0cHV0Lmhhc19zdGRlcnIoKSwgcGlkPWRy
aXZlcl9vdXRwdXQucGlkKQorICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl90ZXN0X2lu
cHV0LCBmYWlsdXJlcywgZHJpdmVyX291dHB1dC50ZXN0X3RpbWUsIGRyaXZlcl9vdXRwdXQuaGFz
X3N0ZGVycigpLCBwaWQ9ZHJpdmVyX291dHB1dC5waWQpCiAKICAgICBfcmVuZGVyX3RyZWVfZHVt
cF9wYXR0ZXJuID0gcmUuY29tcGlsZShyIl5sYXllciBhdCBcKFxkKyxcZCtcKSBzaXplIFxkK3hc
ZCtcbiIpCiAKQEAgLTIyMywxMyArMjM5LDEzIEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXIob2Jq
ZWN0KToKICAgICAgICAgaWYgZHJpdmVyX291dHB1dC5jcmFzaDoKICAgICAgICAgICAgICMgRG9u
J3QgY29udGludWUgYW55IG1vcmUgaWYgd2UgYWxyZWFkeSBoYXZlIGEgY3Jhc2guCiAgICAgICAg
ICAgICAjIEluIGNhc2Ugb2YgdGltZW91dHMsIHdlIGNvbnRpbnVlIHNpbmNlIHdlIHN0aWxsIHdh
bnQgdG8gc2VlIHRoZSB0ZXh0IGFuZCBpbWFnZSBvdXRwdXQuCi0gICAgICAgICAgICByZXR1cm4g
VGVzdFJlc3VsdChzZWxmLl90ZXN0X25hbWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3Rf
dGltZSwgZHJpdmVyX291dHB1dC5oYXNfc3RkZXJyKCksIHBpZD1kcml2ZXJfb3V0cHV0LnBpZCkK
KyAgICAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX3Rlc3RfaW5wdXQsIGZhaWx1cmVz
LCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSwgZHJpdmVyX291dHB1dC5oYXNfc3RkZXJyKCksIHBp
ZD1kcml2ZXJfb3V0cHV0LnBpZCkKIAogICAgICAgICBmYWlsdXJlcy5leHRlbmQoc2VsZi5fY29t
cGFyZV90ZXh0KGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQudGV4dCwgZHJpdmVyX291dHB1dC50ZXh0
KSkKICAgICAgICAgZmFpbHVyZXMuZXh0ZW5kKHNlbGYuX2NvbXBhcmVfYXVkaW8oZXhwZWN0ZWRf
ZHJpdmVyX291dHB1dC5hdWRpbywgZHJpdmVyX291dHB1dC5hdWRpbykpCiAgICAgICAgIGlmIHNl
bGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAgIGZhaWx1cmVzLmV4dGVuZChz
ZWxmLl9jb21wYXJlX2ltYWdlKGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQsIGRyaXZlcl9vdXRwdXQp
KQotICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl90ZXN0X25hbWUsIGZhaWx1cmVzLCBk
cml2ZXJfb3V0cHV0LnRlc3RfdGltZSwgZHJpdmVyX291dHB1dC5oYXNfc3RkZXJyKCksIHBpZD1k
cml2ZXJfb3V0cHV0LnBpZCkKKyAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9p
bnB1dCwgZmFpbHVyZXMsIGRyaXZlcl9vdXRwdXQudGVzdF90aW1lLCBkcml2ZXJfb3V0cHV0Lmhh
c19zdGRlcnIoKSwgcGlkPWRyaXZlcl9vdXRwdXQucGlkKQogCiAgICAgZGVmIF9jb21wYXJlX3Rl
eHQoc2VsZiwgZXhwZWN0ZWRfdGV4dCwgYWN0dWFsX3RleHQpOgogICAgICAgICBmYWlsdXJlcyA9
IFtdCkBAIC0zMTcsNyArMzMzLDcgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcihvYmplY3QpOgog
ICAgICAgICBhc3NlcnQocmVmZXJlbmNlX291dHB1dCkKICAgICAgICAgdGVzdF9yZXN1bHRfd3Jp
dGVyLndyaXRlX3Rlc3RfcmVzdWx0KHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX3BvcnQsIHNlbGYu
X3Jlc3VsdHNfZGlyZWN0b3J5LCBzZWxmLl90ZXN0X25hbWUsIHRlc3Rfb3V0cHV0LCByZWZlcmVu
Y2Vfb3V0cHV0LCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcykKICAgICAgICAgcmVmdGVzdF90eXBlID0g
c2V0KFtyZWZlcmVuY2VfZmlsZVswXSBmb3IgcmVmZXJlbmNlX2ZpbGUgaW4gc2VsZi5fcmVmZXJl
bmNlX2ZpbGVzXSkKLSAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9uYW1lLCB0
ZXN0X3Jlc3VsdC5mYWlsdXJlcywgdG90YWxfdGVzdF90aW1lICsgdGVzdF9yZXN1bHQudGVzdF9y
dW5fdGltZSwgdGVzdF9yZXN1bHQuaGFzX3N0ZGVyciwgcmVmdGVzdF90eXBlPXJlZnRlc3RfdHlw
ZSwgcGlkPXRlc3RfcmVzdWx0LnBpZCwgcmVmZXJlbmNlcz1yZWZlcmVuY2VfdGVzdF9uYW1lcykK
KyAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9pbnB1dCwgdGVzdF9yZXN1bHQu
ZmFpbHVyZXMsIHRvdGFsX3Rlc3RfdGltZSArIHRlc3RfcmVzdWx0LnRlc3RfcnVuX3RpbWUsIHRl
c3RfcmVzdWx0Lmhhc19zdGRlcnIsIHJlZnRlc3RfdHlwZT1yZWZ0ZXN0X3R5cGUsIHBpZD10ZXN0
X3Jlc3VsdC5waWQsIHJlZmVyZW5jZXM9cmVmZXJlbmNlX3Rlc3RfbmFtZXMpCiAKICAgICBkZWYg
X2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNlKHNlbGYsIHJlZmVyZW5jZV9kcml2ZXJfb3V0
cHV0LCBhY3R1YWxfZHJpdmVyX291dHB1dCwgcmVmZXJlbmNlX2ZpbGVuYW1lLCBtaXNtYXRjaCk6
CiAgICAgICAgIHRvdGFsX3Rlc3RfdGltZSA9IHJlZmVyZW5jZV9kcml2ZXJfb3V0cHV0LnRlc3Rf
dGltZSArIGFjdHVhbF9kcml2ZXJfb3V0cHV0LnRlc3RfdGltZQpAQCAtMzI2LDEwICszNDIsMTAg
QEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBmYWlsdXJlcy5leHRl
bmQoc2VsZi5faGFuZGxlX2Vycm9yKGFjdHVhbF9kcml2ZXJfb3V0cHV0KSkKICAgICAgICAgaWYg
ZmFpbHVyZXM6CiAgICAgICAgICAgICAjIERvbid0IGNvbnRpbnVlIGFueSBtb3JlIGlmIHdlIGFs
cmVhZHkgaGF2ZSBjcmFzaCBvciB0aW1lb3V0LgotICAgICAgICAgICAgcmV0dXJuIFRlc3RSZXN1
bHQoc2VsZi5fdGVzdF9uYW1lLCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lLCBoYXNfc3RkZXJy
KQorICAgICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9pbnB1dCwgZmFpbHVy
ZXMsIHRvdGFsX3Rlc3RfdGltZSwgaGFzX3N0ZGVycikKICAgICAgICAgZmFpbHVyZXMuZXh0ZW5k
KHNlbGYuX2hhbmRsZV9lcnJvcihyZWZlcmVuY2VfZHJpdmVyX291dHB1dCwgcmVmZXJlbmNlX2Zp
bGVuYW1lPXJlZmVyZW5jZV9maWxlbmFtZSkpCiAgICAgICAgIGlmIGZhaWx1cmVzOgotICAgICAg
ICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9uYW1lLCBmYWlsdXJlcywgdG90YWxf
dGVzdF90aW1lLCBoYXNfc3RkZXJyLCBwaWQ9YWN0dWFsX2RyaXZlcl9vdXRwdXQucGlkKQorICAg
ICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9pbnB1dCwgZmFpbHVyZXMsIHRv
dGFsX3Rlc3RfdGltZSwgaGFzX3N0ZGVyciwgcGlkPWFjdHVhbF9kcml2ZXJfb3V0cHV0LnBpZCkK
IAogICAgICAgICBpZiBub3QgcmVmZXJlbmNlX2RyaXZlcl9vdXRwdXQuaW1hZ2VfaGFzaCBhbmQg
bm90IGFjdHVhbF9kcml2ZXJfb3V0cHV0LmltYWdlX2hhc2g6CiAgICAgICAgICAgICBmYWlsdXJl
cy5hcHBlbmQodGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE5vSW1hZ2VzR2VuZXJhdGVkKHJl
ZmVyZW5jZV9maWxlbmFtZSkpCkBAIC0zNDgsNCArMzY0LDQgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1
bm5lcihvYmplY3QpOgogICAgICAgICAgICAgZWxpZiBkaWZmX3Jlc3VsdFswXToKICAgICAgICAg
ICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21h
dGNoKHJlZmVyZW5jZV9maWxlbmFtZSkpCiAKLSAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2Vs
Zi5fdGVzdF9uYW1lLCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lLCBoYXNfc3RkZXJyLCBwaWQ9
YWN0dWFsX2RyaXZlcl9vdXRwdXQucGlkKQorICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxm
Ll90ZXN0X2lucHV0LCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lLCBoYXNfc3RkZXJyLCBwaWQ9
YWN0dWFsX2RyaXZlcl9vdXRwdXQucGlkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfaW5wdXQucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQppbmRleCBjOTkzYTAzNzIz
ZDBmNTMyZWRlYmI5ZDBkYzE5ZmUxOWJkOWY5NDZlLi4xYzllODIzNDI5YmNkOTQ4NmM3MTJhZjdh
ZTU1NjJmOGExNjVhYWViIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQpAQCAtNDMsNiArNDMsNyBAQCBjbGFz
cyBUZXN0SW5wdXQob2JqZWN0KToKICAgICAiIiIKICAgICB0ZXN0ID0gYXR0ci5pYih0eXBlPVRl
c3QpCiAgICAgdGltZW91dCA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKSAgIyB0eXBlOiBVbmlvbltO
b25lLCBpbnQsIHN0cl0KKyAgICBpc19zbG93ID0gYXR0ci5pYihkZWZhdWx0PU5vbmUpICAjIHR5
cGU6IE9wdGlvbmFsW2Jvb2xdCiAgICAgbmVlZHNfc2VydmVycyA9IGF0dHIuaWIoZGVmYXVsdD1O
b25lKSAgIyB0eXBlOiBPcHRpb25hbFtib29sXQogICAgIHNob3VsZF9kdW1wX2pzY29uc29sZWxv
Z19pbl9zdGRlcnIgPSBhdHRyLmliKGRlZmF1bHQ9Tm9uZSkgICMgdHlwZTogT3B0aW9uYWxbYm9v
bF0KICAgICByZWZlcmVuY2VfZmlsZXMgPSBhdHRyLmliKGRlZmF1bHQ9Tm9uZSkgICMgdHlwZTog
T3B0aW9uYWxbTGlzdFtUdXBsZVtzdHIgc3RyXV1dCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weQppbmRleCA5
OTAyYWZhZDZkMzk5MGQ4MTM0MjU4YTFkYTc3OTBlMTg5ZDc1ODMwLi5mNDQ1NDUzMDFjYThkNWM3
ZmFhYzdiZTM3ZTljMjRlZDY0MzIyM2Y3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHMucHkKQEAgLTI3LDEz
ICsyNywyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMgaW1wb3J0IHRlc3RfZmFpbHVyZXMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1v
ZGVscy50ZXN0IGltcG9ydCBUZXN0Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMu
dGVzdF9pbnB1dCBpbXBvcnQgVGVzdElucHV0CiAKIAogY2xhc3MgVGVzdFJlc3VsdChvYmplY3Qp
OgogICAgICIiIkRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlc3VsdHMgb2YgYSBzaW5nbGUg
dGVzdC4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIGZhaWx1cmVzPU5v
bmUsIHRlc3RfcnVuX3RpbWU9Tm9uZSwgaGFzX3N0ZGVycj1GYWxzZSwgcmVmdGVzdF90eXBlPU5v
bmUsIHBpZD1Ob25lLCByZWZlcmVuY2VzPU5vbmUpOgotICAgICAgICBzZWxmLnRlc3RfbmFtZSA9
IHRlc3RfbmFtZQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X2lucHV0LCBmYWlsdXJlcz1O
b25lLCB0ZXN0X3J1bl90aW1lPU5vbmUsIGhhc19zdGRlcnI9RmFsc2UsIHJlZnRlc3RfdHlwZT1O
b25lLCBwaWQ9Tm9uZSwgcmVmZXJlbmNlcz1Ob25lKToKKyAgICAgICAgIyB0aGlzIHRha2VzIGEg
VGVzdElucHV0LCBhbmQgbm90IGEgVGVzdCwgYXMgcnVubmluZyB0aGUgc2FtZSBUZXN0IHdpdGgK
KyAgICAgICAgIyBkaWZmZXJlbnQgaW5wdXQgb3B0aW9ucyBjYW4gcmVzdWx0IGluIGRpZmZlcmlu
ZyByZXN1bHRzCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHRlc3RfaW5wdXQsIFRlc3RJbnB1
dCk6CisgICAgICAgICAgICAjIEZJWE1FOiBmaWd1cmUgb3V0IHNvbWV0aGluZyBiZXR0ZXIKKyAg
ICAgICAgICAgICMgQ2hhbmdpbmcgYWxsIGNhbGxlcnMgd2lsbCBiZSBoYXJkIGJ1dCBwcm9iYWJs
eSB3b3J0aCBpdD8KKyAgICAgICAgICAgIHRlc3RfaW5wdXQgPSBUZXN0SW5wdXQoVGVzdCh0ZXN0
X2lucHV0KSkKKyAgICAgICAgc2VsZi50ZXN0X2lucHV0ID0gdGVzdF9pbnB1dAogICAgICAgICBz
ZWxmLmZhaWx1cmVzID0gZmFpbHVyZXMgb3IgW10KICAgICAgICAgc2VsZi50ZXN0X3J1bl90aW1l
ID0gdGVzdF9ydW5fdGltZSBvciAwICAjIFRoZSB0aW1lIHRha2VuIHRvIGV4ZWN1dGUgdGhlIHRl
c3QgaXRzZWxmLgogICAgICAgICBzZWxmLmhhc19zdGRlcnIgPSBoYXNfc3RkZXJyCkBAIC01MSw2
ICs1OSwxMCBAQCBjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CiAgICAgICAgIHNlbGYudGVzdF9u
dW1iZXIgPSBOb25lCiAgICAgICAgIHNlbGYuaXNfb3RoZXJfY3Jhc2ggPSBGYWxzZQogCisgICAg
QHByb3BlcnR5CisgICAgZGVmIHRlc3RfbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
dGVzdF9pbnB1dC50ZXN0X25hbWUKKwogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAg
ICAgICByZXR1cm4gKHNlbGYudGVzdF9uYW1lID09IG90aGVyLnRlc3RfbmFtZSBhbmQKICAgICAg
ICAgICAgICAgICBzZWxmLmZhaWx1cmVzID09IG90aGVyLmZhaWx1cmVzIGFuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0
c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggM2RlNTUzMTNjNDgxODQ3NTE3YTlkNGNi
NzVjZTcwMTRjNzE5MzMyZC4uMmZiYzNmNjBjNzVkNzcyODYzY2NmODc5N2E2OTY3MDJjYjZlZDk4
MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfcmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC00NCw3ICs0NCw3
IEBAIGNsYXNzIFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVzdWx0LnRlc3RfcnVuX3RpbWUsIDApCiAKICAgICBkZWYgdGVzdF9w
aWNrbGVfcm91bmR0cmlwKHNlbGYpOgotICAgICAgICByZXN1bHQgPSBUZXN0UmVzdWx0KHRlc3Rf
bmFtZT0nZm9vJywgZmFpbHVyZXM9W10sIHRlc3RfcnVuX3RpbWU9MS4xKQorICAgICAgICByZXN1
bHQgPSBUZXN0UmVzdWx0KCdmb28nLCBmYWlsdXJlcz1bXSwgdGVzdF9ydW5fdGltZT0xLjEpCiAg
ICAgICAgIHMgPSBwaWNrbGUuZHVtcHMocmVzdWx0KSAgIyBtdWx0aXByb2Nlc3NpbmcgdXNlcyB0
aGUgZGVmYXVsdCBwcm90b2NvbCB2ZXJzaW9uCiAgICAgICAgIG5ld19yZXN1bHQgPSBwaWNrbGUu
bG9hZHMocykKICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG5ld19yZXN1bHQsIFRlc3RS
ZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9t
b2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CmluZGV4IGNmYTdkNDI3YmQxMWQzMzYx
NzdhMzJmMzAwNTlkZjRiOGU3NzhkYjcuLjE0NTllNGE0MWFjOWJkMGM1NjMyYTc0MjFiNzhjZTlj
MjNlZGRmYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CkBAIC02Nyw3ICs2Nyw3IEBA
IGNsYXNzIFRlc3RSdW5SZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIHNlbGYuaW50ZXJydXB0ZWQg
PSBGYWxzZQogICAgICAgICBzZWxmLmtleWJvYXJkX2ludGVycnVwdGVkID0gRmFsc2UKIAotICAg
IGRlZiBhZGQoc2VsZiwgdGVzdF9yZXN1bHQsIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpOgorICAg
IGRlZiBhZGQoc2VsZiwgdGVzdF9yZXN1bHQsIGV4cGVjdGVkKToKICAgICAgICAgc2VsZi50ZXN0
c19ieV9leHBlY3RhdGlvblt0ZXN0X3Jlc3VsdC50eXBlXS5hZGQodGVzdF9yZXN1bHQudGVzdF9u
YW1lKQogICAgICAgICBzZWxmLnJlc3VsdHNfYnlfbmFtZVt0ZXN0X3Jlc3VsdC50ZXN0X25hbWVd
ID0gdGVzdF9yZXN1bHQKICAgICAgICAgaWYgdGVzdF9yZXN1bHQuaXNfb3RoZXJfY3Jhc2g6CkBA
IC05MSw3ICs5MSw3IEBAIGNsYXNzIFRlc3RSdW5SZXN1bHRzKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgc2VsZi51bmV4cGVjdGVkX2NyYXNoZXMgKz0gMQogICAgICAgICAgICAgZWxpZiB0ZXN0
X3Jlc3VsdC50eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQ6CiAgICAgICAgICAgICAg
ICAgc2VsZi51bmV4cGVjdGVkX3RpbWVvdXRzICs9IDEKLSAgICAgICAgaWYgdGVzdF9pc19zbG93
OgorICAgICAgICBpZiB0ZXN0X3Jlc3VsdC50ZXN0X2lucHV0LmlzX3Nsb3c6CiAgICAgICAgICAg
ICBzZWxmLnNsb3dfdGVzdHMuYWRkKHRlc3RfcmVzdWx0LnRlc3RfbmFtZSkKIAogICAgIGRlZiBj
aGFuZ2VfcmVzdWx0X3RvX2ZhaWx1cmUoc2VsZiwgZXhpc3RpbmdfcmVzdWx0LCBuZXdfcmVzdWx0
LCBleGlzdGluZ19leHBlY3RlZCwgbmV3X2V4cGVjdGVkKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
cnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggMGU5MWEzMmM5OTBmNjFhNzU5MjkyZWYzODc4
MDMwMDhmMTg4OWQ2Yi4uNDMwNWFlMTczMDYxOWE5NjllZDBhYjMzYmRjOTlmY2FhY2NkOGUzYSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTYwLDU4
ICs2MCw1NiBAQCBkZWYgcnVuX3Jlc3VsdHMocG9ydCk6CiAKIAogZGVmIHN1bW1hcml6ZWRfcmVz
dWx0cyhwb3J0LCBleHBlY3RlZCwgcGFzc2luZywgZmxha3ksIGluY2x1ZGVfcGFzc2VzPUZhbHNl
KToKLSAgICB0ZXN0X2lzX3Nsb3cgPSBGYWxzZQotCiAgICAgaW5pdGlhbF9yZXN1bHRzID0gcnVu
X3Jlc3VsdHMocG9ydCkKICAgICBpZiBleHBlY3RlZDoKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRz
LmFkZChnZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFT
UyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsIHRlc3RfZXhwZWN0YXRp
b25zLkFVRElPKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1
bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0
X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAg
aW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5o
dG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQor
ICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwn
LCB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVz
dWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsIHRlc3Rf
ZXhwZWN0YXRpb25zLkFVRElPKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5h
ZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBl
Y3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRk
KGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0
aW9ucy5DUkFTSCksIGV4cGVjdGVkKQogCiAgICAgICAgIGlmIHBvcnQuX29wdGlvbnMucGl4ZWxf
dGVzdHM6Ci0gICAgICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFKSwg
ZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJywgdGVzdF9leHBl
Y3RhdGlvbnMuSU1BR0UpLCBleHBlY3RlZCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlu
aXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFp
bC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cp
CisgICAgICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3Rl
ZCkKIAogICAgICAgICBpZiBwb3J0Ll9vcHRpb25zLndvcmxkX2xlYWtzOgotICAgICAgICAgICAg
aW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0
bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5MRUFLKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAg
ICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0
ZWQvbGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuTEVBSyksIGV4cGVjdGVkKQogICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWls
dXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0
ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFT
UyksIGV4cGVjdGVkKQogCiAgICAgZWxpZiBwYXNzaW5nOgotICAgICAgICBpbml0aWFsX3Jlc3Vs
dHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNf
c2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9l
eHBlY3RlZC9hdWRpby5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGlu
aXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5o
dG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5h
ZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBleHBlY3RlZCwg
dGVzdF9pc19zbG93KQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bh
c3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcpLCBleHBlY3RlZCkKKyAg
ICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90
aW1lb3V0Lmh0bWwnKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0
X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBleHBlY3RlZCkKIAogICAg
ICAgICBpZiBwb3J0Ll9vcHRpb25zLnBpeGVsX3Rlc3RzOgotICAgICAgICAgICAgaW5pdGlhbF9y
ZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0bWwn
KSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5h
ZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJyksIGV4cGVj
dGVkKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0bWwnLCB0ZXN0X2V4cGVjdGF0
aW9ucy5JTUFHRSksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBpbml0aWFs
X3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRt
bCcsIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFKSwgZXhwZWN0ZWQpCiAKICAgICAgICAgaWYgcG9y
dC5fb3B0aW9ucy53b3JsZF9sZWFrczoKLSAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJyksIGV4cGVjdGVkLCB0ZXN0
X2lzX3Nsb3cpCisgICAgICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2Zh
aWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcpLCBleHBlY3RlZCkKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0
ZWQvbGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lz
X3Nsb3cpCisgICAgICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3Rl
ZCkKICAgICBlbHNlOgotICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bh
c3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWls
dXJlcy9leHBlY3RlZC9hdWRpby5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQVVESU8pLCBleHBl
Y3RlZCwgdGVzdF9pc19zbG93KQotICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1
bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkNS
QVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFk
ZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1s
JywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0g
ICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQv
bGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19z
bG93KQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0
Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCisgICAgICAgIGlu
aXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRt
bCcsIHRlc3RfZXhwZWN0YXRpb25zLkFVRElPKSwgZXhwZWN0ZWQpCisgICAgICAgIGluaXRpYWxf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywg
dGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCkKKyAgICAgICAgaW5pdGlhbF9yZXN1
bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9l
eHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMu
YWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcsIHRlc3Rf
ZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCkKKyAgICAgICAgaW5pdGlhbF9yZXN1bHRz
LmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkKQogCiAgICAgICAgICMgd2Ugb25seSBsaXN0IGhhbmcu
aHRtbCBoZXJlLCBzaW5jZSBub3JtYWxseSB0aGlzIGlzIFdvbnRGaXgKLSAgICAgICAgaW5pdGlh
bF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwnLCB0
ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAg
ICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9oYW5n
Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCiAKICAgICBpZiBm
bGFreToKICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IHJ1bl9yZXN1bHRzKHBvcnQpCi0gICAgICAg
IHJldHJ5X3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgVHJ1ZSwg
dGVzdF9pc19zbG93KQotICAgICAgICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWls
dXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAgICAg
ICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5o
dG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0
X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJyksIFRydWUsIHRlc3Rf
aXNfc2xvdykKLSAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvbGVhay5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgcmV0cnlf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlKQorICAgICAg
ICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0
Lmh0bWwnKSwgVHJ1ZSkKKyAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFp
bHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlKQorICAgICAgICByZXRyeV9yZXN1bHRz
LmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0bWwnKSwgVHJ1
ZSkKKyAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0
ZWQvbGVhay5odG1sJyksIFRydWUpCiAgICAgZWxzZToKICAgICAgICAgcmV0cnlfcmVzdWx0cyA9
IE5vbmUKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQppbmRl
eCAxODQ3ZTVjYjFlMjgzOGQ0NDY0MDJmOWI2YTUyZDlhMGM0MGI3M2JjLi5hMjZlNGVjMmQ2ZGMw
NDBlNWFkZmVlOTNjN2Y0M2FhYjhkNjNiZjU0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
X2ludGVncmF0aW9udGVzdC5weQpAQCAtODE5LDYgKzgxOSwyMSBAQCBjbGFzcyBSdW5UZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocGFzc2luZ19ydW4oWyctLWFkZGl0aW9uYWwtZXhwZWN0YXRpb25zJywgJy90bXAvb3Zl
cnJpZGVzLnR4dCcsICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc21hdGNoLmh0bWwnXSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9
aG9zdCkpCiAKKyAgICBkZWYgdGVzdF90ZXN0c19vcHRpb25zKHNlbGYpOgorICAgICAgICBob3N0
ID0gTW9ja0hvc3QoKQorICAgICAgICBob3N0LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKAor
ICAgICAgICAgICAgJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNv
bicsCisgICAgICAgICAgICAneyJmYWlsdXJlcy91bmV4cGVjdGVkL3RpbWVvdXQuaHRtbCI6WyJz
bG93Il19JworICAgICAgICApCisKKyAgICAgICAgZGV0YWlscywgXywgXyA9IGxvZ2dpbmdfcnVu
KFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC90aW1lb3V0Lmh0bWwnXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9zdCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZGV0YWlscy5pbml0aWFsX3Jlc3VsdHMuc2xvd190ZXN0cywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgeydmYWlsdXJlcy91bmV4cGVjdGVkL3RpbWVvdXQuaHRtbCd9
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZXRhaWxzLnJldHJ5X3Jlc3VsdHMuc2xvd190
ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeydmYWlsdXJlcy91bmV4cGVjdGVkL3Rp
bWVvdXQuaHRtbCd9KQorCiAgICAgZGVmIHRlc3Rfbm9faHR0cF9hbmRfZm9yY2Uoc2VsZik6CiAg
ICAgICAgICMgU2VlIHRlc3RfcnVuX2ZvcmNlLCB1c2luZyAtLWZvcmNlIHJhaXNlcyBhbiBleGNl
cHRpb24uCiAgICAgICAgICMgRklYTUU6IFdlIHdvdWxkIGxpa2UgdG8gY2hlY2sgdGhlIHdhcm5p
bmdzIGdlbmVyYXRlZC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>