<?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>103900</bug_id>
          
          <creation_ts>2012-12-03 08:57:50 -0800</creation_ts>
          <short_desc>Many webkitpy unit tests can be run standalone, are executable</short_desc>
          <delta_ts>2012-12-04 12:35:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781500</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-03 08:57:50 -0800</bug_when>
    <thetext>There are many unit tests in webkitpy containing the following two lines at the bottom:

if __name__==&apos;__main__&apos;:
    unittest.main()

Some unit test files are even executable and/or containing the shebang line at the top of the file.

I guess there was once a tendency to be able to run only specific unit tests. Given that today the tests, when running test-webkitpy, are run in parallel and can be narrowed down via the command line, is there still a requirement for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781583</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-03 10:16:08 -0800</bug_when>
    <thetext>As you say, I originally ran many of the unit tests individually to test modules; partially this was because of python convention, and partially this was because test-webkitpy was pretty bare-bones and missing a bunch of stuff I needed (like being able to get coverage numbers). I&apos;ve added all of the features to test-webkitpy since then, and rarely run the tests directly now, so there&apos;s no real reason to keep these lines.

(The other people who did python development, like eseidel and abarth, pretty much never used these lines in the first place, so I don&apos;t think anyone will object to removing them across the board).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781593</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-03 10:20:43 -0800</bug_when>
    <thetext>Nope. :)  Go for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782341</commentid>
    <comment_count>3</comment_count>
      <attachid>177438</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-04 00:57:52 -0800</bug_when>
    <thetext>Created attachment 177438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782344</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-04 01:02:29 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=177438) [details]
&gt; Patch

This patch only covers unit tests, but there are other files as well that contain shebang lines and are executable. I&apos;ll spin up another patch for those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782346</commentid>
    <comment_count>5</comment_count>
      <attachid>177438</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-04 01:07:00 -0800</bug_when>
    <thetext>Comment on attachment 177438
Patch

LGTM.  But you probably want to wait for Dirk to confirm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782729</commentid>
    <comment_count>6</comment_count>
      <attachid>177438</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 11:06:52 -0800</bug_when>
    <thetext>Comment on attachment 177438
Patch

looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782808</commentid>
    <comment_count>7</comment_count>
      <attachid>177438</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-04 12:35:03 -0800</bug_when>
    <thetext>Comment on attachment 177438
Patch

Clearing flags on attachment: 177438

Committed r136548: &lt;http://trac.webkit.org/changeset/136548&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782809</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-12-04 12:35:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177438</attachid>
            <date>2012-12-04 00:57:52 -0800</date>
            <delta_ts>2012-12-04 12:35:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103900-20121204095517.patch</filename>
            <type>text/plain</type>
            <size>52024</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDU0ZGFlZWQ5NjUxYTNmNjRlY2NiZWVhY2MyYjRjMmU1
ZDRiNjc2ZC4uYmI3MzdkMmM5MGU3YjJmODk1YjMzMGI5MDU3YzVmZGI5NzBhOTYxNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
MCBAQAorMjAxMi0xMi0wNCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgor
CisgICAgICAgIE1hbnkgd2Via2l0cHkgdW5pdCB0ZXN0cyBjYW4gYmUgcnVuIHN0YW5kYWxvbmUs
IGFyZSBleGVjdXRhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDM5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGVyZSdzIG5vIG5lZWQgYW55bW9yZSB0byBydW4gdW5pdCB0ZXN0cyBpbiBzdGFu
ZGFsb25lIG1vZGUgYXMgdGhleQorICAgICAgICBhcmUgbm93IGhhbmRsZWQgYnkgdGVzdC13ZWJr
aXRweSBpbiBhIGZvcm1pZGFibGUgZmFzaGlvbi4gVGhpcyBtYWtlcworICAgICAgICBpdCBwb3Nz
aWJsZSBmb3IgdGhpcyBwYXRjaCB0byByZW1vdmUgdGhlIGZvbGxvd2luZyB1bm5lY2Vzc2FyeSBi
aXRzOgorICAgICAgICAtIHJlbW92ZSBzaGViYW5nIGxpbmVzIGZyb20gdW5pdCB0ZXN0IGZpbGVz
LAorICAgICAgICAtIHJlbW92ZSBjYWxscyB0byB1bml0dGVzdC5tYWluKCksCisgICAgICAgIC0g
bWFrZSB1bml0IHRlc3QgZmlsZXMgbm9uLWV4ZWN1dGFibGUuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91bml0dGVzdC5weToKKyAgICAg
ICAgKERpZmZQYXJzZXJUZXN0LnRlc3RfZ2l0X21uZW1vbmljcHJlZml4KToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoR2l0VGVzdFdpdGhNb2NrLnRlc3RfcHVzaF9sb2NhbF9jb21taXRzX3RvX3NlcnZlcl93
aXRob3V0X3VzZXJuYW1lX2FuZF93aXRoX3Bhc3N3b3JkKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvYnVpbGRfdW5pdHRlc3QucHk6CisgICAgICAgIChTaG91bGRC
dWlsZFRlc3QudGVzdF9zaG91bGRfYnVpbGQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0
VGVzdC50ZXN0X2Nocm9taXVtX3h2ZmJfcG9ydCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vZmluZF9maWxlc191bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RXaW5Ob3JtYWxp
emUudGVzdF93aW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2xydV9jYWNo
ZV91bml0dGVzdC5weToKKyAgICAgICAgKExSVUNhY2hlVGVzdC50ZXN0X3NldF9hZ2Fpbik6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3Vu
aXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9yZXN1bHRzX3ppcF91cmwpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weToKKyAgICAg
ICAgKHRlc3Rfa2V5cmluZ193aXRob3V0X2dpdF9yZXBvX25vcl9rZXljaGFpbik6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L29tYWhhcHJveHlfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChPbWFoYVByb3h5VGVzdC50ZXN0X2dldF9yZXZpc2lvbnMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC91bml0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV3c3RyaW5naW9fdW5pdHRlc3QucHk6
CisgICAgICAgIChOZXdTdHJpbmdJT1Rlc3QudGVzdF93aXRoKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9yZWFkX2NoZWNrc3VtX2Zyb21fcG5nX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoUmVhZENoZWNrc3VtRnJvbVBuZ1Rlc3QudGVzdF9yZWFkX2NoZWNrc3VtKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZV9sb2NrX2ludGVncmF0aW9u
dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5
c3RlbV9tb2NrX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja0ZpbGVTeXN0ZW1UZXN0LnRlc3Rf
bm9ybXBhdGgpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxl
c3lzdGVtX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUmVhbEZpbGVTeXN0ZW1UZXN0LnRlc3Rfc2Vw
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZv
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0X3RvdGFsX2J5dGVz
X21lbW9yeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3ppcGZp
bGVzZXRfdW5pdHRlc3QucHk6CisgICAgICAgIChaaXBGaWxlU2V0VGVzdC50ZXN0X25hbWVsaXN0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93
cml0ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVzdC50ZXN0X3Jl
ZnRlc3RfZGlmZl9pbWFnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvanNvbl9yZXN1bHRzX2dlbmVyYXRvcl91bml0dGVzdC5weToKKyAg
ICAgICAgKEpTT05HZW5lcmF0b3JUZXN0LnRlc3RfdGVzdF90aW1pbmdzX3RyaWUpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9u
c191bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0
cy50ZXN0X3N0cmluZ193aGl0ZXNwYWNlX3N0cmlwcGluZyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5OgorICAgICAgICAoS2V5
Q29tcGFyZVRlc3QudGVzdF90ZXN0X2tleSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9idWlsZGVyc191bml0dGVzdC5weToKKyAgICAgICAgKEJ1aWxkZXJz
VGVzdC50ZXN0X3BhdGhfZnJvbV9uYW1lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWRfdW5pdHRlc3QucHk6CisgICAgICAgIChD
aHJvbWl1bUFuZHJvaWRUd29Qb3J0c1Rlc3QudGVzdF9vcHRpb25zX3dpdGhfdHdvX3BvcnRzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xp
bnV4X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ2hyb21pdW1MaW51eFBvcnRUZXN0LnRlc3RfcGF0
aF90b19pbWFnZV9kaWZmKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weToKKyAgICAgICAgKENocm9taXVtTWFjUG9y
dFRlc3QudGVzdF9wYXRoX3RvX2ltYWdlX2RpZmYpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAg
KENocm9taXVtUG9ydExvZ2dpbmdUZXN0LnRlc3RfY2hlY2tfc3lzX2RlcHMpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHk6
CisgICAgICAgIChDaHJvbWl1bVBvcnRMb2dnaW5nVGVzdC50ZXN0X2NoZWNrX3N5c19kZXBzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2NvbmZpZ191bml0
dGVzdC5weToKKyAgICAgICAgKENvbmZpZ1Rlc3QudGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb25f
X3NjcmlwdGVycm9yKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2RyaXZlcl91bml0dGVzdC5weToKKyAgICAgICAgKERyaXZlclRlc3QudGVzdF9zdGFydF9h
Y3R1YWxseV9zdGFydHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZmFjdG9yeV91bml0dGVzdC5weToKKyAgICAgICAgKEZhY3RvcnlUZXN0LnRlc3RfZ2V0
X2Zyb21fYnVpbGRlcl9uYW1lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2h0dHBfbG9ja191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2ltYWdlX2RpZmZfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWZ0ZXN0cy9leHRyYWN0
X3JlZmVyZW5jZV9saW5rX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5OgorICAgICAg
ICAoUG9ydFRlc3QuZGlzYWJsZWRfdGVzdF9tYWNfbGlvbik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9pbnRlZ3JhdGlvbnRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJl
ZF9zdHJlYW1fdW5pdHRlc3QucHk6CisgICAgICAgIChWZXJib3NlVGVzdC50ZXN0X2xvZ19hcmdz
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGlu
Z191bml0dGVzdC5weToKKyAgICAgICAgKHRlc3RfZGV0YWlscyk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5weToKKyAgICAg
ICAgKFRlc3RQZXJmVGVzdEZhY3RvcnkudGVzdF9pbnNwZWN0b3JfdGVzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRl
c3QucHk6CisgICAgICAgICh0ZXN0X3BhcnNlX2FyZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVzdC5weToKKyAgICAgICAgKENoYW5n
ZUxvZ0NoZWNrZXJUZXN0LnRlc3Rfbm9fZXJyb3IpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvY29tbW9uX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGFiQ2hlY2tl
clRlc3QudGVzdF90YWIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cnMvY3BwX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ3BwQ2hlY2tlclRlc3QudGVzdF9uZSk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9qc29uY2hlY2tlcl91bml0
dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191
bml0dGVzdC5weToKKyAgICAgICAgKFBOR0NoZWNrZXJUZXN0LnRlc3RfY2hlY2spOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnNfdW5p
dHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGV4dENoZWNrZXJUZXN0LnRlc3RfaW5pdCk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pf
dW5pdHRlc3QucHk6CisgICAgICAgIChYY29kZVByb2plY3RGaWxlQ2hlY2tlclRlc3QudGVzdF9k
ZXRlY3RfZGV2ZWxvcG1lbnRfcmVnaW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weToKKyAgICAgICAgKFhNTENoZWNrZXJUZXN0LnRl
c3Rfbm9fZXJyb3IpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvcGF0Y2hyZWFk
ZXJfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90ZXN0L2ZpbmRlcl91
bml0dGVzdC5weToKKyAgICAgICAgKEZpbmRlclRlc3QudGVzdF9wYXRocyk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVzdC5weToKKyAgICAgICAgKFJ1bm5l
clRlc3QudGVzdF9ydW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9za2lwX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoU2tpcFRlc3QudGVzdF9za2lwX2lmX3RydWUpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0dGVzdC5weToKKyAg
ICAgICAgKFRoaXJkcGFydHlUZXN0LnRlc3RfaW1wb3J0cyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b19iZV9tb3ZlZC91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfdW5pdHRl
c3QucHk6CisgICAgICAgIChUZXN0VHJhbnNsYXRpb24udGVzdF9pbmNsdWRlX3Jld3JpdGluZyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVz
dC5weToKKyAgICAgICAgKFF1ZXVlRW5naW5lVGVzdC50ZWFyRG93bik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2dyYW1tYXJfdW5pdHRlc3QucHk6CisgICAgICAgIChHcmFtbWFy
VGVzdC50ZXN0X2pvaW5fd2l0aF9zZXBhcmF0b3JzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbW9ja3Rvb2xfdW5pdHRlc3QucHk6CisgICAgICAgIChNb2NrT3B0aW9uc1Rlc3Qu
dGVzdF9rd2FyZ19fc2V0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbXVsdGlj
b21tYW5kdG9vbF91bml0dGVzdC5weToKKyAgICAgICAgKHRlc3RfY29tbWFuZF9oZWxwKToKKwog
MjAxMi0xMi0wMyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIGZ1bmN0aW9uYWxpdHkgZml4IGFmdGVyIHIxMzY0MzcuCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZf
cGFyc2VyX3VuaXR0ZXN0LnB5CmluZGV4IGNiYTBmMjQ5ZTBlMjhjNmFiYjdjOWM0N2YxN2FmNmYw
MjhhYTA0YzQuLmI0OGIxNjI2MmQ2OTExY2YzZGViNTMwOWZjZWJjOTVjOTIyY2QxNjIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2Vy
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L2RpZmZfcGFyc2VyX3VuaXR0ZXN0LnB5CkBAIC04OSw2ICs4OSwzIEBAIGNsYXNzIERpZmZQYXJz
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZm9yIHByZWZpeCBpbiBwcmVmaXhl
czoKICAgICAgICAgICAgIHBhdGNoID0gcC5zdWIobGFtYmRhIHg6ICIgJXMvIiAlIHByZWZpeFt4
Lmdyb3VwKDEpXSwgRElGRl9URVNUX0RBVEEpCiAgICAgICAgICAgICBzZWxmLnRlc3RfZGlmZl9w
YXJzZXIoZGlmZl9wYXJzZXIuRGlmZlBhcnNlcihwYXRjaC5zcGxpdGxpbmVzKCkpKQotCi1pZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fdW5pdHRl
c3QucHkKaW5kZXggY2ZmMjU0ZTYzNTUyYzc1YjNhYWE1OTA5ZjZmYTQ2YTBiNzU5OWZhNC4uMTRl
OWZkMzg0Mjc4NzEyOGQ0Y2JkMGYzYWZiMmUxY2MxMjZlMmNmMCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0ZXN0
LnB5CkBAIC0xNjA3LDYgKzE2MDcsMyBAQCBjbGFzcyBHaXRUZXN0V2l0aE1vY2sodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcHVzaF9sb2NhbF9jb21taXRzX3RvX3NlcnZlcl93
aXRob3V0X3VzZXJuYW1lX2FuZF93aXRoX3Bhc3N3b3JkKHNlbGYpOgogICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhBdXRoZW50aWNhdGlvbkVycm9yLCBzZWxmLm1ha2Vfc2NtKCkucHVzaF9sb2Nh
bF9jb21taXRzX3RvX3NlcnZlciwgeydwYXNzd29yZCc6ICdibGFoJ30pCi0KLWlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvYnVpbGRfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvYnVpbGRfdW5pdHRlc3QucHkKaW5kZXggYzQ5
NjE3OWU0NjE4YmNjNTgyYTMwOTFkM2NmN2NiMDlkNGQ3ZGFiZS4uYmI2MzRkMzEwMzIxMTVkNmE5
ZTZlY2YxMDE0NmMwMDZjNTVlMmZkMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9idWlsZF91bml0dGVzdC5weQpAQCAtNjQsNyArNjQsMyBAQCBj
bGFzcyBTaG91bGRCdWlsZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgZm9y
IHBsYXRmb3JtIGluIFsibWFjLWxlb3BhcmQiLCAibWFjLWxpb24iLCAgIm1hYy1tb3VudGFpbmxp
b24iLCAibWFjLXNub3dsZW9wYXJkIiwgIndpbiJdOgogICAgICAgICAgICAgICAgIHNob3VsZF9i
dWlsZCA9IHBsYXRmb3JtIGluIHBsYXRmb3JtcyBvciAiKiIgaW4gcGxhdGZvcm1zCiAgICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZC5zaG91bGRfYnVpbGQocGxhdGZvcm0sIGZp
bGVzKSwgc2hvdWxkX2J1aWxkLCAiJXMgc2hvdWxkJXMgaGF2ZSBidWlsdCBidXQgZGlkJXMgKGZp
bGVzOiAlcykiICUgKHBsYXRmb3JtLCAiIiBpZiBzaG91bGRfYnVpbGQgZWxzZSAibid0IiwgIm4n
dCIgaWYgc2hvdWxkX2J1aWxkIGVsc2UgIiIsIHN0cihmaWxlcykpKQotCi0KLWlmIF9fbmFtZV9f
ID09ICJfX21haW5fXyI6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKaW5kZXggNThk
NThkNDczNDQ1MTRiMmFmZmZmMjMyZmU0NTQwMDBhYTk0ZmViMy4uZDExNzA5Nzc0OWY2Nzc0N2Jh
M2JhZTY0ZTY5ZDUwNGQ4ZTM1ZTVjNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQpAQCAtMSw0ICsxLDMgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNzAsNyArNjksMyBAQCBjbGFz
cyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rf
Y2hyb21pdW1feHZmYl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENocm9t
aXVtWFZGQlBvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoKSwgWyd4dmZiLXJ1biddICsg
RGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgnbmV3LXJ1bi13ZWJraXQtdGVz
dHMnKSArIFsnLS1jaHJvbWl1bScsICctLXNraXAtZmFpbGluZy10ZXN0cyddKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9maW5kX2ZpbGVzX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vZmluZF9maWxlc191bml0dGVzdC5weQppbmRleCA2
NDEyNTFmMGU1ZmQ5OGQzYjI3MGE2NmUzMjkxNDAwM2Q0ZjE0ZTU4Li5mMGZlMDFjNTZjODY0Yjc5
YjYxNjAzNTA3ZTcyNGJiMDkyOWViNDA4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9maW5kX2ZpbGVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2ZpbmRfZmlsZXNfdW5pdHRlc3QucHkKQEAgLTU5LDcgKzU5LDMgQEAgY2xh
c3MgVGVzdFdpbk5vcm1hbGl6ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybSAhPSAnd2luMzInOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYuYXNz
ZXJ0X2ZpbGVzeXN0ZW1fbm9ybWFsaXplcyhGaWxlU3lzdGVtKCkpCi0KLQotaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2xydV9jYWNoZV91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2xydV9jYWNoZV91bml0dGVzdC5weQppbmRleCA0NGEwOWU2NjFi
YWM3NTY4YTQ1ZDRjNzNjMjlhZjYwZGU0ZjFjZmE5Li45NDQyNzY0MjRiMzA4Mjg3YmE5YzVjZjc5
YmMwOWFmODQ5NTZlNWNjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9scnVfY2FjaGVfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbHJ1X2NhY2hlX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAotIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uCiAjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTkyLDcgKzkxLDMgQEAgY2xhc3MgTFJVQ2FjaGVUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9zZXRfYWdhaW4oc2VsZik6CiAgICAg
ICAgIHNlbGYubHJ1WydrZXlfMSddID0gJ2l0ZW1fNCcKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZXQoc2VsZi5scnUuaXRlbXMoKSksIHNldChbKCdrZXlfMScsICdpdGVtXzQnKSwgKCdrZXlf
MycsICdpdGVtXzMnKSwgKCdrZXlfMicsICdpdGVtXzInKV0pKQotCi0KLWlmIF9fbmFtZV9fID09
ICJfX21haW5fXyI6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRl
c3QucHkKaW5kZXggNTQ3YThlNmZmMWY2OTBkZmJlMDc3N2YyNDU1ODg5MGFmMTEyMWNkMC4uOThj
Y2ZjZGE5MWVhYjIwOGYzYzhmNGFiYjE5MjQ3M2E2NzlhMGY3NiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJv
dF91bml0dGVzdC5weQpAQCAtNDczLDcgKzQ3MywzIEBAIGNsYXNzIEJ1aWxkQm90VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGIgPSBCdWlsZChOb25lLCAxMjMsIDEyMywgRmFsc2Up
CiAgICAgICAgIGIucmVzdWx0c191cmwgPSBzZWxmLnJlc3VsdHNfdXJsCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoInNvbWUtdXJsLnppcCIsIGIucmVzdWx0c196aXBfdXJsKCkpCi0KLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVz
dC5weQppbmRleCAzNjU5ZDY5ZDE4MWU1YjYzYzA1OTA0NjU5MTYyMmQ3NDViZGMzYmVmLi40MzQ5
NzQ4NmNjMWFhZDZkYTkxNDgxZjVjNzk5ZTUyYjg5Y2QzYTAzIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5
CkBAIC0yMDYsNyArMjA2LDMgQEAgcGFzc3dvcmQ6ICJTRUNSRVRTQVVDRSIKICAgICAgICAgICAg
ICMgRklYTUU6IFVzaW5nIHJlYWRfY3JlZGVudGlhbHMgaGVyZSBzZWVtcyB0b28gYnJvYWQgYXMg
aGlnaGVyLXByaW9yaXR5CiAgICAgICAgICAgICAjIGNyZWRlbnRpYWwgc291cmNlIGNvdWxkIGJl
IGFmZmVjdGVkIGJ5IHRoZSB1c2VyJ3MgZW52aXJvbm1lbnQuCiAgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNyZWRlbnRpYWxzLnJlYWRfY3JlZGVudGlhbHMoRmFrZVVzZXIpLCAoInRlc3RA
d2Via2l0Lm9yZyIsICJOT01OT01OT00iKSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L29tYWhhcHJveHlfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvb21haGFwcm94eV91bml0dGVzdC5weQppbmRleCBmM2U1YmUzNThlODMx
MGQ3N2U4NWMxNTA4NTRhZjU0NmE3NmRjMjVlLi4zYWE1OGI2Y2U2MGNjMzY1YjJlMGIwZjMyY2Y1
ZDRjMmI0Mzc0Nzg4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvb21haGFwcm94eV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvb21haGFwcm94eV91bml0dGVzdC5weQpAQCAtMTM0LDYgKzEzNCwzIEBAIGNsYXNz
IE9tYWhhUHJveHlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgiZGF0ZSIgaW4gcmV2aXNpb24pCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihyZXZpc2lvbi5rZXlzKCkpLCA0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldmlz
aW9ucywgc2VsZi5leHBlY3RlZF9yZXZpc2lvbnMpCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvdW5pdHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L3VuaXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCA0
MGU4MDIzNmYyYjkxZmM1ODRjMzc5M2NhMjMwM2YxYjk1N2FiOTBkLi4wNzA4MzkxYWY4NGFjNzFm
YWI4NWQ3NjJhODAzNWI0OWU5NDUzNzdiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvdW5pdHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC91bml0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAg
LTkyLDcgKzkyLDMgQEAgRXhwZWN0ZWQ6IDYuMjhdXT48L2ZhaWx1cmU+CiA8L3Rlc3RzdWl0ZXM+
IiIiCiAgICAgICAgIGV4cGVjdGVkID0gWyJDbGFzc09uZS5UZXN0T25lIiwgIkNsYXNzVHdvLlRl
c3RUd28iXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBVbml0VGVzdFJlc3Vs
dHMucmVzdWx0c19mcm9tX3N0cmluZyhtdWx0aXBsZV9mYWlsdXJlc19wZXJfdGVzdF94bWwpKQot
Ci0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXdzdHJpbmdpb191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ld3N0cmluZ2lvX3VuaXR0ZXN0
LnB5CmluZGV4IDFlZTJmYjkxZjkyYzA3ZjdmODY2Y2UwOWM1Y2RiZDcyMjE4M2E4YmEuLjJhMWRi
YTgzYjkzYjgyOTRiZDM0Njk3YTEwOTk3YjQzODZlYjk5ODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ld3N0cmluZ2lvX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ld3N0cmluZ2lvX3VuaXR0ZXN0LnB5CkBAIC0xLDQg
KzEsMyBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM5LDYgKzM4
LDMgQEAgY2xhc3MgTmV3U3RyaW5nSU9UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
d2l0aCBuZXdzdHJpbmdpby5TdHJpbmdJTygiZm9vIikgYXMgZjoKICAgICAgICAgICAgIGNvbnRl
bnRzID0gZi5yZWFkKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZW50cywgImZvbyIp
Ci0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9yZWFkX2NoZWNrc3VtX2Zyb21f
cG5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vcmVhZF9jaGVj
a3N1bV9mcm9tX3BuZ191bml0dGVzdC5weQppbmRleCBhNTZiZWMyZTQ2Yzg1N2JkZWJmNTM0Zjk1
NmM1ODljNzUzM2ZlMjBlLi45ZjkyMGZmOGRjYjdhZTEzYTc5YmZkYmNiOGVhZjc0NzYxZDM4NDlk
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9yZWFkX2NoZWNrc3Vt
X2Zyb21fcG5nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3JlYWRfY2hlY2tzdW1fZnJvbV9wbmdfdW5pdHRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0jIS91
c3IvYmluL2VudiBweXRob24KICMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzgsNyArMzcsMyBAQCBjbGFzcyBS
ZWFkQ2hlY2tzdW1Gcm9tUG5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZpbGVo
YW5kbGUgPSBTdHJpbmdJTy5TdHJpbmdJTygnJydceDg5UE5HXHJcblx4MWFcblx4MDBceDAwXHgw
MFxySUhEUlx4MDBceDAwXHgwMyBceDAwXHgwMFx4MDJYXHgwOFx4MDJceDAwXHgwMFx4MDBceDE1
XHgxNFx4MTUnXHgwMFx4MDBceDE2XHhmZUlEQVR4XHg5Y1x4ZWRceGRkW1x4OGNVXHhlNVx4YzFc
eGZmXHhmMTVUXHgxOFx4MGVhLClceGE2XHg4MFhaPFx4MTBcblx4ZDZIXHhjNFZceDg4fVx4YjVc
eGE5XHhkNnJceGQ1XHgwYmtpMFx4YTZceGI1aWhceGQyXHhkZVx4OThQSHpceGQxXHgwMj1cXHEj
XHgwMVx4OGJceGE1ckpceDhiXHg4OGlceGFjTVx4YzVoXHg4Y2JNayhceDFlekAhXHgwY1x4ZDVc
eGQyXHhjMlx4YjQ0XHgxY1x4ODQ4XHgxZEYoXHhlYlx4N2ZceGIxXHhmZlx4ZDlceGVmfmdceGQ2
XHhkZTNceGUwb1x4MTBceGVjXHhlN3NhNntceGQ2elx4ZDZceGIzXHhkN1x4ZjNceGE4XzdceGRi
TVtZXHg5Nlx4MDVceDAwXHgwMDlceGMzXHhkZVx4ZWJcdFx4MDBceDAwXHhiY1x4ZGZceDA4LFx4
MDBceDgwMFx4ODFceDA1XHgwMFx4MTAmXHhiMFx4MDBceDAwXHhjMlx4MDRceDE2XHgwMEBceDk4
XHhjMFx4MDJceDAwXHgwOFx4MTNYXHgwMFx4MDBhXHgwMlx4MGJceDAwIEwceDAxXHgwMFx4ODRc
dCxceDAwXHg4MDBceDgxXHgwNVx4MDBceDEwXHhkNjRceGIwXHhkYVx4OWFceGRiXHhiNm1ceGRi
XHhiNGlceGQzXHhmYVx4OWZyXHhmM1x4Y2Q3XHgwZlx4ZTVUXHgwN1x4ZTVceGQ0XHhhOVNceDhi
XHgxNy9ceDFlP35ceGZjXHhmOFx4ZjFceGUzXHhlZlx4YmZceGZmXHhmZVx4Zjd6Ok01XHhiYlx4
ODdceDE3XHhjYlVaXHg4ZnxWXHhkN1x4YmRceDEwXHhiNlx4Y2R7Ylx4ODhceGY2alx4YjNceDli
P1x4MTRceDliXHhhMT5ceGU2XHhmOVx4ZDlceGNmXHgwMFx4MTdceDkzJycnKQogICAgICAgICBj
aGVja3N1bSA9IHJlYWRfY2hlY2tzdW1fZnJvbV9wbmcucmVhZF9jaGVja3N1bShmaWxlaGFuZGxl
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNoZWNrc3VtKQotCi0KLWlmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZV9sb2NrX2ludGVncmF0aW9udGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlX2xvY2tfaW50
ZWdyYXRpb250ZXN0LnB5CmluZGV4IDVjZDI3ZDExZDM3N2QzNDgwNTRhMGVmMTQ0Mzc1YzFmY2Mx
Njc1ZDIuLmI2NjFhMDFmMjkyNmEwYTQ2M2YwMjc3NGJjOTA3ODRmZTg3MzE1MjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlX2xvY2tfaW50ZWdy
YXRpb250ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9m
aWxlX2xvY2tfaW50ZWdyYXRpb250ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAotIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCiAjIENvcHlyaWdodCAoQykgMjAxMCBHYWJvciBSYXBjc2FueWkgKHJnYWJvckBp
bmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L2ZpbGVzeXN0ZW1fbW9ja191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2tfdW5pdHRlc3QucHkKaW5kZXggMzkxYzFkOTU0ZmM2
YWU1YzI1OGE3OTkwOTNlNWJmMGQwMWI4YTNmNy4uYTkwYzYwZGNlMTllZjdmNGE1ZGFjODI3YmIy
YWU1NTJkZjNhMjRjMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2ZpbGVzeXN0ZW1fbW9ja191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrX3VuaXR0ZXN0LnB5CkBAIC04Miw3
ICs4MiwzIEBAIGNsYXNzIE1vY2tGaWxlU3lzdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgZmls
ZXN5c3RlbV91bml0dGVzdC5HZW5lcmljRmlsZVN5c3RlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2Zvby8uLi9iYXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICdmb28vLi4vYmFyL2Jh
eicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uL2ZvbycpCi0KLQotaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkK
aW5kZXggZDY1NmIyNTgwMDE0OGQ5NDQzNDk5YjA5ZjMzNTJlY2E3NTM1MGI0Mi4uMDcxODMxNzNh
NTI2YmI0NTA1Y2FhNTdmNDE3YmY3YTM0Yjk1ZWUwYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkK
QEAgLTI1NCw3ICsyNTQsMyBAQCBjbGFzcyBSZWFsRmlsZVN5c3RlbVRlc3QodW5pdHRlc3QuVGVz
dENhc2UsIEdlbmVyaWNGaWxlU3lzdGVtVGVzdHMpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGZzLnNlcCwgb3Muc2VwKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZzLmpvaW4oImZvbyIs
ICJiYXIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKCJmb28iLCAi
YmFyIikpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWlu
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDMyNzIyOWViOTNhZjlkNjg2Mzc5MzUz
NGE5M2E1Mzk0YTVhZTYzOWIuLjZiNjcxZTJlZWIzNGE2Yjg3NTVlODMwNTE1NDYxNDUyZmFkNjU4
MmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQpAQCAtMTc5LDcgKzE3OSwzIEBAIGNsYXNz
IFRlc3RQbGF0Zm9ybUluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGluZm8gPSBz
ZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnZnJlZWJzZDknKSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChpbmZvLnRvdGFsX2J5dGVzX21lbW9yeSgpLCBOb25lKQotCi0KLWlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vemlwZmlsZXNldF91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS96aXBmaWxlc2V0X3VuaXR0ZXN0LnB5Cmlu
ZGV4IDIyYmE3MjA4MjMyNjE4NTFhZmM5ZmI5ZmEwYWQ2YzRhMGVmNWYyNWMuLjkxOGUyM2ExYTRk
MzAwNTAwMTE5YzBmMDVhZTlhMjY0ZjI2NjhmZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS96aXBmaWxlc2V0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS96aXBmaWxlc2V0X3VuaXR0ZXN0LnB5CkBA
IC05Miw3ICs5MiwzIEBAIGNsYXNzIFppcEZpbGVTZXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
IAogICAgIGRlZiB0ZXN0X25hbWVsaXN0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUo
J3NvbWUtZmlsZScgaW4gc2VsZi5femlwLm5hbWVsaXN0KCkpCi0KLQotaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weQppbmRleCAxMzg0MWMxZTI3ZTM5MTk4
OTU2YjlmNGRhOTAxNGY4ZWI0OGM3ZWYzLi42NTNkNDYyZDQzZDM5ZTRkYjMwOGM5MjAyMjZhZjhm
ZGY1NmU5N2NlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVu
bmVyX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAotIyEvdXNyL2Jpbi9weXRob24KICMgQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHly
aWdodCAoQykgMjAxMCBHYWJvciBSYXBjc2FueWkgKHJnYWJvckBpbmYudS1zemVnZWQuaHUpLCBV
bml2ZXJzaXR5IG9mIFN6ZWdlZAogIwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3Qu
cHkKaW5kZXggMTdmY2VhZjU4MGUxMjA3MDM0NGIyYjI1MmNkZGFmODdiMTM0MzU2Ni4uODJlYjRj
YjYwYzAyYzI5ZGUyMjJlNDFlMDNlYWUzODIyYzU0M2ExYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9t
YW5hZ2VyX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAotIyEvdXNyL2Jpbi9weXRob24KICMg
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENv
cHlyaWdodCAoQykgMjAxMCBHYWJvciBSYXBjc2FueWkgKHJnYWJvckBpbmYudS1zemVnZWQuaHUp
LCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVz
dF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5CmluZGV4IGRmZDYwNDE4N2E3MTVkMGE3MjRhZmRj
YWEyMzcwODE1OTVmZDQwODkuLjNhMmVmM2QxYTc4M2EwNWNlMWQ0YTUxMTlhNzRlYmI2NWMwYjJl
NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5p
dHRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL2VudiBweXRob24KICMgQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtNTQsNyArNTMsMyBAQCBjbGFzcyBUZXN0UmVzdWx0V3JpdGVyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHRlc3RfcmVzdWx0X3dyaXRlci53cml0ZV90ZXN0X3Jlc3Vs
dChob3N0LmZpbGVzeXN0ZW0sIEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpLCB0ZXN0X25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcml2ZXJfb3V0cHV0
MSwgZHJpdmVyX291dHB1dDIsIGZhaWx1cmVzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsw
XSwgdXNlZF90b2xlcmFuY2VfdmFsdWVzKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX3Jlc3VsdHNfZ2VuZXJhdG9yX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvanNvbl9yZXN1bHRzX2dlbmVyYXRvcl91bml0dGVzdC5weQppbmRleCBmMDQzMDBmODNiNmEx
YmNjNTEzMjI1NzMzMmI5MDhhNWExNmRkM2Y4Li5jNWMyYjI0ZTVkODY3ZDU5ZmIxY2Q3ZmEyMzhl
NGI5MTNhY2YyNzA2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX3Jlc3VsdHNfZ2VuZXJhdG9yX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pz
b25fcmVzdWx0c19nZW5lcmF0b3JfdW5pdHRlc3QucHkKQEAgLTIyOSw3ICsyMjksMyBAQCBjbGFz
cyBKU09OR2VuZXJhdG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIH0KIAogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24uZHVtcHModHJpZSksIGpzb24uZHVtcHMoZXhwZWN0
ZWRfdHJpZSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5t
YWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRl
eCBiYmUwMzFjZGUxZGJjN2EwMWMyYzI5NmU2MjBiNDJlNGM1Yjg0N2U5Li40MGY5Y2I1MGFlNmFi
OTA5MmI5Mzg1NmZiNTUwNDBkMDI1ZjA0YzFjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhw
ZWN0YXRpb25zX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAotIyEvdXNyL2Jpbi9weXRob24K
ICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtNzA0LDcgKzcwMywzIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblNl
cmlhbGl6YXRpb25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0
X3JvdW5kX3RyaXAoJ1sgRk9PIF0gYmFyIFsgICAgICAgIEJBWiBdICAjIFF1eC4nLCAnWyBGT08g
XSBiYXIgWyBCQVogXSAjIFF1eC4nKQogICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdb
IEZPTyBdICAgICAgIGJhciBbICAgIEJBWiBdICAjIFF1eC4nLCAnWyBGT08gXSBiYXIgWyBCQVog
XSAjIFF1eC4nKQogICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbIEZPTyBdICAgICAg
IGJhciAgICAgWyAgICBCQVogXSAgIyBRdXguJywgJ1sgRk9PIF0gYmFyIFsgQkFaIF0gIyBRdXgu
JykKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9i
YXNlX3VuaXR0ZXN0LnB5CmluZGV4IGJjYzY0YjYwMTQ4NmYyNzVlYjcwMzk5MTRhMDRmMzY1ODM5
YjZlZmYuLjYwOWQyZGVjZjBjYTYwNjY4Y2YzZmEzYWYyY2IxN2M4N2MzZjYyNmUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2Vf
dW5pdHRlc3QucHkKQEAgLTQ5Nyw3ICs0OTcsMyBAQCBjbGFzcyBLZXlDb21wYXJlVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2NtcCgnL2FiJywgJy9hL2EvYics
IC0xKQogICAgICAgICBzZWxmLmFzc2VydF9jbXAoJy9hL2EvYicsICcvYWInLCAxKQogICAgICAg
ICBzZWxmLmFzc2VydF9jbXAoJy9mb28tYmFyL2JheicsICcvZm9vL2JheicsIC0xKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWlsZGVy
c191bml0dGVzdC5weQppbmRleCA3NDMyMGYyYWRjMWEwOWFlMzgwNzk4YWFiYzQzYjMzMTQ5YmE2
MzAzLi41OTk3ZjU0Y2VjZTAyNjhjYjEwNDdlZjE3MmY3NzZjMzk5YjkyODViIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVp
bGRlcnNfdW5pdHRlc3QucHkKQEAgLTM5LDYgKzM5LDMgQEAgY2xhc3MgQnVpbGRlcnNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgfQogICAgICAgICBmb3IgbmFtZSwgZXhwZWN0ZWQg
aW4gdGVzdHMuaXRlbXMoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQs
IGJ1aWxkZXJzLmJ1aWxkZXJfcGF0aF9mcm9tX25hbWUobmFtZSkpCi0KLWlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWRfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2Fu
ZHJvaWRfdW5pdHRlc3QucHkKaW5kZXggY2ZiYzY0NmRmMzI1OTk3MzEwMTcyN2Y5MzFiMWZhNGZh
MjVjZGM2My4uYmVkOTg3ZjFiYzIxNGE1MGQ2OTExNjcyMTlkZTIwODgyZTBjNTlmYSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9h
bmRyb2lkX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZF91bml0dGVzdC5weQpAQCAtMjkwLDcgKzI5MCwzIEBA
IGNsYXNzIENocm9taXVtQW5kcm9pZFR3b1BvcnRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIGNtZF9saW5lID0gcG9ydDEuZHJpdmVyX2NtZF9saW5lKCkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjbWRfbGluZS5jb3VudCgnLS1lbmNvZGUtYmluYXJ5JyksIDEpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY21kX2xpbmUuY291bnQoJy0tZW5hYmxlLWhhcmR3YXJlLWdwdScp
LCAxKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQppbmRleCA0MTYwMDM0ZTM3N2Rh
NTZkMzRjNjU5MzUwNjZkZDkyYTQ1NzU2OTZiLi45ZDkxNzlkNjE2MWYwZTA0Y2U1YjkxZjJkODVi
NWM5NzA3NjM4NTgzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXhfdW5pdHRlc3QucHkKQEAg
LTExMyw2ICsxMTMsMyBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydFRlc3QoY2hyb21pdW1fcG9y
dF90ZXN0Y2FzZS5DaHJvbWl1bVBvcnRUZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9wYXRoX3Rv
X2ltYWdlX2RpZmYoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3Bv
cnQoKS5fcGF0aF90b19pbWFnZV9kaWZmKCksICcvbW9jay1jaGVja291dC9vdXQvUmVsZWFzZS9J
bWFnZURpZmYnKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHBvcnRfdGVzdGNh
c2UubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGQxMDMyNmYw
ZTNlODY1ZTIzODUzMTM5YmNmNjI0NmFlOGI5NTFmMmEuLmE5NjU2YTUxYTlkYjAzZDUwZWRiY2Y2
ODE5NGVjZGI4ZWMxOTI5OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CkBA
IC0xMDEsNyArMTAxLDMgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0VGVzdChjaHJvbWl1bV9wb3J0
X3Rlc3RjYXNlLkNocm9taXVtUG9ydFRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3BhdGhfdG9f
aW1hZ2VfZGlmZihzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9y
dCgpLl9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgJy9tb2NrLWNoZWNrb3V0L291dC9SZWxlYXNlL0lt
YWdlRGlmZicpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBwb3J0X3Rlc3Rj
YXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9wb3J0X3Rlc3RjYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IGRjNTcw
NmJlYjZiYWFmNmM2ODI1ZTZhMDk0NDBjZDYyYzdjYWNiOTQuLmQ5ZTM5N2U0OTNlMDE5YzkzNjJl
NzE1NTYzODA4NzRlZDU4N2ZlN2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3BvcnRfdGVzdGNhc2Uu
cHkKQEAgLTIxNyw3ICsyMTcsMyBAQCBjbGFzcyBDaHJvbWl1bVBvcnRMb2dnaW5nVGVzdChsb2d0
ZXN0aW5nLkxvZ2dpbmdUZXN0Q2FzZSk6CiAgICAgICAgICAgICAnRVJST1I6IFRvIG92ZXJyaWRl
LCBpbnZva2Ugd2l0aCAtLW5vY2hlY2stc3lzLWRlcHNcbicsCiAgICAgICAgICAgICAnRVJST1I6
IFxuJywKICAgICAgICAgICAgICdFUlJPUjogdGVzdGluZyBvdXRwdXQgZmFpbHVyZVxuJ10pCi0K
LQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IGFjOWJjOTBmNjc5NjA0YjI2ZTZmZTlmNTk5NzdiNzBk
MDg3MzJlOWMuLjQxNDk4MWY4MmY4NTk5MzRlYjk4YjY1NGFiZGRjZmM3MzhiNWMxOTAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV91bml0dGVzdC5weQpAQCAtNjIsNyArNjIsMyBAQCBjbGFzcyBDaHJvbWl1bVBv
cnRMb2dnaW5nVGVzdChsb2d0ZXN0aW5nLkxvZ2dpbmdUZXN0Q2FzZSk6CiAgICAgICAgICAgICAn
RVJST1I6IFRvIG92ZXJyaWRlLCBpbnZva2Ugd2l0aCAtLW5vY2hlY2stc3lzLWRlcHNcbicsCiAg
ICAgICAgICAgICAnRVJST1I6IFxuJywKICAgICAgICAgICAgICdFUlJPUjogdGVzdGluZyBvdXRw
dXQgZmFpbHVyZVxuJ10pCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0
dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY29uZmlnX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jb25maWdfdW5pdHRlc3QucHkKaW5kZXggNDQ3OTIwNGFkZTA0MTczNzU0
NWYwMjliZmFiODNmYTAwYzRkM2IzYi4uMzRiY2M2OGE4NzFhZDdhOGI2MDUwNjdlMjgwM2Y1M2Nj
ZDRlNTFjYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jb25maWdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jb25maWdfdW5pdHRlc3QucHkKQEAgLTE1Niw3ICsxNTYsMyBAQCBjbGFz
cyBDb25maWdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgYyA9IHNlbGYubWFrZV9j
b25maWcoZXhjZXB0aW9uPVNjcmlwdEVycm9yKCkpCiAgICAgICAgIGFjdHVhbCA9IGMuZGVmYXVs
dF9jb25maWd1cmF0aW9uKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsICdSZWxl
YXNlJykKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4o
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9k
cml2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2RyaXZlcl91bml0dGVzdC5weQppbmRleCA2YTU0ODFmNmEyZjMwNGFkYTE4YTljMzk5Mzlh
M2M3MjFhNDdmOTBkLi5kMWM5YzJmZGQ4ZmM5MzRmOGQxNjQ0ZmQ3OThmN2U2OTQxMjNhZDQ5IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZl
cl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2RyaXZlcl91bml0dGVzdC5weQpAQCAtMjY3LDcgKzI2NywzIEBAIGNsYXNzIERyaXZlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBkcml2ZXIgPSBEcml2ZXIocG9ydCwgMCwg
cGl4ZWxfdGVzdHM9VHJ1ZSkKICAgICAgICAgZHJpdmVyLnN0YXJ0KFRydWUsIFtdKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoZHJpdmVyLl9zZXJ2ZXJfcHJvY2Vzcy5zdGFydGVkKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rvcnlf
dW5pdHRlc3QucHkKaW5kZXggOTE1YzE3ZDg5ZWM2ZGE5MzIzOTM4YmZkYWNjM2NlOWM3MmU0Yjg5
OS4uYTg3MDRmOWFlMWFmODNmNjhlMTVjMzgxMmM0OWIwMjU0YmM5ZGEzOSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9y
eV91bml0dGVzdC5weQpAQCAtMTA3LDcgKzEwNywzIEBAIGNsYXNzIEZhY3RvcnlUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9nZXRfZnJvbV9idWlsZGVyX25hbWUoc2VsZik6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFjdG9yeS5Qb3J0RmFjdG9yeShNb2NrU3lzdGVt
SG9zdCgpKS5nZXRfZnJvbV9idWlsZGVyX25hbWUoJ1dlYktpdCBNYWMxMC43JykubmFtZSgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hyb21pdW0tbWFjLWxpb24nKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfbG9ja191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9sb2Nr
X3VuaXR0ZXN0LnB5CmluZGV4IDY1MGE3NjcwZmViNDhhODRhODg3NjcyZDlmN2UxOGRmYjY2OTAz
MTYuLjk0Y2U1Zjk5NmMxOTVlZWQzZjMxZGI3ZDRjOTZhNmQ5NTk2ZDk5ZjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9sb2NrX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0
cF9sb2NrX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
CiAjIENvcHlyaWdodCAoQykgMjAxMCBHYWJvciBSYXBjc2FueWkgKHJnYWJvckBpbmYudS1zemVn
ZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyBBbGwgcmlnaHRzIHJlc2VydmVkLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9pbWFn
ZV9kaWZmX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9pbWFnZV9kaWZmX3VuaXR0ZXN0LnB5Cm9sZCBtb2RlIDEwMDc1NQpuZXcgbW9kZSAxMDA2
NDQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
bW9ja19kcnRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5Cm9sZCBtb2RlIDEwMDc1NQpuZXcgbW9kZSAxMDA2
NDQKaW5kZXggYzRjNDNmNWQ4YTdlOWUzYTQ2ZDFkN2MyMmExZGQ2N2NjNTk0NDZiNi4uYjQ4NTU3
NGJmMzg3MjQwNTg0NzM3ZGRjZjY4MDU0MTZlZWFmM2Q0ZQotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRlc3QucHkK
QEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL2VudiBweXRob24KICMgQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVmdGVzdHMvZXh0
cmFjdF9yZWZlcmVuY2VfbGlua191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3JlZnRlc3RzL2V4dHJhY3RfcmVmZXJlbmNlX2xpbmtfdW5pdHRlc3QucHkK
aW5kZXggNzE3YmM3Y2U2MDcwNmY4MDBiNmI0ZWJmNTg0Y2E1NWQ1OTY5Mzk4MS4uMTI2NmEzM2Yx
NTFjODQ1OWM4MWZlZTY0MWU0OGQ3NzllODU0NmRjNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVmdGVzdHMvZXh0cmFjdF9yZWZlcmVuY2VfbGlua191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWZ0
ZXN0cy9leHRyYWN0X3JlZmVyZW5jZV9saW5rX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsMyBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTc5LDcgKzc4LDMgQEAgQ09O
VEVOVCBPRiBURVNUCiAgICAgICAgIGh0bWxfNSA9ICIiIjxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
UkVMRVZBTlRfU1BFQ19TRUNUSU9OIj4iIiIKICAgICAgICAgZW1wdHlfdHVwbGVfNCA9IGV4dHJh
Y3RfcmVmZXJlbmNlX2xpbmsuZ2V0X3JlZmVyZW5jZV9saW5rKGh0bWxfNSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChlbXB0eV90dXBsZV80LCAoW10sIFtdKSkKLQotCi1pZiBfX25hbWVfXyA9
PSAiX19tYWluX18iOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weQpvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQxZTQ0MzljNTllMDI1N2Q4MjRjMmJhZTg0YzI2Y2IyMDA4MjBkNDcuLmZlNzAwNTAwMTg3
MjQ3YmQ4ZTg0Y2M1MDMyMDg3OGIyNjdkNWE2ZDEKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRl
Z3JhdGlvbnRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL3B5dGhvbgogIyBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJp
Z2h0IChDKSAyMDEwIEdhYm9yIFJhcGNzYW55aSAocmdhYm9yQGluZi51LXN6ZWdlZC5odSksIFVu
aXZlcnNpdHkgb2YgU3plZ2VkCiAjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCkBAIC0xMTA2LDYgKzExMDUsMyBAQCBjbGFzcyBQb3J0VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgZGlzYWJsZWRfdGVzdF9tYWNfbGlvbihzZWxmKToK
ICAgICAgICAgc2VsZi5hc3NlcnRfbW9ja19wb3J0X3dvcmtzKCdtYWMtbGlvbicpCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX2lu
dGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Nl
cnZlcnMvaHR0cF9zZXJ2ZXJfaW50ZWdyYXRpb250ZXN0LnB5Cm9sZCBtb2RlIDEwMDc1NQpuZXcg
bW9kZSAxMDA2NDQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKaW5kZXgg
NjYyMGNiYjA0YjYwZmQ4NzVkMmZiYTliYzE1ZWUyMjU2MDU0Mzk4Ni4uZWJhNDM2ZGQzMzVjNDUw
YmU1M2M0NGI4ZTA1ZDRmY2UzN2ZiNmZkNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1f
dW5pdHRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL3B5dGhvbgogIyBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0xNTIsNyArMTUxLDMgQEAgY2xhc3MgVmVyYm9zZVRlc3QoUmVndWxhclRl
c3QpOgogICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdmb28gJXMgJWQnLCAnYmFyJywgMikKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5idWZsaXN0KSwgMSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHNlbGYuYnVmbGlzdFswXS5lbmRzd2l0aCgnZm9vIGJhciAyXG4nKSkKLQot
Ci1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9w
cmludGluZ191bml0dGVzdC5weQppbmRleCBkNGM0MTY5NjZlMmM5MDBmN2JjYmM3OTI1YzExYTcw
ZjM2MWZhYTVhLi5jZTJmMzkxMDk1NTkxMjU0OTllM2Q1ZTUyMDE5ZTExYzRiZmIzMzRjIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGlu
Z191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92
aWV3cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtMSw0ICsxLDMgQEAKLSMhL3Vzci9iaW4vcHl0
aG9uCiAjIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI4Nyw3ICsyODYsMyBAQCBCVUdYIDogZmFpbHVy
ZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sID0gVElNRU9VVAogICAgICAgICBwcmludGVyLnByaW50
X3N0YXJ0ZWRfdGVzdCgncGFzc2VzL2ltYWdlLmh0bWwnKQogICAgICAgICBwcmludGVyLnByaW50
X2ZpbmlzaGVkX3Rlc3QocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywgZ290X3N0
cj0nJykKICAgICAgICAgc2VsZi5hc3NlcnROb3RFbXB0eShlcnIpCi0KLQotaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0X3VuaXR0ZXN0
LnB5Cm9sZCBtb2RlIDEwMDc1NQpuZXcgbW9kZSAxMDA2NDQKaW5kZXggNzQxZThiNjQ0MDM2MWMw
OGMwYTdhYzA5ZjE5MDExZjRjMjdiNDcwMi4uNmY5MjQ2YWRkZWYzZTk2ZjFmYjhiNzdlMzJjOWI1
OGMxNDkxOWU0NwotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3Rz
L3BlcmZ0ZXN0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9y
bWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3Iv
YmluL3B5dGhvbgogIyBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNzksNyArMzc4LDMgQEAgY2xhc3MgVGVzdFBl
cmZUZXN0RmFjdG9yeSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfaW5zcGVjdG9y
X3Rlc3Qoc2VsZik6CiAgICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZf
dGVzdChNb2NrUG9ydCgpLCAnaW5zcGVjdG9yL3NvbWUtdGVzdCcsICcvcGF0aC9pbnNwZWN0b3Iv
c29tZS10ZXN0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0Ll9fY2xhc3NfXywgQ2hy
b21pdW1TdHlsZVBlcmZUZXN0KQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAg
dW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZv
cm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5Cm9s
ZCBtb2RlIDEwMDc1NQpuZXcgbW9kZSAxMDA2NDQKaW5kZXggMTZhMDU1OTljZDY0MTNiZmUzZWIx
MTM2NzdjZGRjZWViMThjMjQyNC4uYWZhYWEzNzM2NzdhYzUxZmIyN2Y5NjJiOWUwNzllNDZlZmRh
YzcxMwotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0
ZXN0c3J1bm5lcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZv
cm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weQpAQCAtMSw0ICsxLDMgQEAK
LSMhL3Vzci9iaW4vcHl0aG9uCiAjIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTYzOCw3ICs2MzcsMyBAQCBtYXgg
NTQ4MDAwIGJ5dGVzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5vdXRwdXRfanNv
bl9wYXRoLCAnYS9vdXRwdXQuanNvbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9u
cy5zbGF2ZV9jb25maWdfanNvbl9wYXRoLCAnYS9zb3VyY2UuanNvbicpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwob3B0aW9ucy50ZXN0X3Jlc3VsdHNfc2VydmVyLCAnc29tZWhvc3QnKQotCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKb2xkIG1vZGUg
MTAwNzU1Cm5ldyBtb2RlIDEwMDY0NAppbmRleCAzYjdkOTRjMDIxMzJmOTMyY2RmOTk2OWNmNzJj
MGEzNjQzMWIwNWVmLi43NDUyNGQ1YTFlMzU1YTVjYWNmNmRkNWYxNDA3ZTc4MGI5YjE0NjYxCi0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTEs
NCArMSwzIEBACi0jIS91c3IvYmluL3B5dGhvbgogIyAtKi0gY29kaW5nOiB1dGYtODsgLSotCiAj
CiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vs
b2dfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2No
YW5nZWxvZ191bml0dGVzdC5weQppbmRleCAzMTVjZDkxYjI2ZTllYWZkNjcyY2UzYWFlY2QyNjkx
NWRhMmVmOTU1Li5hOGNmZmQzYmUxYTc4ZWU2ZjU2YjUxNTE0ZDk4ZDkyMTE4ZDBkMWZmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2No
YW5nZWxvZ191bml0dGVzdC5weQpAQCAtMSw1ICsxLDMgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwogIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIyBDb3B5cmlnaHQgKEMpIDIwMTEgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2Eu
Y29tPgogIwpAQCAtMTgyLDYgKzE4MCwzIEBAIGNsYXNzIENoYW5nZUxvZ0NoZWNrZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAg
KiBTb3VyY2UvV2ViS2l0L2Zvby5jcHA6ICAgIFxuJwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnICAgICAgICAqIFNvdXJjZS9XZWJLaXQvYmFyLmNwcDpcbicKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyAgICAgICAgKiBTb3VyY2UvV2ViS2l0L2Zvb2Jhci5jcHA6IERlc2Ny
aXB0aW9uXG4nKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1h
aW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
b21tb25fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJz
L2NvbW1vbl91bml0dGVzdC5weQppbmRleCBkZjQ3MDc3MzAwNGJlZWQwMGU5MzBhNDE2NDNiMmUz
NjZjMzFkOGJhLi42Zjg3ZGNkYWU2ZjQ3OTllZDg1ZWRjZjZlZTFmNTlkMDQyMDQxYzdkIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1v
bl91bml0dGVzdC5weQpAQCAtMTE5LDYgKzExOSwzIEBAIGNsYXNzIFRhYkNoZWNrZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF90YWIoc2VsZik6CiAgICAgICAgIHNlbGYu
YXNzZXJ0X3RhYihbJ1x0Zm9vJ10sIFsxXSkKICAgICAgICAgc2VsZi5hc3NlcnRfdGFiKFsnbGlu
ZTEnLCAnXHRsaW5lMicsICdsaW5lM1x0J10sIFsyLCAzXSkKLQotaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKaW5kZXggODIyZWQ3N2M5YjRl
MGI2ZDRlNWM3MmQwYTBkMTkzZWU3ZmI3ZDFhMy4uNzkxZWRmMTI5YjNmOTE0NGY0NWE3YTJmYWZm
ZDFiZDI3OWVjZGY5OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jcHBfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL3B5
dGhvbgogIyAtKi0gY29kaW5nOiB1dGYtODsgLSotCiAjCiAjIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNDg3NCwzMCArNDg3MywzIEBAIGNs
YXNzIENwcENoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBUaHVzLCBq
dXN0IGNoZWNrIHRoZSBkaXN0aW5ndWlzaGluZyBjYXNlIHRvIHZlcmlmeSB0aGF0IHRoZQogICAg
ICAgICAjIGNvZGUgZGVmaW5lcyBfX25lX18uCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2hl
Y2tlcjEgIT0gY2hlY2tlcjIpCi0KLQotZGVmIHRlYXJEb3duKCk6Ci0gICAgIiIiQSBnbG9iYWwg
Y2hlY2sgdG8gbWFrZSBzdXJlIGFsbCBlcnJvci1jYXRlZ29yaWVzIGhhdmUgYmVlbiB0ZXN0ZWQu
Ci0KLSAgICBUaGUgbWFpbiB0ZWFyRG93bigpIHJvdXRpbmUgaXMgdGhlIG9ubHkgY29kZSB3ZSBj
YW4gZ3VhcmFudGVlIHdpbGwgYmUKLSAgICBydW4gYWZ0ZXIgYWxsIG90aGVyIHRlc3RzIGhhdmUg
YmVlbiBleGVjdXRlZC4KLSAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIGlmIF9ydW5fdmVyaWZ5
YWxsY2F0ZWdvcmllc3NlZW46Ci0gICAgICAgICAgICBFcnJvckNvbGxlY3RvcihOb25lKS52ZXJp
ZnlfYWxsX2NhdGVnb3JpZXNfYXJlX3NlZW4oKQotICAgIGV4Y2VwdCBOYW1lRXJyb3I6Ci0gICAg
ICAgICMgSWYgbm9ib2R5IHNldCB0aGUgZ2xvYmFsIF9ydW5fdmVyaWZ5YWxsY2F0ZWdvcmllc3Nl
ZW4sIHRoZW4KLSAgICAgICAgIyB3ZSBhc3N1bWUgd2Ugc2hvdWxkbid0IHJ1biB0aGUgdGVzdAot
ICAgICAgICBwYXNzCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgaW1wb3J0IHN5
cwotICAgICMgV2UgZG9uJ3Qgd2FudCB0byBydW4gdGhlIHZlcmlmeV9hbGxfY2F0ZWdvcmllc19h
cmVfc2VlbigpIHRlc3QgdW5sZXNzCi0gICAgIyB3ZSdyZSBydW5uaW5nIHRoZSBmdWxsIHRlc3Qg
c3VpdGU6IGlmIHdlIG9ubHkgcnVuIG9uZSB0ZXN0LAotICAgICMgb2J2aW91c2x5IHdlJ3JlIG5v
dCBnb2luZyB0byBzZWUgYWxsIHRoZSBlcnJvciBjYXRlZ29yaWVzLiAgU28gd2UKLSAgICAjIG9u
bHkgcnVuIHZlcmlmeV9hbGxfY2F0ZWdvcmllc19hcmVfc2VlbigpIHdoZW4gbm8gY29tbWFuZGxp
bmUgZmxhZ3MKLSAgICAjIGFyZSBwYXNzZWQgaW4uCi0gICAgZ2xvYmFsIF9ydW5fdmVyaWZ5YWxs
Y2F0ZWdvcmllc3NlZW4KLSAgICBfcnVuX3ZlcmlmeWFsbGNhdGVnb3JpZXNzZWVuID0gKGxlbihz
eXMuYXJndikgPT0gMSkKLQotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRl
c3QucHkKb2xkIG1vZGUgMTAwNzU1Cm5ldyBtb2RlIDEwMDY0NAppbmRleCBlN2ZiYmI0MmM2ODJl
MjI5NTQ5NTM4YmIyNDdkODg1NDkzNjg1ODE5Li5hZjFmNDdjNjhmZjU3YWIwMWNiOGViZmU0Yzk4
YzM4OTc2YTEwNzBmCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
anNvbmNoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weQpAQCAtMSw1ICsxLDMgQEAKLSMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIwogIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTExMSw2ICsxMDksMyBAQCBjbGFz
cyBKU09OQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAg
XQogfQogIiIiKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1h
aW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9w
bmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Bu
Z191bml0dGVzdC5weQppbmRleCA5MmI1YmE0NDg3NTY2MmU5YTFiZjAzNTUxYjAyZTIwYTI1MGVk
Y2I5Li5hYzUxYjlkYjE0YjcyNmIzYWE2NWI4NzZjNWYyMjY4OGNlN2QwMmVkIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191bml0dGVzdC5w
eQpAQCAtMTI5LDYgKzEyOSwzIEBAIGNsYXNzIFBOR0NoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgY2hlY2tlci5jaGVjaygpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGVycm9ycyksIDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JzWzBdLCAoMCwg
J2ltYWdlL3BuZycsIDUsICdJbWFnZSBsYWNrcyBhIGNoZWNrc3VtLiBHZW5lcmF0ZSBwbmdzIHVz
aW5nIHJ1bi13ZWJraXQtdGVzdHMgdG8gZW5zdXJlIHRoZXkgaGF2ZSBhIGNoZWNrc3VtLicpKQot
Ci1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
dGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggYjFkN2Y3N2Y0NTBlYTQ3ODczMDQ4
MjA0NDJiNTlmMWFiZTg4YjFlMC4uODlmMjgwZDlhMzJjYTI2NTAxYWFiZTYwYWE3YzRmOThjMTZh
YWY4MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90
ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEs
MyBAQAotIyEvdXNyL2Jpbi9weXRob24KICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0X3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0X3VuaXR0ZXN0LnB5CmluZGV4IDE4
ZGI2YWQzZDEwODNiNjM1NGMwOTQ4MjkxNjgzMGU1NDIwMGRmMjAuLmFhOTc2NmI3ZDIzNWJkMDRh
Y2E0MDg2YzExNmNkYTMyZjI5N2ExNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvdGV4dF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3RleHRfdW5pdHRlc3QucHkKQEAgLTEsNCArMSwzIEBACi0j
IS91c3IvYmluL3B5dGhvbgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC04OCw3ICs4NywzIEBAIGNsYXNzIFRl
eHRDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNoZWNrZXIgPSBUZXh0
Q2hlY2tlcigiZm9vLnR4dCIsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5maWxlX3BhdGgsICJmb28udHh0IikKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjaGVja2VyLmhhbmRsZV9zdHlsZV9lcnJvciwgc2VsZi5tb2NrX2hh
bmRsZV9zdHlsZV9lcnJvcikKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVu
aXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3dhdGNobGlzdF91bml0dGVzdC5weQppbmRleCBmZjNhMzE1ZjFhNTQ5YjRi
NmIzNDFlNjg2MzczMWY4ZjA1NWYxMDhmLi5jYjUxOGRkZTUwNWRjOWQ0ZWUzZWVmZDgwNDBjN2Ez
NWI3ZmMzMGI1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL3dhdGNobGlzdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3dhdGNobGlzdF91bml0dGVzdC5weQpAQCAtMSw1ICsxLDMgQEAKLSMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIwogIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkKaW5kZXggOTcxM2ZkMTU0Nzc2
MDUwMTNjYWJmMDFhN2E1YTRmYmZiYjc4MzVhYS4uNzcwNzEzZmQyNTk4Y2U4ODgwNWY4OWIzYzBi
ZTA0NDA3NzlhMDRlNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkKQEAgLTEsNSArMSwzIEBACi0j
IS91c3IvYmluL2VudiBweXRob24KLSMKICMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjksNiArNjcsMyBAQCBj
bGFzcyBYY29kZVByb2plY3RGaWxlQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydF9lcnJvcihbJyddLCAnTWlzc2luZyAiZGV2ZWxvcG1lbnRSZWdpb24g
PSBFbmdsaXNoIi4nKQogICAgICAgICBzZWxmLmFzc2VydF9lcnJvcihbJ2RldmVsb3BtZW50UmVn
aW9uID0gSmFwYW5lc2U7J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZlbG9wbWVu
dFJlZ2lvbiBpcyBub3QgRW5nbGlzaC4nKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgot
ICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weQppbmRleCA3MDU1YTRmOTI2NjZiMWU3ZGZiZjEx
NjFhOWRiMDU1ZjAyNGFkMDBkLi4xM2FkZDQwOGM1MTI2NTc5ZDVhZWQ2ZjkxNDA3NzJhMzEzNjJl
M2QxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3ht
bF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJz
L3htbF91bml0dGVzdC5weQpAQCAtMSw1ICsxLDMgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IwogIyBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTg3LDYgKzg1LDMgQEAgY2xhc3MgWE1MQ2hlY2tlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rfbm9fZXJyb3Ioc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0X25vX2Vycm9yKCc8Zm9vPlxuPC9mb28+JykKLQotaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvcGF0Y2hyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL3BhdGNocmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IDk4M2I2MDllNDY1
MTIzYmRjODc4ZDdmMDRjNDJkNjkwMTNhMjkwZGEuLjA1ZDM2ZDlmZTVhMzcwNjQ4OGZmOGZjNWFm
YWRjYzJkZDk1NzRjY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
cGF0Y2hyZWFkZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9wYXRjaHJlYWRlcl91bml0dGVzdC5weQpAQCAtMSw1ICsxLDMgQEAKLSMhL3Vzci9iaW4vcHl0
aG9uCi0jCiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4KICMgQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9maW5kZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rlc3QvZmluZGVyX3VuaXR0ZXN0LnB5CmluZGV4IDY5NGIzODg0YTU5MmUy
MDhlYzNkMDY4Zjg1MzlmMWUyNjZlOWI3MzEuLjkxYjNmZWQ1YWRkMzk1MWY1NmM0OTYzZTE3NGE3
OWY0YTNlYTA1Y2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9maW5k
ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L2ZpbmRlcl91
bml0dGVzdC5weQpAQCAtMTI0LDYgKzEyNCwzIEBAIGNsYXNzIEZpbmRlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgICAgICMgTmFtZXMgdGhhdCBkb24ndCBleGlzdCBhcmUgY2F1Z2h0
IGxhdGVyLCBhdCBsb2FkIHRpbWUuCiAgICAgICAgIHNlbGYuY2hlY2tfbmFtZXMoWydiYXIubm90
ZXhpc3RfdW5pdHRlc3QnXSwgWydiYXIubm90ZXhpc3RfdW5pdHRlc3QnXSkKLQotaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0LnB5CmluZGV4IGU1YmUxOTIxYzUwZDZjMWEw
YWMyMDczNjc4YzVjMjdiY2QxZmU3ZGMuLmNhZmM5ODEzZTMxZGZiYzU1YzgxNmVjNGRmOTYwYmFm
Njg4NzgzNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0
dGVzdC5weQpAQCAtOTUsNyArOTUsMyBAQCBjbGFzcyBSdW5uZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5uZXIudGVzdHNfcnVuLCAzKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihydW5uZXIuZmFpbHVyZXMpLCAxKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbihydW5uZXIuZXJyb3JzKSwgMSkKLQotCi1pZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90ZXN0L3NraXBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5weQppbmRleCBmNjFhMWJiNDc4YTc2MmRmMWJmMTg4MDdi
MTNhMWQxZTk5ODhkOWVmLi4yZjg0N2Q2MzU5MWI1MzU2MmU5NDhkZTdlZjQxNGRjYTU4MWJjMGI3
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5weQpAQCAt
NzIsNiArNzIsMyBAQCBjbGFzcyBTa2lwVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IGtsYXNzKHNlbGYuZm9vX2NhbGxiYWNrKS50ZXN0X2ZvbygpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VsZi5sb2dfc3RyZWFtLmdldHZhbHVlKCksICdTa2lwcGluZyB3ZWJraXRweS50ZXN0
LnNraXBfdW5pdHRlc3QuVGVzdFNraXBGaXh0dXJlOiBTaG91bGQgc2VlIHRoaXMgbWVzc2FnZS5c
bicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5mb29fd2FzX2NhbGxlZCkKLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0dGVzdC5weQpp
bmRleCBiM2ViNzVmOThjZjVlOTgxMjQ0YjE4NmRjM2JiZGE2YTY0NTU3NmMyLi5mYWI5OTUyZTg3
ZDMyY2QyMjAzZGI0MjY3MGI2MTk2MTMwYjE1NDlmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X19fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEs
MyBAQAotIyEvdXNyL2Jpbi9weXRob24KICMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjgsNyArNjcsMyBAQCBj
bGFzcyBUaGlyZHBhcnR5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGltcG9ydCB3
ZWJraXRweS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQucHlsaW50CiAgICAgICAgIGltcG9ydCB3
ZWJraXRweS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQud2VicGFnZXJlcGxheQogICAgICAgICBp
bXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVkLnBlcDgKLQotCi1pZiBfX25h
bWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9tb3ZlZC91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2Vf
dGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3Vw
ZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c191bml0dGVzdC5weQppbmRleCBiM2I0ZDU4M2U3
ZTkzYmI2NDI2ZTNmNTQwYmU5MDg4M2I3NjBiMDEyLi5iMzdiOTkxMTM3NWRlMDQ4ZTZjZmE1MzIz
NGQ0NmY3NmQ0MThkMzExIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2Jl
X21vdmVkL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5j
ZV90ZXN0c191bml0dGVzdC5weQpAQCAtMSw0ICsxLDMgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCiAj
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwog
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTk2LDcgKzk1LDMgQEAgY2xhc3MgVGVzdFRyYW5zbGF0aW9uKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaW5wdXRfdGV4dCA9IGhlYWQgKyBpbnB1dF90ZXh0ICsg
Zm9vdAogICAgICAgICBvdXRwdXRfdGV4dCA9IGhlYWQgKyBvdXRwdXRfdGV4dCArIGZvb3QKICAg
ICAgICAgc2VsZi5hc3NlcnRfdHJhbnNsYXRlKGlucHV0X3RleHQsIG91dHB1dF90ZXh0KQotCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVz
dC5weQppbmRleCAwZWU4YjVhZDhjNzM1YzVlNTljYmQ4NTVmZWZkNTY5MjM2MjBmYmNlLi45MzRi
OWNlYmI0ZWFiOGM4NjkwYWZmMzQ3NTBiZmU5NmFkMmE2OTgzIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcXVldWVlbmdpbmVfdW5pdHRlc3QucHkKQEAg
LTE4MSw3ICsxODEsMyBAQCBjbGFzcyBRdWV1ZUVuZ2luZVRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYu
dGVtcF9kaXIpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5t
YWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ncmFtbWFyX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2dyYW1tYXJfdW5pdHRlc3Qu
cHkKaW5kZXggY2FiNzFkYjAxMGE4MDEzY2I5YmIwYWFhOTU1Yzk4MGVhOGRmNzNjOC4uYWZjNjdk
YjE5YjM4YjhkNTU2ZDcxMTVmZTBmZDVmOTFjMzUwYjU5OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2dyYW1tYXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2dyYW1tYXJfdW5pdHRlc3QucHkKQEAgLTM2LDYgKzM2LDMgQEAgY2xh
c3MgR3JhbW1hclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGpvaW5fd2l0aF9zZXBhcmF0b3JzKFsib25lIl0pLCAib25lIikKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChqb2luX3dpdGhfc2VwYXJhdG9ycyhbIm9uZSIsICJ0d28iXSksICJvbmUgYW5k
IHR3byIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoam9pbl93aXRoX3NlcGFyYXRvcnMoWyJv
bmUiLCAidHdvIiwgInRocmVlIl0pLCAib25lLCB0d28sIGFuZCB0aHJlZSIpCi0KLWlmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2xfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2xfdW5pdHRlc3QucHkKaW5kZXggY2NlYWEyZTBhYTA4
YmE2ZTFmMmFiN2FkMTNkMTA3OWM0ZWUyNzJjMi4uNTExNzkwOTFmNjNjZTlmNDJjNWJjMjk5ZDU0
YzFiMDczODk0NWUyNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21v
Y2t0b29sX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2Nr
dG9vbF91bml0dGVzdC5weQpAQCAtNTMsNyArNTMsMyBAQCBjbGFzcyBNb2NrT3B0aW9uc1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIFRlc3QgdGhhdCBrZXl3b3JkIGFyZ3VtZW50
cyB3b3JrIGluIHRoZSBjb25zdHJ1Y3Rvci4KICAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25z
KGZvbz0nYmFyJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmZvbywgJ2Jhcicp
Ci0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tdWx0aWNvbW1hbmR0b29sX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL211bHRpY29tbWFuZHRvb2xf
dW5pdHRlc3QucHkKaW5kZXggZWNiMWRmMDA3M2VjYTdmNzM5MDc3NWU5OWIyZGVhMjAyZGEzY2Ez
YS4uYTAxZTZhZGQxOTBkZTcwY2E3YTY0MTBlNzJiMzFmYjcyNWY0MjY4YyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL211bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL211bHRpY29tbWFuZHRvb2xfdW5pdHRl
c3QucHkKQEAgLTE3MSw3ICsxNzEsMyBAQCBTZWUgJ3RyaXZpYWwtdG9vbCBoZWxwIENPTU1BTkQn
IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGEgc3BlY2lmaWMgY29tbWFuZC4KICAgICAgICAgdG9v
bCA9IFRyaXZpYWxUb29sKGNvbW1hbmRzPVtjb21tYW5kX3dpdGhfb3B0aW9uc10pCiAgICAgICAg
IGV4cGVjdGVkX3N1YmNvbW1hbmRfaGVscCA9ICJ0cml2aWFsIFtvcHRpb25zXSAgIGhlbHAgdGV4
dFxuXG5MT05HIEhFTFBcblxuT3B0aW9uczpcbiAgLS1teV9vcHRpb249TVlfT1BUSU9OXG5cbiIK
ICAgICAgICAgc2VsZi5fYXNzZXJ0X3Rvb2xfbWFpbl9vdXRwdXRzKHRvb2wsIFsidG9vbCIsICJo
ZWxwIiwgInRyaXZpYWwiXSwgZXhwZWN0ZWRfc3ViY29tbWFuZF9oZWxwKQotCi0KLWlmIF9fbmFt
ZV9fID09ICJfX21haW5fXyI6Ci0gICAgdW5pdHRlc3QubWFpbigpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>