<?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>80555</bug_id>
          
          <creation_ts>2012-03-07 17:36:44 -0800</creation_ts>
          <short_desc>IndexedDB: layout test style update</short_desc>
          <delta_ts>2012-03-12 13:26:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>573405</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-07 17:36:44 -0800</bug_when>
    <thetext>IndexedDB: layout test style update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573414</commentid>
    <comment_count>1</comment_count>
      <attachid>130735</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-07 17:41:42 -0800</bug_when>
    <thetext>Created attachment 130735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573422</commentid>
    <comment_count>2</comment_count>
      <attachid>130739</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-07 17:51:05 -0800</bug_when>
    <thetext>Created attachment 130739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573433</commentid>
    <comment_count>3</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-07 18:01:47 -0800</bug_when>
    <thetext>Josh, can you take a look at this?

There are only two -expected.txt changes, both for js line numbers.

Next patch is going to move all the 

indexedDB = evalAndLog(&quot;indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;&quot;);
shouldBeFalse(&quot;indexedDB == null&quot;);
IDBDatabaseException = evalAndLog(&quot;IDBDatabaseException = window.IDBDatabaseException || window.webkitIDBDatabaseException;&quot;);
...    

lines to a function in shared.js that uses self instead of window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574158</commentid>
    <comment_count>4</comment_count>
      <attachid>130739</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-08 13:51:49 -0800</bug_when>
    <thetext>Comment on attachment 130739
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=130739&amp;action=review

&gt; LayoutTests/storage/indexeddb/mozilla/autoincrement-indexes.html:89
&gt;  function checkThirdIndex()

this file still has the if (window.layoutTestController) ... preamble - needed?

&gt; LayoutTests/storage/indexeddb/mozilla/bad-keypath.html:55
&gt;  function addFirstSuccess()

ditto - if (window.layoutTestController) ...

Was it accidentally left in the mozilla/ tests, or is it needed for some reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574321</commentid>
    <comment_count>5</comment_count>
      <attachid>130922</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-08 15:36:47 -0800</bug_when>
    <thetext>Created attachment 130922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574322</commentid>
    <comment_count>6</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-08 15:38:10 -0800</bug_when>
    <thetext>&gt; ditto - if (window.layoutTestController) ...
&gt; 
&gt; Was it accidentally left in the mozilla/ tests, or is it needed for some reason?

Accident - fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574327</commentid>
    <comment_count>7</comment_count>
      <attachid>130924</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-08 15:43:45 -0800</bug_when>
    <thetext>Created attachment 130924
Patch

Deleted few more stray lines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574357</commentid>
    <comment_count>8</comment_count>
      <attachid>130924</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-08 16:13:49 -0800</bug_when>
    <thetext>Comment on attachment 130924
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574460</commentid>
    <comment_count>9</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-03-08 18:25:21 -0800</bug_when>
    <thetext>Tony, could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576179</commentid>
    <comment_count>10</comment_count>
      <attachid>130924</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-12 09:26:16 -0700</bug_when>
    <thetext>Comment on attachment 130924
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576457</commentid>
    <comment_count>11</comment_count>
      <attachid>130924</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 13:26:44 -0700</bug_when>
    <thetext>Comment on attachment 130924
Patch

Clearing flags on attachment: 130924

Committed r110468: &lt;http://trac.webkit.org/changeset/110468&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576458</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 13:26:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130735</attachid>
            <date>2012-03-07 17:41:42 -0800</date>
            <delta_ts>2012-03-07 17:51:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80555-20120307174141.patch</filename>
            <type>text/plain</type>
            <size>112911</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDUzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjMyMzMxMmY3NDhlMjgyYzAwZjQ3
MGVlNzJlYzY2YWZkY2ZjNzA3ZS4uMjNjNDkwMTliNzc0MzNlZTgxZDNiMjcwMDdlZTM3MzMxYjVj
MzNjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MyBAQAorMjAxMi0wMy0wNyAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBsYXlvdXQgdGVzdCBz
dHlsZSB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgwNTU1CisKKyAgICAgICAgRm9sbG93aW5nIHRoZSB1bmlmb3JtIHN0eWxlIHJlc3VsdHMg
aW4gbGVzcyBvdmVyYWxsIGNvZGUgYW5kIG1ha2VzCisgICAgICAgIHRoZW0gZWFzaWVyIHRvIGNv
bnZlcnQgdG8gd29ya2VyIGxheW91dCB0ZXN0cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1z
dG9yZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3Rv
cmUtb3B0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVj
dFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9j
dXJzb3ItaW5kZXgtZGVsZXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLWtleS1vcmRlci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1w
cmltYXJ5LWtleS1vcmRlci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1yZXZlcnNlLWJ1Zy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1z
a2lwLWRlbGV0ZWQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBk
YXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLXVwZGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGEtY29ycnVwdGlvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNl
LWJhc2ljcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWUt
dW5kZWZpbmVkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Utb2Rk
LW5hbWVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEu
aHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtY2xvc2VkLWRhdGFiYXNl
LW9iamVjdC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1yYW5nZS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1y
ZXF1aXJlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0
b3JlLW51bGwtbmFtZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0
ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVzZXMtYWJvcnQt
YnktZGVmYXVsdC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1p
bi1ldmVudC1hYm9ydHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9mYWN0b3J5LWJhc2ljcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Zh
Y3RvcnktY21wLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxl
dGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW5kZXgtY291bnQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1j
dXJzb3IuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1nZXQta2V5LWFy
Z3VtZW50LXJlcXVpcmVkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgt
bXVsdGllbnRyeS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1
ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXkuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIva2V5cGF0aC1lZGdlcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tl
eXBhdGgtZmV0Y2gta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5cmFu
Z2UtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
a2V5cmFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5n
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFp
bHVyZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYXV0b2luY3Jl
bWVudC1pbmRleGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9i
YWQta2V5cGF0aC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xl
YXIuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRl
eC11bmlxdWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0
ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy5odG1sOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLW9i
amVjdHN0b3JlLW9ubHkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvci1tdXRhdGlvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvY3Vyc29yLXVwZGF0ZS11cGRhdGVzLWluZGV4ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvcnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2V2ZW50LXNvdXJjZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvZ2xvYmFsLWRhdGEuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2luZGV4ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2tleS1yZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5Lmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2Vk
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1l
bnRzLXB1dC1uby1rZXkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2tleS1yZXF1aXJlbWVudHMtcHV0LW51bGwta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29ycy5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5Lmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1dG9pbmNyZW1lbnQt
a2V5LWFkZGVkLW9uLXB1dC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvb2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29iamVjdHN0b3JlbmFtZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL29wZW4tZGF0YWJhc2UtbnVsbC1uYW1lLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUtdHJhbnNh
Y3Rpb25zLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkeVN0
YXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5k
ZXguaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1vYmpl
Y3RzdG9yZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lv
bmNoYW5nZS1hYm9ydC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
dmVyc2lvbmNoYW5nZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL211dGF0aW5n
LWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3JlLXJl
cXVpcmVkLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWF1dG9pbmNyZW1lbnQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RzdG9yZS1jbGVhci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWNvdW50Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtY3Vyc29yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUt
cmVtb3Zlb2JqZWN0c3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vZGQt
c3RyaW5ncy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xvc2UtdmVy
c2lvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcm9wZXJ0aWVzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAgKHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAodW5leHBlY3RlZEVycm9yQ2FsbGJhY2spOgorICAg
ICAgICAodW5leHBlY3RlZEFib3J0Q2FsbGJhY2spOgorICAgICAgICAodW5leHBlY3RlZENvbXBs
ZXRlQ2FsbGJhY2spOgorICAgICAgICAodW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjayk6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi1udWxsLmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fcXVldWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpz
LXJlY3Vyc2lvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWFib3J0Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0
ZXItY2xvc2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
bmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvdHdvLXZlcnNpb24tY2hhbmdlcy5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmplY3QuaHRt
bDoKKwogMjAxMi0wMy0wNyAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbY2hyb21pdW1dIE1hcmtpbmcgZmlsZS13cml0ZXItZXZlbnRzLmh0bWwg
YXMgZmxha3ktY3Jhc2hpbmcgb24gV2luLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jb25zdGFudHMuaHRtbAppbmRleCBhMTYxZTllOGQ4ZTUwZjI2YjRmNjY1Yzg4YzA2OTA2ZjA2
ODcyYzYxLi4zODE2MTM0ZTE0MjdlYjQ1YjJkMGYzMWYxYjliZTY3NDcwYjkwYTI2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNvbnN0YW50cy4i
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQyLDggKzQw
LDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIHRlc3QoKTsKIAotZG9uZSgpOworZmluaXNoSlNUZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3Rv
cmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1hbmQtcmVtb3Zl
LW9iamVjdC1zdG9yZS5odG1sCmluZGV4IDMyYmFlMWQzMTE2ZWU5NDM0YzM3YzdhZWQzOGMzMDMx
NzJkNGYzNTUuLjE0NTM3NTQwNWM2M2UzYTRlNWNkMjU2ZjIzNjljN2ZkNmVmMWZjZGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1hbmQtcmVtb3ZlLW9i
amVjdC1zdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0
ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRlIGFuZCByZW1vdmVPYmplY3RT
dG9yZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNjIs
MTIgKzYwLDEzIEBAIGZ1bmN0aW9uIHRyeU9uY2VNb3JlKCkKICAgICBkZWJ1ZygiVHJ5aW5nIHJl
bW92ZSB3aXRoIHN0b3JlIHRoYXQgYWxyZWFkeSBleGlzdHMiKTsKICAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJkYi5kZWxldGVPYmplY3RTdG9yZSgndG1wJykiLCAid2Via2l0SURCRGF0YWJh
c2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRl
LW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuaHRtbAppbmRleCA3YThhZmY0ZjU1MmQ3MDhl
N2U2Y2Y0ZDQxMTViZDc5YzQyYzM0NDQyLi4wNzhlNTA4MGE5YzE4MWY4ZDY4MDY1ZTZjMThhY2Fk
ZGY4ZTdiODQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVh
dGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuaHRtbApAQCAtOSw4ICs5LDYgQEAK
IDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0ZU9iamVjdFN0
b3JlJ3MgdmFyaW91cyBvcHRpb25zIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24g
dGVzdCgpCiB7CkBAIC03OSwxMiArNzcsMTMgQEAgZnVuY3Rpb24gY2hlY2tCKCkKIHsKICAgICBz
aG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5hIiwgInthOiAwfSIpOwogCi0gICAgZG9uZSgp
OworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1l
bnQtcmVxdWlyZWQuaHRtbAppbmRleCA2MGU5OWU4ZjI2YzYyYWFjYWIwNjc2Nzg0Y2ZmODFiNWU5
NTU0NWQyLi5iNjNmMzk4OTc3OWZmM2U4NzdkMGFmMmM4MDM1YWNlZmI4MmEyOTkwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1l
LWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCkBAIC0xMCw4
ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgY3JlYXRl
T2JqZWN0U3RvcmUgbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZCIpOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNDUsMTIgKzQzLDEzIEBAIGZ1bmN0aW9uIGNy
ZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7CiAKICAgICBzaG91bGRUaHJvdygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoKTsiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbAppbmRl
eCBkN2RmODcwMDdiMzg1ZWEwNWNiYjA1ZjVkMDBhNjY2NTQwOTliNTc1Li43NmU5ZmIxZGZjMTk1
NjIyNGY3ZTYyOTE4MGY1ZDFmYTZmYzBjYTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRt
bApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCIGNyZWF0ZU9iamVjdFN0b3JlIG51bGwgaGFuZGxpbmciKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ2LDEyICs0NCwxMyBAQCBmdW5jdGlvbiBjcmVh
dGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKIAogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExv
ZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUobnVsbCk7Iik7CiAgICAgc2hvdWxkQmUoIm9iamVjdFN0
b3JlLm5hbWUiLCAiJ251bGwnIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWwK
aW5kZXggNDk4Y2Y4OWU4NzY1MWFkMzk2NmIwODk3ODFmZGUyZmJkMmI0MmNhYy4uNjRmYjBiYjNl
NjAwNmMzMGVjZjdiNjYxYTAwZThkMWM1YzhhMTBiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8
c2NyaXB0PiAKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgSURCQ3Vyc29yLmNvbnRp
bnVlKCkgd2l0aCBhIGtleSBwYXJhbWV0ZXIuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdmFy
IGRhdGUgPSBuZXcgRGF0ZSgpOwogCkBAIC0yNzYsMTEgKzI3NCwxMiBAQCBmdW5jdGlvbiBkZXNj
ZW5kaW5nRXJyb3JUZXN0RXF1YWwoKQogZnVuY3Rpb24gb25UcmFuc2FjdGlvbkNvbXBsZXRlKCkK
IHsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3IuY29udGludWUoKSIsICJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiKTsKLSAgICBkb25lKCk7
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKICAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItZGVsZXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
dXJzb3ItZGVsZXRlLmh0bWwKaW5kZXggYTVjNDVlNjczNTNhYmZjN2VlNzUyMjA1YzgyNDFlMjcy
OTY3ODc4ZC4uOWZlOGVkZTcxNjUzZDAyM2ZjZGYwNDI2YjA5NmRkZTY0ZTgwYjNkNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUuaHRtbApAQCAt
OSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9w
ZW5DdXJzb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVzdCgpOwogCkBAIC0xMDcsMTAg
KzEwNSwxMSBAQCBmdW5jdGlvbiBkZWxldGVPYmplY3QoKQogZnVuY3Rpb24gdmVyaWZ5T2JqZWN0
RGVsZXRlZCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5kZWZp
bmVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIDwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbAppbmRleCBkZTdkOTJlMGJi
NDQyMWUwNzdmMmY2ZDBkYjE5NDg5NjZlODZiNjM2Li4xOTRjMmM2MTE1MDlkOWQ3NGVkOTY5NGY0
YmVhOWEyOWQ2ZTRmOTc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItaW5jb25zaXN0ZW5jeS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0
PgogCiBkZXNjcmlwdGlvbigiVGVzdCBjb25zaXN0ZW5jeSBvZiBJbmRleGVkREIncyBjdXJzb3Ig
b2JqZWN0cy4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiB0ZXN0KCk7CiAKQEAgLTg3LDEwICs4
NSwxMSBAQCBmdW5jdGlvbiBjaGVja0N1cnNvcigpCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBs
ZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNhY3Rpb25Db21wbGV0ZSgpIik7Ci0gICAgZG9uZSgp
OworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItaW5kZXgtZGVsZXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItaW5kZXgtZGVsZXRlLmh0bWwKaW5kZXggNjEzYTM0M2E0ZTk0YmIxNjY0ZmQyMmVkNzVkYWU4
MGM2MDVmZjkxZC4uZTFhNGI3YmYyZmY2NWFiOGY1M2NmYjk2MTk4N2NmYTI0NDhhZGI3ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmRleC1k
ZWxldGUuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVzdCgp
OwogCkBAIC0xMTEsMTAgKzEwOSwxMSBAQCBmdW5jdGlvbiBkZWxldGVPYmplY3QoKQogZnVuY3Rp
b24gdmVyaWZ5T2JqZWN0RGVsZXRlZCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5y
ZXN1bHQiLCAidW5kZWZpbmVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwKaW5kZXggNjgx
Y2FmOTMzMDQzZWRjZjY0ZWYxMWRjM2ExYmIwMDM0NTA4YTUzOC4uNWEzNGNkZWM5ZDNkODZjOTJl
YjkwMDZhZmQyMmFhNDk2MjBkYzhmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlzIG9yZGVyaW5nIGFuZCByZWFkYmFj
ayBmcm9tIGN1cnNvcnMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgp
CiB7CkBAIC0xODgsNyArMTg2LDcgQEAgZnVuY3Rpb24gY2hlY2tTdG9yZSgpCiBmdW5jdGlvbiBm
aW5pc2hVcCgpCiB7CiAgICAgdGVzdEtleUNvbXBhcmUoKTsKLSAgICBkb25lKCk7CisgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIHRlc3RLZXlDb21wYXJlKCkKQEAgLTIzNyw1ICsy
MzUsNiBAQCBmdW5jdGlvbiB0ZXN0S2V5Q29tcGFyZSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci5odG1sCmluZGV4IGZjYzdk
NzljNTcyYjdlMjNjMWQ0NjI0M2ExNmMwNjVkMDY5MjZjYTMuLjg0YTExN2M3NjdlZWI1YWM5MzM3
NWI0ZjQ2YjhkOGJkYmY4MTEwNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci5odG1sCkBAIC0xMCw4ICsx
MCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgcHJpbWFyeSBr
ZXkgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4iKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEwNCw3ICsxMDIsNyBAQCBmdW5jdGlvbiBj
aGVja1N0b3JlKCkKICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjb3VudCA9PT0ga2V5cy5sZW5ndGgiKTsK
LSAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAg
ICB9CiAgICAgfTsKIH0KQEAgLTExMiw1ICsxMTAsNiBAQCBmdW5jdGlvbiBjaGVja1N0b3JlKCkK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLmh0bWwK
aW5kZXggMDU0OTkzOThkODAwMWFlYTNjMjJkMTU1Zjc4MDYwNzI3YjU2Y2YzMy4uYjU1OTRkZjc1
ZjcxYjhjNThkNGFmMWY0ZDBjYjkyMjJiYWJjMzYwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLmh0bWwKQEAgLTksOCArOSw2
IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmlu
ZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtNzIsNyArNzAsNyBAQCBmdW5jdGlvbiB0ZXN0Q3Vyc29yKCkK
IAogICAgIGlmICh0ZXN0cy5sZW5ndGggPT09IDApIHsKICAgICAgICAgZGVidWcoIk5vIG1vcmUg
dGVzdHMuIik7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNSw2ICsxMTMsNyBAQCBmdW5jdGlvbiB0ZXN0Q3Vy
c29yKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVs
ZXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVs
ZXRlZC5odG1sCmluZGV4IGNmZTcyMDhjYmJkOWIyMjIyMTIxOTc5NzkzMzMyYzE5MTMwNTE4OGYu
LmMyNmVhZjQ3NjM2ZTU3NDI4ZjY1MjQzNzZiMGRlYTY3NjZlYjhkZjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWwK
QEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIn
cyBjdXJzb3Igc2tpcHMgZGVsZXRlZCBlbnRyaWVzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IHZhciBuYW1lcyA9IFsnQWxwaGEnLCAnQnJhdm8nLCAnQ2hhcmxpZScsICdEZWx0YScsICdFY2hv
JywgJ0ZveHRyb3QnLCAnR29sZicsCiAgICAgICAgICAgICAgJ0hvdGVsJywgJ0luZGlhJywgJ0p1
bGlldCcsICdLaWxvJywgJ0xpbWEnLCAnTWlrZScsICdOb3ZlbWJlcicsCkBAIC0xOTYsMTAgKzE5
NCwxMSBAQCBmdW5jdGlvbiBpbmRleEN1cnNvclRlc3QoKQogZnVuY3Rpb24gdHJhbnNhY3Rpb25D
b21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxldGUoKToiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQu
aHRtbAppbmRleCBiY2ZkMTBiODAwMGFiMDY4YWI0NzFiODBlOWY5ZWNiM2RlMWQ3ZjI0Li5kODQ2
ZjA0YjRjODEwMWEyNWZlNDEwOWRkYjM5Y2M4NTc3ZmFlMWYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVp
cmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0
ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0
PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgY3Vyc29yLnVwZGF0ZSByZXF1aXJlZCBh
cmd1bWVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTgxLDcgKzc5LDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJjdXJzb3Igd2FzIG51bGwiKTsKICAgICAgICAgfQotICAg
ICAgICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0KIApAQCAtODks
NiArODcsNyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAzKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLXVwZGF0ZS5odG1sCmluZGV4IDk0OGYyMjUyZThmODMyOTRmNThmNDA5NWNh
ZmU0YWNlNDM4OWUxZmIuLmFlMTljOTc5ZTY5ZGMyZDJmZDFjYWJlMDY2ZGJkZDVhMWJhMWIwMTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIncyBjdXJzb3IgdXBkYXRlLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIHRlc3QoKTsKIApA
QCAtMjE4LDEwICsyMTYsMTEgQEAgZnVuY3Rpb24ga2V5Q3Vyc29yKCkKIGZ1bmN0aW9uIHRyYW5z
YWN0aW9uQ29tcGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRlKCkiKTsK
LSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZGF0YS1jb3JydXB0aW9uLmh0bWwKaW5kZXggMDBlNGMzMWY2MDdhZGViZWFlY2QzNDJmNzJm
NWVmNjQxNjdmMjkwNy4uMGJmYjE1NzRmOTI4NWJkYWQ4MjJiNmQ3OGNjMzIxN2MxNzc1YTY4NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9u
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0
IGRhdGEgaW5zZXJ0ZWQgaW50byBJbmRleGVkREIgZG9lcyBub3QgZ2V0IGNvcnJ1cHRlZCBvbiBk
aXNrLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTY1
LDEyICs2MywxMyBAQCBmdW5jdGlvbiBnZXREYXRhKCkKIGZ1bmN0aW9uIGRvQ2hlY2soKQogewog
ICAgIHNob3VsZEJlVHJ1ZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC54LnRvU3RyaW5nKCkgPT0gdGVz
dERhdGUudG9TdHJpbmcoKSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWJhc2ljcy5odG1sCmlu
ZGV4IDQ3NjgzZTg3MGVhNzJkOGIxZWMyMDFiNDMyYzM1OTY3NzAxNDEzMDkuLjhhZmMxYmFiMDhh
NWM2MzljYWZiMWRjZDAwNDNhNDBjOTVlYjk4MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWJhc2ljcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWJhc2ljcy5odG1sCkBAIC05LDggKzksNiBAQAogPHNj
cmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgdGhlIGJhc2ljcyBvZiBJbmRleGVkREIncyBJREJE
YXRhYmFzZS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBA
IC0xMTksMTIgKzExNywxMyBAQCBmdW5jdGlvbiB0ZXN0Q2xvc2UoKQogICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKCd0ZXN0MTIzJykiLCAiSURCRGF0YWJhc2VFeGNl
cHRpb24uTk9UX0FMTE9XRURfRVJSIik7CiAgICAgZGVidWcoIkNhbGwgdHdpY2UsIG1ha2Ugc3Vy
ZSBpdCdzIGhhcm1sZXNzIik7CiAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOwotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRtbAppbmRleCA2NmE3ZTg3
Y2RkYzJkMTA5NDI5ZWRiOTBkMWQ3NmYwMTY1YTYzYmExLi5kNmZjOTU0MTM3OGJhOTA0YmI1OTc3
NWNjMGFmZGVjMGU1OTJmNzAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWUtdW5kZWZpbmVkLmh0bWwKQEAgLTEwLDggKzEwLDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB1bmRlZmluZWQgYXMg
cmVjb3JkIHZhbHVlIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7
CkBAIC0yNSwxMiArMjMsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc2hvdWxkQmVGYWxzZSgi
SURCS2V5UmFuZ2UgPT0gbnVsbCIpOwogCiAgICAgc2hvdWxkVGhyb3coImluZGV4ZWREQi5vcGVu
KCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsK
IAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Utb2RkLW5hbWVzLmh0bWwKaW5kZXggNDQw
NDFiMjgwZTFlMjI0Mzg0ODQ3YjRmMTI1MGQ5ZjdiMWQxZjQ0NS4uODNkOGU5N2M2ZWI5MmRhNTA4
ODU3NDhhMTE1Yzc0NDg2NzU2ODg1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGF0YWJhc2Utb2RkLW5hbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGF0YWJhc2Utb2RkLW5hbWVzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxz
Y3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBvZGQgdmFsdWUgZGF0YXR5cGVz
Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00MCwxMiAr
MzgsMTMgQEAgZnVuY3Rpb24gb3Blbk5leHREYXRhYmFzZSgpCiAgICAgZGVidWcoIm9wZW5pbmcg
YSBkYXRhYmFzZSBuYW1lZCAiICsgdGVzdERhdGFbbmV4dFRvT3Blbl0uZGVzY3JpcHRpb24pOwog
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9P
cGVuXS5uYW1lLCB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5kZXNjcmlwdGlvbikiKTsKICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9ICsrbmV4dFRvT3BlbiA8IHRlc3REYXRhLmxlbmd0aCA/IG9wZW5OZXh0RGF0YWJhc2Ug
OiBkb25lOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKytuZXh0VG9PcGVuIDwgdGVzdERhdGEu
bGVuZ3RoID8gb3Blbk5leHREYXRhYmFzZSA6IGZpbmlzaEpTVGVzdDsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbAppbmRleCAxMDlhN2QyOTEw
OGZmNjUzODhjMmViYzk0NjY2ZjYzYzliODhmYjczLi4xNjE3YTdiMzcxNTYxMzJkY2U5YzUwYmZi
MzBhZTU4OGQ4NmM0OGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9kYXRhYmFzZS1xdW90YS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2RhdGFiYXNlLXF1b3RhLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlw
dGlvbigiVGVzdHMgSW5kZXhlZERCJ3MgcXVvdGEgZW5mb3JjaW5nIG1lY2hhbmlzbS4iKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC03OSw3ICs3Nyw3IEBA
IGZ1bmN0aW9uIGFkZERhdGEoKQogICAgICAgICAgICAgc3RvcmUgPSBldmVudC50YXJnZXQuc291
cmNlOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHRlc3RGYWlsZWQoImFkZGVkIG1vcmUgdGhhbiBx
dW90YSIpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGRhdGFBZGRlZCArPSA2NTUzNjsKQEAgLTk3LDEyICs5NSwx
MyBAQCBmdW5jdGlvbiBsb2dFcnJvcigpCiBmdW5jdGlvbiB0ZXN0Q29tcGxldGUoKQogewogICAg
IHRlc3RQYXNzZWQoIkFkZGluZyBkYXRhIGZhaWxlZCBkdWUgdG8gcXVvdGEgZXJyb3IuIERhdGEg
YWRkZWQgd2FzIGFib3V0ICIgKyBNYXRoLnJvdW5kKGRhdGFBZGRlZCAvIDEwMjQgLyAxMDI0KSAr
ICIgTUIiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsK
IAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3Qu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJh
c2Utb2JqZWN0Lmh0bWwKaW5kZXggYzM3NGQ1NWFjZWY2ZWUzNDBhMjQ1NDJkMjQ3YTJmYjM4NmM3
NTUxMC4uYWIwZjVjZjg2ZmMwOTdmNmU2YTMyNWVkODM5ZmY5NjViMTA3YmUwMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtY2xv
c2VkLWRhdGFiYXNlLW9iamVjdC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIkVuc3VyZSB0aGF0IElEQkRhdGFiYXNlIG9iamVjdHMgYXJlIGRlbGV0ZWQgd2hl
biB0aGVyZSBhcmUgbm8gcmV0YWluaW5nIHBhdGhzIGxlZnQiKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiAKIGZ1bmN0aW9uIHRlc3QoKSB7CkBAIC01MiwxMiArNTAsMTMgQEAgZnVuY3Rpb24gc2V0
VmVyc2lvbigpCiAgICAgdmFyIHZlcnNpb25DaGFuZ2VSZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIu
c2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsKICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgdmVyc2lvbkNoYW5nZVJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKLSAgICB2ZXJzaW9uQ2hhbmdl
UmVxdWVzdC5vbnN1Y2Nlc3MgPSBkb25lOworICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZpbmlzaEpTVGVzdDsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rl
bGV0ZS1yYW5nZS5odG1sCmluZGV4IDdlNGJjYTQ0MTQ3MWNlMGJlMzZlZmMxMTEzMjc5MzllN2Ux
MzQ0YzYuLjVjYWI5MDVlMjc3ZTY5NTI2MDZmYWVlOWQ1MzY5YTVkY2Y4YTc4ODQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1yYW5nZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1yYW5nZS5odG1sCkBAIC05LDgg
KzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgSURCT2Jq
ZWN0U3RvcmUuZGVsZXRlKElEQktleVJhbmdlKSBtZXRob2QuIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05Miw3ICs5MCw3IEBAIGZ1bmN0aW9uIHJ1blRl
c3RzKCkKICAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBuZXh0VGVzdDsKICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAyLDUgKzEwMCw2IEBA
IGZ1bmN0aW9uIHJ1blRlc3RzKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rl
bGV0ZUluZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRl
eC5odG1sCmluZGV4IDRhNzA3NDNiYzBkZDI2ZGViODdjNmI5YmRjZTczMzVjNDA2OTk0ZWMuLmQ4
NDdiNWJkODcyYTFjMmU3MTc1ZGQ5ZDg3YzZiMzRlNDg0NTI2MjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlSW5kZXguaHRtbApAQCAtMiw3ICsyLDYgQEAKIDxo
dG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTExLDggKzEwLDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBkZWxldGVJbmRleCBt
ZXRob2QiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTU3
LDExICs1NCwxMiBAQCBmdW5jdGlvbiBwb3N0VHdpZGRsaW5nKCkKIHsKICAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFyJyk7IiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
Im9iamVjdFN0b3JlLmRlbGV0ZUluZGV4KCdzZWNvbmQnKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlv
bi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVj
dFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApp
bmRleCBmNTI2YzE4MGZkOTViZjRjMzRlYjI3NjZhNGI1OWEyODYyZmVjYTBmLi42YjlkMWFkMTky
ODRhNTBkMDlhMTdiZjg1NmNiZjQ5NzA0MGE0N2RkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3Rv
cmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0
PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgZGVsZXRlT2JqZWN0U3RvcmUgcmVxdWly
ZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
QEAgLTQ1LDEyICs0MywxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3Jl
KCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgc2hvdWxkVGhyb3coImRi
LmRlbGV0ZU9iamVjdFN0b3JlKCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0
b3JlLW51bGwtbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRl
T2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwKaW5kZXggODdjOWE1OWQ0OGUxZTI1NGVmZGU1ZDU4
ZTJlOTA4MjBlY2IxODY1ZS4uNTZhNjIxZGFmMjU5MThkMTYzODBiYWUzMDA4MDdiMWM5OTM5MDAz
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3Jp
cHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBkZWxldGVPYmplY3RTdG9yZSByZXF1
aXJlZCBhcmd1bWVudCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDYsMTIgKzQ0LDEzIEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3Rv
cmUoKQogCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ251bGwnKTsiKTsK
ICAgICBldmFsQW5kTG9nKCJkYi5kZWxldGVPYmplY3RTdG9yZShudWxsKTsiKTsKLSAgICBkb25l
KCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZHVwbGljYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZHVwbGljYXRlcy5odG1sCmluZGV4IDk2ODUzMDk4YjU4YjIxNzZlMmM0ODE3ZDkzOWEyMzY4ZThh
MjlmZDMuLjQyMzYwN2I3N2FmZGRmYjExOTIyNWE1NzRiYjNlOGFiYzUxZWNiNzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBsaWNhdGVzLmh0bWwKQEAgLTksOCArOSw2
IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgeW91IGNhbiBwdXQgdGhl
IHNhbWUgZGF0YSBpbiAyIGRpZmZlcmVudCBkYXRhYmFzZXMgd2l0aG91dCB1bmlxdWVuZXNzIGNv
bnN0cmFpbnRzIGZpcmluZy4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVzdENvdW50ID0g
MDsKIGZ1bmN0aW9uIHRlc3QoKQpAQCAtMTY2LDEyICsxNjQsMTMgQEAgZnVuY3Rpb24gbGFzdCgp
CiAgICAgaWYgKHRlc3RDb3VudCA9PSAxKQogICAgICAgICB0ZXN0KCk7CiAgICAgZWxzZQotICAg
ICAgICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIAog
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Vycm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVm
YXVsdC5odG1sCmluZGV4IDQwMGU4YjI5NmQ4ZjMyZTg4M2ViNmMzNDM1NGM0ZWViZjViNjM1ZjIu
LjdjMTAyNWRkMDllZjc0YjBlN2I3YmFmZGJjMGYyZTZmOGQxZTVmMzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Vycm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXJyb3ItY2F1c2VzLWFi
b3J0LWJ5LWRlZmF1bHQuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0
aW9uKCJWZXJpZnkgdGhhdCBhIHRyYW5zYWN0aW9uIHdpdGggYW4gZXJyb3IgYWJvcnRzIHVubGVz
cyBwcmV2ZW50RGVmYXVsdCgpIGlzIGNhbGxlZC4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDEsMTIgKzk5LDEzIEBAIGZ1bmN0aW9uIHRyYW5zYWN0
aW9uQWJvcnRlZDEoKQogZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkMigpCiB7CiAgICAgdGVz
dFBhc3NlZCgiVHJhbnNhY3Rpb24gYWJvcnRlZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRp
b24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMtZXhwZWN0ZWQudHh0CmluZGV4IDRiOWY4
NjljMWRmMjkwYWM4YjM3ZmI2OWFhZjY2ZjAwOTg3OTdhZWEuLjA0YmVjZGU3MjNkMGQ0OTk2NTQ4
ODQ0NjQxNmJhYjU4MzQ0NTk3NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYzOiBVbmNhdWdo
dCB0aGlzIGV4Y2VwdGlvbiBpcyBleHBlY3RlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYzOiBV
bmNhdWdodCB0aGlzIGV4Y2VwdGlvbiBpcyBleHBlY3RlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDYxOiBVbmNhdWdodCB0aGlzIGV4Y2VwdGlvbiBpcyBleHBlY3RlZAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDYxOiBVbmNhdWdodCB0aGlzIGV4Y2VwdGlvbiBpcyBleHBlY3RlZAogVGVzdCBleGNl
cHRpb25zIGluIElEQlJlcXVlc3QgaGFuZGxlcnMgY2F1c2UgYWJvcnRzLgogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWwKaW5kZXggYmIwYjVkZjZkYzJm
NjM1MzQ2NzA3YjMxOWRkZTU3ZWU0ZDgyZWQ5ZS4uYTJkYzJjMmY5MWVkNzc4OTkyZjBkMmEzOTIy
MjAyNDEyYzY0Mjg4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbApAQCAtOSw4ICs5LDYgQEAK
IDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGV4Y2VwdGlvbnMgaW4gSURCUmVxdWVzdCBo
YW5kbGVycyBjYXVzZSBhYm9ydHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9u
IHRlc3QoKQogewpAQCAtMTIxLDEyICsxMTksMTMgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21w
bGV0ZWQyKCkKICAgICBkZWJ1ZygiIik7CiAgICAgdGVzdFBhc3NlZCgiVGhlIHRyYW5zYWN0aW9u
IGNvbXBsZXRlZC4iKTsKICAgICBkZWJ1ZygiIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3Rvcnkt
YmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWJhc2lj
cy5odG1sCmluZGV4IDM4MzNhZmY5ZDRlNzNhMjRlZGM5OWQ0NDNlMzNhNDVhYWIxMWRlMDQuLjZh
ZmVjMGY3OTA3YWVhZmUzYWRiZmZjZjA4ZDIxZmRkMjUxYjcyYTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBiYXNpY3Mgb2YgSW5kZXhlZERC
J3MgSURCRmFjdG9yeS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgp
CiB7CkBAIC04NCwxMiArODIsMTMgQEAgZnVuY3Rpb24gZ2V0RGF0YWJhc2VOYW1lc1N1Y2Nlc3Mz
KCkKIAogZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2VTdWNjZXNzMigpCiB7Ci0gICAgZG9uZSgpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ZhY3RvcnktY21wLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0
b3J5LWNtcC5odG1sCmluZGV4IDgxOGE2MTk5MTg5ZmU5NGUzZmYyOTQ5Zjg1OGYwODk1MGYwMmEx
ZWYuLjc5ZjQ2MGZhYTI1N2NhOGQ2MDRhNWE4ZGVhMmUwYjFmZDkwMDg4NGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktY21wLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1jbXAuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXkgY29tcGFyaXNv
biB1c2luZyBJREJGYWN0b3J5LmNtcCgpLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5j
dGlvbiB0ZXN0KCkKIHsKQEAgLTI0LDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGVz
dFZhbGlkS2V5cygpOwogICAgIHRlc3RJbnZhbGlkS2V5cygpOwogICAgIHRlc3RJZGVudGljYWxL
ZXlzKCk7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiB0
ZXN0VmFsaWRLZXlzKCkKQEAgLTE1Miw1ICsxNTAsNiBAQCBmdW5jdGlvbiB0ZXN0SWRlbnRpY2Fs
S2V5cygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRh
dGFiYXNlLWludGVyYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuaHRtbAppbmRleCA2NmY1MmViNzdk
ZTEzYTM1NWM3MThiMTE2ODM0ODVjYjlhNzY0ZWY3Li5jM2I5MTc0NzZmMGQ1ZmFmNTkzYTA2YmZk
NGM0ZDllM2QzNmRlYzE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25z
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGUg
ZGVsZXRlRGF0YWJhc2UgY2FsbCBhbmQgaXRzIGludGVyYWN0aW9uIHdpdGggb3Blbi9zZXRWZXJz
aW9uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gQ29ubmVjdGlvbihpZCkgewog
ICAgIGlkID0gU3RyaW5nKGlkKTsKQEAgLTE4NywxMiArMTg1LDEzIEBAIGZ1bmN0aW9uIHRlc3Qz
KCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLmNsb3NlIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MiCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXS50b1N0cmluZygpKTsKLSAgICAgICAgZG9uZSgp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UuaHRtbAppbmRleCA1Yjc5
OTU3YTVkYTk1ZTZlMDI0NDkxYzkzYWYxZWI0N2NmYmE0MDIyLi40NjdlMWYwOWY3NDA2YjhhZTA4
ZGY4MDNjMzAzMWI5NjQyYTVlMmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sCkBAIC05LDggKzksNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgd2Via2l0SW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKCkuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24g
dGVzdCgpCiB7CkBAIC05MSwxMCArODksMTEgQEAgZnVuY3Rpb24gdmVyaWZ5Tm90Rm91bmQoKQog
ewogICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIwIik7CiAKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbmRleC1jb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW5kZXgtY291bnQuaHRtbAppbmRleCAwZjgzMWZlMjNjNjRlMzZkNGNhNzIzMzYyMzFmMTYz
MmVjN2RkNmU0Li42NWFhNWQyYTI3NzRiYWVmZTc1ZDhhNzM2YzE4MDY1Yzc3ZmI3MTE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jb3VudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWwKQEAgLTks
OCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBJREJJ
bmRleC5jb3VudCgpLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtMTI1LDcgKzEyMyw3IEBAIGZ1bmN0aW9uIHZlcmlmeUNvdW50V2l0aEtleSgpCiAgICAg
dHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX09OTFkpIik7CiAgICAgc2hvdWxkQmVUcnVlKCJ0cmFucyAhPSBu
dWxsIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAg
IHRyYW5zLm9uY29tcGxldGUgPSBkb25lOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hK
U1Rlc3Q7CiAKICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpIik7CiAgICAgc2hvdWxkQmVUcnVlKCJzdG9yZSAhPSBudWxsIik7CkBA
IC0xNjQsNSArMTYyLDYgQEAgZnVuY3Rpb24gdmVyaWZ5Q291bnRXaXRoS2V5KCkKIHRlc3QoKTsK
IAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWwKaW5kZXggNzdkYWRhZmQ2ZWM4ZmQ1
NDg2NjI1MmU1NzYxYzliYjI2NzVmNGQxNC4uYjY1M2MwMDU5MGIzYTlmMDA0ZjEyZWY0MmUzOWZm
M2UzZGE4NTM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5k
ZXgtY3Vyc29yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgt
Y3Vyc29yLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PiAKIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCJ3Mgd2Via2l0SURCSW5kZXgub3BlbkN1cnNvciArIHRoZSBjdXJzb3IgaXQg
cHJvZHVjZXMgaW4gZGVwdGguIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAKIC8vIEluIG9yZGVy
IG9mIGhvdyBpdCBzaG91bGQgYmUgc29ydGVkIGJ5IEluZGV4ZWREQi4KIHdpbmRvdy50ZXN0RGF0
YSA9IFsKQEAgLTI0MCw3ICsyMzgsNyBAQCBmdW5jdGlvbiB0ZXN0TnVsbEtleVJhbmdlKCkKICAg
ICAgICAgd2luZG93LmV4cGVjdGVkSW5kZXggPSB1cHBlcjsKICAgICAgICAgd2luZG93Lm51bGxL
ZXlSYW5nZVN0ZXAgPSAyOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI1NSw1ICsyNTMs
NiBAQCBmdW5jdGlvbiB0ZXN0TnVsbEtleVJhbmdlKCkKIG9wZW5EYXRhYmFzZSgpOyAvLyBUaGUg
Zmlyc3Qgc3RlcC4KICAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1nZXQta2V5LWFyZ3Vt
ZW50LXJlcXVpcmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1n
ZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggOTY3MGYyMTMxMGUyNjU2MWViMmJh
MWJmNDVhZTE4OGUxZDNlNzg2YS4uZTIzNmQ5YzE1MThjMWU0NGUwNWYyOTVhNTE0NDljNzVmMGQy
MTQwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtZ2V0
LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAsOCArMTAs
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGluZGV4IC5nZXQo
KSByZXF1aXJlZCBhcmd1bWVudCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNDgsMTIgKzQ2LDEzIEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2Jq
ZWN0U3RvcmUoKQogICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBvYmplY3RTdG9yZS5j
cmVhdGVJbmRleCgnZmlyc3QnLCAnZmlyc3QnKTsiKTsKICAgICBzaG91bGRUaHJvdygiaW5kZXgu
Z2V0KCk7Iik7CiAgICAgc2hvdWxkVGhyb3coImluZGV4LmdldEtleSgpOyIpOwotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKaW5kZXggZGZjMTQwODYwYTUxMjc1YmU5NzU2YTU1
MmRhMmU0ZmE4MjY0NjgyNi4uOWY5NmVmZjM5ZGEwNWY0ZGE0YzY4OTFmNmYxYjlhMTQxNzAyYWIw
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGll
bnRyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRp
ZW50cnkuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IGZlYXR1cmVzIG9mIEluZGV4ZWREQidzIG11bHRpRW50cnkgaW5kaWNlcy4iKTsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTE0MCw3ICsxMzgsNyBAQCBmdW5j
dGlvbiBjcmVhdGVJbmRleE9uU3RvcmVXaXRoRGF0YSgpCiAgICAgICAgIHZhciB0cmFucyA9IGV2
YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwogICAgICAgICBzaG91bGRC
ZVRydWUoInRyYW5zICE9PSBudWxsIik7CiAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkg
eyB2ZXJpZnlJbmRleGVzKCdpbmRleC1uZXcnLCBkb25lKTsgfTsKKyAgICAgICAgdHJhbnMub25j
b21wbGV0ZSA9IGZ1bmN0aW9uKCkgeyB2ZXJpZnlJbmRleGVzKCdpbmRleC1uZXcnLCBmaW5pc2hK
U1Rlc3QpOyB9OwogCiAgICAgICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5v
YmplY3RTdG9yZSgnc3RvcmUnKSIpOwogICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJ
bmRleCgnaW5kZXgtbmV3JywgJ3gnLCB7bXVsdGlFbnRyeTogdHJ1ZX0pIik7CkBAIC0xNTAsNiAr
MTQ4LDcgQEAgZnVuY3Rpb24gY3JlYXRlSW5kZXhPblN0b3JlV2l0aERhdGEoKQogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS5odG1sCmluZGV4IGNmZjlmNDc2Mjk2OTBk
MzdmZGM3YmJkMWM0MzhmMmM3YWUyYTQ2OTcuLjM4YTYyZTQyNWQ4OWRkZjBjMDBlOTJjYWUyZjk4
YjdiZmI0MDZjODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LXVuaXF1ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LXVuaXF1ZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgZmVhdHVyZXMgb2YgSW5kZXhlZERCJ3MgdW5pcXVlIGluZGljZXMuIik7Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMzYsMTMgKzEzNCwxNCBAQCBmdW5j
dGlvbiBmaW5hbEFkZFN1Y2Nlc3MoKSB7CiAgICAgLy8gQW4gb3ZlcndyaXRlIHNob3VsZCBiZSBv
ay4KICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlJykucHV0KHt4OiAxfSwgJ2JheicpIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkb25lOworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZmluaXNoSlNUZXN0OwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnZhbGlkLWtleXMuaHRtbAppbmRleCA3NzllOGViYzc4Y2IxZTBhMGRiNWE0
ZDlkNWE2ZWYxN2ViOWZiYWNmLi44N2U0NWRhZGFlOTBlNjg3ZGMxMDFiMWNiZjJiM2M1ZWU2ODE2
ODk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtl
eXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtleXMu
aHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCIGludmFsaWQga2V5cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNjksMTIgKzY3LDEzIEBAIGZ1bmN0aW9uIHRlc3RJbnZhbGlkS2V5cygpCiAg
ICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInJlcXVlc3QgPSBvYmplY3RTdG9yZS5wdXQo
J3ZhbHVlJywgIiArIGtleSArICIpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7
CiAgICAgfSk7CiAgICAgCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbAppbmRleCAyMTI0
MDQ1MzExNDViZTczYmJmMzAwYjE0NGIwN2Q2ZjBjZDFlZjMxLi41NWExMzQ1Y2UyMzNiMzYwYWVk
NGJmZWY5ZGMyNjVmMDZlM2FmN2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9rZXktZ2VuZXJhdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIva2V5LWdlbmVyYXRvci5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mga2V5IGdlbmVyYXRvciBiZWhhdmlvci4iKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00MCw3ICszOCw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogCiAgICAgZnVuY3Rpb24gbmV4dFRlc3QoKSB7CiAgICAg
ICAgIGlmICghdGVzdHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0y
MTksNSArMjE3LDYgQEAgZGVmaW5lVGVzdCgKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLmh0bWwKaW5kZXggOWM2NzBk
MjY1NDkwMGRhNDNkYzNiYmJkNjdhMzJiZjZmYTU3NDJmYy4uZGRlMGUwYzg5Y2Y1MWM2ZmU4OTIy
ZjI4ZjUyMGU5ZTA0MWQ0ZjAxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLmh0bWwKQEAgLTEw
LDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXkg
Y29tcGFyaXNvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpA
QCAtOTIsNyArOTAsNyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAgICAgICBldmFs
QW5kTG9nKCJrZXlJbmRleCsrOyIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KICAg
ICB9CiB9CkBAIC0xMDEsNSArOTksNiBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLmh0bWwKaW5kZXgg
NWZlZDQ5YjU1NDVkOTJlZmZlYzRjN2UxOTUxNzcyNjcyNmJiOGI5Ni4uYzcxOWFkMTA5NzU4Yzhl
ZjkxYzc4ODVlYTBlNjBjZDI3ZWNlMDdmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUuaHRtbApAQCAtMTAsOCArMTAsNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSBjb21wYXJpc29u
Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC04OSw3ICs4
Nyw3IEBAIGZ1bmN0aW9uIG9wZW5BQ3Vyc29yKCkKICAgICAgICAgICAgIGV2YWxBbmRMb2coImtl
eUluZGV4Kys7Iik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkb25l
KCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTk4LDUgKzk2LDYgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwKaW5kZXggOTJmY2MwNmVhMTcyNjQzYTc2NTlh
YjlmMjBkYjI4MWE5ZDMyNzUwNS4uZTE2NTAzMmQ3YzhiNjgzMzJhMWE1YzNmYjE1MmE4Nzc0YWJk
MmQ1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUt
YXJyYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1h
cnJheS5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVz
dCBJbmRleGVkREIga2V5IHR5cGVzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24g
dGVzdCgpCiB7CkBAIC0yMDIsMTEgKzIwMCwxMiBAQCBmdW5jdGlvbiB0ZXN0RGVwdGhMaW1pdHMo
KQogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4ZWREQi5jbXAobWFrZUFycmF5T2ZE
ZXB0aCgyNTAwKSwgMCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKICAgICBk
ZWJ1ZygiIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5odG1sCmluZGV4IDY4
YzA4ZWFjNGJjNWZmYjFjMmIxMGY0MjdkZGVlMWRjZTU4MTJlMzYuLjcyNDFmN2JmNWQ5NDE1MmFi
NWRlNzQ2ZmViNzgzNWQzY2JlZmYyYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHkuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNj
cmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSB0eXBlcyIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNjEsMTIgKzU5LDEzIEBAIGZ1
bmN0aW9uIHRlc3RHcm91cDIoKQogCiBmdW5jdGlvbiB0ZXN0R3JvdXAzKCkKIHsKLSAgICBkb25l
KCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwKaW5kZXggODZlZDMyNTU2ODQzMzZjZDA5MzNmN2Y5YWUz
YTBhOTk1ZDNhNGFkOS4uMjIzZDY0ZjUzZTY4MzY3NWMyZTAzN2U2YWY3MzM4NWQ3OWE4YzhiMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNpY3Mu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5o
dG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBmb3Ig
dmFsaWQgYW5kIGludmFsaWQga2V5cGF0aHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5j
dGlvbiB0ZXN0KCkKIHsKQEAgLTEwMSwxMiArOTksMTMgQEAgZnVuY3Rpb24gdGVzdEludmFsaWRL
ZXlQYXRocygpCiAgICAgICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgfSk7CiAK
LSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1lZGdlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIva2V5cGF0aC1lZGdlcy5odG1sCmluZGV4IGY4YzkwNDliMzg4OGE2OTE4ZWFh
NzM0YTUyNmI5ZDg2NmQ4NWE2NGQuLmVkOGEyNjhjNTU0YzQyOGI0NDM1OTVjYWRmODgzOTVlZTRk
NGJkZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgt
ZWRnZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVk
Z2VzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQiBrZXlQYXRoIGVkZ2UgY2FzZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTExNywxMSArMTE1LDEyIEBAIGZ1bmN0aW9uIHRlc3RLZXlQ
YXRoc0FuZEdlbmVyYXRvcigpCiAgICAgfTsKIAogICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1
bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZG9u
ZTsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogfQogCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXkuaHRtbAppbmRleCA0
YTkzMzU5YTEyNDgyOGZlZTA5NDc0ZjBiMjJlNTllNjVmMzk0Mjk3Li45NjVlY2I4MjI0M2FhMGFj
MjgzMWQwNWZjMjMwMGQ1MmM3MWQ2MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxz
Y3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlQYXRocyIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTAsNyArODgsNyBAQCBmdW5j
dGlvbiBjaGVja0N1cnNvcigpCiAgICAgaWYgKCsrbmV4dFRvT3BlbiA8IHRlc3REYXRhLmxlbmd0
aCkgewogICAgICAgICBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCk7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAK
QEAgLTk4LDUgKzk2LDYgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRt
bAppbmRleCBiNDlmYTc4MGZkODE1YTQwYzZmYTNkZGNiZWJlNGI0YjQ2OTUwYzMzLi4wNjI4N2Nj
NTMzNjc0OTFlOTUzZGRmYjYyMzYzNGZlOGE2MzI2NjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1yZXF1aXJlZC1hcmd1bWVu
dHMuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIGtleXJhbmdlIHJlcXVpcmVkIGFyZ3VtZW50cyIpOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMzAsMTIgKzI4LDEzIEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIHNob3VsZFRocm93KCJJREJLZXlSYW5nZS5ib3VuZCgxKTsiKTsKICAgICBzaG91
bGRUaHJvdygiSURCS2V5UmFuZ2UuYm91bmQoKTsiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXly
YW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbApp
bmRleCBiYTlhZGZhMmFhZWQzMWMxODU0MWQxMTQ4MGQ0YjM0Y2M2MTI5YjA2Li43YjAwMTk0MDJh
ODQxOWFhNWVkNTBiYjhkNmIwM2IwYzc5YmZlMDEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleXJhbmdlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBLZXlSYW5nZS4iKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiBmdW5jdGlvbiBjaGVja1NpbmdsZUtleVJhbmdlKHZhbHVlKQogewpAQCAtMTkwLDggKzE4
OCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiB0ZXN0KCk7CiAKLWRvbmUoKTsKK2ZpbmlzaEpTVGVz
dCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy5odG1sCmluZGV4IDA4ZmQ1NGZm
ZWIyYjQ4ZGVhZDY1OGQ0YTcyYTc5NGEyZTkxMThiMWYuLjc0YTQ5NDc3NzFjNDhkODNlNGUzMGFm
MDdjM2UwZGY4NWYyZjE0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2xpc3Qtb3JkZXJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9saXN0LW9yZGVyaW5nLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IHN0cmluZyBsaXN0IG9yZGVyaW5nIGluIEluZGV4ZWREQi4iKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiB2YXIgZXhwZWN0ZWRfb3JkZXIgPSBbCiAgICIiLApAQCAtODcsNyAr
ODUsNyBAQCBmdW5jdGlvbiB0ZXN0U3RvcmVzQW5kSW5kZXhlcygpCiAKICAgICAgICAgICAgICAg
ICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKHN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVk
X29yZGVyKSIpOwogCi0gICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IGRvbmU7Cisg
ICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKICAgICAgICAg
ICAgIH07CiAgICAgICAgIH07CiAgICAgfTsKQEAgLTk2LDUgKzk0LDYgQEAgZnVuY3Rpb24gdGVz
dFN0b3Jlc0FuZEluZGV4ZXMoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS5odG1sCmluZGV4IDBkYTFmZDY2MmNiMzdkMDc1
MjE3NTYzYmFjMjUzOTUyMzU1YTgxZWUuLmQzN2ZiM2RiMGI3ZDg4ZDA3YmNjYjU5N2U2OGVjYzM4
ZDAwMWQ3MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2FkZC10d2ljZS1mYWlsdXJlLmh0bWwKQEAgLTY0LDEzICs2NCwxNCBAQCBm
dW5jdGlvbiBhZGRGaXJzdFN1Y2Nlc3MoKQogZnVuY3Rpb24gYWRkU2Vjb25kRXhwZWN0ZWRFcnJv
cigpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5lcnJvckNvZGUiLCAiSURCRGF0YWJh
c2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbAppbmRleCAyZmI5MWRhNjgy
Zjc0ODM2MTFiMjFlNDE0MWUyNTFlMTVjZjI4NjVmLi5kY2NlMjc5M2I4NzQzM2M1ZGQwYzRjNTY5
YjBlNzgwZWVhOWUxODdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLmh0bWwKQEAgLTg5
LDEzICs4OSwxNCBAQCBmdW5jdGlvbiBjaGVja1NlY29uZEluZGV4QW5kUHJlcGFyZVRoaXJkKCkK
IGZ1bmN0aW9uIGNoZWNrVGhpcmRJbmRleCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdl
dC5yZXN1bHQuaWQiLCAia2V5Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9iYWQt
a2V5cGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9iYWQt
a2V5cGF0aC5odG1sCmluZGV4IDJiYjZjZWM1NzRlMDFjMjE5N2FkYjA1MDQ4YTIyMWE2M2JmNmVh
ZDguLmE0YjZkMzMzMDQ5NDQ0OWM4NDQ3NWFjMzM0YTU1NTM0ZTQyZTRkZDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGguaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2JhZC1rZXlwYXRoLmh0
bWwKQEAgLTU1LDEzICs1NSwxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKIGZ1bmN0aW9u
IGFkZEZpcnN0U3VjY2VzcygpCiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigicmVxdWVz
dCA9IG9iamVjdFN0b3JlLmFkZCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJS
Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAog
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jbGVhci5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jbGVhci5odG1sCmluZGV4IDE4NTE2OWNmMjQw
YjMxMWVkMGFjZmY1ZThkMGE4OTgxNWY4YTRjNmEuLmM4OTdlMWU1ZDk1ODhlY2QyMGM4ZmE0MjQw
ZTJlMDViYjhhMWE4MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvY2xlYXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2NsZWFyLmh0bWwKQEAgLTY3LDEzICs2NywxNCBAQCBmdW5jdGlvbiBhcmVXZUNsZWFy
WWV0KCkKIHsKICAgICBjdXJzb3IgPSBldmFsQW5kTG9nKCJjdXJzb3IgPSByZXF1ZXN0LnJlc3Vs
dDsiKTsKICAgICBzaG91bGRCZSgiY3Vyc29yIiwgIm51bGwiKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXVuaXF1ZS5odG1sCmluZGV4IDY1YWI0
NmY2Mzk1OWUxMjdiNTkyZmRkMzk3MTVmZTYzMWM2MjgwMTAuLjdkYTgwNTAxMmNkOGRkMzQ1Mjlh
ZTUzMzI3YzBlMGM3ZmRjNjY1MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXVuaXF1ZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXVuaXF1ZS5odG1sCkBAIC02
OCwxMyArNjgsMTQgQEAgZnVuY3Rpb24gY3JlYXRlQW5kVmVyaWZ5SW5kZXgoKQogICAgIHNob3Vs
ZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24uZGIiLCAiZGIiKTsKICAgICBzaG91bGRCZSgi
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLnJlYWR5U3RhdGUiLCAiSURCVHJhbnNhY3Rpb24uTE9B
RElORyIpOwogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJ
REJUcmFuc2FjdGlvbi5WRVJTSU9OX0NIQU5HRSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5o
dG1sCmluZGV4IGI3MWJmZWE1ZDhiYTJiZDI4NmFmMzQzMTRhN2Q0ODYzMjhkMTI1MjQuLmZlODU5
MjhmM2JmODdiOWU3YTQ1NTcxOTMzNWM1ZGM0NzcwOWMwNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1r
ZXlzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVh
dGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMuaHRtbApAQCAtNjMsMTMgKzYzLDE0IEBAIGZ1bmN0
aW9uIHZlcmlmeUtleUN1cnNvcigpCiAgICAgc2hvdWxkQmVGYWxzZSgiY3Vyc29yID09IG51bGwi
KTsKICAgICBzaG91bGRCZSgiY3Vyc29yLmtleSIsICJkYXRhLm51bSIpOwogICAgIHNob3VsZEJl
KCJjdXJzb3IucHJpbWFyeUtleSIsICJkYXRhLmlkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAppbmRl
eCBjMDY0NzQ3MTI3OGY2MmU4NGJmNDFiYThjZDJhY2E5ZTQ4YzJjMjJkLi44N2E4M2QzMmQ2Mzgz
MDIwNWY2MmI3ZTQ4ZTg4Yjc4MTFjODcxZjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9y
ZS1iYXNpY3MuaHRtbApAQCAtNzMsMTMgKzczLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2Uo
KQogICAgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURC
VHJhbnNhY3Rpb24uVkVSU0lPTl9DSEFOR0UiKTsKICAgICB9CiAKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFt
ZS5odG1sCmluZGV4IDljYjFiOGNjYzdjZDNkNWVhNzE5NGRlODk5Y2IwYjFmMjUzZWIxMzQuLjEz
ZmRmNmNiYmFmYTVjZTA3ZjgyYmQxMmQxMjI4OTQ2MDIxYjRiYmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwt
bmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Jl
YXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5odG1sCkBAIC00OSwxMyArNDksMTQgQEAgZnVuY3Rp
b24gY2xlYW5EYXRhYmFzZSgpCiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwogICAgIHNob3VsZEJlKCJvYmpl
Y3RTdG9yZS5uYW1lIiwgIidudWxsJyIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5o
dG1sCmluZGV4IDBjMTQ2OTU3ZTZjMGU5MmZlMmZjY2UwZThiNzlmM2FhMjExNGEwMTkuLjkxOGM4
N2M3ODJlMTZkMTg4ZGU0ZjYyYTlkZmQ5MTVmNmQ3MTAxNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLW9iamVjdHN0b3Jl
LW9ubHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1
cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWwKQEAgLTE0OCwxMiArMTQ4LDEzIEBA
IGZ1bmN0aW9uIGNoZWNrTXV0YXRpbmdDdXJzb3JSZXN1bHRzKCkKICAgICBzaG91bGRCZSgiY291
bnQiLCAib2JqZWN0U3RvcmVEYXRhLmxlbmd0aCIpOwogICAgIHNob3VsZEJlKCJzYXdBZGRlZCIs
ICJ0cnVlIik7CiAgICAgc2hvdWxkQmUoInNhd1JlbW92ZWQiLCAidHJ1ZSIpOwotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbAppbmRleCBkNmIwOWYx
Y2UxZGM0NGI5YmI5NTljNWYyMWFkMTQ2MTA1OWVkZDQ3Li41M2MzMWM3NTY1OGFkZjhkZDZlMmM3
MmFmNmRhZDZlOWE0NmFkNTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwKQEAgLTE4OCwxMiArMTg4
LDEzIEBAIGZ1bmN0aW9uIGNoZWNrTXV0YXRpbmdDdXJzb3JSZXN1bHRzKCkKICAgICBzaG91bGRC
ZSgiY291bnQiLCAib2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAtIDEiKTsKICAgICBzaG91bGRCZSgi
c2F3QWRkZWQiLCAidHJ1ZSIpOwogICAgIHNob3VsZEJlKCJzYXdSZW1vdmVkIiwgImZhbHNlIik7
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLXVwZGF0ZS11cGRhdGVzLWluZGV4
ZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLXVw
ZGF0ZS11cGRhdGVzLWluZGV4ZXMuaHRtbAppbmRleCBlYjBjMGJmMWE0ZmQzNTY5ZDEyMWYzNTY4
ZDVhODhkMGE4ZDEyYWE2Li41MWFlNzMzNzJhMmMwYTRjOGM1YmI3NGNmYjVhMTk1OGZkZmRjYjA3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNv
ci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVwZGF0ZXMtaW5kZXhlcy5odG1sCkBAIC02
Myw3ICs2Myw3IEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogICAgICAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRleEFuZEFkZDsKICAgICAgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKQEAgLTEy
OCw2ICsxMjgsNyBAQCBmdW5jdGlvbiBjaGVja0luZGV4MigpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwKaW5kZXggYmRmZDUyYWM3NWFhNWNk
YjY5M2I2ZTFjODNkMzg3MGRjZWY2YzZhYS4uMjI5ODhiYzE5MWViZmVkOTc4YzY2ZGNkNjUyN2I2
ZDBlODg3M2I3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9jdXJzb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9jdXJzb3JzLmh0bWwKQEAgLTM5NSw3ICszOTUsNyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAx
NSgpCiAgICAgICB9CiAgICAgICBlbHNlIHsKICAgICAgICAgc2hvdWxkQmUoImtleUluZGV4Iiwg
Ii0xIik7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICB9
CiAgICAgfQogfQpAQCAtNDA0LDYgKzQwNCw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDE1KCkKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2RlbGV0ZS1yZXN1
bHQuaHRtbAppbmRleCAyYTVmNGVhZmYwMDI2N2ZhOGMzZWNjMDUwZDUyOWMzMjMyMTE2NjQzLi5k
NWM5ZGE5MDRiOTc2MWNlNzk5NzQ1MjMzNTZjYWQ1ZDViOTlhMDE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRt
bApAQCAtNjcsMTEgKzY3LDEyIEBAIGZ1bmN0aW9uIGRlbGV0ZVJlY29yZDIoKQogZnVuY3Rpb24g
ZmluYWxDaGVjaygpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5k
ZWZpbmVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2ZW50LXNvdXJjZS5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1zb3VyY2UuaHRtbApp
bmRleCBkOTZhMGI5NzE1MDNlMDkyZjY0ZDM5ODc2YzE4Y2ViYTM0YTVmNjVkLi43MTI0MDc5Mzdl
NWUxOTU1MWQ2ZGM4ODU1ZjY5YmNmZDJjOWNmMjUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2ZW50LXNvdXJjZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZXZlbnQtc291cmNlLmh0bWwKQEAgLTYwLDEz
ICs2MCwxNCBAQCBmdW5jdGlvbiBhcmVXZURvbmVZZXQoKQogewogICAgIHNvdXJjZSA9IGV2YWxB
bmRMb2coInNvdXJjZSA9IGV2ZW50LnRhcmdldC5zb3VyY2U7Iik7CiAgICAgc2hvdWxkQmUoInNv
dXJjZSIsICJvYmplY3RTdG9yZSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZ2xv
YmFsLWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZ2xv
YmFsLWRhdGEuaHRtbAppbmRleCBhZWYzNjg2MWE2NzVkZWQxMjBjN2VlODhiZTgzZGZjYWNkNDUy
ZjhlLi4wY2E2ZjJjMGFmMTllYjY5MWNiYzRkOTQ4YTQ5OGRmMzg4YzgxOWUwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2dsb2JhbC1kYXRhLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9nbG9iYWwtZGF0YS5o
dG1sCkBAIC03NCwxMyArNzQsMTQgQEAgZnVuY3Rpb24gb3BlbjJTdWNjZXNzKCkKICAgICBzaG91
bGRCZSgib2JqZWN0U3RvcmUyLm5hbWUiLCAib2JqZWN0U3RvcmVOYW1lIik7CiAgICAgc2hvdWxk
QmUoIm9iamVjdFN0b3JlMi5rZXlQYXRoIiwgIm9iamVjdFN0b3JlT3B0aW9ucy5rZXlQYXRoIik7
CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhlcy5odG1sCmluZGV4IDUwMjEzYjM0
MTU1ODUxMjU3NzdiZGE4NzU4OTUwM2FhMjMxNmQ1NjEuLjY5NzIyZTM3MDI0ZmM2N2MyNmRmYWNh
M2I4OWRlZGMyZWQxNmM1ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvaW5kZXhlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvaW5kZXhlcy5odG1sCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCBmdW5jdGlvbiB0
ZXN0R3JvdXAzMCgpCiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBzaG91
bGRCZSgia2V5SW5kZXgiLCAib2JqZWN0U3RvcmVEYXRhTmFtZVNvcnQubGVuZ3RoIik7Ci0gICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQog
ICAgIH0KIH0KQEAgLTEwMjQsNiArMTAyNCw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDMwKCkKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1l
bnRzLWRlbGV0ZS1udWxsLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5odG1sCmluZGV4IDA0NDIw
OGUxYzY4MzMzMWFlMDM1MDNjN2EwMWRhZmQyNDMzODFjYzQuLmZhZTBmNmJlNGYzY2I3MDRkYjFm
YjVmZTY5MDk1YTcyZjE0ZDlmZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
ZGVsZXRlLW51bGwta2V5Lmh0bWwKQEAgLTQ1LDEzICs0NSwxNCBAQCBmdW5jdGlvbiBjbGVhbkRh
dGFiYXNlQW5kQ3JlYXRlT2JqZWN0U3RvcmUoKQogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdiYXInKTsiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJvYmpl
Y3RTdG9yZS5kZWxldGUobnVsbCk7IiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFf
RVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsK
IAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWlu
bGluZS1hbmQtcGFzc2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQuaHRtbAppbmRleCBmYmE4MjRm
YzFlNmU1MGJlMzUxMjI4Nzg3ZTFiZGExYTRhMzYwYjYyLi5iZmQ5NDcxMWYyZTgyYTVjZjEwZjI0
Y2E4MjVmN2VhOTU4ZjhlNjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
aW5saW5lLWFuZC1wYXNzZWQuaHRtbApAQCAtNDcsMTIgKzQ3LDEzIEBAIGZ1bmN0aW9uIGNsZWFu
RGF0YWJhc2UoKQogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2JqZWN0U3Rv
cmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXon
LCB7IGtleVBhdGg6ICdpZCcgfSk7Iik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigib2Jq
ZWN0U3RvcmUuYWRkKHtpZDogNX0sIDUpOyIsICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5E
QVRBX0VSUiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
cHV0LW5vLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9r
ZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXkuaHRtbAppbmRleCA1MjVhMzY4MmYyMDE4YThkYzVl
N2MyNTU5MWE0NDc3YWQ3Mjc1YzM1Li42YzkwNzhjZjc5ZmE1OTY0YTYyYTBiZDM2MzhlZjVlNGFl
MGRjMTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2tleS1yZXF1aXJlbWVudHMtcHV0LW5vLWtleS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWwKQEAg
LTQ3LDEzICs0NywxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFyJyk7Iik7CiAgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigib2JqZWN0U3RvcmUucHV0KHt9KTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFU
QV9FUlIiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgp
OwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
cHV0LW51bGwta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2tleS1yZXF1aXJlbWVudHMtcHV0LW51bGwta2V5Lmh0bWwKaW5kZXggN2JmYjYxZjFiMGIwZTYy
ZDUxNzYyMWZjYTQ4ZWY3OTIwMTNmNWQyNi4uM2VlMGI0Yjc1Mjg5ZmVkYjQwNWI2YjFkYTlhZTZi
MmY4ODRkZWEzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbnVsbC1rZXku
aHRtbApAQCAtNDcsMTMgKzQ3LDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogICAgIGRl
bGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJv
YmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsiKTsKICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5wdXQoe30sIG51bGwpOyIsICJJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5EQVRBX0VSUiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5
LXJlcXVpcmVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLmh0bWwKaW5kZXggY2E1MzRmZDhkZGZkMDgzNmM3MzM1NzBlNThh
MTA2ZTljYWJlNzQ5Zi4uOGZjYWNkZDAwOWYwZmQ4NGRiOWMxMTY3ZmIxNDE4MTgyMzVmODkyOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVx
dWlyZW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLmh0bWwKQEAgLTc4LDEzICs3OCwxNCBAQCBmdW5jdGlvbiBwb3N0
UHV0MigpCiBmdW5jdGlvbiBwb3N0UHV0MygpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdl
dC5yZXN1bHQiLCAia2V5MiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0
LWN1cnNvcnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2Jq
ZWN0LWN1cnNvcnMuaHRtbAppbmRleCBlN2RjNWE3YjI1MDBlNjFhYTg3NzQzN2E4ZTQ4NzFjZmUx
ZTZlNzNkLi44ODBiZjg4MDAzMjAyYmFiMzMxZjU5ODk1NTdhYzI3Y2UzYjVhYjEzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3Jz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qt
Y3Vyc29ycy5odG1sCkBAIC03MCw3ICs3MCw3IEBAIGZ1bmN0aW9uIHBvc3RBZGQoKQogICAgICAg
ICAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQudmFsdWUubmFtZSIsICInQmVuJyIp
OwogICAgICAgICAgICAgaWYgKCsraW5kZXhlc0ZpbmlzaGVkID09IG51bUluZGV4ZXMpIHsKICAg
ICAgICAgICAgICAgICBpZiAoYXV0b0luY3JlbWVudCkgewotICAgICAgICAgICAgICAgICAgICBk
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHNldHVwQXV0b0luY3JlbWVudCgpOwog
ICAgICAgICAgICAgICAgIH0KQEAgLTk2LDYgKzk2LDcgQEAgZnVuY3Rpb24gc2V0dXBBdXRvSW5j
cmVtZW50KCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
YmplY3QtaWRlbnRpdHkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvb2JqZWN0LWlkZW50aXR5Lmh0bWwKaW5kZXggNGRlOWRhZjhiN2Y2NDA3OTgzMGQ3NGE2MTUz
NWYxYWM3MTJiODcwNi4uY2UxMGFkZDA5YTMwOTdhYTRhMjBlYzJiMjNiZmM5MTg0YjcyNjg1YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qt
aWRlbnRpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L29iamVjdC1pZGVudGl0eS5odG1sCkBAIC02OSwxMiArNjksMTMgQEAgZnVuY3Rpb24gdGVzdElk
ZW50aXR5U29tZU1vcmUoKQogICAgIHNob3VsZEJlRmFsc2UoImluZGV4MyA9PT0gaW5kZXgxIik7
CiAgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXg0ID09PSBpbmRleDIiKTsKIAotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRk
ZWQtb24tcHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29i
amVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0Lmh0bWwKaW5k
ZXggNGIwOTJkNzVjZmJjYzUxZTE0OThmYThkMGY4MTVjNzU1MDgzNmMwNi4uZTZjZjY5NmIzYzUx
NjNhYWUzMjIyYjZjYzVmMDcwYzgwOGY3MTg3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1dG9pbmNyZW1lbnQt
a2V5LWFkZGVkLW9uLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1w
dXQuaHRtbApAQCAtNjksMTMgKzY5LDE0IEBAIGZ1bmN0aW9uIGdldFN1Y2Nlc3MoKQogewogICAg
IHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0Lm5hbWUiLCAidGVzdC5zdG9yZWRPYmplY3Qu
bmFtZSIpOwogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LmlkIiwgImlkIik7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUt
cmVtb3ZlLXZhbHVlcy5odG1sCmluZGV4IDgwZjMyNzgwNGU4MWRkNWQ3NmVhMjI3NzRhYTQ0NzRi
NmYzZWM5YTMuLmNjMmU2OTYwMzI4M2ZiNmE4MDE5MjcxMjlhNTI0MzUzNDE3YzEyNmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3Jl
LXJlbW92ZS12YWx1ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWwKQEAgLTc0LDcgKzc0LDcgQEAg
ZnVuY3Rpb24gc2V0VmVyc2lvbigpCiAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRl
T2JqZWN0U3RvcmU7CiAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CiAgICAgfQogfQogCkBAIC0xMzEsNiArMTMxLDcgQEAgZnVuY3Rpb24gZmluYWxDaGVj
aygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0
c3RvcmVuYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
YmplY3RzdG9yZW5hbWVzLmh0bWwKaW5kZXggYmI5NDMxNzQxMGFlNmIyNjNjMzYzMGM5MTlkOTQx
NjExNTEwNjE1YS4uODVjMWU1OTBlN2Q5ZjM2MDRkMWIzMWUwZjNkOGRhYWQzNWE3ZDg0NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9y
ZW5hbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
YmplY3RzdG9yZW5hbWVzLmh0bWwKQEAgLTUwLDEzICs1MCwxNCBAQCBmdW5jdGlvbiBjbGVhbkRh
dGFiYXNlKCkKICAgICBzaG91bGRCZVRydWUoIidvYmplY3RTdG9yZU5hbWVzJyBpbiBkYiIpOwog
ICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIxIik7CiAgICAgc2hv
dWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMuaXRlbSgwKSIsICJvYmplY3RTdG9yZU5hbWUiKTsK
LSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1s
CmluZGV4IGVmNTNmZTM1MDIxYTMzMWM1M2VhZWYwYTc2ODc2ZTA1NTA1YWFiYWUuLmE0ZDQ3YzMy
OTdjYTkwOTJkMWQ1ZTNmN2UxNjRiMjZjNmZmMzE1ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1s
CkBAIC0xMjYsMTIgKzEyNiwxMyBAQCBmdW5jdGlvbiBkZWxldGVSZWNvcmQoKQogZnVuY3Rpb24g
ZGVsZXRlU3VjY2VzcygpCiB7CiAgICAgZGVidWcoImRlbGV0ZVN1Y2Nlc3MoKToiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51bGwtbmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51bGwtbmFt
ZS5odG1sCmluZGV4IGQ3MWFmZmIwYzQ4ZGY1MmM0YjMwNzVmY2RhYWY5ZDFhMTllN2QyNTMuLjE5
MmJmOWZmZDg4OTI5MTc5NmIzMDQwOWFhZTU2MDE1MDE1MjUxOWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb3Blbi1kYXRhYmFzZS1udWxsLW5hbWUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29wZW4tZGF0
YWJhc2UtbnVsbC1uYW1lLmh0bWwKQEAgLTM4LDEzICszOCwxNCBAQCBmdW5jdGlvbiBvcGVuU3Vj
Y2VzcygpCiB7CiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKICAgICBzaG91bGRCZSgiZGIubmFtZSIsICInbnVsbCciKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwKaW5kZXggYTY3ODFhM2IxZWM5ZjY2
Y2U2MTI2ODdmYjkxMmRhOTg2N2Y0Njc2Yi4uYzM4MWM5NDZlNjc1MDE3M2E0NDM2M2M5NGI0NmI0
ZTQ2ZWU3ZmE3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9wdXQtZ2V0LXZhbHVlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcHV0LWdldC12YWx1ZXMuaHRtbApAQCAtMTExLDEzICsxMTEsMTQgQEAgZnVu
Y3Rpb24gcG9zdEFkZEludEF1dG9JbmNyZW1lbnQoKQogZnVuY3Rpb24gcG9zdEdldEludEF1dG9J
bmNyZW1lbnQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInRlc3RJ
bnQudmFsdWUiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVz
dCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5z
YWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFk
b25seS10cmFuc2FjdGlvbnMuaHRtbAppbmRleCAwNjJiNzI4YTc5YTg3N2FkMjA3NzE3NzQ0NGJj
YzY3NGY1NTI0NjM2Li4xZGI3Yjg1MTkxMDQ1NDBjM2E2MWM5NTg3MjJlZTE1NTU2NTI2ZDM3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5
LXRyYW5zYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLmh0bWwKQEAgLTU4LDEzICs1OCwxNCBAQCBmdW5j
dGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFu
c2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsiLCAiSURC
RGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLmRlbGV0
ZShrZXkxKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOwogICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKG9zTmFtZSkub2JqZWN0U3RvcmUo
b3NOYW1lKS5kZWxldGUoa2V5Mik7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9F
UlIiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlv
bnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHdyaXRl
LXRyYW5zYWN0aW9ucy5odG1sCmluZGV4IGVjYjEzNmQ1YjlhN2JkNTE3NjU2YzE5YzBiYmE0NTlm
ZjJmZWFhMTMuLmQyM2UzNTliM2JhZGRhNjMyZjlhNjZiY2JmMTZiOTRmNDk5ZDFmZjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHdyaXRlLXRy
YW5zYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sCkBAIC0xMTYsMTMgKzExNiwxNCBAQCBmdW5j
dGlvbiBwb3N0RGVsZXRlKCkKIGZ1bmN0aW9uIHBvc3REZWxldGUyKCkKIHsKICAgICBzaG91bGRC
ZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHlTdGF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkeVN0YXRlLmh0bWwKaW5k
ZXggMThjOTZlMDhlYzUwZDM1OWRkZWExMmViNjA3NjIzYWQ1NmVkYzI2Ni4uNzJiMDUxN2Y1ZjQx
OTZjZDcyZWRmMDI2MWJiZDA1MTBlMTJiNzRkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkeVN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkeVN0YXRlLmh0bWwKQEAgLTc5LDEzICs3OSwx
NCBAQCBmdW5jdGlvbiBmaW5hbENoZWNrKCkKICAgICBkZWJ1ZygiZmluYWxDaGVjaygpOiIpOwog
ICAgIHNob3VsZEJlKCJyZXF1ZXN0LnJlYWR5U3RhdGUiLCAiSURCUmVxdWVzdC5ET05FIik7CiAg
ICAgc2hvdWxkQmVGYWxzZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCA9PSBudWxsIik7Ci0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWwKaW5kZXggOGY5YmU1ZjA0
ZTM4NGY4Yjg4MGE2NjU3MGU0NDdjYmEyNGRlYjc1MS4uMWQyODBhNmM2ZDA2YmJjOGVlYThiMzYz
ZTMzODhiMDYyZDYyZDE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZW1vdmUtaW5kZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1pbmRleC5odG1sCkBAIC01OCwxMyArNTgsMTQgQEAgZnVu
Y3Rpb24gY3JlYXRlQW5kRGVsZXRlSW5kZXgoKQogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3Jl
LmRlbGV0ZUluZGV4KGluZGV4TmFtZSk7Iik7CiAgICAgc2hvdWxkQmUoIm9iamVjdFN0b3JlLmlu
ZGV4TmFtZXMubGVuZ3RoIiwgIjAiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVtb3ZlLW9iamVjdHN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3JlbW92ZS1vYmplY3RzdG9yZS5odG1sCmluZGV4IDVhZDM0N2YxZmE4M2JmZDQ0ZDhj
NDVlNWM5ZGI1ZTAzNzIwODZiY2YuLjdiMjdlYzk2ZDNhMGI1ZjBhMmZlYTAwMTQxNjlhYzA5YzQw
ZTMxZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVtb3ZlLW9iamVjdHN0b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbApAQCAtMTE0LDEzICsxMTQsMTQgQEAg
ZnVuY3Rpb24gcG9zdFNldFZlcnNpb24zKCkKIGZ1bmN0aW9uIGRlbGV0ZVRoaXJkT2JqZWN0U3Rv
cmUoKQogewogICAgIGV2YWxBbmRMb2coImRiLmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3Jl
TmFtZSk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLWFi
b3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25j
aGFuZ2UtYWJvcnQuaHRtbAppbmRleCBhNTllY2ViZWI0MWY5Y2Q3ZGRlZGVmMDhkZmIxY2QxNWY5
NmZlOWY3Li43MzY3YmNjYmQxNTliODc0NWIyNWRlMWExYzIxYzI2NzQyZGEyMjRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2Ut
YWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Zl
cnNpb25jaGFuZ2UtYWJvcnQuaHRtbApAQCAtNjEsMTIgKzYxLDEzIEBAIGZ1bmN0aW9uIHBvc3RB
Ym9ydCgpCiAgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiaW5pdGlhbFZlcnNpb24iKTsKICAg
ICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIpOwogCi0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwKaW5kZXggZjRlOGQwMGEy
ZjI4YTU0M2ViYzBkNWI1MzdhNDVjYTA5YWZlOTQ1My4uMjhlZDU3ZTlhZTMxMTUwMDk0NDM0ZDdi
ZmE1ODFhMzMwNjQyZWU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwKQEAgLTEwNiwxMyArMTA2LDE0IEBA
IGZ1bmN0aW9uIHBvc3RTZXRWZXJzaW9uMigpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbi5tb2RlIiwgIklEQlRyYW5zYWN0aW9uLlZFUlNJT05fQ0hBTkdFIik7CiAgICAg
c2hvdWxkQmUoImRiMy52ZXJzaW9uIiwgIicyJyIpOwogICAgIHNob3VsZEJlKCJ2ZXJzaW9uQ2hh
bmdlRXZlbnRDb3VudCIsICIzIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vy
c29yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3Iu
aHRtbAppbmRleCA0NzM0MTI3ODRkOWU2N2Q4MjA2YmU1YjI1YWEyNzAzMWE5NmI3OGNhLi4zNGYy
ODI5NzczZGY4YWVmZDM4M2E3YzJiMTVmOTI4YmVkZjQ0ZGM5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3IuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IG11dGF0aW5nIGFuIEluZGV4ZWREQidz
IG9iamVjdHN0b3JlIGZyb20gYSBjdXJzb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVz
dCgpOwogCkBAIC0xMzQsMTAgKzEzMiwxMSBAQCBmdW5jdGlvbiByZXZlcnNlQ3Vyc29yKCkKIGZ1
bmN0aW9uIHJldmVyc2VDdXJzb3JDb21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInJldmVyc2VDdXJz
b3JDb21wbGV0ZSgpIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3JlLXJlcXVpcmVkLWFy
Z3VtZW50cy5odG1sCmluZGV4IDU0ZmNmNGE5MzMzYTU4MWViOGZkMjIzOTc0MzE0NDllNjc4NGFl
NGYuLjFmMWNhNjExMWE5NTY4ODY5NGI3YWM3YTJkYjg5NDI3ZjE2NDU3MmUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3JlLXJlcXVpcmVkLWFyZ3Vt
ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3Jl
LXJlcXVpcmVkLWFyZ3VtZW50cy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgb2JqZWN0IHN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50
cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNTMsMTIg
KzUxLDEzIEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQogICAgIHNo
b3VsZFRocm93KCJvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgnZm9vJyk7Iik7CiAgICAgc2hvdWxk
VGhyb3coIm9iamVjdFN0b3JlLmluZGV4KCk7Iik7CiAgICAgc2hvdWxkVGhyb3coIm9iamVjdFN0
b3JlLmRlbGV0ZUluZGV4KCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWF1dG9p
bmNyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LWF1dG9pbmNyZW1lbnQuaHRtbAppbmRleCA3MThlMGU2NDgyZDVhNmQzOThmN2M4ZDFiMzI4ZTk2
ODFhOWY2ZmZhLi5iMTAyOWM0MTY5MGU1YzAyMGMzMTdhZmQzM2U2MzRjNzE0MGZjNDRmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5j
cmVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtYXV0b2luY3JlbWVudC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUgYXV0by1pbmNyZW1lbnQgZmVh
dHVyZS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTE2
Myw3ICsxNjEsNyBAQCBmdW5jdGlvbiB0ZXN0TG9uZ0tleVBhdGgoKQogICAgIGRlYnVnKCJ0ZXN0
TG9uZ0tleVBhdGgoKToiKTsKICAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJh
bnNhY3Rpb24oJ1N0b3JlV2l0aExvbmdLZXlQYXRoJywgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkiKTsKICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7
Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IGRvbmU7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IGZp
bmlzaEpTVGVzdDsKIAogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmpl
Y3RTdG9yZSgnU3RvcmVXaXRoTG9uZ0tleVBhdGgnKSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJzdG9yZS5hZGQoe2ZvbzogJ2Jhcid9KSIpOwpAQCAtMjAxLDUgKzE5OSw2IEBAIHRlc3Qo
KTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLmh0bWwKaW5kZXgg
OWY1NWU3MTc2NzJmODViOGU3MjM5ZjdjMTExN2U3ZmFlZTdmZDU1Ni4uMjk5NTg5ZmI0MDlkNDM4
YjY0YjE3NjIxMWI1YzJmYjFlYmJmYWFmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci5odG1sCkBAIC05LDggKzksNiBAQAogPHNj
cmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgd2Via2l0SURCT2JqZWN0U3Rv
cmUuY2xlYXIoKS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
QEAgLTk4LDExICs5NiwxMiBAQCBmdW5jdGlvbiBnZXRTdWNjZXNzKCkKIHsKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidmFsdWUiKTsKIAotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL29iamVjdHN0b3JlLWNvdW50Lmh0bWwKaW5kZXggZjE0NGVmZTBhY2E1OGVlMDIxMTdi
MGMwM2U3ZWU4MWI2YTkwN2E1NS4uMmI0M2M4YmEwNjQ0YjgzOWFlYmQyZjdkOWVkNjk5MzA5Yzg3
Yjk0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtY291bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1jb3VudC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUuY291bnQoKS4iKTsKLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTExOCw3ICsxMTYsNyBAQCBmdW5jdGlv
biB2ZXJpZnlDb3VudFdpdGhLZXkoKQogICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9PTkxZKSIpOwog
ICAgIHNob3VsZEJlVHJ1ZSgidHJhbnMgIT0gbnVsbCIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1
bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gZG9uZTsKKyAg
ICB0cmFucy5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogCiAgICAgc3RvcmUgPSBldmFsQW5k
TG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAgIHNob3Vs
ZEJlVHJ1ZSgic3RvcmUgIT0gbnVsbCIpOwpAQCAtMTU0LDUgKzE1Miw2IEBAIGZ1bmN0aW9uIHZl
cmlmeUNvdW50V2l0aEtleSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWN1cnNvci5odG1sCmluZGV4IDdhYjI2ZGI4YTY3MWI3YzkyY2RlM2M0YzZlNjZmMTA0
YjE2ZmExM2IuLmIyYjEwNDk5MDJkZmQ4NGEwMWQ3MzBlMjNhYzljY2E3ZTVhNDg2M2UgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNv
ci5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4gCiAKIGRlc2NyaXB0aW9uKCJUZXN0IElu
ZGV4ZWREQidzIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IgKyB0aGUgY3Vyc29yIGl0IHByb2R1Y2Vz
IGluIGRlcHRoLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgCiAvLyBJbiBvcmRlciBvZiBob3cg
aXQgc2hvdWxkIGJlIHNvcnRlZCBieSBJbmRleGVkREIuCiB3aW5kb3cudGVzdERhdGEgPSBbCkBA
IC0yMTcsNyArMjE1LDcgQEAgZnVuY3Rpb24gdGVzdE51bGxLZXlSYW5nZSgpCiAgICAgICAgIHdp
bmRvdy5leHBlY3RlZEluZGV4ID0gdXBwZXI7CiAgICAgICAgIHdpbmRvdy5udWxsS2V5UmFuZ2VT
dGVwID0gMjsKICAgICB9IGVsc2UgewotICAgICAgICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMzIsNSArMjMwLDYgQEAgZnVu
Y3Rpb24gdGVzdE51bGxLZXlSYW5nZSgpCiBvcGVuRGF0YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0
ZXAuCiAgCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3Rv
cmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92
ZW9iamVjdHN0b3JlLmh0bWwKaW5kZXggYTZkNjkyZWNiMDdmZWRjOTU2YTczYTI1OWU4NzEyNTVk
NTZmMGZkZS4uNGFhMzdiZGE1YjRhZDkzNDdjMWNmOTA0MWNlNDYzYTQ1OTc2OTgzZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2Jq
ZWN0c3RvcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAog
ZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgd2Via2l0SURCT2JqZWN0U3RvcmUuZGVsZXRl
T2JqZWN0U3RvcmUoKS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgp
CiB7CkBAIC05NywxMSArOTUsMTIgQEAgZnVuY3Rpb24gdmVyaWZ5Tm90Rm91bmQoKQogICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwogICAgIHNob3VsZEJl
RmFsc2UoImV2ZW50LnRhcmdldC5zb3VyY2UuaW5kZXhOYW1lcy5jb250YWlucygnaW5kZXhOYW1l
JykiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2RkLXN0cmluZ3MuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwKaW5kZXggM2M4YmFkZjAxMWYwMTMwY2Vj
NzM5MWU2NWY1OWRmNjYzM2Q5YTZiOS4uZjMyMmU1NWJjNjlkMTJjM2ZiYTJkOTc0ZGM1YzYxMDA0
OTRlN2EzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2RkLXN0
cmluZ3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5n
cy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIgb2RkIHZhbHVlIGRhdGF0eXBlcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtMTA5LDcgKzEwNyw3IEBAIGZ1bmN0aW9uIG9wZW5DdXJzb3JT
dWNjZXNzKCkKICAgICAgICAgZGVidWcoIiIpOwogICAgICAgICB2ZXJpZnlOZXh0RGF0YWJhc2Uo
KTsKICAgICB9IGVsc2UgewotICAgICAgICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogICAgIH0KIH0KIApAQCAtMTE3LDUgKzExNSw2IEBAIGZ1bmN0aW9uIG9wZW5DdXJzb3JTdWNj
ZXNzKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xvc2UtdmVyc2lv
bi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jbG9zZS12ZXJzaW9u
Lmh0bWwKaW5kZXggZTI0YmFlMjI0ZTcwZjI2NWFiMmQ3ZTE2ZWQwMGZmNWVhMGJlMmUwOC4uMjJi
N2UwZjYwNzc3Nzc3ODM4MWY4OTI2MTdkMzlkNTMyYjNjYmE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jbG9zZS12ZXJzaW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jbG9zZS12ZXJzaW9uLmh0bWwKQEAgLTI4
NSwxMiArMjg1LDEzIEBAIGZ1bmN0aW9uIHRlc3Q2KCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImgxLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUiCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXS50b1N0cmluZygpKTsKLSAgICAgICAgZG9uZSgpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWN1cnNvci5odG1sCmluZGV4IDA1NzI4ZDhlYjBjYjA0MDM1NWVjNmVjYmJiNTkx
ZDE3YzI3NzEzYjguLjZkYmVjMTZjMTNmMmRlMGQ0ZmU1OTliNTRiYTBmNjNiOGVmZjRjYzggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbApAQCAt
OSwxNCArOSwxMiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mg
b3BlbkN1cnNvci4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiBlbXB0eUN1cnNv
clN1Y2Nlc3MoKQogewogICAgIGRlYnVnKCJFbXB0eSBjdXJzb3Igb3BlbmVkIHN1Y2Nlc3NmdWxs
eS4iKQogICAgIC8vIEZJWE1FOiBjaGVjayB0aGF0IHdlIGNhbiBpdGVyYXRlIHRoZSBjdXJzb3Iu
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiBvcGVuRW1w
dHlDdXJzb3IoKQpAQCAtOTEsNSArODksNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sCmluZGV4IDViZTcwMGY4NWU5
NWRmMTcxN2UyZjRiMjE2NmE5MmU1NzMwZDlkZjkuLjU2YmQxNTcyMzQzY2E4MTk4MWYxYTBjODhj
MTY3MmI3NDNhYmFiN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRtbApAQCAtMTAsOCArMTAsNiBAQAog
PHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIG9wZW5pbmcgZGF0YWJhc2Ug
Y29ubmVjdGlvbnMgZHVyaW5nIHRyYW5zYWN0aW9ucyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNTQsNyArNTIsNyBAQCBmdW5jdGlvbiBzdGFydFRyYW5z
YWN0aW9uKCkKICAgICB0cmFucy5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAg
ZGVidWcoInRyYW5zYWN0aW9uIGNvbXBsZXRlIik7CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygic3RhdGUiLCAib3BlbjNjb21wbGV0ZSIpOwotICAgICAgICBkb25lKCk7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiAKICAgICBkZWJ1ZygiIik7CkBAIC05MCw1ICs4OCw2
IEBAIGZ1bmN0aW9uIHRyeU9wZW5zKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3F1ZXVlZC1jb21tYW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVl
dWVkLWNvbW1hbmRzLmh0bWwKaW5kZXggYTAyY2VhYjI0ZDE2NjI4ZWFkOGFmYzc4YjhiYTQ1MWJi
ODA4YjdhNC4uZWJlZWFjMjAwZWU1NjM5OWZlYzdmMWM1OWQyMzUxZDI0NDUzMmI0YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwK
QEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgcXVl
dWluZyB1cCBzZXZlcmFsIGNvbW1hbmRzIHdvcmtzIChhbmQgdGhleSBhbGwgZmlyZSkuIik7Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNjAsNyArNTgsNyBA
QCBmdW5jdGlvbiB2ZXJpZnlBZGQoZXhwZWN0ZWQpCiAgICAgc2hvdWxkQmUoIiIgKyBhZGRDb3Vu
dCsrLCAiIiArIGV4cGVjdGVkKTsKIAogICAgIGlmIChhZGRDb3VudCA9PSAzKQotICAgICAgICBk
b25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIGlmIChhZGRDb3VudCA+IDMpCiAg
ICAgICAgIHRlc3RGYWlsZWQoIlVuZXhwZWN0ZWQgY2FsbCB0byB2ZXJpZnlBZGQhIik7CiB9CkBA
IC02OSw1ICs2Nyw2IEBAIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9u
bHktcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9u
bHktcHJvcGVydGllcy5odG1sCmluZGV4IGNkY2NiZDY0MmEzMTk4MDhkYjIyODk0NDY0NWQzZDk3
NzFjZmZlZmMuLmJlMjU5MGIyNmM4NzAzYzk1NGY0ZTMxYTMwZTI1YzdmODEyYTczZTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcm9wZXJ0
aWVzLmh0bWwKQEAgLTksOCArOSw2IEBACiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3Jp
cHQ+CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgcmVhZG9ubHkgcHJvcGVydGllcyIpOwot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHNldFJlYWRvbmx5UHJvcGVydHkocHJvcGVy
dHksIHZhbHVlKQogewpAQCAtNTcsMTIgKzU1LDEzIEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVs
YXRlT2JqZWN0U3RvcmUoKQogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2Jq
ZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdmb28nKTsiKTsKICAgICBzZXRSZWFkb25seVByb3BlcnR5KCJvYmplY3RTdG9yZS50cmFuc2Fj
dGlvbiIsICJ0aGlzIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS5odG1sCmluZGV4IDFjMzY2NzJkYmM5MzAz
YjRjN2NhYTdiOTM0ODdmZjM4MWI3NjNhNTkuLjJkMWIzYWVhMjc0YTAxZTk1MjI4Mjg5ZjM1N2U1
NmY1OTA1ODZlNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
YWRvbmx5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHku
aHRtbApAQCAtOSw4ICs5LDYgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4K
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiByZWFkb25seSBwcm9wZXJ0aWVzIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gc2V0UmVhZG9ubHlQcm9wZXJ0eShwcm9wZXJ0eSwg
dmFsdWUpCiB7CkBAIC0xMTQsMTIgKzExMiwxMyBAQCBmdW5jdGlvbiBjaGVja0N1cnNvcigpCiAg
ICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgia2V5UmFuZ2UubG93ZXJPcGVuIiwgInRydWUiKTsKICAg
ICBzZXRSZWFkb25seVByb3BlcnR5KCJrZXlSYW5nZS51cHBlck9wZW4iLCAidHJ1ZSIpOwogCi0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbAppbmRl
eCBlNzczNTZjOGY4ZmEzOTU2NTg2YWNlZDUyYjQ4ZDg1YzIzMzllMjJiLi4xMTNmYzhjODIzMWQ3
N2I5OTk5Y2QzNjU0NDNkZGU2ZjFkZWEwZmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sCkBA
IC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgZXZlbnQgcHJvcG9n
YXRpb24gb24gSURCUmVxdWVzdC4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24g
dGVzdCgpCiB7CkBAIC0yNjYsNyArMjY0LDcgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21wbGV0
ZSgpCiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOwogICAgIGRlYnVnKCIiKTsK
IAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICByZXR1cm47CiB9CiAKQEAg
LTI3NCw1ICsyNzIsNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9zaGFyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
c2hhcmVkLmpzCmluZGV4IGNkMWJhYWNjNmRlOWM0YWQ2MGI4ZmE2NGJkNTZkYmQxNWQxYjNlNTgu
LjUyYzNmNTMxYjMwZTIwN2Q2YWFkNWQ1MmNjZjkxZjRjMTUyNGFmMDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwpAQCAtMjQsNDEg
KzI0LDM0IEBAIGlmIChzZWxmLmltcG9ydFNjcmlwdHMgJiYgIXNlbGYucG9zdE1lc3NhZ2UpIHsK
ICAgICB9OwogfQogCi1mdW5jdGlvbiBkb25lKCkKLXsKLSAgICBpc1N1Y2Nlc3NmdWxseVBhcnNl
ZCgpOwotICAgIGlmIChzZWxmLmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKLX0KLQogZnVuY3Rpb24gdW5leHBlY3RlZFN1Y2Nl
c3NDYWxsYmFjaygpCiB7CiAgICAgdGVzdEZhaWxlZCgiU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQg
dW5leHBlY3RlZGx5LiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAog
ZnVuY3Rpb24gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2soZXZlbnQpCiB7CiAgICAgdGVzdEZhaWxl
ZCgiRXJyb3IgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseTogKCIgKyBldmVudC50YXJnZXQu
ZXJyb3JDb2RlICsgIikgIiArIGV2ZW50LnRhcmdldC53ZWJraXRFcnJvck1lc3NhZ2UpOwotICAg
IGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogZnVuY3Rpb24gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2soKQogewogICAgIHRlc3RGYWlsZWQoIkFib3J0IGZ1bmN0aW9uIGNhbGxlZCB1
bmV4cGVjdGVkbHkhIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBm
dW5jdGlvbiB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaygpCiB7CiAgICAgdGVzdEZhaWxlZCgi
b25jb21wbGV0ZSBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5ISIpOwotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogZnVuY3Rpb24gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjaygpCiB7CiAgICAgdGVzdEZhaWxlZCgib25ibG9ja2VkIGNhbGxlZCB1bmV4cGVjdGVkbHki
KTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oY21kLCBleHBlY3RlZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi1udWxsLmh0bWwKaW5kZXggMGNkMDYyNDc0MmJhOTRj
NDhhZjVmZjg4ZDk4Mjg2ODFiMDg5NjQ3ZS4uZGVhZmJlYTY4ODc2OTBkODVhNTk0Y2M3MmQwMWMx
OWRjNzQzZWIzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0
VmVyc2lvbi1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0
VmVyc2lvbi1udWxsLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+IAogIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCIHdpdGggbnVsbCB2ZXJzaW9uIHN0cmluZyIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAgCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQzLDEyICs0MSwxMyBAQCBm
dW5jdGlvbiBvcGVuU3VjY2VzcygpCiBmdW5jdGlvbiBwb3N0U2V0VmVyc2lvbigpCiB7CiAgICAg
c2hvdWxkQmUoImRiLnZlcnNpb24iLCAiJ251bGwnIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogIAogIAogdGVzdCgpOwogIAotPC9zY3JpcHQ+IAorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4gCiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9zZXRWZXJzaW9uLXVuZGVmaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbAppbmRleCA5MGIzYzlhNTY4NTMw
NGU4YmE0YmZkNzY5YTJmNDZhNjY2M2M5NWRlLi45MmRmOWZmNjY1MTgxNzdlOWRmYjEyMzY3Yzc3
NjhhODIwYjY5YjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9z
ZXRWZXJzaW9uLXVuZGVmaW5lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3NldFZlcnNpb24tdW5kZWZpbmVkLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+
IAogIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHZlcnNpb24gc3RyaW5nIGlzIHJlcXVp
cmVkIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMzYs
MTIgKzM0LDEzIEBAIGZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKICAgICBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwogIAogICAgIHNob3VsZFRocm93KCJkYi5zZXRW
ZXJzaW9uKCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogIAogIAog
dGVzdCgpOwogIAotPC9zY3JpcHQ+IAorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4gCiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lv
bl9ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lv
bl9ibG9ja2VkLmh0bWwKaW5kZXggMzE5MjJmYzA4ZDlkNzY0OWI3N2JkN2EyOTVmZTUxYzNkNjcw
ZmQ5NS4uMjVlZWI0NzIwN2FmNTMzNGNiNDFhYWM4MTJmMmRiNjg1NzgyYzc1NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX2Jsb2NrZWQu
aHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24oIkFuIG9wZW4g
Y29ubmVjdGlvbiBibG9ja3MgYSBzZXBhcmF0ZSBjb25uZWN0aW9uJ3Mgc2V0VmVyc2lvbiBjYWxs
Iik7DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KIA0KIGNvbm5lY3Rpb25zID0gW10NCiBmdW5jdGlv
biB0ZXN0KCkNCkBAIC02MCwxMiArNTgsMTMgQEAgZnVuY3Rpb24gaW5TZXRWZXJzaW9uKCkKICAg
ICBkZWJ1ZygiaW4gc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiKTsNCiAgICAgc2hvdWxkQmVUcnVlKCJz
ZWVuX2Jsb2NrZWRfZXZlbnQiKTsNCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGNvbm5lY3Rp
b25zWzBdKTsNCi0gICAgZG9uZSgpOw0KKyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQogDQog
dGVzdCgpOw0KIA0KLTwvc2NyaXB0Pg0KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+DQogPC9o
dG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJz
aW9uX3F1ZXVlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lv
bl9xdWV1ZS5odG1sCmluZGV4IDc5NzU3MDk1YmY0ZDk4YWQyMmFkZWFkNTQxMGFlNzNhNTZiYjA3
MzEuLmFiOTU3NTQ0ZDlkYTA4OTc5OTRhNWFjOTNkMjdkN2Y2NDAyNzgyMzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX3F1ZXVlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fcXVldWUuaHRtbApA
QCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24oIjQgb3BlbiBjb25uZWN0
aW9ucyB0cnkgdG8gc2V0VmVyc2lvbiBhdCB0aGUgc2FtZSB0aW1lLiAgMyBjb25uZWN0aW9ucyBl
dmVudHVhbGx5IGNsb3NlLCBhbGxvd2luZyAxIHNldFZlcnNpb24gY2FsbCB0byBwcm9jZWVkLiIp
Ow0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCiANCiBjb25uZWN0aW9ucyA9IFtdDQogZnVuY3Rpb24g
dGVzdCgpDQpAQCAtMTI2LDEyICsxMjQsMTMgQEAgZnVuY3Rpb24gaW5TZXRWZXJzaW9uMShldmVu
dCkKIHsNCiAgICAgZGVidWcoIiIpDQogICAgIHRlc3RQYXNzZWQoImNvbm5lY3Rpb25bMV0gZ290
IGludG8gU2V0VmVyc2lvbiIpOw0KLSAgICBkb25lKCk7DQorICAgIGZpbmlzaEpTVGVzdCgpOw0K
IH0NCiANCiANCiB0ZXN0KCk7DQogDQotPC9zY3JpcHQ+DQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4NCiA8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
c3RydWN0dXJlZC1jbG9uZS5odG1sCmluZGV4IGUxMTM5MGNhMGMxYjU0MjkwODJlMzg0MjIwNmI3
NTZjZTJmOGU1MjMuLjRjMDA1YWU5YjFkNzU2NWE2NWNhNTFlZGUyNDFjNjgzNjEzYWQ1MzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25l
Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHN0
cnVjdHVyZWQgY2xvbmUgcGVybXV0YXRpb25zIGluIEluZGV4ZWREQi4gRmlsZS9GaWxlTGlzdCB0
ZXN0cyByZXF1aXJlIER1bXBSZW5kZXJUcmVlLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOwpAQCAtMzQ3LDcgKzM0NSw3IEBAIGZ1bmN0aW9uIHJl
YWRCbG9iQXNUZXh0KGJsb2IsIGNhbGxiYWNrKQogICAgIH07CiAgICAgcmVhZGVyLm9uZXJyb3Ig
PSBmdW5jdGlvbihlKSB7CiAgICAgICAgIHRlc3RGYWlsZWQoIkVycm9yIHJlYWRpbmcgYmxvYiBh
cyB0ZXh0OiAiICsgZSk7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgfTsKICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTsKIH0KQEAgLTUyNiw3ICs1MjQs
NyBAQCBmdW5jdGlvbiB0ZXN0QmFkVHlwZXMoKQogICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJh
bnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAgICAgdHJhbnNhY3Rpb24ub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHRyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKLSAgICB0cmFuc2FjdGlvbi5vbmFib3J0
ID0gZG9uZTsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZmluaXNoSlNUZXN0OwogCiAgICAg
ZGVidWcoIiIpOwogICAgIGRlYnVnKCJPdGhlciBKYXZhU2NyaXB0IG9iamVjdCB0eXBlczoiKTsK
QEAgLTU0Myw1ICs1NDEsNiBAQCBmdW5jdGlvbiB0ZXN0QmFkVHlwZXMoKQogdGVzdCgpOwogCiA8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24t
Y3Jvc3MtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwKaW5kZXggYjI3ODU2
NWM0YjEyZjIzZTExZjg1NDllMGMwYTk2ZWNjODA5NWE4Zi4uNzY1NDU5MDU3NTgyZmFhOWNhNDMy
MzQyOWE5MTViODE2MzNlNWQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13
aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sCkBAIC0xOCw4ICsxOCw2IEBAIHZhciBk
YjsKIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBd
LmNvbnRlbnREb2N1bWVudC5ib2R5OwogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHBlbmRpbmcg
dHJhbnNhY3Rpb25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcgcmVjdXJzaXZlIEpTIGNhbGxzIHVu
dGlsIGFsbCBKUyAoaW4gYWxsIGZyYW1lcykgaXMgZmluaXNoZWQuIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAogZnVuY3Rpb24gc2V0dXAoKSB7CiAgICAgc2hvdWxkQmVUcnVlKCInd2Via2l0SW5k
ZXhlZERCJyBpbiB3aW5kb3ciKTsKQEAgLTYzLDExICs2MSwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkK
IGZ1bmN0aW9uIGFib3J0Q2FsbGJhY2soKQogewogICAgIGRlYnVnKCJQZW5kaW5nIHRyYW5zYWN0
aW9uIGFib3J0ZWQiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHNl
dHVwKCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpz
LXJlY3Vyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbAppbmRleCAwMDFiNTM3MDNjYzY3NmEyMWE0
MDUwNDk0MDUxZWEyMThkMWFhMWFjLi43ZTczMGI1Y2E5Mzk5YWIxYjQ1MGIyMjZiMzJiYWIyMDNj
YWY5Yjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLmh0bWwKQEAg
LTE0LDggKzE0LDYgQEAgdmFyIGRiOwogdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiYm9keSIpWzBdOw0KIA0KIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgcGVuZGluZyB0
cmFuc2FjdGlvbnMgYXJlIG5vdCBhYm9ydGVkIGR1cmluZyByZWN1cnNpdmUgSlMgY2FsbHMgdW50
aWwgYWxsIEpTIGlzIGZpbmlzaGVkLiIpOw0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCiANCiBmdW5j
dGlvbiBzZXR1cCgpIHsNCiAgICAgc2hvdWxkQmVUcnVlKCInd2Via2l0SW5kZXhlZERCJyBpbiB3
aW5kb3ciKTsNCkBAIC01OSwxMSArNTcsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiBmdW5jdGlvbiBh
Ym9ydENhbGxiYWNrKCkNCiB7DQogICAgIGRlYnVnKCJQZW5kaW5nIHRyYW5zYWN0aW9uIGFib3J0
ZWQiKTsNCi0gICAgZG9uZSgpOw0KKyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQogc2V0dXAo
KTsNCiANCi08L3NjcmlwdD4NCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pg0KIDwvaHRtbD4N
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
Ym9ydC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJv
cnQuaHRtbAppbmRleCBkZWJiYTYyMjIwZWVhNzgwNWQwZjNjNjZhODBmMWZjOGEwODhiODIxLi42
OTdiMmRjNzdjODk3NzdhNDE0ODEyMmVkMjA1NjEyOWRkOTIwMmZmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0Lmh0bWwKQEAgLTks
OCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCB0cmFuc2FjdGlvbiBhYm9y
dHMgc2VuZCB0aGUgcHJvcGVyIG9uYWJvcnQgbWVzc2FnZXMuLiIpOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTk2LDEyICs5NCwxMyBAQCBmdW5jdGlvbiB0
cmFuc2FjdGlvbkFib3J0ZWQoKQogICAgIGFib3J0RmlyZWQgPSB0cnVlOwogCiAgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuYWRkKHt4OiAndmFsdWU1JywgeTogJ3p6ejUnfSwgJ2tl
eTUnKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiKTsK
LSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0bWwKaW5kZXgg
NTllOGY1YjczYjBjMGU2NTJkMGViYzQ5NmJmZTVmZTQ5M2NkZjNhMS4uZDA1MGNhMzc1YTRjZDZh
NTAzZTU1YjM2MTk4MjQzMDAyYzA3NzdhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRlci1jbG9zZS5odG1sCkBAIC05LDgg
KzksNiBAQAogPHNjcmlwdD4NCiANCiBkZXNjcmlwdGlvbigiVGVzdCBjbG9zaW5nIGEgZGF0YWJh
c2UgY29ubmVjdGlvbiBpbiBJbmRleGVkREIuIik7DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KIA0K
IGZ1bmN0aW9uIHRlc3QoKQ0KIHsNCkBAIC03OCw3ICs3Niw3IEBAIGZ1bmN0aW9uIG9uU2Vjb25k
T3BlbigpIHsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IHN0b3JlLnB1dCgn
MScsICcyJykiKTsNCiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvbkZpbmFsUHV0U3VjY2VzczsN
CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7DQotICAgIGN1
cnJlbnRUcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZG9uZTsNCisgICAgY3VycmVudFRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7DQogICAgIGN1cnJlbnRUcmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7DQogfQ0KIA0KQEAgLTkwLDUgKzg4LDYg
QEAgZnVuY3Rpb24gb25GaW5hbFB1dFN1Y2Nlc3MoKSB7CiB0ZXN0KCk7DQogDQogPC9zY3JpcHQ+
DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+DQogPC9ib2R5Pg0KIDwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9y
ZS1jYWxscy5odG1sCmluZGV4IGNkNTBlNjFjZTY1NGQwMzQzZmQ1OTU4ZWQzZDJmZDBkYjUyOWNl
OWEuLmMwNzc1Y2FlNmU5NTdlZWUwOWU2NDQ1OWZjMmZmZmI3NzNiOWFlM2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9y
ZS1jYWxscy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgdHJhbnNhY3Rpb24gYW5kIG9iamVjdFN0
b3JlIGNhbGxzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBA
IC0xMjYsMTEgKzEyNCwxMiBAQCBmdW5jdGlvbiBhZnRlckNvbXBsZXRlKCkKICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgnc3RvcmUnKSIsICJ3ZWJraXRJREJE
YXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIiKTsKICAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJzdG9yZS5pbmRleCgnaW5kZXgnKSIsICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlv
bi5OT1RfQUxMT1dFRF9FUlIiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gt
b24tYWJvcnQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWNyYXNoLW9uLWFib3J0Lmh0bWwKaW5kZXggODBjMmQxM2Y3YWNlNmJiNzZiN2U3NDRkYjJhMmMz
NTNjNzU3YmVhYi4uOTJjNjBmMzQ3NzU1ZjYzYTJiNjdlMTFmYTZhNTZiNzJjZDM0ZDdmMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gt
b24tYWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHRyYW5zYWN0aW9uIGRvZXMgbm90IGNyYXNoIG9uIGFi
b3J0LiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMzYs
MTIgKzM0LDEzIEBAIGZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKICAgICBldmFsQW5kTG9n
KCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJykiKTsKICAgICBldmFsQW5kTG9nKCJkYi50cmFu
c2FjdGlvbignZm9vJykiKTsKICAgICBldmFsQW5kTG9nKCJ3aW5kb3cuZ2MoKSIpOwotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbApp
bmRleCBiOTM4ODg1MzVmNDE4Y2RlM2VhNTQ1MjNmMGEzZDExNGEyNDk4ODgyLi5hN2RlNmVjY2M4
YjNlYmJhNDVhZjc3MWZlMTMzMDllZmJlMWFlZWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0
aW9uLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBl
dmVudCBwcm9wb2dhdGlvbiBvbiBJREJUcmFuc2FjdGlvbi4iKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMzYsNyArMTM0LDcgQEAgZnVuY3Rpb24gY29t
cGxldGVGaXJlZENhbGxiYWNrKCkKICAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIs
ICJ0cmFucyIpOwogICAgIGNvbXBsZXRlRmlyZWQgPSB0cnVlOwogICAgIGRlYnVnKCIiKTsKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIGRiQ29tcGxldGVC
dWJibGVDYWxsYmFjaygpCkBAIC0xNTEsNSArMTQ5LDYgQEAgdGVzdCgpOwogCiAKIDwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS5odG1sCmluZGV4IDc0ZTJhMTcw
MjFkNmQ2Y2E2ZGYxMjliZTI1M2M4ZDlmNTJlMTAyY2EuLjFkN2IyYTAzOTE2MjczZmQzYjkyYjk5
MjM0OGVlMmExYzU4MGY1ZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS5odG1sCkBAIC05LDggKzksNiBAQAogPHNj
cmlwdD4NCiANCiBkZXNjcmlwdGlvbigiVGVzdCByZWFkLW9ubHkgdHJhbnNhY3Rpb25zIGluIElu
ZGV4ZWREQi4iKTsNCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQogDQogZnVuY3Rpb24gdGVzdCgpDQog
ew0KQEAgLTYwLDEyICs1OCwxMyBAQCBmdW5jdGlvbiBnb3RDdXJzb3IoKQogICAgIHNob3VsZEJl
RmFsc2UoIiFldmVudC50YXJnZXQucmVzdWx0Iik7DQogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImV2ZW50LnRhcmdldC5yZXN1bHQuZGVsZXRlKCkiLCAid2Via2l0SURCRGF0YWJhc2VFeGNl
cHRpb24uUkVBRF9PTkxZX0VSUiIpOw0KIA0KLSAgICBkb25lKCk7DQorICAgIGZpbmlzaEpTVGVz
dCgpOw0KIH0NCiANCiANCiB0ZXN0KCk7DQogDQogPC9zY3JpcHQ+DQorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQogPC9ib2R5
Pg0KIDwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1yb2xsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbAppbmRleCA4MTczOTUyYTE4NTVmOTUwMTEwZWIzNGU3
MDliMjZhMzJhZjk3MDQ4Li4zYzkzMGQwYzc4NTAyM2NjMzA0NzQ2MjI1ZmIyOGRjNTdlMjU3ZTQ2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1y
b2xsYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLXJvbGxiYWNrLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIgdHJhbnNhY3Rpb24gcm9sbGJhY2suIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05MywxMiArOTEsMTMgQEAgZnVuY3Rpb24g
Z2V0U3VjY2VzcygpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5kZWZp
bmVkIik7CiAKICAgICBzaG91bGRCZSgiY3Vyc29yLnZhbHVlIiwgIidyb2xsYmFja1ZhbHVlJyIp
OwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJl
cXVpcmVkLmh0bWwKaW5kZXggOGRkNzM0YWUwMTMzNzAyZDQ1MWExNjdjNDY5Nzc3MjBkODg4YWQz
NC4uZmFiZTQ4OTY2NzgxMDkwMWY3MDRjZWM4ODQ1NTNhOGY0MDQ3MjQ3NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1
aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LXN0b3JlTmFtZXMtcmVxdWlyZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAog
ZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiB0cmFuc2FjdGlvbiBzdG9yZU5hbWVzIHJlcXVp
cmVkIGFyZ3VtZW50cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDUsMTIgKzQzLDEzIEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3Rv
cmUoKQogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAKICAgICBzaG91bGRUaHJvdygi
ZGIudHJhbnNhY3Rpb24oKTsiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHdvLXZlcnNpb24tY2hhbmdl
cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHdvLXZlcnNpb24tY2hhbmdl
cy5odG1sCmluZGV4IGRjMDM5NWQyNGRkNzc0ZmUxOGQ3ZTk1ZDgzODdjNmNhMTUyMTY1MWMuLjU1
NTA3MWEyMTA4OGM5NWQzZTg0OTA4ZjM3YWMwMjI2NjdlMDVlYTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90d28tdmVyc2lvbi1jaGFuZ2VzLmh0bWwKQEAg
LTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBiZWhhdmlvciB3aGVu
IHRoZSBzYW1lIGNvbm5lY3Rpb24gY2FsbHMgc2V0VmVyc2lvbiB0d2ljZSIpOwotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CiAKIAogZnVuY3Rpb24gdGVzdCgpIHsKQEAgLTEwMCw3ICs5OCw3IEBAIGZ1bmN0
aW9uIGNoZWNrUmVzdWx0cygpIHsKICAgICAgICAgcmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAiYmJi
Iik7Ci0gICAgICAgICAgICBkb25lKCk7ICAgIAorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgICAgIH07CiAgICAgfTsKIH0KQEAgLTEwOSw1ICsxMDcsNiBAQCBmdW5jdGlvbiBjaGVj
a1Jlc3VsdHMoKSB7CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRl
ZmluZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5l
ZC5odG1sCmluZGV4IDBjZDRjMmYxYjgwNGIwYzhjZmY4MWRiYjk4NmE4MTIyMDFlYTdhZGUuLjdj
NjQzYTBjYzI0MDNhNzE3MjA3NmQ0OTg0OTZhYmM2N2Y3N2U0M2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC5odG1sCkBAIC0xMCw4ICsx
MCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgdW5kZWZpbmVk
IGFzIHJlY29yZCB2YWx1ZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3Qo
KQogewpAQCAtNzUsMTIgKzczLDEzIEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29yKCkKICAgICB9IGVs
c2UgewogICAgICAgICB0ZXN0RmFpbGVkKCJjdXJzb3IgaXMgbnVsbCIpOwogICAgIH0KLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy5odG1sCmluZGV4IDkzODVjYjRlMDZmODBhYmQ0MzJj
YjZhNTkzYjMzZGRiNTFjNTU5MmEuLmEwNjJkOTZmODZkOTNhNTc4NGNkN2JlYTEwNDM0MGViZWI1
NjZlZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlcy1v
ZGQtdHlwZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMt
b2RkLXR5cGVzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQiBvZGQgdmFsdWUgZGF0YXR5cGVzIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC04NSw3ICs4Myw3IEBAIGZ1bmN0aW9uIG9wZW5B
Q3Vyc29yKCkKICAgICAgICAgICAgIGV2YWxBbmRMb2coInZhbHVlSW5kZXgrKzsiKTsKICAgICAg
ICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtOTQsNSArOTIsNiBAQCBmdW5j
dGlvbiBvcGVuQUN1cnNvcigpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJz
aW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQKaW5kZXggMzA0YjFmNDc2YzI0
YzgyMTNhNzI4MThlMDYyMjA1NzE2YmRjMjYwNy4uNTI1MzU5MDZjNTEyZmU1NzQ1MjJiOTZiYWYw
MjMxYWY2N2E0ZjlhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4NDogVW5jYXVnaHQgRXJyb3I6IFRoaXMgc2hv
dWxkICpOT1QqIGJlIGNhdWdodCEKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4MjogVW5jYXVnaHQg
RXJyb3I6IFRoaXMgc2hvdWxkICpOT1QqIGJlIGNhdWdodCEKIEVuc3VyZSB0aGF0IGFib3J0ZWQg
VkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rpb25zIGFyZSBjb21wbGV0ZWx5IHJvbGxlZCBiYWNrCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1sCmluZGV4IGUxOGRlMWVhMjdm
NTA5NDEwOThhNjJhMjAxZTY1ZGZlNzFmMGE5ODEuLjRmMDY1ZjA3ZGQ2Yzg2MDljYjMxY2Q0YWM4
OTQ5ZjIxY2I4MzViYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlw
dD4KIAogZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGFib3J0ZWQgVkVSU0lPTl9DSEFOR0UgdHJh
bnNhY3Rpb25zIGFyZSBjb21wbGV0ZWx5IHJvbGxlZCBiYWNrIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogCiBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtOTYsMTEgKzk0LDEyIEBAIGZ1bmN0aW9uIHNl
dFZlcnNpb24yQWJvcnQoKQogICAgIHNob3VsZEJlVHJ1ZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5j
b250YWlucygnc3RvcmUxJykiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYi5vYmplY3RTdG9yZU5h
bWVzLmNvbnRhaW5zKCdzdG9yZTInKSIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5n
ZS1leGNsdXNpdmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24t
Y2hhbmdlLWV4Y2x1c2l2ZS5odG1sCmluZGV4IDgxNTg4MDZkZmRjZGQ2YTVlZDgzYjBhNWMxYjdl
MDI2MzJlOGZlZWMuLmQ3NmE3MGI3MmYyZmY3M2M0NGNiYWNiNzc0YjNkODZiMzBlY2IwZjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV4
Y2x1c2l2ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24t
Y2hhbmdlLWV4Y2x1c2l2ZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIkVuc3VyZSBWRVJTSU9OX0NIQU5HRSB0cmFuc2FjdGlvbiBkb2Vzbid0IHJ1biBjb25j
dXJyZW50bHkgd2l0aCBvdGhlciB0cmFuc2FjdGlvbnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiAKIGZ1bmN0aW9uIHRlc3QoKSB7CkBAIC03MywxMiArNzEsMTMgQEAgZnVuY3Rpb24gb3BlbkFn
YWluU3VjY2VzcygpCiB7CiAgICAgZGVidWcoIm9wZW4oKSBjYWxsYmFjayAtIHRoaXMgc2hvdWxk
IGFwcGVhciBhZnRlciBWRVJTSU9OX0NIQU5HRSB0cmFuc2FjdGlvbiBlbmRzIik7CiAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuc3RhdGUiLCAiVkVSU0lPTl9DSEFOR0UgZmluaXNo
ZWQiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2Jq
ZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVx
dWVzdC1hY3RpdmVkb21vYmplY3QuaHRtbAppbmRleCAwMzMyODA3ZDBjYjg2ZjM0NjMyZjU3YTZm
ZGVmOTM4NTk3YTAwNzQzLi4yMDdhNDViMWNjMDhjMzljY2ZiZjYwMDBiYjcwY2RkZTRiYzMxMjhi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uY2hhbmdl
cmVxdWVzdC1hY3RpdmVkb21vYmplY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmplY3QuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IElEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0IG9iamVjdHMgYXJlIG5vdCBHQydkIGlmIHRoZXkgaGF2ZSBwZW5kaW5n
IGV2ZW50cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0
SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7Iik7CkBAIC03MCwxMSArNjgsMTIgQEAg
ZnVuY3Rpb24gdGVzdFNldFZlcnNpb24oKQogZnVuY3Rpb24gdmVyc2lvblN1Y2Nlc3MoKQogewog
ICAgIHRlc3RQYXNzZWQoInNldFZlcnNpb24ncyBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbnN1
Y2Nlc3MgZXZlbnQgZmlyZWQiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130739</attachid>
            <date>2012-03-07 17:51:05 -0800</date>
            <delta_ts>2012-03-08 15:36:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80555-20120307175104.patch</filename>
            <type>text/plain</type>
            <size>113044</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDUzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjMyMzMxMmY3NDhlMjgyYzAwZjQ3
MGVlNzJlYzY2YWZkY2ZjNzA3ZS4uNmViNzQyNTRmMmM3MWE4YzVhOThkNmU3NmY3M2M0ZDkzZDc3
MDQzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NiBAQAorMjAxMi0wMy0wNyAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBsYXlvdXQgdGVzdCBz
dHlsZSB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgwNTU1CisKKyAgICAgICAgQ2hhbmdlIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUgdG8gdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlCisgICAgICAgIGFuZCBpZGItc3BlY2lm
aWMgZG9uZSgpIHRvIGZpbmlzaEpTVGVzdCgpOworCisgICAgICAgIEZvbGxvd2luZyB0aGUgdW5p
Zm9ybSBzdHlsZSByZXN1bHRzIGluIGxlc3Mgb3ZlcmFsbCBjb2RlIGFuZCBtYWtlcworICAgICAg
ICB0aGVtIGVhc2llciB0byBjb252ZXJ0IHRvIHdvcmtlciBsYXlvdXQgdGVzdHMuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9jb25zdGFudHMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUt
YW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWcuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGFiYXNlLXF1b3RhLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGVJbmRleC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0
b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kdXBsaWNhdGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWNtcC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnZhbGlkLWtleXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNy
b3NzLXR5cGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHkuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleXJhbmdlLXJlcXVpcmVkLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbGlzdC1vcmRlcmluZy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGguaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3Mu
aHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3Rz
dG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1zb3VyY2UuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2dsb2JhbC1kYXRhLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50
cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlu
bGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVzdWx0LW9yZGVyLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51
bGwtbmFtZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdl
dC12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRv
bmx5LXRyYW5zYWN0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVhZHlTdGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3IuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvb2RkLXN0cmluZ3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVy
aW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVk
LWNvbW1hbmRzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJv
cGVydGllcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanM6Cisg
ICAgICAgICh1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrKToKKyAgICAg
ICAgKHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVs
bC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tdW5kZWZpbmVk
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX3F1ZXVlLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJz
aW9uLWNyb3NzLWZyYW1lLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1
aXJlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5n
ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3Qt
YWN0aXZlZG9tb2JqZWN0Lmh0bWw6CisKIDIwMTItMDMtMDcgIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJraW5nIGZpbGUt
d3JpdGVyLWV2ZW50cy5odG1sIGFzIGZsYWt5LWNyYXNoaW5nIG9uIFdpbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0bWwKaW5kZXggYTE2MWU5ZThkOGU1MGYy
NmI0ZjY2NWM4OGMwNjkwNmYwNjg3MmM2MS4uMzgxNjEzNGUxNDI3ZWI0NWIyZDBmMzFmMWI5YmU2
NzQ3MGI5MGEyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29u
c3RhbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRz
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBjb25zdGFudHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVz
dCgpCiB7CkBAIC00Miw4ICs0MCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiB0ZXN0KCk7CiAKLWRv
bmUoKTsKK2ZpbmlzaEpTVGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFu
ZC1yZW1vdmUtb2JqZWN0LXN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbAppbmRleCAzMmJhZTFkMzExNmVl
OTQzNGMzN2M3YWVkMzhjMzAzMTcyZDRmMzU1Li4xNDUzNzU0MDVjNjNlM2E0ZTVjZDI1NmYyMzY5
YzdmZDZlZjFmY2RiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
cmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbApAQCAtOSw4
ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0
ZSBhbmQgcmVtb3ZlT2JqZWN0U3RvcmUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTYyLDEyICs2MCwxMyBAQCBmdW5jdGlvbiB0cnlPbmNlTW9yZSgpCiAg
ICAgZGVidWcoIlRyeWluZyByZW1vdmUgd2l0aCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzIik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3RtcCcp
IiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogCi0gICAg
ZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwKaW5k
ZXggN2E4YWZmNGY1NTJkNzA4ZTdlNmNmNGQ0MTE1YmQ3OWM0MmMzNDQ0Mi4uMDc4ZTUwODBhOWMx
ODFmOGQ2ODA2NWU2YzE4YWNhZGRmOGU3Yjg0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIncyBjcmVhdGVPYmplY3RTdG9yZSdzIHZhcmlvdXMgb3B0aW9ucyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNzksMTIgKzc3LDEzIEBAIGZ1bmN0aW9u
IGNoZWNrQigpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQuYSIsICJ7YTog
MH0iKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50
LXJlcXVpcmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmpl
Y3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggNjBlOTllOGYyNmM2MmFh
Y2FiMDY3Njc4NGNmZjgxYjVlOTU1NDVkMi4uYjYzZjM5ODk3NzlmZjNlODc3ZDBhZjJjODAzNWFj
ZWZiODJhMjk5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Jl
YXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVx
dWlyZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIG5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWQi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ1LDEyICs0
MywxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgc2hvdWxkVGhyb3coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUt
bnVsbC1uYW1lLmh0bWwKaW5kZXggZDdkZjg3MDA3YjM4NWVhMDVjYmIwNWY1ZDAwYTY2NjU0MDk5
YjU3NS4uNzZlOWZiMWRmYzE5NTYyMjRmN2U2MjkxODBmNWQxZmE2ZmMwY2EzYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1u
YW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjcmVhdGVPYmplY3RTdG9yZSBudWxsIGhhbmRsaW5nIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NiwxMiArNDQs
MTMgQEAgZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiAKICAgICBvYmpl
Y3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwogICAg
IHNob3VsZEJlKCJvYmplY3RTdG9yZS5uYW1lIiwgIidudWxsJyIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItY29udGludWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1jb250aW51ZS5odG1sCmluZGV4IDQ5OGNmODllODc2NTFhZDM5NjZiMDg5NzgxZmRlMmZi
ZDJiNDJjYWMuLjY0ZmIwYmIzZTYwMDZjMzBlY2Y3YjY2MWEwMGU4ZDFjNWM4YTEwYjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1s
CkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4gCiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QidzIElEQkN1cnNvci5jb250aW51ZSgpIHdpdGggYSBrZXkgcGFyYW1ldGVyLiIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIHZhciBkYXRlID0gbmV3IERhdGUoKTsKIApAQCAtMjc2LDExICsyNzQs
MTIgQEAgZnVuY3Rpb24gZGVzY2VuZGluZ0Vycm9yVGVzdEVxdWFsKCkKIGZ1bmN0aW9uIG9uVHJh
bnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29y
LmNvbnRpbnVlKCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVf
RVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAg
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sCmluZGV4IGE1YzQ1ZTY3MzUzYWJm
YzdlZTc1MjIwNWM4MjQxZTI3Mjk2Nzg3OGQuLjlmZThlZGU3MTY1M2QwMjNmY2RmMDQyNmIwOTZk
ZGU2NGU4MGIzZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1kZWxldGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItZGVsZXRlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIHRl
c3QoKTsKIApAQCAtMTA3LDEwICsxMDUsMTEgQEAgZnVuY3Rpb24gZGVsZXRlT2JqZWN0KCkKIGZ1
bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0
bWwKaW5kZXggZGU3ZDkyZTBiYjQ0MjFlMDc3ZjJmNmQwZGIxOTQ4OTY2ZTg2YjYzNi4uMTk0YzJj
NjExNTA5ZDlkNzRlZDk2OTRmNGJlYTlhMjlkNmU0Zjk3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS5odG1sCkBAIC05
LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgY29uc2lzdGVuY3kgb2Yg
SW5kZXhlZERCJ3MgY3Vyc29yIG9iamVjdHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVz
dCgpOwogCkBAIC04NywxMCArODUsMTEgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogZnVuY3Rp
b24gdHJhbnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxl
dGUoKSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sCmluZGV4IDYxM2EzNDNhNGU5
NGJiMTY2NGZkMjJlZDc1ZGFlODBjNjA1ZmY5MWQuLmUxYTRiN2JmMmZmNjVhYjhmNTNjZmI5NjE5
ODdjZmEyNDQ4YWRiN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1pbmRleC1kZWxldGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CiAKIHRlc3QoKTsKIApAQCAtMTExLDEwICsxMDksMTEgQEAgZnVuY3Rpb24gZGVs
ZXRlT2JqZWN0KCkKIGZ1bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3Vs
ZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtl
eS1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1v
cmRlci5odG1sCmluZGV4IDY4MWNhZjkzMzA0M2VkY2Y2NGVmMTFkYzNhMWJiMDAzNDUwOGE1Mzgu
LjVhMzRjZGVjOWQzZDg2YzkyZWI5MDA2YWZkMjJhYTQ5NjIwZGM4ZjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwKQEAgLTks
OCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBv
cmRlcmluZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTg4LDcgKzE4Niw3IEBAIGZ1bmN0aW9uIGNoZWNr
U3RvcmUoKQogZnVuY3Rpb24gZmluaXNoVXAoKQogewogICAgIHRlc3RLZXlDb21wYXJlKCk7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiB0ZXN0S2V5Q29t
cGFyZSgpCkBAIC0yMzcsNSArMjM1LDYgQEAgZnVuY3Rpb24gdGVzdEtleUNvbXBhcmUoKQogdGVz
dCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuaHRtbAppbmRleCBmY2M3ZDc5YzU3MmI3ZTIzYzFkNDYyNDNhMTZjMDY1ZDA2OTI2Y2EzLi44
NGExMTdjNzY3ZWViNWFjOTMzNzViNGY0NmI4ZDhiZGJmODExMDY1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIHByaW1hcnkga2V5IG9yZGVyaW5nIGFuZCByZWFkYmFjayBmcm9tIGN1cnNvcnMu
Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDQsNyAr
MTAyLDcgQEAgZnVuY3Rpb24gY2hlY2tTdG9yZSgpCiAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiY291bnQg
PT09IGtleXMubGVuZ3RoIik7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgfQogICAgIH07CiB9CkBAIC0xMTIsNSArMTEwLDYgQEAgZnVu
Y3Rpb24gY2hlY2tTdG9yZSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItcmV2ZXJzZS1idWcuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1yZXZlcnNlLWJ1Zy5odG1sCmluZGV4IDA1NDk5Mzk4ZDgwMDFhZWEzYzIyZDE1NWY3ODA2MDcy
N2I1NmNmMzMuLmI1NTk0ZGY3NWY3MWI4YzU4ZDRhZjFmNGQwY2I5MjIyYmFiYzM2MDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1
Zy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCIGtleXMgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4iKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTcyLDcgKzcwLDcgQEAgZnVu
Y3Rpb24gdGVzdEN1cnNvcigpCiAKICAgICBpZiAodGVzdHMubGVuZ3RoID09PSAwKSB7CiAgICAg
ICAgIGRlYnVnKCJObyBtb3JlIHRlc3RzLiIpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTUsNiArMTEzLDcg
QEAgZnVuY3Rpb24gdGVzdEN1cnNvcigpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbAppbmRleCBjZmU3MjA4Y2JiZDliMjIyMjEyMTk3
OTc5MzMzMmMxOTEzMDUxODhmLi5jMjZlYWY0NzYzNmU1NzQyOGY2NTI0Mzc2YjBkZWE2NzY2ZWI4
ZGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tp
cC1kZWxldGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXNraXAtZGVsZXRlZC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRp
b24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHNraXBzIGRlbGV0ZWQgZW50cmllcy4iKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiB2YXIgbmFtZXMgPSBbJ0FscGhhJywgJ0JyYXZvJywgJ0NoYXJs
aWUnLCAnRGVsdGEnLCAnRWNobycsICdGb3h0cm90JywgJ0dvbGYnLAogICAgICAgICAgICAgICdI
b3RlbCcsICdJbmRpYScsICdKdWxpZXQnLCAnS2lsbycsICdMaW1hJywgJ01pa2UnLCAnTm92ZW1i
ZXInLApAQCAtMTk2LDEwICsxOTQsMTEgQEAgZnVuY3Rpb24gaW5kZXhDdXJzb3JUZXN0KCkKIGZ1
bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNv
bXBsZXRlKCk6Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVl
LWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggYmNmZDEwYjgwMDBhYjA2OGFiNDcxYjgwZTlm
OWVjYjNkZTFkN2YyNC4uZDg0NmYwNGI0YzgxMDFhMjVmZTQxMDlkZGIzOWNjODU3N2ZhZTFmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12
YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNv
ci51cGRhdGUgcmVxdWlyZWQgYXJndW1lbnRzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CkBAIC04MSw3ICs3OSw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDMoKQog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIHdhcyBudWxs
Iik7CiAgICAgICAgIH0KLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICB9CiB9CiAKQEAgLTg5LDYgKzg3LDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbAppbmRleCA5NDhmMjI1
MmU4ZjgzMjk0ZjU4ZjQwOTVjYWZlNGFjZTQzODllMWZiLi5hZTE5Yzk3OWU2OWRjMmQyZmQxY2Fi
ZTA2NmRiZGQ1YTFiYTFiMDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItdXBkYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXVwZGF0ZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHVwZGF0ZS4iKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiB0ZXN0KCk7CiAKQEAgLTIxOCwxMCArMjE2LDExIEBAIGZ1bmN0aW9uIGtleUN1cnNv
cigpCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNh
Y3Rpb25Db21wbGV0ZSgpIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCmluZGV4IDAwZTRjMzFm
NjA3YWRlYmVhZWNkMzQyZjcyZjVlZjY0MTY3ZjI5MDcuLjBiZmIxNTc0ZjkyODViZGFkODIyYjZk
NzhjYzMyMTdjMTc3NWE2ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCBkYXRhIGluc2VydGVkIGludG8gSW5kZXhlZERCIGRvZXMgbm90
IGdldCBjb3JydXB0ZWQgb24gZGlzay4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC02NSwxMiArNjMsMTMgQEAgZnVuY3Rpb24gZ2V0RGF0YSgpCiBmdW5j
dGlvbiBkb0NoZWNrKCkKIHsKICAgICBzaG91bGRCZVRydWUoImV2ZW50LnRhcmdldC5yZXN1bHQu
eC50b1N0cmluZygpID09IHRlc3REYXRlLnRvU3RyaW5nKCkiKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YWJhc2UtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRh
YmFzZS1iYXNpY3MuaHRtbAppbmRleCA0NzY4M2U4NzBlYTcyZDhiMWVjMjAxYjQzMmMzNTk2Nzcw
MTQxMzA5Li44YWZjMWJhYjA4YTVjNjM5Y2FmYjFkY2QwMDQzYTQwYzk1ZWI5ODM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbApA
QCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBiYXNpY3Mg
b2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtMTE5LDEyICsxMTcsMTMgQEAgZnVuY3Rpb24gdGVzdENsb3Nl
KCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbigndGVzdDEyMycp
IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogICAgIGRlYnVnKCJD
YWxsIHR3aWNlLCBtYWtlIHN1cmUgaXQncyBoYXJtbGVzcyIpOwogICAgIGV2YWxBbmRMb2coImRi
LmNsb3NlKCkiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3Qo
KTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWUtdW5kZWZpbmVk
Lmh0bWwKaW5kZXggNjZhN2U4N2NkZGMyZDEwOTQyOWVkYjkwZDFkNzZmMDE2NWE2M2JhMS4uZDZm
Yzk1NDEzNzhiYTkwNGJiNTk3NzVjYzBhZmRlYzBlNTkyZjcwMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5o
dG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgdW5kZWZpbmVkIGFzIHJlY29yZCB2YWx1ZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjUsMTIgKzIzLDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHNob3VsZEJlRmFsc2UoIklEQktleVJhbmdlID09IG51bGwiKTsKIAogICAgIHNob3VsZFRo
cm93KCJpbmRleGVkREIub3BlbigpOyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1vZGQt
bmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1u
YW1lcy5odG1sCmluZGV4IDQ0MDQxYjI4MGUxZTIyNDM4NDg0N2I0ZjEyNTBkOWY3YjFkMWY0NDUu
LjgzZDhlOTdjNmViOTJkYTUwODg1NzQ4YTExNWM3NDQ4Njc1Njg4NTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
b2RkIHZhbHVlIGRhdGF0eXBlcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNDAsMTIgKzM4LDEzIEBAIGZ1bmN0aW9uIG9wZW5OZXh0RGF0YWJhc2UoKQog
ICAgIGRlYnVnKCJvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgIiArIHRlc3REYXRhW25leHRUb09w
ZW5dLmRlc2NyaXB0aW9uKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgdGVzdERhdGFbbmV4dFRvT3Blbl0uZGVzY3Jp
cHRpb24pIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSArK25leHRUb09wZW4gPCB0ZXN0RGF0YS5sZW5ndGgg
PyBvcGVuTmV4dERhdGFiYXNlIDogZG9uZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICsrbmV4
dFRvT3BlbiA8IHRlc3REYXRhLmxlbmd0aCA/IG9wZW5OZXh0RGF0YWJhc2UgOiBmaW5pc2hKU1Rl
c3Q7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVv
dGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXF1b3RhLmh0
bWwKaW5kZXggMTA5YTdkMjkxMDhmZjY1Mzg4YzJlYmM5NDY2NmY2M2M5Yjg4ZmI3My4uMTYxN2E3
YjM3MTU2MTMyZGNlOWM1MGJmYjMwYWU1ODhkODZjNDhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sCkBAIC05LDggKzksNiBAQAog
PHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3RzIEluZGV4ZWREQidzIHF1b3RhIGVuZm9yY2lu
ZyBtZWNoYW5pc20uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNzksNyArNzcsNyBAQCBmdW5jdGlvbiBhZGREYXRhKCkKICAgICAgICAgICAgIHN0b3Jl
ID0gZXZlbnQudGFyZ2V0LnNvdXJjZTsKICAgICB9IGVsc2UgewogICAgICAgICB0ZXN0RmFpbGVk
KCJhZGRlZCBtb3JlIHRoYW4gcXVvdGEiKTsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkYXRhQWRkZWQgKz0gNjU1
MzY7CkBAIC05NywxMiArOTUsMTMgQEAgZnVuY3Rpb24gbG9nRXJyb3IoKQogZnVuY3Rpb24gdGVz
dENvbXBsZXRlKCkKIHsKICAgICB0ZXN0UGFzc2VkKCJBZGRpbmcgZGF0YSBmYWlsZWQgZHVlIHRv
IHF1b3RhIGVycm9yLiBEYXRhIGFkZGVkIHdhcyBhYm91dCAiICsgTWF0aC5yb3VuZChkYXRhQWRk
ZWQgLyAxMDI0IC8gMTAyNCkgKyAiIE1CIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9z
ZWQtZGF0YWJhc2Utb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5odG1sCmluZGV4IGMzNzRkNTVhY2VmNmVlMzQw
YTI0NTQyZDI0N2EyZmIzODZjNzU1MTAuLmFiMGY1Y2Y4NmZjMDk3ZjZlNmEzMjVlZDgzOWZmOTY1
YjEwN2JlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0
ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBJREJEYXRhYmFzZSBvYmpl
Y3RzIGFyZSBkZWxldGVkIHdoZW4gdGhlcmUgYXJlIG5vIHJldGFpbmluZyBwYXRocyBsZWZ0Iik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogCiBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtNTIsMTIgKzUw
LDEzIEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogICAgIHZhciB2ZXJzaW9uQ2hhbmdlUmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpIik7CiAgICAgdmVyc2lv
bkNoYW5nZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHZl
cnNpb25DaGFuZ2VSZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
Ci0gICAgdmVyc2lvbkNoYW5nZVJlcXVlc3Qub25zdWNjZXNzID0gZG9uZTsKKyAgICB2ZXJzaW9u
Q2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaW5pc2hKU1Rlc3Q7CiB9CiAKIAogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbAppbmRleCA3ZTRiY2E0NDE0NzFjZTBi
ZTM2ZWZjMTExMzI3OTM5ZTdlMTM0NGM2Li41Y2FiOTA1ZTI3N2U2OTUyNjA2ZmFlZTlkNTM2OWE1
ZGNmOGE3ODg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGUtcmFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUt
cmFuZ2UuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlLmRlbGV0ZShJREJLZXlSYW5nZSkgbWV0aG9kLiIp
OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTIsNyArOTAs
NyBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gbmV4
dFRlc3Q7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTEwMiw1ICsxMDAsNiBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiB0ZXN0KCk7CiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlSW5kZXguaHRtbAppbmRleCA0YTcwNzQzYmMwZGQyNmRlYjg3YzZiOWJk
Y2U3MzM1YzQwNjk5NGVjLi5kODQ3YjViZDg3MmExYzJlNzE3NWRkOWQ4N2M2YjM0ZTQ4NDUyNjIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWwK
QEAgLTIsNyArMiw2IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CkBAIC0xMSw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgZGVsZXRlSW5kZXggbWV0aG9kIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC01NywxMSArNTQsMTIgQEAgZnVuY3Rpb24gcG9zdFR3aWRkbGluZygp
CiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jh
cicpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIiKTsKICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgnc2Vjb25kJykiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIik7Ci0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3Vt
ZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggZjUyNmMxODBmZDk1YmY0YzM0ZWIyNzY2YTRiNTlhMjg2
MmZlY2EwZi4uNmI5ZDFhZDE5Mjg0YTUwZDA5YTE3YmY4NTZjYmY0OTcwNDBhNDdkZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFt
ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGRlbGV0
ZU9iamVjdFN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NSwxMiArNDMsMTMgQEAgZnVuY3Rpb24gY3JlYXRlQW5k
UG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAog
ICAgIHNob3VsZFRocm93KCJkYi5kZWxldGVPYmplY3RTdG9yZSgpOyIpOwotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCmluZGV4IDg3Yzlh
NTlkNDhlMWUyNTRlZmRlNWQ1OGUyZTkwODIwZWNiMTg2NWUuLjU2YTYyMWRhZjI1OTE4ZDE2Mzgw
YmFlMzAwODA3YjFjOTkzOTAwM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCkBAIC0x
MCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgZGVs
ZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ2LDEyICs0NCwxMyBAQCBmdW5jdGlvbiBjcmVhdGVB
bmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKIAogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdudWxsJyk7Iik7CiAgICAgZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUo
bnVsbCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbAppbmRleCA5Njg1MzA5OGI1OGIyMTc2
ZTJjNDgxN2Q5MzlhMjM2OGU4YTI5ZmQzLi40MjM2MDdiNzdhZmRkZmIxMTkyMjVhNTc0YmIzZThh
YmM1MWVjYjc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBs
aWNhdGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZHVwbGljYXRl
cy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlZlcmlmeSB0
aGF0IHlvdSBjYW4gcHV0IHRoZSBzYW1lIGRhdGEgaW4gMiBkaWZmZXJlbnQgZGF0YWJhc2VzIHdp
dGhvdXQgdW5pcXVlbmVzcyBjb25zdHJhaW50cyBmaXJpbmcuIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAKIHRlc3RDb3VudCA9IDA7CiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTE2NiwxMiArMTY0LDEz
IEBAIGZ1bmN0aW9uIGxhc3QoKQogICAgIGlmICh0ZXN0Q291bnQgPT0gMSkKICAgICAgICAgdGVz
dCgpOwogICAgIGVsc2UKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVzZXMtYWJv
cnQtYnktZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXJyb3It
Y2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbAppbmRleCA0MDBlOGIyOTZkOGYzMmU4ODNlYjZj
MzQzNTRjNGVlYmY1YjYzNWYyLi43YzEwMjVkZDA5ZWY3NGIwZTdiN2JhZmRiYzBmMmU2ZjhkMWU1
ZjMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVz
ZXMtYWJvcnQtYnktZGVmYXVsdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Vycm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8
c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiB3aXRoIGFu
IGVycm9yIGFib3J0cyB1bmxlc3MgcHJldmVudERlZmF1bHQoKSBpcyBjYWxsZWQuIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTAxLDEyICs5OSwxMyBA
QCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQxKCkKIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQWJv
cnRlZDIoKQogewogICAgIHRlc3RQYXNzZWQoIlRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVj
dGVkLnR4dAppbmRleCA0YjlmODY5YzFkZjI5MGFjOGIzN2ZiNjlhYWY2NmYwMDk4Nzk3YWVhLi4w
NGJlY2RlNzIzZDBkNDk5NjU0ODg0NDY0MTZiYWI1ODM0NDU5NzRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4t
ZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA2MzogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA2MzogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSA2MTogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0
ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MTogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMg
ZXhwZWN0ZWQKIFRlc3QgZXhjZXB0aW9ucyBpbiBJREJSZXF1ZXN0IGhhbmRsZXJzIGNhdXNlIGFi
b3J0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1s
CmluZGV4IGJiMGI1ZGY2ZGMyZjYzNTM0NjcwN2IzMTlkZGU1N2VlNGQ4MmVkOWUuLmEyZGMyYzJm
OTFlZDc3ODk5MmYwZDJhMzkyMjIwMjQxMmM2NDI4OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBleGNlcHRp
b25zIGluIElEQlJlcXVlc3QgaGFuZGxlcnMgY2F1c2UgYWJvcnRzLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyMSwxMiArMTE5LDEzIEBAIGZ1bmN0
aW9uIHRyYW5zYWN0aW9uQ29tcGxldGVkMigpCiAgICAgZGVidWcoIiIpOwogICAgIHRlc3RQYXNz
ZWQoIlRoZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQuIik7CiAgICAgZGVidWcoIiIpOwotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9mYWN0b3J5LWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbAppbmRleCAzODMzYWZmOWQ0ZTczYTI0ZWRjOTlkNDQz
ZTMzYTQ1YWFiMTFkZTA0Li42YWZlYzBmNzkwN2FlYWZlM2FkYmZmY2YwOGQyMWZkZDI1MWI3MmE0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWJhc2lj
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktYmFzaWNz
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGUg
YmFzaWNzIG9mIEluZGV4ZWREQidzIElEQkZhY3RvcnkuIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtODQsMTIgKzgyLDEzIEBAIGZ1bmN0aW9uIGdldERh
dGFiYXNlTmFtZXNTdWNjZXNzMygpCiAKIGZ1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2VzczIo
KQogewotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWNtcC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZmFjdG9yeS1jbXAuaHRtbAppbmRleCA4MThhNjE5OTE4OWZlOTRlM2Zm
Mjk0OWY4NThmMDg5NTBmMDJhMWVmLi43OWY0NjBmYWEyNTdjYThkNjA0YTVhOGRlYTJlMGIxZmQ5
MDA4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5
LWNtcC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktY21w
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIga2V5IGNvbXBhcmlzb24gdXNpbmcgSURCRmFjdG9yeS5jbXAoKS4iKTsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0yNCw3ICsyMiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHRlc3RWYWxpZEtleXMoKTsKICAgICB0ZXN0SW52YWxpZEtleXMoKTsK
ICAgICB0ZXN0SWRlbnRpY2FsS2V5cygpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogZnVuY3Rpb24gdGVzdFZhbGlkS2V5cygpCkBAIC0xNTIsNSArMTUwLDYgQEAgZnVu
Y3Rpb24gdGVzdElkZW50aWNhbEtleXMoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmh0
bWwKaW5kZXggNjZmNTJlYjc3ZGUxM2EzNTVjNzE4YjExNjgzNDg1Y2I5YTc2NGVmNy4uYzNiOTE3
NDc2ZjBkNWZhZjU5M2EwNmJmZDRjNGQ5ZTNkMzZkZWMxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRh
dGFiYXNlLWludGVyYWN0aW9ucy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIGRlbGV0ZURhdGFiYXNlIGNhbGwgYW5kIGl0cyBpbnRlcmFjdGlv
biB3aXRoIG9wZW4vc2V0VmVyc2lvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9u
IENvbm5lY3Rpb24oaWQpIHsKICAgICBpZCA9IFN0cmluZyhpZCk7CkBAIC0xODcsMTIgKzE4NSwx
MyBAQCBmdW5jdGlvbiB0ZXN0MygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aC5jbG9zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNl
KCkub25zdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmco
KSk7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFi
YXNlLmh0bWwKaW5kZXggNWI3OTk1N2E1ZGE5NWU2ZTAyNDQ5MWM5M2FmMWViNDdjZmJhNDAyMi4u
NDY3ZTFmMDlmNzQwNmI4YWUwOGRmODAzYzMwMzFiOTY0MmE1ZTJlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2Uu
aHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQidzIHdlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTEsMTAgKzg5LDExIEBAIGZ1bmN0aW9u
IHZlcmlmeU5vdEZvdW5kKCkKIHsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5s
ZW5ndGgiLCAiMCIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0
ZXN0KCk7CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY291bnQuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWwKaW5kZXggMGY4MzFmZTIzYzY0
ZTM2ZDRjYTcyMzM2MjMxZjE2MzJlYzdkZDZlNC4uNjVhYTVkMmEyNzc0YmFlZmU3NWQ4YTczNmMx
ODA2NWM3N2ZiNzExOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtY291bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1jb3VudC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCJ3MgSURCSW5kZXguY291bnQoKS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyNSw3ICsxMjMsNyBAQCBmdW5jdGlvbiB2ZXJpZnlD
b3VudFdpdGhLZXkoKQogICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9PTkxZKSIpOwogICAgIHNob3Vs
ZEJlVHJ1ZSgidHJhbnMgIT0gbnVsbCIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gZG9uZTsKKyAgICB0cmFucy5v
bmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogCiAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9y
ZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAgIHNob3VsZEJlVHJ1ZSgi
c3RvcmUgIT0gbnVsbCIpOwpAQCAtMTY0LDUgKzE2Miw2IEBAIGZ1bmN0aW9uIHZlcmlmeUNvdW50
V2l0aEtleSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3Iu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCmlu
ZGV4IDc3ZGFkYWZkNmVjOGZkNTQ4NjYyNTJlNTc2MWM5YmIyNjc1ZjRkMTQuLmI2NTNjMDA1OTBi
M2E5ZjAwNGYxMmVmNDJlMzlmZjNlM2RhODUzOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4g
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHdlYmtpdElEQkluZGV4Lm9wZW5DdXJz
b3IgKyB0aGUgY3Vyc29yIGl0IHByb2R1Y2VzIGluIGRlcHRoLiIpOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAgCiAvLyBJbiBvcmRlciBvZiBob3cgaXQgc2hvdWxkIGJlIHNvcnRlZCBieSBJbmRleGVk
REIuCiB3aW5kb3cudGVzdERhdGEgPSBbCkBAIC0yNDAsNyArMjM4LDcgQEAgZnVuY3Rpb24gdGVz
dE51bGxLZXlSYW5nZSgpCiAgICAgICAgIHdpbmRvdy5leHBlY3RlZEluZGV4ID0gdXBwZXI7CiAg
ICAgICAgIHdpbmRvdy5udWxsS2V5UmFuZ2VTdGVwID0gMjsKICAgICB9IGVsc2UgewotICAgICAg
ICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0yNTUsNSArMjUzLDYgQEAgZnVuY3Rpb24gdGVzdE51bGxLZXlSYW5nZSgpCiBvcGVu
RGF0YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0ZXAuCiAgCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCmluZGV4IDk2
NzBmMjEzMTBlMjY1NjFlYjJiYTFiZjQ1YWUxODhlMWQzZTc4NmEuLmUyMzZkOWMxNTE4YzFlNDRl
MDVmMjk1YTUxNDQ5Yzc1ZjBkMjE0MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1nZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IElu
ZGV4ZWREQiBpbmRleCAuZ2V0KCkgcmVxdWlyZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ4LDEyICs0NiwxMyBAQCBmdW5jdGlvbiBj
cmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBpbmRleCA9IGV2YWxBbmRMb2coImlu
ZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2ZpcnN0JywgJ2ZpcnN0Jyk7Iik7CiAgICAg
c2hvdWxkVGhyb3coImluZGV4LmdldCgpOyIpOwogICAgIHNob3VsZFRocm93KCJpbmRleC5nZXRL
ZXkoKTsiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgp
OwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sCmluZGV4IGRmYzE0
MDg2MGE1MTI3NWJlOTc1NmE1NTJkYTJlNGZhODI2NDY4MjYuLjlmOTZlZmYzOWRhMDVmNGRhNGM2
ODkxZjZmMWI5YTE0MTcwMmFiMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LW11bHRpZW50cnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBmZWF0dXJlcyBvZiBJbmRleGVkREIncyBtdWx0aUVudHJ5IGlu
ZGljZXMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0x
NDAsNyArMTM4LDcgQEAgZnVuY3Rpb24gY3JlYXRlSW5kZXhPblN0b3JlV2l0aERhdGEoKQogICAg
ICAgICB2YXIgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0cmFucyAhPT0gbnVsbCIpOwogICAgICAgICB0cmFu
cy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgIHRyYW5zLm9uY29t
cGxldGUgPSBmdW5jdGlvbigpIHsgdmVyaWZ5SW5kZXhlcygnaW5kZXgtbmV3JywgZG9uZSk7IH07
CisgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsgdmVyaWZ5SW5kZXhlcygn
aW5kZXgtbmV3JywgZmluaXNoSlNUZXN0KTsgfTsKIAogICAgICAgICBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKICAgICAgICAgZXZhbEFu
ZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4LW5ldycsICd4Jywge211bHRpRW50cnk6IHRy
dWV9KSIpOwpAQCAtMTUwLDYgKzE0OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUluZGV4T25TdG9yZVdp
dGhEYXRhKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbApp
bmRleCBjZmY5ZjQ3NjI5NjkwZDM3ZmRjN2JiZDFjNDM4ZjJjN2FlMmE0Njk3Li4zOGE2MmU0MjVk
ODlkZGYwYzAwZTkyY2FlMmY5OGI3YmZiNDA2YzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGZlYXR1cmVzIG9mIEluZGV4ZWREQidzIHVuaXF1ZSBpbmRp
Y2VzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTM2
LDEzICsxMzQsMTQgQEAgZnVuY3Rpb24gZmluYWxBZGRTdWNjZXNzKCkgewogICAgIC8vIEFuIG92
ZXJ3cml0ZSBzaG91bGQgYmUgb2suCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogMX0sICdiYXonKSIpOwogICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZG9uZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpbmlzaEpTVGVzdDsKIH0KIAog
dGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKaW5kZXggNzc5
ZThlYmM3OGNiMWUwYTBkYjVhNGQ5ZDVhNmVmMTdlYjlmYmFjZi4uODdlNDVkYWRhZTkwZTY4N2Rj
MTAxYjFjYmYyYjNjNWVlNjgxNjg5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRl
c2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBpbnZhbGlkIGtleXMiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTY5LDEyICs2NywxMyBAQCBmdW5jdGlvbiB0
ZXN0SW52YWxpZEtleXMoKQogICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0
ID0gb2JqZWN0U3RvcmUucHV0KCd2YWx1ZScsICIgKyBrZXkgKyAiKSIsICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5EQVRBX0VSUiIpOwogICAgIH0pOwogICAgIAotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXkt
Z2VuZXJhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLmh0bWwKaW5kZXggMjEyNDA0NTMxMTQ1YmU3M2JiZjMwMGIxNDRiMDdkNmYwY2QxZWYzMS4u
NTVhMTM0NWNlMjMzYjM2MGFlZDRiZmVmOWRjMjY1ZjA2ZTNhZjdhMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGtleSBnZW5lcmF0
b3IgYmVoYXZpb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDAsNyArMzgsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIGZ1bmN0aW9u
IG5leHRUZXN0KCkgewogICAgICAgICBpZiAoIXRlc3RzLmxlbmd0aCkgewotICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtMjE5LDUgKzIxNyw2IEBAIGRlZmluZVRlc3QoCiB0ZXN0KCk7CiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBl
cy5odG1sCmluZGV4IDljNjcwZDI2NTQ5MDBkYTQzZGMzYmJiZDY3YTMyYmY2ZmE1NzQyZmMuLmRk
ZTBlMGM4OWNmNTFjNmZlODkyMmYyOGY1MjBlOWUwNDFkNGYwMTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9z
cy10eXBlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIga2V5IGNvbXBhcmlzb24iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTkyLDcgKzkwLDcgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3Io
KQogICAgICAgICAgICAgZXZhbEFuZExvZygia2V5SW5kZXgrKzsiKTsKICAgICAgICAgfQogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTAxLDUgKzk5LDYgQEAgZnVuY3Rpb24gb3Bl
bkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sCmluZGV4IDVmZWQ0OWI1NTQ1ZDkyZWZmZWM0YzdlMTk1MTc3MjY3MjZiYjhi
OTYuLmM3MTlhZDEwOTc1OGM4ZWY5MWM3ODg1ZWEwZTYwY2QyN2VjZTA3ZjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLmh0
bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiBrZXkgY29tcGFyaXNvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtODksNyArODcsNyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJrZXlJbmRleCsrOyIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC05OCw1ICs5Niw2IEBAIGZ1bmN0aW9uIG9wZW5BQ3Vyc29yKCkK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJheS5odG1sCmluZGV4IDky
ZmNjMDZlYTE3MjY0M2E3NjU5YWI5ZjIwZGIyODFhOWQzMjc1MDUuLmUxNjUwMzJkN2M4YjY4MzMy
YTFhNWMzZmIxNTJhODc3NGFiZDJkNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5LXR5cGUtYXJyYXkuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSB0eXBlcyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjAyLDExICsyMDAsMTIgQEAgZnVuY3Rp
b24gdGVzdERlcHRoTGltaXRzKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJpbmRleGVk
REIuY21wKG1ha2VBcnJheU9mRGVwdGgoMjUwMCksIDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9u
LkRBVEFfRVJSIik7CiAgICAgZGVidWcoIiIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1p
bmZpbml0eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5m
aW5pdHkuaHRtbAppbmRleCA2OGMwOGVhYzRiYzVmZmIxYzJiMTBmNDI3ZGRlZTFkY2U1ODEyZTM2
Li43MjQxZjdiZjVkOTQxNTJhYjVkZTc0NmZlYjc4MzVkM2NiZWZmMmFjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5Lmh0bWwKQEAg
LTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBr
ZXkgdHlwZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTYxLDEyICs1OSwxMyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAyKCkKIAogZnVuY3Rpb24gdGVzdEdy
b3VwMygpCiB7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sCmluZGV4IDg2ZWQzMjU1
Njg0MzM2Y2QwOTMzZjdmOWFlM2EwYTk5NWQzYTRhZDkuLjIyM2Q2NGY1M2U2ODM2NzVjMmUwMzdl
NmFmNzMzODVkNzlhOGM4YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1iYXNpY3MuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgZm9yIHZhbGlkIGFuZCBpbnZhbGlkIGtleXBhdGhzIik7Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDEsMTIgKzk5LDEzIEBAIGZ1
bmN0aW9uIHRlc3RJbnZhbGlkS2V5UGF0aHMoKQogICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOwogICAgIH0pOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbAppbmRleCBm
OGM5MDQ5YjM4ODhhNjkxOGVhYTczNGE1MjZiOWQ4NjZkODVhNjRkLi5lZDhhMjY4YzU1NGM0Mjhi
NDQzNTk1Y2FkZjg4Mzk1ZWU0ZDRiZGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1lZGdlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5UGF0aCBlZGdlIGNhc2VzIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTcsMTEgKzExNSwxMiBA
QCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHNBbmRHZW5lcmF0b3IoKQogICAgIH07CiAKICAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IGRvbmU7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlz
aEpTVGVzdDsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1m
ZXRjaC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0
Y2gta2V5Lmh0bWwKaW5kZXggNGE5MzM1OWExMjQ4MjhmZWUwOTQ3NGYwYjIyZTU5ZTY1ZjM5NDI5
Ny4uOTY1ZWNiODIyNDNhYTBhYzI4MzFkMDVmYzIzMDBkNTJjNzFkNjJlZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
a2V5UGF0aHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTkwLDcgKzg4LDcgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogICAgIGlmICgrK25leHRUb09w
ZW4gPCB0ZXN0RGF0YS5sZW5ndGgpIHsKICAgICAgICAgY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RT
dG9yZSgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CiAgICAgfQogfQogCkBAIC05OCw1ICs5Niw2IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29y
KCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLXJlcXVpcmVkLWFy
Z3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVx
dWlyZWQtYXJndW1lbnRzLmh0bWwKaW5kZXggYjQ5ZmE3ODBmZDgxNWE0MGM2ZmEzZGRjYmViZTRi
NGI0Njk1MGMzMy4uMDYyODdjYzUzMzY3NDkxZTk1M2RkZmI2MjM2MzRmZThhNjMyNjYwNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVxdWlyZWQt
YXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFu
Z2UtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlyYW5nZSByZXF1aXJlZCBhcmd1bWVudHMi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTMwLDEyICsy
OCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzaG91bGRUaHJvdygiSURCS2V5UmFuZ2UuYm91
bmQoMSk7Iik7CiAgICAgc2hvdWxkVGhyb3coIklEQktleVJhbmdlLmJvdW5kKCk7Iik7CiAKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXJhbmdlLmh0bWwKaW5kZXggYmE5YWRmYTJhYWVkMzFjMTg1NDFkMTE0ODBkNGIzNGNj
NjEyOWIwNi4uN2IwMDE5NDAyYTg0MTlhYTVlZDUwYmI4ZDZiMDNiMGM3OWJmZTAxMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS5odG1sCkBAIC05LDggKzksNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgS2V5UmFuZ2UuIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gY2hlY2tTaW5nbGVLZXlSYW5nZSh2YWx1
ZSkKIHsKQEAgLTE5MCw4ICsxODgsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogdGVzdCgpOwogCi1k
b25lKCk7CitmaW5pc2hKU1Rlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3Jk
ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3JkZXJpbmcu
aHRtbAppbmRleCAwOGZkNTRmZmViMmI0OGRlYWQ2NThkNGE3MmE3OTRhMmU5MTE4YjFmLi43NGE0
OTQ3NzcxYzQ4ZDgzZTRlMzBhZjA3YzNlMGRmODVmMmYxNGQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy5odG1sCkBAIC0xMCw4ICsxMCw2IEBA
CiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBzdHJpbmcgbGlzdCBvcmRlcmluZyBpbiBJ
bmRleGVkREIuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdmFyIGV4cGVjdGVkX29yZGVyID0g
WwogICAiIiwKQEAgLTg3LDcgKzg1LDcgQEAgZnVuY3Rpb24gdGVzdFN0b3Jlc0FuZEluZGV4ZXMo
KQogCiAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChzdG9yZS5p
bmRleE5hbWVzLCBleHBlY3RlZF9vcmRlcikiKTsKIAotICAgICAgICAgICAgICAgIHRyYW5zLm9u
Y29tcGxldGUgPSBkb25lOworICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5p
c2hKU1Rlc3Q7CiAgICAgICAgICAgICB9OwogICAgICAgICB9OwogICAgIH07CkBAIC05Niw1ICs5
NCw2IEBAIGZ1bmN0aW9uIHRlc3RTdG9yZXNBbmRJbmRleGVzKCkKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbAppbmRl
eCAwZGExZmQ2NjJjYjM3ZDA3NTIxNzU2M2JhYzI1Mzk1MjM1NWE4MWVlLi5kMzdmYjNkYjBiN2Q4
OGQwN2JjY2I1OTdlNjhlY2MzOGQwMDFkNzM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2FkZC10d2ljZS1mYWlsdXJlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS5odG1sCkBA
IC02NCwxMyArNjQsMTQgQEAgZnVuY3Rpb24gYWRkRmlyc3RTdWNjZXNzKCkKIGZ1bmN0aW9uIGFk
ZFNlY29uZEV4cGVjdGVkRXJyb3IoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJy
b3JDb2RlIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSIik7Ci0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLmh0
bWwKaW5kZXggMmZiOTFkYTY4MmY3NDgzNjExYjIxZTQxNDFlMjUxZTE1Y2YyODY1Zi4uZGNjZTI3
OTNiODc0MzNjNWRkMGM0YzU2OWIwZTc4MGVlYTllMTg3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQt
aW5kZXhlcy5odG1sCkBAIC04OSwxMyArODksMTQgQEAgZnVuY3Rpb24gY2hlY2tTZWNvbmRJbmRl
eEFuZFByZXBhcmVUaGlyZCgpCiBmdW5jdGlvbiBjaGVja1RoaXJkSW5kZXgoKQogewogICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LmlkIiwgImtleSIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGguaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGguaHRtbAppbmRleCAyYmI2Y2VjNTc0ZTAxYzIxOTdh
ZGIwNTA0OGEyMjFhNjNiZjZlYWQ4Li5hNGI2ZDMzMzA0OTQ0NDljODQ0NzVhYzMzNGE1NTUzNGU0
MmU0ZGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2JhZC1rZXlwYXRoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9iYWQta2V5cGF0aC5odG1sCkBAIC01NSwxMyArNTUsMTQgQEAgZnVuY3Rpb24gY2xlYW5E
YXRhYmFzZSgpCiBmdW5jdGlvbiBhZGRGaXJzdFN1Y2Nlc3MoKQogewogICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oInJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoe30pOyIsICJJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5EQVRBX0VSUiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xl
YXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xlYXIuaHRt
bAppbmRleCAxODUxNjljZjI0MGIzMTFlZDBhY2ZmNWU4ZDBhODk4MTVmOGE0YzZhLi5jODk3ZTFl
NWQ5NTg4ZWNkMjBjOGZhNDI0MGUyZTA1YmI4YTFhODJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jbGVhci5odG1sCkBAIC02NywxMyArNjcsMTQgQEAg
ZnVuY3Rpb24gYXJlV2VDbGVhcllldCgpCiB7CiAgICAgY3Vyc29yID0gZXZhbEFuZExvZygiY3Vy
c29yID0gcmVxdWVzdC5yZXN1bHQ7Iik7CiAgICAgc2hvdWxkQmUoImN1cnNvciIsICJudWxsIik7
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlx
dWUuaHRtbAppbmRleCA2NWFiNDZmNjM5NTllMTI3YjU5MmZkZDM5NzE1ZmU2MzFjNjI4MDEwLi43
ZGE4MDUwMTJjZDhkZDM0NTI5YWU1MzMyN2MwZTBjN2ZkYzY2NTEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRl
eC11bmlxdWUuaHRtbApAQCAtNjgsMTMgKzY4LDE0IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFZlcmlm
eUluZGV4KCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmRiIiwgImRi
Iik7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5yZWFkeVN0YXRlIiwg
IklEQlRyYW5zYWN0aW9uLkxPQURJTkciKTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uVkVSU0lPTl9DSEFOR0UiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgt
d2l0aC1pbnRlZ2VyLWtleXMuaHRtbAppbmRleCBiNzFiZmVhNWQ4YmEyYmQyODZhZjM0MzE0YTdk
NDg2MzI4ZDEyNTI0Li5mZTg1OTI4ZjNiZjg3YjllN2E0NTU3MTkzMzVjNWRjNDc3MDljMDVkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1p
bmRleC13aXRoLWludGVnZXIta2V5cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwKQEAgLTYz
LDEzICs2MywxNCBAQCBmdW5jdGlvbiB2ZXJpZnlLZXlDdXJzb3IoKQogICAgIHNob3VsZEJlRmFs
c2UoImN1cnNvciA9PSBudWxsIik7CiAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAiZGF0YS5u
dW0iKTsKICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAiZGF0YS5pZCIpOwotICAg
IGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3Rv
cmUtYmFzaWNzLmh0bWwKaW5kZXggYzA2NDc0NzEyNzhmNjJlODRiZjQxYmE4Y2QyYWNhOWU0OGMy
YzIyZC4uODdhODNkMzJkNjM4MzAyMDVmNjJiN2U0OGU4OGI3ODExYzg3MWYwMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3Rv
cmUtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKQEAgLTczLDEzICs3MywxNCBAQCBmdW5j
dGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbi5tb2RlIiwgIklEQlRyYW5zYWN0aW9uLlZFUlNJT05fQ0hBTkdFIik7CiAgICAgfQog
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtbnVsbC1u
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1v
YmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbAppbmRleCA5Y2IxYjhjY2M3Y2QzZDVlYTcxOTRkZTg5
OWNiMGIxZjI1M2ViMTM0Li4xM2ZkZjZjYmJhZmE1Y2UwN2Y4MmJkMTJkMTIyODk0NjAyMWI0YmJh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0
ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbApAQCAtNDks
MTMgKzQ5LDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogICAgIG9iamVjdFN0b3JlID0g
ZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShudWxsKTsiKTsK
ICAgICBzaG91bGRCZSgib2JqZWN0U3RvcmUubmFtZSIsICInbnVsbCciKTsKIAotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLW9iamVjdHN0b3JlLW9ubHkuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9u
LW9iamVjdHN0b3JlLW9ubHkuaHRtbAppbmRleCAwYzE0Njk1N2U2YzBlOTJmZTJmY2NlMGU4Yjc5
ZjNhYTIxMTRhMDE5Li45MThjODdjNzgyZTE2ZDE4OGRlNGY2MmE5ZGZkOTE1ZjZkNzEwMTQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1t
dXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5odG1sCkBA
IC0xNDgsMTIgKzE0OCwxMyBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5nQ3Vyc29yUmVzdWx0cygp
CiAgICAgc2hvdWxkQmUoImNvdW50IiwgIm9iamVjdFN0b3JlRGF0YS5sZW5ndGgiKTsKICAgICBz
aG91bGRCZSgic2F3QWRkZWQiLCAidHJ1ZSIpOwogICAgIHNob3VsZEJlKCJzYXdSZW1vdmVkIiwg
InRydWUiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgp
OwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9u
Lmh0bWwKaW5kZXggZDZiMDlmMWNlMWRjNDRiOWJiOTU5YzVmMjFhZDE0NjEwNTllZGQ0Ny4uNTNj
MzFjNzU2NThhZGY4ZGQ2ZTJjNzJhZjZkYWQ2ZTlhNDZhZDUwNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5o
dG1sCkBAIC0xODgsMTIgKzE4OCwxMyBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5nQ3Vyc29yUmVz
dWx0cygpCiAgICAgc2hvdWxkQmUoImNvdW50IiwgIm9iamVjdFN0b3JlRGF0YS5sZW5ndGggLSAx
Iik7CiAgICAgc2hvdWxkQmUoInNhd0FkZGVkIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic2F3
UmVtb3ZlZCIsICJmYWxzZSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci11
cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2N1cnNvci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwKaW5kZXggZWIwYzBi
ZjFhNGZkMzU2OWQxMjFmMzU2OGQ1YTg4ZDBhOGQxMmFhNi4uNTFhZTczMzcyYTJjMGE0YzhjNWJi
NzRjZmI1YTE5NThmZGZkY2IwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVwZGF0ZXMtaW5kZXhlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLXVwZGF0ZS11cGRhdGVz
LWluZGV4ZXMuaHRtbApAQCAtNjMsNyArNjMsNyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uKCkKICAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRlSW5kZXhB
bmRBZGQ7CiAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgfQogfQogCkBAIC0xMjgsNiArMTI4LDcgQEAgZnVuY3Rpb24gY2hlY2tJbmRleDIoKQog
dGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvcnMuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1sCmlu
ZGV4IGJkZmQ1MmFjNzVhYTVjZGI2OTNiNmUxYzgzZDM4NzBkY2VmNmM2YWEuLjIyOTg4YmMxOTFl
YmZlZDk3OGM2NmRjZDY1MjdiNmQwZTg4NzNiNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1sCkBAIC0zOTUsNyArMzk1LDcgQEAg
ZnVuY3Rpb24gdGVzdEdyb3VwMTUoKQogICAgICAgfQogICAgICAgZWxzZSB7CiAgICAgICAgIHNo
b3VsZEJlKCJrZXlJbmRleCIsICItMSIpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwogICAgICAgfQogICAgIH0KIH0KQEAgLTQwNCw2ICs0MDQsNyBAQCBmdW5jdGlv
biB0ZXN0R3JvdXAxNSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvZGVsZXRlLXJlc3VsdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWwKaW5kZXggMmE1ZjRlYWZmMDAyNjdmYThjM2VjYzA1
MGQ1MjljMzIzMjExNjY0My4uZDVjOWRhOTA0Yjk3NjFjZTc5OTc0NTIzMzU2Y2FkNWQ1Yjk5YTAx
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxl
dGUtcmVzdWx0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9kZWxldGUtcmVzdWx0Lmh0bWwKQEAgLTY3LDExICs2NywxMiBAQCBmdW5jdGlvbiBkZWxldGVS
ZWNvcmQyKCkKIGZ1bmN0aW9uIGZpbmFsQ2hlY2soKQogewogICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9l
dmVudC1zb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
ZXZlbnQtc291cmNlLmh0bWwKaW5kZXggZDk2YTBiOTcxNTAzZTA5MmY2NGQzOTg3NmMxOGNlYmEz
NGE1ZjY1ZC4uNzEyNDA3OTM3ZTVlMTk1NTFkNmRjODg1NWY2OWJjZmQyYzljZjI1MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1zb3VyY2Uu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2ZW50LXNv
dXJjZS5odG1sCkBAIC02MCwxMyArNjAsMTQgQEAgZnVuY3Rpb24gYXJlV2VEb25lWWV0KCkKIHsK
ICAgICBzb3VyY2UgPSBldmFsQW5kTG9nKCJzb3VyY2UgPSBldmVudC50YXJnZXQuc291cmNlOyIp
OwogICAgIHNob3VsZEJlKCJzb3VyY2UiLCAib2JqZWN0U3RvcmUiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2dsb2JhbC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2dsb2JhbC1kYXRhLmh0bWwKaW5kZXggYWVmMzY4NjFhNjc1ZGVkMTIw
YzdlZTg4YmU4M2RmY2FjZDQ1MmY4ZS4uMGNhNmYyYzBhZjE5ZWI2OTFjYmM0ZDk0OGE0OThkZjM4
OGM4MTllMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9nbG9iYWwtZGF0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvZ2xvYmFsLWRhdGEuaHRtbApAQCAtNzQsMTMgKzc0LDE0IEBAIGZ1bmN0aW9uIG9wZW4y
U3VjY2VzcygpCiAgICAgc2hvdWxkQmUoIm9iamVjdFN0b3JlMi5uYW1lIiwgIm9iamVjdFN0b3Jl
TmFtZSIpOwogICAgIHNob3VsZEJlKCJvYmplY3RTdG9yZTIua2V5UGF0aCIsICJvYmplY3RTdG9y
ZU9wdGlvbnMua2V5UGF0aCIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRl
eGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMu
aHRtbAppbmRleCA1MDIxM2IzNDE1NTg1MTI1Nzc3YmRhODc1ODk1MDNhYTIzMTZkNTYxLi42OTcy
MmUzNzAyNGZjNjdjMjZkZmFjYTNiODlkZWRjMmVkMTZjNWVmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbApAQCAtMTAxNSw3ICsx
MDE1LDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMzAoKQogICAgICAgICB9CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgIm9iamVjdFN0b3JlRGF0YU5hbWVT
b3J0Lmxlbmd0aCIpOwotICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMDI0LDYgKzEwMjQsNyBAQCBmdW5jdGlv
biB0ZXN0R3JvdXAzMCgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1r
ZXkuaHRtbAppbmRleCAwNDQyMDhlMWM2ODMzMzFhZTAzNTAzYzdhMDFkYWZkMjQzMzgxY2M0Li5m
YWUwZjZiZTRmM2NiNzA0ZGIxZmI1ZmU2OTA5NWE3MmYxNGQ5ZmVjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtZGVsZXRl
LW51bGwta2V5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5odG1sCkBAIC00NSwxMyArNDUsMTQg
QEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZUFuZENyZWF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2Jq
ZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFyJyk7Iik7CiAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigib2JqZWN0U3RvcmUuZGVsZXRlKG51bGwpOyIsICJ3ZWJraXRJREJEYXRh
YmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
a2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2Vk
Lmh0bWwKaW5kZXggZmJhODI0ZmMxZTZlNTBiZTM1MTIyODc4N2UxYmRhMWE0YTM2MGI2Mi4uYmZk
OTQ3MTFmMmU4MmE1Y2YxMGYyNGNhODI1ZjdlYTk1OGY4ZTY4MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1h
bmQtcGFzc2VkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLmh0bWwKQEAgLTQ3LDEyICs0Nywx
MyBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnYmF6JywgeyBrZXlQYXRoOiAnaWQnIH0pOyIpOwogICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oIm9iamVjdFN0b3JlLmFkZCh7aWQ6IDV9LCA1KTsiLCAid2Via2l0SURC
RGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWwKaW5kZXgg
NTI1YTM2ODJmMjAxOGE4ZGM1ZTdjMjU1OTFhNDQ3N2FkNzI3NWMzNS4uNmM5MDc4Y2Y3OWZhNTk2
NGE2MmEwYmQzNjM4ZWY1ZTRhZTBkYzEwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
cHV0LW5vLWtleS5odG1sCkBAIC00NywxMyArNDcsMTQgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFz
ZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2
YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2JhcicpOyIpOwog
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9iamVjdFN0b3JlLnB1dCh7fSk7IiwgIklEQkRh
dGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS5odG1sCmlu
ZGV4IDdiZmI2MWYxYjBiMGU2MmQ1MTc2MjFmY2E0OGVmNzkyMDEzZjVkMjYuLjNlZTBiNGI3NTI4
OWZlZGI0MDViNmIxZGE5YWU2YjJmODg0ZGVhM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbnVsbC1rZXkuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJl
bWVudHMtcHV0LW51bGwta2V5Lmh0bWwKQEAgLTQ3LDEzICs0NywxNCBAQCBmdW5jdGlvbiBjbGVh
bkRhdGFiYXNlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0
b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFy
Jyk7Iik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigib2JqZWN0U3RvcmUucHV0KHt9LCBu
dWxsKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCmluZGV4IGNhNTM0ZmQ4
ZGRmZDA4MzZjNzMzNTcwZTU4YTEwNmU5Y2FiZTc0OWYuLjhmY2FjZGQwMDlmMGZkODRkYjljMTE2
N2ZiMTQxODE4MjM1Zjg5MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCkBAIC03OCwxMyArNzgs
MTQgQEAgZnVuY3Rpb24gcG9zdFB1dDIoKQogZnVuY3Rpb24gcG9zdFB1dDMoKQogewogICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgImtleTIiKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3JzLmh0bWwKaW5kZXggZTdkYzVhN2IyNTAwZTYx
YWE4Nzc0MzdhOGU0ODcxY2ZlMWU2ZTczZC4uODgwYmY4ODAwMzIwMmJhYjMzMWY1OTg5NTU3YWMy
N2NlM2I1YWIxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9vYmplY3QtY3Vyc29ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMuaHRtbApAQCAtNzAsNyArNzAsNyBAQCBmdW5jdGlv
biBwb3N0QWRkKCkKICAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LnZh
bHVlLm5hbWUiLCAiJ0JlbiciKTsKICAgICAgICAgICAgIGlmICgrK2luZGV4ZXNGaW5pc2hlZCA9
PSBudW1JbmRleGVzKSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG9JbmNyZW1lbnQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBzZXR1
cEF1dG9JbmNyZW1lbnQoKTsKICAgICAgICAgICAgICAgICB9CkBAIC05Niw2ICs5Niw3IEBAIGZ1
bmN0aW9uIHNldHVwQXV0b0luY3JlbWVudCgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS5odG1sCmluZGV4IDRkZTlkYWY4
YjdmNjQwNzk4MzBkNzRhNjE1MzVmMWFjNzEyYjg3MDYuLmNlMTBhZGQwOWEzMDk3YWE0YTIwZWMy
YjIzYmZjOTE4NGI3MjY4NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtaWRlbnRpdHkuaHRtbApAQCAtNjksMTIgKzY5LDEz
IEBAIGZ1bmN0aW9uIHRlc3RJZGVudGl0eVNvbWVNb3JlKCkKICAgICBzaG91bGRCZUZhbHNlKCJp
bmRleDMgPT09IGluZGV4MSIpOwogICAgIHNob3VsZEJlRmFsc2UoImluZGV4NCA9PT0gaW5kZXgy
Iik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAog
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1
dG9pbmNyZW1lbnQta2V5LWFkZGVkLW9uLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1dG9pbmNyZW1lbnQta2V5LWFk
ZGVkLW9uLXB1dC5odG1sCmluZGV4IDRiMDkyZDc1Y2ZiY2M1MWUxNDk4ZmE4ZDBmODE1Yzc1NTA4
MzZjMDYuLmU2Y2Y2OTZiM2M1MTYzYWFlMzIyMmI2Y2M1ZjA3MGM4MDhmNzE4NzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlu
bGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3Jl
bWVudC1rZXktYWRkZWQtb24tcHV0Lmh0bWwKQEAgLTY5LDEzICs2OSwxNCBAQCBmdW5jdGlvbiBn
ZXRTdWNjZXNzKCkKIHsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5uYW1lIiwg
InRlc3Quc3RvcmVkT2JqZWN0Lm5hbWUiKTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJl
c3VsdC5pZCIsICJpZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0
b3JlLXJlbW92ZS12YWx1ZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvb2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1ZXMuaHRtbAppbmRleCA4MGYzMjc4MDRlODFk
ZDVkNzZlYTIyNzc0YWE0NDc0YjZmM2VjOWEzLi5jYzJlNjk2MDMyODNmYjZhODAxOTI3MTI5YTUy
NDM1MzQxN2MxMjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1s
CkBAIC03NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogICAgICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGNyZWF0ZU9iamVjdFN0b3JlOwogICAgICAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB9IGVsc2UgewotICAgICAgICBkb25lKCk7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0KIApAQCAtMTMxLDYgKzEzMSw3IEBA
IGZ1bmN0aW9uIGZpbmFsQ2hlY2soKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL29iamVjdHN0b3JlbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy5odG1sCmluZGV4IGJiOTQzMTc0MTBh
ZTZiMjYzYzM2MzBjOTE5ZDk0MTYxMTUxMDYxNWEuLjg1YzFlNTkwZTdkOWYzNjA0ZDFiMzFlMGYz
ZDhkYWFkMzVhN2Q4NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy5odG1sCkBAIC01MCwxMyArNTAsMTQg
QEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgc2hvdWxkQmVUcnVlKCInb2JqZWN0U3Rv
cmVOYW1lcycgaW4gZGIiKTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5n
dGgiLCAiMSIpOwogICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVzLml0ZW0oMCkiLCAi
b2JqZWN0U3RvcmVOYW1lIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVz
dWx0LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29k
ZC1yZXN1bHQtb3JkZXIuaHRtbAppbmRleCBlZjUzZmUzNTAyMWEzMzFjNTNlYWVmMGE3Njg3NmUw
NTUwNWFhYmFlLi5hNGQ0N2MzMjk3Y2E5MDkyZDFkNWUzZjdlMTY0YjI2YzZmZjMxNTgyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQt
b3JkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29k
ZC1yZXN1bHQtb3JkZXIuaHRtbApAQCAtMTI2LDEyICsxMjYsMTMgQEAgZnVuY3Rpb24gZGVsZXRl
UmVjb3JkKCkKIGZ1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoKQogewogICAgIGRlYnVnKCJkZWxldGVT
dWNjZXNzKCk6Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb3Blbi1kYXRhYmFzZS1u
dWxsLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb3Bl
bi1kYXRhYmFzZS1udWxsLW5hbWUuaHRtbAppbmRleCBkNzFhZmZiMGM0OGRmNTJjNGIzMDc1ZmNk
YWFmOWQxYTE5ZTdkMjUzLi4xOTJiZjlmZmQ4ODkyOTE3OTZiMzA0MDlhYWU1NjAxNTAxNTI1MTlj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29wZW4t
ZGF0YWJhc2UtbnVsbC1uYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51bGwtbmFtZS5odG1sCkBAIC0zOCwxMyArMzgsMTQg
QEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQogewogICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CiAgICAgc2hvdWxkQmUoImRiLm5hbWUiLCAiJ251bGwnIik7
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy5odG1sCmlu
ZGV4IGE2NzgxYTNiMWVjOWY2NmNlNjEyNjg3ZmI5MTJkYTk4NjdmNDY3NmIuLmMzODFjOTQ2ZTY3
NTAxNzNhNDQzNjNjOTRiNDZiNGU0NmVlN2ZhN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdldC12YWx1ZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwKQEAgLTEx
MSwxMyArMTExLDE0IEBAIGZ1bmN0aW9uIHBvc3RBZGRJbnRBdXRvSW5jcmVtZW50KCkKIGZ1bmN0
aW9uIHBvc3RHZXRJbnRBdXRvSW5jcmVtZW50KCkKIHsKICAgICBzaG91bGRCZSgiZXZlbnQudGFy
Z2V0LnJlc3VsdCIsICJ0ZXN0SW50LnZhbHVlIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLmh0bWwKaW5kZXggMDYyYjcyOGE3
OWE4NzdhZDIwNzcxNzc0NDRiY2M2NzRmNTUyNDYzNi4uMWRiN2I4NTE5MTA0NTQwYzNhNjFjOTU4
NzIyZWUxNTU1NjUyNmQzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sCkBAIC01
OCwxMyArNTgsMTQgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLnB1
dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0
U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihv
c05hbWUpLm9iamVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTIpOyIsICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5SRUFEX09OTFlfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9y
ZWFkd3JpdGUtdHJhbnNhY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAppbmRleCBlY2IxMzZkNWI5YTdi
ZDUxNzY1NmMxOWMwYmJhNDU5ZmYyZmVhYTEzLi5kMjNlMzU5YjNiYWRkYTYzMmY5YTY2YmNiZjE2
Yjk0ZjQ5OWQxZmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbApAQCAtMTE2
LDEzICsxMTYsMTQgQEAgZnVuY3Rpb24gcG9zdERlbGV0ZSgpCiBmdW5jdGlvbiBwb3N0RGVsZXRl
MigpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIiwgIklE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWR5U3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVhZHlTdGF0ZS5odG1sCmluZGV4IDE4Yzk2ZTA4ZWM1MGQzNTlkZGVhMTJlYjYwNzYyM2FkNTZl
ZGMyNjYuLjcyYjA1MTdmNWY0MTk2Y2Q3MmVkZjAyNjFiYmQwNTEwZTEyYjc0ZGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHlTdGF0ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHlTdGF0ZS5o
dG1sCkBAIC03OSwxMyArNzksMTQgQEAgZnVuY3Rpb24gZmluYWxDaGVjaygpCiAgICAgZGVidWco
ImZpbmFsQ2hlY2soKToiKTsKICAgICBzaG91bGRCZSgicmVxdWVzdC5yZWFkeVN0YXRlIiwgIklE
QlJlcXVlc3QuRE9ORSIpOwogICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LnRhcmdldC5yZXN1bHQg
PT0gbnVsbCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1pbmRleC5o
dG1sCmluZGV4IDhmOWJlNWYwNGUzODRmOGI4ODBhNjY1NzBlNDQ3Y2JhMjRkZWI3NTEuLjFkMjgw
YTZjNmQwNmJiYzhlZWE4YjM2M2UzMzg4YjA2MmQ2MmQxNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXguaHRtbApAQCAt
NTgsMTMgKzU4LDE0IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZERlbGV0ZUluZGV4KCkKICAgICBldmFs
QW5kTG9nKCJvYmplY3RTdG9yZS5kZWxldGVJbmRleChpbmRleE5hbWUpOyIpOwogICAgIHNob3Vs
ZEJlKCJvYmplY3RTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCIsICIwIik7CiAKLSAgICBkb25lKCk7
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1vYmplY3RzdG9yZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbAppbmRleCA1
YWQzNDdmMWZhODNiZmQ0NGQ4YzQ1ZTVjOWRiNWUwMzcyMDg2YmNmLi43YjI3ZWM5NmQzYTBiNWYw
YTJmZWEwMDE0MTY5YWMwOWM0MGUzMWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1vYmplY3RzdG9yZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLW9iamVjdHN0b3JlLmh0bWwKQEAg
LTExNCwxMyArMTE0LDE0IEBAIGZ1bmN0aW9uIHBvc3RTZXRWZXJzaW9uMygpCiBmdW5jdGlvbiBk
ZWxldGVUaGlyZE9iamVjdFN0b3JlKCkKIHsKICAgICBldmFsQW5kTG9nKCJkYi5kZWxldGVPYmpl
Y3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvdmVyc2lvbmNoYW5nZS1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLWFib3J0Lmh0bWwKaW5kZXggYTU5ZWNlYmViNDFmOWNk
N2RkZWRlZjA4ZGZiMWNkMTVmOTZmZTlmNy4uNzM2N2JjY2JkMTU5Yjg3NDViMjVkZTFhMWMyMWMy
Njc0MmRhMjI0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS92ZXJzaW9uY2hhbmdlLWFib3J0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLWFib3J0Lmh0bWwKQEAgLTYxLDEyICs2MSwx
MyBAQCBmdW5jdGlvbiBwb3N0QWJvcnQoKQogICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgImlu
aXRpYWxWZXJzaW9uIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3Ro
IiwgIjAiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgp
OwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS5o
dG1sCmluZGV4IGY0ZThkMDBhMmYyOGE1NDNlYmMwZDViNTM3YTQ1Y2EwOWFmZTk0NTMuLjI4ZWQ1
N2U5YWUzMTE1MDA5NDQzNGQ3YmZhNTgxYTMzMDY0MmVlOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS5odG1sCkBA
IC0xMDYsMTMgKzEwNiwxNCBAQCBmdW5jdGlvbiBwb3N0U2V0VmVyc2lvbjIoKQogICAgIHNob3Vs
ZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5WRVJT
SU9OX0NIQU5HRSIpOwogICAgIHNob3VsZEJlKCJkYjMudmVyc2lvbiIsICInMiciKTsKICAgICBz
aG91bGRCZSgidmVyc2lvbkNoYW5nZUV2ZW50Q291bnQiLCAiMyIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL211dGF0aW5nLWN1cnNvci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbXV0YXRpbmctY3Vyc29yLmh0bWwKaW5kZXggNDczNDEyNzg0ZDllNjdkODIwNmJlNWIyNWFh
MjcwMzFhOTZiNzhjYS4uMzRmMjgyOTc3M2RmOGFlZmQzODNhN2MyYjE1ZjkyOGJlZGY0NGRjOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vyc29y
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vyc29y
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBtdXRh
dGluZyBhbiBJbmRleGVkREIncyBvYmplY3RzdG9yZSBmcm9tIGEgY3Vyc29yLiIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIHRlc3QoKTsKIApAQCAtMTM0LDEwICsxMzIsMTEgQEAgZnVuY3Rpb24g
cmV2ZXJzZUN1cnNvcigpCiBmdW5jdGlvbiByZXZlcnNlQ3Vyc29yQ29tcGxldGUoKQogewogICAg
IGRlYnVnKCJyZXZlcnNlQ3Vyc29yQ29tcGxldGUoKSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVx
dWlyZWQtYXJndW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbAppbmRleCA1NGZjZjRhOTMzM2E1ODFlYjhm
ZDIyMzk3NDMxNDQ5ZTY3ODRhZTRmLi4xZjFjYTYxMTFhOTU2ODg2OTRiN2FjN2EyZGI4OTQyN2Yx
NjQ1NzJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RT
dG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbApAQCAtMTAsOCArMTAs
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIG9iamVjdCBzdG9y
ZSByZXF1aXJlZCBhcmd1bWVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0
ZXN0KCkKIHsKQEAgLTUzLDEyICs1MSwxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9i
amVjdFN0b3JlKCkKICAgICBzaG91bGRUaHJvdygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2Zv
bycpOyIpOwogICAgIHNob3VsZFRocm93KCJvYmplY3RTdG9yZS5pbmRleCgpOyIpOwogICAgIHNo
b3VsZFRocm93KCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgpOyIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwKaW5kZXggNzE4ZTBlNjQ4MmQ1
YTZkMzk4ZjdjOGQxYjMyOGU5NjgxYTlmNmZmYS4uYjEwMjljNDE2OTBlNWMwMjBjMzE3YWZkMzNl
NjM0YzcxNDBmYzQ0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQuaHRtbApAQCAtOSw4ICs5LDYgQEAK
IDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3Jl
IGF1dG8taW5jcmVtZW50IGZlYXR1cmUuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC0xNjMsNyArMTYxLDcgQEAgZnVuY3Rpb24gdGVzdExvbmdLZXlQYXRo
KCkKICAgICBkZWJ1ZygidGVzdExvbmdLZXlQYXRoKCk6Iik7CiAgICAgdHJhbnMgPSBldmFsQW5k
TG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdTdG9yZVdpdGhMb25nS2V5UGF0aCcsIHdlYmtp
dElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBkb25lOworICAgIHRy
YW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CiAKICAgICBzdG9yZSA9IGV2YWxBbmRMb2co
InN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ1N0b3JlV2l0aExvbmdLZXlQYXRoJykiKTsKICAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHtmb286ICdiYXInfSkiKTsKQEAgLTIw
MSw1ICsxOTksNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWNsZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1jbGVhci5odG1sCmluZGV4IDlmNTVlNzE3NjcyZjg1YjhlNzIzOWY3YzExMTdlN2ZhZWU3ZmQ1
NTYuLjI5OTU4OWZiNDA5ZDQzOGI2NGIxNzYyMTFiNWMyZmIxZWJiZmFhZjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbApA
QCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidz
IHdlYmtpdElEQk9iamVjdFN0b3JlLmNsZWFyKCkuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05OCwxMSArOTYsMTIgQEAgZnVuY3Rpb24gZ2V0U3VjY2Vz
cygpCiB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQucmVzdWx0Iiwg
InZhbHVlIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC5odG1sCmluZGV4IGYx
NDRlZmUwYWNhNThlZTAyMTE3YjBjMDNlN2VlODFiNmE5MDdhNTUuLjJiNDNjOGJhMDY0NGI4Mzlh
ZWJkMmY3ZDllZDY5OTMwOWM4N2I5NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3Jp
cHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlLmNvdW50
KCkuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTgs
NyArMTE2LDcgQEAgZnVuY3Rpb24gdmVyaWZ5Q291bnRXaXRoS2V5KCkKICAgICB0cmFucyA9IGV2
YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfT05MWSkiKTsKICAgICBzaG91bGRCZVRydWUoInRyYW5zICE9IG51bGwiKTsKICAg
ICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnMub25j
b21wbGV0ZSA9IGRvbmU7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKIAog
ICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykiKTsKICAgICBzaG91bGRCZVRydWUoInN0b3JlICE9IG51bGwiKTsKQEAgLTE1NCw1ICsx
NTIsNiBAQCBmdW5jdGlvbiB2ZXJpZnlDb3VudFdpdGhLZXkoKQogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbAppbmRleCA3YWIyNmRiOGE2NzFi
N2M5MmNkZTNjNGM2ZTY2ZjEwNGIxNmZhMTNiLi5iMmIxMDQ5OTAyZGZkODRhMDFkNzMwZTIzYWM5
Y2NhN2U1YTQ4NjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RzdG9yZS1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+IAogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yICsgdGhl
IGN1cnNvciBpdCBwcm9kdWNlcyBpbiBkZXB0aC4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogIAog
Ly8gSW4gb3JkZXIgb2YgaG93IGl0IHNob3VsZCBiZSBzb3J0ZWQgYnkgSW5kZXhlZERCLgogd2lu
ZG93LnRlc3REYXRhID0gWwpAQCAtMjE3LDcgKzIxNSw3IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5
UmFuZ2UoKQogICAgICAgICB3aW5kb3cuZXhwZWN0ZWRJbmRleCA9IHVwcGVyOwogICAgICAgICB3
aW5kb3cubnVsbEtleVJhbmdlU3RlcCA9IDI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG9uZSgp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MjMyLDUgKzIzMCw2IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5UmFuZ2UoKQogb3BlbkRhdGFiYXNl
KCk7IC8vIFRoZSBmaXJzdCBzdGVwLgogIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sCmluZGV4IGE2ZDY5MmVjYjA3ZmVk
Yzk1NmE3M2EyNTllODcxMjU1ZDU2ZjBmZGUuLjRhYTM3YmRhNWI0YWQ5MzQ3YzFjZjkwNDFjZTQ2
M2E0NTk3Njk4M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUuaHRtbApAQCAtOSw4ICs5
LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHdlYmtpdElE
Qk9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdFN0b3JlKCkuIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTcsMTEgKzk1LDEyIEBAIGZ1bmN0aW9uIHZlcmlm
eU5vdEZvdW5kKCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJ1bmRlZmlu
ZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJldmVudC50YXJnZXQuc291cmNlLmluZGV4TmFtZXMu
Y29udGFpbnMoJ2luZGV4TmFtZScpIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy5odG1sCmluZGV4
IDNjOGJhZGYwMTFmMDEzMGNlYzczOTFlNjVmNTlkZjY2MzNkOWE2YjkuLmYzMjJlNTViYzY5ZDEy
YzNmYmEyZDk3NGRjNWM2MTAwNDk0ZTdhMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb2RkLXN0cmluZ3MuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAog
ZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIG9kZCB2YWx1ZSBkYXRhdHlwZXMiKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEwOSw3ICsxMDcsNyBAQCBm
dW5jdGlvbiBvcGVuQ3Vyc29yU3VjY2VzcygpCiAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAg
dmVyaWZ5TmV4dERhdGFiYXNlKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG9uZSgpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKQEAgLTExNyw1ICsxMTUsNiBAQCBmdW5j
dGlvbiBvcGVuQ3Vyc29yU3VjY2VzcygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tY2xvc2UtdmVyc2lvbi5odG1sCmluZGV4IGUyNGJhZTIyNGU3MGYyNjVhYjJkN2UxNmVk
MDBmZjVlYTBiZTJlMDguLjIyYjdlMGY2MDc3Nzc3NzgzODFmODkyNjE3ZDM5ZDUzMmIzY2JhODEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xvc2UtdmVy
c2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xvc2Ut
dmVyc2lvbi5odG1sCkBAIC0yODUsMTIgKzI4NSwxMyBAQCBmdW5jdGlvbiB0ZXN0NigpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9u
LWNvbXBsZXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7
Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQogCiB0
ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbAppbmRleCAwNTcyOGQ4ZWIw
Y2IwNDAzNTVlYzZlY2JiYjU5MWQxN2MyNzcxM2I4Li42ZGJlYzE2YzEzZjJkZTBkNGZlNTk5YjU0
YmEwZjYzYjhlZmY0Y2M4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWN1cnNvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29w
ZW4tY3Vyc29yLmh0bWwKQEAgLTksMTQgKzksMTIgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gZW1wdHlDdXJzb3JTdWNjZXNzKCkKIHsKICAgICBkZWJ1ZygiRW1wdHkgY3Vyc29y
IG9wZW5lZCBzdWNjZXNzZnVsbHkuIikKICAgICAvLyBGSVhNRTogY2hlY2sgdGhhdCB3ZSBjYW4g
aXRlcmF0ZSB0aGUgY3Vyc29yLgotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogZnVuY3Rpb24gb3BlbkVtcHR5Q3Vyc29yKCkKQEAgLTkxLDUgKzg5LDYgQEAgdGVzdCgpOwog
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRt
bAppbmRleCA1YmU3MDBmODVlOTVkZjE3MTdlMmY0YjIxNjZhOTJlNTczMGQ5ZGY5Li41NmJkMTU3
MjM0M2NhODE5ODFmMWEwYzg4YzE2NzJiNzQzYWJhYjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0bWwK
QEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QiBvcGVuaW5nIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGR1cmluZyB0cmFuc2FjdGlvbnMiKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTU0LDcgKzUyLDcgQEAg
ZnVuY3Rpb24gc3RhcnRUcmFuc2FjdGlvbigpCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IGZ1bmN0
aW9uIChlKSB7CiAgICAgICAgIGRlYnVnKCJ0cmFuc2FjdGlvbiBjb21wbGV0ZSIpOwogICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0YXRlIiwgIm9wZW4zY29tcGxldGUiKTsKLSAgICAg
ICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9OwogCiAgICAgZGVidWco
IiIpOwpAQCAtOTAsNSArODgsNiBAQCBmdW5jdGlvbiB0cnlPcGVucygpCiB0ZXN0KCk7CiAKIDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy5odG1sCmluZGV4IGEwMmNlYWIyNGQxNjYy
OGVhZDhhZmM3OGI4YmE0NTFiYjgwOGI3YTQuLmViZWVhYzIwMGVlNTYzOTlmZWM3ZjFjNTlkMjM1
MWQyNDQ1MzJiNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1
ZXVlZC1jb21tYW5kcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1
ZXVlZC1jb21tYW5kcy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRp
b24oIlZlcmlmeSB0aGF0IHF1ZXVpbmcgdXAgc2V2ZXJhbCBjb21tYW5kcyB3b3JrcyAoYW5kIHRo
ZXkgYWxsIGZpcmUpLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkK
IHsKQEAgLTYwLDcgKzU4LDcgQEAgZnVuY3Rpb24gdmVyaWZ5QWRkKGV4cGVjdGVkKQogICAgIHNo
b3VsZEJlKCIiICsgYWRkQ291bnQrKywgIiIgKyBleHBlY3RlZCk7CiAKICAgICBpZiAoYWRkQ291
bnQgPT0gMykKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICBp
ZiAoYWRkQ291bnQgPiAzKQogICAgICAgICB0ZXN0RmFpbGVkKCJVbmV4cGVjdGVkIGNhbGwgdG8g
dmVyaWZ5QWRkISIpOwogfQpAQCAtNjksNSArNjcsNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMuaHRtbAppbmRleCBjZGNjYmQ2NDJhMzE5
ODA4ZGIyMjg5NDQ2NDVkM2Q5NzcxY2ZmZWZjLi5iZTI1OTBiMjZjODcwM2M5NTRmNGUzMWEzMGUy
NWM3ZjgxMmE3M2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZWFkb25seS1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVhZG9ubHktcHJvcGVydGllcy5odG1sCkBAIC05LDggKzksNiBAQAogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHJlYWRv
bmx5IHByb3BlcnRpZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiBzZXRSZWFk
b25seVByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSkKIHsKQEAgLTU3LDEyICs1NSwxMyBAQCBmdW5j
dGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgi
b2JqZWN0U3RvcmUudHJhbnNhY3Rpb24iLCAidGhpcyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFk
b25seS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHkuaHRtbApp
bmRleCAxYzM2NjcyZGJjOTMwM2I0YzdjYWE3YjkzNDg3ZmYzODFiNzYzYTU5Li4yZDFiM2FlYTI3
NGEwMWU5NTIyODI4OWYzNTdlNTZmNTkwNTg2ZTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgcmVhZG9ubHkg
cHJvcGVydGllcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHNldFJlYWRvbmx5
UHJvcGVydHkocHJvcGVydHksIHZhbHVlKQogewpAQCAtMTE0LDEyICsxMTIsMTMgQEAgZnVuY3Rp
b24gY2hlY2tDdXJzb3IoKQogICAgIHNldFJlYWRvbmx5UHJvcGVydHkoImtleVJhbmdlLmxvd2Vy
T3BlbiIsICJ0cnVlIik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgia2V5UmFuZ2UudXBwZXJP
cGVuIiwgInRydWUiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXBy
b3BhZ2F0aW9uLmh0bWwKaW5kZXggZTc3MzU2YzhmOGZhMzk1NjU4NmFjZWQ1MmI0OGQ4NWMyMzM5
ZTIyYi4uMTEzZmM4YzgyMzFkNzdiOTk5OWNkMzY1NDQzZGRlNmYxZGVhMGZjOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQt
cHJvcGFnYXRpb24uaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IGV2ZW50IHByb3BvZ2F0aW9uIG9uIElEQlJlcXVlc3QuIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjY2LDcgKzI2NCw3IEBAIGZ1bmN0aW9u
IHRyYW5zYWN0aW9uQ29tcGxldGUoKQogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQi
KTsKICAgICBkZWJ1ZygiIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgcmV0dXJuOwogfQogCkBAIC0yNzQsNSArMjcyLDYgQEAgdGVzdCgpOwogCiAKIDwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBjZDFiYWFjYzZkZTljNGFkNjBiOGZh
NjRiZDU2ZGJkMTVkMWIzZTU4Li41MmMzZjUzMWIzMGUyMDdkNmFhZDVkNTJjY2Y5MWY0YzE1MjRh
ZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
c2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9z
aGFyZWQuanMKQEAgLTI0LDQxICsyNCwzNCBAQCBpZiAoc2VsZi5pbXBvcnRTY3JpcHRzICYmICFz
ZWxmLnBvc3RNZXNzYWdlKSB7CiAgICAgfTsKIH0KIAotZnVuY3Rpb24gZG9uZSgpCi17Ci0gICAg
aXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICBpZiAoc2VsZi5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KIGZ1bmN0
aW9uIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2soKQogewogICAgIHRlc3RGYWlsZWQoIlN1Y2Nl
c3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4iKTsKLSAgICBkb25lKCk7CisgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrKGV2ZW50
KQogewogICAgIHRlc3RGYWlsZWQoIkVycm9yIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHk6
ICgiICsgZXZlbnQudGFyZ2V0LmVycm9yQ29kZSArICIpICIgKyBldmVudC50YXJnZXQud2Via2l0
RXJyb3JNZXNzYWdlKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1
bmN0aW9uIHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrKCkKIHsKICAgICB0ZXN0RmFpbGVkKCJBYm9y
dCBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5ISIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogZnVuY3Rpb24gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2soKQog
ewogICAgIHRlc3RGYWlsZWQoIm9uY29tcGxldGUgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRs
eSEiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIHVu
ZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2soKQogewogICAgIHRlc3RGYWlsZWQoIm9uYmxvY2tlZCBj
YWxsZWQgdW5leHBlY3RlZGx5Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiBmdW5jdGlvbiBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKGNtZCwgZXhwZWN0ZWQpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRWZXJzaW9uLW51bGwuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sCmlu
ZGV4IDBjZDA2MjQ3NDJiYTk0YzQ4YWY1ZmY4OGQ5ODI4NjgxYjA4OTY0N2UuLmRlYWZiZWE2ODg3
NjkwZDg1YTU5NGNjNzJkMDFjMTlkYzc0M2ViM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8
c2NyaXB0PiAKICAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB3aXRoIG51bGwgdmVyc2lv
biBzdHJpbmciKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBA
IC00MywxMiArNDEsMTMgQEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQogZnVuY3Rpb24gcG9zdFNl
dFZlcnNpb24oKQogewogICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIidudWxsJyIpOwotICAg
IGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KICAKICAKIHRlc3QoKTsKICAKLTwvc2Ny
aXB0PiAKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+IAogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tdW5kZWZpbmVkLmh0bWwK
aW5kZXggOTBiM2M5YTU2ODUzMDRlOGJhNGJmZDc2OWEyZjQ2YTY2NjNjOTVkZS4uOTJkZjlmZjY2
NTE4MTc3ZTlkZmIxMjM2N2M3NzY4YTgyMGI2OWI1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRWZXJzaW9uLXVuZGVmaW5lZC5odG1sCkBAIC0xMCw4
ICsxMCw2IEBACiA8c2NyaXB0PiAKICAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB2ZXJz
aW9uIHN0cmluZyBpcyByZXF1aXJlZCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTM2LDEyICszNCwxMyBAQCBmdW5jdGlvbiBvcGVuU3VjY2VzcygpCiAg
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKICAKICAgICBz
aG91bGRUaHJvdygiZGIuc2V0VmVyc2lvbigpOyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KICAKICAKIHRlc3QoKTsKICAKLTwvc2NyaXB0PiAKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+IAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5odG1sCmluZGV4IDMxOTIyZmMwOGQ5ZDc2NDli
NzdiZDdhMjk1ZmU1MWMzZDY3MGZkOTUuLjI1ZWViNDcyMDdhZjUzMzRjYjQxYWFjODEyZjJkYjY4
NTc4MmM3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92
ZXJzaW9uX2Jsb2NrZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9z
ZXRfdmVyc2lvbl9ibG9ja2VkLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pg0KIA0KIGRl
c2NyaXB0aW9uKCJBbiBvcGVuIGNvbm5lY3Rpb24gYmxvY2tzIGEgc2VwYXJhdGUgY29ubmVjdGlv
bidzIHNldFZlcnNpb24gY2FsbCIpOw0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
DQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCiANCiBjb25uZWN0
aW9ucyA9IFtdDQogZnVuY3Rpb24gdGVzdCgpDQpAQCAtNjAsMTIgKzU4LDEzIEBAIGZ1bmN0aW9u
IGluU2V0VmVyc2lvbigpCiAgICAgZGVidWcoImluIHNldFZlcnNpb24ub25zdWNjZXNzIik7DQog
ICAgIHNob3VsZEJlVHJ1ZSgic2Vlbl9ibG9ja2VkX2V2ZW50Iik7DQogICAgIGRlbGV0ZUFsbE9i
amVjdFN0b3Jlcyhjb25uZWN0aW9uc1swXSk7DQotICAgIGRvbmUoKTsNCisgICAgZmluaXNoSlNU
ZXN0KCk7DQogfQ0KIA0KIA0KIHRlc3QoKTsNCiANCi08L3NjcmlwdD4NCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5Pg0KIDwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9xdWV1ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvc2V0X3ZlcnNpb25fcXVldWUuaHRtbAppbmRleCA3OTc1NzA5NWJmNGQ5OGFkMjJh
ZGVhZDU0MTBhZTczYTU2YmIwNzMxLi5hYjk1NzU0NGQ5ZGEwODk3OTk0YTVhYzkzZDI3ZDdmNjQw
Mjc4MjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVy
c2lvbl9xdWV1ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92
ZXJzaW9uX3F1ZXVlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pg0KIA0KIGRlc2NyaXB0
aW9uKCI0IG9wZW4gY29ubmVjdGlvbnMgdHJ5IHRvIHNldFZlcnNpb24gYXQgdGhlIHNhbWUgdGlt
ZS4gIDMgY29ubmVjdGlvbnMgZXZlbnR1YWxseSBjbG9zZSwgYWxsb3dpbmcgMSBzZXRWZXJzaW9u
IGNhbGwgdG8gcHJvY2VlZC4iKTsNCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0K
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQogDQogY29ubmVjdGlv
bnMgPSBbXQ0KIGZ1bmN0aW9uIHRlc3QoKQ0KQEAgLTEyNiwxMiArMTI0LDEzIEBAIGZ1bmN0aW9u
IGluU2V0VmVyc2lvbjEoZXZlbnQpCiB7DQogICAgIGRlYnVnKCIiKQ0KICAgICB0ZXN0UGFzc2Vk
KCJjb25uZWN0aW9uWzFdIGdvdCBpbnRvIFNldFZlcnNpb24iKTsNCi0gICAgZG9uZSgpOw0KKyAg
ICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQogDQogdGVzdCgpOw0KIA0KLTwvc2NyaXB0Pg0KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+DQogPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbAppbmRleCBlMTEzOTBjYTBj
MWI1NDI5MDgyZTM4NDIyMDZiNzU2Y2UyZjhlNTIzLi40YzAwNWFlOWIxZDc1NjVhNjVjYTUxZWRl
MjQxYzY4MzYxM2FkNTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBk
ZXNjcmlwdGlvbigiVGVzdCBzdHJ1Y3R1cmVkIGNsb25lIHBlcm11dGF0aW9ucyBpbiBJbmRleGVk
REIuIEZpbGUvRmlsZUxpc3QgdGVzdHMgcmVxdWlyZSBEdW1wUmVuZGVyVHJlZS4iKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgdmFyIGZpbGVJ
bnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlSW5wdXQiKTsKQEAgLTM0Nyw3ICsz
NDUsNyBAQCBmdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iLCBjYWxsYmFjaykKICAgICB9Owog
ICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgewogICAgICAgICB0ZXN0RmFpbGVkKCJF
cnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDogIiArIGUpOwotICAgICAgICBkb25lKCk7CisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYik7
CiB9CkBAIC01MjYsNyArNTI0LDcgQEAgZnVuY3Rpb24gdGVzdEJhZFR5cGVzKCkKICAgICBldmFs
QW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwog
ICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7Ci0gICAg
dHJhbnNhY3Rpb24ub25hYm9ydCA9IGRvbmU7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGZp
bmlzaEpTVGVzdDsKIAogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiT3RoZXIgSmF2YVNjcmlw
dCBvYmplY3QgdHlwZXM6Iik7CkBAIC01NDMsNSArNTQxLDYgQEAgZnVuY3Rpb24gdGVzdEJhZFR5
cGVzKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0
LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFt
ZS5odG1sCmluZGV4IGIyNzg1NjVjNGIxMmYyM2UxMWY4NTQ5ZTBjMGE5NmVjYzgwOTVhOGYuLjc2
NTQ1OTA1NzU4MmZhYTljYTQzMjM0MjlhOTE1YjgxNjMzZTVkMmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJz
aW9uLWNyb3NzLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUuaHRtbApAQCAt
MTgsOCArMTgsNiBAQCB2YXIgZGI7CiB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpZnJhbWUiKVswXS5jb250ZW50RG9jdW1lbnQuYm9keTsKIAogZGVzY3JpcHRpb24o
IlRlc3QgdGhhdCBwZW5kaW5nIHRyYW5zYWN0aW9ucyBhcmUgbm90IGFib3J0ZWQgZHVyaW5nIHJl
Y3Vyc2l2ZSBKUyBjYWxscyB1bnRpbCBhbGwgSlMgKGluIGFsbCBmcmFtZXMpIGlzIGZpbmlzaGVk
LiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHNldHVwKCkgewogICAgIHNob3Vs
ZEJlVHJ1ZSgiJ3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7CkBAIC02MywxMSArNjEsMTIg
QEAgZnVuY3Rpb24gdGVzdCgpCiBmdW5jdGlvbiBhYm9ydENhbGxiYWNrKCkKIHsKICAgICBkZWJ1
ZygiUGVuZGluZyB0cmFuc2FjdGlvbiBhYm9ydGVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCiBzZXR1cCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLmh0bWwKaW5kZXgg
MDAxYjUzNzAzY2M2NzZhMjFhNDA1MDQ5NDA1MWVhMjE4ZDFhYTFhYy4uN2U3MzBiNWNhOTM5OWFi
MWI0NTBiMjI2YjMyYmFiMjAzY2FmOWI4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpz
LXJlY3Vyc2lvbi5odG1sCkBAIC0xNCw4ICsxNCw2IEBAIHZhciBkYjsKIHZhciBib2R5ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsNCiANCiBkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IHBlbmRpbmcgdHJhbnNhY3Rpb25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcgcmVj
dXJzaXZlIEpTIGNhbGxzIHVudGlsIGFsbCBKUyBpcyBmaW5pc2hlZC4iKTsNCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7DQogDQogZnVuY3Rpb24gc2V0dXAoKSB7DQogICAgIHNob3VsZEJlVHJ1ZSgiJ3dl
YmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7DQpAQCAtNTksMTEgKzU3LDEyIEBAIGZ1bmN0aW9u
IHRlc3QoKQogZnVuY3Rpb24gYWJvcnRDYWxsYmFjaygpDQogew0KICAgICBkZWJ1ZygiUGVuZGlu
ZyB0cmFuc2FjdGlvbiBhYm9ydGVkIik7DQotICAgIGRvbmUoKTsNCisgICAgZmluaXNoSlNUZXN0
KCk7DQogfQ0KIA0KIHNldHVwKCk7DQogDQotPC9zY3JpcHQ+DQorPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFib3J0Lmh0bWwKaW5kZXggZGViYmE2MjIyMGVlYTc4MDVkMGYzYzY2
YTgwZjFmYzhhMDg4YjgyMS4uNjk3YjJkYzc3Yzg5Nzc3YTQxNDgxMjJlZDIwNTYxMjlkZDkyMDJm
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
YWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1hYm9ydC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgdHJhbnNhY3Rpb24gYWJvcnRzIHNlbmQgdGhlIHByb3BlciBvbmFib3J0IG1lc3NhZ2VzLi4i
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05NiwxMiAr
OTQsMTMgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkKCkKICAgICBhYm9ydEZpcmVkID0g
dHJ1ZTsKIAogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmFkZCh7eDogJ3ZhbHVl
NScsIHk6ICd6eno1J30sICdrZXk1JykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJ
T05fSU5BQ1RJVkVfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNs
b3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRl
ci1jbG9zZS5odG1sCmluZGV4IDU5ZThmNWI3M2IwYzBlNjUyZDBlYmM0OTZiZmU1ZmU0OTNjZGYz
YTEuLmQwNTBjYTM3NWE0Y2Q2YTUwM2U1NWIzNjE5ODI0MzAwMmMwNzc3YWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXIt
Y2xvc2UuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24oIlRl
c3QgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gaW4gSW5kZXhlZERCLiIpOw0KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsNCiANCiBmdW5jdGlvbiB0ZXN0KCkNCiB7DQpAQCAtNzgsNyArNzYsNyBA
QCBmdW5jdGlvbiBvblNlY29uZE9wZW4oKSB7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJl
cXVlc3QgPSBzdG9yZS5wdXQoJzEnLCAnMicpIik7DQogICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
b25GaW5hbFB1dFN1Y2Nlc3M7DQogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOw0KLSAgICBjdXJyZW50VHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGRvbmU7DQor
ICAgIGN1cnJlbnRUcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0Ow0KICAgICBj
dXJyZW50VHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOw0KIH0N
CiANCkBAIC05MCw1ICs4OCw2IEBAIGZ1bmN0aW9uIG9uRmluYWxQdXRTdWNjZXNzKCkgewogdGVz
dCgpOw0KIA0KIDwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVj
dHN0b3JlLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAppbmRleCBjZDUwZTYxY2U2NTRkMDM0M2Zk
NTk1OGVkM2QyZmQwZGI1MjljZTlhLi5jMDc3NWNhZTZlOTU3ZWVlMDllNjQ0NTlmYzJmZmZiNzcz
YjlhZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbApAQCAtOSw4
ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHRyYW5z
YWN0aW9uIGFuZCBvYmplY3RTdG9yZSBjYWxscyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtMTI2LDExICsxMjQsMTIgQEAgZnVuY3Rpb24gYWZ0ZXJDb21w
bGV0ZSgpCiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ3N0
b3JlJykiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIik7CiAg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuaW5kZXgoJ2luZGV4JykiLCAid2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIik7CiAKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sCmluZGV4IDgwYzJkMTNmN2Fj
ZTZiYjc2YjdlNzQ0ZGIyYTJjMzUzYzc1N2JlYWIuLjkyYzYwZjM0Nzc1NWY2M2EyYjY3ZTExZmE2
YTU2YjcyY2QzNGQ3ZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB0cmFuc2FjdGlvbiBk
b2VzIG5vdCBjcmFzaCBvbiBhYm9ydC4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTM2LDEyICszNCwxMyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2Vz
cygpCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpIik7CiAgICAg
ZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24oJ2ZvbycpIik7CiAgICAgZXZhbEFuZExvZygid2lu
ZG93LmdjKCkiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVz
dCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50
LXByb3BhZ2F0aW9uLmh0bWwKaW5kZXggYjkzODg4NTM1ZjQxOGNkZTNlYTU0NTIzZjBhM2QxMTRh
MjQ5ODg4Mi4uYTdkZTZlY2NjOGIzZWJiYTQ1YWY3NzFmZTEzMzA5ZWZiZTFhZWViZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJv
cGFnYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAog
ZGVzY3JpcHRpb24oIlRlc3QgZXZlbnQgcHJvcG9nYXRpb24gb24gSURCVHJhbnNhY3Rpb24uIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTM2LDcgKzEz
NCw3IEBAIGZ1bmN0aW9uIGNvbXBsZXRlRmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmUoImV2
ZW50LmN1cnJlbnRUYXJnZXQiLCAidHJhbnMiKTsKICAgICBjb21wbGV0ZUZpcmVkID0gdHJ1ZTsK
ICAgICBkZWJ1ZygiIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBm
dW5jdGlvbiBkYkNvbXBsZXRlQnViYmxlQ2FsbGJhY2soKQpAQCAtMTUxLDUgKzE0OSw2IEBAIHRl
c3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHku
aHRtbAppbmRleCA3NGUyYTE3MDIxZDZkNmNhNmRmMTI5YmUyNTNjOGQ5ZjUyZTEwMmNhLi4xZDdi
MmEwMzkxNjI3M2ZkM2I5MmI5OTIzNDhlZTJhMWM1ODBmNWZjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbApA
QCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24oIlRlc3QgcmVhZC1vbmx5
IHRyYW5zYWN0aW9ucyBpbiBJbmRleGVkREIuIik7DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KIA0K
IGZ1bmN0aW9uIHRlc3QoKQ0KIHsNCkBAIC02MCwxMiArNTgsMTMgQEAgZnVuY3Rpb24gZ290Q3Vy
c29yKCkKICAgICBzaG91bGRCZUZhbHNlKCIhZXZlbnQudGFyZ2V0LnJlc3VsdCIpOw0KICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJldmVudC50YXJnZXQucmVzdWx0LmRlbGV0ZSgpIiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsNCiANCi0gICAgZG9uZSgp
Ow0KKyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQogDQogdGVzdCgpOw0KIA0KIDwvc2NyaXB0
Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0Pg0KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmh0bWwKaW5kZXggODE3Mzk1
MmExODU1Zjk1MDExMGViMzRlNzA5YjI2YTMyYWY5NzA0OC4uM2M5MzBkMGM3ODUwMjNjYzMwNDc0
NjIyNWZiMjhkYzU3ZTI1N2U0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yb2xsYmFjay5odG1sCkBAIC05LDggKzksNiBAQAogPHNj
cmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHRyYW5zYWN0aW9uIHJvbGxiYWNr
LiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTMsMTIg
KzkxLDEzIEBAIGZ1bmN0aW9uIGdldFN1Y2Nlc3MoKQogICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwogCiAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIs
ICIncm9sbGJhY2tWYWx1ZSciKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVO
YW1lcy1yZXF1aXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC5odG1sCmluZGV4IDhkZDczNGFlMDEzMzcwMmQ0NTFh
MTY3YzQ2OTc3NzIwZDg4OGFkMzQuLmZhYmU0ODk2Njc4MTA5MDFmNzA0Y2VjODg0NTUzYThmNDA0
NzI0NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWwKQEAgLTEwLDggKzEw
LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQjogdHJhbnNhY3Rp
b24gc3RvcmVOYW1lcyByZXF1aXJlZCBhcmd1bWVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ1LDEyICs0MywxMyBAQCBmdW5jdGlvbiBjcmVhdGVB
bmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwog
CiAgICAgc2hvdWxkVGhyb3coImRiLnRyYW5zYWN0aW9uKCk7Iik7Ci0gICAgZG9uZSgpOworICAg
IGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbAppbmRleCBkYzAzOTVkMjRkZDc3NGZlMThkN2U5NWQ4
Mzg3YzZjYTE1MjE2NTFjLi41NTUwNzFhMjEwODhjOTVkM2U4NDkwOGYzN2FjMDIyNjY3ZTA1ZWEx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90d28tdmVyc2lvbi1j
aGFuZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHdvLXZlcnNp
b24tY2hhbmdlcy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24o
IlRlc3QgYmVoYXZpb3Igd2hlbiB0aGUgc2FtZSBjb25uZWN0aW9uIGNhbGxzIHNldFZlcnNpb24g
dHdpY2UiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiAKIGZ1bmN0aW9uIHRlc3QoKSB7CkBAIC0x
MDAsNyArOTgsNyBAQCBmdW5jdGlvbiBjaGVja1Jlc3VsdHMoKSB7CiAgICAgICAgIHJlcS5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbiAoZSkgewogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQucmVzdWx0IiwgImJiYiIpOwotICAgICAgICAgICAgZG9uZSgpOyAgICAKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9OwogICAgIH07CiB9CkBAIC0xMDksNSArMTA3
LDYgQEAgZnVuY3Rpb24gY2hlY2tSZXN1bHRzKCkgewogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRtbAppbmRleCAwY2Q0YzJmMWI4MDRiMGM4Y2ZmODFkYmI5
ODZhODEyMjAxZWE3YWRlLi43YzY0M2EwY2MyNDAzYTcxNzIwNzZkNDk4NDk2YWJjNjdmNzdlNDNl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmlu
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmlu
ZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIHVuZGVmaW5lZCBhcyByZWNvcmQgdmFsdWUiKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTc1LDEyICs3MywxMyBAQCBmdW5jdGlvbiBjaGVj
a0N1cnNvcigpCiAgICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIGlzIG51
bGwiKTsKICAgICB9Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbAppbmRleCA5
Mzg1Y2I0ZTA2ZjgwYWJkNDMyY2I2YTU5M2IzM2RkYjUxYzU1OTJhLi5hMDYyZDk2Zjg2ZDkzYTU3
ODRjZDdiZWExMDQzNDBlYmViNTY2ZWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2Ny
aXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgb2RkIHZhbHVlIGRhdGF0eXBlcyIp
OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtODUsNyArODMs
NyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2YWx1
ZUluZGV4Kys7Iik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkb25l
KCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTk0LDUgKzkyLDYgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0
CmluZGV4IDMwNGIxZjQ3NmMyNGM4MjEzYTcyODE4ZTA2MjIwNTcxNmJkYzI2MDcuLjUyNTM1OTA2
YzUxMmZlNTc0NTIyYjk2YmFmMDIzMWFmNjdhNGY5YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODQ6IFVuY2F1
Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQhCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgODI6IFVuY2F1Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQhCiBF
bnN1cmUgdGhhdCBhYm9ydGVkIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUgY29tcGxl
dGVseSByb2xsZWQgYmFjawogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQuaHRt
bAppbmRleCBlMThkZTFlYTI3ZjUwOTQxMDk4YTYyYTIwMWU2NWRmZTcxZjBhOTgxLi40ZjA2NWYw
N2RkNmM4NjA5Y2IzMWNkNGFjODk0OWYyMWNiODM1YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwKQEAgLTEw
LDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBhYm9ydGVk
IFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUgY29tcGxldGVseSByb2xsZWQgYmFjayIp
OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAKIAogZnVuY3Rpb24gdGVzdCgpIHsKQEAgLTk2LDExICs5
NCwxMiBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uMkFib3J0KCkKICAgICBzaG91bGRCZVRydWUoImRi
Lm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3N0b3JlMScpIik7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUyJykiKTsKIAotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbAppbmRleCA4MTU4ODA2ZGZk
Y2RkNmE1ZWQ4M2IwYTVjMWI3ZTAyNjMyZThmZWVjLi5kNzZhNzBiNzJmMmZmNzNjNDRjYmFjYjc3
NGIzZDg2YjMwZWNiMGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbApAQCAtOSw4ICs5LDYgQEAK
IDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgVkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rp
b24gZG9lc24ndCBydW4gY29uY3VycmVudGx5IHdpdGggb3RoZXIgdHJhbnNhY3Rpb25zIik7Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogCiBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtNzMsMTIgKzcxLDEz
IEBAIGZ1bmN0aW9uIG9wZW5BZ2FpblN1Y2Nlc3MoKQogewogICAgIGRlYnVnKCJvcGVuKCkgY2Fs
bGJhY2sgLSB0aGlzIHNob3VsZCBhcHBlYXIgYWZ0ZXIgVkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rp
b24gZW5kcyIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LnN0YXRlIiwgIlZF
UlNJT05fQ0hBTkdFIGZpbmlzaGVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb25jaGFuZ2Vy
ZXF1ZXN0LWFjdGl2ZWRvbW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0Lmh0bWwKaW5kZXggMDMzMjgw
N2QwY2I4NmYzNDYzMmY1N2E2ZmRlZjkzODU5N2EwMDc0My4uMjA3YTQ1YjFjYzA4YzM5Y2NmYmY2
MDAwYmI3MGNkZGU0YmMzMTI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9t
b2JqZWN0Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJF
bnN1cmUgdGhhdCBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBvYmplY3RzIGFyZSBub3QgR0MnZCBp
ZiB0aGV5IGhhdmUgcGVuZGluZyBldmVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIGV2YWxBbmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVk
REIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIpOwpA
QCAtNzAsMTEgKzY4LDEyIEBAIGZ1bmN0aW9uIHRlc3RTZXRWZXJzaW9uKCkKIGZ1bmN0aW9uIHZl
cnNpb25TdWNjZXNzKCkKIHsKICAgICB0ZXN0UGFzc2VkKCJzZXRWZXJzaW9uJ3MgSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3Qub25zdWNjZXNzIGV2ZW50IGZpcmVkIik7Ci0gICAgZG9uZSgpOworICAg
IGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130922</attachid>
            <date>2012-03-08 15:36:47 -0800</date>
            <delta_ts>2012-03-08 15:43:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80555-20120308153646.patch</filename>
            <type>text/plain</type>
            <size>120286</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDUzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjMyMzMxMmY3NDhlMjgyYzAwZjQ3
MGVlNzJlYzY2YWZkY2ZjNzA3ZS4uNmViNzQyNTRmMmM3MWE4YzVhOThkNmU3NmY3M2M0ZDkzZDc3
MDQzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NiBAQAorMjAxMi0wMy0wNyAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBsYXlvdXQgdGVzdCBz
dHlsZSB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgwNTU1CisKKyAgICAgICAgQ2hhbmdlIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUgdG8gdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlCisgICAgICAgIGFuZCBpZGItc3BlY2lm
aWMgZG9uZSgpIHRvIGZpbmlzaEpTVGVzdCgpOworCisgICAgICAgIEZvbGxvd2luZyB0aGUgdW5p
Zm9ybSBzdHlsZSByZXN1bHRzIGluIGxlc3Mgb3ZlcmFsbCBjb2RlIGFuZCBtYWtlcworICAgICAg
ICB0aGVtIGVhc2llciB0byBjb252ZXJ0IHRvIHdvcmtlciBsYXlvdXQgdGVzdHMuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9jb25zdGFudHMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUt
YW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWcuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGFiYXNlLXF1b3RhLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGVJbmRleC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0
b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kdXBsaWNhdGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWNtcC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnZhbGlkLWtleXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNy
b3NzLXR5cGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHkuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleXJhbmdlLXJlcXVpcmVkLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbGlzdC1vcmRlcmluZy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGguaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3Mu
aHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3Rz
dG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1zb3VyY2UuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2dsb2JhbC1kYXRhLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50
cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlu
bGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVzdWx0LW9yZGVyLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51
bGwtbmFtZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdl
dC12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRv
bmx5LXRyYW5zYWN0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVhZHlTdGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3IuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvb2RkLXN0cmluZ3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVy
aW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVk
LWNvbW1hbmRzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJv
cGVydGllcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanM6Cisg
ICAgICAgICh1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrKToKKyAgICAg
ICAgKHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVs
bC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tdW5kZWZpbmVk
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX3F1ZXVlLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJz
aW9uLWNyb3NzLWZyYW1lLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1
aXJlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5n
ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3Qt
YWN0aXZlZG9tb2JqZWN0Lmh0bWw6CisKIDIwMTItMDMtMDcgIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJraW5nIGZpbGUt
d3JpdGVyLWV2ZW50cy5odG1sIGFzIGZsYWt5LWNyYXNoaW5nIG9uIFdpbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0bWwKaW5kZXggYTE2MWU5ZThkOGU1MGYy
NmI0ZjY2NWM4OGMwNjkwNmYwNjg3MmM2MS4uMzgxNjEzNGUxNDI3ZWI0NWIyZDBmMzFmMWI5YmU2
NzQ3MGI5MGEyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29u
c3RhbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRz
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBjb25zdGFudHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVz
dCgpCiB7CkBAIC00Miw4ICs0MCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiB0ZXN0KCk7CiAKLWRv
bmUoKTsKK2ZpbmlzaEpTVGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFu
ZC1yZW1vdmUtb2JqZWN0LXN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbAppbmRleCAzMmJhZTFkMzExNmVl
OTQzNGMzN2M3YWVkMzhjMzAzMTcyZDRmMzU1Li4xNDUzNzU0MDVjNjNlM2E0ZTVjZDI1NmYyMzY5
YzdmZDZlZjFmY2RiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
cmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbApAQCAtOSw4
ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0
ZSBhbmQgcmVtb3ZlT2JqZWN0U3RvcmUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTYyLDEyICs2MCwxMyBAQCBmdW5jdGlvbiB0cnlPbmNlTW9yZSgpCiAg
ICAgZGVidWcoIlRyeWluZyByZW1vdmUgd2l0aCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzIik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3RtcCcp
IiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogCi0gICAg
ZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwKaW5k
ZXggN2E4YWZmNGY1NTJkNzA4ZTdlNmNmNGQ0MTE1YmQ3OWM0MmMzNDQ0Mi4uMDc4ZTUwODBhOWMx
ODFmOGQ2ODA2NWU2YzE4YWNhZGRmOGU3Yjg0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIncyBjcmVhdGVPYmplY3RTdG9yZSdzIHZhcmlvdXMgb3B0aW9ucyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNzksMTIgKzc3LDEzIEBAIGZ1bmN0aW9u
IGNoZWNrQigpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQuYSIsICJ7YTog
MH0iKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50
LXJlcXVpcmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmpl
Y3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggNjBlOTllOGYyNmM2MmFh
Y2FiMDY3Njc4NGNmZjgxYjVlOTU1NDVkMi4uYjYzZjM5ODk3NzlmZjNlODc3ZDBhZjJjODAzNWFj
ZWZiODJhMjk5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Jl
YXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVx
dWlyZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIG5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWQi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ1LDEyICs0
MywxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgc2hvdWxkVGhyb3coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUt
bnVsbC1uYW1lLmh0bWwKaW5kZXggZDdkZjg3MDA3YjM4NWVhMDVjYmIwNWY1ZDAwYTY2NjU0MDk5
YjU3NS4uNzZlOWZiMWRmYzE5NTYyMjRmN2U2MjkxODBmNWQxZmE2ZmMwY2EzYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1u
YW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjcmVhdGVPYmplY3RTdG9yZSBudWxsIGhhbmRsaW5nIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NiwxMiArNDQs
MTMgQEAgZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiAKICAgICBvYmpl
Y3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwogICAg
IHNob3VsZEJlKCJvYmplY3RTdG9yZS5uYW1lIiwgIidudWxsJyIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItY29udGludWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1jb250aW51ZS5odG1sCmluZGV4IDQ5OGNmODllODc2NTFhZDM5NjZiMDg5NzgxZmRlMmZi
ZDJiNDJjYWMuLjY0ZmIwYmIzZTYwMDZjMzBlY2Y3YjY2MWEwMGU4ZDFjNWM4YTEwYjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1s
CkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4gCiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QidzIElEQkN1cnNvci5jb250aW51ZSgpIHdpdGggYSBrZXkgcGFyYW1ldGVyLiIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIHZhciBkYXRlID0gbmV3IERhdGUoKTsKIApAQCAtMjc2LDExICsyNzQs
MTIgQEAgZnVuY3Rpb24gZGVzY2VuZGluZ0Vycm9yVGVzdEVxdWFsKCkKIGZ1bmN0aW9uIG9uVHJh
bnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29y
LmNvbnRpbnVlKCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVf
RVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAg
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sCmluZGV4IGE1YzQ1ZTY3MzUzYWJm
YzdlZTc1MjIwNWM4MjQxZTI3Mjk2Nzg3OGQuLjlmZThlZGU3MTY1M2QwMjNmY2RmMDQyNmIwOTZk
ZGU2NGU4MGIzZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1kZWxldGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItZGVsZXRlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIHRl
c3QoKTsKIApAQCAtMTA3LDEwICsxMDUsMTEgQEAgZnVuY3Rpb24gZGVsZXRlT2JqZWN0KCkKIGZ1
bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0
bWwKaW5kZXggZGU3ZDkyZTBiYjQ0MjFlMDc3ZjJmNmQwZGIxOTQ4OTY2ZTg2YjYzNi4uMTk0YzJj
NjExNTA5ZDlkNzRlZDk2OTRmNGJlYTlhMjlkNmU0Zjk3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS5odG1sCkBAIC05
LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgY29uc2lzdGVuY3kgb2Yg
SW5kZXhlZERCJ3MgY3Vyc29yIG9iamVjdHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVz
dCgpOwogCkBAIC04NywxMCArODUsMTEgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogZnVuY3Rp
b24gdHJhbnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxl
dGUoKSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sCmluZGV4IDYxM2EzNDNhNGU5
NGJiMTY2NGZkMjJlZDc1ZGFlODBjNjA1ZmY5MWQuLmUxYTRiN2JmMmZmNjVhYjhmNTNjZmI5NjE5
ODdjZmEyNDQ4YWRiN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1pbmRleC1kZWxldGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CiAKIHRlc3QoKTsKIApAQCAtMTExLDEwICsxMDksMTEgQEAgZnVuY3Rpb24gZGVs
ZXRlT2JqZWN0KCkKIGZ1bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3Vs
ZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtl
eS1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1v
cmRlci5odG1sCmluZGV4IDY4MWNhZjkzMzA0M2VkY2Y2NGVmMTFkYzNhMWJiMDAzNDUwOGE1Mzgu
LjVhMzRjZGVjOWQzZDg2YzkyZWI5MDA2YWZkMjJhYTQ5NjIwZGM4ZjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwKQEAgLTks
OCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBv
cmRlcmluZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTg4LDcgKzE4Niw3IEBAIGZ1bmN0aW9uIGNoZWNr
U3RvcmUoKQogZnVuY3Rpb24gZmluaXNoVXAoKQogewogICAgIHRlc3RLZXlDb21wYXJlKCk7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiB0ZXN0S2V5Q29t
cGFyZSgpCkBAIC0yMzcsNSArMjM1LDYgQEAgZnVuY3Rpb24gdGVzdEtleUNvbXBhcmUoKQogdGVz
dCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuaHRtbAppbmRleCBmY2M3ZDc5YzU3MmI3ZTIzYzFkNDYyNDNhMTZjMDY1ZDA2OTI2Y2EzLi44
NGExMTdjNzY3ZWViNWFjOTMzNzViNGY0NmI4ZDhiZGJmODExMDY1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIHByaW1hcnkga2V5IG9yZGVyaW5nIGFuZCByZWFkYmFjayBmcm9tIGN1cnNvcnMu
Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDQsNyAr
MTAyLDcgQEAgZnVuY3Rpb24gY2hlY2tTdG9yZSgpCiAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiY291bnQg
PT09IGtleXMubGVuZ3RoIik7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgfQogICAgIH07CiB9CkBAIC0xMTIsNSArMTEwLDYgQEAgZnVu
Y3Rpb24gY2hlY2tTdG9yZSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItcmV2ZXJzZS1idWcuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1yZXZlcnNlLWJ1Zy5odG1sCmluZGV4IDA1NDk5Mzk4ZDgwMDFhZWEzYzIyZDE1NWY3ODA2MDcy
N2I1NmNmMzMuLmI1NTk0ZGY3NWY3MWI4YzU4ZDRhZjFmNGQwY2I5MjIyYmFiYzM2MDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1
Zy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCIGtleXMgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4iKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTcyLDcgKzcwLDcgQEAgZnVu
Y3Rpb24gdGVzdEN1cnNvcigpCiAKICAgICBpZiAodGVzdHMubGVuZ3RoID09PSAwKSB7CiAgICAg
ICAgIGRlYnVnKCJObyBtb3JlIHRlc3RzLiIpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTUsNiArMTEzLDcg
QEAgZnVuY3Rpb24gdGVzdEN1cnNvcigpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbAppbmRleCBjZmU3MjA4Y2JiZDliMjIyMjEyMTk3
OTc5MzMzMmMxOTEzMDUxODhmLi5jMjZlYWY0NzYzNmU1NzQyOGY2NTI0Mzc2YjBkZWE2NzY2ZWI4
ZGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tp
cC1kZWxldGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXNraXAtZGVsZXRlZC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRp
b24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHNraXBzIGRlbGV0ZWQgZW50cmllcy4iKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiB2YXIgbmFtZXMgPSBbJ0FscGhhJywgJ0JyYXZvJywgJ0NoYXJs
aWUnLCAnRGVsdGEnLCAnRWNobycsICdGb3h0cm90JywgJ0dvbGYnLAogICAgICAgICAgICAgICdI
b3RlbCcsICdJbmRpYScsICdKdWxpZXQnLCAnS2lsbycsICdMaW1hJywgJ01pa2UnLCAnTm92ZW1i
ZXInLApAQCAtMTk2LDEwICsxOTQsMTEgQEAgZnVuY3Rpb24gaW5kZXhDdXJzb3JUZXN0KCkKIGZ1
bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNv
bXBsZXRlKCk6Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVl
LWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggYmNmZDEwYjgwMDBhYjA2OGFiNDcxYjgwZTlm
OWVjYjNkZTFkN2YyNC4uZDg0NmYwNGI0YzgxMDFhMjVmZTQxMDlkZGIzOWNjODU3N2ZhZTFmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12
YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNv
ci51cGRhdGUgcmVxdWlyZWQgYXJndW1lbnRzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CkBAIC04MSw3ICs3OSw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDMoKQog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIHdhcyBudWxs
Iik7CiAgICAgICAgIH0KLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICB9CiB9CiAKQEAgLTg5LDYgKzg3LDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbAppbmRleCA5NDhmMjI1
MmU4ZjgzMjk0ZjU4ZjQwOTVjYWZlNGFjZTQzODllMWZiLi5hZTE5Yzk3OWU2OWRjMmQyZmQxY2Fi
ZTA2NmRiZGQ1YTFiYTFiMDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItdXBkYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXVwZGF0ZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHVwZGF0ZS4iKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiB0ZXN0KCk7CiAKQEAgLTIxOCwxMCArMjE2LDExIEBAIGZ1bmN0aW9uIGtleUN1cnNv
cigpCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNh
Y3Rpb25Db21wbGV0ZSgpIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCmluZGV4IDAwZTRjMzFm
NjA3YWRlYmVhZWNkMzQyZjcyZjVlZjY0MTY3ZjI5MDcuLjBiZmIxNTc0ZjkyODViZGFkODIyYjZk
NzhjYzMyMTdjMTc3NWE2ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCBkYXRhIGluc2VydGVkIGludG8gSW5kZXhlZERCIGRvZXMgbm90
IGdldCBjb3JydXB0ZWQgb24gZGlzay4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC02NSwxMiArNjMsMTMgQEAgZnVuY3Rpb24gZ2V0RGF0YSgpCiBmdW5j
dGlvbiBkb0NoZWNrKCkKIHsKICAgICBzaG91bGRCZVRydWUoImV2ZW50LnRhcmdldC5yZXN1bHQu
eC50b1N0cmluZygpID09IHRlc3REYXRlLnRvU3RyaW5nKCkiKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YWJhc2UtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRh
YmFzZS1iYXNpY3MuaHRtbAppbmRleCA0NzY4M2U4NzBlYTcyZDhiMWVjMjAxYjQzMmMzNTk2Nzcw
MTQxMzA5Li44YWZjMWJhYjA4YTVjNjM5Y2FmYjFkY2QwMDQzYTQwYzk1ZWI5ODM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbApA
QCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBiYXNpY3Mg
b2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtMTE5LDEyICsxMTcsMTMgQEAgZnVuY3Rpb24gdGVzdENsb3Nl
KCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbigndGVzdDEyMycp
IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogICAgIGRlYnVnKCJD
YWxsIHR3aWNlLCBtYWtlIHN1cmUgaXQncyBoYXJtbGVzcyIpOwogICAgIGV2YWxBbmRMb2coImRi
LmNsb3NlKCkiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3Qo
KTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWUtdW5kZWZpbmVk
Lmh0bWwKaW5kZXggNjZhN2U4N2NkZGMyZDEwOTQyOWVkYjkwZDFkNzZmMDE2NWE2M2JhMS4uZDZm
Yzk1NDEzNzhiYTkwNGJiNTk3NzVjYzBhZmRlYzBlNTkyZjcwMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5o
dG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgdW5kZWZpbmVkIGFzIHJlY29yZCB2YWx1ZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjUsMTIgKzIzLDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHNob3VsZEJlRmFsc2UoIklEQktleVJhbmdlID09IG51bGwiKTsKIAogICAgIHNob3VsZFRo
cm93KCJpbmRleGVkREIub3BlbigpOyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1vZGQt
bmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1u
YW1lcy5odG1sCmluZGV4IDQ0MDQxYjI4MGUxZTIyNDM4NDg0N2I0ZjEyNTBkOWY3YjFkMWY0NDUu
LjgzZDhlOTdjNmViOTJkYTUwODg1NzQ4YTExNWM3NDQ4Njc1Njg4NTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
b2RkIHZhbHVlIGRhdGF0eXBlcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNDAsMTIgKzM4LDEzIEBAIGZ1bmN0aW9uIG9wZW5OZXh0RGF0YWJhc2UoKQog
ICAgIGRlYnVnKCJvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgIiArIHRlc3REYXRhW25leHRUb09w
ZW5dLmRlc2NyaXB0aW9uKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgdGVzdERhdGFbbmV4dFRvT3Blbl0uZGVzY3Jp
cHRpb24pIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSArK25leHRUb09wZW4gPCB0ZXN0RGF0YS5sZW5ndGgg
PyBvcGVuTmV4dERhdGFiYXNlIDogZG9uZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICsrbmV4
dFRvT3BlbiA8IHRlc3REYXRhLmxlbmd0aCA/IG9wZW5OZXh0RGF0YWJhc2UgOiBmaW5pc2hKU1Rl
c3Q7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVv
dGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXF1b3RhLmh0
bWwKaW5kZXggMTA5YTdkMjkxMDhmZjY1Mzg4YzJlYmM5NDY2NmY2M2M5Yjg4ZmI3My4uMTYxN2E3
YjM3MTU2MTMyZGNlOWM1MGJmYjMwYWU1ODhkODZjNDhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sCkBAIC05LDggKzksNiBAQAog
PHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3RzIEluZGV4ZWREQidzIHF1b3RhIGVuZm9yY2lu
ZyBtZWNoYW5pc20uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNzksNyArNzcsNyBAQCBmdW5jdGlvbiBhZGREYXRhKCkKICAgICAgICAgICAgIHN0b3Jl
ID0gZXZlbnQudGFyZ2V0LnNvdXJjZTsKICAgICB9IGVsc2UgewogICAgICAgICB0ZXN0RmFpbGVk
KCJhZGRlZCBtb3JlIHRoYW4gcXVvdGEiKTsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkYXRhQWRkZWQgKz0gNjU1
MzY7CkBAIC05NywxMiArOTUsMTMgQEAgZnVuY3Rpb24gbG9nRXJyb3IoKQogZnVuY3Rpb24gdGVz
dENvbXBsZXRlKCkKIHsKICAgICB0ZXN0UGFzc2VkKCJBZGRpbmcgZGF0YSBmYWlsZWQgZHVlIHRv
IHF1b3RhIGVycm9yLiBEYXRhIGFkZGVkIHdhcyBhYm91dCAiICsgTWF0aC5yb3VuZChkYXRhQWRk
ZWQgLyAxMDI0IC8gMTAyNCkgKyAiIE1CIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9z
ZWQtZGF0YWJhc2Utb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5odG1sCmluZGV4IGMzNzRkNTVhY2VmNmVlMzQw
YTI0NTQyZDI0N2EyZmIzODZjNzU1MTAuLmFiMGY1Y2Y4NmZjMDk3ZjZlNmEzMjVlZDgzOWZmOTY1
YjEwN2JlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0
ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBJREJEYXRhYmFzZSBvYmpl
Y3RzIGFyZSBkZWxldGVkIHdoZW4gdGhlcmUgYXJlIG5vIHJldGFpbmluZyBwYXRocyBsZWZ0Iik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogCiBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtNTIsMTIgKzUw
LDEzIEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogICAgIHZhciB2ZXJzaW9uQ2hhbmdlUmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpIik7CiAgICAgdmVyc2lv
bkNoYW5nZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHZl
cnNpb25DaGFuZ2VSZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
Ci0gICAgdmVyc2lvbkNoYW5nZVJlcXVlc3Qub25zdWNjZXNzID0gZG9uZTsKKyAgICB2ZXJzaW9u
Q2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaW5pc2hKU1Rlc3Q7CiB9CiAKIAogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbAppbmRleCA3ZTRiY2E0NDE0NzFjZTBi
ZTM2ZWZjMTExMzI3OTM5ZTdlMTM0NGM2Li41Y2FiOTA1ZTI3N2U2OTUyNjA2ZmFlZTlkNTM2OWE1
ZGNmOGE3ODg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGUtcmFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUt
cmFuZ2UuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlLmRlbGV0ZShJREJLZXlSYW5nZSkgbWV0aG9kLiIp
OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTIsNyArOTAs
NyBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gbmV4
dFRlc3Q7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTEwMiw1ICsxMDAsNiBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiB0ZXN0KCk7CiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlSW5kZXguaHRtbAppbmRleCA0YTcwNzQzYmMwZGQyNmRlYjg3YzZiOWJk
Y2U3MzM1YzQwNjk5NGVjLi5kODQ3YjViZDg3MmExYzJlNzE3NWRkOWQ4N2M2YjM0ZTQ4NDUyNjIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWwK
QEAgLTIsNyArMiw2IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CkBAIC0xMSw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgZGVsZXRlSW5kZXggbWV0aG9kIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC01NywxMSArNTQsMTIgQEAgZnVuY3Rpb24gcG9zdFR3aWRkbGluZygp
CiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jh
cicpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIiKTsKICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgnc2Vjb25kJykiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIik7Ci0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3Vt
ZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggZjUyNmMxODBmZDk1YmY0YzM0ZWIyNzY2YTRiNTlhMjg2
MmZlY2EwZi4uNmI5ZDFhZDE5Mjg0YTUwZDA5YTE3YmY4NTZjYmY0OTcwNDBhNDdkZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFt
ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGRlbGV0
ZU9iamVjdFN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NSwxMiArNDMsMTMgQEAgZnVuY3Rpb24gY3JlYXRlQW5k
UG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAog
ICAgIHNob3VsZFRocm93KCJkYi5kZWxldGVPYmplY3RTdG9yZSgpOyIpOwotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCmluZGV4IDg3Yzlh
NTlkNDhlMWUyNTRlZmRlNWQ1OGUyZTkwODIwZWNiMTg2NWUuLjU2YTYyMWRhZjI1OTE4ZDE2Mzgw
YmFlMzAwODA3YjFjOTkzOTAwM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCkBAIC0x
MCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgZGVs
ZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ2LDEyICs0NCwxMyBAQCBmdW5jdGlvbiBjcmVhdGVB
bmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKIAogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdudWxsJyk7Iik7CiAgICAgZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUo
bnVsbCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbAppbmRleCA5Njg1MzA5OGI1OGIyMTc2
ZTJjNDgxN2Q5MzlhMjM2OGU4YTI5ZmQzLi40MjM2MDdiNzdhZmRkZmIxMTkyMjVhNTc0YmIzZThh
YmM1MWVjYjc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBs
aWNhdGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZHVwbGljYXRl
cy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlZlcmlmeSB0
aGF0IHlvdSBjYW4gcHV0IHRoZSBzYW1lIGRhdGEgaW4gMiBkaWZmZXJlbnQgZGF0YWJhc2VzIHdp
dGhvdXQgdW5pcXVlbmVzcyBjb25zdHJhaW50cyBmaXJpbmcuIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAKIHRlc3RDb3VudCA9IDA7CiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTE2NiwxMiArMTY0LDEz
IEBAIGZ1bmN0aW9uIGxhc3QoKQogICAgIGlmICh0ZXN0Q291bnQgPT0gMSkKICAgICAgICAgdGVz
dCgpOwogICAgIGVsc2UKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVzZXMtYWJv
cnQtYnktZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXJyb3It
Y2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbAppbmRleCA0MDBlOGIyOTZkOGYzMmU4ODNlYjZj
MzQzNTRjNGVlYmY1YjYzNWYyLi43YzEwMjVkZDA5ZWY3NGIwZTdiN2JhZmRiYzBmMmU2ZjhkMWU1
ZjMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVz
ZXMtYWJvcnQtYnktZGVmYXVsdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Vycm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8
c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiB3aXRoIGFu
IGVycm9yIGFib3J0cyB1bmxlc3MgcHJldmVudERlZmF1bHQoKSBpcyBjYWxsZWQuIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTAxLDEyICs5OSwxMyBA
QCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQxKCkKIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQWJv
cnRlZDIoKQogewogICAgIHRlc3RQYXNzZWQoIlRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVj
dGVkLnR4dAppbmRleCA0YjlmODY5YzFkZjI5MGFjOGIzN2ZiNjlhYWY2NmYwMDk4Nzk3YWVhLi4w
NGJlY2RlNzIzZDBkNDk5NjU0ODg0NDY0MTZiYWI1ODM0NDU5NzRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4t
ZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA2MzogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA2MzogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSA2MTogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0
ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MTogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMg
ZXhwZWN0ZWQKIFRlc3QgZXhjZXB0aW9ucyBpbiBJREJSZXF1ZXN0IGhhbmRsZXJzIGNhdXNlIGFi
b3J0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1s
CmluZGV4IGJiMGI1ZGY2ZGMyZjYzNTM0NjcwN2IzMTlkZGU1N2VlNGQ4MmVkOWUuLmEyZGMyYzJm
OTFlZDc3ODk5MmYwZDJhMzkyMjIwMjQxMmM2NDI4OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBleGNlcHRp
b25zIGluIElEQlJlcXVlc3QgaGFuZGxlcnMgY2F1c2UgYWJvcnRzLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyMSwxMiArMTE5LDEzIEBAIGZ1bmN0
aW9uIHRyYW5zYWN0aW9uQ29tcGxldGVkMigpCiAgICAgZGVidWcoIiIpOwogICAgIHRlc3RQYXNz
ZWQoIlRoZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQuIik7CiAgICAgZGVidWcoIiIpOwotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9mYWN0b3J5LWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbAppbmRleCAzODMzYWZmOWQ0ZTczYTI0ZWRjOTlkNDQz
ZTMzYTQ1YWFiMTFkZTA0Li42YWZlYzBmNzkwN2FlYWZlM2FkYmZmY2YwOGQyMWZkZDI1MWI3MmE0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWJhc2lj
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktYmFzaWNz
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGUg
YmFzaWNzIG9mIEluZGV4ZWREQidzIElEQkZhY3RvcnkuIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtODQsMTIgKzgyLDEzIEBAIGZ1bmN0aW9uIGdldERh
dGFiYXNlTmFtZXNTdWNjZXNzMygpCiAKIGZ1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2VzczIo
KQogewotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWNtcC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZmFjdG9yeS1jbXAuaHRtbAppbmRleCA4MThhNjE5OTE4OWZlOTRlM2Zm
Mjk0OWY4NThmMDg5NTBmMDJhMWVmLi43OWY0NjBmYWEyNTdjYThkNjA0YTVhOGRlYTJlMGIxZmQ5
MDA4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5
LWNtcC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktY21w
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIga2V5IGNvbXBhcmlzb24gdXNpbmcgSURCRmFjdG9yeS5jbXAoKS4iKTsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0yNCw3ICsyMiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHRlc3RWYWxpZEtleXMoKTsKICAgICB0ZXN0SW52YWxpZEtleXMoKTsK
ICAgICB0ZXN0SWRlbnRpY2FsS2V5cygpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogZnVuY3Rpb24gdGVzdFZhbGlkS2V5cygpCkBAIC0xNTIsNSArMTUwLDYgQEAgZnVu
Y3Rpb24gdGVzdElkZW50aWNhbEtleXMoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmh0
bWwKaW5kZXggNjZmNTJlYjc3ZGUxM2EzNTVjNzE4YjExNjgzNDg1Y2I5YTc2NGVmNy4uYzNiOTE3
NDc2ZjBkNWZhZjU5M2EwNmJmZDRjNGQ5ZTNkMzZkZWMxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRh
dGFiYXNlLWludGVyYWN0aW9ucy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIGRlbGV0ZURhdGFiYXNlIGNhbGwgYW5kIGl0cyBpbnRlcmFjdGlv
biB3aXRoIG9wZW4vc2V0VmVyc2lvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9u
IENvbm5lY3Rpb24oaWQpIHsKICAgICBpZCA9IFN0cmluZyhpZCk7CkBAIC0xODcsMTIgKzE4NSwx
MyBAQCBmdW5jdGlvbiB0ZXN0MygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aC5jbG9zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNl
KCkub25zdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmco
KSk7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFi
YXNlLmh0bWwKaW5kZXggNWI3OTk1N2E1ZGE5NWU2ZTAyNDQ5MWM5M2FmMWViNDdjZmJhNDAyMi4u
NDY3ZTFmMDlmNzQwNmI4YWUwOGRmODAzYzMwMzFiOTY0MmE1ZTJlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2Uu
aHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQidzIHdlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTEsMTAgKzg5LDExIEBAIGZ1bmN0aW9u
IHZlcmlmeU5vdEZvdW5kKCkKIHsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5s
ZW5ndGgiLCAiMCIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0
ZXN0KCk7CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY291bnQuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWwKaW5kZXggMGY4MzFmZTIzYzY0
ZTM2ZDRjYTcyMzM2MjMxZjE2MzJlYzdkZDZlNC4uNjVhYTVkMmEyNzc0YmFlZmU3NWQ4YTczNmMx
ODA2NWM3N2ZiNzExOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtY291bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1jb3VudC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCJ3MgSURCSW5kZXguY291bnQoKS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyNSw3ICsxMjMsNyBAQCBmdW5jdGlvbiB2ZXJpZnlD
b3VudFdpdGhLZXkoKQogICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9PTkxZKSIpOwogICAgIHNob3Vs
ZEJlVHJ1ZSgidHJhbnMgIT0gbnVsbCIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gZG9uZTsKKyAgICB0cmFucy5v
bmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogCiAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9y
ZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAgIHNob3VsZEJlVHJ1ZSgi
c3RvcmUgIT0gbnVsbCIpOwpAQCAtMTY0LDUgKzE2Miw2IEBAIGZ1bmN0aW9uIHZlcmlmeUNvdW50
V2l0aEtleSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3Iu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCmlu
ZGV4IDc3ZGFkYWZkNmVjOGZkNTQ4NjYyNTJlNTc2MWM5YmIyNjc1ZjRkMTQuLmI2NTNjMDA1OTBi
M2E5ZjAwNGYxMmVmNDJlMzlmZjNlM2RhODUzOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4g
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHdlYmtpdElEQkluZGV4Lm9wZW5DdXJz
b3IgKyB0aGUgY3Vyc29yIGl0IHByb2R1Y2VzIGluIGRlcHRoLiIpOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAgCiAvLyBJbiBvcmRlciBvZiBob3cgaXQgc2hvdWxkIGJlIHNvcnRlZCBieSBJbmRleGVk
REIuCiB3aW5kb3cudGVzdERhdGEgPSBbCkBAIC0yNDAsNyArMjM4LDcgQEAgZnVuY3Rpb24gdGVz
dE51bGxLZXlSYW5nZSgpCiAgICAgICAgIHdpbmRvdy5leHBlY3RlZEluZGV4ID0gdXBwZXI7CiAg
ICAgICAgIHdpbmRvdy5udWxsS2V5UmFuZ2VTdGVwID0gMjsKICAgICB9IGVsc2UgewotICAgICAg
ICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0yNTUsNSArMjUzLDYgQEAgZnVuY3Rpb24gdGVzdE51bGxLZXlSYW5nZSgpCiBvcGVu
RGF0YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0ZXAuCiAgCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCmluZGV4IDk2
NzBmMjEzMTBlMjY1NjFlYjJiYTFiZjQ1YWUxODhlMWQzZTc4NmEuLmUyMzZkOWMxNTE4YzFlNDRl
MDVmMjk1YTUxNDQ5Yzc1ZjBkMjE0MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1nZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IElu
ZGV4ZWREQiBpbmRleCAuZ2V0KCkgcmVxdWlyZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ4LDEyICs0NiwxMyBAQCBmdW5jdGlvbiBj
cmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBpbmRleCA9IGV2YWxBbmRMb2coImlu
ZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2ZpcnN0JywgJ2ZpcnN0Jyk7Iik7CiAgICAg
c2hvdWxkVGhyb3coImluZGV4LmdldCgpOyIpOwogICAgIHNob3VsZFRocm93KCJpbmRleC5nZXRL
ZXkoKTsiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgp
OwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sCmluZGV4IGRmYzE0
MDg2MGE1MTI3NWJlOTc1NmE1NTJkYTJlNGZhODI2NDY4MjYuLjlmOTZlZmYzOWRhMDVmNGRhNGM2
ODkxZjZmMWI5YTE0MTcwMmFiMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LW11bHRpZW50cnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBmZWF0dXJlcyBvZiBJbmRleGVkREIncyBtdWx0aUVudHJ5IGlu
ZGljZXMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0x
NDAsNyArMTM4LDcgQEAgZnVuY3Rpb24gY3JlYXRlSW5kZXhPblN0b3JlV2l0aERhdGEoKQogICAg
ICAgICB2YXIgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0cmFucyAhPT0gbnVsbCIpOwogICAgICAgICB0cmFu
cy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgIHRyYW5zLm9uY29t
cGxldGUgPSBmdW5jdGlvbigpIHsgdmVyaWZ5SW5kZXhlcygnaW5kZXgtbmV3JywgZG9uZSk7IH07
CisgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsgdmVyaWZ5SW5kZXhlcygn
aW5kZXgtbmV3JywgZmluaXNoSlNUZXN0KTsgfTsKIAogICAgICAgICBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKICAgICAgICAgZXZhbEFu
ZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4LW5ldycsICd4Jywge211bHRpRW50cnk6IHRy
dWV9KSIpOwpAQCAtMTUwLDYgKzE0OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUluZGV4T25TdG9yZVdp
dGhEYXRhKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbApp
bmRleCBjZmY5ZjQ3NjI5NjkwZDM3ZmRjN2JiZDFjNDM4ZjJjN2FlMmE0Njk3Li4zOGE2MmU0MjVk
ODlkZGYwYzAwZTkyY2FlMmY5OGI3YmZiNDA2YzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGZlYXR1cmVzIG9mIEluZGV4ZWREQidzIHVuaXF1ZSBpbmRp
Y2VzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTM2
LDEzICsxMzQsMTQgQEAgZnVuY3Rpb24gZmluYWxBZGRTdWNjZXNzKCkgewogICAgIC8vIEFuIG92
ZXJ3cml0ZSBzaG91bGQgYmUgb2suCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogMX0sICdiYXonKSIpOwogICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZG9uZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpbmlzaEpTVGVzdDsKIH0KIAog
dGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKaW5kZXggNzc5
ZThlYmM3OGNiMWUwYTBkYjVhNGQ5ZDVhNmVmMTdlYjlmYmFjZi4uODdlNDVkYWRhZTkwZTY4N2Rj
MTAxYjFjYmYyYjNjNWVlNjgxNjg5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRl
c2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBpbnZhbGlkIGtleXMiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTY5LDEyICs2NywxMyBAQCBmdW5jdGlvbiB0
ZXN0SW52YWxpZEtleXMoKQogICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0
ID0gb2JqZWN0U3RvcmUucHV0KCd2YWx1ZScsICIgKyBrZXkgKyAiKSIsICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5EQVRBX0VSUiIpOwogICAgIH0pOwogICAgIAotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXkt
Z2VuZXJhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLmh0bWwKaW5kZXggMjEyNDA0NTMxMTQ1YmU3M2JiZjMwMGIxNDRiMDdkNmYwY2QxZWYzMS4u
NTVhMTM0NWNlMjMzYjM2MGFlZDRiZmVmOWRjMjY1ZjA2ZTNhZjdhMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGtleSBnZW5lcmF0
b3IgYmVoYXZpb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDAsNyArMzgsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIGZ1bmN0aW9u
IG5leHRUZXN0KCkgewogICAgICAgICBpZiAoIXRlc3RzLmxlbmd0aCkgewotICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtMjE5LDUgKzIxNyw2IEBAIGRlZmluZVRlc3QoCiB0ZXN0KCk7CiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBl
cy5odG1sCmluZGV4IDljNjcwZDI2NTQ5MDBkYTQzZGMzYmJiZDY3YTMyYmY2ZmE1NzQyZmMuLmRk
ZTBlMGM4OWNmNTFjNmZlODkyMmYyOGY1MjBlOWUwNDFkNGYwMTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9z
cy10eXBlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIga2V5IGNvbXBhcmlzb24iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTkyLDcgKzkwLDcgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3Io
KQogICAgICAgICAgICAgZXZhbEFuZExvZygia2V5SW5kZXgrKzsiKTsKICAgICAgICAgfQogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTAxLDUgKzk5LDYgQEAgZnVuY3Rpb24gb3Bl
bkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sCmluZGV4IDVmZWQ0OWI1NTQ1ZDkyZWZmZWM0YzdlMTk1MTc3MjY3MjZiYjhi
OTYuLmM3MTlhZDEwOTc1OGM4ZWY5MWM3ODg1ZWEwZTYwY2QyN2VjZTA3ZjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLmh0
bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiBrZXkgY29tcGFyaXNvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtODksNyArODcsNyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJrZXlJbmRleCsrOyIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC05OCw1ICs5Niw2IEBAIGZ1bmN0aW9uIG9wZW5BQ3Vyc29yKCkK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJheS5odG1sCmluZGV4IDky
ZmNjMDZlYTE3MjY0M2E3NjU5YWI5ZjIwZGIyODFhOWQzMjc1MDUuLmUxNjUwMzJkN2M4YjY4MzMy
YTFhNWMzZmIxNTJhODc3NGFiZDJkNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5LXR5cGUtYXJyYXkuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSB0eXBlcyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjAyLDExICsyMDAsMTIgQEAgZnVuY3Rp
b24gdGVzdERlcHRoTGltaXRzKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJpbmRleGVk
REIuY21wKG1ha2VBcnJheU9mRGVwdGgoMjUwMCksIDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9u
LkRBVEFfRVJSIik7CiAgICAgZGVidWcoIiIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1p
bmZpbml0eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5m
aW5pdHkuaHRtbAppbmRleCA2OGMwOGVhYzRiYzVmZmIxYzJiMTBmNDI3ZGRlZTFkY2U1ODEyZTM2
Li43MjQxZjdiZjVkOTQxNTJhYjVkZTc0NmZlYjc4MzVkM2NiZWZmMmFjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5Lmh0bWwKQEAg
LTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBr
ZXkgdHlwZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTYxLDEyICs1OSwxMyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAyKCkKIAogZnVuY3Rpb24gdGVzdEdy
b3VwMygpCiB7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sCmluZGV4IDg2ZWQzMjU1
Njg0MzM2Y2QwOTMzZjdmOWFlM2EwYTk5NWQzYTRhZDkuLjIyM2Q2NGY1M2U2ODM2NzVjMmUwMzdl
NmFmNzMzODVkNzlhOGM4YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1iYXNpY3MuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgZm9yIHZhbGlkIGFuZCBpbnZhbGlkIGtleXBhdGhzIik7Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDEsMTIgKzk5LDEzIEBAIGZ1
bmN0aW9uIHRlc3RJbnZhbGlkS2V5UGF0aHMoKQogICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOwogICAgIH0pOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbAppbmRleCBm
OGM5MDQ5YjM4ODhhNjkxOGVhYTczNGE1MjZiOWQ4NjZkODVhNjRkLi5lZDhhMjY4YzU1NGM0Mjhi
NDQzNTk1Y2FkZjg4Mzk1ZWU0ZDRiZGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1lZGdlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5UGF0aCBlZGdlIGNhc2VzIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTcsMTEgKzExNSwxMiBA
QCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHNBbmRHZW5lcmF0b3IoKQogICAgIH07CiAKICAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IGRvbmU7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlz
aEpTVGVzdDsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1m
ZXRjaC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0
Y2gta2V5Lmh0bWwKaW5kZXggNGE5MzM1OWExMjQ4MjhmZWUwOTQ3NGYwYjIyZTU5ZTY1ZjM5NDI5
Ny4uOTY1ZWNiODIyNDNhYTBhYzI4MzFkMDVmYzIzMDBkNTJjNzFkNjJlZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
a2V5UGF0aHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTkwLDcgKzg4LDcgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogICAgIGlmICgrK25leHRUb09w
ZW4gPCB0ZXN0RGF0YS5sZW5ndGgpIHsKICAgICAgICAgY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RT
dG9yZSgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CiAgICAgfQogfQogCkBAIC05OCw1ICs5Niw2IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29y
KCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLXJlcXVpcmVkLWFy
Z3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVx
dWlyZWQtYXJndW1lbnRzLmh0bWwKaW5kZXggYjQ5ZmE3ODBmZDgxNWE0MGM2ZmEzZGRjYmViZTRi
NGI0Njk1MGMzMy4uMDYyODdjYzUzMzY3NDkxZTk1M2RkZmI2MjM2MzRmZThhNjMyNjYwNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVxdWlyZWQt
YXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFu
Z2UtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlyYW5nZSByZXF1aXJlZCBhcmd1bWVudHMi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTMwLDEyICsy
OCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzaG91bGRUaHJvdygiSURCS2V5UmFuZ2UuYm91
bmQoMSk7Iik7CiAgICAgc2hvdWxkVGhyb3coIklEQktleVJhbmdlLmJvdW5kKCk7Iik7CiAKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXJhbmdlLmh0bWwKaW5kZXggYmE5YWRmYTJhYWVkMzFjMTg1NDFkMTE0ODBkNGIzNGNj
NjEyOWIwNi4uN2IwMDE5NDAyYTg0MTlhYTVlZDUwYmI4ZDZiMDNiMGM3OWJmZTAxMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS5odG1sCkBAIC05LDggKzksNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgS2V5UmFuZ2UuIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gY2hlY2tTaW5nbGVLZXlSYW5nZSh2YWx1
ZSkKIHsKQEAgLTE5MCw4ICsxODgsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogdGVzdCgpOwogCi1k
b25lKCk7CitmaW5pc2hKU1Rlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3Jk
ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3JkZXJpbmcu
aHRtbAppbmRleCAwOGZkNTRmZmViMmI0OGRlYWQ2NThkNGE3MmE3OTRhMmU5MTE4YjFmLi43NGE0
OTQ3NzcxYzQ4ZDgzZTRlMzBhZjA3YzNlMGRmODVmMmYxNGQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy5odG1sCkBAIC0xMCw4ICsxMCw2IEBA
CiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBzdHJpbmcgbGlzdCBvcmRlcmluZyBpbiBJ
bmRleGVkREIuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdmFyIGV4cGVjdGVkX29yZGVyID0g
WwogICAiIiwKQEAgLTg3LDcgKzg1LDcgQEAgZnVuY3Rpb24gdGVzdFN0b3Jlc0FuZEluZGV4ZXMo
KQogCiAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChzdG9yZS5p
bmRleE5hbWVzLCBleHBlY3RlZF9vcmRlcikiKTsKIAotICAgICAgICAgICAgICAgIHRyYW5zLm9u
Y29tcGxldGUgPSBkb25lOworICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5p
c2hKU1Rlc3Q7CiAgICAgICAgICAgICB9OwogICAgICAgICB9OwogICAgIH07CkBAIC05Niw1ICs5
NCw2IEBAIGZ1bmN0aW9uIHRlc3RTdG9yZXNBbmRJbmRleGVzKCkKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbAppbmRl
eCAwZGExZmQ2NjJjYjM3ZDA3NTIxNzU2M2JhYzI1Mzk1MjM1NWE4MWVlLi5kNmU5MTQ4NWU1Y2Y0
Y2NiODhhNDg1NTZmZGNjMzBlMmViYWI2Mjc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2FkZC10d2ljZS1mYWlsdXJlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS5odG1sCkBA
IC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
YmVoYXZpb3IgYWRkaW5nIHRoZSBzYW1lIHByb3BlcnR5IHR3aWNlIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02NCwxMyArNjIsMTQgQEAgZnVuY3Rpb24g
YWRkRmlyc3RTdWNjZXNzKCkKIGZ1bmN0aW9uIGFkZFNlY29uZEV4cGVjdGVkRXJyb3IoKQogewog
ICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJyb3JDb2RlIiwgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLkNPTlNUUkFJTlRfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRv
aW5jcmVtZW50LWluZGV4ZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLmh0bWwKaW5kZXggMmZiOTFkYTY4MmY3NDgzNjEx
YjIxZTQxNDFlMjUxZTE1Y2YyODY1Zi4uZmFhMGQ2OWUzNjVkMDdlZjE4MjJkYjY4YmRmNjVjYzRh
NGI3MGE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sCkBAIC0xNiw4ICsxNiw2
IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgaW5kZXhlcyBhZ2Fp
bnN0IGF1dG9pbmNyZW1lbnRpbmcga2V5cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewpAQCAtODksMTMgKzg3LDE0IEBAIGZ1bmN0aW9uIGNoZWNrU2Vjb25kSW5k
ZXhBbmRQcmVwYXJlVGhpcmQoKQogZnVuY3Rpb24gY2hlY2tUaGlyZEluZGV4KCkKIHsKICAgICBz
aG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5pZCIsICJrZXkiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2JhZC1rZXlwYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2JhZC1rZXlwYXRoLmh0bWwKaW5kZXggMmJiNmNlYzU3NGUwMWMyMTk3
YWRiMDUwNDhhMjIxYTYzYmY2ZWFkOC4uYjJkOTExMTFjZmM0YTUzMTVmMzVlYWYwMTQ1NTM4Mzli
NjhiZmNlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9iYWQta2V5cGF0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYmFkLWtleXBhdGguaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGFkZGluZyBwcm9wZXJ0eSB3aXRoIGludmFsaWQga2V5
cGF0aCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNTUs
MTMgKzUzLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogZnVuY3Rpb24gYWRkRmlyc3RT
dWNjZXNzKCkKIHsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0ID0gb2JqZWN0
U3RvcmUuYWRkKHt9KTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWwKaW5kZXggMTg1MTY5Y2YyNDBiMzExZWQwYWNm
ZjVlOGQwYTg5ODE1ZjhhNGM2YS4uMWU5NzU2ZGM5MDcyNjM3ZWRlOTc4Nzg5Y2Q1NTI3YTRhODE0
OGViMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9j
bGVhci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xl
YXIuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCJ3MgY2xlYXJpbmcgYW4gb2JqZWN0IHN0b3JlIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02NywxMyArNjUsMTQgQEAgZnVuY3Rpb24gYXJl
V2VDbGVhcllldCgpCiB7CiAgICAgY3Vyc29yID0gZXZhbEFuZExvZygiY3Vyc29yID0gcmVxdWVz
dC5yZXN1bHQ7Iik7CiAgICAgc2hvdWxkQmUoImN1cnNvciIsICJudWxsIik7Ci0gICAgZG9uZSgp
OworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVlLmh0bWwgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRtbAppbmRl
eCA2NWFiNDZmNjM5NTllMTI3YjU5MmZkZDM5NzE1ZmU2MzFjNjI4MDEwLi4yNzMwOWEwMDA4ZDlh
OTM0N2JhYmZmM2U1ZWFkYmU0MTkyMTAwYmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRt
bApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgY3JlYXRpbmcgdW5pcXVlIGluZGV4IGFuZCB1cGRhdGluZyBpbmRleE5hbWVzIik7Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02OCwxMyArNjYsMTQg
QEAgZnVuY3Rpb24gY3JlYXRlQW5kVmVyaWZ5SW5kZXgoKQogICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQudHJhbnNhY3Rpb24uZGIiLCAiZGIiKTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0
LnRyYW5zYWN0aW9uLnJlYWR5U3RhdGUiLCAiSURCVHJhbnNhY3Rpb24uTE9BRElORyIpOwogICAg
IHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlv
bi5WRVJTSU9OX0NIQU5HRSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRl
LWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5odG1sCmluZGV4IGI3
MWJmZWE1ZDhiYTJiZDI4NmFmMzQzMTRhN2Q0ODYzMjhkMTI1MjQuLmNlOWVjOWIxMmMwNDNiZWU1
ZTdjODRjYjgzZjllOTg3Mzg5NTMwNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtd2l0
aC1pbnRlZ2VyLWtleXMuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgaW5kZXggd2l0aCBpbnRlZ2VyIGtleXMi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTYzLDEzICs2
MSwxNCBAQCBmdW5jdGlvbiB2ZXJpZnlLZXlDdXJzb3IoKQogICAgIHNob3VsZEJlRmFsc2UoImN1
cnNvciA9PSBudWxsIik7CiAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAiZGF0YS5udW0iKTsK
ICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAiZGF0YS5pZCIpOwotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFz
aWNzLmh0bWwKaW5kZXggYzA2NDc0NzEyNzhmNjJlODRiZjQxYmE4Y2QyYWNhOWU0OGMyYzIyZC4u
NDA4ZmU0YjA2ZDE0MWU2MTA3MDY1YmRjM2U5ZDE2YmI1YzkzZTc4ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFz
aWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVh
dGUtb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0aW5nIG9iamVjdCBzdG9yZSBhbmQg
dXBkYXRpbmcgcHJvcGVydGllcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNzMsMTMgKzcxLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogICAg
ICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNh
Y3Rpb24uVkVSU0lPTl9DSEFOR0UiKTsKICAgICB9CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5odG1s
CmluZGV4IDljYjFiOGNjYzdjZDNkNWVhNzE5NGRlODk5Y2IwYjFmMjUzZWIxMzQuLmY3N2I3YTdj
YzM3OTZiYmM0NTY5MDFlN2ZlYmM5NGJjY2ZlM2IzMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9i
amVjdHN0b3JlLW51bGwtbmFtZS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyBvYmplY3Qgc3RvcmUgd2l0aCBu
dWxsIG5hbWUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTQ5LDEzICs0NywxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUobnVsbCk7
Iik7CiAgICAgc2hvdWxkQmUoIm9iamVjdFN0b3JlLm5hbWUiLCAiJ251bGwnIik7CiAKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRh
dGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWwKaW5kZXggMGMxNDY5NTdlNmMwZTkyZmUyZmNjZTBl
OGI3OWYzYWEyMTE0YTAxOS4uZWE4OTUzNzY0MTFiYTcxNDEwMjgyZGI5YzRjNDY1M2ZkNDVhMDMx
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJz
b3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLW9iamVjdHN0b3JlLW9ubHkuaHRt
bApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgY3Vyc29yIG11dGF0aW9uIGR1cmluZyBvYmplY3Qgc3RvcmUgY3Vyc29yIGl0ZXJhdGlv
biIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTQ4LDEy
ICsxNDYsMTMgQEAgZnVuY3Rpb24gY2hlY2tNdXRhdGluZ0N1cnNvclJlc3VsdHMoKQogICAgIHNo
b3VsZEJlKCJjb3VudCIsICJvYmplY3RTdG9yZURhdGEubGVuZ3RoIik7CiAgICAgc2hvdWxkQmUo
InNhd0FkZGVkIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic2F3UmVtb3ZlZCIsICJ0cnVlIik7
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1sCmlu
ZGV4IGQ2YjA5ZjFjZTFkYzQ0YjliYjk1OWM1ZjIxYWQxNDYxMDU5ZWRkNDcuLjgwOTJhN2IyY2Yy
YmViY2FkZDVkNmFjZThlMmZjOGYxNWQ2ODFmMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbApAQCAt
MTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mg
Y3Vyc29yIG11dGF0aW9uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgp
CiB7CkBAIC0xODgsMTIgKzE4NiwxMyBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5nQ3Vyc29yUmVz
dWx0cygpCiAgICAgc2hvdWxkQmUoImNvdW50IiwgIm9iamVjdFN0b3JlRGF0YS5sZW5ndGggLSAx
Iik7CiAgICAgc2hvdWxkQmUoInNhd0FkZGVkIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic2F3
UmVtb3ZlZCIsICJmYWxzZSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci11
cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2N1cnNvci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwKaW5kZXggZWIwYzBi
ZjFhNGZkMzU2OWQxMjFmMzU2OGQ1YTg4ZDBhOGQxMmFhNi4uMWI5ZjA0YmRmMzcwZWU3MGYwMDY5
Y2NkNWM4MzQ5M2YwMWVkNTAzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVwZGF0ZXMtaW5kZXhlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLXVwZGF0ZS11cGRhdGVz
LWluZGV4ZXMuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCOiBtdXRhdGluZyByZWNvcmRzIHdpdGggYSByL3cgY3Vyc29yIHVwZGF0
ZXMgaW5kZXhlcyBvbiB0aG9zZSByZWNvcmRzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CkBAIC02Myw3ICs2MSw3IEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQog
ICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRl
eEFuZEFkZDsKICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKICAgICB9CiB9CiAKQEAgLTEyOCw2ICsxMjYsNyBAQCBmdW5jdGlvbiBjaGVja0luZGV4Migp
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwK
aW5kZXggYmRmZDUyYWM3NWFhNWNkYjY5M2I2ZTFjODNkMzg3MGRjZWY2YzZhYS4uZDg0NGM3YTE3
MzJkODgwNTA1Y2ZmODE0NWUwNDRlNDIxOTQzOGIyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwKQEAgLTE2LDggKzE2LDYgQEAK
IDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjdXJzb3IgYmVoYXZpb3Ii
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTM5NSw3ICsz
OTMsNyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAxNSgpCiAgICAgICB9CiAgICAgICBlbHNlIHsKICAg
ICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgIi0xIik7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICB9CiAgICAgfQogfQpAQCAtNDA0LDYgKzQwMiw3IEBA
IGZ1bmN0aW9uIHRlc3RHcm91cDE1KCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRtbAppbmRleCAyYTVmNGVhZmYwMDI2N2Zh
OGMzZWNjMDUwZDUyOWMzMjMyMTE2NjQzLi40MGFjMWYzNDViODlkN2NhNzhmZTMwNjM2NWFkOGMy
NDAwNjZmNWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2RlbGV0ZS1yZXN1bHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiByZXN1bHQgcHJvcGVydHkgYWZ0ZXIgZGVs
ZXRpbmcgZXhpc3RpbmcgYW5kIG5vbi1leGlzdGluZyByZWNvcmQiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTY3LDExICs2NSwxMiBAQCBmdW5jdGlvbiBk
ZWxldGVSZWNvcmQyKCkKIGZ1bmN0aW9uIGZpbmFsQ2hlY2soKQogewogICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9ldmVudC1zb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvZXZlbnQtc291cmNlLmh0bWwKaW5kZXggZDk2YTBiOTcxNTAzZTA5MmY2NGQzOTg3NmMx
OGNlYmEzNGE1ZjY1ZC4uNzExMGZkNTUzNmEwMWQzOTBlYTQ5NmIyNjJmNDRmM2YyMjA1NTU5ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1z
b3VyY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2
ZW50LXNvdXJjZS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIncyBldmVudC50YXJnZXQuc291cmNlIGluIHN1Y2Nlc3MgY2FsbGJh
Y2tzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02MCwx
MyArNTgsMTQgQEAgZnVuY3Rpb24gYXJlV2VEb25lWWV0KCkKIHsKICAgICBzb3VyY2UgPSBldmFs
QW5kTG9nKCJzb3VyY2UgPSBldmVudC50YXJnZXQuc291cmNlOyIpOwogICAgIHNob3VsZEJlKCJz
b3VyY2UiLCAib2JqZWN0U3RvcmUiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2ds
b2JhbC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2ds
b2JhbC1kYXRhLmh0bWwKaW5kZXggYWVmMzY4NjFhNjc1ZGVkMTIwYzdlZTg4YmU4M2RmY2FjZDQ1
MmY4ZS4uNzM2OThkNGRmNzkyNDQ5ZjZmYmM4NTBkYTAyZWE3Y2E0MjIyODVlYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9nbG9iYWwtZGF0YS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZ2xvYmFsLWRhdGEu
aHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCJ3Mgb3BlbmluZyBEQiBtb3JlIHRoYW4gb25jZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNzQsMTMgKzcyLDE0IEBAIGZ1bmN0aW9uIG9wZW4y
U3VjY2VzcygpCiAgICAgc2hvdWxkQmUoIm9iamVjdFN0b3JlMi5uYW1lIiwgIm9iamVjdFN0b3Jl
TmFtZSIpOwogICAgIHNob3VsZEJlKCJvYmplY3RTdG9yZTIua2V5UGF0aCIsICJvYmplY3RTdG9y
ZU9wdGlvbnMua2V5UGF0aCIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRl
eGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMu
aHRtbAppbmRleCA1MDIxM2IzNDE1NTg1MTI1Nzc3YmRhODc1ODk1MDNhYTIzMTZkNTYxLi44OTJi
M2UxMDNjM2I1ODMxODg3NjU0NWUxZWE0NjE4MWI2NzcyYjMyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbApAQCAtMTYsOCArMTYs
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiBpdGVyYXRpbmcg
dGhyb3VnaCBpbmRleCBjdXJzb3JzIHdpdGgga2V5cyBhbmQga2V5IHJhbmdlcyIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTAxNSw3ICsxMDEzLDcgQEAg
ZnVuY3Rpb24gdGVzdEdyb3VwMzAoKQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgIm9iamVjdFN0b3JlRGF0YU5hbWVTb3J0Lmxlbmd0
aCIpOwotICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgICAgIH0KICAgICB9CiB9CkBAIC0xMDI0LDYgKzEwMjIsNyBAQCBmdW5jdGlvbiB0ZXN0R3Jv
dXAzMCgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5
LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbApp
bmRleCAwNDQyMDhlMWM2ODMzMzFhZTAzNTAzYzdhMDFkYWZkMjQzMzgxY2M0Li41YjdiY2E0MGIz
N2Q1MGNmN2U2N2ZjYjQyMWZkZDljZjBjOGNkZGY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVx
dWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0
PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBiZWhhdmlvciBkZWxldGluZyBlbnRy
eSB3aXRoIG5vIGtleSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDUsMTMgKzQzLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2VBbmRDcmVhdGVPYmpl
Y3RTdG9yZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jhcicp
OyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9iamVjdFN0b3JlLmRlbGV0ZShudWxs
KTsiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBkb25lKCk7
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50
cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sCmluZGV4IGZiYTgyNGZjMWU2ZTUwYmUzNTEyMjg3ODdl
MWJkYTFhNGEzNjBiNjIuLmY1YjI5MDIxY2JlMGNmZGQ4Mjk0YzAyMzZkNjJmNjJiZmRhZjQ2N2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJl
cXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5o
dG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBiZWhhdmlvciBhZGRpbmcgaW5saW5lIGFuZCBwYXNzZWQga2V5IHNpbXVsdGFuZW91
c2x5Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00Nywx
MiArNDUsMTMgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2JheicsIHsga2V5UGF0aDogJ2lkJyB9KTsiKTsKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5hZGQoe2lkOiA1fSwgNSk7IiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtcHV0LW5vLWtleS5odG1s
CmluZGV4IDUyNWEzNjgyZjIwMThhOGRjNWU3YzI1NTkxYTQ0NzdhZDcyNzVjMzUuLmI1ODY1YTI3
MzA1NWNmZTQzMzJmMGNlMzYyNmMxZmY4NjU2YWQ4Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWly
ZW1lbnRzLXB1dC1uby1rZXkuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgYmVoYXZpb3IgcHV0aW5nIHdpdGhvdXQga2V5Iik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NywxMyArNDUs
MTQgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ2JhcicpOyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9i
amVjdFN0b3JlLnB1dCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtl
eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWly
ZW1lbnRzLXB1dC1udWxsLWtleS5odG1sCmluZGV4IDdiZmI2MWYxYjBiMGU2MmQ1MTc2MjFmY2E0
OGVmNzkyMDEzZjVkMjYuLmNmODQ4ZDE5NzVlNmZlYjVkZGQyMjEwOTI2OWFjMzcxYTUxYjNiOGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJl
cXVpcmVtZW50cy1wdXQtbnVsbC1rZXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtcHV0LW51bGwta2V5Lmh0bWwKQEAgLTE2
LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGJl
aGF2aW9yIHB1dCgpaW5nIHdpdGggbnVsbCBrZXkiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ3LDEzICs0NSwxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFi
YXNlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0g
ZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFyJyk7Iik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigib2JqZWN0U3RvcmUucHV0KHt9LCBudWxsKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBkb25lKCk7CisgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCmluZGV4IGNhNTM0ZmQ4ZGRmZDA4
MzZjNzMzNTcwZTU4YTEwNmU5Y2FiZTc0OWYuLjgwZWQ5NThkNTZkODk0OTdiMTg2MmFjYWEzNDAx
ZGQxNzU2YWU0YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8
c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBldmVudC50YXJnZXQucmVz
dWx0IGFmdGVyIGFkZCgpIGFuZCBwdXQoKSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewpAQCAtNzgsMTMgKzc2LDE0IEBAIGZ1bmN0aW9uIHBvc3RQdXQyKCkKIGZ1
bmN0aW9uIHBvc3RQdXQzKCkKIHsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIs
ICJrZXkyIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29ycy5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29y
cy5odG1sCmluZGV4IGU3ZGM1YTdiMjUwMGU2MWFhODc3NDM3YThlNDg3MWNmZTFlNmU3M2QuLjIy
OTA4NGQzZDIyNTQ1ZjA0MzM3NmMzMDZiYTM5MjM3ZTlmMzBjOTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3JzLmh0
bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQidzIGluZGV4IGN1cnNvcnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0
ZXN0KCkKIHsKQEAgLTcwLDcgKzY4LDcgQEAgZnVuY3Rpb24gcG9zdEFkZCgpCiAgICAgICAgICAg
ICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC52YWx1ZS5uYW1lIiwgIidCZW4nIik7CiAg
ICAgICAgICAgICBpZiAoKytpbmRleGVzRmluaXNoZWQgPT0gbnVtSW5kZXhlcykgewogICAgICAg
ICAgICAgICAgIGlmIChhdXRvSW5jcmVtZW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgc2V0dXBBdXRvSW5jcmVtZW50KCk7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtOTYsNiArOTQsNyBAQCBmdW5jdGlvbiBzZXR1cEF1dG9JbmNyZW1l
bnQoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVj
dC1pZGVudGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
YmplY3QtaWRlbnRpdHkuaHRtbAppbmRleCA0ZGU5ZGFmOGI3ZjY0MDc5ODMwZDc0YTYxNTM1ZjFh
YzcxMmI4NzA2Li41YzY1ZDI1YjU3YzI4MmQ3NTRiNmY4OTJiMjFiOWYxMTU2NmJlNzQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVu
dGl0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2Jq
ZWN0LWlkZW50aXR5Lmh0bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQjogb2JqZWN0IGlkZW50aXR5Iik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02OSwxMiArNjcsMTMgQEAgZnVuY3Rpb24gdGVz
dElkZW50aXR5U29tZU1vcmUoKQogICAgIHNob3VsZEJlRmFsc2UoImluZGV4MyA9PT0gaW5kZXgx
Iik7CiAgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXg0ID09PSBpbmRleDIiKTsKIAotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXkt
YWRkZWQtb24tcHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0Lmh0bWwK
aW5kZXggNGIwOTJkNzVjZmJjYzUxZTE0OThmYThkMGY4MTVjNzU1MDgzNmMwNi4uYWU4MDUyMDZm
NzFjYzUzOWQ3NmIzMThhMWMyYjA2MDc1MmE1ZTkyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1dG9pbmNyZW1l
bnQta2V5LWFkZGVkLW9uLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1v
bi1wdXQuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGFkZGluZyBhbiBhdXRvaW5jcmVtZW50ZWQga2V5IGFuZCByZXRyaWV2aW5n
IGl0IHN1Y2Nlc3NmdWxseSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3Qo
KQogewpAQCAtNjksMTMgKzY3LDE0IEBAIGZ1bmN0aW9uIGdldFN1Y2Nlc3MoKQogewogICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0Lm5hbWUiLCAidGVzdC5zdG9yZWRPYmplY3QubmFt
ZSIpOwogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LmlkIiwgImlkIik7Ci0gICAg
ZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVt
b3ZlLXZhbHVlcy5odG1sCmluZGV4IDgwZjMyNzgwNGU4MWRkNWQ3NmVhMjI3NzRhYTQ0NzRiNmYz
ZWM5YTMuLjZjOGQ5ZDYwZjAxNzdmNjM4MmY5ZDI0OWFhMTU2NGE5OWFlYTIxM2IgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLXJl
bW92ZS12YWx1ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxz
Y3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQjogYWRkcywgZ2V0cywgZGVsZXRl
cywgYW5kIHJlLWdldHMgYSByZWNvcmQgaW4gYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBvYmplY3Qg
c3RvcmUgY29uZmlndXJhdGlvbnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0
ZXN0KCkKIHsKQEAgLTc0LDcgKzcyLDcgQEAgZnVuY3Rpb24gc2V0VmVyc2lvbigpCiAgICAgICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7CiAgICAgICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQogCkBAIC0xMzEsNiAr
MTI5LDcgQEAgZnVuY3Rpb24gZmluYWxDaGVjaygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWwKaW5kZXggYmI5
NDMxNzQxMGFlNmIyNjNjMzYzMGM5MTlkOTQxNjExNTEwNjE1YS4uYWY2Nzk1ZmYxZGMxZWZjNGEx
MGVjOTMxZWE0MTFmZTU0NTM2OTQ0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWwKQEAgLTE2LDgg
KzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9iamVj
dFN0b3JlTmFtZXMgYXJyYXkiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKQEAgLTUwLDEzICs0OCwxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBz
aG91bGRCZVRydWUoIidvYmplY3RTdG9yZU5hbWVzJyBpbiBkYiIpOwogICAgIHNob3VsZEJlKCJk
Yi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIxIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVj
dFN0b3JlTmFtZXMuaXRlbSgwKSIsICJvYmplY3RTdG9yZU5hbWUiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCmluZGV4IGVmNTNmZTM1
MDIxYTMzMWM1M2VhZWYwYTc2ODc2ZTA1NTA1YWFiYWUuLmI0NDlhOTM4YmEwYzMyMjQzNTU2YzUy
Nzk2N2VkZDg0N2I0N2IzNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCkBAIC0xNiw4ICsxNiw2
IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREI6IHJlcXVlc3QgcmVz
dWx0IHBlcnNpc3RzIGluIHNldFRpbWVvdXQgY2FsbGJhY2siKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyNiwxMiArMTI0LDEzIEBAIGZ1bmN0aW9uIGRl
bGV0ZVJlY29yZCgpCiBmdW5jdGlvbiBkZWxldGVTdWNjZXNzKCkKIHsKICAgICBkZWJ1ZygiZGVs
ZXRlU3VjY2VzcygpOiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29wZW4tZGF0YWJh
c2UtbnVsbC1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L29wZW4tZGF0YWJhc2UtbnVsbC1uYW1lLmh0bWwKaW5kZXggZDcxYWZmYjBjNDhkZjUyYzRiMzA3
NWZjZGFhZjlkMWExOWU3ZDI1My4uYjUwYWY5MjM0ODczYzYzNDI1YTExZDA2Y2YxNmZhZjA3YzQw
ODM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
cGVuLWRhdGFiYXNlLW51bGwtbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvb3Blbi1kYXRhYmFzZS1udWxsLW5hbWUuaHRtbApAQCAtMTYsOCArMTYs
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiBzaG91bGQgTk9U
IHRocm93IHdoZW4gb3BlbmluZyBhIGRhdGFiYXNlIHdpdGggYSBudWxsIG5hbWUiKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTM4LDEzICszNiwxNCBAQCBm
dW5jdGlvbiBvcGVuU3VjY2VzcygpCiB7CiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKICAgICBzaG91bGRCZSgiZGIubmFtZSIsICInbnVsbCciKTsKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwKaW5kZXgg
YTY3ODFhM2IxZWM5ZjY2Y2U2MTI2ODdmYjkxMmRhOTg2N2Y0Njc2Yi4uZTVjN2JhOWIyOWE4ZWVk
NjBhNTFhNjExNTM4YjRmNDJlYzc3ZTgzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdldC12YWx1ZXMuaHRtbApAQCAtMTYsOCAr
MTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcHV0dGlu
ZyBhbmQgZ2V0dGluZyB2YWx1ZXMgaW4gYW4gb2JqZWN0IHN0b3JlIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTEsMTMgKzEwOSwxNCBAQCBmdW5jdGlv
biBwb3N0QWRkSW50QXV0b0luY3JlbWVudCgpCiBmdW5jdGlvbiBwb3N0R2V0SW50QXV0b0luY3Jl
bWVudCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidGVzdEludC52
YWx1ZSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5
LXRyYW5zYWN0aW9ucy5odG1sCmluZGV4IDA2MmI3MjhhNzlhODc3YWQyMDc3MTc3NDQ0YmNjNjc0
ZjU1MjQ2MzYuLjcxYWExMWUwNWVjN2Q1MTA5Njg2YmEyMTY5N2M4OWNmYzhlZjljZmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJh
bnNhY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC01OCwxMyArNTYs
MTQgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5
MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NO
YW1lKS5kZWxldGUoa2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIi
KTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihvc05hbWUpLm9i
amVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTIpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5S
RUFEX09OTFlfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUt
dHJhbnNhY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAppbmRleCBlY2IxMzZkNWI5YTdiZDUxNzY1NmMx
OWMwYmJhNDU5ZmYyZmVhYTEzLi4yZGRiYWI0MmY1ZWViZjBhMzZjNjEyMTJmZjg5N2ZhNzMxNWU0
OWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
YWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbApAQCAtMTYsOCArMTYsNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZC93cml0ZSB0
cmFuc2FjdGlvbnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
QEAgLTExNiwxMyArMTE0LDE0IEBAIGZ1bmN0aW9uIHBvc3REZWxldGUoKQogZnVuY3Rpb24gcG9z
dERlbGV0ZTIoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9k
ZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZWFkeVN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3JlYWR5U3RhdGUuaHRtbAppbmRleCAxOGM5NmUwOGVjNTBkMzU5ZGRlYTEyZWI2MDc2
MjNhZDU2ZWRjMjY2Li45NzlhYzg5N2Q5MjE5NDU0MmQ3NzhkNjZlZmFkYzVhMzdlNTViZmQ4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR5U3Rh
dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR5
U3RhdGUuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIHJlYWR5U3RhdGUgcHJvcGVydHkgZHVyaW5nIGRpZmZlcmVudCBvcGVyYXRp
b25zIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC03OSwx
MyArNzcsMTQgQEAgZnVuY3Rpb24gZmluYWxDaGVjaygpCiAgICAgZGVidWcoImZpbmFsQ2hlY2so
KToiKTsKICAgICBzaG91bGRCZSgicmVxdWVzdC5yZWFkeVN0YXRlIiwgIklEQlJlcXVlc3QuRE9O
RSIpOwogICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LnRhcmdldC5yZXN1bHQgPT0gbnVsbCIpOwot
ICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1pbmRleC5odG1sCmluZGV4IDhm
OWJlNWYwNGUzODRmOGI4ODBhNjY1NzBlNDQ3Y2JhMjRkZWI3NTEuLjY1Nzk3MGM2NjdkOTU3ZjVh
N2Y2OWI5MGJlZTZmZDMzYTBkY2FlNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXguaHRtbApAQCAtMTYsOCArMTYsNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgYW5k
IGRlbGV0aW5nIGluZGV4ZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKQEAgLTU4LDEzICs1NiwxNCBAQCBmdW5jdGlvbiBjcmVhdGVBbmREZWxldGVJbmRleCgp
CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoaW5kZXhOYW1lKTsiKTsK
ICAgICBzaG91bGRCZSgib2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgiLCAiMCIpOwogCi0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLW9iamVjdHN0b3JlLmh0
bWwKaW5kZXggNWFkMzQ3ZjFmYTgzYmZkNDRkOGM0NWU1YzlkYjVlMDM3MjA4NmJjZi4uY2I0Yzcx
MWYwMzQzYjc0MDc2Y2QwNDljMGQyNDI3ZDAwZmY3OWJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1vYmplY3RzdG9y
ZS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIgZGVsZXRpbmcgYW4gb2JqZWN0IHN0b3JlIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTQsMTMgKzExMiwxNCBAQCBmdW5jdGlvbiBwb3N0
U2V0VmVyc2lvbjMoKQogZnVuY3Rpb24gZGVsZXRlVGhpcmRPYmplY3RTdG9yZSgpCiB7CiAgICAg
ZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsiKTsKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1hYm9ydC5o
dG1sCmluZGV4IGE1OWVjZWJlYjQxZjljZDdkZGVkZWYwOGRmYjFjZDE1Zjk2ZmU5ZjcuLjRlYjI2
Zjk4MDFjODhiYzE5NDI5NWI3N2Y4ZmJhM2M0ZTEwNjJkOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1hYm9ydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1h
Ym9ydC5odG1sCkBAIC0xNyw4ICsxNyw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVz
dCBJbmRleGVkREIncyBhYm9ydGluZyBzZXRWZXJzaW9uIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02MSwxMiArNTksMTMgQEAgZnVuY3Rpb24gcG9zdEFi
b3J0KCkKICAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICJpbml0aWFsVmVyc2lvbiIpOwogICAg
IHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIwIik7CiAKLSAgICBkb25l
KCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRtbAppbmRleCBmNGU4ZDAwYTJm
MjhhNTQzZWJjMGQ1YjUzN2E0NWNhMDlhZmU5NDUzLi40OGVmOTQ3Yjg0MGU5ZjYxYjNiZGVkMGYw
YzQ0NjgzYjExNmVmM2I5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNj
cmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgdHJpZ2dlcmluZyB2ZXJzaW9u
Y2hhbmdlIGV2ZW50Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7
CkBAIC0xMDYsMTMgKzEwNCwxNCBAQCBmdW5jdGlvbiBwb3N0U2V0VmVyc2lvbjIoKQogICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5W
RVJTSU9OX0NIQU5HRSIpOwogICAgIHNob3VsZEJlKCJkYjMudmVyc2lvbiIsICInMiciKTsKICAg
ICBzaG91bGRCZSgidmVyc2lvbkNoYW5nZUV2ZW50Q291bnQiLCAiMyIpOwotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL211dGF0aW5nLWN1cnNvci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbXV0YXRpbmctY3Vyc29yLmh0bWwKaW5kZXggNDczNDEyNzg0ZDllNjdkODIwNmJlNWIy
NWFhMjcwMzFhOTZiNzhjYS4uMzRmMjgyOTc3M2RmOGFlZmQzODNhN2MyYjE1ZjkyOGJlZGY0NGRj
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vy
c29yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vy
c29yLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBt
dXRhdGluZyBhbiBJbmRleGVkREIncyBvYmplY3RzdG9yZSBmcm9tIGEgY3Vyc29yLiIpOwotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CiAKIHRlc3QoKTsKIApAQCAtMTM0LDEwICsxMzIsMTEgQEAgZnVuY3Rp
b24gcmV2ZXJzZUN1cnNvcigpCiBmdW5jdGlvbiByZXZlcnNlQ3Vyc29yQ29tcGxldGUoKQogewog
ICAgIGRlYnVnKCJyZXZlcnNlQ3Vyc29yQ29tcGxldGUoKSIpOwotICAgIGRvbmUoKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUt
cmVxdWlyZWQtYXJndW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbAppbmRleCA1NGZjZjRhOTMzM2E1ODFl
YjhmZDIyMzk3NDMxNDQ5ZTY3ODRhZTRmLi4xZjFjYTYxMTFhOTU2ODg2OTRiN2FjN2EyZGI4OTQy
N2YxNjQ1NzJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbApAQCAtMTAsOCAr
MTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIG9iamVjdCBz
dG9yZSByZXF1aXJlZCBhcmd1bWVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTUzLDEyICs1MSwxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0
ZU9iamVjdFN0b3JlKCkKICAgICBzaG91bGRUaHJvdygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgo
J2ZvbycpOyIpOwogICAgIHNob3VsZFRocm93KCJvYmplY3RTdG9yZS5pbmRleCgpOyIpOwogICAg
IHNob3VsZFRocm93KCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgpOyIpOwotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwKaW5kZXggNzE4ZTBlNjQ4
MmQ1YTZkMzk4ZjdjOGQxYjMyOGU5NjgxYTlmNmZmYS4uYjEwMjljNDE2OTBlNWMwMjBjMzE3YWZk
MzNlNjM0YzcxNDBmYzQ0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElEQk9iamVjdFN0
b3JlIGF1dG8taW5jcmVtZW50IGZlYXR1cmUuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CkBAIC0xNjMsNyArMTYxLDcgQEAgZnVuY3Rpb24gdGVzdExvbmdLZXlQ
YXRoKCkKICAgICBkZWJ1ZygidGVzdExvbmdLZXlQYXRoKCk6Iik7CiAgICAgdHJhbnMgPSBldmFs
QW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdTdG9yZVdpdGhMb25nS2V5UGF0aCcsIHdl
YmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBkb25lOworICAg
IHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CiAKICAgICBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ1N0b3JlV2l0aExvbmdLZXlQYXRoJykiKTsK
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHtmb286ICdiYXInfSkiKTsKQEAg
LTIwMSw1ICsxOTksNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWNsZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1jbGVhci5odG1sCmluZGV4IDlmNTVlNzE3NjcyZjg1YjhlNzIzOWY3YzExMTdlN2ZhZWU3
ZmQ1NTYuLjI5OTU4OWZiNDA5ZDQzOGI2NGIxNzYyMTFiNWMyZmIxZWJiZmFhZjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRt
bApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QidzIHdlYmtpdElEQk9iamVjdFN0b3JlLmNsZWFyKCkuIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05OCwxMSArOTYsMTIgQEAgZnVuY3Rpb24gZ2V0U3Vj
Y2VzcygpCiB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQucmVzdWx0
IiwgInZhbHVlIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC5odG1sCmluZGV4
IGYxNDRlZmUwYWNhNThlZTAyMTE3YjBjMDNlN2VlODFiNmE5MDdhNTUuLjJiNDNjOGJhMDY0NGI4
MzlhZWJkMmY3ZDllZDY5OTMwOWM4N2I5NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxz
Y3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlLmNv
dW50KCkuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0x
MTgsNyArMTE2LDcgQEAgZnVuY3Rpb24gdmVyaWZ5Q291bnRXaXRoS2V5KCkKICAgICB0cmFucyA9
IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfT05MWSkiKTsKICAgICBzaG91bGRCZVRydWUoInRyYW5zICE9IG51bGwiKTsK
ICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnMu
b25jb21wbGV0ZSA9IGRvbmU7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsK
IAogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykiKTsKICAgICBzaG91bGRCZVRydWUoInN0b3JlICE9IG51bGwiKTsKQEAgLTE1NCw1
ICsxNTIsNiBAQCBmdW5jdGlvbiB2ZXJpZnlDb3VudFdpdGhLZXkoKQogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbAppbmRleCA3YWIyNmRiOGE2
NzFiN2M5MmNkZTNjNGM2ZTY2ZjEwNGIxNmZhMTNiLi5iMmIxMDQ5OTAyZGZkODRhMDFkNzMwZTIz
YWM5Y2NhN2U1YTQ4NjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+IAog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yICsg
dGhlIGN1cnNvciBpdCBwcm9kdWNlcyBpbiBkZXB0aC4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
IAogLy8gSW4gb3JkZXIgb2YgaG93IGl0IHNob3VsZCBiZSBzb3J0ZWQgYnkgSW5kZXhlZERCLgog
d2luZG93LnRlc3REYXRhID0gWwpAQCAtMjE3LDcgKzIxNSw3IEBAIGZ1bmN0aW9uIHRlc3ROdWxs
S2V5UmFuZ2UoKQogICAgICAgICB3aW5kb3cuZXhwZWN0ZWRJbmRleCA9IHVwcGVyOwogICAgICAg
ICB3aW5kb3cubnVsbEtleVJhbmdlU3RlcCA9IDI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG9u
ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMjMyLDUgKzIzMCw2IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5UmFuZ2UoKQogb3BlbkRhdGFi
YXNlKCk7IC8vIFRoZSBmaXJzdCBzdGVwLgogIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sCmluZGV4IGE2ZDY5MmVjYjA3
ZmVkYzk1NmE3M2EyNTllODcxMjU1ZDU2ZjBmZGUuLjRhYTM3YmRhNWI0YWQ5MzQ3YzFjZjkwNDFj
ZTQ2M2E0NTk3Njk4M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUuaHRtbApAQCAtOSw4
ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHdlYmtp
dElEQk9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdFN0b3JlKCkuIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTcsMTEgKzk1LDEyIEBAIGZ1bmN0aW9uIHZl
cmlmeU5vdEZvdW5kKCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJ1bmRl
ZmluZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJldmVudC50YXJnZXQuc291cmNlLmluZGV4TmFt
ZXMuY29udGFpbnMoJ2luZGV4TmFtZScpIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy5odG1sCmlu
ZGV4IDNjOGJhZGYwMTFmMDEzMGNlYzczOTFlNjVmNTlkZjY2MzNkOWE2YjkuLmYzMjJlNTViYzY5
ZDEyYzNmYmEyZDk3NGRjNWM2MTAwNDk0ZTdhMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2RkLXN0cmluZ3MuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIG9kZCB2YWx1ZSBkYXRhdHlwZXMiKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEwOSw3ICsxMDcsNyBA
QCBmdW5jdGlvbiBvcGVuQ3Vyc29yU3VjY2VzcygpCiAgICAgICAgIGRlYnVnKCIiKTsKICAgICAg
ICAgdmVyaWZ5TmV4dERhdGFiYXNlKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG9uZSgpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKQEAgLTExNyw1ICsxMTUsNiBAQCBm
dW5jdGlvbiBvcGVuQ3Vyc29yU3VjY2VzcygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29wZW4tY2xvc2UtdmVyc2lvbi5odG1sCmluZGV4IGUyNGJhZTIyNGU3MGYyNjVhYjJkN2Ux
NmVkMDBmZjVlYTBiZTJlMDguLjIyYjdlMGY2MDc3Nzc3NzgzODFmODkyNjE3ZDM5ZDUzMmIzY2Jh
ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xvc2Ut
dmVyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xv
c2UtdmVyc2lvbi5odG1sCkBAIC0yODUsMTIgKzI4NSwxMyBAQCBmdW5jdGlvbiB0ZXN0NigpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3Mi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0
aW9uLWNvbXBsZXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmco
KSk7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbAppbmRleCAwNTcyOGQ4
ZWIwY2IwNDAzNTVlYzZlY2JiYjU5MWQxN2MyNzcxM2I4Li42ZGJlYzE2YzEzZjJkZTBkNGZlNTk5
YjU0YmEwZjYzYjhlZmY0Y2M4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWN1cnNvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tY3Vyc29yLmh0bWwKQEAgLTksMTQgKzksMTIgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IAogZnVuY3Rpb24gZW1wdHlDdXJzb3JTdWNjZXNzKCkKIHsKICAgICBkZWJ1ZygiRW1wdHkgY3Vy
c29yIG9wZW5lZCBzdWNjZXNzZnVsbHkuIikKICAgICAvLyBGSVhNRTogY2hlY2sgdGhhdCB3ZSBj
YW4gaXRlcmF0ZSB0aGUgY3Vyc29yLgotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogZnVuY3Rpb24gb3BlbkVtcHR5Q3Vyc29yKCkKQEAgLTkxLDUgKzg5LDYgQEAgdGVzdCgp
OwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24u
aHRtbAppbmRleCA1YmU3MDBmODVlOTVkZjE3MTdlMmY0YjIxNjZhOTJlNTczMGQ5ZGY5Li41NmJk
MTU3MjM0M2NhODE5ODFmMWEwYzg4YzE2NzJiNzQzYWJhYjdhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0
bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiBvcGVuaW5nIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGR1cmluZyB0cmFuc2FjdGlvbnMiKTsK
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTU0LDcgKzUyLDcg
QEAgZnVuY3Rpb24gc3RhcnRUcmFuc2FjdGlvbigpCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IGZ1
bmN0aW9uIChlKSB7CiAgICAgICAgIGRlYnVnKCJ0cmFuc2FjdGlvbiBjb21wbGV0ZSIpOwogICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0YXRlIiwgIm9wZW4zY29tcGxldGUiKTsKLSAg
ICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9OwogCiAgICAgZGVi
dWcoIiIpOwpAQCAtOTAsNSArODgsNiBAQCBmdW5jdGlvbiB0cnlPcGVucygpCiB0ZXN0KCk7CiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy5odG1sCmluZGV4IGEwMmNlYWIyNGQx
NjYyOGVhZDhhZmM3OGI4YmE0NTFiYjgwOGI3YTQuLmViZWVhYzIwMGVlNTYzOTlmZWM3ZjFjNTlk
MjM1MWQyNDQ1MzJiNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3F1ZXVlZC1jb21tYW5kcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3F1ZXVlZC1jb21tYW5kcy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlZlcmlmeSB0aGF0IHF1ZXVpbmcgdXAgc2V2ZXJhbCBjb21tYW5kcyB3b3JrcyAoYW5k
IHRoZXkgYWxsIGZpcmUpLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKQEAgLTYwLDcgKzU4LDcgQEAgZnVuY3Rpb24gdmVyaWZ5QWRkKGV4cGVjdGVkKQogICAg
IHNob3VsZEJlKCIiICsgYWRkQ291bnQrKywgIiIgKyBleHBlY3RlZCk7CiAKICAgICBpZiAoYWRk
Q291bnQgPT0gMykKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAg
ICBpZiAoYWRkQ291bnQgPiAzKQogICAgICAgICB0ZXN0RmFpbGVkKCJVbmV4cGVjdGVkIGNhbGwg
dG8gdmVyaWZ5QWRkISIpOwogfQpAQCAtNjksNSArNjcsNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMuaHRtbAppbmRleCBjZGNjYmQ2NDJh
MzE5ODA4ZGIyMjg5NDQ2NDVkM2Q5NzcxY2ZmZWZjLi5iZTI1OTBiMjZjODcwM2M5NTRmNGUzMWEz
MGUyNWM3ZjgxMmE3M2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZWFkb25seS1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVhZG9ubHktcHJvcGVydGllcy5odG1sCkBAIC05LDggKzksNiBAQAogPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHJl
YWRvbmx5IHByb3BlcnRpZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiBzZXRS
ZWFkb25seVByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSkKIHsKQEAgLTU3LDEyICs1NSwxMyBAQCBm
dW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxldGVBbGxPYmpl
Y3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0
eSgib2JqZWN0U3RvcmUudHJhbnNhY3Rpb24iLCAidGhpcyIpOwotICAgIGRvbmUoKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZWFkb25seS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHkuaHRt
bAppbmRleCAxYzM2NjcyZGJjOTMwM2I0YzdjYWE3YjkzNDg3ZmYzODFiNzYzYTU5Li4yZDFiM2Fl
YTI3NGEwMWU5NTIyODI4OWYzNTdlNTZmNTkwNTg2ZTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgcmVhZG9u
bHkgcHJvcGVydGllcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHNldFJlYWRv
bmx5UHJvcGVydHkocHJvcGVydHksIHZhbHVlKQogewpAQCAtMTE0LDEyICsxMTIsMTMgQEAgZnVu
Y3Rpb24gY2hlY2tDdXJzb3IoKQogICAgIHNldFJlYWRvbmx5UHJvcGVydHkoImtleVJhbmdlLmxv
d2VyT3BlbiIsICJ0cnVlIik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgia2V5UmFuZ2UudXBw
ZXJPcGVuIiwgInRydWUiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3Bh
Z2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50
LXByb3BhZ2F0aW9uLmh0bWwKaW5kZXggZTc3MzU2YzhmOGZhMzk1NjU4NmFjZWQ1MmI0OGQ4NWMy
MzM5ZTIyYi4uMTEzZmM4YzgyMzFkNzdiOTk5OWNkMzY1NDQzZGRlNmYxZGVhMGZjOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdh
dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZl
bnQtcHJvcGFnYXRpb24uaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IGV2ZW50IHByb3BvZ2F0aW9uIG9uIElEQlJlcXVlc3QuIik7Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjY2LDcgKzI2NCw3IEBAIGZ1bmN0
aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmly
ZWQiKTsKICAgICBkZWJ1ZygiIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgcmV0dXJuOwogfQogCkBAIC0yNzQsNSArMjcyLDYgQEAgdGVzdCgpOwogCiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBjZDFiYWFjYzZkZTljNGFkNjBi
OGZhNjRiZDU2ZGJkMTVkMWIzZTU4Li41MmMzZjUzMWIzMGUyMDdkNmFhZDVkNTJjY2Y5MWY0YzE1
MjRhZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9zaGFyZWQuanMKQEAgLTI0LDQxICsyNCwzNCBAQCBpZiAoc2VsZi5pbXBvcnRTY3JpcHRzICYm
ICFzZWxmLnBvc3RNZXNzYWdlKSB7CiAgICAgfTsKIH0KIAotZnVuY3Rpb24gZG9uZSgpCi17Ci0g
ICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICBpZiAoc2VsZi5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KIGZ1
bmN0aW9uIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2soKQogewogICAgIHRlc3RGYWlsZWQoIlN1
Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4iKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrKGV2
ZW50KQogewogICAgIHRlc3RGYWlsZWQoIkVycm9yIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVk
bHk6ICgiICsgZXZlbnQudGFyZ2V0LmVycm9yQ29kZSArICIpICIgKyBldmVudC50YXJnZXQud2Vi
a2l0RXJyb3JNZXNzYWdlKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
IGZ1bmN0aW9uIHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrKCkKIHsKICAgICB0ZXN0RmFpbGVkKCJB
Ym9ydCBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5ISIpOwotICAgIGRvbmUoKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIAogZnVuY3Rpb24gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2so
KQogewogICAgIHRlc3RGYWlsZWQoIm9uY29tcGxldGUgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0
ZWRseSEiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9u
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2soKQogewogICAgIHRlc3RGYWlsZWQoIm9uYmxvY2tl
ZCBjYWxsZWQgdW5leHBlY3RlZGx5Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCiBmdW5jdGlvbiBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKGNtZCwgZXhwZWN0ZWQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRWZXJzaW9uLW51bGwu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1s
CmluZGV4IDBjZDA2MjQ3NDJiYTk0YzQ4YWY1ZmY4OGQ5ODI4NjgxYjA4OTY0N2UuLmRlYWZiZWE2
ODg3NjkwZDg1YTU5NGNjNzJkMDFjMTlkYzc0M2ViM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sCkBAIC0xMCw4ICsxMCw2IEBA
CiA8c2NyaXB0PiAKICAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB3aXRoIG51bGwgdmVy
c2lvbiBzdHJpbmciKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogIAogZnVuY3Rpb24gdGVzdCgpCiB7
CkBAIC00MywxMiArNDEsMTMgQEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQogZnVuY3Rpb24gcG9z
dFNldFZlcnNpb24oKQogewogICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIidudWxsJyIpOwot
ICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KICAKICAKIHRlc3QoKTsKICAKLTwv
c2NyaXB0PiAKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+IAogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tdW5kZWZpbmVkLmh0
bWwKaW5kZXggOTBiM2M5YTU2ODUzMDRlOGJhNGJmZDc2OWEyZjQ2YTY2NjNjOTVkZS4uOTJkZjlm
ZjY2NTE4MTc3ZTlkZmIxMjM2N2M3NzY4YTgyMGI2OWI1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRWZXJzaW9uLXVuZGVmaW5lZC5odG1sCkBAIC0x
MCw4ICsxMCw2IEBACiA8c2NyaXB0PiAKICAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB2
ZXJzaW9uIHN0cmluZyBpcyByZXF1aXJlZCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgCiBmdW5j
dGlvbiB0ZXN0KCkKIHsKQEAgLTM2LDEyICszNCwxMyBAQCBmdW5jdGlvbiBvcGVuU3VjY2Vzcygp
CiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKICAKICAg
ICBzaG91bGRUaHJvdygiZGIuc2V0VmVyc2lvbigpOyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KICAKICAKIHRlc3QoKTsKICAKLTwvc2NyaXB0PiAKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+IAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5odG1sCmluZGV4IDMxOTIyZmMwOGQ5ZDc2
NDliNzdiZDdhMjk1ZmU1MWMzZDY3MGZkOTUuLjI1ZWViNDcyMDdhZjUzMzRjYjQxYWFjODEyZjJk
YjY4NTc4MmM3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Nl
dF92ZXJzaW9uX2Jsb2NrZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9zZXRfdmVyc2lvbl9ibG9ja2VkLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pg0KIA0K
IGRlc2NyaXB0aW9uKCJBbiBvcGVuIGNvbm5lY3Rpb24gYmxvY2tzIGEgc2VwYXJhdGUgY29ubmVj
dGlvbidzIHNldFZlcnNpb24gY2FsbCIpOw0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCiANCiBjb25u
ZWN0aW9ucyA9IFtdDQogZnVuY3Rpb24gdGVzdCgpDQpAQCAtNjAsMTIgKzU4LDEzIEBAIGZ1bmN0
aW9uIGluU2V0VmVyc2lvbigpCiAgICAgZGVidWcoImluIHNldFZlcnNpb24ub25zdWNjZXNzIik7
DQogICAgIHNob3VsZEJlVHJ1ZSgic2Vlbl9ibG9ja2VkX2V2ZW50Iik7DQogICAgIGRlbGV0ZUFs
bE9iamVjdFN0b3Jlcyhjb25uZWN0aW9uc1swXSk7DQotICAgIGRvbmUoKTsNCisgICAgZmluaXNo
SlNUZXN0KCk7DQogfQ0KIA0KIA0KIHRlc3QoKTsNCiANCi08L3NjcmlwdD4NCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5Pg0KIDwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9xdWV1ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fcXVldWUuaHRtbAppbmRleCA3OTc1NzA5NWJmNGQ5OGFk
MjJhZGVhZDU0MTBhZTczYTU2YmIwNzMxLi5hYjk1NzU0NGQ5ZGEwODk3OTk0YTVhYzkzZDI3ZDdm
NjQwMjc4MjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRf
dmVyc2lvbl9xdWV1ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Nl
dF92ZXJzaW9uX3F1ZXVlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pg0KIA0KIGRlc2Ny
aXB0aW9uKCI0IG9wZW4gY29ubmVjdGlvbnMgdHJ5IHRvIHNldFZlcnNpb24gYXQgdGhlIHNhbWUg
dGltZS4gIDMgY29ubmVjdGlvbnMgZXZlbnR1YWxseSBjbG9zZSwgYWxsb3dpbmcgMSBzZXRWZXJz
aW9uIGNhbGwgdG8gcHJvY2VlZC4iKTsNCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQ0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQogDQogY29ubmVj
dGlvbnMgPSBbXQ0KIGZ1bmN0aW9uIHRlc3QoKQ0KQEAgLTEyNiwxMiArMTI0LDEzIEBAIGZ1bmN0
aW9uIGluU2V0VmVyc2lvbjEoZXZlbnQpCiB7DQogICAgIGRlYnVnKCIiKQ0KICAgICB0ZXN0UGFz
c2VkKCJjb25uZWN0aW9uWzFdIGdvdCBpbnRvIFNldFZlcnNpb24iKTsNCi0gICAgZG9uZSgpOw0K
KyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQogDQogdGVzdCgpOw0KIA0KLTwvc2NyaXB0Pg0K
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+DQogPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbAppbmRleCBlMTEzOTBj
YTBjMWI1NDI5MDgyZTM4NDIyMDZiNzU2Y2UyZjhlNTIzLi40YzAwNWFlOWIxZDc1NjVhNjVjYTUx
ZWRlMjQxYzY4MzYxM2FkNTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBzdHJ1Y3R1cmVkIGNsb25lIHBlcm11dGF0aW9ucyBpbiBJbmRl
eGVkREIuIEZpbGUvRmlsZUxpc3QgdGVzdHMgcmVxdWlyZSBEdW1wUmVuZGVyVHJlZS4iKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgdmFyIGZp
bGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlSW5wdXQiKTsKQEAgLTM0Nyw3
ICszNDUsNyBAQCBmdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iLCBjYWxsYmFjaykKICAgICB9
OwogICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgewogICAgICAgICB0ZXN0RmFpbGVk
KCJFcnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDogIiArIGUpOwotICAgICAgICBkb25lKCk7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxv
Yik7CiB9CkBAIC01MjYsNyArNTI0LDcgQEAgZnVuY3Rpb24gdGVzdEJhZFR5cGVzKCkKICAgICBl
dmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIp
OwogICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAg
ICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7Ci0g
ICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGRvbmU7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9
IGZpbmlzaEpTVGVzdDsKIAogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiT3RoZXIgSmF2YVNj
cmlwdCBvYmplY3QgdHlwZXM6Iik7CkBAIC01NDMsNSArNTQxLDYgQEAgZnVuY3Rpb24gdGVzdEJh
ZFR5cGVzKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFi
b3J0LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1m
cmFtZS5odG1sCmluZGV4IGIyNzg1NjVjNGIxMmYyM2UxMWY4NTQ5ZTBjMGE5NmVjYzgwOTVhOGYu
Ljc2NTQ1OTA1NzU4MmZhYTljYTQzMjM0MjlhOTE1YjgxNjMzZTVkMmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVj
dXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUuaHRtbApA
QCAtMTgsOCArMTgsNiBAQCB2YXIgZGI7CiB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpZnJhbWUiKVswXS5jb250ZW50RG9jdW1lbnQuYm9keTsKIAogZGVzY3JpcHRp
b24oIlRlc3QgdGhhdCBwZW5kaW5nIHRyYW5zYWN0aW9ucyBhcmUgbm90IGFib3J0ZWQgZHVyaW5n
IHJlY3Vyc2l2ZSBKUyBjYWxscyB1bnRpbCBhbGwgSlMgKGluIGFsbCBmcmFtZXMpIGlzIGZpbmlz
aGVkLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHNldHVwKCkgewogICAgIHNo
b3VsZEJlVHJ1ZSgiJ3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7CkBAIC02MywxMSArNjEs
MTIgQEAgZnVuY3Rpb24gdGVzdCgpCiBmdW5jdGlvbiBhYm9ydENhbGxiYWNrKCkKIHsKICAgICBk
ZWJ1ZygiUGVuZGluZyB0cmFuc2FjdGlvbiBhYm9ydGVkIik7Ci0gICAgZG9uZSgpOworICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCiBzZXR1cCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLmh0bWwKaW5k
ZXggMDAxYjUzNzAzY2M2NzZhMjFhNDA1MDQ5NDA1MWVhMjE4ZDFhYTFhYy4uN2U3MzBiNWNhOTM5
OWFiMWI0NTBiMjI2YjMyYmFiMjAzY2FmOWI4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRo
LWpzLXJlY3Vyc2lvbi5odG1sCkBAIC0xNCw4ICsxNCw2IEBAIHZhciBkYjsKIHZhciBib2R5ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsNCiANCiBkZXNjcmlwdGlv
bigiVGVzdCB0aGF0IHBlbmRpbmcgdHJhbnNhY3Rpb25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcg
cmVjdXJzaXZlIEpTIGNhbGxzIHVudGlsIGFsbCBKUyBpcyBmaW5pc2hlZC4iKTsNCi1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7DQogDQogZnVuY3Rpb24gc2V0dXAoKSB7DQogICAgIHNob3VsZEJlVHJ1ZSgi
J3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7DQpAQCAtNTksMTEgKzU3LDEyIEBAIGZ1bmN0
aW9uIHRlc3QoKQogZnVuY3Rpb24gYWJvcnRDYWxsYmFjaygpDQogew0KICAgICBkZWJ1ZygiUGVu
ZGluZyB0cmFuc2FjdGlvbiBhYm9ydGVkIik7DQotICAgIGRvbmUoKTsNCisgICAgZmluaXNoSlNU
ZXN0KCk7DQogfQ0KIA0KIHNldHVwKCk7DQogDQotPC9zY3JpcHQ+DQorPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0Lmh0bWwKaW5kZXggZGViYmE2MjIyMGVlYTc4MDVkMGYz
YzY2YTgwZjFmYzhhMDg4YjgyMS4uNjk3YjJkYzc3Yzg5Nzc3YTQxNDgxMjJlZDIwNTYxMjlkZDky
MDJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hYm9ydC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24o
IlRlc3QgdHJhbnNhY3Rpb24gYWJvcnRzIHNlbmQgdGhlIHByb3BlciBvbmFib3J0IG1lc3NhZ2Vz
Li4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05Niwx
MiArOTQsMTMgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkKCkKICAgICBhYm9ydEZpcmVk
ID0gdHJ1ZTsKIAogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmFkZCh7eDogJ3Zh
bHVlNScsIHk6ICd6eno1J30sICdrZXk1JykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNB
Q1RJT05fSU5BQ1RJVkVfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVy
LWNsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
ZnRlci1jbG9zZS5odG1sCmluZGV4IDU5ZThmNWI3M2IwYzBlNjUyZDBlYmM0OTZiZmU1ZmU0OTNj
ZGYzYTEuLmQwNTBjYTM3NWE0Y2Q2YTUwM2U1NWIzNjE5ODI0MzAwMmMwNzc3YWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3Nl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0
ZXItY2xvc2UuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24o
IlRlc3QgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gaW4gSW5kZXhlZERCLiIpOw0KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsNCiANCiBmdW5jdGlvbiB0ZXN0KCkNCiB7DQpAQCAtNzgsNyArNzYs
NyBAQCBmdW5jdGlvbiBvblNlY29uZE9wZW4oKSB7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
InJlcXVlc3QgPSBzdG9yZS5wdXQoJzEnLCAnMicpIik7DQogICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gb25GaW5hbFB1dFN1Y2Nlc3M7DQogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOw0KLSAgICBjdXJyZW50VHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGRvbmU7
DQorICAgIGN1cnJlbnRUcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0Ow0KICAg
ICBjdXJyZW50VHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOw0K
IH0NCiANCkBAIC05MCw1ICs4OCw2IEBAIGZ1bmN0aW9uIG9uRmluYWxQdXRTdWNjZXNzKCkgewog
dGVzdCgpOw0KIA0KIDwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9i
amVjdHN0b3JlLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAppbmRleCBjZDUwZTYxY2U2NTRkMDM0
M2ZkNTk1OGVkM2QyZmQwZGI1MjljZTlhLi5jMDc3NWNhZTZlOTU3ZWVlMDllNjQ0NTlmYzJmZmZi
NzczYjlhZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbApAQCAt
OSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHRy
YW5zYWN0aW9uIGFuZCBvYmplY3RTdG9yZSBjYWxscyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTI2LDExICsxMjQsMTIgQEAgZnVuY3Rpb24gYWZ0ZXJD
b21wbGV0ZSgpCiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUo
J3N0b3JlJykiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuaW5kZXgoJ2luZGV4JykiLCAid2Vi
a2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIik7CiAKLSAgICBkb25lKCk7
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sCmluZGV4IDgwYzJkMTNm
N2FjZTZiYjc2YjdlNzQ0ZGIyYTJjMzUzYzc1N2JlYWIuLjkyYzYwZjM0Nzc1NWY2M2EyYjY3ZTEx
ZmE2YTU2YjcyY2QzNGQ3ZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQuaHRtbApAQCAtOSw4ICs5
LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB0cmFuc2FjdGlv
biBkb2VzIG5vdCBjcmFzaCBvbiBhYm9ydC4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5j
dGlvbiB0ZXN0KCkKIHsKQEAgLTM2LDEyICszNCwxMyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uU3Vj
Y2VzcygpCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpIik7CiAg
ICAgZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24oJ2ZvbycpIik7CiAgICAgZXZhbEFuZExvZygi
d2luZG93LmdjKCkiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAog
dGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFn
YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2
ZW50LXByb3BhZ2F0aW9uLmh0bWwKaW5kZXggYjkzODg4NTM1ZjQxOGNkZTNlYTU0NTIzZjBhM2Qx
MTRhMjQ5ODg4Mi4uYTdkZTZlY2NjOGIzZWJiYTQ1YWY3NzFmZTEzMzA5ZWZiZTFhZWViZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQt
cHJvcGFnYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgZXZlbnQgcHJvcG9nYXRpb24gb24gSURCVHJhbnNhY3Rpb24u
Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTM2LDcg
KzEzNCw3IEBAIGZ1bmN0aW9uIGNvbXBsZXRlRmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmUo
ImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAidHJhbnMiKTsKICAgICBjb21wbGV0ZUZpcmVkID0gdHJ1
ZTsKICAgICBkZWJ1ZygiIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiBmdW5jdGlvbiBkYkNvbXBsZXRlQnViYmxlQ2FsbGJhY2soKQpAQCAtMTUxLDUgKzE0OSw2IEBA
IHRlc3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9u
bHkuaHRtbAppbmRleCA3NGUyYTE3MDIxZDZkNmNhNmRmMTI5YmUyNTNjOGQ5ZjUyZTEwMmNhLi4x
ZDdiMmEwMzkxNjI3M2ZkM2I5MmI5OTIzNDhlZTJhMWM1ODBmNWZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRt
bApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24oIlRlc3QgcmVhZC1v
bmx5IHRyYW5zYWN0aW9ucyBpbiBJbmRleGVkREIuIik7DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0K
IA0KIGZ1bmN0aW9uIHRlc3QoKQ0KIHsNCkBAIC02MCwxMiArNTgsMTMgQEAgZnVuY3Rpb24gZ290
Q3Vyc29yKCkKICAgICBzaG91bGRCZUZhbHNlKCIhZXZlbnQudGFyZ2V0LnJlc3VsdCIpOw0KICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJldmVudC50YXJnZXQucmVzdWx0LmRlbGV0ZSgpIiwg
IndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsNCiANCi0gICAgZG9u
ZSgpOw0KKyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQogDQogdGVzdCgpOw0KIA0KIDwvc2Ny
aXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0Pg0KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmh0bWwKaW5kZXggODE3
Mzk1MmExODU1Zjk1MDExMGViMzRlNzA5YjI2YTMyYWY5NzA0OC4uM2M5MzBkMGM3ODUwMjNjYzMw
NDc0NjIyNWZiMjhkYzU3ZTI1N2U0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yb2xsYmFjay5odG1sCkBAIC05LDggKzksNiBAQAog
PHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHRyYW5zYWN0aW9uIHJvbGxi
YWNrLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTMs
MTIgKzkxLDEzIEBAIGZ1bmN0aW9uIGdldFN1Y2Nlc3MoKQogICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwogCiAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1
ZSIsICIncm9sbGJhY2tWYWx1ZSciKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3Rv
cmVOYW1lcy1yZXF1aXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC5odG1sCmluZGV4IDhkZDczNGFlMDEzMzcwMmQ0
NTFhMTY3YzQ2OTc3NzIwZDg4OGFkMzQuLmZhYmU0ODk2Njc4MTA5MDFmNzA0Y2VjODg0NTUzYThm
NDA0NzI0NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWwKQEAgLTEwLDgg
KzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQjogdHJhbnNh
Y3Rpb24gc3RvcmVOYW1lcyByZXF1aXJlZCBhcmd1bWVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ1LDEyICs0MywxMyBAQCBmdW5jdGlvbiBjcmVh
dGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIp
OwogCiAgICAgc2hvdWxkVGhyb3coImRiLnRyYW5zYWN0aW9uKCk7Iik7Ci0gICAgZG9uZSgpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbAppbmRleCBkYzAzOTVkMjRkZDc3NGZlMThkN2U5
NWQ4Mzg3YzZjYTE1MjE2NTFjLi41NTUwNzFhMjEwODhjOTVkM2U4NDkwOGYzN2FjMDIyNjY3ZTA1
ZWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90d28tdmVyc2lv
bi1jaGFuZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHdvLXZl
cnNpb24tY2hhbmdlcy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRp
b24oIlRlc3QgYmVoYXZpb3Igd2hlbiB0aGUgc2FtZSBjb25uZWN0aW9uIGNhbGxzIHNldFZlcnNp
b24gdHdpY2UiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiAKIGZ1bmN0aW9uIHRlc3QoKSB7CkBA
IC0xMDAsNyArOTgsNyBAQCBmdW5jdGlvbiBjaGVja1Jlc3VsdHMoKSB7CiAgICAgICAgIHJlcS5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgICAgIHJlcS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC50YXJnZXQucmVzdWx0IiwgImJiYiIpOwotICAgICAgICAgICAgZG9uZSgpOyAgICAKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9OwogICAgIH07CiB9CkBAIC0xMDksNSAr
MTA3LDYgQEAgZnVuY3Rpb24gY2hlY2tSZXN1bHRzKCkgewogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRtbAppbmRleCAwY2Q0YzJmMWI4MDRiMGM4Y2ZmODFk
YmI5ODZhODEyMjAxZWE3YWRlLi43YzY0M2EwY2MyNDAzYTcxNzIwNzZkNDk4NDk2YWJjNjdmNzdl
NDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRl
ZmluZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRl
ZmluZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIHVuZGVmaW5lZCBhcyByZWNvcmQgdmFsdWUiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTc1LDEyICs3MywxMyBAQCBmdW5jdGlvbiBj
aGVja0N1cnNvcigpCiAgICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIGlz
IG51bGwiKTsKICAgICB9Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbAppbmRl
eCA5Mzg1Y2I0ZTA2ZjgwYWJkNDMyY2I2YTU5M2IzM2RkYjUxYzU1OTJhLi5hMDYyZDk2Zjg2ZDkz
YTU3ODRjZDdiZWExMDQzNDBlYmViNTY2ZWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8
c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgb2RkIHZhbHVlIGRhdGF0eXBl
cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtODUsNyAr
ODMsNyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2
YWx1ZUluZGV4Kys7Iik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBk
b25lKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQogICAgIH0KIH0K
QEAgLTk0LDUgKzkyLDYgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQu
dHh0CmluZGV4IDMwNGIxZjQ3NmMyNGM4MjEzYTcyODE4ZTA2MjIwNTcxNmJkYzI2MDcuLjUyNTM1
OTA2YzUxMmZlNTc0NTIyYjk2YmFmMDIzMWFmNjdhNGY5YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODQ6IFVu
Y2F1Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQhCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgODI6IFVuY2F1Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQh
CiBFbnN1cmUgdGhhdCBhYm9ydGVkIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUgY29t
cGxldGVseSByb2xsZWQgYmFjawogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQu
aHRtbAppbmRleCBlMThkZTFlYTI3ZjUwOTQxMDk4YTYyYTIwMWU2NWRmZTcxZjBhOTgxLi40ZjA2
NWYwN2RkNmM4NjA5Y2IzMWNkNGFjODk0OWYyMWNiODM1YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwKQEAg
LTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBhYm9y
dGVkIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUgY29tcGxldGVseSByb2xsZWQgYmFj
ayIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIAogZnVuY3Rpb24gdGVzdCgpIHsKQEAgLTk2LDEx
ICs5NCwxMiBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uMkFib3J0KCkKICAgICBzaG91bGRCZVRydWUo
ImRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3N0b3JlMScpIik7CiAgICAgc2hvdWxkQmVG
YWxzZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUyJykiKTsKIAotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbAppbmRleCA4MTU4ODA2
ZGZkY2RkNmE1ZWQ4M2IwYTVjMWI3ZTAyNjMyZThmZWVjLi5kNzZhNzBiNzJmMmZmNzNjNDRjYmFj
Yjc3NGIzZDg2YjMwZWNiMGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgVkVSU0lPTl9DSEFOR0UgdHJhbnNh
Y3Rpb24gZG9lc24ndCBydW4gY29uY3VycmVudGx5IHdpdGggb3RoZXIgdHJhbnNhY3Rpb25zIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogCiBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtNzMsMTIgKzcx
LDEzIEBAIGZ1bmN0aW9uIG9wZW5BZ2FpblN1Y2Nlc3MoKQogewogICAgIGRlYnVnKCJvcGVuKCkg
Y2FsbGJhY2sgLSB0aGlzIHNob3VsZCBhcHBlYXIgYWZ0ZXIgVkVSU0lPTl9DSEFOR0UgdHJhbnNh
Y3Rpb24gZW5kcyIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LnN0YXRlIiwg
IlZFUlNJT05fQ0hBTkdFIGZpbmlzaGVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb25jaGFu
Z2VyZXF1ZXN0LWFjdGl2ZWRvbW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0Lmh0bWwKaW5kZXggMDMz
MjgwN2QwY2I4NmYzNDYzMmY1N2E2ZmRlZjkzODU5N2EwMDc0My4uMjA3YTQ1YjFjYzA4YzM5Y2Nm
YmY2MDAwYmI3MGNkZGU0YmMzMTI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZl
ZG9tb2JqZWN0Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9u
KCJFbnN1cmUgdGhhdCBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBvYmplY3RzIGFyZSBub3QgR0Mn
ZCBpZiB0aGV5IGhhdmUgcGVuZGluZyBldmVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIGV2YWxBbmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRl
eGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIp
OwpAQCAtNzAsMTEgKzY4LDEyIEBAIGZ1bmN0aW9uIHRlc3RTZXRWZXJzaW9uKCkKIGZ1bmN0aW9u
IHZlcnNpb25TdWNjZXNzKCkKIHsKICAgICB0ZXN0UGFzc2VkKCJzZXRWZXJzaW9uJ3MgSURCVmVy
c2lvbkNoYW5nZVJlcXVlc3Qub25zdWNjZXNzIGV2ZW50IGZpcmVkIik7Ci0gICAgZG9uZSgpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130924</attachid>
            <date>2012-03-08 15:43:45 -0800</date>
            <delta_ts>2012-03-12 13:26:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80555-20120308154344.patch</filename>
            <type>text/plain</type>
            <size>120769</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDUzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjMyMzMxMmY3NDhlMjgyYzAwZjQ3
MGVlNzJlYzY2YWZkY2ZjNzA3ZS4uNmViNzQyNTRmMmM3MWE4YzVhOThkNmU3NmY3M2M0ZDkzZDc3
MDQzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NiBAQAorMjAxMi0wMy0wNyAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBsYXlvdXQgdGVzdCBz
dHlsZSB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgwNTU1CisKKyAgICAgICAgQ2hhbmdlIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUgdG8gdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlCisgICAgICAgIGFuZCBpZGItc3BlY2lm
aWMgZG9uZSgpIHRvIGZpbmlzaEpTVGVzdCgpOworCisgICAgICAgIEZvbGxvd2luZyB0aGUgdW5p
Zm9ybSBzdHlsZSByZXN1bHRzIGluIGxlc3Mgb3ZlcmFsbCBjb2RlIGFuZCBtYWtlcworICAgICAg
ICB0aGVtIGVhc2llciB0byBjb252ZXJ0IHRvIHdvcmtlciBsYXlvdXQgdGVzdHMuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9jb25zdGFudHMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUt
YW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWcuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGFiYXNlLXF1b3RhLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGVJbmRleC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0
b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kdXBsaWNhdGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWNtcC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnZhbGlkLWtleXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNy
b3NzLXR5cGVzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHkuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleXJhbmdlLXJlcXVpcmVkLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbGlzdC1vcmRlcmluZy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGguaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3Mu
aHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3Rz
dG9yZS1udWxsLW5hbWUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1zb3VyY2UuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2dsb2JhbC1kYXRhLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50
cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlu
bGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVzdWx0LW9yZGVyLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51
bGwtbmFtZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdl
dC12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRv
bmx5LXRyYW5zYWN0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVhZHlTdGF0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3IuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvb2RkLXN0cmluZ3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWN1cnNvci5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVy
aW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVk
LWNvbW1hbmRzLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJv
cGVydGllcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanM6Cisg
ICAgICAgICh1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrKToKKyAgICAg
ICAgKHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVs
bC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tdW5kZWZpbmVk
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tlZC5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX3F1ZXVlLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJz
aW9uLWNyb3NzLWZyYW1lLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLmh0bWw6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS5odG1s
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1
aXJlZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5n
ZXMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3Qt
YWN0aXZlZG9tb2JqZWN0Lmh0bWw6CisKIDIwMTItMDMtMDcgIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJraW5nIGZpbGUt
d3JpdGVyLWV2ZW50cy5odG1sIGFzIGZsYWt5LWNyYXNoaW5nIG9uIFdpbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0bWwKaW5kZXggYTE2MWU5ZThkOGU1MGYy
NmI0ZjY2NWM4OGMwNjkwNmYwNjg3MmM2MS4uMzgxNjEzNGUxNDI3ZWI0NWIyZDBmMzFmMWI5YmU2
NzQ3MGI5MGEyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29u
c3RhbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRz
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBjb25zdGFudHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVz
dCgpCiB7CkBAIC00Miw4ICs0MCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiB0ZXN0KCk7CiAKLWRv
bmUoKTsKK2ZpbmlzaEpTVGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFu
ZC1yZW1vdmUtb2JqZWN0LXN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbAppbmRleCAzMmJhZTFkMzExNmVl
OTQzNGMzN2M3YWVkMzhjMzAzMTcyZDRmMzU1Li4xNDUzNzU0MDVjNjNlM2E0ZTVjZDI1NmYyMzY5
YzdmZDZlZjFmY2RiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
cmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRtbApAQCAtOSw4
ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0
ZSBhbmQgcmVtb3ZlT2JqZWN0U3RvcmUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTYyLDEyICs2MCwxMyBAQCBmdW5jdGlvbiB0cnlPbmNlTW9yZSgpCiAg
ICAgZGVidWcoIlRyeWluZyByZW1vdmUgd2l0aCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzIik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3RtcCcp
IiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogCi0gICAg
ZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwKaW5k
ZXggN2E4YWZmNGY1NTJkNzA4ZTdlNmNmNGQ0MTE1YmQ3OWM0MmMzNDQ0Mi4uMDc4ZTUwODBhOWMx
ODFmOGQ2ODA2NWU2YzE4YWNhZGRmOGU3Yjg0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIncyBjcmVhdGVPYmplY3RTdG9yZSdzIHZhcmlvdXMgb3B0aW9ucyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNzksMTIgKzc3LDEzIEBAIGZ1bmN0aW9u
IGNoZWNrQigpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQuYSIsICJ7YTog
MH0iKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50
LXJlcXVpcmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmpl
Y3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggNjBlOTllOGYyNmM2MmFh
Y2FiMDY3Njc4NGNmZjgxYjVlOTU1NDVkMi4uYjYzZjM5ODk3NzlmZjNlODc3ZDBhZjJjODAzNWFj
ZWZiODJhMjk5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Jl
YXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVx
dWlyZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIG5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWQi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ1LDEyICs0
MywxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgc2hvdWxkVGhyb3coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUt
bnVsbC1uYW1lLmh0bWwKaW5kZXggZDdkZjg3MDA3YjM4NWVhMDVjYmIwNWY1ZDAwYTY2NjU0MDk5
YjU3NS4uNzZlOWZiMWRmYzE5NTYyMjRmN2U2MjkxODBmNWQxZmE2ZmMwY2EzYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1u
YW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjcmVhdGVPYmplY3RTdG9yZSBudWxsIGhhbmRsaW5nIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NiwxMiArNDQs
MTMgQEAgZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiAKICAgICBvYmpl
Y3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwogICAg
IHNob3VsZEJlKCJvYmplY3RTdG9yZS5uYW1lIiwgIidudWxsJyIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItY29udGludWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1jb250aW51ZS5odG1sCmluZGV4IDQ5OGNmODllODc2NTFhZDM5NjZiMDg5NzgxZmRlMmZi
ZDJiNDJjYWMuLjY0ZmIwYmIzZTYwMDZjMzBlY2Y3YjY2MWEwMGU4ZDFjNWM4YTEwYjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS5odG1s
CkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4gCiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QidzIElEQkN1cnNvci5jb250aW51ZSgpIHdpdGggYSBrZXkgcGFyYW1ldGVyLiIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIHZhciBkYXRlID0gbmV3IERhdGUoKTsKIApAQCAtMjc2LDExICsyNzQs
MTIgQEAgZnVuY3Rpb24gZGVzY2VuZGluZ0Vycm9yVGVzdEVxdWFsKCkKIGZ1bmN0aW9uIG9uVHJh
bnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29y
LmNvbnRpbnVlKCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVf
RVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAg
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS5odG1sCmluZGV4IGE1YzQ1ZTY3MzUzYWJm
YzdlZTc1MjIwNWM4MjQxZTI3Mjk2Nzg3OGQuLjlmZThlZGU3MTY1M2QwMjNmY2RmMDQyNmIwOTZk
ZGU2NGU4MGIzZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1kZWxldGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItZGVsZXRlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIHRl
c3QoKTsKIApAQCAtMTA3LDEwICsxMDUsMTEgQEAgZnVuY3Rpb24gZGVsZXRlT2JqZWN0KCkKIGZ1
bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0
bWwKaW5kZXggZGU3ZDkyZTBiYjQ0MjFlMDc3ZjJmNmQwZGIxOTQ4OTY2ZTg2YjYzNi4uMTk0YzJj
NjExNTA5ZDlkNzRlZDk2OTRmNGJlYTlhMjlkNmU0Zjk3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS5odG1sCkBAIC05
LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgY29uc2lzdGVuY3kgb2Yg
SW5kZXhlZERCJ3MgY3Vyc29yIG9iamVjdHMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdGVz
dCgpOwogCkBAIC04NywxMCArODUsMTEgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogZnVuY3Rp
b24gdHJhbnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxl
dGUoKSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sCmluZGV4IDYxM2EzNDNhNGU5
NGJiMTY2NGZkMjJlZDc1ZGFlODBjNjA1ZmY5MWQuLmUxYTRiN2JmMmZmNjVhYjhmNTNjZmI5NjE5
ODdjZmEyNDQ4YWRiN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1pbmRleC1kZWxldGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CiAKIHRlc3QoKTsKIApAQCAtMTExLDEwICsxMDksMTEgQEAgZnVuY3Rpb24gZGVs
ZXRlT2JqZWN0KCkKIGZ1bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3Vs
ZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtl
eS1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1v
cmRlci5odG1sCmluZGV4IDY4MWNhZjkzMzA0M2VkY2Y2NGVmMTFkYzNhMWJiMDAzNDUwOGE1Mzgu
LjVhMzRjZGVjOWQzZDg2YzkyZWI5MDA2YWZkMjJhYTQ5NjIwZGM4ZjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwKQEAgLTks
OCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBv
cmRlcmluZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTg4LDcgKzE4Niw3IEBAIGZ1bmN0aW9uIGNoZWNr
U3RvcmUoKQogZnVuY3Rpb24gZmluaXNoVXAoKQogewogICAgIHRlc3RLZXlDb21wYXJlKCk7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiB0ZXN0S2V5Q29t
cGFyZSgpCkBAIC0yMzcsNSArMjM1LDYgQEAgZnVuY3Rpb24gdGVzdEtleUNvbXBhcmUoKQogdGVz
dCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuaHRtbAppbmRleCBmY2M3ZDc5YzU3MmI3ZTIzYzFkNDYyNDNhMTZjMDY1ZDA2OTI2Y2EzLi44
NGExMTdjNzY3ZWViNWFjOTMzNzViNGY0NmI4ZDhiZGJmODExMDY1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIHByaW1hcnkga2V5IG9yZGVyaW5nIGFuZCByZWFkYmFjayBmcm9tIGN1cnNvcnMu
Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDQsNyAr
MTAyLDcgQEAgZnVuY3Rpb24gY2hlY2tTdG9yZSgpCiAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiY291bnQg
PT09IGtleXMubGVuZ3RoIik7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgfQogICAgIH07CiB9CkBAIC0xMTIsNSArMTEwLDYgQEAgZnVu
Y3Rpb24gY2hlY2tTdG9yZSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItcmV2ZXJzZS1idWcuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1yZXZlcnNlLWJ1Zy5odG1sCmluZGV4IDA1NDk5Mzk4ZDgwMDFhZWEzYzIyZDE1NWY3ODA2MDcy
N2I1NmNmMzMuLmI1NTk0ZGY3NWY3MWI4YzU4ZDRhZjFmNGQwY2I5MjIyYmFiYzM2MDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1
Zy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCIGtleXMgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4iKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTcyLDcgKzcwLDcgQEAgZnVu
Y3Rpb24gdGVzdEN1cnNvcigpCiAKICAgICBpZiAodGVzdHMubGVuZ3RoID09PSAwKSB7CiAgICAg
ICAgIGRlYnVnKCJObyBtb3JlIHRlc3RzLiIpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTUsNiArMTEzLDcg
QEAgZnVuY3Rpb24gdGVzdEN1cnNvcigpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbAppbmRleCBjZmU3MjA4Y2JiZDliMjIyMjEyMTk3
OTc5MzMzMmMxOTEzMDUxODhmLi5jMjZlYWY0NzYzNmU1NzQyOGY2NTI0Mzc2YjBkZWE2NzY2ZWI4
ZGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tp
cC1kZWxldGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXNraXAtZGVsZXRlZC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRp
b24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHNraXBzIGRlbGV0ZWQgZW50cmllcy4iKTsKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiB2YXIgbmFtZXMgPSBbJ0FscGhhJywgJ0JyYXZvJywgJ0NoYXJs
aWUnLCAnRGVsdGEnLCAnRWNobycsICdGb3h0cm90JywgJ0dvbGYnLAogICAgICAgICAgICAgICdI
b3RlbCcsICdJbmRpYScsICdKdWxpZXQnLCAnS2lsbycsICdMaW1hJywgJ01pa2UnLCAnTm92ZW1i
ZXInLApAQCAtMTk2LDEwICsxOTQsMTEgQEAgZnVuY3Rpb24gaW5kZXhDdXJzb3JUZXN0KCkKIGZ1
bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNv
bXBsZXRlKCk6Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVl
LWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggYmNmZDEwYjgwMDBhYjA2OGFiNDcxYjgwZTlm
OWVjYjNkZTFkN2YyNC4uZDg0NmYwNGI0YzgxMDFhMjVmZTQxMDlkZGIzOWNjODU3N2ZhZTFmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12
YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNv
ci51cGRhdGUgcmVxdWlyZWQgYXJndW1lbnRzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CkBAIC04MSw3ICs3OSw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDMoKQog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIHdhcyBudWxs
Iik7CiAgICAgICAgIH0KLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICB9CiB9CiAKQEAgLTg5LDYgKzg3LDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbAppbmRleCA5NDhmMjI1
MmU4ZjgzMjk0ZjU4ZjQwOTVjYWZlNGFjZTQzODllMWZiLi5hZTE5Yzk3OWU2OWRjMmQyZmQxY2Fi
ZTA2NmRiZGQ1YTFiYTFiMDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItdXBkYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXVwZGF0ZS5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHVwZGF0ZS4iKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiB0ZXN0KCk7CiAKQEAgLTIxOCwxMCArMjE2LDExIEBAIGZ1bmN0aW9uIGtleUN1cnNv
cigpCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNh
Y3Rpb25Db21wbGV0ZSgpIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCmluZGV4IDAwZTRjMzFm
NjA3YWRlYmVhZWNkMzQyZjcyZjVlZjY0MTY3ZjI5MDcuLjBiZmIxNTc0ZjkyODViZGFkODIyYjZk
NzhjYzMyMTdjMTc3NWE2ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCBkYXRhIGluc2VydGVkIGludG8gSW5kZXhlZERCIGRvZXMgbm90
IGdldCBjb3JydXB0ZWQgb24gZGlzay4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC02NSwxMiArNjMsMTMgQEAgZnVuY3Rpb24gZ2V0RGF0YSgpCiBmdW5j
dGlvbiBkb0NoZWNrKCkKIHsKICAgICBzaG91bGRCZVRydWUoImV2ZW50LnRhcmdldC5yZXN1bHQu
eC50b1N0cmluZygpID09IHRlc3REYXRlLnRvU3RyaW5nKCkiKTsKLSAgICBkb25lKCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YWJhc2UtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRh
YmFzZS1iYXNpY3MuaHRtbAppbmRleCA0NzY4M2U4NzBlYTcyZDhiMWVjMjAxYjQzMmMzNTk2Nzcw
MTQxMzA5Li44YWZjMWJhYjA4YTVjNjM5Y2FmYjFkY2QwMDQzYTQwYzk1ZWI5ODM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MuaHRtbApA
QCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBiYXNpY3Mg
b2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtMTE5LDEyICsxMTcsMTMgQEAgZnVuY3Rpb24gdGVzdENsb3Nl
KCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbigndGVzdDEyMycp
IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOwogICAgIGRlYnVnKCJD
YWxsIHR3aWNlLCBtYWtlIHN1cmUgaXQncyBoYXJtbGVzcyIpOwogICAgIGV2YWxBbmRMb2coImRi
LmNsb3NlKCkiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3Qo
KTsKIAogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWUtdW5kZWZpbmVk
Lmh0bWwKaW5kZXggNjZhN2U4N2NkZGMyZDEwOTQyOWVkYjkwZDFkNzZmMDE2NWE2M2JhMS4uZDZm
Yzk1NDEzNzhiYTkwNGJiNTk3NzVjYzBhZmRlYzBlNTkyZjcwMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5o
dG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgdW5kZWZpbmVkIGFzIHJlY29yZCB2YWx1ZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjUsMTIgKzIzLDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHNob3VsZEJlRmFsc2UoIklEQktleVJhbmdlID09IG51bGwiKTsKIAogICAgIHNob3VsZFRo
cm93KCJpbmRleGVkREIub3BlbigpOyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1vZGQt
bmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1u
YW1lcy5odG1sCmluZGV4IDQ0MDQxYjI4MGUxZTIyNDM4NDg0N2I0ZjEyNTBkOWY3YjFkMWY0NDUu
LjgzZDhlOTdjNmViOTJkYTUwODg1NzQ4YTExNWM3NDQ4Njc1Njg4NTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
b2RkIHZhbHVlIGRhdGF0eXBlcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNDAsMTIgKzM4LDEzIEBAIGZ1bmN0aW9uIG9wZW5OZXh0RGF0YWJhc2UoKQog
ICAgIGRlYnVnKCJvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgIiArIHRlc3REYXRhW25leHRUb09w
ZW5dLmRlc2NyaXB0aW9uKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgdGVzdERhdGFbbmV4dFRvT3Blbl0uZGVzY3Jp
cHRpb24pIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSArK25leHRUb09wZW4gPCB0ZXN0RGF0YS5sZW5ndGgg
PyBvcGVuTmV4dERhdGFiYXNlIDogZG9uZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICsrbmV4
dFRvT3BlbiA8IHRlc3REYXRhLmxlbmd0aCA/IG9wZW5OZXh0RGF0YWJhc2UgOiBmaW5pc2hKU1Rl
c3Q7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVv
dGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXF1b3RhLmh0
bWwKaW5kZXggMTA5YTdkMjkxMDhmZjY1Mzg4YzJlYmM5NDY2NmY2M2M5Yjg4ZmI3My4uMTYxN2E3
YjM3MTU2MTMyZGNlOWM1MGJmYjMwYWU1ODhkODZjNDhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sCkBAIC05LDggKzksNiBAQAog
PHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3RzIEluZGV4ZWREQidzIHF1b3RhIGVuZm9yY2lu
ZyBtZWNoYW5pc20uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNzksNyArNzcsNyBAQCBmdW5jdGlvbiBhZGREYXRhKCkKICAgICAgICAgICAgIHN0b3Jl
ID0gZXZlbnQudGFyZ2V0LnNvdXJjZTsKICAgICB9IGVsc2UgewogICAgICAgICB0ZXN0RmFpbGVk
KCJhZGRlZCBtb3JlIHRoYW4gcXVvdGEiKTsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkYXRhQWRkZWQgKz0gNjU1
MzY7CkBAIC05NywxMiArOTUsMTMgQEAgZnVuY3Rpb24gbG9nRXJyb3IoKQogZnVuY3Rpb24gdGVz
dENvbXBsZXRlKCkKIHsKICAgICB0ZXN0UGFzc2VkKCJBZGRpbmcgZGF0YSBmYWlsZWQgZHVlIHRv
IHF1b3RhIGVycm9yLiBEYXRhIGFkZGVkIHdhcyBhYm91dCAiICsgTWF0aC5yb3VuZChkYXRhQWRk
ZWQgLyAxMDI0IC8gMTAyNCkgKyAiIE1CIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9z
ZWQtZGF0YWJhc2Utb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5odG1sCmluZGV4IGMzNzRkNTVhY2VmNmVlMzQw
YTI0NTQyZDI0N2EyZmIzODZjNzU1MTAuLmFiMGY1Y2Y4NmZjMDk3ZjZlNmEzMjVlZDgzOWZmOTY1
YjEwN2JlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0
ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBJREJEYXRhYmFzZSBvYmpl
Y3RzIGFyZSBkZWxldGVkIHdoZW4gdGhlcmUgYXJlIG5vIHJldGFpbmluZyBwYXRocyBsZWZ0Iik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogCiBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtNTIsMTIgKzUw
LDEzIEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogICAgIHZhciB2ZXJzaW9uQ2hhbmdlUmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpIik7CiAgICAgdmVyc2lv
bkNoYW5nZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHZl
cnNpb25DaGFuZ2VSZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
Ci0gICAgdmVyc2lvbkNoYW5nZVJlcXVlc3Qub25zdWNjZXNzID0gZG9uZTsKKyAgICB2ZXJzaW9u
Q2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaW5pc2hKU1Rlc3Q7CiB9CiAKIAogdGVzdCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbAppbmRleCA3ZTRiY2E0NDE0NzFjZTBi
ZTM2ZWZjMTExMzI3OTM5ZTdlMTM0NGM2Li41Y2FiOTA1ZTI3N2U2OTUyNjA2ZmFlZTlkNTM2OWE1
ZGNmOGE3ODg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGUtcmFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUt
cmFuZ2UuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlLmRlbGV0ZShJREJLZXlSYW5nZSkgbWV0aG9kLiIp
OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTIsNyArOTAs
NyBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gbmV4
dFRlc3Q7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTEwMiw1ICsxMDAsNiBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiB0ZXN0KCk7CiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlSW5kZXguaHRtbAppbmRleCA0YTcwNzQzYmMwZGQyNmRlYjg3YzZiOWJk
Y2U3MzM1YzQwNjk5NGVjLi5kODQ3YjViZDg3MmExYzJlNzE3NWRkOWQ4N2M2YjM0ZTQ4NDUyNjIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWwK
QEAgLTIsNyArMiw2IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CkBAIC0xMSw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgZGVsZXRlSW5kZXggbWV0aG9kIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CkBAIC01NywxMSArNTQsMTIgQEAgZnVuY3Rpb24gcG9zdFR3aWRkbGluZygp
CiB7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jh
cicpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIiKTsKICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgnc2Vjb25kJykiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIik7Ci0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3Vt
ZW50LXJlcXVpcmVkLmh0bWwKaW5kZXggZjUyNmMxODBmZDk1YmY0YzM0ZWIyNzY2YTRiNTlhMjg2
MmZlY2EwZi4uNmI5ZDFhZDE5Mjg0YTUwZDA5YTE3YmY4NTZjYmY0OTcwNDBhNDdkZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFt
ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbApAQCAtMTAs
OCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGRlbGV0
ZU9iamVjdFN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NSwxMiArNDMsMTMgQEAgZnVuY3Rpb24gY3JlYXRlQW5k
UG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAog
ICAgIHNob3VsZFRocm93KCJkYi5kZWxldGVPYmplY3RTdG9yZSgpOyIpOwotICAgIGRvbmUoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCmluZGV4IDg3Yzlh
NTlkNDhlMWUyNTRlZmRlNWQ1OGUyZTkwODIwZWNiMTg2NWUuLjU2YTYyMWRhZjI1OTE4ZDE2Mzgw
YmFlMzAwODA3YjFjOTkzOTAwM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCkBAIC0x
MCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgZGVs
ZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ2LDEyICs0NCwxMyBAQCBmdW5jdGlvbiBjcmVhdGVB
bmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKIAogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdudWxsJyk7Iik7CiAgICAgZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUo
bnVsbCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMuaHRtbAppbmRleCA5Njg1MzA5OGI1OGIyMTc2
ZTJjNDgxN2Q5MzlhMjM2OGU4YTI5ZmQzLi40MjM2MDdiNzdhZmRkZmIxMTkyMjVhNTc0YmIzZThh
YmM1MWVjYjc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBs
aWNhdGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZHVwbGljYXRl
cy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlZlcmlmeSB0
aGF0IHlvdSBjYW4gcHV0IHRoZSBzYW1lIGRhdGEgaW4gMiBkaWZmZXJlbnQgZGF0YWJhc2VzIHdp
dGhvdXQgdW5pcXVlbmVzcyBjb25zdHJhaW50cyBmaXJpbmcuIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAKIHRlc3RDb3VudCA9IDA7CiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTE2NiwxMiArMTY0LDEz
IEBAIGZ1bmN0aW9uIGxhc3QoKQogICAgIGlmICh0ZXN0Q291bnQgPT0gMSkKICAgICAgICAgdGVz
dCgpOwogICAgIGVsc2UKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVzZXMtYWJv
cnQtYnktZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXJyb3It
Y2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbAppbmRleCA0MDBlOGIyOTZkOGYzMmU4ODNlYjZj
MzQzNTRjNGVlYmY1YjYzNWYyLi43YzEwMjVkZDA5ZWY3NGIwZTdiN2JhZmRiYzBmMmU2ZjhkMWU1
ZjMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVz
ZXMtYWJvcnQtYnktZGVmYXVsdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Vycm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8
c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiB3aXRoIGFu
IGVycm9yIGFib3J0cyB1bmxlc3MgcHJldmVudERlZmF1bHQoKSBpcyBjYWxsZWQuIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTAxLDEyICs5OSwxMyBA
QCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQxKCkKIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQWJv
cnRlZDIoKQogewogICAgIHRlc3RQYXNzZWQoIlRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVj
dGVkLnR4dAppbmRleCA0YjlmODY5YzFkZjI5MGFjOGIzN2ZiNjlhYWY2NmYwMDk4Nzk3YWVhLi4w
NGJlY2RlNzIzZDBkNDk5NjU0ODg0NDY0MTZiYWI1ODM0NDU5NzRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4t
ZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA2MzogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA2MzogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSA2MTogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0
ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MTogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMg
ZXhwZWN0ZWQKIFRlc3QgZXhjZXB0aW9ucyBpbiBJREJSZXF1ZXN0IGhhbmRsZXJzIGNhdXNlIGFi
b3J0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1s
CmluZGV4IGJiMGI1ZGY2ZGMyZjYzNTM0NjcwN2IzMTlkZGU1N2VlNGQ4MmVkOWUuLmEyZGMyYzJm
OTFlZDc3ODk5MmYwZDJhMzkyMjIwMjQxMmM2NDI4OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0
bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBleGNlcHRp
b25zIGluIElEQlJlcXVlc3QgaGFuZGxlcnMgY2F1c2UgYWJvcnRzLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyMSwxMiArMTE5LDEzIEBAIGZ1bmN0
aW9uIHRyYW5zYWN0aW9uQ29tcGxldGVkMigpCiAgICAgZGVidWcoIiIpOwogICAgIHRlc3RQYXNz
ZWQoIlRoZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQuIik7CiAgICAgZGVidWcoIiIpOwotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAKIDwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9mYWN0b3J5LWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZmFjdG9yeS1iYXNpY3MuaHRtbAppbmRleCAzODMzYWZmOWQ0ZTczYTI0ZWRjOTlkNDQz
ZTMzYTQ1YWFiMTFkZTA0Li42YWZlYzBmNzkwN2FlYWZlM2FkYmZmY2YwOGQyMWZkZDI1MWI3MmE0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWJhc2lj
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktYmFzaWNz
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGUg
YmFzaWNzIG9mIEluZGV4ZWREQidzIElEQkZhY3RvcnkuIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtODQsMTIgKzgyLDEzIEBAIGZ1bmN0aW9uIGdldERh
dGFiYXNlTmFtZXNTdWNjZXNzMygpCiAKIGZ1bmN0aW9uIGRlbGV0ZURhdGFiYXNlU3VjY2VzczIo
KQogewotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWNtcC5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZmFjdG9yeS1jbXAuaHRtbAppbmRleCA4MThhNjE5OTE4OWZlOTRlM2Zm
Mjk0OWY4NThmMDg5NTBmMDJhMWVmLi43OWY0NjBmYWEyNTdjYThkNjA0YTVhOGRlYTJlMGIxZmQ5
MDA4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5
LWNtcC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktY21w
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIga2V5IGNvbXBhcmlzb24gdXNpbmcgSURCRmFjdG9yeS5jbXAoKS4iKTsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0yNCw3ICsyMiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHRlc3RWYWxpZEtleXMoKTsKICAgICB0ZXN0SW52YWxpZEtleXMoKTsK
ICAgICB0ZXN0SWRlbnRpY2FsS2V5cygpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIAogZnVuY3Rpb24gdGVzdFZhbGlkS2V5cygpCkBAIC0xNTIsNSArMTUwLDYgQEAgZnVu
Y3Rpb24gdGVzdElkZW50aWNhbEtleXMoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmh0
bWwKaW5kZXggNjZmNTJlYjc3ZGUxM2EzNTVjNzE4YjExNjgzNDg1Y2I5YTc2NGVmNy4uYzNiOTE3
NDc2ZjBkNWZhZjU5M2EwNmJmZDRjNGQ5ZTNkMzZkZWMxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRh
dGFiYXNlLWludGVyYWN0aW9ucy5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIGRlbGV0ZURhdGFiYXNlIGNhbGwgYW5kIGl0cyBpbnRlcmFjdGlv
biB3aXRoIG9wZW4vc2V0VmVyc2lvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9u
IENvbm5lY3Rpb24oaWQpIHsKICAgICBpZCA9IFN0cmluZyhpZCk7CkBAIC0xODcsMTIgKzE4NSwx
MyBAQCBmdW5jdGlvbiB0ZXN0MygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aC5jbG9zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNl
KCkub25zdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmco
KSk7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFi
YXNlLmh0bWwKaW5kZXggNWI3OTk1N2E1ZGE5NWU2ZTAyNDQ5MWM5M2FmMWViNDdjZmJhNDAyMi4u
NDY3ZTFmMDlmNzQwNmI4YWUwOGRmODAzYzMwMzFiOTY0MmE1ZTJlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2Uu
aHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQidzIHdlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTEsMTAgKzg5LDExIEBAIGZ1bmN0aW9u
IHZlcmlmeU5vdEZvdW5kKCkKIHsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5s
ZW5ndGgiLCAiMCIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0
ZXN0KCk7CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY291bnQuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50Lmh0bWwKaW5kZXggMGY4MzFmZTIzYzY0
ZTM2ZDRjYTcyMzM2MjMxZjE2MzJlYzdkZDZlNC4uNjVhYTVkMmEyNzc0YmFlZmU3NWQ4YTczNmMx
ODA2NWM3N2ZiNzExOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtY291bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1jb3VudC5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCJ3MgSURCSW5kZXguY291bnQoKS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyNSw3ICsxMjMsNyBAQCBmdW5jdGlvbiB2ZXJpZnlD
b3VudFdpdGhLZXkoKQogICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9PTkxZKSIpOwogICAgIHNob3Vs
ZEJlVHJ1ZSgidHJhbnMgIT0gbnVsbCIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gZG9uZTsKKyAgICB0cmFucy5v
bmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogCiAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9y
ZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAgIHNob3VsZEJlVHJ1ZSgi
c3RvcmUgIT0gbnVsbCIpOwpAQCAtMTY0LDUgKzE2Miw2IEBAIGZ1bmN0aW9uIHZlcmlmeUNvdW50
V2l0aEtleSgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3Iu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCmlu
ZGV4IDc3ZGFkYWZkNmVjOGZkNTQ4NjYyNTJlNTc2MWM5YmIyNjc1ZjRkMTQuLmI2NTNjMDA1OTBi
M2E5ZjAwNGYxMmVmNDJlMzlmZjNlM2RhODUzOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4g
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHdlYmtpdElEQkluZGV4Lm9wZW5DdXJz
b3IgKyB0aGUgY3Vyc29yIGl0IHByb2R1Y2VzIGluIGRlcHRoLiIpOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiAgCiAvLyBJbiBvcmRlciBvZiBob3cgaXQgc2hvdWxkIGJlIHNvcnRlZCBieSBJbmRleGVk
REIuCiB3aW5kb3cudGVzdERhdGEgPSBbCkBAIC0yNDAsNyArMjM4LDcgQEAgZnVuY3Rpb24gdGVz
dE51bGxLZXlSYW5nZSgpCiAgICAgICAgIHdpbmRvdy5leHBlY3RlZEluZGV4ID0gdXBwZXI7CiAg
ICAgICAgIHdpbmRvdy5udWxsS2V5UmFuZ2VTdGVwID0gMjsKICAgICB9IGVsc2UgewotICAgICAg
ICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0yNTUsNSArMjUzLDYgQEAgZnVuY3Rpb24gdGVzdE51bGxLZXlSYW5nZSgpCiBvcGVu
RGF0YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0ZXAuCiAgCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCmluZGV4IDk2
NzBmMjEzMTBlMjY1NjFlYjJiYTFiZjQ1YWUxODhlMWQzZTc4NmEuLmUyMzZkOWMxNTE4YzFlNDRl
MDVmMjk1YTUxNDQ5Yzc1ZjBkMjE0MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1nZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVk
Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IElu
ZGV4ZWREQiBpbmRleCAuZ2V0KCkgcmVxdWlyZWQgYXJndW1lbnQiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ4LDEyICs0NiwxMyBAQCBmdW5jdGlvbiBj
cmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAgICBpbmRleCA9IGV2YWxBbmRMb2coImlu
ZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2ZpcnN0JywgJ2ZpcnN0Jyk7Iik7CiAgICAg
c2hvdWxkVGhyb3coImluZGV4LmdldCgpOyIpOwogICAgIHNob3VsZFRocm93KCJpbmRleC5nZXRL
ZXkoKTsiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgp
OwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sCmluZGV4IGRmYzE0
MDg2MGE1MTI3NWJlOTc1NmE1NTJkYTJlNGZhODI2NDY4MjYuLjlmOTZlZmYzOWRhMDVmNGRhNGM2
ODkxZjZmMWI5YTE0MTcwMmFiMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LW11bHRpZW50cnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBmZWF0dXJlcyBvZiBJbmRleGVkREIncyBtdWx0aUVudHJ5IGlu
ZGljZXMuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0x
NDAsNyArMTM4LDcgQEAgZnVuY3Rpb24gY3JlYXRlSW5kZXhPblN0b3JlV2l0aERhdGEoKQogICAg
ICAgICB2YXIgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0cmFucyAhPT0gbnVsbCIpOwogICAgICAgICB0cmFu
cy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgIHRyYW5zLm9uY29t
cGxldGUgPSBmdW5jdGlvbigpIHsgdmVyaWZ5SW5kZXhlcygnaW5kZXgtbmV3JywgZG9uZSk7IH07
CisgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsgdmVyaWZ5SW5kZXhlcygn
aW5kZXgtbmV3JywgZmluaXNoSlNUZXN0KTsgfTsKIAogICAgICAgICBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKICAgICAgICAgZXZhbEFu
ZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4LW5ldycsICd4Jywge211bHRpRW50cnk6IHRy
dWV9KSIpOwpAQCAtMTUwLDYgKzE0OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUluZGV4T25TdG9yZVdp
dGhEYXRhKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbApp
bmRleCBjZmY5ZjQ3NjI5NjkwZDM3ZmRjN2JiZDFjNDM4ZjJjN2FlMmE0Njk3Li4zOGE2MmU0MjVk
ODlkZGYwYzAwZTkyY2FlMmY5OGI3YmZiNDA2YzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGZlYXR1cmVzIG9mIEluZGV4ZWREQidzIHVuaXF1ZSBpbmRp
Y2VzLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTM2
LDEzICsxMzQsMTQgQEAgZnVuY3Rpb24gZmluYWxBZGRTdWNjZXNzKCkgewogICAgIC8vIEFuIG92
ZXJ3cml0ZSBzaG91bGQgYmUgb2suCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogMX0sICdiYXonKSIpOwogICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZG9uZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpbmlzaEpTVGVzdDsKIH0KIAog
dGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKaW5kZXggNzc5
ZThlYmM3OGNiMWUwYTBkYjVhNGQ5ZDVhNmVmMTdlYjlmYmFjZi4uODdlNDVkYWRhZTkwZTY4N2Rj
MTAxYjFjYmYyYjNjNWVlNjgxNjg5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW52YWxpZC1rZXlzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRl
c2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBpbnZhbGlkIGtleXMiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTY5LDEyICs2NywxMyBAQCBmdW5jdGlvbiB0
ZXN0SW52YWxpZEtleXMoKQogICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0
ID0gb2JqZWN0U3RvcmUucHV0KCd2YWx1ZScsICIgKyBrZXkgKyAiKSIsICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5EQVRBX0VSUiIpOwogICAgIH0pOwogICAgIAotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXkt
Z2VuZXJhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLmh0bWwKaW5kZXggMjEyNDA0NTMxMTQ1YmU3M2JiZjMwMGIxNDRiMDdkNmYwY2QxZWYzMS4u
NTVhMTM0NWNlMjMzYjM2MGFlZDRiZmVmOWRjMjY1ZjA2ZTNhZjdhMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbApAQCAtOSw4ICs5LDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGtleSBnZW5lcmF0
b3IgYmVoYXZpb3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDAsNyArMzgsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIGZ1bmN0aW9u
IG5leHRUZXN0KCkgewogICAgICAgICBpZiAoIXRlc3RzLmxlbmd0aCkgewotICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtMjE5LDUgKzIxNyw2IEBAIGRlZmluZVRlc3QoCiB0ZXN0KCk7CiAK
IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBl
cy5odG1sCmluZGV4IDljNjcwZDI2NTQ5MDBkYTQzZGMzYmJiZDY3YTMyYmY2ZmE1NzQyZmMuLmRk
ZTBlMGM4OWNmNTFjNmZlODkyMmYyOGY1MjBlOWUwNDFkNGYwMTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9z
cy10eXBlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIga2V5IGNvbXBhcmlzb24iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTkyLDcgKzkwLDcgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3Io
KQogICAgICAgICAgICAgZXZhbEFuZExvZygia2V5SW5kZXgrKzsiKTsKICAgICAgICAgfQogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTAxLDUgKzk5LDYgQEAgZnVuY3Rpb24gb3Bl
bkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS5odG1sCmluZGV4IDVmZWQ0OWI1NTQ1ZDkyZWZmZWM0YzdlMTk1MTc3MjY3MjZiYjhi
OTYuLmM3MTlhZDEwOTc1OGM4ZWY5MWM3ODg1ZWEwZTYwY2QyN2VjZTA3ZjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLmh0
bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiBrZXkgY29tcGFyaXNvbiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtODksNyArODcsNyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJrZXlJbmRleCsrOyIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC05OCw1ICs5Niw2IEBAIGZ1bmN0aW9uIG9wZW5BQ3Vyc29yKCkK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJheS5odG1sCmluZGV4IDky
ZmNjMDZlYTE3MjY0M2E3NjU5YWI5ZjIwZGIyODFhOWQzMjc1MDUuLmUxNjUwMzJkN2M4YjY4MzMy
YTFhNWMzZmIxNTJhODc3NGFiZDJkNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWFycmF5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5LXR5cGUtYXJyYXkuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSB0eXBlcyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjAyLDExICsyMDAsMTIgQEAgZnVuY3Rp
b24gdGVzdERlcHRoTGltaXRzKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJpbmRleGVk
REIuY21wKG1ha2VBcnJheU9mRGVwdGgoMjUwMCksIDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9u
LkRBVEFfRVJSIik7CiAgICAgZGVidWcoIiIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1p
bmZpbml0eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5m
aW5pdHkuaHRtbAppbmRleCA2OGMwOGVhYzRiYzVmZmIxYzJiMTBmNDI3ZGRlZTFkY2U1ODEyZTM2
Li43MjQxZjdiZjVkOTQxNTJhYjVkZTc0NmZlYjc4MzVkM2NiZWZmMmFjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5Lmh0bWwKQEAg
LTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBr
ZXkgdHlwZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTYxLDEyICs1OSwxMyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAyKCkKIAogZnVuY3Rpb24gdGVzdEdy
b3VwMygpCiB7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sCmluZGV4IDg2ZWQzMjU1
Njg0MzM2Y2QwOTMzZjdmOWFlM2EwYTk5NWQzYTRhZDkuLjIyM2Q2NGY1M2U2ODM2NzVjMmUwMzdl
NmFmNzMzODVkNzlhOGM4YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1iYXNpY3MuaHRtbApAQCAtMTAsOCArMTAsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgZm9yIHZhbGlkIGFuZCBpbnZhbGlkIGtleXBhdGhzIik7Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMDEsMTIgKzk5LDEzIEBAIGZ1
bmN0aW9uIHRlc3RJbnZhbGlkS2V5UGF0aHMoKQogICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOwogICAgIH0pOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
CiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMuaHRtbAppbmRleCBm
OGM5MDQ5YjM4ODhhNjkxOGVhYTczNGE1MjZiOWQ4NjZkODVhNjRkLi5lZDhhMjY4YzU1NGM0Mjhi
NDQzNTk1Y2FkZjg4Mzk1ZWU0ZDRiZGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1lZGdlcy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0Pgog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5UGF0aCBlZGdlIGNhc2VzIik7Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTcsMTEgKzExNSwxMiBA
QCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHNBbmRHZW5lcmF0b3IoKQogICAgIH07CiAKICAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IGRvbmU7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlz
aEpTVGVzdDsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1m
ZXRjaC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0
Y2gta2V5Lmh0bWwKaW5kZXggNGE5MzM1OWExMjQ4MjhmZWUwOTQ3NGYwYjIyZTU5ZTY1ZjM5NDI5
Ny4uOTY1ZWNiODIyNDNhYTBhYzI4MzFkMDVmYzIzMDBkNTJjNzFkNjJlZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
a2V5UGF0aHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTkwLDcgKzg4LDcgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogICAgIGlmICgrK25leHRUb09w
ZW4gPCB0ZXN0RGF0YS5sZW5ndGgpIHsKICAgICAgICAgY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RT
dG9yZSgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CiAgICAgfQogfQogCkBAIC05OCw1ICs5Niw2IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29y
KCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLXJlcXVpcmVkLWFy
Z3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVx
dWlyZWQtYXJndW1lbnRzLmh0bWwKaW5kZXggYjQ5ZmE3ODBmZDgxNWE0MGM2ZmEzZGRjYmViZTRi
NGI0Njk1MGMzMy4uMDYyODdjYzUzMzY3NDkxZTk1M2RkZmI2MjM2MzRmZThhNjMyNjYwNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcmVxdWlyZWQt
YXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFu
Z2UtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlyYW5nZSByZXF1aXJlZCBhcmd1bWVudHMi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTMwLDEyICsy
OCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzaG91bGRUaHJvdygiSURCS2V5UmFuZ2UuYm91
bmQoMSk7Iik7CiAgICAgc2hvdWxkVGhyb3coIklEQktleVJhbmdlLmJvdW5kKCk7Iik7CiAKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXJhbmdlLmh0bWwKaW5kZXggYmE5YWRmYTJhYWVkMzFjMTg1NDFkMTE0ODBkNGIzNGNj
NjEyOWIwNi4uN2IwMDE5NDAyYTg0MTlhYTVlZDUwYmI4ZDZiMDNiMGM3OWJmZTAxMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS5odG1sCkBAIC05LDggKzksNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgS2V5UmFuZ2UuIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gY2hlY2tTaW5nbGVLZXlSYW5nZSh2YWx1
ZSkKIHsKQEAgLTE5MCw4ICsxODgsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogdGVzdCgpOwogCi1k
b25lKCk7CitmaW5pc2hKU1Rlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3Jk
ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3JkZXJpbmcu
aHRtbAppbmRleCAwOGZkNTRmZmViMmI0OGRlYWQ2NThkNGE3MmE3OTRhMmU5MTE4YjFmLi43NGE0
OTQ3NzcxYzQ4ZDgzZTRlMzBhZjA3YzNlMGRmODVmMmYxNGQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy5odG1sCkBAIC0xMCw4ICsxMCw2IEBA
CiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBzdHJpbmcgbGlzdCBvcmRlcmluZyBpbiBJ
bmRleGVkREIuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogdmFyIGV4cGVjdGVkX29yZGVyID0g
WwogICAiIiwKQEAgLTg3LDcgKzg1LDcgQEAgZnVuY3Rpb24gdGVzdFN0b3Jlc0FuZEluZGV4ZXMo
KQogCiAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChzdG9yZS5p
bmRleE5hbWVzLCBleHBlY3RlZF9vcmRlcikiKTsKIAotICAgICAgICAgICAgICAgIHRyYW5zLm9u
Y29tcGxldGUgPSBkb25lOworICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5p
c2hKU1Rlc3Q7CiAgICAgICAgICAgICB9OwogICAgICAgICB9OwogICAgIH07CkBAIC05Niw1ICs5
NCw2IEBAIGZ1bmN0aW9uIHRlc3RTdG9yZXNBbmRJbmRleGVzKCkKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbAppbmRl
eCAwZGExZmQ2NjJjYjM3ZDA3NTIxNzU2M2JhYzI1Mzk1MjM1NWE4MWVlLi5kNmU5MTQ4NWU1Y2Y0
Y2NiODhhNDg1NTZmZGNjMzBlMmViYWI2Mjc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2FkZC10d2ljZS1mYWlsdXJlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS5odG1sCkBA
IC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
YmVoYXZpb3IgYWRkaW5nIHRoZSBzYW1lIHByb3BlcnR5IHR3aWNlIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02NCwxMyArNjIsMTQgQEAgZnVuY3Rpb24g
YWRkRmlyc3RTdWNjZXNzKCkKIGZ1bmN0aW9uIGFkZFNlY29uZEV4cGVjdGVkRXJyb3IoKQogewog
ICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJyb3JDb2RlIiwgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLkNPTlNUUkFJTlRfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRv
aW5jcmVtZW50LWluZGV4ZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLmh0bWwKaW5kZXggMmZiOTFkYTY4MmY3NDgzNjEx
YjIxZTQxNDFlMjUxZTE1Y2YyODY1Zi4uZmFhMGQ2OWUzNjVkMDdlZjE4MjJkYjY4YmRmNjVjYzRh
NGI3MGE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5odG1sCkBAIC0xNiw4ICsxNiw2
IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgaW5kZXhlcyBhZ2Fp
bnN0IGF1dG9pbmNyZW1lbnRpbmcga2V5cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewpAQCAtODksMTMgKzg3LDE0IEBAIGZ1bmN0aW9uIGNoZWNrU2Vjb25kSW5k
ZXhBbmRQcmVwYXJlVGhpcmQoKQogZnVuY3Rpb24gY2hlY2tUaGlyZEluZGV4KCkKIHsKICAgICBz
aG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5pZCIsICJrZXkiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2JhZC1rZXlwYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2JhZC1rZXlwYXRoLmh0bWwKaW5kZXggMmJiNmNlYzU3NGUwMWMyMTk3
YWRiMDUwNDhhMjIxYTYzYmY2ZWFkOC4uYjJkOTExMTFjZmM0YTUzMTVmMzVlYWYwMTQ1NTM4Mzli
NjhiZmNlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9iYWQta2V5cGF0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvYmFkLWtleXBhdGguaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGFkZGluZyBwcm9wZXJ0eSB3aXRoIGludmFsaWQga2V5
cGF0aCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNTUs
MTMgKzUzLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogZnVuY3Rpb24gYWRkRmlyc3RT
dWNjZXNzKCkKIHsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0ID0gb2JqZWN0
U3RvcmUuYWRkKHt9KTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWwKaW5kZXggMTg1MTY5Y2YyNDBiMzExZWQwYWNm
ZjVlOGQwYTg5ODE1ZjhhNGM2YS4uMWU5NzU2ZGM5MDcyNjM3ZWRlOTc4Nzg5Y2Q1NTI3YTRhODE0
OGViMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9j
bGVhci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xl
YXIuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCJ3MgY2xlYXJpbmcgYW4gb2JqZWN0IHN0b3JlIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02NywxMyArNjUsMTQgQEAgZnVuY3Rpb24gYXJl
V2VDbGVhcllldCgpCiB7CiAgICAgY3Vyc29yID0gZXZhbEFuZExvZygiY3Vyc29yID0gcmVxdWVz
dC5yZXN1bHQ7Iik7CiAgICAgc2hvdWxkQmUoImN1cnNvciIsICJudWxsIik7Ci0gICAgZG9uZSgp
OworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVlLmh0bWwgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRtbAppbmRl
eCA2NWFiNDZmNjM5NTllMTI3YjU5MmZkZDM5NzE1ZmU2MzFjNjI4MDEwLi4yNzMwOWEwMDA4ZDlh
OTM0N2JhYmZmM2U1ZWFkYmU0MTkyMTAwYmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUuaHRt
bApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgY3JlYXRpbmcgdW5pcXVlIGluZGV4IGFuZCB1cGRhdGluZyBpbmRleE5hbWVzIik7Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02OCwxMyArNjYsMTQg
QEAgZnVuY3Rpb24gY3JlYXRlQW5kVmVyaWZ5SW5kZXgoKQogICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQudHJhbnNhY3Rpb24uZGIiLCAiZGIiKTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0
LnRyYW5zYWN0aW9uLnJlYWR5U3RhdGUiLCAiSURCVHJhbnNhY3Rpb24uTE9BRElORyIpOwogICAg
IHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlv
bi5WRVJTSU9OX0NIQU5HRSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRl
LWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5odG1sCmluZGV4IGI3
MWJmZWE1ZDhiYTJiZDI4NmFmMzQzMTRhN2Q0ODYzMjhkMTI1MjQuLmNlOWVjOWIxMmMwNDNiZWU1
ZTdjODRjYjgzZjllOTg3Mzg5NTMwNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtd2l0
aC1pbnRlZ2VyLWtleXMuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgaW5kZXggd2l0aCBpbnRlZ2VyIGtleXMi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTYzLDEzICs2
MSwxNCBAQCBmdW5jdGlvbiB2ZXJpZnlLZXlDdXJzb3IoKQogICAgIHNob3VsZEJlRmFsc2UoImN1
cnNvciA9PSBudWxsIik7CiAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAiZGF0YS5udW0iKTsK
ICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAiZGF0YS5pZCIpOwotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFz
aWNzLmh0bWwKaW5kZXggYzA2NDc0NzEyNzhmNjJlODRiZjQxYmE4Y2QyYWNhOWU0OGMyYzIyZC4u
NDA4ZmU0YjA2ZDE0MWU2MTA3MDY1YmRjM2U5ZDE2YmI1YzkzZTc4ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFz
aWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVh
dGUtb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0aW5nIG9iamVjdCBzdG9yZSBhbmQg
dXBkYXRpbmcgcHJvcGVydGllcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtNzMsMTMgKzcxLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogICAg
ICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNh
Y3Rpb24uVkVSU0lPTl9DSEFOR0UiKTsKICAgICB9CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5odG1s
CmluZGV4IDljYjFiOGNjYzdjZDNkNWVhNzE5NGRlODk5Y2IwYjFmMjUzZWIxMzQuLmY3N2I3YTdj
YzM3OTZiYmM0NTY5MDFlN2ZlYmM5NGJjY2ZlM2IzMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9i
amVjdHN0b3JlLW51bGwtbmFtZS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyBvYmplY3Qgc3RvcmUgd2l0aCBu
dWxsIG5hbWUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTQ5LDEzICs0NywxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUobnVsbCk7
Iik7CiAgICAgc2hvdWxkQmUoIm9iamVjdFN0b3JlLm5hbWUiLCAiJ251bGwnIik7CiAKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRh
dGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWwKaW5kZXggMGMxNDY5NTdlNmMwZTkyZmUyZmNjZTBl
OGI3OWYzYWEyMTE0YTAxOS4uZWE4OTUzNzY0MTFiYTcxNDEwMjgyZGI5YzRjNDY1M2ZkNDVhMDMx
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJz
b3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLW9iamVjdHN0b3JlLW9ubHkuaHRt
bApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgY3Vyc29yIG11dGF0aW9uIGR1cmluZyBvYmplY3Qgc3RvcmUgY3Vyc29yIGl0ZXJhdGlv
biIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTQ4LDEy
ICsxNDYsMTMgQEAgZnVuY3Rpb24gY2hlY2tNdXRhdGluZ0N1cnNvclJlc3VsdHMoKQogICAgIHNo
b3VsZEJlKCJjb3VudCIsICJvYmplY3RTdG9yZURhdGEubGVuZ3RoIik7CiAgICAgc2hvdWxkQmUo
InNhd0FkZGVkIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic2F3UmVtb3ZlZCIsICJ0cnVlIik7
Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1sCmlu
ZGV4IGQ2YjA5ZjFjZTFkYzQ0YjliYjk1OWM1ZjIxYWQxNDYxMDU5ZWRkNDcuLjgwOTJhN2IyY2Yy
YmViY2FkZDVkNmFjZThlMmZjOGYxNWQ2ODFmMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbApAQCAt
MTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mg
Y3Vyc29yIG11dGF0aW9uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgp
CiB7CkBAIC0xODgsMTIgKzE4NiwxMyBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5nQ3Vyc29yUmVz
dWx0cygpCiAgICAgc2hvdWxkQmUoImNvdW50IiwgIm9iamVjdFN0b3JlRGF0YS5sZW5ndGggLSAx
Iik7CiAgICAgc2hvdWxkQmUoInNhd0FkZGVkIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic2F3
UmVtb3ZlZCIsICJmYWxzZSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci11
cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2N1cnNvci11cGRhdGUtdXBkYXRlcy1pbmRleGVzLmh0bWwKaW5kZXggZWIwYzBi
ZjFhNGZkMzU2OWQxMjFmMzU2OGQ1YTg4ZDBhOGQxMmFhNi4uMWI5ZjA0YmRmMzcwZWU3MGYwMDY5
Y2NkNWM4MzQ5M2YwMWVkNTAzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVwZGF0ZXMtaW5kZXhlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLXVwZGF0ZS11cGRhdGVz
LWluZGV4ZXMuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCOiBtdXRhdGluZyByZWNvcmRzIHdpdGggYSByL3cgY3Vyc29yIHVwZGF0
ZXMgaW5kZXhlcyBvbiB0aG9zZSByZWNvcmRzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CkBAIC02Myw3ICs2MSw3IEBAIGZ1bmN0aW9uIHNldFZlcnNpb24oKQog
ICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRl
eEFuZEFkZDsKICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKICAgICB9CiB9CiAKQEAgLTEyOCw2ICsxMjYsNyBAQCBmdW5jdGlvbiBjaGVja0luZGV4Migp
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwK
aW5kZXggYmRmZDUyYWM3NWFhNWNkYjY5M2I2ZTFjODNkMzg3MGRjZWY2YzZhYS4uZDg0NGM3YTE3
MzJkODgwNTA1Y2ZmODE0NWUwNDRlNDIxOTQzOGIyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwKQEAgLTE2LDggKzE2LDYgQEAK
IDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjdXJzb3IgYmVoYXZpb3Ii
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTM5NSw3ICsz
OTMsNyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAxNSgpCiAgICAgICB9CiAgICAgICBlbHNlIHsKICAg
ICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgIi0xIik7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICB9CiAgICAgfQogfQpAQCAtNDA0LDYgKzQwMiw3IEBA
IGZ1bmN0aW9uIHRlc3RHcm91cDE1KCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRtbAppbmRleCAyYTVmNGVhZmYwMDI2N2Zh
OGMzZWNjMDUwZDUyOWMzMjMyMTE2NjQzLi40MGFjMWYzNDViODlkN2NhNzhmZTMwNjM2NWFkOGMy
NDAwNjZmNWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2RlbGV0ZS1yZXN1bHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2RlbGV0ZS1yZXN1bHQuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiByZXN1bHQgcHJvcGVydHkgYWZ0ZXIgZGVs
ZXRpbmcgZXhpc3RpbmcgYW5kIG5vbi1leGlzdGluZyByZWNvcmQiKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTY3LDExICs2NSwxMiBAQCBmdW5jdGlvbiBk
ZWxldGVSZWNvcmQyKCkKIGZ1bmN0aW9uIGZpbmFsQ2hlY2soKQogewogICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9ldmVudC1zb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvZXZlbnQtc291cmNlLmh0bWwKaW5kZXggZDk2YTBiOTcxNTAzZTA5MmY2NGQzOTg3NmMx
OGNlYmEzNGE1ZjY1ZC4uNzExMGZkNTUzNmEwMWQzOTBlYTQ5NmIyNjJmNDRmM2YyMjA1NTU5ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9ldmVudC1z
b3VyY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2
ZW50LXNvdXJjZS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIncyBldmVudC50YXJnZXQuc291cmNlIGluIHN1Y2Nlc3MgY2FsbGJh
Y2tzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02MCwx
MyArNTgsMTQgQEAgZnVuY3Rpb24gYXJlV2VEb25lWWV0KCkKIHsKICAgICBzb3VyY2UgPSBldmFs
QW5kTG9nKCJzb3VyY2UgPSBldmVudC50YXJnZXQuc291cmNlOyIpOwogICAgIHNob3VsZEJlKCJz
b3VyY2UiLCAib2JqZWN0U3RvcmUiKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2ds
b2JhbC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2ds
b2JhbC1kYXRhLmh0bWwKaW5kZXggYWVmMzY4NjFhNjc1ZGVkMTIwYzdlZTg4YmU4M2RmY2FjZDQ1
MmY4ZS4uNzM2OThkNGRmNzkyNDQ5ZjZmYmM4NTBkYTAyZWE3Y2E0MjIyODVlYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9nbG9iYWwtZGF0YS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZ2xvYmFsLWRhdGEu
aHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCJ3Mgb3BlbmluZyBEQiBtb3JlIHRoYW4gb25jZSIpOwotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNzQsMTMgKzcyLDE0IEBAIGZ1bmN0aW9uIG9wZW4y
U3VjY2VzcygpCiAgICAgc2hvdWxkQmUoIm9iamVjdFN0b3JlMi5uYW1lIiwgIm9iamVjdFN0b3Jl
TmFtZSIpOwogICAgIHNob3VsZEJlKCJvYmplY3RTdG9yZTIua2V5UGF0aCIsICJvYmplY3RTdG9y
ZU9wdGlvbnMua2V5UGF0aCIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRl
eGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMu
aHRtbAppbmRleCA1MDIxM2IzNDE1NTg1MTI1Nzc3YmRhODc1ODk1MDNhYTIzMTZkNTYxLi44OTJi
M2UxMDNjM2I1ODMxODg3NjU0NWUxZWE0NjE4MWI2NzcyYjMyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbApAQCAtMTYsOCArMTYs
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiBpdGVyYXRpbmcg
dGhyb3VnaCBpbmRleCBjdXJzb3JzIHdpdGgga2V5cyBhbmQga2V5IHJhbmdlcyIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTAxNSw3ICsxMDEzLDcgQEAg
ZnVuY3Rpb24gdGVzdEdyb3VwMzAoKQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgIm9iamVjdFN0b3JlRGF0YU5hbWVTb3J0Lmxlbmd0
aCIpOwotICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgICAgIH0KICAgICB9CiB9CkBAIC0xMDI0LDYgKzEwMjIsNyBAQCBmdW5jdGlvbiB0ZXN0R3Jv
dXAzMCgpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5
LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbApp
bmRleCAwNDQyMDhlMWM2ODMzMzFhZTAzNTAzYzdhMDFkYWZkMjQzMzgxY2M0Li41YjdiY2E0MGIz
N2Q1MGNmN2U2N2ZjYjQyMWZkZDljZjBjOGNkZGY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVx
dWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0
PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBiZWhhdmlvciBkZWxldGluZyBlbnRy
eSB3aXRoIG5vIGtleSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtNDUsMTMgKzQzLDE0IEBAIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2VBbmRDcmVhdGVPYmpl
Y3RTdG9yZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jhcicp
OyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9iamVjdFN0b3JlLmRlbGV0ZShudWxs
KTsiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBkb25lKCk7
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50
cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sCmluZGV4IGZiYTgyNGZjMWU2ZTUwYmUzNTEyMjg3ODdl
MWJkYTFhNGEzNjBiNjIuLmY1YjI5MDIxY2JlMGNmZGQ4Mjk0YzAyMzZkNjJmNjJiZmRhZjQ2N2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJl
cXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5o
dG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBiZWhhdmlvciBhZGRpbmcgaW5saW5lIGFuZCBwYXNzZWQga2V5IHNpbXVsdGFuZW91
c2x5Iik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00Nywx
MiArNDUsMTMgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2JheicsIHsga2V5UGF0aDogJ2lkJyB9KTsiKTsKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5hZGQoe2lkOiA1fSwgNSk7IiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtcHV0LW5vLWtleS5odG1s
CmluZGV4IDUyNWEzNjgyZjIwMThhOGRjNWU3YzI1NTkxYTQ0NzdhZDcyNzVjMzUuLmI1ODY1YTI3
MzA1NWNmZTQzMzJmMGNlMzYyNmMxZmY4NjU2YWQ4Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWly
ZW1lbnRzLXB1dC1uby1rZXkuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgYmVoYXZpb3IgcHV0aW5nIHdpdGhvdXQga2V5Iik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00NywxMyArNDUs
MTQgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ2JhcicpOyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9i
amVjdFN0b3JlLnB1dCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtl
eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWly
ZW1lbnRzLXB1dC1udWxsLWtleS5odG1sCmluZGV4IDdiZmI2MWYxYjBiMGU2MmQ1MTc2MjFmY2E0
OGVmNzkyMDEzZjVkMjYuLmNmODQ4ZDE5NzVlNmZlYjVkZGQyMjEwOTI2OWFjMzcxYTUxYjNiOGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJl
cXVpcmVtZW50cy1wdXQtbnVsbC1rZXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtcHV0LW51bGwta2V5Lmh0bWwKQEAgLTE2
LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGJl
aGF2aW9yIHB1dCgpaW5nIHdpdGggbnVsbCBrZXkiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBm
dW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ3LDEzICs0NSwxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFi
YXNlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0g
ZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFyJyk7Iik7
CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigib2JqZWN0U3RvcmUucHV0KHt9LCBudWxsKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKLSAgICBkb25lKCk7CisgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCmluZGV4IGNhNTM0ZmQ4ZGRmZDA4
MzZjNzMzNTcwZTU4YTEwNmU5Y2FiZTc0OWYuLjgwZWQ5NThkNTZkODk0OTdiMTg2MmFjYWEzNDAx
ZGQxNzU2YWU0YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8
c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBldmVudC50YXJnZXQucmVz
dWx0IGFmdGVyIGFkZCgpIGFuZCBwdXQoKSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewpAQCAtNzgsMTMgKzc2LDE0IEBAIGZ1bmN0aW9uIHBvc3RQdXQyKCkKIGZ1
bmN0aW9uIHBvc3RQdXQzKCkKIHsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIs
ICJrZXkyIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3Qo
KTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29ycy5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29y
cy5odG1sCmluZGV4IGU3ZGM1YTdiMjUwMGU2MWFhODc3NDM3YThlNDg3MWNmZTFlNmU3M2QuLjIy
OTA4NGQzZDIyNTQ1ZjA0MzM3NmMzMDZiYTM5MjM3ZTlmMzBjOTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3JzLmh0
bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQidzIGluZGV4IGN1cnNvcnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0
ZXN0KCkKIHsKQEAgLTcwLDcgKzY4LDcgQEAgZnVuY3Rpb24gcG9zdEFkZCgpCiAgICAgICAgICAg
ICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC52YWx1ZS5uYW1lIiwgIidCZW4nIik7CiAg
ICAgICAgICAgICBpZiAoKytpbmRleGVzRmluaXNoZWQgPT0gbnVtSW5kZXhlcykgewogICAgICAg
ICAgICAgICAgIGlmIChhdXRvSW5jcmVtZW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgc2V0dXBBdXRvSW5jcmVtZW50KCk7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtOTYsNiArOTQsNyBAQCBmdW5jdGlvbiBzZXR1cEF1dG9JbmNyZW1l
bnQoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVj
dC1pZGVudGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
YmplY3QtaWRlbnRpdHkuaHRtbAppbmRleCA0ZGU5ZGFmOGI3ZjY0MDc5ODMwZDc0YTYxNTM1ZjFh
YzcxMmI4NzA2Li41YzY1ZDI1YjU3YzI4MmQ3NTRiNmY4OTJiMjFiOWYxMTU2NmJlNzQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVu
dGl0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2Jq
ZWN0LWlkZW50aXR5Lmh0bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQjogb2JqZWN0IGlkZW50aXR5Iik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC02OSwxMiArNjcsMTMgQEAgZnVuY3Rpb24gdGVz
dElkZW50aXR5U29tZU1vcmUoKQogICAgIHNob3VsZEJlRmFsc2UoImluZGV4MyA9PT0gaW5kZXgx
Iik7CiAgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXg0ID09PSBpbmRleDIiKTsKIAotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXkt
YWRkZWQtb24tcHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0Lmh0bWwK
aW5kZXggNGIwOTJkNzVjZmJjYzUxZTE0OThmYThkMGY4MTVjNzU1MDgzNmMwNi4uYWU4MDUyMDZm
NzFjYzUzOWQ3NmIzMThhMWMyYjA2MDc1MmE1ZTkyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1dG9pbmNyZW1l
bnQta2V5LWFkZGVkLW9uLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1v
bi1wdXQuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGFkZGluZyBhbiBhdXRvaW5jcmVtZW50ZWQga2V5IGFuZCByZXRyaWV2aW5n
IGl0IHN1Y2Nlc3NmdWxseSIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3Qo
KQogewpAQCAtNjksMTMgKzY3LDE0IEBAIGZ1bmN0aW9uIGdldFN1Y2Nlc3MoKQogewogICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0Lm5hbWUiLCAidGVzdC5zdG9yZWRPYmplY3QubmFt
ZSIpOwogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0LmlkIiwgImlkIik7Ci0gICAg
ZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVt
b3ZlLXZhbHVlcy5odG1sCmluZGV4IDgwZjMyNzgwNGU4MWRkNWQ3NmVhMjI3NzRhYTQ0NzRiNmYz
ZWM5YTMuLjZjOGQ5ZDYwZjAxNzdmNjM4MmY5ZDI0OWFhMTU2NGE5OWFlYTIxM2IgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLXJl
bW92ZS12YWx1ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWwKQEAgLTE2LDggKzE2LDYgQEAKIDxz
Y3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQjogYWRkcywgZ2V0cywgZGVsZXRl
cywgYW5kIHJlLWdldHMgYSByZWNvcmQgaW4gYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBvYmplY3Qg
c3RvcmUgY29uZmlndXJhdGlvbnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0
ZXN0KCkKIHsKQEAgLTc0LDcgKzcyLDcgQEAgZnVuY3Rpb24gc2V0VmVyc2lvbigpCiAgICAgICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7CiAgICAgICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQogCkBAIC0xMzEsNiAr
MTI5LDcgQEAgZnVuY3Rpb24gZmluYWxDaGVjaygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWwKaW5kZXggYmI5
NDMxNzQxMGFlNmIyNjNjMzYzMGM5MTlkOTQxNjExNTEwNjE1YS4uYWY2Nzk1ZmYxZGMxZWZjNGEx
MGVjOTMxZWE0MTFmZTU0NTM2OTQ0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLmh0bWwKQEAgLTE2LDgg
KzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9iamVj
dFN0b3JlTmFtZXMgYXJyYXkiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKQEAgLTUwLDEzICs0OCwxNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBz
aG91bGRCZVRydWUoIidvYmplY3RTdG9yZU5hbWVzJyBpbiBkYiIpOwogICAgIHNob3VsZEJlKCJk
Yi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIxIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVj
dFN0b3JlTmFtZXMuaXRlbSgwKSIsICJvYmplY3RTdG9yZU5hbWUiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCmluZGV4IGVmNTNmZTM1
MDIxYTMzMWM1M2VhZWYwYTc2ODc2ZTA1NTA1YWFiYWUuLmI0NDlhOTM4YmEwYzMyMjQzNTU2YzUy
Nzk2N2VkZDg0N2I0N2IzNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci5odG1sCkBAIC0xNiw4ICsxNiw2
IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREI6IHJlcXVlc3QgcmVz
dWx0IHBlcnNpc3RzIGluIHNldFRpbWVvdXQgY2FsbGJhY2siKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTEyNiwxMiArMTI0LDEzIEBAIGZ1bmN0aW9uIGRl
bGV0ZVJlY29yZCgpCiBmdW5jdGlvbiBkZWxldGVTdWNjZXNzKCkKIHsKICAgICBkZWJ1ZygiZGVs
ZXRlU3VjY2VzcygpOiIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAog
CiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29wZW4tZGF0YWJh
c2UtbnVsbC1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L29wZW4tZGF0YWJhc2UtbnVsbC1uYW1lLmh0bWwKaW5kZXggZDcxYWZmYjBjNDhkZjUyYzRiMzA3
NWZjZGFhZjlkMWExOWU3ZDI1My4uYjUwYWY5MjM0ODczYzYzNDI1YTExZDA2Y2YxNmZhZjA3YzQw
ODM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
cGVuLWRhdGFiYXNlLW51bGwtbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvb3Blbi1kYXRhYmFzZS1udWxsLW5hbWUuaHRtbApAQCAtMTYsOCArMTYs
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiBzaG91bGQgTk9U
IHRocm93IHdoZW4gb3BlbmluZyBhIGRhdGFiYXNlIHdpdGggYSBudWxsIG5hbWUiKTsKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTM4LDEzICszNiwxNCBAQCBm
dW5jdGlvbiBvcGVuU3VjY2VzcygpCiB7CiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKICAgICBzaG91bGRCZSgiZGIubmFtZSIsICInbnVsbCciKTsKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0bWwKaW5kZXgg
YTY3ODFhM2IxZWM5ZjY2Y2U2MTI2ODdmYjkxMmRhOTg2N2Y0Njc2Yi4uZTVjN2JhOWIyOWE4ZWVk
NjBhNTFhNjExNTM4YjRmNDJlYzc3ZTgzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdldC12YWx1ZXMuaHRtbApAQCAtMTYsOCAr
MTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcHV0dGlu
ZyBhbmQgZ2V0dGluZyB2YWx1ZXMgaW4gYW4gb2JqZWN0IHN0b3JlIik7Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTEsMTMgKzEwOSwxNCBAQCBmdW5jdGlv
biBwb3N0QWRkSW50QXV0b0luY3JlbWVudCgpCiBmdW5jdGlvbiBwb3N0R2V0SW50QXV0b0luY3Jl
bWVudCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidGVzdEludC52
YWx1ZSIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5
LXRyYW5zYWN0aW9ucy5odG1sCmluZGV4IDA2MmI3MjhhNzlhODc3YWQyMDc3MTc3NDQ0YmNjNjc0
ZjU1MjQ2MzYuLjcxYWExMWUwNWVjN2Q1MTA5Njg2YmEyMTY5N2M4OWNmYzhlZjljZmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJh
bnNhY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4K
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC01OCwxMyArNTYs
MTQgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5
MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NO
YW1lKS5kZWxldGUoa2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIi
KTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihvc05hbWUpLm9i
amVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTIpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5S
RUFEX09OTFlfRVJSIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAK
IHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUt
dHJhbnNhY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAppbmRleCBlY2IxMzZkNWI5YTdiZDUxNzY1NmMx
OWMwYmJhNDU5ZmYyZmVhYTEzLi4yZGRiYWI0MmY1ZWViZjBhMzZjNjEyMTJmZjg5N2ZhNzMxNWU0
OWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
YWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbApAQCAtMTYsOCArMTYsNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZC93cml0ZSB0
cmFuc2FjdGlvbnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
QEAgLTExNiwxMyArMTE0LDE0IEBAIGZ1bmN0aW9uIHBvc3REZWxldGUoKQogZnVuY3Rpb24gcG9z
dERlbGV0ZTIoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9k
ZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZWFkeVN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3JlYWR5U3RhdGUuaHRtbAppbmRleCAxOGM5NmUwOGVjNTBkMzU5ZGRlYTEyZWI2MDc2
MjNhZDU2ZWRjMjY2Li45NzlhYzg5N2Q5MjE5NDU0MmQ3NzhkNjZlZmFkYzVhMzdlNTViZmQ4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR5U3Rh
dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR5
U3RhdGUuaHRtbApAQCAtMTYsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIHJlYWR5U3RhdGUgcHJvcGVydHkgZHVyaW5nIGRpZmZlcmVudCBvcGVyYXRp
b25zIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC03OSwx
MyArNzcsMTQgQEAgZnVuY3Rpb24gZmluYWxDaGVjaygpCiAgICAgZGVidWcoImZpbmFsQ2hlY2so
KToiKTsKICAgICBzaG91bGRCZSgicmVxdWVzdC5yZWFkeVN0YXRlIiwgIklEQlJlcXVlc3QuRE9O
RSIpOwogICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LnRhcmdldC5yZXN1bHQgPT0gbnVsbCIpOwot
ICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1pbmRleC5odG1sCmluZGV4IDhm
OWJlNWYwNGUzODRmOGI4ODBhNjY1NzBlNDQ3Y2JhMjRkZWI3NTEuLjY1Nzk3MGM2NjdkOTU3ZjVh
N2Y2OWI5MGJlZTZmZDMzYTBkY2FlNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXguaHRtbApAQCAtMTYsOCArMTYsNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgYW5k
IGRlbGV0aW5nIGluZGV4ZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKQEAgLTU4LDEzICs1NiwxNCBAQCBmdW5jdGlvbiBjcmVhdGVBbmREZWxldGVJbmRleCgp
CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoaW5kZXhOYW1lKTsiKTsK
ICAgICBzaG91bGRCZSgib2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgiLCAiMCIpOwogCi0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLW9iamVjdHN0b3JlLmh0
bWwKaW5kZXggNWFkMzQ3ZjFmYTgzYmZkNDRkOGM0NWU1YzlkYjVlMDM3MjA4NmJjZi4uY2I0Yzcx
MWYwMzQzYjc0MDc2Y2QwNDljMGQyNDI3ZDAwZmY3OWJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1vYmplY3RzdG9y
ZS5odG1sCkBAIC0xNiw4ICsxNiw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIgZGVsZXRpbmcgYW4gb2JqZWN0IHN0b3JlIik7Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0xMTQsMTMgKzExMiwxNCBAQCBmdW5jdGlvbiBwb3N0
U2V0VmVyc2lvbjMoKQogZnVuY3Rpb24gZGVsZXRlVGhpcmRPYmplY3RTdG9yZSgpCiB7CiAgICAg
ZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsiKTsKLSAg
ICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1hYm9ydC5o
dG1sCmluZGV4IGE1OWVjZWJlYjQxZjljZDdkZGVkZWYwOGRmYjFjZDE1Zjk2ZmU5ZjcuLjk3ZTRi
NDI5YmY3OTEyN2Q4YTJhMjI2ZTIzMDYzZGRiZGZhM2UxZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1hYm9ydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1h
Ym9ydC5odG1sCkBAIC04LDcgKzgsNiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhcmVkLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgpAQCAtMTcsOCArMTYsNiBAQAogPHNjcmlwdD4KIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgYWJvcnRpbmcgc2V0VmVyc2lvbiIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtNjEsMTIgKzU4LDEzIEBAIGZ1
bmN0aW9uIHBvc3RBYm9ydCgpCiAgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiaW5pdGlhbFZl
cnNpb24iKTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIp
OwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwKaW5k
ZXggZjRlOGQwMGEyZjI4YTU0M2ViYzBkNWI1MzdhNDVjYTA5YWZlOTQ1My4uNDhlZjk0N2I4NDBl
OWY2MWIzYmRlZDBmMGM0NDY4M2IxMTZlZjNiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLmh0bWwKQEAgLTE2LDgg
KzE2LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHRyaWdn
ZXJpbmcgdmVyc2lvbmNoYW5nZSBldmVudCIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewpAQCAtMTA2LDEzICsxMDQsMTQgQEAgZnVuY3Rpb24gcG9zdFNldFZlcnNp
b24yKCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURC
VHJhbnNhY3Rpb24uVkVSU0lPTl9DSEFOR0UiKTsKICAgICBzaG91bGRCZSgiZGIzLnZlcnNpb24i
LCAiJzInIik7CiAgICAgc2hvdWxkQmUoInZlcnNpb25DaGFuZ2VFdmVudENvdW50IiwgIjMiKTsK
LSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL211dGF0aW5nLWN1cnNvci5odG1sCmluZGV4IDQ3MzQxMjc4NGQ5
ZTY3ZDgyMDZiZTViMjVhYTI3MDMxYTk2Yjc4Y2EuLjM0ZjI4Mjk3NzNkZjhhZWZkMzgzYTdjMmIx
NWY5MjhiZWRmNDRkYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L211dGF0aW5nLWN1cnNvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L211dGF0aW5nLWN1cnNvci5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgbXV0YXRpbmcgYW4gSW5kZXhlZERCJ3Mgb2JqZWN0c3RvcmUgZnJvbSBhIGN1
cnNvci4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiB0ZXN0KCk7CiAKQEAgLTEzNCwxMCArMTMy
LDExIEBAIGZ1bmN0aW9uIHJldmVyc2VDdXJzb3IoKQogZnVuY3Rpb24gcmV2ZXJzZUN1cnNvckNv
bXBsZXRlKCkKIHsKICAgICBkZWJ1ZygicmV2ZXJzZUN1cnNvckNvbXBsZXRlKCkiKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdFN0b3JlLXJlcXVpcmVkLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwKaW5kZXggNTRm
Y2Y0YTkzMzNhNTgxZWI4ZmQyMjM5NzQzMTQ0OWU2Nzg0YWU0Zi4uMWYxY2E2MTExYTk1Njg4Njk0
YjdhYzdhMmRiODk0MjdmMTY0NTcyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmh0
bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiBvYmplY3Qgc3RvcmUgcmVxdWlyZWQgYXJndW1lbnRzIik7Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC01MywxMiArNTEsMTMgQEAgZnVuY3Rpb24gY3Jl
YXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgc2hvdWxkVGhyb3coIm9iamVjdFN0b3Jl
LmNyZWF0ZUluZGV4KCdmb28nKTsiKTsKICAgICBzaG91bGRUaHJvdygib2JqZWN0U3RvcmUuaW5k
ZXgoKTsiKTsKICAgICBzaG91bGRUaHJvdygib2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKTsiKTsK
LSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC5odG1sCmlu
ZGV4IDcxOGUwZTY0ODJkNWE2ZDM5OGY3YzhkMWIzMjhlOTY4MWE5ZjZmZmEuLmIxMDI5YzQxNjkw
ZTVjMDIwYzMxN2FmZDMzZTYzNGM3MTQwZmM0NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwK
QEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIn
cyBJREJPYmplY3RTdG9yZSBhdXRvLWluY3JlbWVudCBmZWF0dXJlLiIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTYzLDcgKzE2MSw3IEBAIGZ1bmN0aW9u
IHRlc3RMb25nS2V5UGF0aCgpCiAgICAgZGVidWcoInRlc3RMb25nS2V5UGF0aCgpOiIpOwogICAg
IHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbignU3RvcmVXaXRoTG9u
Z0tleVBhdGgnLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwogICAgIHRyYW5z
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRl
ID0gZG9uZTsKKyAgICB0cmFucy5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogCiAgICAgc3Rv
cmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdTdG9yZVdpdGhMb25n
S2V5UGF0aCcpIik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7Zm9vOiAn
YmFyJ30pIik7CkBAIC0yMDEsNSArMTk5LDYgQEAgdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtY2xlYXIuaHRtbAppbmRleCA5ZjU1ZTcxNzY3MmY4NWI4ZTcyMzlm
N2MxMTE3ZTdmYWVlN2ZkNTU2Li4yOTk1ODlmYjQwOWQ0MzhiNjRiMTc2MjExYjVjMmZiMWViYmZh
YWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1jbGVhci5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWNsZWFyLmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIncyB3ZWJraXRJREJPYmplY3RTdG9yZS5jbGVhcigpLiIpOwotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTgsMTEgKzk2LDEyIEBAIGZ1
bmN0aW9uIGdldFN1Y2Nlc3MoKQogewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQu
dGFyZ2V0LnJlc3VsdCIsICJ2YWx1ZSIpOwogCi0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1j
b3VudC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291
bnQuaHRtbAppbmRleCBmMTQ0ZWZlMGFjYTU4ZWUwMjExN2IwYzAzZTdlZTgxYjZhOTA3YTU1Li4y
YjQzYzhiYTA2NDRiODM5YWViZDJmN2Q5ZWQ2OTkzMDljODdiOTQ0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50Lmh0bWwKQEAgLTks
OCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBJREJP
YmplY3RTdG9yZS5jb3VudCgpLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRl
c3QoKQogewpAQCAtMTE4LDcgKzExNiw3IEBAIGZ1bmN0aW9uIHZlcmlmeUNvdW50V2l0aEtleSgp
CiAgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX09OTFkpIik7CiAgICAgc2hvdWxkQmVUcnVlKCJ0cmFu
cyAhPSBudWxsIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBkb25lOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBm
aW5pc2hKU1Rlc3Q7CiAKICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnMub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAgICAgc2hvdWxkQmVUcnVlKCJzdG9yZSAhPSBudWxs
Iik7CkBAIC0xNTQsNSArMTUyLDYgQEAgZnVuY3Rpb24gdmVyaWZ5Q291bnRXaXRoS2V5KCkKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwKaW5k
ZXggN2FiMjZkYjhhNjcxYjdjOTJjZGUzYzRjNmU2NmYxMDRiMTZmYTEzYi4uYjJiMTA0OTkwMmRm
ZDg0YTAxZDczMGUyM2FjOWNjYTdlNWE0ODYzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwKQEAgLTksOCArOSw2IEBA
CiA8c2NyaXB0PiAKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgb2JqZWN0U3RvcmUu
b3BlbkN1cnNvciArIHRoZSBjdXJzb3IgaXQgcHJvZHVjZXMgaW4gZGVwdGguIik7Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKICAKIC8vIEluIG9yZGVyIG9mIGhvdyBpdCBzaG91bGQgYmUgc29ydGVkIGJ5
IEluZGV4ZWREQi4KIHdpbmRvdy50ZXN0RGF0YSA9IFsKQEAgLTIxNyw3ICsyMTUsNyBAQCBmdW5j
dGlvbiB0ZXN0TnVsbEtleVJhbmdlKCkKICAgICAgICAgd2luZG93LmV4cGVjdGVkSW5kZXggPSB1
cHBlcjsKICAgICAgICAgd2luZG93Lm51bGxLZXlSYW5nZVN0ZXAgPSAyOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTIzMiw1ICsyMzAsNiBAQCBmdW5jdGlvbiB0ZXN0TnVsbEtleVJhbmdl
KCkKIG9wZW5EYXRhYmFzZSgpOyAvLyBUaGUgZmlyc3Qgc3RlcC4KICAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUuaHRtbAppbmRl
eCBhNmQ2OTJlY2IwN2ZlZGM5NTZhNzNhMjU5ZTg3MTI1NWQ1NmYwZmRlLi40YWEzN2JkYTViNGFk
OTM0N2MxY2Y5MDQxY2U0NjNhNDU5NzY5ODNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3Jl
Lmh0bWwKQEAgLTksOCArOSw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyB3ZWJraXRJREJPYmplY3RTdG9yZS5kZWxldGVPYmplY3RTdG9yZSgpLiIpOwotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTk3LDExICs5NSwxMiBA
QCBmdW5jdGlvbiB2ZXJpZnlOb3RGb3VuZCgpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5y
ZXN1bHQiLCAidW5kZWZpbmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZXZlbnQudGFyZ2V0LnNv
dXJjZS5pbmRleE5hbWVzLmNvbnRhaW5zKCdpbmRleE5hbWUnKSIpOwogCi0gICAgZG9uZSgpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vZGQtc3RyaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2RkLXN0
cmluZ3MuaHRtbAppbmRleCAzYzhiYWRmMDExZjAxMzBjZWM3MzkxZTY1ZjU5ZGY2NjMzZDlhNmI5
Li5mMzIyZTU1YmM2OWQxMmMzZmJhMmQ5NzRkYzVjNjEwMDQ5NGU3YTMwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwKQEAgLTEwLDggKzEwLDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBvZGQgdmFsdWUgZGF0
YXR5cGVzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC0x
MDksNyArMTA3LDcgQEAgZnVuY3Rpb24gb3BlbkN1cnNvclN1Y2Nlc3MoKQogICAgICAgICBkZWJ1
ZygiIik7CiAgICAgICAgIHZlcmlmeU5leHREYXRhYmFzZSgpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGRvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQogCkBAIC0xMTcs
NSArMTE1LDYgQEAgZnVuY3Rpb24gb3BlbkN1cnNvclN1Y2Nlc3MoKQogdGVzdCgpOwogCiA8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jbG9zZS12ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbAppbmRleCBlMjRiYWUyMjRl
NzBmMjY1YWIyZDdlMTZlZDAwZmY1ZWEwYmUyZTA4Li5jZGJiMGNhZjVhZTlmZDRmZjY3YzZjNGJj
NzRhNjg2OWNhZGFkNDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24uaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IGludGVybGVhdmVkIG9wZW4vY2xvc2Uvc2V0VmVyc2lvbiBjYWxs
cyBpbiB2YXJpb3VzIHBlcm11dGF0aW9ucyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0
aW9uIENvbm5lY3Rpb24oaWQpIHsKICAgICBpZCA9IFN0cmluZyhpZCk7CkBAIC0yODUsMTIgKzI4
MywxMyBAQCBmdW5jdGlvbiB0ZXN0NigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlIgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7Ci0gICAgICAgIGRvbmUoKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWN1cnNvci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Bl
bi1jdXJzb3IuaHRtbAppbmRleCAwNTcyOGQ4ZWIwY2IwNDAzNTVlYzZlY2JiYjU5MWQxN2MyNzcx
M2I4Li42ZGJlYzE2YzEzZjJkZTBkNGZlNTk5YjU0YmEwZjYzYjhlZmY0Y2M4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLmh0bWwKQEAgLTksMTQgKzks
MTIgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJz
b3IuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogZnVuY3Rpb24gZW1wdHlDdXJzb3JTdWNjZXNz
KCkKIHsKICAgICBkZWJ1ZygiRW1wdHkgY3Vyc29yIG9wZW5lZCBzdWNjZXNzZnVsbHkuIikKICAg
ICAvLyBGSVhNRTogY2hlY2sgdGhhdCB3ZSBjYW4gaXRlcmF0ZSB0aGUgY3Vyc29yLgotICAgIGRv
bmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogZnVuY3Rpb24gb3BlbkVtcHR5Q3Vyc29y
KCkKQEAgLTkxLDUgKzg5LDYgQEAgdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
cGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRtbAppbmRleCA1YmU3MDBmODVlOTVkZjE3MTdl
MmY0YjIxNjZhOTJlNTczMGQ5ZGY5Li41NmJkMTU3MjM0M2NhODE5ODFmMWEwYzg4YzE2NzJiNzQz
YWJhYjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1
cmluZy10cmFuc2FjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBvcGVuaW5nIGRhdGFiYXNlIGNvbm5lY3Rp
b25zIGR1cmluZyB0cmFuc2FjdGlvbnMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKQEAgLTU0LDcgKzUyLDcgQEAgZnVuY3Rpb24gc3RhcnRUcmFuc2FjdGlvbigp
CiAgICAgdHJhbnMub25jb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgIGRlYnVnKCJ0
cmFuc2FjdGlvbiBjb21wbGV0ZSIpOwogICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0
YXRlIiwgIm9wZW4zY29tcGxldGUiKTsKLSAgICAgICAgZG9uZSgpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKICAgICB9OwogCiAgICAgZGVidWcoIiIpOwpAQCAtOTAsNSArODgsNiBAQCBmdW5j
dGlvbiB0cnlPcGVucygpCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQt
Y29tbWFuZHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21t
YW5kcy5odG1sCmluZGV4IGEwMmNlYWIyNGQxNjYyOGVhZDhhZmM3OGI4YmE0NTFiYjgwOGI3YTQu
LmViZWVhYzIwMGVlNTYzOTlmZWM3ZjFjNTlkMjM1MWQyNDQ1MzJiNGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy5odG1sCkBAIC05LDgg
KzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHF1ZXVpbmcgdXAg
c2V2ZXJhbCBjb21tYW5kcyB3b3JrcyAoYW5kIHRoZXkgYWxsIGZpcmUpLiIpOwotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTYwLDcgKzU4LDcgQEAgZnVuY3Rp
b24gdmVyaWZ5QWRkKGV4cGVjdGVkKQogICAgIHNob3VsZEJlKCIiICsgYWRkQ291bnQrKywgIiIg
KyBleHBlY3RlZCk7CiAKICAgICBpZiAoYWRkQ291bnQgPT0gMykKLSAgICAgICAgZG9uZSgpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICBpZiAoYWRkQ291bnQgPiAzKQogICAgICAgICB0
ZXN0RmFpbGVkKCJVbmV4cGVjdGVkIGNhbGwgdG8gdmVyaWZ5QWRkISIpOwogfQpAQCAtNjksNSAr
NjcsNiBAQCB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3Bl
cnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3Bl
cnRpZXMuaHRtbAppbmRleCBjZGNjYmQ2NDJhMzE5ODA4ZGIyMjg5NDQ2NDVkM2Q5NzcxY2ZmZWZj
Li5iZTI1OTBiMjZjODcwM2M5NTRmNGUzMWEzMGUyNWM3ZjgxMmE3M2U4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcm9wZXJ0aWVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJvcGVydGllcy5odG1s
CkBAIC05LDggKzksNiBAQAogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHJlYWRvbmx5IHByb3BlcnRpZXMiKTsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOwogCiBmdW5jdGlvbiBzZXRSZWFkb25seVByb3BlcnR5KHByb3BlcnR5LCB2YWx1
ZSkKIHsKQEAgLTU3LDEyICs1NSwxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVj
dFN0b3JlKCkKICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3Jl
ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7
Iik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgib2JqZWN0U3RvcmUudHJhbnNhY3Rpb24iLCAi
dGhpcyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7
CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVhZG9ubHkuaHRtbAppbmRleCAxYzM2NjcyZGJjOTMwM2I0YzdjYWE3
YjkzNDg3ZmYzODFiNzYzYTU5Li4yZDFiM2FlYTI3NGEwMWU5NTIyODI4OWYzNTdlNTZmNTkwNTg2
ZTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWwKQEAg
LTksOCArOSw2IEBACiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBkZXNjcmlw
dGlvbigiVGVzdCBJbmRleGVkREIgcmVhZG9ubHkgcHJvcGVydGllcyIpOwotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIHNldFJlYWRvbmx5UHJvcGVydHkocHJvcGVydHksIHZhbHVlKQog
ewpAQCAtMTE0LDEyICsxMTIsMTMgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogICAgIHNldFJl
YWRvbmx5UHJvcGVydHkoImtleVJhbmdlLmxvd2VyT3BlbiIsICJ0cnVlIik7CiAgICAgc2V0UmVh
ZG9ubHlQcm9wZXJ0eSgia2V5UmFuZ2UudXBwZXJPcGVuIiwgInRydWUiKTsKIAotICAgIGRvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogCiB0ZXN0KCk7CiAKIDwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKaW5kZXggZTc3MzU2
YzhmOGZhMzk1NjU4NmFjZWQ1MmI0OGQ4NWMyMzM5ZTIyYi4uMTEzZmM4YzgyMzFkNzdiOTk5OWNk
MzY1NDQzZGRlNmYxZGVhMGZjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbApAQCAtOSw4ICs5
LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGV2ZW50IHByb3BvZ2F0aW9uIG9u
IElEQlJlcXVlc3QuIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQog
ewpAQCAtMjY2LDcgKzI2NCw3IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogICAg
IHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQiKTsKICAgICBkZWJ1ZygiIik7CiAKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgcmV0dXJuOwogfQogCkBAIC0yNzQsNSAr
MjcyLDYgQEAgdGVzdCgpOwogCiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hh
cmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5q
cwppbmRleCBjZDFiYWFjYzZkZTljNGFkNjBiOGZhNjRiZDU2ZGJkMTVkMWIzZTU4Li41MmMzZjUz
MWIzMGUyMDdkNmFhZDVkNTJjY2Y5MWY0YzE1MjRhZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTI0LDQxICsyNCwzNCBA
QCBpZiAoc2VsZi5pbXBvcnRTY3JpcHRzICYmICFzZWxmLnBvc3RNZXNzYWdlKSB7CiAgICAgfTsK
IH0KIAotZnVuY3Rpb24gZG9uZSgpCi17Ci0gICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAg
ICBpZiAoc2VsZi5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpCi19Ci0KIGZ1bmN0aW9uIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJh
Y2soKQogewogICAgIHRlc3RGYWlsZWQoIlN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0
ZWRseS4iKTsKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9u
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrKGV2ZW50KQogewogICAgIHRlc3RGYWlsZWQoIkVycm9y
IGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHk6ICgiICsgZXZlbnQudGFyZ2V0LmVycm9yQ29k
ZSArICIpICIgKyBldmVudC50YXJnZXQud2Via2l0RXJyb3JNZXNzYWdlKTsKLSAgICBkb25lKCk7
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrKCkKIHsKICAgICB0ZXN0RmFpbGVkKCJBYm9ydCBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3Rl
ZGx5ISIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogZnVuY3Rpb24g
dW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2soKQogewogICAgIHRlc3RGYWlsZWQoIm9uY29tcGxl
dGUgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseSEiKTsKLSAgICBkb25lKCk7CisgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKIGZ1bmN0aW9uIHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2soKQog
ewogICAgIHRlc3RGYWlsZWQoIm9uYmxvY2tlZCBjYWxsZWQgdW5leHBlY3RlZGx5Iik7Ci0gICAg
ZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKGNtZCwgZXhwZWN0ZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9zZXRWZXJzaW9uLW51bGwuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3NldFZlcnNpb24tbnVsbC5odG1sCmluZGV4IDBjZDA2MjQ3NDJiYTk0YzQ4YWY1ZmY4
OGQ5ODI4NjgxYjA4OTY0N2UuLmRlYWZiZWE2ODg3NjkwZDg1YTU5NGNjNzJkMDFjMTlkYzc0M2Vi
M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24t
bnVsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24t
bnVsbC5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PiAKICAKIGRlc2NyaXB0aW9uKCJU
ZXN0IEluZGV4ZWREQiB3aXRoIG51bGwgdmVyc2lvbiBzdHJpbmciKTsKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwogIAogZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC00MywxMiArNDEsMTMgQEAgZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoKQogZnVuY3Rpb24gcG9zdFNldFZlcnNpb24oKQogewogICAgIHNob3VsZEJl
KCJkYi52ZXJzaW9uIiwgIidudWxsJyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KICAKICAKIHRlc3QoKTsKICAKLTwvc2NyaXB0PiAKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+IAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3NldFZlcnNpb24tdW5kZWZpbmVkLmh0bWwKaW5kZXggOTBiM2M5YTU2ODUzMDRlOGJhNGJm
ZDc2OWEyZjQ2YTY2NjNjOTVkZS4uOTJkZjlmZjY2NTE4MTc3ZTlkZmIxMjM2N2M3NzY4YTgyMGI2
OWI1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lv
bi11bmRlZmluZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRW
ZXJzaW9uLXVuZGVmaW5lZC5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PiAKICAKIGRl
c2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB2ZXJzaW9uIHN0cmluZyBpcyByZXF1aXJlZCIpOwot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiAgCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTM2LDEyICszNCwx
MyBAQCBmdW5jdGlvbiBvcGVuU3VjY2VzcygpCiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQiKTsKICAKICAgICBzaG91bGRUaHJvdygiZGIuc2V0VmVyc2lvbigp
OyIpOwotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KICAKICAKIHRlc3QoKTsK
ICAKLTwvc2NyaXB0PiAKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+IAogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxvY2tl
ZC5odG1sCmluZGV4IDMxOTIyZmMwOGQ5ZDc2NDliNzdiZDdhMjk1ZmU1MWMzZDY3MGZkOTUuLjI1
ZWViNDcyMDdhZjUzMzRjYjQxYWFjODEyZjJkYjY4NTc4MmM3NTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX2Jsb2NrZWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLmh0bWwKQEAg
LTksOCArOSw2IEBACiA8c2NyaXB0Pg0KIA0KIGRlc2NyaXB0aW9uKCJBbiBvcGVuIGNvbm5lY3Rp
b24gYmxvY2tzIGEgc2VwYXJhdGUgY29ubmVjdGlvbidzIHNldFZlcnNpb24gY2FsbCIpOw0KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsNCiANCiBjb25uZWN0aW9ucyA9IFtdDQogZnVuY3Rpb24gdGVzdCgp
DQpAQCAtNjAsMTIgKzU4LDEzIEBAIGZ1bmN0aW9uIGluU2V0VmVyc2lvbigpCiAgICAgZGVidWco
ImluIHNldFZlcnNpb24ub25zdWNjZXNzIik7DQogICAgIHNob3VsZEJlVHJ1ZSgic2Vlbl9ibG9j
a2VkX2V2ZW50Iik7DQogICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhjb25uZWN0aW9uc1swXSk7
DQotICAgIGRvbmUoKTsNCisgICAgZmluaXNoSlNUZXN0KCk7DQogfQ0KIA0KIA0KIHRlc3QoKTsN
CiANCi08L3NjcmlwdD4NCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pg0KIDwvaHRtbD4NCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9xdWV1
ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fcXVldWUu
aHRtbAppbmRleCA3OTc1NzA5NWJmNGQ5OGFkMjJhZGVhZDU0MTBhZTczYTU2YmIwNzMxLi5hYjk1
NzU0NGQ5ZGEwODk3OTk0YTVhYzkzZDI3ZDdmNjQwMjc4MjMyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9xdWV1ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9uX3F1ZXVlLmh0bWwKQEAgLTksOCAr
OSw2IEBACiA8c2NyaXB0Pg0KIA0KIGRlc2NyaXB0aW9uKCI0IG9wZW4gY29ubmVjdGlvbnMgdHJ5
IHRvIHNldFZlcnNpb24gYXQgdGhlIHNhbWUgdGltZS4gIDMgY29ubmVjdGlvbnMgZXZlbnR1YWxs
eSBjbG9zZSwgYWxsb3dpbmcgMSBzZXRWZXJzaW9uIGNhbGwgdG8gcHJvY2VlZC4iKTsNCi1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7DQogDQogY29ubmVjdGlvbnMgPSBbXQ0KIGZ1bmN0aW9uIHRlc3QoKQ0K
QEAgLTEyNiwxMiArMTI0LDEzIEBAIGZ1bmN0aW9uIGluU2V0VmVyc2lvbjEoZXZlbnQpCiB7DQog
ICAgIGRlYnVnKCIiKQ0KICAgICB0ZXN0UGFzc2VkKCJjb25uZWN0aW9uWzFdIGdvdCBpbnRvIFNl
dFZlcnNpb24iKTsNCi0gICAgZG9uZSgpOw0KKyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9DQogDQog
DQogdGVzdCgpOw0KIA0KLTwvc2NyaXB0Pg0KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+DQog
PC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVj
dHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUuaHRtbAppbmRleCBlMTEzOTBjYTBjMWI1NDI5MDgyZTM4NDIyMDZiNzU2Y2UyZjhl
NTIzLi40YzAwNWFlOWIxZDc1NjVhNjVjYTUxZWRlMjQxYzY4MzYxM2FkNTM1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBA
IC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBzdHJ1Y3R1cmVk
IGNsb25lIHBlcm11dGF0aW9ucyBpbiBJbmRleGVkREIuIEZpbGUvRmlsZUxpc3QgdGVzdHMgcmVx
dWlyZSBEdW1wUmVuZGVyVHJlZS4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CiAgICAgdmFyIGZpbGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJmaWxlSW5wdXQiKTsKQEAgLTM0Nyw3ICszNDUsNyBAQCBmdW5jdGlvbiByZWFkQmxvYkFz
VGV4dChibG9iLCBjYWxsYmFjaykKICAgICB9OwogICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rp
b24oZSkgewogICAgICAgICB0ZXN0RmFpbGVkKCJFcnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDog
IiArIGUpOwotICAgICAgICBkb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07
CiAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYik7CiB9CkBAIC01MjYsNyArNTI0LDcgQEAgZnVu
Y3Rpb24gdGVzdEJhZFR5cGVzKCkKICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5l
eHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7Ci0gICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGRvbmU7
CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGZpbmlzaEpTVGVzdDsKIAogICAgIGRlYnVnKCIi
KTsKICAgICBkZWJ1ZygiT3RoZXIgSmF2YVNjcmlwdCBvYmplY3QgdHlwZXM6Iik7CkBAIC01NDMs
NSArNTQxLDYgQEAgZnVuY3Rpb24gdGVzdEJhZFR5cGVzKCkKIHRlc3QoKTsKIAogPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9y
dC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sCmluZGV4IGIyNzg1NjVjNGIxMmYy
M2UxMWY4NTQ5ZTBjMGE5NmVjYzgwOTVhOGYuLjc2NTQ1OTA1NzU4MmZhYTljYTQzMjM0MjlhOTE1
YjgxNjMzZTVkMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1y
ZWN1cnNpb24tY3Jvc3MtZnJhbWUuaHRtbApAQCAtMTgsOCArMTgsNiBAQCB2YXIgZGI7CiB2YXIg
Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXS5jb250ZW50
RG9jdW1lbnQuYm9keTsKIAogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBwZW5kaW5nIHRyYW5zYWN0
aW9ucyBhcmUgbm90IGFib3J0ZWQgZHVyaW5nIHJlY3Vyc2l2ZSBKUyBjYWxscyB1bnRpbCBhbGwg
SlMgKGluIGFsbCBmcmFtZXMpIGlzIGZpbmlzaGVkLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHNldHVwKCkgewogICAgIHNob3VsZEJlVHJ1ZSgiJ3dlYmtpdEluZGV4ZWREQicg
aW4gd2luZG93Iik7CkBAIC02MywxMSArNjEsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiBmdW5jdGlv
biBhYm9ydENhbGxiYWNrKCkKIHsKICAgICBkZWJ1ZygiUGVuZGluZyB0cmFuc2FjdGlvbiBhYm9y
dGVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBzZXR1cCgpOwog
CiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0
LXdpdGgtanMtcmVjdXJzaW9uLmh0bWwKaW5kZXggMDAxYjUzNzAzY2M2NzZhMjFhNDA1MDQ5NDA1
MWVhMjE4ZDFhYTFhYy4uN2U3MzBiNWNhOTM5OWFiMWI0NTBiMjI2YjMyYmFiMjAzY2FmOWI4NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJv
cnQtd2l0aC1qcy1yZWN1cnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi5odG1sCkBAIC0xNCw4ICsx
NCw2IEBAIHZhciBkYjsKIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImJvZHkiKVswXTsNCiANCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHBlbmRpbmcgdHJhbnNhY3Rp
b25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcgcmVjdXJzaXZlIEpTIGNhbGxzIHVudGlsIGFsbCBK
UyBpcyBmaW5pc2hlZC4iKTsNCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQogDQogZnVuY3Rpb24gc2V0
dXAoKSB7DQogICAgIHNob3VsZEJlVHJ1ZSgiJ3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7
DQpAQCAtNTksMTEgKzU3LDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogZnVuY3Rpb24gYWJvcnRDYWxs
YmFjaygpDQogew0KICAgICBkZWJ1ZygiUGVuZGluZyB0cmFuc2FjdGlvbiBhYm9ydGVkIik7DQot
ICAgIGRvbmUoKTsNCisgICAgZmluaXNoSlNUZXN0KCk7DQogfQ0KIA0KIHNldHVwKCk7DQogDQot
PC9zY3JpcHQ+DQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0Lmh0bWwK
aW5kZXggZGViYmE2MjIyMGVlYTc4MDVkMGYzYzY2YTgwZjFmYzhhMDg4YjgyMS4uNjk3YjJkYzc3
Yzg5Nzc3YTQxNDgxMjJlZDIwNTYxMjlkZDkyMDJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC5odG1sCkBAIC05LDggKzksNiBA
QAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgdHJhbnNhY3Rpb24gYWJvcnRzIHNlbmQg
dGhlIHByb3BlciBvbmFib3J0IG1lc3NhZ2VzLi4iKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAog
ZnVuY3Rpb24gdGVzdCgpCiB7CkBAIC05NiwxMiArOTQsMTMgQEAgZnVuY3Rpb24gdHJhbnNhY3Rp
b25BYm9ydGVkKCkKICAgICBhYm9ydEZpcmVkID0gdHJ1ZTsKIAogICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oInN0b3JlLmFkZCh7eDogJ3ZhbHVlNScsIHk6ICd6eno1J30sICdrZXk1JykiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIik7Ci0gICAgZG9u
ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0KCk7CiAKIAogPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRlci1jbG9zZS5odG1sCmluZGV4IDU5ZThmNWI3
M2IwYzBlNjUyZDBlYmM0OTZiZmU1ZmU0OTNjZGYzYTEuLmQwNTBjYTM3NWE0Y2Q2YTUwM2U1NWIz
NjE5ODI0MzAwMmMwNzc3YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UuaHRtbApAQCAtOSw4ICs5LDYgQEAK
IDxzY3JpcHQ+DQogDQogZGVzY3JpcHRpb24oIlRlc3QgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5l
Y3Rpb24gaW4gSW5kZXhlZERCLiIpOw0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
DQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCiANCiBmdW5jdGlv
biB0ZXN0KCkNCiB7DQpAQCAtNzgsNyArNzYsNyBAQCBmdW5jdGlvbiBvblNlY29uZE9wZW4oKSB7
CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBzdG9yZS5wdXQoJzEnLCAnMicp
Iik7DQogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb25GaW5hbFB1dFN1Y2Nlc3M7DQogICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOw0KLSAgICBjdXJyZW50VHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IGRvbmU7DQorICAgIGN1cnJlbnRUcmFuc2FjdGlvbi5vbmNv
bXBsZXRlID0gZmluaXNoSlNUZXN0Ow0KICAgICBjdXJyZW50VHJhbnNhY3Rpb24ub25hYm9ydCA9
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOw0KIH0NCiANCkBAIC05MCw1ICs4OCw2IEBAIGZ1bmN0
aW9uIG9uRmluYWxQdXRTdWNjZXNzKCkgewogdGVzdCgpOw0KIA0KIDwvc2NyaXB0Pg0KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
Pg0KIDwvYm9keT4NCiA8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMu
aHRtbAppbmRleCBjZDUwZTYxY2U2NTRkMDM0M2ZkNTk1OGVkM2QyZmQwZGI1MjljZTlhLi5jMDc3
NWNhZTZlOTU3ZWVlMDllNjQ0NTlmYzJmZmZiNzczYjlhZTNhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQt
b2JqZWN0c3RvcmUtY2FsbHMuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHRyYW5zYWN0aW9uIGFuZCBvYmplY3RTdG9yZSBjYWxs
cyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMTI2LDEx
ICsxMjQsMTIgQEAgZnVuY3Rpb24gYWZ0ZXJDb21wbGV0ZSgpCiAgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlJykiLCAid2Via2l0SURCRGF0YWJhc2VF
eGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
c3RvcmUuaW5kZXgoJ2luZGV4JykiLCAid2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FM
TE9XRURfRVJSIik7CiAKLSAgICBkb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1v
bi1hYm9ydC5odG1sCmluZGV4IDgwYzJkMTNmN2FjZTZiYjc2YjdlNzQ0ZGIyYTJjMzUzYzc1N2Jl
YWIuLjkyYzYwZjM0Nzc1NWY2M2EyYjY3ZTExZmE2YTU2YjcyY2QzNGQ3ZjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jh
c2gtb24tYWJvcnQuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQiB0cmFuc2FjdGlvbiBkb2VzIG5vdCBjcmFzaCBvbiBhYm9ydC4iKTsK
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTM2LDEyICszNCwx
MyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCiAgICAgZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ2ZvbycpIik7CiAgICAgZXZhbEFuZExvZygiZGIudHJhbnNhY3Rpb24o
J2ZvbycpIik7CiAgICAgZXZhbEFuZExvZygid2luZG93LmdjKCkiKTsKLSAgICBkb25lKCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKaW5kZXggYjkz
ODg4NTM1ZjQxOGNkZTNlYTU0NTIzZjBhM2QxMTRhMjQ5ODg4Mi4uYTdkZTZlY2NjOGIzZWJiYTQ1
YWY3NzFmZTEzMzA5ZWZiZTFhZWViZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1s
CkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgZXZlbnQgcHJv
cG9nYXRpb24gb24gSURCVHJhbnNhY3Rpb24uIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtMTM2LDcgKzEzNCw3IEBAIGZ1bmN0aW9uIGNvbXBsZXRlRmly
ZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAidHJhbnMi
KTsKICAgICBjb21wbGV0ZUZpcmVkID0gdHJ1ZTsKICAgICBkZWJ1ZygiIik7Ci0gICAgZG9uZSgp
OworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBmdW5jdGlvbiBkYkNvbXBsZXRlQnViYmxlQ2Fs
bGJhY2soKQpAQCAtMTUxLDUgKzE0OSw2IEBAIHRlc3QoKTsKIAogCiA8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbAppbmRleCA3NGUyYTE3MDIxZDZkNmNh
NmRmMTI5YmUyNTNjOGQ5ZjUyZTEwMmNhLi4xZDdiMmEwMzkxNjI3M2ZkM2I5MmI5OTIzNDhlZTJh
MWM1ODBmNWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1yZWFkLW9ubHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+DQog
DQogZGVzY3JpcHRpb24oIlRlc3QgcmVhZC1vbmx5IHRyYW5zYWN0aW9ucyBpbiBJbmRleGVkREIu
Iik7DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KIA0KIGZ1bmN0aW9uIHRlc3QoKQ0KIHsNCkBAIC02
MCwxMiArNTgsMTMgQEAgZnVuY3Rpb24gZ290Q3Vyc29yKCkKICAgICBzaG91bGRCZUZhbHNlKCIh
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOw0KICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJldmVu
dC50YXJnZXQucmVzdWx0LmRlbGV0ZSgpIiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLlJF
QURfT05MWV9FUlIiKTsNCiANCi0gICAgZG9uZSgpOw0KKyAgICBmaW5pc2hKU1Rlc3QoKTsNCiB9
DQogDQogDQogdGVzdCgpOw0KIA0KIDwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KIDwvYm9keT4NCiA8L2h0
bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tcm9sbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLXJvbGxiYWNrLmh0bWwKaW5kZXggODE3Mzk1MmExODU1Zjk1MDExMGViMzRlNzA5YjI2YTMy
YWY5NzA0OC4uM2M5MzBkMGM3ODUwMjNjYzMwNDc0NjIyNWZiMjhkYzU3ZTI1N2U0NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2su
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yb2xs
YmFjay5odG1sCkBAIC05LDggKzksNiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIHRyYW5zYWN0aW9uIHJvbGxiYWNrLiIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAK
IGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtOTMsMTIgKzkxLDEzIEBAIGZ1bmN0aW9uIGdldFN1Y2Nl
c3MoKQogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIpOwog
CiAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIsICIncm9sbGJhY2tWYWx1ZSciKTsKLSAgICBk
b25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIAogdGVzdCgpOwogCiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC5o
dG1sCmluZGV4IDhkZDczNGFlMDEzMzcwMmQ0NTFhMTY3YzQ2OTc3NzIwZDg4OGFkMzQuLmZhYmU0
ODk2Njc4MTA5MDFmNzA0Y2VjODg0NTUzYThmNDA0NzI0NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5h
bWVzLXJlcXVpcmVkLmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQjogdHJhbnNhY3Rpb24gc3RvcmVOYW1lcyByZXF1aXJlZCBhcmd1
bWVudHMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAgLTQ1
LDEyICs0MywxMyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAg
ICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgc2hvdWxkVGhyb3coImRiLnRyYW5z
YWN0aW9uKCk7Iik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRl
c3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R3by12ZXJzaW9uLWNoYW5nZXMuaHRtbApp
bmRleCBkYzAzOTVkMjRkZDc3NGZlMThkN2U5NWQ4Mzg3YzZjYTE1MjE2NTFjLi41NTUwNzFhMjEw
ODhjOTVkM2U4NDkwOGYzN2FjMDIyNjY3ZTA1ZWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90d28tdmVyc2lvbi1jaGFuZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHdvLXZlcnNpb24tY2hhbmdlcy5odG1sCkBAIC05LDggKzks
NiBAQAogPHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgYmVoYXZpb3Igd2hlbiB0aGUgc2Ft
ZSBjb25uZWN0aW9uIGNhbGxzIHNldFZlcnNpb24gdHdpY2UiKTsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiAKIGZ1bmN0aW9uIHRlc3QoKSB7CkBAIC0xMDAsNyArOTgsNyBAQCBmdW5jdGlvbiBjaGVj
a1Jlc3VsdHMoKSB7CiAgICAgICAgIHJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CiAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQucmVzdWx0IiwgImJiYiIpOwotICAg
ICAgICAgICAgZG9uZSgpOyAgICAKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAg
ICB9OwogICAgIH07CiB9CkBAIC0xMDksNSArMTA3LDYgQEAgZnVuY3Rpb24gY2hlY2tSZXN1bHRz
KCkgewogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRtbApp
bmRleCAwY2Q0YzJmMWI4MDRiMGM4Y2ZmODFkYmI5ODZhODEyMjAxZWE3YWRlLi43YzY0M2EwY2My
NDAzYTcxNzIwNzZkNDk4NDk2YWJjNjdmNzdlNDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQuaHRtbApAQCAtMTAsOCArMTAsNiBAQAog
PHNjcmlwdD4KIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHVuZGVmaW5lZCBhcyByZWNv
cmQgdmFsdWUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKQEAg
LTc1LDEyICs3MywxMyBAQCBmdW5jdGlvbiBjaGVja0N1cnNvcigpCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIGlzIG51bGwiKTsKICAgICB9Ci0gICAgZG9uZSgpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3ZhbHVlcy1vZGQtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3ZhbHVlcy1vZGQtdHlwZXMuaHRtbAppbmRleCA5Mzg1Y2I0ZTA2ZjgwYWJkNDMyY2I2YTU5M2Iz
M2RkYjUxYzU1OTJhLi5hMDYyZDk2Zjg2ZDkzYTU3ODRjZDdiZWExMDQzNDBlYmViNTY2ZWU4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBl
cy5odG1sCkBAIC0xMCw4ICsxMCw2IEBACiA8c2NyaXB0PgogCiBkZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIgb2RkIHZhbHVlIGRhdGF0eXBlcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewpAQCAtODUsNyArODMsNyBAQCBmdW5jdGlvbiBvcGVuQUN1cnNvcigp
CiAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2YWx1ZUluZGV4Kys7Iik7CiAgICAgICAgIH0KICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTk0LDUgKzkyLDYgQEAgZnVuY3Rpb24gb3Bl
bkFDdXJzb3IoKQogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFu
Z2UtYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVy
c2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDMwNGIxZjQ3NmMyNGM4MjEzYTcy
ODE4ZTA2MjIwNTcxNmJkYzI2MDcuLjUyNTM1OTA2YzUxMmZlNTc0NTIyYjk2YmFmMDIzMWFmNjdh
NGY5YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24t
Y2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgODQ6IFVuY2F1Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9U
KiBiZSBjYXVnaHQhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODI6IFVuY2F1Z2h0IEVycm9yOiBU
aGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQhCiBFbnN1cmUgdGhhdCBhYm9ydGVkIFZFUlNJT05f
Q0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUgY29tcGxldGVseSByb2xsZWQgYmFjawogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQuaHRtbAppbmRleCBlMThkZTFlYTI3ZjUwOTQxMDk4
YTYyYTIwMWU2NWRmZTcxZjBhOTgxLi40ZjA2NWYwN2RkNmM4NjA5Y2IzMWNkNGFjODk0OWYyMWNi
ODM1YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9u
LWNoYW5nZS1hYm9ydC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Zl
cnNpb24tY2hhbmdlLWFib3J0Lmh0bWwKQEAgLTEwLDggKzEwLDYgQEAKIDxzY3JpcHQ+CiAKIGRl
c2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBhYm9ydGVkIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9u
cyBhcmUgY29tcGxldGVseSByb2xsZWQgYmFjayIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIAog
ZnVuY3Rpb24gdGVzdCgpIHsKQEAgLTk2LDExICs5NCwxMiBAQCBmdW5jdGlvbiBzZXRWZXJzaW9u
MkFib3J0KCkKICAgICBzaG91bGRCZVRydWUoImRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMo
J3N0b3JlMScpIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5jb250
YWlucygnc3RvcmUyJykiKTsKIAotICAgIGRvbmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAogdGVzdCgpOwogCiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVz
aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1l
eGNsdXNpdmUuaHRtbAppbmRleCA4MTU4ODA2ZGZkY2RkNmE1ZWQ4M2IwYTVjMWI3ZTAyNjMyZThm
ZWVjLi5kNzZhNzBiNzJmMmZmNzNjNDRjYmFjYjc3NGIzZDg2YjMwZWNiMGY3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1l
eGNsdXNpdmUuaHRtbApAQCAtOSw4ICs5LDYgQEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJF
bnN1cmUgVkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rpb24gZG9lc24ndCBydW4gY29uY3VycmVudGx5
IHdpdGggb3RoZXIgdHJhbnNhY3Rpb25zIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogCiBmdW5j
dGlvbiB0ZXN0KCkgewpAQCAtNzMsMTIgKzcxLDEzIEBAIGZ1bmN0aW9uIG9wZW5BZ2FpblN1Y2Nl
c3MoKQogewogICAgIGRlYnVnKCJvcGVuKCkgY2FsbGJhY2sgLSB0aGlzIHNob3VsZCBhcHBlYXIg
YWZ0ZXIgVkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rpb24gZW5kcyIpOwogICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygid2luZG93LnN0YXRlIiwgIlZFUlNJT05fQ0hBTkdFIGZpbmlzaGVkIik7Ci0g
ICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiAKIHRlc3QoKTsKIAogPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb25jaGFuZ2VyZXF1ZXN0LWFjdGl2ZWRvbW9iamVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0
aXZlZG9tb2JqZWN0Lmh0bWwKaW5kZXggMDMzMjgwN2QwY2I4NmYzNDYzMmY1N2E2ZmRlZjkzODU5
N2EwMDc0My4uMjA3YTQ1YjFjYzA4YzM5Y2NmYmY2MDAwYmI3MGNkZGU0YmMzMTI4YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3Qt
YWN0aXZlZG9tb2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0Lmh0bWwKQEAgLTEwLDggKzEwLDYg
QEAKIDxzY3JpcHQ+CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBJREJWZXJzaW9uQ2hhbmdl
UmVxdWVzdCBvYmplY3RzIGFyZSBub3QgR0MnZCBpZiB0aGV5IGhhdmUgcGVuZGluZyBldmVudHMi
KTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGV2YWxBbmRM
b2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWRE
QiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIpOwpAQCAtNzAsMTEgKzY4LDEyIEBAIGZ1bmN0aW9u
IHRlc3RTZXRWZXJzaW9uKCkKIGZ1bmN0aW9uIHZlcnNpb25TdWNjZXNzKCkKIHsKICAgICB0ZXN0
UGFzc2VkKCJzZXRWZXJzaW9uJ3MgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3Qub25zdWNjZXNzIGV2
ZW50IGZpcmVkIik7Ci0gICAgZG9uZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiB0ZXN0
KCk7CiAKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>