<?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>101676</bug_id>
          
          <creation_ts>2012-11-08 17:52:07 -0800</creation_ts>
          <short_desc>IndexedDB: convert tests from setVersion to upgradeneeded</short_desc>
          <delta_ts>2012-11-12 10:07:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>alecflett</cc>
    
    <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>762382</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-08 17:52:07 -0800</bug_when>
    <thetext>IndexedDB: convert tests from setVersion to upgradeneeded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762384</commentid>
    <comment_count>1</comment_count>
      <attachid>173162</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-08 17:58:33 -0800</bug_when>
    <thetext>Created attachment 173162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762389</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-08 18:04:20 -0800</bug_when>
    <thetext>Josh, could you take a look at this?  It&apos;s about 1/4 of the layout tests that need converting.  It&apos;d be nice to get some feedback before I finish them up.  When you did a first pass a few months ago did you have to load each of them into an editor?  I&apos;ve got some vim macros that do most of the work for me but I&apos;ve found it pretty time consuming to edit, run layout test, iterate if necessary, manually for each test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762526</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-08 21:24:11 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Josh, could you take a look at this? 

Will do, gardening permitting.

&gt; It&apos;s about 1/4 of the layout tests that need converting.  It&apos;d be nice to get some feedback before I finish them up.  When you did a first pass a few months ago did you have to load each of them into an editor?  I&apos;ve got some vim macros that do most of the work for me but I&apos;ve found it pretty time consuming to edit, run layout test, iterate if necessary, manually for each test.

If I recall, about 90% of the tests followed a small set of patterns. I can&apos;t recall if I got very fast at editing them by hand or if I used some (complex) Perl one-liners to edit them. I know I tackled them in batches by identifying those patterns so it was pretty mechanical/safe to do the updates and ensure that e.g. the output only changed in a predictable way.

Not very helpful, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763148</commentid>
    <comment_count>4</comment_count>
      <attachid>173162</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-09 10:32:35 -0800</bug_when>
    <thetext>Comment on attachment 173162
Patch

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

Overall lgtm

&gt; LayoutTests/storage/indexeddb/resources/cursor-delete.js:12
&gt;      debug(&quot;setVersionSuccess():&quot;);

Remove, or possibly do another pass with the preamble(evt) idiom.

&gt; LayoutTests/storage/indexeddb/resources/cursor-skip-deleted.js:17
&gt;      debug(&quot;setVersionSuccess():&quot;);

Ditto.

&gt; LayoutTests/storage/indexeddb/resources/delete-closed-database-object.js:41
&gt;      gc();

I think this can be removed if db.close() is called explicitly.

That said, we should probably add a test that ensures connections are closed on gc() - I think that may be the intent of this test, actually. The other tests that call gc() are a bit sketchier (from a quick glance).

&gt; LayoutTests/storage/indexeddb/resources/delete-closed-database-object.js:43
&gt; +    debug(&quot;calling open with high version - shouldn&apos;t be blocked because both connections should be dead&quot;);

FWIW, I&apos;d propose doing all of the tests that exercise connections like this in a separate patch from the straightforward conversions, so we can review them more carefully to make sure the test semantics are the same.

&gt; LayoutTests/storage/indexeddb/resources/deleteIndex.js:12
&gt; +    transaction = evalAndLog(&quot;transaction = event.target.transaction;&quot;);

This isn&apos;t needed any more now that postTwiddling is called on open.

&gt; LayoutTests/storage/indexeddb/resources/shared.js:184
&gt; +          var openRequest = evalAndLog(&quot;indexedDB.open(dbname, &quot; + optionalVersion + &quot;)&quot;);

Some IDEs (like the one I use) will complain that &quot;var VARNAME&quot; appears twice. Can you move it out of the if/else?

&gt; LayoutTests/storage/indexeddb/resources/shared.js:188
&gt; +        openRequest.onupgradeneeded = upgradeCallback;

openRequest.onblocked = unexpectedBlockedCallback; here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763181</commentid>
    <comment_count>5</comment_count>
      <attachid>173162</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 11:16:29 -0800</bug_when>
    <thetext>Comment on attachment 173162
Patch

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

Thanks for taking a look.

&gt;&gt; LayoutTests/storage/indexeddb/resources/cursor-delete.js:12
&gt;&gt;      debug(&quot;setVersionSuccess():&quot;);
&gt; 
&gt; Remove, or possibly do another pass with the preamble(evt) idiom.

I&apos;ll get them in a later patch.

&gt;&gt; LayoutTests/storage/indexeddb/resources/delete-closed-database-object.js:43
&gt;&gt; +    debug(&quot;calling open with high version - shouldn&apos;t be blocked because both connections should be dead&quot;);
&gt; 
&gt; FWIW, I&apos;d propose doing all of the tests that exercise connections like this in a separate patch from the straightforward conversions, so we can review them more carefully to make sure the test semantics are the same.

That&apos;s a good idea, I&apos;ll remove this test from this patch.

&gt;&gt; LayoutTests/storage/indexeddb/resources/deleteIndex.js:12
&gt;&gt; +    transaction = evalAndLog(&quot;transaction = event.target.transaction;&quot;);
&gt; 
&gt; This isn&apos;t needed any more now that postTwiddling is called on open.

Done.

&gt;&gt; LayoutTests/storage/indexeddb/resources/shared.js:184
&gt;&gt; +          var openRequest = evalAndLog(&quot;indexedDB.open(dbname, &quot; + optionalVersion + &quot;)&quot;);
&gt; 
&gt; Some IDEs (like the one I use) will complain that &quot;var VARNAME&quot; appears twice. Can you move it out of the if/else?

Done.

&gt;&gt; LayoutTests/storage/indexeddb/resources/shared.js:188
&gt;&gt; +        openRequest.onupgradeneeded = upgradeCallback;
&gt; 
&gt; openRequest.onblocked = unexpectedBlockedCallback; here too?

Done.  And thanks, this could save us from timeouts instead of explicit failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763185</commentid>
    <comment_count>6</comment_count>
      <attachid>173340</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 11:21:21 -0800</bug_when>
    <thetext>Created attachment 173340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763327</commentid>
    <comment_count>7</comment_count>
      <attachid>173367</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 14:31:58 -0800</bug_when>
    <thetext>Created attachment 173367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763354</commentid>
    <comment_count>8</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 14:46:36 -0800</bug_when>
    <thetext>Josh/Alec, could you take a look when you get a chance?  These are all the layout tests that were trivial to convert from setVersion to upgradeneeded.

Of our 206 layout tests, there are 99 here that were trivial to convert.  In keeping with the idea that I&apos;m working on removing setVersion and not refactoring the tests, I did approximately the minimum necessary to get them to work without setVersion.

There are 52 more tests that still use setVersion that range from slightly non-trivial to complex.

That leaves us with ~50 tests that don&apos;t use setVersion at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763439</commentid>
    <comment_count>9</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 16:25:14 -0800</bug_when>
    <thetext>Somehow while pending opens are being processed another open gets added to the pending queue.

ASSERTION FAILED: m_pendingOpenCalls.isEmpty()
../../third_party/WebKit/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp(423) : void WebCore::IDBDatabaseBackendImpl::processPendingCalls()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763441</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 16:25:43 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Somehow while pending opens are being processed another open gets added to the pending queue.
&gt; 
&gt; ASSERTION FAILED: m_pendingOpenCalls.isEmpty()
&gt; ../../third_party/WebKit/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp(423) : void WebCore::IDBDatabaseBackendImpl::processPendingCalls()

And this is on the wrong bug, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763461</commentid>
    <comment_count>11</comment_count>
      <attachid>173367</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-09 16:50:17 -0800</bug_when>
    <thetext>Comment on attachment 173367
Patch

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

lgtm with one note that doesn&apos;t require any changes:

&gt; LayoutTests/storage/indexeddb/mozilla/resources/bad-keypath.js:18
&gt; +    event.target.transaction.onabort = unexpectedAbortCallback;

I&apos;m wondering if we want this addition, especially while we&apos;re trying to make all the tests have a consistent initial setup. I&apos;m of two minds:

(1) a dedicated test that if the transaction aborts, an &quot;error&quot; event is fired *should* be sufficient, and makes doing this in every test redundant.

(2) if we want them in each test, we could have indexedDBTest() do:

openRequest.addEventListener(&quot;upgradeneeded&quot;, function(evt) { evt.target.transaction.addEventListener(&quot;abort&quot;, unexpectedAbortCallback); }

I believe the W3C tests do something similar to #2 where they trap all events by default. I think I personally lean towards #1.

All that said, it looks like it&apos;s only been added in a few of these tests, so I say land this as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763485</commentid>
    <comment_count>12</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 17:20:50 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 173367 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173367&amp;action=review
&gt; 
&gt; lgtm with one note that doesn&apos;t require any changes:
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/mozilla/resources/bad-keypath.js:18
&gt; &gt; +    event.target.transaction.onabort = unexpectedAbortCallback;
&gt; 
&gt; I&apos;m wondering if we want this addition, especially while we&apos;re trying to make all the tests have a consistent initial setup. I&apos;m of two minds:
&gt; 
&gt; (1) a dedicated test that if the transaction aborts, an &quot;error&quot; event is fired *should* be sufficient, and makes doing this in every test redundant.

Good point.  I didn&apos;t do (2) because I wanted a test to have the option of allowing its versionchange transaction to abort.  I now see that that doesn&apos;t make sense because the unexpectedErrorCallback on the open request will be triggered on an abort.

&gt; (2) if we want them in each test, we could have indexedDBTest() do:
&gt; 
&gt; openRequest.addEventListener(&quot;upgradeneeded&quot;, function(evt) { evt.target.transaction.addEventListener(&quot;abort&quot;, unexpectedAbortCallback); }
&gt; 
&gt; I believe the W3C tests do something similar to #2 where they trap all events by default. I think I personally lean towards #1.
&gt; 
&gt; All that said, it looks like it&apos;s only been added in a few of these tests, so I say land this as-is.

Yeah, I only started putting them in half-way.  I&apos;ll leave them out in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763487</commentid>
    <comment_count>13</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-09 17:23:33 -0800</bug_when>
    <thetext>Tony could you review this?

(For whatever definition of &quot;review&quot; is appropriate for a 300K test refactor.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764492</commentid>
    <comment_count>14</comment_count>
      <attachid>173367</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-12 09:32:51 -0800</bug_when>
    <thetext>Comment on attachment 173367
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764533</commentid>
    <comment_count>15</comment_count>
      <attachid>173367</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 10:07:10 -0800</bug_when>
    <thetext>Comment on attachment 173367
Patch

Clearing flags on attachment: 173367

Committed r134252: &lt;http://trac.webkit.org/changeset/134252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764534</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 10:07:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173162</attachid>
            <date>2012-11-08 17:58:33 -0800</date>
            <delta_ts>2012-11-09 11:21:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101676-20121108175641.patch</filename>
            <type>text/plain</type>
            <size>94119</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODE0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGYzYzQyOTdmZjg3NmUyMGIxNDJh
YjE3NTRiOGRkYTMyOWMzN2VkZC4uZGYzZDI3ZjVlMTFlODM2Yjk5ODliM2E2ZDUzOGMyNjAyMmQx
NDBkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAxMi0xMS0wOCAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBjb252ZXJ0IHRlc3Rz
IGZyb20gc2V0VmVyc2lvbiB0byB1cGdyYWRlbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGxhIGJ1ZyA5MjAzNywgYWRkIGEgZnVuY3Rpb24g
dG8gc2hhcmVkLmpzIHRoYXQgc2V0cyB1cCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZm9yIHRlc3Rz
IHdoZXJlIG9wZW5pbmcgYW5kIHZlcnNpb25pbmcgaXNuJ3QgdGhlIGZvY3VzLgorCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1l
LWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lz
dGVuY3ktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1p
bmRleC1kZWxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1rZXktb3JkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJn
dW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci12YWx1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1
bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9kZWxldGVkLW9iamVjdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuanM6
CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAoY2hlY2tCKToKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1
bWVudC1yZXF1aXJlZC5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5q
czoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2N1cnNvci1hZGRlZC1idWcuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJh
c2UpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWR2YW5j
ZS5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgIChvbk9wZW4pOgorICAg
ICAgICAodGVzdERlbGV0ZSk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1jb250aW51ZS1kaXIuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAg
ICAgICAodGVzdFJldmVyc2VDdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9jdXJzb3ItY29udGludWUtdmFsaWRpdHkuanM6CisgICAgICAgIChwcmVwYXJlRGF0
YWJhc2UpOgorICAgICAgICAobW9kaWZ5Q29udGludWVPcmRlckNhbGxiYWNrKToKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLmpzOgorICAgICAg
ICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKG9uVHJhbnNhY3Rpb25Db21wbGV0ZSk6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1kZWxldGUuanM6Cisg
ICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAodmVyaWZ5T2JqZWN0RGVsZXRlZCk6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmNvbnNpc3Rl
bmN5LmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKHRyYW5zYWN0aW9u
Q29tcGxldGUpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
aW5kZXgtZGVsZXRlLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKHZl
cmlmeU9iamVjdERlbGV0ZWQpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3Ita2V5LW9yZGVyLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAg
ICAgKHRlc3RLZXlDb21wYXJlKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNl
KToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJh
c2UpOgorICAgICAgICAoY2hlY2tTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2N1cnNvci1yZXZlcnNlLWJ1Zy5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFz
ZSk6CisgICAgICAgICh0ZXN0Q3Vyc29yKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvY3Vyc29yLXNraXAtZGVsZXRlZC5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFz
ZSk6CisgICAgICAgICh0cmFuc2FjdGlvbkNvbXBsZXRlKToKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5q
czoKKyAgICAgICAgKHRlc3RHcm91cDMpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9jdXJzb3ItdXBkYXRlLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAg
ICAgICAgKHRyYW5zYWN0aW9uQ29tcGxldGUpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItdmFsdWUuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgor
ICAgICAgICAoZW5zdXJlTW9kaWZpY2F0aW9uc05vdFBlcnNpc3RlZCk6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGEtY29ycnVwdGlvbi5qczoKKyAgICAgICAgKHBy
ZXBhcmVEYXRhYmFzZSk6CisgICAgICAgIChkb0NoZWNrKToKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLmpzOgorICAgICAg
ICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKHRlc3REYXRhYmFzZURlbGV0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Ut
b2JqZWN0LmpzOgorICAgICAgICAoc2V0VmVyc2lvbik6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2RlbGV0ZUluZGV4LmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNl
KToKKyAgICAgICAgKHBvc3RUd2lkZGxpbmcpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzOgor
ICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmpzOgorICAgICAgICAocHJlcGFy
ZURhdGFiYXNlKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRl
ZC1vYmplY3RzLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAoLmRlbGV0ZVJlcXVl
c3Qub25zdWNjZXNzKToKKyAgICAgICAgKGluZGV4ZWREQlRlc3QpOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5qczoKKyAgICAgICAgKHBy
ZXBhcmVEYXRhYmFzZSk6CisgICAgICAgICh0cmFuc2FjdGlvbkFib3J0ZWQpOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LWV4cGVjdGVkLnR4dDoKKwogMjAx
Mi0xMS0wNyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCB1cGRhdGUgY2hyb21pdW0tbWFjLW1vdW50YWlubGlvbiBiYXNlbGluZXMgZm9y
IGNzczIuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRl
LW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBlY3RlZC50eHQKaW5kZXgg
MzgzYmE5YTM0NzhhZmRjOWEwNWU4ZmVkZmFiZWI2YWM4ZmI5MjAyNS4uNDkzM2Q2OWJhNzIyYjU2
YjJkMzE0ZmFmYjEyYjYzNGE5MTFkYjk4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlv
bnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0
VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNl
IHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgY3Jl
YXRlT2JqZWN0U3RvcmUncyB2YXJpb3VzIG9wdGlvbnMKIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbignY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zJykKLWRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpCi1EZWxldGVkIGFs
bCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImNyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5o
dG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRi
bmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhJywge2tleVBhdGg6ICdhJ30pCiBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnYicpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYycsIHthdXRvSW5jcmVt
ZW50OiB0cnVlfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
cmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1l
bnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CmluZGV4IGVmOGVlMGQ3ZDY1ZWFmNGM5OTcwNzE0ZWNh
ZTBiZDdhZDI1MWRmNDkuLjdlZGU5NTY0OGI0YTgwMTc5ZjgwODRhNTI1M2E0Yzc5MmRhYTRlYmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0
b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWly
ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0
VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNl
IHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGNyZWF0
ZU9iamVjdFN0b3JlIG5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWQKIAogT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgpAQCAtNiwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAot
aW5kZXhlZERCLm9wZW4obmFtZSkKK2RibmFtZSA9ICJjcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFy
Z3VtZW50LXJlcXVpcmVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogUEFTUyBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVs
bC1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0
ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQKaW5kZXggYTNmNTFlM2JiZjAyMGRh
MWZjNTcwYzZhMDc2MjQ2MGZiZTgwZmVjMi4uZmUxZDA1YjVjOTAyOGYyNGMxZGJmMzkyOTVmMTM5
MmMxYjFmOGVhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Jl
YXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIG51
bGwgaGFuZGxpbmcKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVk
IGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImNyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFt
ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOwogUEFTUyBvYmplY3RTdG9yZS5u
YW1lIGlzICJudWxsIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4
cGVjdGVkLnR4dAppbmRleCBkMjIyOTljODAyM2Q2MTNlNjUwYTgyYjlkMjczMjhhMzk3ZTQzNjAw
Li40NGU2MzNmODM2NjFlOWEyMTU2MjBjODc5NzcyZDkwY2ZkMzRmOTA2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNp
b24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUg
InVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBjdXJzb3IgaXRl
cmF0ZXMgY29ycmVjdGx5IG92ZXIgdmFsdWVzIGFkZGVkIGR1cmluZyBpdGVyYXRpb24uCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTIgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRlJykKLWRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotdHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0CitkYm5hbWUgPSAiY3Vyc29yLWFkZGVkLWJ1Zy5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3RyYW5z
ID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3Rlc3QnKQogb2JqZWN0U3RvcmUuYWRkKDEsIDEpCiBvYmplY3RTdG9yZS5hZGQoMiwgMikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZHZhbmNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZHZh
bmNlLWV4cGVjdGVkLnR4dAppbmRleCA2ZmRjNmU3NWJmMmJkMTE5YWIzMDgzYjIxYjFiNWQ3ZTc4
ZGEyMWI0Li5iZDkwOTQ1MTQ5OTc4ODlkZDk3NmZhNTk5NzM1NjIxNTFlODgzZGI2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWR2YW5jZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkdmFuY2Ut
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGN1cnNvci5h
ZHZhbmNlKCkuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTIgKzUsOSBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBz
ZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhl
ZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLW9wZW5TdWNj
ZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi10cmFucyA9IHJlcXVlc3QucmVzdWx0
CitkYm5hbWUgPSAiY3Vyc29yLWFkdmFuY2UuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7CiBOb3cgY3JlYXRlIHRoZSBpbmRleGVzLgog
b2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoaW5kZXhEYXRhW2ldLm5hbWUsIGluZGV4RGF0YVtpXS5r
ZXlQYXRoLCBpbmRleERhdGFbaV0ub3B0aW9ucyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0ZWQudHh0
CmluZGV4IGQwMWRkNzczNjI4ZTk2ZjQxNmIwZTE5MjVjZDQxOTQwYWNiYmNlMDAuLjI4MmE0ODdk
YTFiZjczMjg2MGVhN2Q0YWY5MTM2OWM1ZjVkNDVlNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigp
IG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBn
cmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgdGhhdCBjb250aW51ZSgpIGNhbGxzIGFn
YWluc3QgY3Vyc29ycyBhcmUgdmFsaWRhdGVkIGJ5IGRpcmVjdGlvbi4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgpAQCAtNiwxMSArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwog
Ci1kYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitkYm5hbWUgPSAiY3Vyc29yLWNvbnRp
bnVlLWRpci5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLXJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1kYiA9IHJlcXVlc3QucmVzdWx0Ci1kYi5zZXRWZXJz
aW9uKCcxJykKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJykKIHN0b3JlLnB1dCgxLDEpCiBzdG9yZS5wdXQoMiwyKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBl
Y3RlZC50eHQKaW5kZXggMGE2MjBiNmMxOGViYjFmOTg2ZmNiNjIxNWQ1ZWI0MmZlZTliYTk0Yi4u
ZDE0YjkxMjc3NDkzMDU5MDBjYjlhNmRiOTg5YmMzNGZmNjFlZWMyZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigp
IG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBn
cmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgSURCQ3Vyc29yLmNv
bnRpbnVlKCkgd2l0aCBhIGtleSBwYXJhbWV0ZXIuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KQEAgLTYsMTIgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWRE
Qi5vcGVuKCdjdXJzb3ItY29udGludWUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2Ri
bmFtZSA9ICJjdXJzb3ItY29udGludWUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCit0cmFucyA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykKIG9iamVjdFN0b3Jl
LmNyZWF0ZUluZGV4KCdzb21lSW5kZXgnLCAneCcpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogdGVz
dERhdGFbbmV4dFRvQWRkXX0sIG5leHRUb0FkZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtdmFsaWRpdHktZXhw
ZWN0ZWQudHh0CmluZGV4IDZjOTZhMzc2ZWQyYTA2YzY2YWJkMDg5ODZiYTI0YTQxYTFmMjg4MDgu
LmVhZGZhNWY0YjZiNmI3YTMwZmYzYmRlN2MyZjQwMjhjMmVmMTIyMzMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRp
bnVlLXZhbGlkaXR5LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJl
bW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4
ZWREQidzIElEQkN1cnNvci5jb250aW51ZSgpIGJlaGF2aW9yIHdoZW4gY2FsbGVkIGJleW9uZCBu
b3JtYWwgc2NvcGUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTIgKzUsMTEg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjdXJzb3ItY29u
dGludWUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVy
c2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2RibmFtZSA9ICJjdXJzb3ItY29u
dGludWUtdmFsaWRpdHkuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCit0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgog
UEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykKIG9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCdzb21lSW5kZXgnLCAneCcpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogMCB9LCAwKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4
cGVjdGVkLnR4dAppbmRleCA0OGQzNzVhZmFiYTg4MmE4YTA4NjBjZTVhZmU5ZWQ5YTU1OGEzMzdl
Li44OTU1MzAyNTRjYzkwZGY0NWJkNWMwMDUwMDkzNmRkOGIwMzEwMWIwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBt
ZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3Jh
ZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTMgKzUsMTIgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRlJykKLWRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQorZGJuYW1lID0g
ImN1cnNvci1kZWxldGUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBzZXRWZXJzaW9uU3VjY2VzcygpOgogdHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0CiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKQog
b2JqZWN0U3RvcmUuYWRkKCdteVZhbHVlMScsICdteUtleTEnKQogb2JqZWN0U3RvcmUuYWRkKCdt
eVZhbHVlMicsICdteUtleTInKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQudHh0CmluZGV4IGU2
YTNjOWM4N2M2MzkwN2U4Y2E3MzIzMzIxMmJhNDEzMDI4NzZhOGQuLmIzNjJjMDdjMDJiZjJiNjA5
YzdkNzA4MTQwZmY1N2Q2OGExZTI5ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9k
IGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVl
ZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBjb25zaXN0ZW5jeSBvZiBJbmRleGVkREIncyBjdXJz
b3Igb2JqZWN0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMyArNSwxMiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1pbmNv
bnNpc3RlbmN5JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3
IHZlcnNpb24nKQorZGJuYW1lID0gImN1cnNvci1pbmNvbnNpc3RlbmN5Lmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc2V0VmVy
c2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAordHJhbnMgPSBldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFs
bCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFz
aWNTdG9yZScpCiBvYmplY3RTdG9yZS5hZGQoJ3NvbWVWYWx1ZTEnLCAnc29tZUtleTEnKS5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2sKIG9iamVjdFN0b3JlLmFkZCgnc29tZVZhbHVl
MicsICdzb21lS2V5MicpLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjawpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgt
ZGVsZXRlLWV4cGVjdGVkLnR4dAppbmRleCBlYTg4NTkzYTdhNTk1OWZkYTQwN2FiYjUyOTNlMzU4
MjhjMThmZDE4Li43YTM1OTFjM2Q4OGY0OTRmZmVhY2RmYTE4YjBiM2RlODZmZWVkYjJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
aW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJl
bW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4
ZWREQidzIG9wZW5DdXJzb3IuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTMg
KzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjdXJz
b3ItaW5kZXgtZGVsZXRlJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lv
bignbmV3IHZlcnNpb24nKQotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorZGJuYW1lID0gImN1cnNvci1pbmRleC1kZWxldGUuaHRtbCIKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCit0cmFucyA9
IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCd0ZXN0JykKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCd0ZXN0SW5kZXgnLCAneCcpCiBvYmpl
Y3RTdG9yZS5hZGQoe3g6IDF9LCAnbXlLZXkxJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQKaW5kZXgg
NzkzNWNkMTAwYzM0NjBjNmM5ZjMzNTEyODhhZmIzZTgxYjg5N2Q3OS4uM2U5MzAyYTY5NmNiYjA0
ZTE3ZTNiZDViODUzOTRiZGRjZGFhOWIyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5v
bi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBl
dmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmluZyBhbmQgcmVhZGJhY2sg
ZnJvbSBjdXJzb3JzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1LDkg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLQotaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KCdjdXJzb3Ita2V5LW9yZGVyJykKLW9wZW5yZXEgPSBpbmRleGVkREIub3BlbignY3Vyc29yLWtl
eS1vcmRlcicpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci12ZXJyZXEgPSBkYi5zZXRWZXJzaW9uKCcx
JykKK2RibmFtZSA9ICJjdXJzb3Ita2V5LW9yZGVyLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlJykKIAogcG9wdWxhdGluZyBzdG9yZS4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0
ZS1leHBlY3RlZC50eHQKaW5kZXggYWY3NDI3ZjA4OTkyYWZkZTFiMzRmNWZmNzRlYmJhYmNjZmMy
ZTAwNC4uNzZmZDA4NjNiZjg1NmViMDNlMzk0NTY1NGEzYmZhNzVmMzcyMDlhYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
cHJldi1uby1kdXBsaWNhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwg
YmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3Qg
SW5kZXhlZERCIGJlaGF2aW9yIHdoZW4gaXRlcmF0aW5nIGJhY2t3YXJkcyB3aXRoIGFuZCB3aXRo
b3V0IE5PX0RVUExJQ0FURQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1
LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLQotb3BlbnJlcSA9IGluZGV4ZWREQi5v
cGVuKCdjdXJzb3ItcHJldi1uby1kdXBsaWNhdGUnKQotZGIgPSBvcGVucmVxLnJlc3VsdAotdmVy
cmVxID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJu
YW1lID0gImN1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdzb3J0ZWQn
KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJp
bWFyeS1rZXktb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4dAppbmRleCBhMWY3OWJiMzk3
OGU5YWVmZjNjYWM5YzRhN2NhNjYzNWU4ZTM0MzY4Li5iNWVkYTc0NDZjYzdkM2M0ODlhMDhmODMw
ZWNhNTYzYzgzNjYwODk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9k
IGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVl
ZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgcHJpbWFyeSBrZXkgb3JkZXJpbmcg
YW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpA
QCAtNiwxMSArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi0KLWluZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZSgnY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyJykKLW9wZW5SZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oJ2N1cnNvci1wcmltYXJ5LWtleS1vcmRlcicpCi1kYiA9IG9wZW5SZXF1
ZXN0LnJlc3VsdAotdmVyc2lvbkNoYW5nZVJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKK2Ri
bmFtZSA9ICJjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcs
ICdpbmRleEtleScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0ZWQudHh0CmluZGV4IDJlYWI3NGMyZjIx
ZDFiMDdlYzU3ODk0ZjdlYmM5ZjlkMzk0N2M1Y2UuLmJkYTQ3Mjk2YmY2OGVmMTkzNmFjOWQ1YmYz
ZDU5Nzc3YmQxNTJhYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMg
QEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5k
YXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGlu
c3RlYWQuCiBUZXN0IEluZGV4ZWREQiBrZXlzIG9yZGVyaW5nIGFuZCByZWFkYmFjayBmcm9tIGN1
cnNvcnMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTEgKzUsOSBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1vcGVucmVxID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNv
ci1yZXZlcnNlLWJ1ZycpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci12ZXJyZXEgPSBkYi5zZXRWZXJz
aW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3Vyc29yLXJl
dmVyc2UtYnVnLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQog
c3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJycpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRlZC1leHBlY3RlZC50
eHQKaW5kZXggZDJmNjU0NTFiNzY2ZTRmOGE2NzA2ODkzNmE0MDcwYWZlMWNhZDQ5My4uNTQyOWVm
NDI2NWM4OGM2YjllYjExOTUwMzEyZmEwMWVmNWJkOTViYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRlZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRlZC1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9u
KCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1
cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBjdXJzb3Igc2tp
cHMgZGVsZXRlZCBlbnRyaWVzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEz
ICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignY3Vy
c29yLXNraXAtZGVsZXRlZCcpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNp
b24oJ25ldyB2ZXJzaW9uJykKK2RibmFtZSA9ICJjdXJzb3Itc2tpcC1kZWxldGVkLmh0bWwiCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQog
c2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAordHJhbnMg
PSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnLCB7a2V5UGF0aDogJ2lkJ30pCiBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgnbmFt
ZUluZGV4JywgJ25hbWUnKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQudHh0CmluZGV4IDNlYTViNmJjZDY4OWQ3ZjI2
MjkyYmFjYzViMzdhN2JhZmIzZmVmMjEuLmY0YmMxZTViNjFhYzZjZTIwNWJlNmI2NWZiMjY2MjMw
ODA3ZDZiMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci11cGRhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci11cGRhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNT
QUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUg
cmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5k
ZXhlZERCJ3MgY3Vyc29yIHVwZGF0ZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAt
NiwxMSArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4o
J2N1cnNvci11cGRhdGUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9u
KCduZXcgdmVyc2lvbicpCitkYm5hbWUgPSAiY3Vyc29yLXVwZGF0ZS5odG1sIgoraW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHNldFZlcnNp
b25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3RyYW5zID0gZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgogRGVsZXRlZCBhbGwg
b2JqZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jhc2lj
U3RvcmUnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVk
LWV4cGVjdGVkLnR4dAppbmRleCBkYTQwNGQ5ZDg1ZmZiNGJiM2Y4NDdiNDRkMmI5YWM2NDlhMWIw
OTljLi42MjRmN2MxMGZmYjc2YzgxODFjNzBlNWUzZDI1MmNiMzA1NzExMTVlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3Vt
ZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2Qg
aXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVk
ZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBjdXJzb3IudXBkYXRlIHJlcXVpcmVk
IGFyZ3VtZW50cwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVu
dC1yZXF1aXJlZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4
ZWREQi5vcGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhdXRvSW5jcmVtZW50Jywg
eyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJz
b3IoKTsKIGtleXMgPSBbMSwgLTEsIDAsIDEwLCAyMDAwLCAncScsICd6JywgJ3R3bycsICdiJywg
J2EnXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12
YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
dmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4IDk3NGRjZWIxYmE2NDE0M2MzNTdiMTEwZTMxYjI3MGU3
NmM2OTI1NTAuLjQ4MzBhYzE1ZjcyYzdmNzk0ZGJiMDUwMjllZTg2MGEyYTk5OGEwMmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12YWx1ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXZhbHVlLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNp
b24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUg
InVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIGN1cnNvciB2
YWx1ZSBwcm9wZXJ0eS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMSArNSw5
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1yZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
J2N1cnNvci12YWx1ZScpCi1kYiA9IHJlcXVlc3QucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignbmV3IHZlcnNpb24nKQotdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3VsdAotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjdXJzb3ItdmFsdWUuaHRtbCIKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQogCiB0ZXN0Q3Vyc29yKCk6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCA1NWQwMGQ3OGE0MGY1YWVjOWRkYTRiZGVkMDZlYTU5ZGU3NjVhM2I3Li43Yjcz
OTg1YjgwZGE0Y2E4M2M1MjI1OTg1NTQxOGEwM2U3MjkyNThiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCB0aGF0IGRhdGEgaW5zZXJ0ZWQgaW50byBJbmRl
eGVkREIgZG9lcyBub3QgZ2V0IGNvcnJ1cHRlZCBvbiBkaXNrLgogCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCkBAIC02LDE0ICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGlu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1p
bmRleGVkREIub3BlbignZGF0YS1jb3JydXB0aW9uJykKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKK2RibmFtZSA9
ICJkYXRhLWNvcnJ1cHRpb24uaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBl
dmVudC50YXJnZXQucmVzdWx0Cit0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgogUEFT
UyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIGFkZERhdGEoKToKIHRyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oWydzdG9yZU5hbWUnXSwgJ3JlYWR3cml0ZScpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtZGVsZXRl
cGVuZGluZy1mbGFnLWV4cGVjdGVkLnR4dAppbmRleCA2NmIwNDRjZGU2YzE4ZjY4YjVhYWFlYTJi
MGM5MzVkMWFiOTMzNzYzLi4wNWIyM2U5MjkzMWZjZDU1NmNkODhkNGUyY2MyYWZjNTRjMWY3OWIw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1kZWxl
dGVwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1z
dGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVu
dCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgSURCRGF0YWJhc2UgaW50ZXJuYWwgZGVsZXRlIHBl
bmRpbmcgZmxhZwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDE1ICs1LDkgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5h
bWUKK2RibmFtZSA9ICJkYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuaHRtbCIKIGluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCi0KLU9wZW4gYSBjb25uZWN0aW9uIGFuZCBzZXQgYSBz
ZW50aW5lbCB2ZXJzaW9uOgotdmVyc2lvbiA9ICcxMCcKLXJlcXVlc3QgPSBpbmRleGVkREIub3Bl
bihkYm5hbWUpCi1jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0
aW9uLnNldFZlcnNpb24odmVyc2lvbikKLVBBU1MgY29ubmVjdGlvbi52ZXJzaW9uIGlzIHZlcnNp
b24KK2luZGV4ZWREQi5vcGVuKGRibmFtZSwgNSkKIGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlJykKIFBBU1MgY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAx
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9z
ZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dAppbmRleCA2
ZTMxODdkN2U2YWI3NzAzNzFiNjgyNzQ1NTBmY2M0MDFjMTY3MTMyLi45ZDk2ZmQ2OTEyNzczODAw
YThiZDY5NzgzNjgxNDIwNDc3NTk3MzdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUg
c2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4g
VXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIEVuc3VyZSB0aGF0IElEQkRh
dGFiYXNlIG9iamVjdHMgYXJlIGRlbGV0ZWQgd2hlbiB0aGVyZSBhcmUgbm8gcmV0YWluaW5nIHBh
dGhzIGxlZnQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtMTEsOCArMTAsOSBAQCBp
bmRleGVkREIub3BlbignZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QnKQogZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0CiBpbmRleGVkREIub3BlbignZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QnKQogU2Vjb25kIGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVkLgotY2Fs
bGluZyBzZXRWZXJzaW9uKCkgLSBjYWxsYmFjayBzaG91bGQgcnVuIGltbWVkaWF0ZWx5Ci1kYi5z
ZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKQorZGIuY2xvc2UoKQorY2FsbGluZyBvcGVuIHdpdGggaGln
aCB2ZXJzaW9uIC0gc2hvdWxkbid0IGJlIGJsb2NrZWQgYmVjYXVzZSBib3RoIGNvbm5lY3Rpb25z
IHNob3VsZCBiZSBkZWFkCitpbmRleGVkREIub3BlbignZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QnLCAzKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRl
eC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRl
eC1leHBlY3RlZC50eHQKaW5kZXggOTg3N2UxYWIwZmUwNTA5MGI3YWQ0YTQ4NDE0Yzc0YjRmMWU5
MDJjNC4uMTA0MDFkN2NhOGI5MTkxMTIxOTMxNjhlNGNhMDMzODhkMTU0NjAwNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlSW5kZXgtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBt
ZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3Jh
ZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBkZWxldGVJbmRleCBtZXRo
b2QKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMSArNSwxMCBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZUluZGV4JykKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotdHJhbnNh
Y3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OwotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9ICJkZWxldGVJbmRleC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0
LnRyYW5zYWN0aW9uOwogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7
CiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gb2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoJ2ZpcnN0
JykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVj
dFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CmluZGV4IDY4N2EyZDVi
OWZjMzMyOGUxYjkwN2JjOWM0ZjNlYzg3ZTAyYjFhNTAuLmE3YTk1ODA3OThmNzY0OGYxNzQzZWZi
ZGI3NmRlZDY0ZTM3NTY4ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5h
bWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdp
bGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRl
c3QgSW5kZXhlZERCIGRlbGV0ZU9iamVjdFN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50CiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWRE
QiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4
ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9ICJkZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogUEFTUyBkYi5kZWxldGVPYmplY3RTdG9yZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQKaW5kZXggNzllMTNl
ZmNiMjIzYTJkODcwMDE0ZDRiNTNjYWFkODM0MTM4MGZlZS4uMGE4YzgwYjg3ZTIzNTRmOTlmYWRk
ZjVmNmU0MmQ1ZDc4YzM2NDc5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lv
bigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAi
dXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGRlbGV0ZU9iamVj
dFN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAg
LTYsMTAgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4o
bmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24o
JzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJkZWxldGVPYmplY3RT
dG9yZS1udWxsLW5hbWUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbnVsbCcpOwogZGIu
ZGVsZXRlT2JqZWN0U3RvcmUobnVsbCk7CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkLW9iamVj
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlZC1v
YmplY3RzLWV4cGVjdGVkLnR4dAppbmRleCA3YmU3OGM5NWYyZmZiZWFmM2Q3MjU4MjY0YWE1ODUy
ODNiNGEyNmNjLi5mMWU5NDE4NDRhNGEzNTRlNjAzOWI4MjkyZTFmNGZhZTViMTEyZjQzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkLW9iamVjdHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQtb2Jq
ZWN0cy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCB0aGF0IEluZGV4ZWRE
QiBvYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQgdGhyb3cgZXhjZXB0aW9ucwogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEzICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKLXJlcXVlc3QgPSBpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQotCi1vcGVuRGF0YWJhc2UoKToKLXJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKLXJl
cXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gImRlbGV0ZWQtb2Jq
ZWN0cy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSkKIAogZGVsZXRlZFN0b3JlID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9y
ZSgnZGVsZXRlZFN0b3JlJykKIHN0b3JlID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuanMKaW5kZXgg
NzAzOWJjMDg1ZDcwZTg4MzdhZTRkNTU0YWZiMTYxY2ZkYjVmNDljMi4uYjg2NzJlMWI2YWMzMWEz
Y2E0MmU0Zjg0ODUwNTM0NzJhYTc2YTg2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdC1z
dG9yZS1vcHRpb25zLmpzCkBAIC01LDM0ICs1LDE2IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRlT2JqZWN0U3RvcmUncyB2
YXJpb3VzIG9wdGlvbnMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBh
cmVEYXRhYmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbignY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zJykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Ci17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lv
biAxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNs
ZWFuRGF0YWJhc2UoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIg
PSBldmVudC50YXJnZXQucmVzdWx0OwogCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ2EnLCB7a2V5UGF0aDogJ2EnfSkiKTsKICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVP
YmplY3RTdG9yZSgnYicpIik7CiAKICAgICBkZWJ1ZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Mn
LCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOyIpOwogICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdj
Jywge2F1dG9JbmNyZW1lbnQ6IHRydWV9KTsKLSAgICBldmVudC50YXJnZXQucmVzdWx0Lm9uY29t
cGxldGUgPSBzZXRWZXJzaW9uQ29tcGxldGU7CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb25Db21w
bGV0ZSgpCkBAIC03Nyw1ICs1OSwzIEBAIGZ1bmN0aW9uIGNoZWNrQigpCiAKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWly
ZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2Jq
ZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcwppbmRleCA5MWQ5YTdhYTZhZWI1Mjgx
MDk4OGE0NWE1MGFmZTEyYTU2Y2YxNjVjLi5iNzJjMjZiYjJmYmZhZmQ2ZGI0ZWYxN2I3YjY2MmIw
ZjQzNDEzODdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUt
bmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcwpAQCAtNSwzMSArNSwxMCBAQCBpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjcmVhdGVPYmplY3RT
dG9yZSBuYW1lIGFyZ3VtZW50IGlzIHJlcXVpcmVkIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5w
YXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoKQogewogICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24o
JzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RT
dG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0K
LQotZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCi17Ci0gICAgZGVsZXRl
QWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHNob3VsZFRocm93KCJkYi5jcmVhdGVPYmplY3RT
dG9yZSgpOyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUu
anMKaW5kZXggMzVkN2MwOTU4MDJmMTQ3YTRhMzBjZDI3MWVkMTdlYzU3ZjRiMmRmMS4uMGI2MDhh
ODZkY2UxNjlhNWVkZTMyMmMzYmE0ZjAxZmY5Y2VlYzliMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFt
ZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRl
T2JqZWN0U3RvcmUtbnVsbC1uYW1lLmpzCkBAIC01LDMyICs1LDExIEBAIGlmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0
b3JlIG51bGwgaGFuZGxpbmciKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHBy
ZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsK
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0g
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBj
cmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIG9iamVjdFN0b3Jl
ID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUobnVsbCk7Iik7CiAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJvYmplY3RTdG9yZS5uYW1lIiwgIm51bGwiKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWRk
ZWQtYnVnLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1hZGRlZC1idWcuanMKaW5kZXggNzRkZGJjNDAyNjhlMDdlMWExYTRmOGJiYmQ3MjZhYzViOGY0
ZGM5Zi4uMzdkZmQzZjdjYWU1NDFhZWRhNmNjYzJjYjk2ZDhlNGM4MWFjNGZkNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZGRlZC1i
dWcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1hZGRlZC1idWcuanMKQEAgLTUsMzMgKzUsMTMgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
ewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgY3Vyc29yIGl0ZXJhdGVzIGNvcnJlY3Rs
eSBvdmVyIHZhbHVlcyBhZGRlZCBkdXJpbmcgaXRlcmF0aW9uLiIpOwogCi10ZXN0KCk7Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRlJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCitpbmRl
eGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlbkN1cnNvcik7CitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQogewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25l
dyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCi17Ci0gICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0
cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2Fj
dGlvbiIpOwogICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKICAgICB0cmFucy5vbmFib3J0
ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IG9wZW5D
dXJzb3I7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgdmFyIG9iamVj
dFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
dGVzdCcpIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKDEsIDEpIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFk
dmFuY2UuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29y
LWFkdmFuY2UuanMKaW5kZXggNjg2OGE3NWM2ODE0NTg4NTdmZGZjMjI3YTM1MGFkMWYxODZiMzNh
NS4uZmE4NjYwZGQ1NjQ1Mjk4YzQ4ZTFhMGRkYzExNWZjZWFjNGVmODZiZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZHZhbmNlLmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWR2
YW5jZS5qcwpAQCAtMjcsMzggKzI3LDIwIEBAIHZhciBpbmRleERhdGEgPSBbCiAgICAgeyBuYW1l
OiAid2VpZ2h0Iiwga2V5UGF0aDogIndlaWdodCIsIG9wdGlvbnM6IHsgdW5pcXVlOiBmYWxzZSB9
IH0KIF07CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2Us
IG9uT3Blbik7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRv
clByZWZpeGVzKCk7Ci0gICAgbmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVi
dWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBvYmpl
Y3RTdG9yZU5hbWUgPSAiUGVvcGxlIjsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVh
dGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsiKTsKKyAgICBjcmVhdGVJbmRleGVzKCk7
CiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlKHJlcXVlc3QpCitmdW5jdGlvbiBvbk9w
ZW4oKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0gICAgdHJhbnMgPSBldmFs
QW5kTG9nKCJ0cmFucyA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgb2JqZWN0U3RvcmUgPSBldmFs
QW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFt
ZSk7Iik7Ci0gICAgY3JlYXRlSW5kZXhlcygpOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihvYmpl
Y3RTdG9yZU5hbWUsICdyZWFkd3JpdGUnKSIpOwotICAgICAgICBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkiKTsKLSAgICAgICAgcG9w
dWxhdGVPYmplY3RTdG9yZSgpOwotICAgIH07CisgICAgZXZhbEFuZExvZygidHJhbnMgPSBkYi50
cmFuc2FjdGlvbihvYmplY3RTdG9yZU5hbWUsICdyZWFkd3JpdGUnKSIpOworICAgIGV2YWxBbmRM
b2coIm9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKSIpOwor
ICAgIHBvcHVsYXRlT2JqZWN0U3RvcmUoKTsKIH0KIAogZnVuY3Rpb24gcG9wdWxhdGVPYmplY3RT
dG9yZSgpCkBAIC00MDIsNSArMzg0LDMgQEAgZnVuY3Rpb24gdGVzdERlbGV0ZSgpCiAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTZWNvbmQ7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUtZGlyLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS1k
aXIuanMKaW5kZXggYmZlYzBlYmM3YWY3NGM5N2IxMmZhYTA4YmE1YTJkMmE3NzQ1YjRkYi4uYjdi
NGQwNjIxNjE2MDk2MTY5NjdlMjI4NDAwMzhjZjE4MTMyNjA1NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS1kaXIuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250
aW51ZS1kaXIuanMKQEAgLTUsMzQgKzUsMTQgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewog
CiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGNvbnRpbnVlKCkgY2FsbHMgYWdhaW5zdCBjdXJzb3Jz
IGFyZSB2YWxpZGF0ZWQgYnkgZGlyZWN0aW9uLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4
ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCB0ZXN0Q3Vyc29ycyk7CitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgZXZhbEFuZExv
ZygiZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZSIpOwotICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKCkgewotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVz
dC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwotICAgICAgICAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB0cmFucyA9IHJl
cXVlc3QucmVzdWx0OwotICAgICAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLQotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgICAgICBmb3IgKGkgPSAx
OyBpIDw9IDEwOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUu
cHV0KCIgKyBpICsgIiwiICsgaSArICIpIik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RDdXJzb3JzOwotICAgICAgICAgICAgfTsK
LSAgICAgICAgfTsKLSAgICB9OworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBl
dmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAg
Zm9yIChpID0gMTsgaSA8PSAxMDsgKytpKSB7CisgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1
dCgiICsgaSArICIsIiArIGkgKyAiKSIpOworICAgIH0KIH0KIAogZnVuY3Rpb24gdGVzdEN1cnNv
cnMoKQpAQCAtNzEsNSArNTEsMyBAQCBmdW5jdGlvbiB0ZXN0UmV2ZXJzZUN1cnNvcigpCiAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUtdmFs
aWRpdHkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29y
LWNvbnRpbnVlLXZhbGlkaXR5LmpzCmluZGV4IGFkZmU4YzcxOGU1YzY3YzUyYjM3NTAyYjdiYTI2
Mjk2YTE0NGMxYzUuLmU0ZDBjZmFhYjYzMTNjNDUxODVmZDhlZGUwYzNkNjk1YWVhZjc1ZGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
Y29udGludWUtdmFsaWRpdHkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS5qcwpAQCAtMTEsMzYgKzExLDE0IEBA
IHZhciBkYXRlID0gbmV3IERhdGUoKTsKIC8vIGlmIHdlJ3JlIGluIGEgcHJlLWZldGNoZWQgc3Rh
dGUgb3Igbm90CiBzZWxmLnRlc3RMZW5ndGggPSAyNTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRl
eGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQog
ewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgb3BlbkRhdGFiYXNlKCk7Ci19Ci0K
LWZ1bmN0aW9uIG9wZW5EYXRhYmFzZSgpCi17Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oJ2N1cnNvci1jb250aW51ZScpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9
IHNldFZlcnNpb247Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbigpCi17Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVzdWx0ID0gZXZhbEFuZExv
ZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlc3VsdC5vbnN1Y2Nlc3Mg
PSBkZWxldGVFeGlzdGluZzsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotfQotCi1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCi17Ci0gICAgc2VsZi50cmFu
cyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMg
PSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5z
Iik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCi0gICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHNlbGYub2JqZWN0U3RvcmUgPSBldmFs
QW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykiKTsKICAgICBz
ZWxmLmluZGV4T2JqZWN0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3Nv
bWVJbmRleCcsICd4JykiKTsKICAgICBzZWxmLm5leHRUb0FkZCA9IDA7CkBAIC0xNzYsNSArMTU0
LDMgQEAgZnVuY3Rpb24gbW9kaWZ5Q29udGludWVPcmRlckNhbGxiYWNrKCkKICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CiAgICAgfQogfQotCi10ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS5qcwppbmRl
eCA1ZjVhZTM1YmRiYTY4N2ZiYmNjZmJhYzA4NDJjOGQ4MDA3YWYxOTE0Li42OWZlNDViY2IxZTlh
ODk5MThmZDMxNjMyYjJkMThhZmQ3ZDdlYjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUuanMKQEAgLTI5
LDM2ICsyOSwxNCBAQCBzZWxmLnRlc3REYXRhID0gWwogICAgICJ0aGUgQklHR0VTVCBzdHJpbmci
CiBdOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsK
K2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLSAgICBvcGVuRGF0YWJhc2UoKTsKLX0KLQotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKLXsK
LSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWNvbnRpbnVl
JykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXN1bHQub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9u
KCkKLXsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0KLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lv
bicpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0
ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHNl
bGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbiIp
OwogICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKICAgICB0cmFucy5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwot
CiAgICAgc2VsZi5vYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzb21lT2JqZWN0U3RvcmUnKSIpOwogICAgIHNlbGYuaW5kZXhPYmplY3QgPSBldmFsQW5kTG9n
KCJvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgnc29tZUluZGV4JywgJ3gnKSIpOwogICAgIHNlbGYu
bmV4dFRvQWRkID0gMDsKQEAgLTI2Niw1ICsyNDQsMyBAQCBmdW5jdGlvbiBvblRyYW5zYWN0aW9u
Q29tcGxldGUoKQogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvci5jb250aW51ZSgp
IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLWRlbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3ItZGVsZXRlLmpzCmluZGV4IDQyNWZmNzdhZTE4MmRiYzdiYWQ5NDIwMDU5MGQ5MjBh
OWNlNzkxZjguLjI2YzQ4YTE0NDU3ZGFlMTY4ZGFiMWE4ZTAyMTU1MjExZjM3MDRhZDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItZGVs
ZXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJz
b3ItZGVsZXRlLmpzCkBAIC01LDM0ICs1LDE0IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgb3BlbkN1cnNvci4iKTsKIAotdGVzdCgp
OwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWRlbGV0ZScpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIp
OwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9u
JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBz
ZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlbkN1
cnNvcik7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKICAgICBzZWxm
LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CiAgICAg
c2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkN1cnNvcjsKLQotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAKICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmFs
QW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykiKTsKICAg
ICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUxJywgJ215S2V5MScpIik7CkBA
IC0xMDIsNCArODIsNCBAQCBmdW5jdGlvbiB2ZXJpZnlPYmplY3REZWxldGVkKCkKIHsKICAgICBz
aG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJ1bmRlZmluZWQiKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWluY29uc2lzdGVu
Y3kuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWlu
Y29uc2lzdGVuY3kuanMKaW5kZXggNWYyNDg4MjA3YWM1YWJkMGZmMjM0MDQwOTI5MzQ0NTUzMDFm
NjE0My4uMzkyZDUxNGE1YTY0ODU4MzRjMGY1YmQ3NGYxMzA2ZWYyOTQxNGRjNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmNvbnNp
c3RlbmN5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItaW5jb25zaXN0ZW5jeS5qcwpAQCAtNSw0MSArNSwyMCBAQCBpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGNvbnNpc3RlbmN5IG9mIEluZGV4ZWREQidz
IGN1cnNvciBvYmplY3RzLiIpOwogCi10ZXN0KCk7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKCdjdXJzb3ItaW5jb25zaXN0ZW5jeScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitp
bmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlbkJhc2ljQ3Vyc29yKTsKK2Z1bmN0aW9u
IHByZXBhcmVEYXRhYmFzZSgpCiB7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAg
IGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFsQW5k
TG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzZWxmLnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRC
ZU5vbk51bGwoInRyYW5zIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENh
bGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQmFzaWNDdXJzb3I7Ci0KLSAgICBk
ZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZhbEFu
ZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFzaWNTdG9yZScpIik7
CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdzb21lVmFsdWUxJywgJ3NvbWVLZXkx
Jykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CiAgICAgZXZhbEFuZExvZygi
b2JqZWN0U3RvcmUuYWRkKCdzb21lVmFsdWUyJywgJ3NvbWVLZXkyJykub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdz
b21lVmFsdWUzJywgJ3NvbWVLZXkzJykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
Iik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdzb21lVmFsdWU0JywgJ3NvbWVL
ZXk0Jykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7Ci0KIH0KIAogZnVuY3Rp
b24gb3BlbkJhc2ljQ3Vyc29yKCkKQEAgLTgyLDQgKzYxLDQgQEAgZnVuY3Rpb24gdHJhbnNhY3Rp
b25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxldGUoKSIpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5k
ZXgtZGVsZXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1
cnNvci1pbmRleC1kZWxldGUuanMKaW5kZXggZDFhZTk2OTdjMWNmYzNjY2Q3ZWEyZmQ0ZjZmMDhi
NzM1MDIwNGExMy4uNDMzMmI5NDBmMDBkMDI4Mjk0OGRmMTBhZDQ1ODVjNWI5NjJmZjliOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1p
bmRleC1kZWxldGUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci1pbmRleC1kZWxldGUuanMKQEAgLTUsMzUgKzUsMTUgQEAgaWYgKHRoaXMuaW1w
b3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29y
LiIpOwogCi10ZXN0KCk7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJz
b3ItaW5kZXgtZGVsZXRlJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVy
c2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKK2luZGV4ZWREQlRlc3QocHJl
cGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWco
InNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRy
YW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKKyAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQudHJh
bnNhY3Rpb24iKTsKICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7CiAgICAgdHJhbnMub25h
Ym9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIHRyYW5zLm9uY29tcGxldGUgPSBv
cGVuQ3Vyc29yOwogCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIG9iamVj
dFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
dGVzdCcpIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3Rlc3RJ
bmRleCcsICd4JykiKTsKIApAQCAtMTA2LDQgKzg2LDQgQEAgZnVuY3Rpb24gdmVyaWZ5T2JqZWN0
RGVsZXRlZCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5kZWZp
bmVkIik7CiAgICAgZmluaXNoSlNUZXN0KCk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1rZXktb3JkZXIuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWtleS1vcmRlci5qcwppbmRleCBlZGNlNTgwZjJlNmYxNzhmMGIxYzhlNTJl
ODlmYTk3NzYzYTdmY2VjLi5mZGUxNTljNzJmMTE0MGJhMjIzZTlhYzczYWI1MjEzNGY3OWRhY2Nh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vy
c29yLWtleS1vcmRlci5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWtleS1vcmRlci5qcwpAQCAtNSwzMSArNSwxMSBAQCBpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlzIG9yZGVyaW5n
IGFuZCByZWFkYmFjayBmcm9tIGN1cnNvcnMuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBwcmVwYXJlRGF0YWJhc2UoKTsKLX0KLQor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHBvcHVsYXRlU3RvcmUpOwogZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVsZXRlUmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnY3Vyc29yLWtleS1vcmRlcicp
Iik7Ci0gICAgZGVsZXRlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGV2
YWxBbmRMb2coIm9wZW5yZXEgPSBpbmRleGVkREIub3BlbignY3Vyc29yLWtleS1vcmRlcicpIik7
Ci0gICAgICAgIG9wZW5yZXEub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
ICAgICBvcGVucmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZXZhbEFu
ZExvZygiZGIgPSBvcGVucmVxLnJlc3VsdCIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygidmVy
cmVxID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAgICAgICB2ZXJyZXEub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgdmVycmVxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICAgICAgdmVycmVxLnJlc3VsdC5vbmNvbXBs
ZXRlID0gcG9wdWxhdGVTdG9yZTsKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsK
KyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKIH0KIAogc2VsZi5rZXlzID0gWwpAQCAtMjI1LDUgKzIw
NSwzIEBAIGZ1bmN0aW9uIHRlc3RLZXlDb21wYXJlKCkKICAgICAgICAgfQogICAgIH0KIH0KLQot
dGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByZXYt
bm8tZHVwbGljYXRlLmpzCmluZGV4IDJiMDgzM2JjNzIwNjAzYTNmOGNlZDJmNGMwZTc1NDE2NDI1
ZDk0MDUuLjgyZGQyOTIzZjgzZTg3NTdmYThhNTAyNTQ1NjE4YTNhZDFjYmJhNjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJldi1u
by1kdXBsaWNhdGUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS5qcwpAQCAtNSwzMSArNSwxMiBAQCBpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBiZWhhdmlv
ciB3aGVuIGl0ZXJhdGluZyBiYWNrd2FyZHMgd2l0aCBhbmQgd2l0aG91dCBOT19EVVBMSUNBVEUi
KTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQot
ICAgIHByZXBhcmVEYXRhYmFzZSgpOwotfQotCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFz
ZSwgcG9wdWxhdGVTdG9yZSk7CiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIGRl
YnVnKCIiKTsKLSAgICBldmFsQW5kTG9nKCJvcGVucmVxID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNv
ci1wcmV2LW5vLWR1cGxpY2F0ZScpIik7Ci0gICAgb3BlbnJlcS5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci0gICAgb3BlbnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0Iik7Ci0gICAgICAgIGV2
YWxBbmRMb2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICB2ZXJyZXEu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICB2ZXJyZXEub25zdWNj
ZXNzID0gZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOwotICAgICAgICAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnc29ydGVkJykiKTsKLSAgICAgICAgICAgIHZlcnJlcS5y
ZXN1bHQub25jb21wbGV0ZSA9IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3Rv
cmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3NvcnRlZCcpIik7CiB9CiAKIGZ1bmN0aW9uIHBvcHVs
YXRlU3RvcmUoKQpAQCAtMjMyLDUgKzIxMywzIEBAIGZ1bmN0aW9uIHJ1blRlc3Qob3BlbkN1cnNv
ciwgZXhwKQogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmpzCmluZGV4
IDAxMTlkZWRlM2MxOWI0YmQ3NjIzY2MwNzM4ZDg4ZGQ2MjIwN2FjNGEuLmNiYzU3MzIyOTNkZGU1
ZDM0ZGU3NzBhZWZlMDEwOGNiYmQ4ZjE2NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmltYXJ5LWtl
eS1vcmRlci5qcwpAQCAtNSwzMiArNSwxMiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBwcmltYXJ5IGtleSBvcmRlcmluZyBhbmQgcmVh
ZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KK2luZGV4ZWRE
QlRlc3QocHJlcGFyZURhdGFiYXNlLCBwb3B1bGF0ZVN0b3JlKTsKIGZ1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlbGV0ZVJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2N1cnNvci1wcmltYXJ5LWtleS1vcmRlcicp
Iik7Ci0gICAgZGVsZXRlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGV2
YWxBbmRMb2coIm9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1wcmltYXJ5LWtl
eS1vcmRlcicpIik7Ci0gICAgICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICAgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5SZXF1ZXN0LnJlc3VsdCIpOwotICAg
ICAgICAgICAgZXZhbEFuZExvZygidmVyc2lvbkNoYW5nZVJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykiKTsKLSAgICAgICAgICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgICAgICBldmFs
QW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdpbmRleEtleScpIik7
Ci0gICAgICAgICAgICAgICAgdmVyc2lvbkNoYW5nZVJlcXVlc3QucmVzdWx0Lm9uY29tcGxldGUg
PSBwb3B1bGF0ZVN0b3JlOwotICAgICAgICAgICAgfTsKLSAgICAgICAgfTsKLSAgICB9OworICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnaW5kZXhLZXknKSIpOwogfQogCiBzZWxmLmtleXMgPSBb
CkBAIC05Nyw1ICs3NywzIEBAIGZ1bmN0aW9uIGNoZWNrU3RvcmUoKQogICAgICAgICB9CiAgICAg
fTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcmV2ZXJzZS1i
dWcuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXJl
dmVyc2UtYnVnLmpzCmluZGV4IDNjMmQ1MTNlMmNiYTQxYzczZjY5ZTdhMjNiZjJjZjYzNDQ3ZDZh
M2EuLmE5NTA2YjliNGUwNjA3MWVhNzk4ZTEwMDZhOTRlMGVhYmVkYmFkMTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcmV2ZXJzZS1i
dWcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1yZXZlcnNlLWJ1Zy5qcwpAQCAtNSwyOSArNSwxMiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlzIG9yZGVyaW5nIGFuZCByZWFk
YmFjayBmcm9tIGN1cnNvcnMuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZl
bmRvclByZWZpeGVzKCk7Ci0KLSAgICBwcmVwYXJlRGF0YWJhc2UoKTsKLX0KLQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UsIHBvcHVsYXRlU3RvcmUpOwogZnVuY3Rpb24gcHJlcGFyZURh
dGFiYXNlKCkKIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZXZhbEFuZExvZygib3BlbnJlcSA9IGlu
ZGV4ZWREQi5vcGVuKCdjdXJzb3ItcmV2ZXJzZS1idWcnKSIpOwotICAgIG9wZW5yZXEub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIG9wZW5yZXEub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImRiID0gb3BlbnJlcS5yZXN1bHQiKTsKLSAg
ICAgICAgZXZhbEFuZExvZygidmVycmVxID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAg
IHZlcnJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHZlcnJl
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7Ci0gICAgICAgICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3Jl
LmNyZWF0ZUluZGV4KCdpbmRleCcsICcnKSIpOwotICAgICAgICAgICAgdmVycmVxLnJlc3VsdC5v
bmNvbXBsZXRlID0gcG9wdWxhdGVTdG9yZTsKLSAgICAgICAgfTsKLSAgICB9OworICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZS5jcmVh
dGVJbmRleCgnaW5kZXgnLCAnJykiKTsKIH0KIAogZnVuY3Rpb24gcG9wdWxhdGVTdG9yZSgpCkBA
IC05Nyw1ICs4MCwzIEBAIGZ1bmN0aW9uIHRlc3RDdXJzb3IoKQogICAgIGluZGV4S2V5UmVxID0g
ZXZhbEFuZExvZygiaW5kZXhLZXlSZXEgPSBpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdl
LnVwcGVyQm91bmQodGVzdC51cHBlckJvdW5kLCB0ZXN0Lm9wZW4pLCAncHJldicpIik7CiAgICAg
aW5kZXhLZXlSZXEub25zdWNjZXNzID0gdGVzdEZ1bmN0aW9uOwogfQotCi10ZXN0KCk7ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lwLWRlbGV0ZWQuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXNraXAtZGVsZXRlZC5qcwppbmRleCA2
MzYwMDc0ODZmZWFlMDNkNDIwODYzYzI5MWUzYjJmNGRhMDhkNGY3Li5lNjUzMDUyZGE0NjUyMTJk
Y2JkMjJiNmMwZjJmMmQxNTk4YjFmODU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXNraXAtZGVsZXRlZC5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXNraXAtZGVsZXRlZC5qcwpA
QCAtMTAsMzQgKzEwLDE0IEBAIHZhciBuYW1lcyA9IFsnQWxwaGEnLCAnQnJhdm8nLCAnQ2hhcmxp
ZScsICdEZWx0YScsICdFY2hvJywgJ0ZveHRyb3QnLCAnR29sZicsCiAgICAgICAgICAgICAgJ09z
Y2FyJywgJ1BhcGEnLCAnUXVlYmVjJywgJ1JvbWVvJywgJ1NpZXJyYScsICdUYW5nbycsICdVbmlm
b3JtJywKICAgICAgICAgICAgICAnVmljdG9yJywgJ1doaXNrZXknLCAnWC1yYXknLCAnWWFua2Vl
JywgJ1p1bHUnXTsKIAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Bl
bignY3Vyc29yLXNraXAtZGVsZXRlZCcpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJU
ZXN0KHByZXBhcmVEYXRhYmFzZSwgYmFzaWNDdXJzb3JUZXN0KTsKK2Z1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZSgpCiB7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIGRlYnVnKCJz
ZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFu
cyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygi
dHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRCZU5vbk51bGwo
InRyYW5zIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwot
ICAgIHRyYW5zLm9uY29tcGxldGUgPSBiYXNpY0N1cnNvclRlc3Q7Ci0KLSAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOwogCiAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2Jq
ZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnLCB7a2V5UGF0aDogJ2lkJ30p
Iik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ25hbWVJbmRleCcs
ICduYW1lJykiKTsKQEAgLTE5MCw0ICsxNzAsNCBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBs
ZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNhY3Rpb25Db21wbGV0ZSgpOiIpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLXZh
bHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuanMKaW5kZXgg
MTdiNTFkOTdkYjNmNDAzZDZmZTIzMzZiYzVmMzA3MTFmMWNlMmY4My4uMmNlMzBhN2NmNjZhYWU3
YjAyYmJkYTY1ZTRmMDViOTNjNTc4MjgwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWly
ZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuanMKQEAgLTUsMjkgKzUsMTAgQEAgaWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgY3Vy
c29yLnVwZGF0ZSByZXF1aXJlZCBhcmd1bWVudHMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRl
eGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQog
ewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlv
bi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFt
ZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3Vj
Y2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbign
MScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0ZXN0R3JvdXAxOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiB0ZXN0R3Jv
dXAxKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ2F1dG9JbmNyZW1lbnQnLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Iik7
CiAKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5D
dXJzb3IoKTsiKTsKQEAgLTY4LDUgKzQ5LDMgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9jdXJzb3ItdXBkYXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2N1cnNvci11cGRhdGUuanMKaW5kZXggNzg5ZTYyZDg5YzdlNTY4NTk1YmVlMmRm
OGEwNGRhOGZjMDRmOGMyMS4uYWI1ZjQxYzdjYjlhMThjMjgxNGZlYjFlYmIxNWZmNGM3ZDY1Mzc2
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1
cnNvci11cGRhdGUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci11cGRhdGUuanMKQEAgLTUsMjkgKzUsMTIgQEAgaWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjdXJzb3IgdXBkYXRlLiIp
OwogCi10ZXN0KCk7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZp
eGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3It
dXBkYXRlJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBv
cGVuU3VjY2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbign
bmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFi
YXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7CisgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OwogICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYu
dHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBz
ZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24i
KTsKICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQmFzaWND
dXJzb3I7CkBAIC0yMzIsNCArMjE1LDQgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21wbGV0ZSgp
CiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxldGUoKSIpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdmFsdWUuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXZhbHVlLmpzCmluZGV4
IDkxZWZlODc0MTE5ZGExN2ZlYzM2ZWQ2ZWU1ZWMwNDJmN2IwNzU4YzkuLmRkNjg2NmE4MjVkYmM0
N2FlZTU4OTA3YTZhMGE4ZjgyYzM3YWQ1N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdmFsdWUuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci12YWx1ZS5qcwpAQCAtNSwyNSArNSwx
MSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQidzIGN1cnNvciB2YWx1ZSBwcm9wZXJ0eS4iKTsKIAotcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLW9wZW5EYXRhYmFzZSgpOwotCi1mdW5jdGlvbiBvcGVuRGF0YWJhc2UoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RDdXJzb3IpOworZnVuY3Rpb24gcHJlcGFyZURhdGFi
YXNlKCkKIHsKLSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNv
ci12YWx1ZScpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbEFu
ZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gcmVx
dWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAgICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7
Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIp
OwotICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRlc3RDdXJzb3I7Ci0gICAg
ICAgIH07Ci0gICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZhbEFu
ZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKIH0KIAogZnVuY3Rpb24gdGVz
dEN1cnNvcigpCkBAIC0xMjEsNCArMTA3LDQgQEAgZnVuY3Rpb24gZW5zdXJlTW9kaWZpY2F0aW9u
c05vdFBlcnNpc3RlZCgpCiAgICAgICAgIHNob3VsZEJlKCJjdXJzb3IudmFsdWUuZm9vIiwgInVu
ZGVmaW5lZCIpOwogICAgIH07CiAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlzaEpT
VGVzdDsKLSB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhLWNvcnJ1cHRpb24uanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YS1jb3JydXB0aW9u
LmpzCmluZGV4IDJhMDhiZjFkNDM4ZGU1ZjdhODRmNTAzOWY5OGM0NzNjYTU3MTA2MDQuLjlkN2U5
NTkwOWM5MTU4ZDY3ZjRlNTM5MzU0N2Q2NWUwNGMwZTE2OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhLWNvcnJ1cHRpb24uanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGEtY29ycnVwdGlvbi5q
cwpAQCAtNSwzMyArNSwxNCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgZGF0YSBpbnNlcnRlZCBpbnRvIEluZGV4ZWREQiBkb2VzIG5vdCBnZXQg
Y29ycnVwdGVkIG9uIGRpc2suIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZl
bmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KCdkYXRhLWNvcnJ1cHRpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsK
LSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0K
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIp
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZl
cnNpb25TdWNjZXNzKCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBhZGREYXRhKTsK
K2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OwogICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMg
PSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzZWxmLnRy
YW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAg
ICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBhZGREYXRhOwotCi0gICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogfQpAQCAtNjEsNSArNDIsMyBAQCBmdW5jdGlvbiBk
b0NoZWNrKCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC54LnRvU3RyaW5nKCki
LCAidGVzdERhdGUudG9TdHJpbmcoKSIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0
KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxl
dGVwZW5kaW5nLWZsYWcuanMKaW5kZXggZTFhYzEwODQ1NWE4NjNjMTUzYjc5YTMzM2QwNGZlY2My
NjM4ODdlOS4uNzczN2IzOTZmOGY3YjViOGZkZjM2MTYyOWI1OGZiNGQ3ZWFmYmRhNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWRl
bGV0ZXBlbmRpbmctZmxhZy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZGF0YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLmpzCkBAIC01LDM3ICs1LDEyIEBA
IGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERC
IElEQkRhdGFiYXNlIGludGVybmFsIGRlbGV0ZSBwZW5kaW5nIGZsYWciKTsKIAotZnVuY3Rpb24g
dGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdERhdGFiYXNlRGVsZXRl
LCA1KTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKLQotICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5h
bWUiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5Db25uZWN0aW9uOwotfQotCi1mdW5jdGlv
biBvcGVuQ29ubmVjdGlvbigpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJPcGVuIGEg
Y29ubmVjdGlvbiBhbmQgc2V0IGEgc2VudGluZWwgdmVyc2lvbjoiKTsKLSAgICBldmFsQW5kTG9n
KCJ2ZXJzaW9uID0gJzEwJyIpOwotICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZh
bEFuZExvZygiY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxBbmRM
b2coInJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24odmVyc2lvbikiKTsKLSAgICAgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKLSAgICAgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRyYW5zID0gcmVxdWVzdC5y
ZXN1bHQ7Ci0gICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7Ci0gICAgICAgICAgICBzaG91bGRCZSgiY29ubmVjdGlvbi52ZXJzaW9uIiwgInZlcnNpb24i
KTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJjb25uZWN0aW9uLm9iamVjdFN0b3Jl
TmFtZXMubGVuZ3RoIiwgIjEiKTsKLSAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB0ZXN0
RGF0YWJhc2VEZWxldGU7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBjb25uZWN0aW9uID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZScpIik7CisgICAgc2hvdWxkQmUoImNvbm5lY3Rpb24ub2JqZWN0U3RvcmVO
YW1lcy5sZW5ndGgiLCAiMSIpOwogfQogCiBmdW5jdGlvbiB0ZXN0RGF0YWJhc2VEZWxldGUoKQpA
QCAtODYsNSArNjEsMyBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJhc2VEZWxldGUoKQogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICB9OwogfQotCi10ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRl
LWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuanMKaW5kZXggNWQzMjlhMmI3YTNiNzBjMDdlMWZmZjhi
NmQ2ZWJhMThkMjg0MDNiOC4uNDM0NTBlZTg0OTdlYmMyNTcxZjY5Yzc0YTg1NzgyZThiZDg0OWRm
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2Rl
bGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qcwpAQCAt
MzksMTEgKzM5LDEyIEBAIGZ1bmN0aW9uIG9wZW5TdWNjZXNzMigpCiBmdW5jdGlvbiBzZXRWZXJz
aW9uKCkKIHsKICAgICBnYygpOwotICAgIGRlYnVnKCJjYWxsaW5nIHNldFZlcnNpb24oKSAtIGNh
bGxiYWNrIHNob3VsZCBydW4gaW1tZWRpYXRlbHkiKTsKLSAgICB2YXIgdmVyc2lvbkNoYW5nZVJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOworICAgIGV2
YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAgICBkZWJ1ZygiY2FsbGluZyBvcGVuIHdpdGggaGln
aCB2ZXJzaW9uIC0gc2hvdWxkbid0IGJlIGJsb2NrZWQgYmVjYXVzZSBib3RoIGNvbm5lY3Rpb25z
IHNob3VsZCBiZSBkZWFkIik7CisgICAgdmFyIHZlcnNpb25DaGFuZ2VSZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0JywgMyki
KTsKICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CiAgICAgdmVyc2lvbkNoYW5nZVJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaW5p
c2hKU1Rlc3Q7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit0ZXN0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
ZGVsZXRlSW5kZXguanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
ZGVsZXRlSW5kZXguanMKaW5kZXggNjczNGZlZTJlM2EyMjk1ZWE3NGRjNmIxYTM4NGM4MDc3ZDYx
YjE3Zi4uOTc2OTA5MzBkMzRiZTZmMzFhY2M2NzViODQ0NGI0N2I4ZWJlNDA2NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZUluZGV4Lmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVJbmRl
eC5qcwpAQCAtNSwzMCArNSwxMyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQiBkZWxldGVJbmRleCBtZXRob2QiKTsKIAotZnVuY3Rpb24g
dGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgcG9zdFR3aWRkbGluZyk7Citm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkZWxldGVJbmRleCcp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEn
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdHdpZGRsZUluZGV4ZXM7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHR3aWRk
bGVJbmRleGVzKCkKLXsKLSAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9u
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbjsiKTsKICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CiAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENh
bGxiYWNrOwotICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBwb3N0VHdpZGRsaW5nOwotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRM
b2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9iamVjdFN0b3JlLmRlbGV0ZUluZGV4KCdmaXJzdCcpIiwg
IkRPTUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIidOb3RGb3VuZEVycm9yJyIpOwpAQCAtNDYs
NSArMjksMyBAQCBmdW5jdGlvbiBwb3N0VHdpZGRsaW5nKCkKICAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgnc2Vjb25kJykiLCAiSURCRGF0YWJhc2VF
eGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2FjdGlvbkluYWN0aXZl
RXJyb3InIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9y
ZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzCmluZGV4IDAzNjdiYmY2ZTE0MjkxMmYxY2MzZjU2
NGQ5OTU4ZWEzZDNhODU3NzcuLjEyMzg3ZTljMjM3MWI3YjFmYjcwZDBjZThmNTU3ODFhZTI4YjE2
ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9k
ZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFy
Z3VtZW50LXJlcXVpcmVkLmpzCkBAIC01LDMxICs1LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGRlbGV0ZU9iamVjdFN0b3JlIHJl
cXVpcmVkIGFyZ3VtZW50Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVw
YXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY3Jl
YXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBzaG91bGRUaHJvdygi
ZGIuZGVsZXRlT2JqZWN0U3RvcmUoKTsiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVz
dCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLmpzCmluZGV4IGJhYTYzMTc3ZDIzNGMyNmUwY2ZkODU0MzljZGE0ODU0
N2NlMDIzOTcuLjBiMmU0OTc0ZjEzMzQ1MzI4Zjk5NmM2OGRhYzNlNmQ5OWY1MDI1ZWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmpl
Y3RTdG9yZS1udWxsLW5hbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcwpAQCAtNSwzMiArNSwxMiBA
QCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QiBkZWxldGVPYmplY3RTdG9yZSByZXF1aXJlZCBhcmd1bWVudCIpOwogCi1mdW5jdGlvbiB0ZXN0
KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRh
YmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9u
IG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRl
T2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OwogCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ251bGwnKTsiKTsKICAg
ICBldmFsQW5kTG9nKCJkYi5kZWxldGVPYmplY3RTdG9yZShudWxsKTsiKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVkLW9i
amVjdHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRl
ZC1vYmplY3RzLmpzCmluZGV4IDg0ZTVkNjJlYzVjMmNiMmY0MjJiYzg5NzMzZjA4ZjI3MzY1ZTBl
YjAuLjcyZWVmZTVmNTg2NzQ1OTZlMDYwNjVkZmE2NTVjOTM3OWMxYzRjODAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVkLW9iamVjdHMu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWQt
b2JqZWN0cy5qcwpAQCAtNSw4MCArNSw2MCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgSW5kZXhlZERCIG9iamVjdHMgdGhhdCBoYXZlIGJlZW4g
ZGVsZXRlZCB0aHJvdyBleGNlcHRpb25zIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWUiKTsKLSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5EYXRhYmFzZTsK
LX0KKyAgICB0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICBjb25uZWN0aW9u
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKIAotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKLXsKICAg
ICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIm9wZW5EYXRhYmFzZSgpOiIpOwotICAgIGV2YWxBbmRM
b2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbiA9IHJlcXVlc3QucmVz
dWx0Iik7Ci0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNp
b24oJzEnKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygiZGVsZXRlZFN0b3Jl
ID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnZGVsZXRlZFN0b3JlJykiKTsKKyAgICBl
dmFsQW5kTG9nKCJzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyki
KTsKKyAgICBldmFsQW5kTG9nKCJkZWxldGVkSW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnZGVs
ZXRlZEluZGV4JywgJ3BhdGgnKSIpOwogCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
ICAgICBldmFsQW5kTG9nKCJkZWxldGVkU3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0
b3JlKCdkZWxldGVkU3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUgPSBj
b25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBldmFs
QW5kTG9nKCJkZWxldGVkSW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnZGVsZXRlZEluZGV4Jywg
J3BhdGgnKSIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBldmFsQW5k
TG9nKCJjb25uZWN0aW9uLmRlbGV0ZU9iamVjdFN0b3JlKCdkZWxldGVkU3RvcmUnKSIpOwotICAg
ICAgICAgICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5kZXgoJ2RlbGV0ZWRJbmRleCcpIik7
CisgICAgZGVidWcoIiIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24uZGVsZXRlT2JqZWN0
U3RvcmUoJ2RlbGV0ZWRTdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5k
ZXgoJ2RlbGV0ZWRJbmRleCcpIik7CiAKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAg
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5wdXQoMCwgMCkiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAg
ICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5hZGQoMCwgMCki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxl
dGUoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9y
ZS5kZWxldGUoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5nZXQoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5nZXQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
LSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jbGVhcigp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3Bl
bkN1cnNvcigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVk
U3RvcmUub3BlbkN1cnNvcigwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5W
QUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uu
b25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRT
dG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAg
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jcmVhdGVJbmRleCgnbmFt
ZScsICdwYXRoJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRTdG9yZS5pbmRleCgnbmFtZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIs
ICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkZWxldGVkU3RvcmUuZGVsZXRlSW5kZXgoJ25hbWUnKSIsICJET01FeGNlcHRpb24uSU5W
QUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNvdW50KCkiLCAiRE9NRXhjZXB0aW9u
LklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudCgwKSIsICJET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAg
ICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNvdW50KElEQktleVJh
bmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CisgICAgZGVidWcoIiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRlbGV0ZWRTdG9yZS5wdXQoMCwgMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVf
RVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJkZWxldGVkU3RvcmUuYWRkKDAsIDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGVsZXRlZFN0b3JlLmRlbGV0ZSgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIi
LCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRl
bGV0ZWRTdG9yZS5kZWxldGUoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZ2V0KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmdldChJREJLZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jbGVhcigpIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoKSIsICJET01FeGNlcHRp
b24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKDApIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoMCwgJ25leHQnKSIs
ICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIp
OworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKElE
QktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICIn
SW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRl
ZFN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jcmVhdGVJbmRleCgnbmFtZScsICdw
YXRoJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuaW5kZXgo
J25hbWUnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0
ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxl
dGVJbmRleCgnbmFtZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52
YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0
b3JlLmNvdW50KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUu
Y291bnQoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY291
bnQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKIAotICAgICAgICAgICAgZGVidWcoIiIpOwotICAg
ICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3Io
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9w
ZW5DdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRJbmRleC5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCkp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3Bl
bkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZB
TElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcigpIiwgIkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAg
ICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNv
cigwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVy
cm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4
Lm9wZW5LZXlDdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9F
UlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVu
S2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoMCkiLCAiRE9NRXhjZXB0aW9u
LklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoSURCS2V5UmFuZ2Uub25s
eSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRl
eC5nZXRLZXkoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRJbmRleC5nZXRLZXkoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudCgpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguY291bnQoMCkiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAg
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudChJREJLZXlSYW5n
ZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRT
dGF0ZUVycm9yJyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJkZWxldGVkSW5kZXgub3BlbkN1cnNvcigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRF
X0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNvcigwLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgw
KSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJv
ciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNv
cihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NU
QVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoKSIsICJET01FeGNlcHRpb24uSU5WQUxJ
RF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKDApIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoMCwgJ25leHQnKSIsICJE
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKElE
QktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICIn
SW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRl
ZEluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoMCkiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0KElEQktleVJhbmdlLm9ubHkoMCkp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmdldEtleSgwKSIs
ICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIp
OworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXRLZXkoSURCS2V5
UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZh
bGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5k
ZXguY291bnQoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRT
dGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5j
b3VudCgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0
ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3Vu
dChJREJLZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIi
LCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwogCi0gICAgICAgICAgICB0cmFucy5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0g
ZmluaXNoSlNUZXN0OwotICAgICAgICB9OwotICAgIH07CisgICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rl
c3Q7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9zaGFyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvc2hhcmVkLmpzCmluZGV4IGFiMDg2NGZhNmRhYmY0MzE2ZjI0ODY1YzY0NTIwNDg2
ZTI4MzU5YzMuLjE1MWI1ODAzMTFkYWUxZWJkZDUzNDcwZTIxYjE4Y2U3OTI1OThiZmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwpA
QCAtMTcyLDMgKzE3MiwyMSBAQCBpZiAoIXNlbGYuRE9NRXhjZXB0aW9uKSB7CiAgICAgICAgIERB
VEFfQ0xPTkVfRVJSOiAyNQogICAgIH07CiB9CisKK2Z1bmN0aW9uIGluZGV4ZWREQlRlc3QodXBn
cmFkZUNhbGxiYWNrLCBvcHRpb25hbE9wZW5DYWxsYmFjaywgb3B0aW9uYWxWZXJzaW9uKSB7Cisg
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAg
IHZhciBkZWxldGVSZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkiKTsKKyAgICBkZWxldGVSZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICBkZWxldGVSZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2Vk
Q2FsbGJhY2s7CisgICAgZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgaWYgKG9wdGlvbmFsVmVyc2lvbikKKyAgICAgICAgICB2YXIgb3BlblJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUsICIgKyBvcHRpb25hbFZlcnNpb24gKyAi
KSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgdmFyIG9wZW5SZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgICAgICBvcGVuUmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IHVwZ3JhZGVDYWxsYmFjazsKKyAgICAgICAgaWYgKG9wdGlvbmFsT3BlbkNhbGxi
YWNrKQorICAgICAgICAgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gb3B0aW9uYWxPcGVuQ2Fs
bGJhY2s7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5qcwppbmRleCBjNjg4YjYzNDhl
OGU1ZGU2MmFhNmUyMTVlNzlhMWYzZDNmYzYyYWJlLi43YzE3YTlhMjM3ZDlkNjkxNzRkOTU1YzJh
YjVlMTBhYzQ2MjIwODM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0LmpzCkBAIC01LDM0ICs1LDEw
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgdHJhbnNh
Y3Rpb24gYWJvcnRzIHNlbmQgdGhlIHByb3BlciBvbmFib3J0IG1lc3NhZ2VzLi4iKTsKIAotZnVu
Y3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgc3RhcnRUZXN0KTsK
K2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignbmFtZScpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uKCkK
LXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBkZWxldGVFeGlz
dGluZygpCi17Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNo
b3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7Ci0gICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVz
dCIpOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTk1LDUgKzcxLDMgQEAg
ZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkKCkKICAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
LQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tYWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDg5YWQ3Njc1YzJkY2RiZDMx
MGQ2ZGFlNjhlMzkyZTMwZjI2MjhlYTcuLmY4ZDhhOTFlMzFmYTg4YTg4YmEyNWJiZmQzNGM2OTg5
YmZmYWEyYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05T
T0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQg
d2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgog
VGVzdCB0cmFuc2FjdGlvbiBhYm9ydHMgc2VuZCB0aGUgcHJvcGVyIG9uYWJvcnQgbWVzc2FnZXMu
LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDE0ICs1LDkgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCduYW1lJykKLWRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVyc2lvblN1Y2Nl
c3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBub24tbnVs
bC4KLXRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCitkYm5hbWUgPSAidHJhbnNhY3Rpb24tYWJvcnQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQogc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5
OiAnenp6J30sICdrZXknKQogdHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlTmFtZSddLCAn
cmVhZHdyaXRlJykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173340</attachid>
            <date>2012-11-09 11:21:21 -0800</date>
            <delta_ts>2012-11-09 14:31:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101676-20121109111928.patch</filename>
            <type>text/plain</type>
            <size>91690</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODE0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGYzYzQyOTdmZjg3NmUyMGIxNDJh
YjE3NTRiOGRkYTMyOWMzN2VkZC4uOGE0YWI4M2FhODk3ZmQwY2I2NDY0NzMwZmJlZDNmMDI4OWJl
YzkxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAxMi0xMS0wOCAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBjb252ZXJ0IHRlc3Rz
IGZyb20gc2V0VmVyc2lvbiB0byB1cGdyYWRlbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGxhIGJ1ZyA5MjAzNywgYWRkIGEgZnVuY3Rpb24g
dG8gc2hhcmVkLmpzIHRoYXQgc2V0cyB1cCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZm9yIHRlc3Rz
IHdoZXJlIG9wZW5pbmcgYW5kIHZlcnNpb25pbmcgaXNuJ3QgdGhlIGZvY3VzLgorCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1uYW1l
LWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lz
dGVuY3ktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1p
bmRleC1kZWxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1rZXktb3JkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJn
dW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci12YWx1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9y
ZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Rl
bGV0ZWQtb2JqZWN0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5qczoKKyAgICAgICAgKHByZXBh
cmVEYXRhYmFzZSk6CisgICAgICAgIChjaGVja0IpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpz
OgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmpzOgorICAgICAgICAocHJl
cGFyZURhdGFiYXNlKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vy
c29yLWFkZGVkLWJ1Zy5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1hZHZhbmNlLmpzOgorICAgICAgICAo
cHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKG9uT3Blbik6CisgICAgICAgICh0ZXN0RGVsZXRl
KToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVl
LWRpci5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgICh0ZXN0UmV2ZXJz
ZUN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1j
b250aW51ZS12YWxpZGl0eS5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAg
IChtb2RpZnlDb250aW51ZU9yZGVyQ2FsbGJhY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJh
c2UpOgorICAgICAgICAob25UcmFuc2FjdGlvbkNvbXBsZXRlKToKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWRlbGV0ZS5qczoKKyAgICAgICAgKHByZXBhcmVE
YXRhYmFzZSk6CisgICAgICAgICh2ZXJpZnlPYmplY3REZWxldGVkKToKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWluY29uc2lzdGVuY3kuanM6CisgICAgICAg
IChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAodHJhbnNhY3Rpb25Db21wbGV0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmRleC1kZWxldGUuanM6
CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAodmVyaWZ5T2JqZWN0RGVsZXRl
ZCk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1rZXktb3Jk
ZXIuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAodGVzdEtleUNvbXBh
cmUpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJldi1u
by1kdXBsaWNhdGUuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAocnVu
VGVzdCk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmlt
YXJ5LWtleS1vcmRlci5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgIChj
aGVja1N0b3JlKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29y
LXJldmVyc2UtYnVnLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKHRl
c3RDdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
c2tpcC1kZWxldGVkLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKHRy
YW5zYWN0aW9uQ29tcGxldGUpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpzOgorICAgICAgICAodGVz
dEdyb3VwMyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci11
cGRhdGUuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAodHJhbnNhY3Rp
b25Db21wbGV0ZSk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci12YWx1ZS5qczoKKyAgICAgICAgKHByZXBhcmVEYXRhYmFzZSk6CisgICAgICAgIChlbnN1cmVN
b2RpZmljYXRpb25zTm90UGVyc2lzdGVkKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZGF0YS1jb3JydXB0aW9uLmpzOgorICAgICAgICAocHJlcGFyZURhdGFiYXNlKToK
KyAgICAgICAgKGRvQ2hlY2spOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJh
c2UpOgorICAgICAgICAodGVzdERhdGFiYXNlRGVsZXRlKToKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlSW5kZXguanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJh
c2UpOgorICAgICAgICAocG9zdFR3aWRkbGluZyk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanM6
CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuanM6CisgICAgICAgIChwcmVw
YXJlRGF0YWJhc2UpOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxl
dGVkLW9iamVjdHMuanM6CisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanM6CisgICAgICAgICguZGVsZXRlUmVx
dWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAoaW5kZXhlZERCVGVzdCk6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0LmpzOgorICAgICAgICAo
cHJlcGFyZURhdGFiYXNlKToKKyAgICAgICAgKHRyYW5zYWN0aW9uQWJvcnRlZCk6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtZXhwZWN0ZWQudHh0OgorCiAy
MDEyLTExLTA3ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHVwZGF0ZSBjaHJvbWl1bS1tYWMtbW91bnRhaW5saW9uIGJhc2VsaW5lcyBm
b3IgY3NzMi4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVh
dGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dAppbmRl
eCAzODNiYTlhMzQ3OGFmZGM5YTA1ZThmZWRmYWJlYjZhYzhmYjkyMDI1Li40OTMzZDY5YmE3MjJi
NTZiMmQzMTRmYWZiMTJiNjM0YTkxMWRiOThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0
aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBj
cmVhdGVPYmplY3RTdG9yZSdzIHZhcmlvdXMgb3B0aW9ucwogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4
ZWREQi5vcGVuKCdjcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMnKQotZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKLURlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25z
Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnLCB7a2V5UGF0aDogJ2EnfSkKIGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdiJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdjJywge2F1dG9JbmNy
ZW1lbnQ6IHRydWV9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1
bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKaW5kZXggZWY4ZWUwZDdkNjVlYWY0Yzk5NzA3MTRl
Y2FlMGJkN2FkMjUxZGY0OS4uN2VkZTk1NjQ4YjRhODAxNzlmODA4NGE1MjUzYTRjNzkyZGFhNGVi
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0
U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1
aXJlZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3Jl
YXRlT2JqZWN0U3RvcmUgbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZAogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCkBAIC02LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwog
Ci1pbmRleGVkREIub3BlbihuYW1lKQorZGJuYW1lID0gImNyZWF0ZU9iamVjdFN0b3JlLW5hbWUt
YXJndW1lbnQtcmVxdWlyZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBQQVNT
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1u
dWxsLW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Jl
YXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCBhM2Y1MWUzYmJmMDIw
ZGExZmM1NzBjNmEwNzYyNDYwZmJlODBmZWMyLi5mZTFkMDViNWM5MDI4ZjI0YzFkYmYzOTI5NWYx
MzkyYzFiMWY4ZWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
cmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3JlYXRlT2JqZWN0U3RvcmUg
bnVsbCBoYW5kbGluZwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1u
YW1lLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUobnVsbCk7CiBQQVNTIG9iamVjdFN0b3Jl
Lm5hbWUgaXMgIm51bGwiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWct
ZXhwZWN0ZWQudHh0CmluZGV4IGQyMjI5OWM4MDIzZDYxM2U2NTBhODJiOWQyNzMyOGEzOTdlNDM2
MDAuLjQ0ZTYzM2Y4MzY2MWU5YTIxNTYyMGM4Nzk3NzJkOTBjZmQzNGY5MDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWct
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGN1cnNvciBp
dGVyYXRlcyBjb3JyZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVyaW5nIGl0ZXJhdGlvbi4KIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMiArNSwxMSBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1kZWxldGUnKQotZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK2RibmFtZSA9ICJjdXJzb3ItYWRkZWQtYnVnLmh0bWwiCitpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQordHJh
bnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1E
ZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgndGVzdCcpCiBvYmplY3RTdG9yZS5hZGQoMSwgMSkKIG9iamVjdFN0b3JlLmFkZCgyLCAy
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkdmFu
Y2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFk
dmFuY2UtZXhwZWN0ZWQudHh0CmluZGV4IDZmZGM2ZTc1YmYyYmQxMTlhYjMwODNiMjFiMWI1ZDdl
NzhkYTIxYjQuLmJkOTA5NDUxNDk5Nzg4OWRkOTc2ZmE1OTk3MzU2MjE1MWU4ODNkYjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZHZhbmNlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWR2YW5j
ZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRW
ZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2Ug
dGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3Vyc29y
LmFkdmFuY2UoKS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMiArNSw5IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotb3BlblN1
Y2Nlc3MoKToKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KLXRyYW5zID0gcmVxdWVzdC5yZXN1
bHQKK2RibmFtZSA9ICJjdXJzb3ItYWR2YW5jZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKIE5vdyBjcmVhdGUgdGhlIGluZGV4ZXMu
CiBvYmplY3RTdG9yZS5jcmVhdGVJbmRleChpbmRleERhdGFbaV0ubmFtZSwgaW5kZXhEYXRhW2ld
LmtleVBhdGgsIGluZGV4RGF0YVtpXS5vcHRpb25zKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci1leHBlY3RlZC50
eHQKaW5kZXggZDAxZGQ3NzM2MjhlOTZmNDE2YjBlMTkyNWNkNDE5NDBhY2JiY2UwMC4uMjgyYTQ4
N2RhMWJmNzMyODYwZWE3ZDRhZjkxMzY5YzVmNWQ0NWU0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9u
KCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1
cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCB0aGF0IGNvbnRpbnVlKCkgY2FsbHMg
YWdhaW5zdCBjdXJzb3JzIGFyZSB2YWxpZGF0ZWQgYnkgZGlyZWN0aW9uLgogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJjdXJzb3ItY29u
dGludWUtZGlyLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQotcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLWRiID0gcmVxdWVzdC5yZXN1bHQKLWRiLnNldFZl
cnNpb24oJzEnKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmUnKQogc3RvcmUucHV0KDEsMSkKIHN0b3JlLnB1dCgyLDIpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4
cGVjdGVkLnR4dAppbmRleCAwYTYyMGI2YzE4ZWJiMWY5ODZmY2I2MjE1ZDVlYjQyZmVlOWJhOTRi
Li5kMTRiOTEyNzc0OTMwNTkwMGNiOWE2ZGI5ODliYzM0ZmY2MWVlYzJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9u
KCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1
cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBJREJDdXJzb3Iu
Y29udGludWUoKSB3aXRoIGEga2V5IHBhcmFtZXRlci4KIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgpAQCAtNiwxMiArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhl
ZERCLm9wZW4oJ2N1cnNvci1jb250aW51ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRi
LnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
ZGJuYW1lID0gImN1cnNvci1jb250aW51ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3RyYW5zID0gZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uCiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0
b3Jlcy4KIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lT2JqZWN0U3RvcmUnKQogb2JqZWN0U3Rv
cmUuY3JlYXRlSW5kZXgoJ3NvbWVJbmRleCcsICd4JykKIG9iamVjdFN0b3JlLmFkZCh7J3gnOiB0
ZXN0RGF0YVtuZXh0VG9BZGRdfSwgbmV4dFRvQWRkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1l
eHBlY3RlZC50eHQKaW5kZXggNmM5NmEzNzZlZDJhMDZjNjZhYmQwODk4NmJhMjRhNDFhMWYyODgw
OC4uZWFkZmE1ZjRiNmI2YjdhMzBmZjNiZGU3YzJmNDAyOGMyZWYxMjIzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29u
dGludWUtdmFsaWRpdHktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNT
QUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUg
cmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5k
ZXhlZERCJ3MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgYmVoYXZpb3Igd2hlbiBjYWxsZWQgYmV5b25k
IG5vcm1hbCBzY29wZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMiArNSwx
MSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWRE
QiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1z
SW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1j
b250aW51ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2
ZXJzaW9uJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGJuYW1lID0gImN1cnNvci1j
b250aW51ZS12YWxpZGl0eS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3RyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
CiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lT2JqZWN0U3RvcmUnKQogb2JqZWN0U3RvcmUuY3JlYXRl
SW5kZXgoJ3NvbWVJbmRleCcsICd4JykKIG9iamVjdFN0b3JlLmFkZCh7J3gnOiAwIH0sIDApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUt
ZXhwZWN0ZWQudHh0CmluZGV4IDQ4ZDM3NWFmYWJhODgyYThhMDg2MGNlNWFmZTllZDlhNTU4YTMz
N2UuLjg5NTUzMDI1NGNjOTBkZjQ1YmQ1YzAwNTAwOTM2ZGQ4YjAzMTAxYjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1kZWxldGUtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigp
IG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBn
cmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3Mgb3BlbkN1cnNvci4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMyArNSwxMiBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1kZWxldGUnKQotZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCitkYm5hbWUg
PSAiY3Vyc29yLWRlbGV0ZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHNldFZlcnNpb25TdWNjZXNzKCk6CiB0cmFucyA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBv
YmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcp
CiBvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUxJywgJ215S2V5MScpCiBvYmplY3RTdG9yZS5hZGQo
J215VmFsdWUyJywgJ215S2V5MicpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS1leHBlY3RlZC50eHQKaW5kZXgg
ZTZhM2M5Yzg3YzYzOTA3ZThjYTczMjMzMjEyYmE0MTMwMjg3NmE4ZC4uYjM2MmMwN2MwMmJmMmI2
MDljN2Q3MDgxNDBmZjU3ZDY4YTFlMjllMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5LWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRo
b2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVu
ZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IGNvbnNpc3RlbmN5IG9mIEluZGV4ZWREQidzIGN1
cnNvciBvYmplY3RzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEzICs1LDEy
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignY3Vyc29yLWlu
Y29uc2lzdGVuY3knKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCdu
ZXcgdmVyc2lvbicpCitkYm5hbWUgPSAiY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbCIKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzZXRW
ZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Cit0cmFucyA9IGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdi
YXNpY1N0b3JlJykKIG9iamVjdFN0b3JlLmFkZCgnc29tZVZhbHVlMScsICdzb21lS2V5MScpLm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjawogb2JqZWN0U3RvcmUuYWRkKCdzb21lVmFs
dWUyJywgJ3NvbWVLZXkyJykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmRl
eC1kZWxldGUtZXhwZWN0ZWQudHh0CmluZGV4IGVhODg1OTNhN2E1OTU5ZmRhNDA3YWJiNTI5M2Uz
NTgyOGMxOGZkMTguLjdhMzU5MWMzZDg4ZjQ5NGZmZWFjZGZhMThiMGIzZGU4NmZlZWRiMmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmRleC1kZWxl
dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1pbmRleC1kZWxldGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNT
QUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUg
cmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5k
ZXhlZERCJ3Mgb3BlbkN1cnNvci4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwx
MyArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1
cnNvci1pbmRleC1kZWxldGUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJz
aW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50
YXJnZXQucmVzdWx0CitkYm5hbWUgPSAiY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3RyYW5z
ID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3Rlc3QnKQogb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3Rlc3RJbmRleCcsICd4JykKIG9i
amVjdFN0b3JlLmFkZCh7eDogMX0sICdteUtleTEnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLWV4cGVjdGVkLnR4dAppbmRl
eCA3OTM1Y2QxMDBjMzQ2MGM2YzlmMzM1MTI4OGFmYjNlODFiODk3ZDc5Li4zZTkzMDJhNjk2Y2Ji
MDRlMTdlM2JkNWI4NTM5NGJkZGNkYWE5YjI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMg
bm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQi
IGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBrZXlzIG9yZGVyaW5nIGFuZCByZWFkYmFj
ayBmcm9tIGN1cnNvcnMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTEgKzUs
OSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWRE
QiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1z
SW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1pbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoJ2N1cnNvci1rZXktb3JkZXInKQotb3BlbnJlcSA9IGluZGV4ZWREQi5vcGVuKCdjdXJzb3It
a2V5LW9yZGVyJykKLWRiID0gb3BlbnJlcS5yZXN1bHQKLXZlcnJlcSA9IGRiLnNldFZlcnNpb24o
JzEnKQorZGJuYW1lID0gImN1cnNvci1rZXktb3JkZXIuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmUnKQogCiBwb3B1bGF0aW5nIHN0b3JlLi4uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYtbm8tZHVwbGlj
YXRlLWV4cGVjdGVkLnR4dAppbmRleCBhZjc0MjdmMDg5OTJhZmRlMWIzNGY1ZmY3NGViYmFiY2Nm
YzJlMDA0Li43NmZkMDg2M2JmODU2ZWIwM2UzOTQ1NjU0YTNiZmE3NWYzNzIwOWFjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJldi1uby1kdXBsaWNh
dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1wcmV2LW5vLWR1cGxpY2F0ZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2ls
bCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVz
dCBJbmRleGVkREIgYmVoYXZpb3Igd2hlbiBpdGVyYXRpbmcgYmFja3dhcmRzIHdpdGggYW5kIHdp
dGhvdXQgTk9fRFVQTElDQVRFCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTEg
KzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1vcGVucmVxID0gaW5kZXhlZERC
Lm9wZW4oJ2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZScpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci12
ZXJyZXEgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitk
Ym5hbWUgPSAiY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLmh0bWwiCitpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnKQogc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3NvcnRl
ZCcpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1w
cmltYXJ5LWtleS1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IGExZjc5YmIz
OTc4ZTlhZWZmM2NhYzljNGE3Y2E2NjM1ZThlMzQzNjguLmI1ZWRhNzQ0NmNjN2QzYzQ4OWEwOGY4
MzBlY2E1NjNjODM2NjA4OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRo
b2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVu
ZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBwcmltYXJ5IGtleSBvcmRlcmlu
ZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLQotaW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKCdjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXInKQotb3BlblJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbignY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyJykKLWRiID0gb3BlblJl
cXVlc3QucmVzdWx0Ci12ZXJzaW9uQ2hhbmdlUmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQor
ZGJuYW1lID0gImN1cnNvci1wcmltYXJ5LWtleS1vcmRlci5odG1sIgoraW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4
JywgJ2luZGV4S2V5JykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXJldmVyc2UtYnVnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQKaW5kZXggMmVhYjc0YzJm
MjFkMWIwN2VjNTc4OTRmN2ViYzlmOWQzOTQ3YzVjZS4uYmRhNDcyOTZiZjY4ZWYxOTM2YWM5ZDVi
ZjNkNTk3NzdiZDE1MmFjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXJldmVyc2UtYnVnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3Rh
bmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQg
aW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGtleXMgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20g
Y3Vyc29ycy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMSArNSw5IEBAIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi0KLW9wZW5yZXEgPSBpbmRleGVkREIub3BlbignY3Vy
c29yLXJldmVyc2UtYnVnJykKLWRiID0gb3BlbnJlcS5yZXN1bHQKLXZlcnJlcSA9IGRiLnNldFZl
cnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjdXJzb3It
cmV2ZXJzZS1idWcuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRl
eGVkREIub3BlbihkYm5hbWUpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScp
CiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLWV4cGVjdGVk
LnR4dAppbmRleCBkMmY2NTQ1MWI3NjZlNGY4YTY3MDY4OTM2YTQwNzBhZmUxY2FkNDkzLi41NDI5
ZWY0MjY1Yzg4YzZiOWViMTE5NTAzMTJmYTAxZWY1YmQ5NWJhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNp
b24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUg
InVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIGN1cnNvciBz
a2lwcyBkZWxldGVkIGVudHJpZXMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYs
MTMgKzUsMTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdj
dXJzb3Itc2tpcC1kZWxldGVkJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVy
c2lvbignbmV3IHZlcnNpb24nKQorZGJuYW1lID0gImN1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCIK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBzZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Cit0cmFu
cyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURl
bGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZScsIHtrZXlQYXRoOiAnaWQnfSkKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdu
YW1lSW5kZXgnLCAnbmFtZScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLXVwZGF0ZS1leHBlY3RlZC50eHQKaW5kZXggM2VhNWI2YmNkNjg5ZDdm
MjYyOTJiYWNjNWIzN2E3YmFmYjNmZWYyMS4uZjRiYzFlNWI2MWFjNmNlMjA1YmU2YjY1ZmIyNjYy
MzA4MDdkNmIzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLXVwZGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLXVwZGF0ZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1F
U1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBi
ZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJ
bmRleGVkREIncyBjdXJzb3IgdXBkYXRlLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBA
IC02LDExICs1LDExIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Bl
bignY3Vyc29yLXVwZGF0ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNp
b24oJ25ldyB2ZXJzaW9uJykKK2RibmFtZSA9ICJjdXJzb3ItdXBkYXRlLmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc2V0VmVy
c2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAordHJhbnMgPSBldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCiBEZWxldGVkIGFs
bCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFz
aWNTdG9yZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWly
ZWQtZXhwZWN0ZWQudHh0CmluZGV4IGRhNDA0ZDlkODVmZmI0YmIzZjg0N2I0NGQyYjlhYzY0OWEx
YjA5OWMuLjYyNGY3YzEwZmZiNzZjODE4MWM3MGU1ZTNkMjUyY2IzMDU3MTExNWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJn
dW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGN1cnNvci51cGRhdGUgcmVxdWly
ZWQgYXJndW1lbnRzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUsOSBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3Vt
ZW50LXJlcXVpcmVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2F1dG9JbmNyZW1lbnQn
LCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1
cnNvcigpOwoga2V5cyA9IFsxLCAtMSwgMCwgMTAsIDIwMDAsICdxJywgJ3onLCAndHdvJywgJ2In
LCAnYSddOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci12YWx1ZS1leHBlY3RlZC50eHQKaW5kZXggOTc0ZGNlYjFiYTY0MTQzYzM1N2IxMTBlMzFiMjcw
ZTc2YzY5MjU1MC4uNDgzMGFjMTVmNzJjN2Y3OTRkYmIwNTAyOWVlODYwYTJhOTk4YTAyZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXZhbHVlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdmFsdWUt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgY3Vyc29y
IHZhbHVlIHByb3BlcnR5LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1
LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLXJlcXVlc3QgPSBpbmRleGVkREIub3Bl
bignY3Vyc29yLXZhbHVlJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0Ci1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImN1cnNvci12YWx1ZS5odG1sIgoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiAKIHRlc3RDdXJzb3IoKToKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0
ZWQudHh0CmluZGV4IDU1ZDAwZDc4YTQwZjVhZWM5ZGRhNGJkZWQwNmVhNTlkZTc2NWEzYjcuLjdi
NzM5ODViODBkYTRjYTgzYzUyMjU5ODU1NDE4YTAzZTcyOTI1OGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlvbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBt
ZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3Jh
ZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IHRoYXQgZGF0YSBpbnNlcnRlZCBpbnRvIElu
ZGV4ZWREQiBkb2VzIG5vdCBnZXQgY29ycnVwdGVkIG9uIGRpc2suCiAKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KQEAgLTYsMTQgKzUsMTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAK
LWluZGV4ZWREQi5vcGVuKCdkYXRhLWNvcnJ1cHRpb24nKQotb3BlblN1Y2Nlc3MoKToKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQorZGJuYW1l
ID0gImRhdGEtY29ycnVwdGlvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK3RyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQ
QVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogYWRkRGF0YSgpOgogdHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbihbJ3N0b3JlTmFtZSddLCAncmVhZHdyaXRlJykKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1kZWxl
dGVwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CmluZGV4IDY2YjA0NGNkZTZjMThmNjhiNWFhYWVh
MmIwYzkzNWQxYWI5MzM3NjMuLjA1YjIzZTkyOTMxZmNkNTU2Y2Q4OGQ0ZTJjYzJhZmM1NGMxZjc5
YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRl
bGV0ZXBlbmRpbmctZmxhZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGF0YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9u
LXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2
ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBJREJEYXRhYmFzZSBpbnRlcm5hbCBkZWxldGUg
cGVuZGluZyBmbGFnCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTUgKzUsOSBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRo
bmFtZQorZGJuYW1lID0gImRhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5odG1sIgogaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQotT3BlbiBhIGNvbm5lY3Rpb24gYW5kIHNldCBh
IHNlbnRpbmVsIHZlcnNpb246Ci12ZXJzaW9uID0gJzEwJwotcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSkKLWNvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdAotcmVxdWVzdCA9IGNvbm5l
Y3Rpb24uc2V0VmVyc2lvbih2ZXJzaW9uKQotUEFTUyBjb25uZWN0aW9uLnZlcnNpb24gaXMgdmVy
c2lvbgoraW5kZXhlZERCLm9wZW4oZGJuYW1lLCA1KQogY29ubmVjdGlvbi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmUnKQogUEFTUyBjb25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlz
IDEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlSW5k
ZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlSW5k
ZXgtZXhwZWN0ZWQudHh0CmluZGV4IDk4NzdlMWFiMGZlMDUwOTBiN2FkNGE0ODQxNGM3NGI0ZjFl
OTAyYzQuLmE5OTZhYzIzMGQ5YmFmMjI1ODVkMWEwMzdmZGIwYjBlODUxMzBjODYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgZGVsZXRlSW5kZXggbWV0
aG9kCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTEgKzUsOSBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZUluZGV4JykKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotdHJhbnNh
Y3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OwotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9ICJkZWxldGVJbmRleC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2ZvbycpOwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIG9iamVjdFN0b3JlLmRl
bGV0ZUluZGV4KCdmaXJzdCcpCiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1h
cmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4
dAppbmRleCA2ODdhMmQ1YjlmYzMzMjhlMWI5MDdiYzljNGYzZWM4N2UwMmIxYTUwLi5hN2E5NTgw
Nzk4Zjc2NDhmMTc0M2VmYmRiNzZkZWQ2NGUzNzU2OGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVp
cmVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9u
LXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2
ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBkZWxldGVPYmplY3RTdG9yZSByZXF1aXJlZCBh
cmd1bWVudAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVu
dC1yZXF1aXJlZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4
ZWREQi5vcGVuKGRibmFtZSkKIFBBU1MgZGIuZGVsZXRlT2JqZWN0U3RvcmUoKTsgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQu
dHh0CmluZGV4IDc5ZTEzZWZjYjIyM2EyZDg3MDAxNGQ0YjUzY2FhZDgzNDEzODBmZWUuLjBhOGM4
MGI4N2UyMzU0Zjk5ZmFkZGY1ZjZlNDJkNWQ3OGMzNjQ3OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3Rv
cmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJl
bW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4
ZWREQiBkZWxldGVPYmplY3RTdG9yZSByZXF1aXJlZCBhcmd1bWVudAogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAK
LWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUg
PSAiZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ251bGwnKTsKIGRiLmRlbGV0ZU9iamVjdFN0b3JlKG51bGwpOwogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZGVsZXRlZC1vYmplY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2RlbGV0ZWQtb2JqZWN0cy1leHBlY3RlZC50eHQKaW5kZXggN2JlNzhjOTVmMmZmYmVh
ZjNkNzI1ODI2NGFhNTg1MjgzYjRhMjZjYy4uZjFlOTQxODQ0YTRhMzU0ZTYwMzliODI5MmUxZjRm
YWU1YjExMmY0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlZC1vYmplY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVkLW9iamVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdp
bGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRl
c3QgdGhhdCBJbmRleGVkREIgb2JqZWN0cyB0aGF0IGhhdmUgYmVlbiBkZWxldGVkIHRocm93IGV4
Y2VwdGlvbnMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMyArNSw5IEBAIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1kYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
Ci1yZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQotb3BlbkRhdGFi
YXNlKCk6Ci1yZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQotY29ubmVjdGlvbiA9IHJl
cXVlc3QucmVzdWx0Ci1yZXF1ZXN0ID0gY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcxJykKK2RibmFt
ZSA9ICJkZWxldGVkLW9iamVjdHMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiAKIGRlbGV0ZWRTdG9yZSA9IGNvbm5lY3Rpb24u
Y3JlYXRlT2JqZWN0U3RvcmUoJ2RlbGV0ZWRTdG9yZScpCiBzdG9yZSA9IGNvbm5lY3Rpb24uY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdC1zdG9yZS1v
cHRpb25zLmpzCmluZGV4IDcwMzliYzA4NWQ3MGU4ODM3YWU0ZDU1NGFmYjE2MWNmZGI1ZjQ5YzIu
LmI4NjcyZTFiNmFjMzFhM2NhNDJlNGY4NDg1MDUzNDcyYWE3NmE4NjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0LXN0b3Jl
LW9wdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5qcwpAQCAtNSwzNCArNSwxNiBAQCBpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0
ZU9iamVjdFN0b3JlJ3MgdmFyaW91cyBvcHRpb25zIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5k
ZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHNldFZlcnNpb25Db21wbGV0ZSk7CitmdW5jdGlv
biBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2NyZWF0ZS1vYmplY3Qtc3Rv
cmUtb3B0aW9ucycpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJ3ZlcnNpb24gMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRh
dGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKIAogICAgIGV2YWxBbmRMb2co
ImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhJywge2tleVBhdGg6ICdhJ30pIik7CiAgICAgZXZhbEFu
ZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2InKSIpOwogCiAgICAgZGVidWcoImRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdjJywge2F1dG9JbmNyZW1lbnQ6IHRydWV9KTsiKTsKICAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnYycsIHthdXRvSW5jcmVtZW50OiB0cnVlfSk7Ci0gICAgZXZlbnQudGFy
Z2V0LnJlc3VsdC5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5jdGlv
biBzZXRWZXJzaW9uQ29tcGxldGUoKQpAQCAtNzcsNSArNTksMyBAQCBmdW5jdGlvbiBjaGVja0Io
KQogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1uYW1l
LWFyZ3VtZW50LXJlcXVpcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanMKaW5kZXgg
OTFkOWE3YWE2YWViNTI4MTA5ODhhNDVhNTBhZmUxMmE1NmNmMTY1Yy4uYjcyYzI2YmIyZmJmYWZk
NmRiNGVmMTdiN2I2NjJiMGY0MzQxMzg3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVx
dWlyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2Ny
ZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanMKQEAgLTUsMzEgKzUsMTAg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIgY3JlYXRlT2JqZWN0U3RvcmUgbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZCIpOwogCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gb3BlblN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKICAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFu
ZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUo
KQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzaG91bGRUaHJvdygi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoKTsiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVz
dCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0
U3RvcmUtbnVsbC1uYW1lLmpzCmluZGV4IDM1ZDdjMDk1ODAyZjE0N2E0YTMwY2QyNzFlZDE3ZWM1
N2Y0YjJkZjEuLjBiNjA4YTg2ZGNlMTY5YTVlZGUzMjJjM2JhNGYwMWZmOWNlZWM5YjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmpl
Y3RTdG9yZS1udWxsLW5hbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcwpAQCAtNSwzMiArNSwxMSBA
QCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QiBjcmVhdGVPYmplY3RTdG9yZSBudWxsIGhhbmRsaW5nIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNl
KCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3Bl
blN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmpl
Y3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCi17Ci0gICAgZGVs
ZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
ICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwp
OyIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JqZWN0U3RvcmUubmFtZSIsICJudWxs
Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCmluZGV4IDc0ZGRiYzQwMjY4ZTA3ZTFhMWE0
ZjhiYmJkNzI2YWM1YjhmNGRjOWYuLjM3ZGZkM2Y3Y2FlNTQxYWVkYTZjY2MyY2I5NmQ4ZTRjODFh
YzRmZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3ItYWRkZWQtYnVnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCkBAIC01LDMzICs1LDEzIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNvciBp
dGVyYXRlcyBjb3JyZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTsK
IAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWRl
bGV0ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3Bl
blN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5DdXJzb3IpOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJk
Yi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBz
ZXRWZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQotewotICAgIHRyYW5z
ID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7CiAg
ICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9u
Y29tcGxldGUgPSBvcGVuQ3Vyc29yOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsK
IAogICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFk
ZCgxLCAxKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2N1cnNvci1hZHZhbmNlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2N1cnNvci1hZHZhbmNlLmpzCmluZGV4IDY4NjhhNzVjNjgxNDU4ODU3ZmRmYzIy
N2EzNTBhZDFmMTg2YjMzYTUuLmZhODY2MGRkNTY0NTI5OGM0OGUxYTBkZGMxMTVmY2VhYzRlZjg2
YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItYWR2YW5jZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWFkdmFuY2UuanMKQEAgLTI3LDM4ICsyNywyMCBAQCB2YXIgaW5kZXhEYXRh
ID0gWwogICAgIHsgbmFtZTogIndlaWdodCIsIGtleVBhdGg6ICJ3ZWlnaHQiLCBvcHRpb25zOiB7
IHVuaXF1ZTogZmFsc2UgfSB9CiBdOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCBvbk9wZW4pOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsK
LSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIG5hbWUgPSB3aW5kb3cubG9jYXRpb24u
cGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CiAgICAgb2JqZWN0U3RvcmVOYW1lID0gIlBlb3BsZSI7Ci0KLSAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmpl
Y3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7Iik7CisgICAg
Y3JlYXRlSW5kZXhlcygpOwogfQogCi1mdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZShyZXF1ZXN0
KQorZnVuY3Rpb24gb25PcGVuKCkKIHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwot
ICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgIG9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZShvYmplY3RTdG9yZU5hbWUpOyIpOwotICAgIGNyZWF0ZUluZGV4ZXMoKTsKLSAgICB0cmFucy5v
bmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coInRyYW5zID0gZGIu
dHJhbnNhY3Rpb24ob2JqZWN0U3RvcmVOYW1lLCAncmVhZHdyaXRlJykiKTsKLSAgICAgICAgZXZh
bEFuZExvZygib2JqZWN0U3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUp
Iik7Ci0gICAgICAgIHBvcHVsYXRlT2JqZWN0U3RvcmUoKTsKLSAgICB9OworICAgIGV2YWxBbmRM
b2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24ob2JqZWN0U3RvcmVOYW1lLCAncmVhZHdyaXRlJyki
KTsKKyAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKG9iamVj
dFN0b3JlTmFtZSkiKTsKKyAgICBwb3B1bGF0ZU9iamVjdFN0b3JlKCk7CiB9CiAKIGZ1bmN0aW9u
IHBvcHVsYXRlT2JqZWN0U3RvcmUoKQpAQCAtNDAyLDUgKzM4NCwzIEBAIGZ1bmN0aW9uIHRlc3RE
ZWxldGUoKQogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU2Vjb25kOwogICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQotCi10ZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNv
bnRpbnVlLWRpci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItY29udGludWUtZGlyLmpzCmluZGV4IGJmZWMwZWJjN2FmNzRjOTdiMTJmYWEwOGJhNWEy
ZDJhNzc0NWI0ZGIuLmI3YjRkMDYyMTYxNjA5NjE2OTY3ZTIyODQwMDM4Y2YxODEzMjYwNTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
Y29udGludWUtZGlyLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItY29udGludWUtZGlyLmpzCkBAIC01LDM0ICs1LDE0IEBAIGlmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBjb250aW51ZSgpIGNhbGxz
IGFnYWluc3QgY3Vyc29ycyBhcmUgdmFsaWRhdGVkIGJ5IGRpcmVjdGlvbi4iKTsKIAotZnVuY3Rp
b24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdEN1cnNvcnMpOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSki
KTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICBy
ZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0g
ICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7Ci0g
ICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICAgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsK
LSAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgICAgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICB0cmFucy5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0KLSAgICAgICAgICAgICAgICBldmFsQW5k
TG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAg
ICAgICAgZm9yIChpID0gMTsgaSA8PSAxMDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGV2
YWxBbmRMb2coInN0b3JlLnB1dCgiICsgaSArICIsIiArIGkgKyAiKSIpOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB0ZXN0Q3Vyc29yczsK
LSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKSIpOworICAgIGZvciAoaSA9IDE7IGkgPD0gMTA7ICsraSkgeworICAgICAgICBldmFs
QW5kTG9nKCJzdG9yZS5wdXQoIiArIGkgKyAiLCIgKyBpICsgIikiKTsKKyAgICB9CiB9CiAKIGZ1
bmN0aW9uIHRlc3RDdXJzb3JzKCkKQEAgLTcxLDUgKzUxLDMgQEAgZnVuY3Rpb24gdGVzdFJldmVy
c2VDdXJzb3IoKQogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9OwogfQotCi10ZXN0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vy
c29yLWNvbnRpbnVlLXZhbGlkaXR5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS5qcwppbmRleCBhZGZlOGM3MThlNWM2
N2M1MmIzNzUwMmI3YmEyNjI5NmExNDRjMWM1Li5lNGQwY2ZhYWI2MzEzYzQ1MTg1ZmQ4ZWRlMGMz
ZDY5NWFlYWY3NWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUtdmFsaWRpdHkuanMKQEAg
LTExLDM2ICsxMSwxNCBAQCB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAvLyBpZiB3ZSdyZSBpbiBh
IHByZS1mZXRjaGVkIHN0YXRlIG9yIG5vdAogc2VsZi50ZXN0TGVuZ3RoID0gMjU7CiAKLWZ1bmN0
aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJl
cGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIG9wZW5E
YXRhYmFzZSgpOwotfQotCi1mdW5jdGlvbiBvcGVuRGF0YWJhc2UoKQotewotICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3ItY29udGludWUnKSIpOwotICAgIHJl
c3VsdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oKQotewotICAgIHNl
bGYuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
c3VsdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICBy
ZXN1bHQub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQot
ewotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2VsZi50cmFucyA9IGV2
YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxk
QmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKIAotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzZWxmLm9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RT
dG9yZScpIik7CiAgICAgc2VsZi5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3Jl
LmNyZWF0ZUluZGV4KCdzb21lSW5kZXgnLCAneCcpIik7CiAgICAgc2VsZi5uZXh0VG9BZGQgPSAw
OwpAQCAtMTc2LDUgKzE1NCwzIEBAIGZ1bmN0aW9uIG1vZGlmeUNvbnRpbnVlT3JkZXJDYWxsYmFj
aygpCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0KLQotdGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250
aW51ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
Y29udGludWUuanMKaW5kZXggNWY1YWUzNWJkYmE2ODdmYmJjY2ZiYWMwODQyYzhkODAwN2FmMTkx
NC4uNjlmZTQ1YmNiMWU5YTg5OTE4ZmQzMTYzMmIyZDE4YWZkN2Q3ZWI4YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS5q
cworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNv
bnRpbnVlLmpzCkBAIC0yOSwzNiArMjksMTQgQEAgc2VsZi50ZXN0RGF0YSA9IFsKICAgICAidGhl
IEJJR0dFU1Qgc3RyaW5nIgogXTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHBy
ZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgb3BlbkRhdGFiYXNlKCk7Ci19Ci0KLWZ1bmN0aW9uIG9w
ZW5EYXRhYmFzZSgpCi17Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
J2N1cnNvci1jb250aW51ZScpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247
Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gc2V0VmVyc2lvbigpCi17Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVy
c2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlz
dGluZzsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCi17Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7CiAgICAgdHJh
bnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCi0gICAgZGVsZXRlQWxsT2Jq
ZWN0U3RvcmVzKGRiKTsKLQogICAgIHNlbGYub2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykiKTsKICAgICBzZWxmLmluZGV4T2Jq
ZWN0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3NvbWVJbmRleCcsICd4
JykiKTsKICAgICBzZWxmLm5leHRUb0FkZCA9IDA7CkBAIC0yNjYsNSArMjQ0LDMgQEAgZnVuY3Rp
b24gb25UcmFuc2FjdGlvbkNvbXBsZXRlKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJj
dXJzb3IuY29udGludWUoKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFD
VElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2N1cnNvci1kZWxldGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWRlbGV0ZS5qcwppbmRleCA0MjVmZjc3YWUxODJkYmM3
YmFkOTQyMDA1OTBkOTIwYTljZTc5MWY4Li4yNmM0OGExNDQ1N2RhZTE2OGRhYjFhOGUwMjE1NTIx
MWYzNzA0YWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWRlbGV0ZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3Vyc29yLWRlbGV0ZS5qcwpAQCAtNSwzNCArNSwxNCBAQCBpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJz
b3IuIik7CiAKLXRlc3QoKTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2N1
cnNvci1kZWxldGUnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0
aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJz
aW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9u
U3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJl
RGF0YWJhc2UsIG9wZW5DdXJzb3IpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKKyAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNz
KCk6Iik7CiAgICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwogICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKICAgICB0cmFucy5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IG9w
ZW5DdXJzb3I7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgdmFyIG9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgndGVzdCcpIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdteVZhbHVlMScs
ICdteUtleTEnKSIpOwpAQCAtMTAyLDQgKzgyLDQgQEAgZnVuY3Rpb24gdmVyaWZ5T2JqZWN0RGVs
ZXRlZCgpCiB7CiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5kZWZpbmVk
Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1
cnNvci1pbmNvbnNpc3RlbmN5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2N1cnNvci1pbmNvbnNpc3RlbmN5LmpzCmluZGV4IDVmMjQ4ODIwN2FjNWFiZDBmZjIz
NDA0MDkyOTM0NDU1MzAxZjYxNDMuLjM5MmQ1MTRhNWE2NDg1ODM0YzBmNWJkNzRmMTMwNmVmMjk0
MTRkYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3ItaW5jb25zaXN0ZW5jeS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWluY29uc2lzdGVuY3kuanMKQEAgLTUsNDEgKzUsMjAgQEAg
aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBjb25zaXN0ZW5j
eSBvZiBJbmRleGVkREIncyBjdXJzb3Igb2JqZWN0cy4iKTsKIAotdGVzdCgpOwotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWluY29uc2lzdGVuY3knKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsK
LSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVy
c2lvblN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5CYXNpY0N1
cnNvcik7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxm
LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAg
c2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Iik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1
bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkJhc2lj
Q3Vyc29yOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAogICAgIHZhciBvYmpl
Y3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J2Jhc2ljU3RvcmUnKSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnc29tZVZh
bHVlMScsICdzb21lS2V5MScpLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOwog
ICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnc29tZVZhbHVlMicsICdzb21lS2V5Micp
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOwogICAgIGV2YWxBbmRMb2coIm9i
amVjdFN0b3JlLmFkZCgnc29tZVZhbHVlMycsICdzb21lS2V5MycpLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjayIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnc29t
ZVZhbHVlNCcsICdzb21lS2V5NCcpLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIp
OwotCiB9CiAKIGZ1bmN0aW9uIG9wZW5CYXNpY0N1cnNvcigpCkBAIC04Miw0ICs2MSw0IEBAIGZ1
bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNv
bXBsZXRlKCkiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWluZGV4LWRlbGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5kZXgtZGVsZXRlLmpzCmluZGV4IGQxYWU5Njk3YzFjZmMz
Y2NkN2VhMmZkNGY2ZjA4YjczNTAyMDRhMTMuLjQzMzJiOTQwZjAwZDAyODI5NDhkZjEwYWQ0NTg1
YzViOTYyZmY5YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9jdXJzb3ItaW5kZXgtZGVsZXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5kZXgtZGVsZXRlLmpzCkBAIC01LDM1ICs1LDE1
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3Mgb3BlbkN1cnNvci4iKTsKIAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3BlbignY3Vyc29yLWluZGV4LWRlbGV0ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitp
bmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2Uo
KQogewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMg
PSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0g
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIp
OwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICB0cmFu
cy5vbmNvbXBsZXRlID0gb3BlbkN1cnNvcjsKIAotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNy
ZWF0ZUluZGV4KCd0ZXN0SW5kZXgnLCAneCcpIik7CiAKQEAgLTEwNiw0ICs4Niw0IEBAIGZ1bmN0
aW9uIHZlcmlmeU9iamVjdERlbGV0ZWQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQu
cmVzdWx0IiwgInVuZGVmaW5lZCIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwotfQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9jdXJzb3Ita2V5LW9yZGVyLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1rZXktb3JkZXIuanMKaW5kZXggZWRjZTU4MGYy
ZTZmMTc4ZjBiMWM4ZTUyZTg5ZmE5Nzc2M2E3ZmNlYy4uZmRlMTU5YzcyZjExNDBiYTIyM2U5YWM3
M2FiNTIxMzRmNzlkYWNjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2N1cnNvci1rZXktb3JkZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1rZXktb3JkZXIuanMKQEAgLTUsMzEgKzUsMTEg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIga2V5cyBvcmRlcmluZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwogCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcHJlcGFyZURh
dGFiYXNlKCk7Ci19Ci0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBwb3B1bGF0ZVN0
b3JlKTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIiIpOwotICAg
IGRlbGV0ZVJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2N1
cnNvci1rZXktb3JkZXInKSIpOwotICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24g
KCkgewotICAgICAgICBldmFsQW5kTG9nKCJvcGVucmVxID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNv
ci1rZXktb3JkZXInKSIpOwotICAgICAgICBvcGVucmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICAgICAgb3BlbnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIGV2YWxBbmRMb2coImRiID0gb3BlbnJlcS5yZXN1bHQiKTsKLSAgICAgICAgICAg
IGV2YWxBbmRMb2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAg
dmVycmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHZl
cnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9n
KCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgICAgIHZlcnJl
cS5yZXN1bHQub25jb21wbGV0ZSA9IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgICAgICB9OwotICAg
ICAgICB9OwotICAgIH07CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiB9CiAKIHNlbGYua2V5cyA9
IFsKQEAgLTIyNSw1ICsyMDUsMyBAQCBmdW5jdGlvbiB0ZXN0S2V5Q29tcGFyZSgpCiAgICAgICAg
IH0KICAgICB9CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXBy
ZXYtbm8tZHVwbGljYXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS5qcwppbmRleCAyYjA4MzNiYzcyMDYwM2EzZjhj
ZWQyZjRjMGU3NTQxNjQyNWQ5NDA1Li44MmRkMjkyM2Y4M2U4NzU3ZmE4YTUwMjU0NTYxOGEzYWQx
Y2JiYTYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUuanMKQEAgLTUsMzEg
KzUsMTIgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIgYmVoYXZpb3Igd2hlbiBpdGVyYXRpbmcgYmFja3dhcmRzIHdpdGggYW5kIHdpdGhv
dXQgTk9fRFVQTElDQVRFIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRv
clByZWZpeGVzKCk7Ci0KLSAgICBwcmVwYXJlRGF0YWJhc2UoKTsKLX0KLQoraW5kZXhlZERCVGVz
dChwcmVwYXJlRGF0YWJhc2UsIHBvcHVsYXRlU3RvcmUpOwogZnVuY3Rpb24gcHJlcGFyZURhdGFi
YXNlKCkKIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZXZhbEFuZExvZygib3BlbnJlcSA9IGluZGV4
ZWREQi5vcGVuKCdjdXJzb3ItcHJldi1uby1kdXBsaWNhdGUnKSIpOwotICAgIG9wZW5yZXEub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIG9wZW5yZXEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZXZhbEFuZExvZygiZGIgPSBvcGVucmVxLnJlc3Vs
dCIpOwotICAgICAgICBldmFsQW5kTG9nKCJ2ZXJyZXEgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsK
LSAgICAgICAgdmVycmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAg
ICAgdmVycmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLSAgICAgICAgICAgIHN0b3JlID0gZXZhbEFuZExv
Zygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAg
ZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3NvcnRlZCcpIik7Ci0gICAg
ICAgICAgICB2ZXJyZXEucmVzdWx0Lm9uY29tcGxldGUgPSBwb3B1bGF0ZVN0b3JlOwotICAgICAg
ICB9OwotICAgIH07CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHN0b3JlID0g
ZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAg
IGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdzb3J0ZWQnKSIpOwogfQog
CiBmdW5jdGlvbiBwb3B1bGF0ZVN0b3JlKCkKQEAgLTIzMiw1ICsyMTMsMyBAQCBmdW5jdGlvbiBy
dW5UZXN0KG9wZW5DdXJzb3IsIGV4cCkKIAogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLXRlc3Qo
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmltYXJ5LWtl
eS1vcmRlci5qcwppbmRleCAwMTE5ZGVkZTNjMTliNGJkNzYyM2NjMDczOGQ4OGRkNjIyMDdhYzRh
Li5jYmM1NzMyMjkzZGRlNWQzNGRlNzcwYWVmZTAxMDhjYmJkOGYxNjUzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByaW1hcnkta2V5
LW9yZGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuanMKQEAgLTUsMzIgKzUsMTIgQEAgaWYgKHRoaXMuaW1w
b3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgcHJpbWFyeSBrZXkg
b3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4iKTsKIAotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHByZXBhcmVEYXRhYmFzZSgp
OwotfQotCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgcG9wdWxhdGVTdG9yZSk7CiBm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWxldGVS
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdjdXJzb3ItcHJp
bWFyeS1rZXktb3JkZXInKSIpOwotICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24g
KCkgewotICAgICAgICBldmFsQW5kTG9nKCJvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdj
dXJzb3ItcHJpbWFyeS1rZXktb3JkZXInKSIpOwotICAgICAgICBvcGVuUmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZXZhbEFuZExvZygiZGIgPSBvcGVuUmVxdWVz
dC5yZXN1bHQiKTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25DaGFuZ2VSZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAgICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICB2ZXJzaW9u
Q2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBl
dmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAg
ICAgICAgICAgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgn
LCAnaW5kZXhLZXknKSIpOwotICAgICAgICAgICAgICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0LnJl
c3VsdC5vbmNvbXBsZXRlID0gcG9wdWxhdGVTdG9yZTsKLSAgICAgICAgICAgIH07Ci0gICAgICAg
IH07Ci0gICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExv
Zygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgIGV2YWxBbmRM
b2coImluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ2luZGV4S2V5JykiKTsKIH0K
IAogc2VsZi5rZXlzID0gWwpAQCAtOTcsNSArNzcsMyBAQCBmdW5jdGlvbiBjaGVja1N0b3JlKCkK
ICAgICAgICAgfQogICAgIH07CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLXJldmVyc2UtYnVnLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2N1cnNvci1yZXZlcnNlLWJ1Zy5qcwppbmRleCAzYzJkNTEzZTJjYmE0MWM3M2Y2OWU3
YTIzYmYyY2Y2MzQ0N2Q2YTNhLi5hOTUwNmI5YjRlMDYwNzFlYTc5OGUxMDA2YTk0ZTBlYWJlZGJh
ZDEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLXJldmVyc2UtYnVnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItcmV2ZXJzZS1idWcuanMKQEAgLTUsMjkgKzUsMTIgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBv
cmRlcmluZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcHJlcGFyZURhdGFiYXNlKCk7
Ci19Ci0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBwb3B1bGF0ZVN0b3JlKTsKIGZ1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGV2YWxBbmRM
b2coIm9wZW5yZXEgPSBpbmRleGVkREIub3BlbignY3Vyc29yLXJldmVyc2UtYnVnJykiKTsKLSAg
ICBvcGVucmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICBvcGVucmVx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5y
ZXEucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxBbmRMb2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24o
JzEnKSIpOwotICAgICAgICB2ZXJyZXEub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotICAgICAgICB2ZXJyZXEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBk
ZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotICAgICAgICAgICAgc3RvcmUgPSBldmFsQW5kTG9n
KCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBl
dmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnJykiKTsKLSAgICAgICAgICAg
IHZlcnJlcS5yZXN1bHQub25jb21wbGV0ZSA9IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgIH07Ci0g
ICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc3RvcmUgPSBldmFsQW5k
TG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFu
ZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJycpIik7CiB9CiAKIGZ1bmN0aW9uIHBv
cHVsYXRlU3RvcmUoKQpAQCAtOTcsNSArODAsMyBAQCBmdW5jdGlvbiB0ZXN0Q3Vyc29yKCkKICAg
ICBpbmRleEtleVJlcSA9IGV2YWxBbmRMb2coImluZGV4S2V5UmVxID0gaW5kZXgub3BlbktleUN1
cnNvcihJREJLZXlSYW5nZS51cHBlckJvdW5kKHRlc3QudXBwZXJCb3VuZCwgdGVzdC5vcGVuKSwg
J3ByZXYnKSIpOwogICAgIGluZGV4S2V5UmVxLm9uc3VjY2VzcyA9IHRlc3RGdW5jdGlvbjsKIH0K
LQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3Itc2tpcC1kZWxldGVkLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lwLWRl
bGV0ZWQuanMKaW5kZXggNjM2MDA3NDg2ZmVhZTAzZDQyMDg2M2MyOTFlM2IyZjRkYTA4ZDRmNy4u
ZTY1MzA1MmRhNDY1MjEyZGNiZDIyYjZjMGYyZjJkMTU5OGIxZjg1NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lwLWRlbGV0ZWQu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1z
a2lwLWRlbGV0ZWQuanMKQEAgLTEwLDM0ICsxMCwxNCBAQCB2YXIgbmFtZXMgPSBbJ0FscGhhJywg
J0JyYXZvJywgJ0NoYXJsaWUnLCAnRGVsdGEnLCAnRWNobycsICdGb3h0cm90JywgJ0dvbGYnLAog
ICAgICAgICAgICAgICdPc2NhcicsICdQYXBhJywgJ1F1ZWJlYycsICdSb21lbycsICdTaWVycmEn
LCAnVGFuZ28nLCAnVW5pZm9ybScsCiAgICAgICAgICAgICAgJ1ZpY3RvcicsICdXaGlza2V5Jywg
J1gtcmF5JywgJ1lhbmtlZScsICdadWx1J107CiAKLXRlc3QoKTsKLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1za2lwLWRlbGV0ZWQnKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICB2YXIg
ZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nl
c3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIGJhc2ljQ3Vyc29yVGVzdCk7Citm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2VsZi50cmFu
cyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAg
c2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gYmFzaWNDdXJzb3JUZXN0Owot
Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAogICAgIHZhciBvYmplY3RTdG9yZSA9
IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJywg
e2tleVBhdGg6ICdpZCd9KSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCduYW1lSW5kZXgnLCAnbmFtZScpIik7CkBAIC0xOTAsNCArMTcwLDQgQEAgZnVuY3Rpb24g
dHJhbnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxldGUo
KToiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJl
cXVpcmVkLmpzCmluZGV4IDE3YjUxZDk3ZGIzZjQwM2Q2ZmUyMzM2YmM1ZjMwNzExZjFjZTJmODMu
LjJjZTMwYTdjZjY2YWFlN2IwMmJiZGE2NWU0ZjA1YjkzYzU3ODI4MGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLXZhbHVl
LWFyZ3VtZW50LXJlcXVpcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpzCkBAIC01
LDI5ICs1LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGN1cnNvci51cGRhdGUgcmVxdWlyZWQgYXJndW1lbnRzIik7CiAKLWZ1bmN0
aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJl
cGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2Vz
czsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9
IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdGVzdEdyb3Vw
MTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gdGVzdEdyb3VwMSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsK
LQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhdXRvSW5jcmVtZW50JywgeyBhdXRvSW5jcmVt
ZW50OiB0cnVlIH0pOyIpOwogCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBv
YmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7Iik7CkBAIC02OCw1ICs0OSwzIEBAIGZ1bmN0aW9uIHRl
c3RHcm91cDMoKQogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9Ci0KLXRlc3QoKTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXVwZGF0ZS5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLmpzCmluZGV4IDc4OWU2MmQ4
OWM3ZTU2ODU5NWJlZTJkZjhhMDRkYThmYzA0ZjhjMjEuLmFiNWY0MWM3Y2I5YTE4YzI4MTRmZWIx
ZWJiMTVmZjRjN2Q2NTM3NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLmpzCkBAIC01LDI5ICs1LDEyIEBAIGlm
ICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mg
Y3Vyc29yIHVwZGF0ZS4iKTsKIAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbignY3Vyc29yLXVwZGF0ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJU
ZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3Mo
KToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7CisgICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRy
YW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICB0cmFucy5vbmNvbXBs
ZXRlID0gb3BlbkJhc2ljQ3Vyc29yOwpAQCAtMjMyLDQgKzIxNSw0IEBAIGZ1bmN0aW9uIHRyYW5z
YWN0aW9uQ29tcGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRlKCkiKTsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29y
LXZhbHVlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci12YWx1ZS5qcwppbmRleCA5MWVmZTg3NDExOWRhMTdmZWMzNmVkNmVlNWVjMDQyZjdiMDc1OGM5
Li5kZDY4NjZhODI1ZGJjNDdhZWU1ODkwN2E2YTBhOGY4MmMzN2FkNTdkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXZhbHVlLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdmFsdWUu
anMKQEAgLTUsMjUgKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlw
dGlvbigiVGVzdCBJbmRleGVkREIncyBjdXJzb3IgdmFsdWUgcHJvcGVydHkuIik7CiAKLXJlbW92
ZVZlbmRvclByZWZpeGVzKCk7Ci1vcGVuRGF0YWJhc2UoKTsKLQotZnVuY3Rpb24gb3BlbkRhdGFi
YXNlKCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCB0ZXN0Q3Vyc29yKTsKK2Z1bmN0
aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKCdjdXJzb3ItdmFsdWUnKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgZXZh
bEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICAg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgICAgICB0cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0
ZXN0Q3Vyc29yOwotICAgICAgICB9OwotICAgIH07CisgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiB9
CiAKIGZ1bmN0aW9uIHRlc3RDdXJzb3IoKQpAQCAtMTIxLDQgKzEwNyw0IEBAIGZ1bmN0aW9uIGVu
c3VyZU1vZGlmaWNhdGlvbnNOb3RQZXJzaXN0ZWQoKQogICAgICAgICBzaG91bGRCZSgiY3Vyc29y
LnZhbHVlLmZvbyIsICJ1bmRlZmluZWQiKTsKICAgICB9OwogICAgIHRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSBmaW5pc2hKU1Rlc3Q7Ci0gfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0
YS1jb3JydXB0aW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2RhdGEtY29ycnVwdGlvbi5qcwppbmRleCAyYTA4YmYxZDQzOGRlNWY3YTg0ZjUwMzlmOThjNDcz
Y2E1NzEwNjA0Li45ZDdlOTU5MDljOTE1OGQ2N2Y0ZTUzOTM1NDdkNjVlMDRjMGUxNjhmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YS1jb3Jy
dXB0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9k
YXRhLWNvcnJ1cHRpb24uanMKQEAgLTUsMzMgKzUsMTQgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGRhdGEgaW5zZXJ0ZWQgaW50byBJbmRleGVk
REIgZG9lcyBub3QgZ2V0IGNvcnJ1cHRlZCBvbiBkaXNrLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbignZGF0YS1jb3JydXB0aW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9w
ZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24o
J25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNj
ZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRh
YmFzZSwgYWRkRGF0YSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsK
LSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7CisgICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0g
YWRkRGF0YTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAKICAgICBldmFsQW5k
TG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKIH0KQEAgLTYxLDUgKzQy
LDMgQEAgZnVuY3Rpb24gZG9DaGVjaygpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1
bHQueC50b1N0cmluZygpIiwgInRlc3REYXRlLnRvU3RyaW5nKCkiKTsKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxl
dGVwZW5kaW5nLWZsYWcuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZGF0YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLmpzCmluZGV4IGUxYWMxMDg0NTVhODYzYzE1
M2I3OWEzMzNkMDRmZWNjMjYzODg3ZTkuLjc3MzdiMzk2ZjhmN2I1YjhmZGYzNjE2MjliNThmYjRk
N2VhZmJkYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5qcwpA
QCAtNSwzNyArNSwxMiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQiBJREJEYXRhYmFzZSBpbnRlcm5hbCBkZWxldGUgcGVuZGluZyBmbGFn
Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRl
c3REYXRhYmFzZURlbGV0ZSwgNSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBldmFsQW5kTG9nKCJkYm5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lIik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuQ29ubmVjdGlv
bjsKLX0KLQotZnVuY3Rpb24gb3BlbkNvbm5lY3Rpb24oKQotewotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZygiT3BlbiBhIGNvbm5lY3Rpb24gYW5kIHNldCBhIHNlbnRpbmVsIHZlcnNpb246Iik7
Ci0gICAgZXZhbEFuZExvZygidmVyc2lvbiA9ICcxMCciKTsKLSAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOwot
ICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVjdGlvbi5zZXRWZXJzaW9uKHZlcnNp
b24pIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0
cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgICAgICAgICAgc2hvdWxkQmUoImNvbm5lY3Rpb24udmVy
c2lvbiIsICJ2ZXJzaW9uIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgiY29ubmVj
dGlvbi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIsICIxIik7Ci0gICAgICAgICAgICB0cmFucy5v
bmNvbXBsZXRlID0gdGVzdERhdGFiYXNlRGVsZXRlOwotICAgICAgICB9OwotICAgIH07CisgICAg
Y29ubmVjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygiY29ubmVj
dGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgIHNob3VsZEJlKCJjb25uZWN0
aW9uLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjEiKTsKIH0KIAogZnVuY3Rpb24gdGVzdERh
dGFiYXNlRGVsZXRlKCkKQEAgLTg2LDUgKzYxLDMgQEAgZnVuY3Rpb24gdGVzdERhdGFiYXNlRGVs
ZXRlKCkKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfTsKIH0KLQotdGVzdCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZUlu
ZGV4LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZUlu
ZGV4LmpzCmluZGV4IDY3MzRmZWUyZTNhMjI5NWVhNzRkYzZiMWEzODRjODA3N2Q2MWIxN2YuLmI0
OGM1OTRlMDQyOWU5MDY5ZmIwYWI0YTc3OWE1YTEwYWNlN2NmZWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVJbmRleC5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlSW5kZXguanMKQEAg
LTUsMzEgKzUsMTAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIgZGVsZXRlSW5kZXggbWV0aG9kIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHBvc3RUd2lkZGxpbmcpOworZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZGVsZXRlSW5kZXgnKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsK
LSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHR3aWRkbGVJbmRleGVzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiB0d2lkZGxlSW5kZXhl
cygpCi17Ci0gICAgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7Iik7Ci0gICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwotICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKLSAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gcG9zdFR3aWRkbGluZzsKLSAg
ICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigib2Jq
ZWN0U3RvcmUuZGVsZXRlSW5kZXgoJ2ZpcnN0JykiLCAiRE9NRXhjZXB0aW9uLk5PVF9GT1VORF9F
UlIiLCAiJ05vdEZvdW5kRXJyb3InIik7CiAgICAgc2hvdWxkVGhyb3coIm9iamVjdFN0b3JlLmRl
bGV0ZUluZGV4KCkiKTsgLy8gVHlwZUVycm9yOiBub3QgZW5vdWdoIGFyZ3VtZW50cy4KQEAgLTQ2
LDUgKzI1LDMgQEAgZnVuY3Rpb24gcG9zdFR3aWRkbGluZygpCiAgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigib2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoJ3NlY29uZCcpIiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yJyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3Rv
cmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcwppbmRleCAwMzY3YmJmNmUxNDI5MTJmMWNjM2Y1
NjRkOTk1OGVhM2QzYTg1Nzc3Li4xMjM4N2U5YzIzNzFiN2IxZmI3MGQwY2U4ZjU1NzgxYWUyOGIx
NmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
ZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1h
cmd1bWVudC1yZXF1aXJlZC5qcwpAQCAtNSwzMSArNSwxMCBAQCBpZiAodGhpcy5pbXBvcnRTY3Jp
cHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBkZWxldGVPYmplY3RTdG9yZSBy
ZXF1aXJlZCBhcmd1bWVudCIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJl
cGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3Zl
VmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAg
ICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jl
cyhkYik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgc2hvdWxkVGhyb3co
ImRiLmRlbGV0ZU9iamVjdFN0b3JlKCk7Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRl
c3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1l
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZU9iamVj
dFN0b3JlLW51bGwtbmFtZS5qcwppbmRleCBiYWE2MzE3N2QyMzRjMjZlMGNmZDg1NDM5Y2RhNDg1
NDdjZTAyMzk3Li4wYjJlNDk3NGYxMzM0NTMyOGY5OTZjNjhkYWMzZTZkOTlmNTAyNWVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2Jq
ZWN0U3RvcmUtbnVsbC1uYW1lLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuanMKQEAgLTUsMzIgKzUsMTIg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIgZGVsZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQiKTsKIAotZnVuY3Rpb24gdGVz
dCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2Vs
Zi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
Lm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlv
biBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbmRQb3B1bGF0
ZU9iamVjdFN0b3JlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotfQotCi1mdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKLXsKLSAg
ICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKIAogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdudWxsJyk7Iik7CiAg
ICAgZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUobnVsbCk7Iik7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlZC1v
YmplY3RzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0
ZWQtb2JqZWN0cy5qcwppbmRleCA4NGU1ZDYyZWM1YzJjYjJmNDIyYmM4OTczM2YwOGYyNzM2NWUw
ZWIwLi43MmVlZmU1ZjU4Njc0NTk2ZTA2MDY1ZGZhNjU1YzkzNzljMWM0YzgwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlZC1vYmplY3Rz
LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVk
LW9iamVjdHMuanMKQEAgLTUsODAgKzUsNjAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewog
CiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IEluZGV4ZWREQiBvYmplY3RzIHRoYXQgaGF2ZSBiZWVu
IGRlbGV0ZWQgdGhyb3cgZXhjZXB0aW9ucyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWRE
QlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0g
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICBldmFsQW5kTG9nKCJkYm5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lIik7Ci0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuRGF0YWJhc2U7
Ci19CisgICAgdHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CisgICAgY29ubmVjdGlv
biA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAKLWZ1bmN0aW9uIG9wZW5EYXRhYmFzZSgpCi17CiAg
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuRGF0YWJhc2UoKToiKTsKLSAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24gPSByZXF1ZXN0LnJl
c3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVjdGlvbi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAgIGV2YWxBbmRMb2coImRlbGV0ZWRTdG9y
ZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ2RlbGV0ZWRTdG9yZScpIik7CisgICAg
ZXZhbEFuZExvZygic3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScp
Iik7CisgICAgZXZhbEFuZExvZygiZGVsZXRlZEluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2Rl
bGV0ZWRJbmRleCcsICdwYXRoJykiKTsKIAotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAg
ICAgICAgZXZhbEFuZExvZygiZGVsZXRlZFN0b3JlID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RT
dG9yZSgnZGVsZXRlZFN0b3JlJykiKTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0g
Y29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgZXZh
bEFuZExvZygiZGVsZXRlZEluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2RlbGV0ZWRJbmRleCcs
ICdwYXRoJykiKTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZXZhbEFu
ZExvZygiY29ubmVjdGlvbi5kZWxldGVPYmplY3RTdG9yZSgnZGVsZXRlZFN0b3JlJykiKTsKLSAg
ICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLmRlbGV0ZUluZGV4KCdkZWxldGVkSW5kZXgnKSIp
OworICAgIGRlYnVnKCIiKTsKKyAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uLmRlbGV0ZU9iamVj
dFN0b3JlKCdkZWxldGVkU3RvcmUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmRlbGV0ZUlu
ZGV4KCdkZWxldGVkSW5kZXgnKSIpOwogCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUucHV0KDAsIDApIiwgIkRP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0g
ICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuYWRkKDAsIDAp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZGVs
ZXRlKDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRl
RXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3Rv
cmUuZGVsZXRlKElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NU
QVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZ2V0KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZ2V0KElEQktleVJhbmdlLm9ubHkoMCkpIiwg
IkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7
Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY2xlYXIo
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9w
ZW5DdXJzb3IoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRT
dGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRl
ZFN0b3JlLm9wZW5DdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwg
IidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdl
Lm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVk
U3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAg
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY3JlYXRlSW5kZXgoJ25h
bWUnLCAncGF0aCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkU3RvcmUuaW5kZXgoJ25hbWUnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIi
LCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigiZGVsZXRlZFN0b3JlLmRlbGV0ZUluZGV4KCduYW1lJykiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudCgpIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY291bnQoMCkiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAg
ICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudChJREJLZXlS
YW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFs
aWRTdGF0ZUVycm9yJyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkZWxldGVkU3RvcmUucHV0KDAsIDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRF
X0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZFN0b3JlLmFkZCgwLCAwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9F
UlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
ImRlbGV0ZWRTdG9yZS5kZWxldGUoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
ZWxldGVkU3RvcmUuZGVsZXRlKElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmdldCgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJ
RF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRTdG9yZS5nZXQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY2xlYXIoKSIsICJET01FeGNlcHRp
b24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKCkiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3BlbkN1cnNvcigwKSIsICJET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKDAsICduZXh0Jyki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3BlbkN1cnNvcihJ
REJLZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRTdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY3JlYXRlSW5kZXgoJ25hbWUnLCAn
cGF0aCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRl
RXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmluZGV4
KCduYW1lJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZGVs
ZXRlSW5kZXgoJ25hbWUnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0lu
dmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRT
dG9yZS5jb3VudCgpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3Jl
LmNvdW50KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNv
dW50KElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CiAKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAg
ICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29y
KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJv
ciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5v
cGVuQ3Vyc29yKDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkSW5kZXgub3BlbkN1cnNvcigwLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NU
QVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDAp
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9w
ZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5W
QUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoKSIsICJET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAg
ICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJz
b3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRl
eC5vcGVuS2V5Q3Vyc29yKDAsICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVf
RVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCkp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3Bl
bktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0KDApIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0KElEQktleVJhbmdlLm9u
bHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRl
RXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5k
ZXguZ2V0S2V5KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkSW5kZXguZ2V0S2V5KElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZB
TElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguY291bnQoKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmNvdW50KDApIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAg
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguY291bnQoSURCS2V5UmFu
Z2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NU
QVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHko
MCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJy
b3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJz
b3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKCkiLCAiRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcigwKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKDAsICduZXh0JykiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
KyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcihJ
REJLZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0KDApIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmdldChJREJLZXlSYW5nZS5vbmx5KDAp
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXRLZXkoMCki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0S2V5KElEQktl
eVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52
YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZElu
ZGV4LmNvdW50KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgu
Y291bnQoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguY291
bnQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKIAotICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9
IGZpbmlzaEpTVGVzdDsKLSAgICAgICAgfTsKLSAgICB9OworICAgIHRyYW5zLm9uYWJvcnQgPSB1
bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFucy5vbmNvbXBsZXRlID0gZmluaXNoSlNU
ZXN0OwogfQotCi10ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBhYjA4NjRmYTZkYWJmNDMxNmYyNDg2NWM2NDUyMDQ4
NmUyODM1OWMzLi5kMWEwNGI3OTRmZjQwOGI1OWU4ZTgzYjM3MTkwMjRkOGFmZDRhZTZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMK
QEAgLTE3MiwzICsxNzIsMjMgQEAgaWYgKCFzZWxmLkRPTUV4Y2VwdGlvbikgewogICAgICAgICBE
QVRBX0NMT05FX0VSUjogMjUKICAgICB9OwogfQorCitmdW5jdGlvbiBpbmRleGVkREJUZXN0KHVw
Z3JhZGVDYWxsYmFjaywgb3B0aW9uYWxPcGVuQ2FsbGJhY2ssIG9wdGlvbmFsVmVyc2lvbikgewor
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAg
ICB2YXIgZGVsZXRlUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpIik7CisgICAgZGVsZXRlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgZGVsZXRlUmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHZhciBvcGVuUmVxdWVzdDsKKyAgICAgICAgaWYgKG9wdGlvbmFsVmVyc2lvbikKKyAg
ICAgICAgICBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSwg
IiArIG9wdGlvbmFsVmVyc2lvbiArICIpIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBvcGVu
UmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICAgICAg
b3BlblJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICBv
cGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlQ2FsbGJhY2s7CisgICAgICAgIG9w
ZW5SZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICAg
IGlmIChvcHRpb25hbE9wZW5DYWxsYmFjaykKKyAgICAgICAgICAgIG9wZW5SZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IG9wdGlvbmFsT3BlbkNhbGxiYWNrOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJv
cnQuanMKaW5kZXggYzY4OGI2MzQ4ZThlNWRlNjJhYTZlMjE1ZTc5YTFmM2QzZmM2MmFiZS4uN2Mx
N2E5YTIzN2Q5ZDY5MTc0ZDk1NWMyYWI1ZTEwYWM0NjIyMDgzOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0LmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1h
Ym9ydC5qcwpAQCAtNSwzNCArNSwxMCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRl
c2NyaXB0aW9uKCJUZXN0IHRyYW5zYWN0aW9uIGFib3J0cyBzZW5kIHRoZSBwcm9wZXIgb25hYm9y
dCBtZXNzYWdlcy4uIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJl
RGF0YWJhc2UsIHN0YXJ0VGVzdCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oJ25hbWUnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lv
bjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gc2V0VmVyc2lvbigpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJz
aW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlz
dGluZzsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0K
LQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQotewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3Vj
Y2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMu
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIGV2YWxBbmRMb2coInRyYW5z
Lm9uY29tcGxldGUgPSBzdGFydFRlc3QiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgc3RvcmUgPSBldmFsQW5k
TG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOwog
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enon
fSwgJ2tleScpIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CkBAIC05NSw1ICs3MSwzIEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQWJvcnRlZCgpCiAgCiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LWV4cGVjdGVkLnR4dApp
bmRleCA4OWFkNzY3NWMyZGNkYmQzMTBkNmRhZTY4ZTM5MmUzMGYyNjI4ZWE3Li5mOGQ4YTkxZTMx
ZmE4OGE4OGJhMjViYmZkMzRjNjk4OWJmZmFhMmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgdHJhbnNhY3Rpb24gYWJvcnRzIHNlbmQgdGhlIHBy
b3BlciBvbmFib3J0IG1lc3NhZ2VzLi4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAt
NiwxNCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Blbign
bmFtZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJz
aW9uJykKLXNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi10cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0Ci1E
ZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gInRyYW5zYWN0aW9uLWFib3J0Lmh0
bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0
b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykKIHRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oWydzdG9yZU5hbWUnXSwgJ3JlYWR3cml0ZScpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173367</attachid>
            <date>2012-11-09 14:31:58 -0800</date>
            <delta_ts>2012-11-12 10:07:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101676-20121109143006.patch</filename>
            <type>text/plain</type>
            <size>300509</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODE0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGYzYzQyOTdmZjg3NmUyMGIxNDJh
YjE3NTRiOGRkYTMyOWMzN2VkZC4uNzIwMTkzNDNlNjVmYzJjNTQxNmY2ZGRmOWI0MTExODZkNmI3
ZDM2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTExLTA5ICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IGNvbnZlcnQgdGVzdHMg
ZnJvbSBzZXRWZXJzaW9uIHRvIHVwZ3JhZGVuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgbGEgYnVnIDkyMDM3LCBhZGQgYSBmdW5jdGlvbiB0
byBzaGFyZWQuanMgdGhhdCBzZXRzIHVwIHRoZSBkYXRhYmFzZQorICAgICAgICBmb3IgdGVzdHMg
d2hlcmUgb3BlbmluZyBhbmQgdmVyc2lvbmluZyBpc24ndCB0aGUgZm9jdXMuCisKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUt
YXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICAg
Li4ubWFueSB0ZXN0cyBhbmQgZXhwZWN0ZWQgZmlsZXMuLi4KKworICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanM6CisgICAgICAgICAgVGhlIG5ldyB1dGlsaXR5
IGZ1bmN0aW9uIGluZGV4ZWREQlRlc3QgbGl2ZXMgaGVyZS4KKworICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTExLTA3ICBE
aXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHVwZGF0ZSBjaHJvbWl1bS1tYWMtbW91bnRhaW5saW9uIGJhc2VsaW5lcyBmb3IgY3NzMi4xCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0
b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCAzODNiYTlhMzQ3
OGFmZGM5YTA1ZThmZWRmYWJlYjZhYzhmYjkyMDI1Li40OTMzZDY5YmE3MjJiNTZiMmQzMTRmYWZi
MTJiNjM0YTkxMWRiOThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBjcmVhdGVPYmplY3RT
dG9yZSdzIHZhcmlvdXMgb3B0aW9ucwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02
LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdj
cmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1y
ZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBz
dG9yZXMuCitkYm5hbWUgPSAiY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmh0bWwiCitpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ2EnLCB7a2V5UGF0aDogJ2EnfSkKIGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdiJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdjJywge2F1dG9JbmNyZW1lbnQ6IHRydWV9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVj
dFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJl
ZC1leHBlY3RlZC50eHQKaW5kZXggZWY4ZWUwZDdkNjVlYWY0Yzk5NzA3MTRlY2FlMGJkN2FkMjUx
ZGY0OS4uN2VkZTk1NjQ4YjRhODAxNzlmODA4NGE1MjUzYTRjNzkyZGFhNGViZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1h
cmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3JlYXRlT2JqZWN0U3Rv
cmUgbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CkBAIC02LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIu
b3BlbihuYW1lKQorZGJuYW1lID0gImNyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVx
dWlyZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIu
b3BlbihkYm5hbWUpCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBQQVNTIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3Rv
cmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCBhM2Y1MWUzYmJmMDIwZGExZmM1NzBjNmEw
NzYyNDYwZmJlODBmZWMyLi5mZTFkMDViNWM5MDI4ZjI0YzFkYmYzOTI5NWYxMzkyYzFiMWY4ZWFl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RT
dG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1z
dGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVu
dCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3JlYXRlT2JqZWN0U3RvcmUgbnVsbCBoYW5kbGlu
ZwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVj
dCBzdG9yZXMuCitkYm5hbWUgPSAiY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwiCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQog
ZGIuY3JlYXRlT2JqZWN0U3RvcmUobnVsbCk7CiBQQVNTIG9iamVjdFN0b3JlLm5hbWUgaXMgIm51
bGwiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWRkZWQtYnVnLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0
CmluZGV4IGQyMjI5OWM4MDIzZDYxM2U2NTBhODJiOWQyNzMyOGEzOTdlNDM2MDAuLjQ0ZTYzM2Y4
MzY2MWU5YTIxNTYyMGM4Nzk3NzJkOTBjZmQzNGY5MDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGN1cnNvciBpdGVyYXRlcyBjb3Jy
ZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVyaW5nIGl0ZXJhdGlvbi4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgpAQCAtNiwxMiArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1kZWxldGUnKQotZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKK2RibmFtZSA9ICJjdXJzb3ItYWRkZWQtYnVnLmh0bWwiCitpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQordHJhbnMgPSBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBv
YmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcp
CiBvYmplY3RTdG9yZS5hZGQoMSwgMSkKIG9iamVjdFN0b3JlLmFkZCgyLCAyKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkdmFuY2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkdmFuY2UtZXhwZWN0
ZWQudHh0CmluZGV4IDZmZGM2ZTc1YmYyYmQxMTlhYjMwODNiMjFiMWI1ZDdlNzhkYTIxYjQuLmJk
OTA5NDUxNDk5Nzg4OWRkOTc2ZmE1OTk3MzU2MjE1MWU4ODNkYjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWR2YW5jZS1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3Vyc29yLmFkdmFuY2UoKS4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMiArNSw5IEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0
SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2Vs
Zi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotb3BlblN1Y2Nlc3MoKToKLWRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2RibmFtZSA9
ICJjdXJzb3ItYWR2YW5jZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUob2JqZWN0U3RvcmVOYW1lKTsKIE5vdyBjcmVhdGUgdGhlIGluZGV4ZXMuCiBvYmplY3RTdG9y
ZS5jcmVhdGVJbmRleChpbmRleERhdGFbaV0ubmFtZSwgaW5kZXhEYXRhW2ldLmtleVBhdGgsIGlu
ZGV4RGF0YVtpXS5vcHRpb25zKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci1leHBlY3RlZC50eHQKaW5kZXggZDAx
ZGQ3NzM2MjhlOTZmNDE2YjBlMTkyNWNkNDE5NDBhY2JiY2UwMC4uMjgyYTQ4N2RhMWJmNzMyODYw
ZWE3ZDRhZjkxMzY5YzVmNWQ0NWU0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlz
IG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVk
IiBldmVudCBpbnN0ZWFkLgogVGVzdCB0aGF0IGNvbnRpbnVlKCkgY2FsbHMgYWdhaW5zdCBjdXJz
b3JzIGFyZSB2YWxpZGF0ZWQgYnkgZGlyZWN0aW9uLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJjdXJzb3ItY29udGludWUtZGlyLmh0
bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQotcmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKLWRiID0gcmVxdWVzdC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJzEnKQor
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmUnKQogc3RvcmUucHV0KDEsMSkKIHN0b3JlLnB1dCgyLDIpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dApp
bmRleCAwYTYyMGI2YzE4ZWJiMWY5ODZmY2I2MjE1ZDVlYjQyZmVlOWJhOTRiLi4yOTBkY2Y1OGJh
MzY4NTRmOTUwNzcxODJjNDJlZjBlYzJmZWJmOGNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlz
IG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVk
IiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBJREJDdXJzb3IuY29udGludWUoKSB3
aXRoIGEga2V5IHBhcmFtZXRlci4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwx
MiArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignY3Vy
c29yLWNvbnRpbnVlJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbign
bmV3IHZlcnNpb24nKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlz
IG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjdXJzb3It
Y29udGludWUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykK
IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdzb21lSW5kZXgnLCAneCcpCiBvYmplY3RTdG9yZS5h
ZGQoeyd4JzogdGVzdERhdGFbbmV4dFRvQWRkXX0sIG5leHRUb0FkZCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUt
dmFsaWRpdHktZXhwZWN0ZWQudHh0CmluZGV4IDZjOTZhMzc2ZWQyYTA2YzY2YWJkMDg5ODZiYTI0
YTQxYTFmMjg4MDguLmVhZGZhNWY0YjZiNmI3YTMwZmYzYmRlN2MyZjQwMjhjMmVmMTIyMzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS12
YWxpZGl0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNP
TlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFu
ZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQu
CiBUZXN0IEluZGV4ZWREQidzIElEQkN1cnNvci5jb250aW51ZSgpIGJlaGF2aW9yIHdoZW4gY2Fs
bGVkIGJleW9uZCBub3JtYWwgc2NvcGUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAg
LTYsMTIgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVu
KCdjdXJzb3ItY29udGludWUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJz
aW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2RibmFtZSA9
ICJjdXJzb3ItY29udGludWUtdmFsaWRpdHkuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCit0cmFucyA9IGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBz
dG9yZXMuCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykKIG9iamVjdFN0
b3JlLmNyZWF0ZUluZGV4KCdzb21lSW5kZXgnLCAneCcpCiBvYmplY3RTdG9yZS5hZGQoeyd4Jzog
MCB9LCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItZGVsZXRlLWV4cGVjdGVkLnR4dAppbmRleCA0OGQzNzVhZmFiYTg4MmE4YTA4NjBjZTVhZmU5
ZWQ5YTU1OGEzMzdlLi44OTU1MzAyNTRjYzkwZGY0NWJkNWMwMDUwMDkzNmRkOGIwMzEwMWIwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVs
ZXRlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNl
dFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVz
ZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIG9w
ZW5DdXJzb3IuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTMgKzUsMTIgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRl
JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KQorZGJuYW1lID0gImN1cnNvci1kZWxldGUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzZXRWZXJzaW9uU3VjY2VzcygpOgog
dHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3Rlc3QnKQogb2JqZWN0U3RvcmUuYWRkKCdteVZhbHVlMScsICdteUtleTEnKQogb2JqZWN0
U3RvcmUuYWRkKCdteVZhbHVlMicsICdteUtleTInKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQu
dHh0CmluZGV4IGU2YTNjOWM4N2M2MzkwN2U4Y2E3MzIzMzIxMmJhNDEzMDI4NzZhOGQuLmIzNjJj
MDdjMDJiZjJiNjA5YzdkNzA4MTQwZmY1N2Q2OGExZTI5ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJz
aW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhl
ICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBjb25zaXN0ZW5jeSBvZiBJbmRl
eGVkREIncyBjdXJzb3Igb2JqZWN0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAt
NiwxMyArNSwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4o
J2N1cnNvci1pbmNvbnNpc3RlbmN5JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKQorZGJuYW1lID0gImN1cnNvci1pbmNvbnNpc3RlbmN5Lmh0
bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQogc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
dHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9uLW51bGwu
Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnYmFzaWNTdG9yZScpCiBvYmplY3RTdG9yZS5hZGQoJ3NvbWVWYWx1ZTEnLCAnc29t
ZUtleTEnKS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2sKIG9iamVjdFN0b3JlLmFk
ZCgnc29tZVZhbHVlMicsICdzb21lS2V5MicpLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWlu
ZGV4LWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
dXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dAppbmRleCBlYTg4NTkzYTdhNTk1OWZkYTQw
N2FiYjUyOTNlMzU4MjhjMThmZDE4Li43YTM1OTFjM2Q4OGY0OTRmZmVhY2RmYTE4YjBiM2RlODZm
ZWVkYjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
aW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNP
TlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFu
ZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQu
CiBUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KQEAgLTYsMTMgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWRE
Qi5vcGVuKCdjdXJzb3ItaW5kZXgtZGVsZXRlJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
ZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5z
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGJuYW1lID0gImN1cnNvci1pbmRleC1kZWxldGUuaHRt
bCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5h
bWUpCit0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24t
bnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCd0ZXN0JykKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCd0ZXN0SW5kZXgn
LCAneCcpCiBvYmplY3RTdG9yZS5hZGQoe3g6IDF9LCAnbXlLZXkxJykKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1rZXktb3JkZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3Rl
ZC50eHQKaW5kZXggNzkzNWNkMTAwYzM0NjBjNmM5ZjMzNTEyODhhZmIzZTgxYjg5N2Q3OS4uM2U5
MzAyYTY5NmNiYjA0ZTE3ZTNiZDViODUzOTRiZGRjZGFhOWIyNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmluZyBh
bmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBA
IC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLQotaW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKCdjdXJzb3Ita2V5LW9yZGVyJykKLW9wZW5yZXEgPSBpbmRleGVkREIub3Bl
bignY3Vyc29yLWtleS1vcmRlcicpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci12ZXJyZXEgPSBkYi5z
ZXRWZXJzaW9uKCcxJykKK2RibmFtZSA9ICJjdXJzb3Ita2V5LW9yZGVyLmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIAogcG9wdWxhdGluZyBzdG9yZS4uLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmV2
LW5vLWR1cGxpY2F0ZS1leHBlY3RlZC50eHQKaW5kZXggYWY3NDI3ZjA4OTkyYWZkZTFiMzRmNWZm
NzRlYmJhYmNjZmMyZTAwNC4uNzZmZDA4NjNiZjg1NmViMDNlMzk0NTY1NGEzYmZhNzVmMzcyMDlh
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYt
bm8tZHVwbGljYXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRh
cmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5z
dGVhZC4KIFRlc3QgSW5kZXhlZERCIGJlaGF2aW9yIHdoZW4gaXRlcmF0aW5nIGJhY2t3YXJkcyB3
aXRoIGFuZCB3aXRob3V0IE5PX0RVUExJQ0FURQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLQotb3BlbnJlcSA9
IGluZGV4ZWREQi5vcGVuKCdjdXJzb3ItcHJldi1uby1kdXBsaWNhdGUnKQotZGIgPSBvcGVucmVx
LnJlc3VsdAotdmVycmVxID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgorZGJuYW1lID0gImN1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRl
eCcsICdzb3J0ZWQnKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4dAppbmRl
eCBhMWY3OWJiMzk3OGU5YWVmZjNjYWM5YzRhN2NhNjYzNWU4ZTM0MzY4Li5iNWVkYTc0NDZjYzdk
M2M0ODlhMDhmODMwZWNhNTYzYzgzNjYwODk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJz
aW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhl
ICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgcHJpbWFyeSBr
ZXkgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4KIAogT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgpAQCAtNiwxMSArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGlu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi0K
LWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyJykKLW9w
ZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1wcmltYXJ5LWtleS1vcmRlcicpCi1k
YiA9IG9wZW5SZXF1ZXN0LnJlc3VsdAotdmVyc2lvbkNoYW5nZVJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykKK2RibmFtZSA9ICJjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbCIKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBpbmRleCA9IHN0b3JlLmNyZWF0ZUlu
ZGV4KCdpbmRleCcsICdpbmRleEtleScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0ZWQudHh0CmluZGV4
IDJlYWI3NGMyZjIxZDFiMDdlYzU3ODk0ZjdlYmM5ZjlkMzk0N2M1Y2UuLmJkYTQ3Mjk2YmY2OGVm
MTkzNmFjOWQ1YmYzZDU5Nzc3YmQxNTJhYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2Qg
aXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVk
ZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBrZXlzIG9yZGVyaW5nIGFuZCByZWFk
YmFjayBmcm9tIGN1cnNvcnMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTEg
KzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1vcGVucmVxID0gaW5kZXhlZERC
Lm9wZW4oJ2N1cnNvci1yZXZlcnNlLWJ1ZycpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci12ZXJyZXEg
PSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUg
PSAiY3Vyc29yLXJldmVyc2UtYnVnLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnKQogc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJycpCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRl
ZC1leHBlY3RlZC50eHQKaW5kZXggZDJmNjU0NTFiNzY2ZTRmOGE2NzA2ODkzNmE0MDcwYWZlMWNh
ZDQ5My4uNTQyOWVmNDI2NWM4OGM2YjllYjExOTUwMzEyZmEwMWVmNWJkOTViYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRlZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAt
ZGVsZXRlZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRo
ZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVk
LiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIn
cyBjdXJzb3Igc2tpcHMgZGVsZXRlZCBlbnRyaWVzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCkBAIC02LDEzICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbignY3Vyc29yLXNraXAtZGVsZXRlZCcpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKK2RibmFtZSA9ICJjdXJzb3Itc2tpcC1kZWxl
dGVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAordHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJhbnMgaXMgbm9u
LW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnLCB7a2V5UGF0aDogJ2lkJ30pCiBvYmplY3RTdG9yZS5jcmVh
dGVJbmRleCgnbmFtZUluZGV4JywgJ25hbWUnKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQudHh0CmluZGV4IDNlYTVi
NmJjZDY4OWQ3ZjI2MjkyYmFjYzViMzdhN2JhZmIzZmVmMjEuLmY0YmMxZTViNjFhYzZjZTIwNWJl
NmI2NWZiMjY2MjMwODA3ZDZiMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAot
Q09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQg
YW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVh
ZC4KIFRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHVwZGF0ZS4KIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgpAQCAtNiwxMSArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5k
ZXhlZERCLm9wZW4oJ2N1cnNvci11cGRhdGUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1k
Yi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCitkYm5hbWUgPSAiY3Vyc29yLXVwZGF0ZS5odG1s
IgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFt
ZSkKIHNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3Ry
YW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNTIHRyYW5zIGlzIG5vbi1udWxsLgog
RGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ2Jhc2ljU3RvcmUnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3Vt
ZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dAppbmRleCBkYTQwNGQ5ZDg1ZmZiNGJiM2Y4NDdiNDRk
MmI5YWM2NDlhMWIwOTljLi42MjRmN2MxMGZmYjc2YzgxODFjNzBlNWUzZDI1MmNiMzA1NzExMTVl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRl
LXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNp
b24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUg
InVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBjdXJzb3IudXBk
YXRlIHJlcXVpcmVkIGFyZ3VtZW50cwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02
LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5h
bWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcx
JykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3Vyc29yLXVwZGF0ZS12
YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhdXRv
SW5jcmVtZW50JywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVzdCA9IG9iamVjdFN0
b3JlLm9wZW5DdXJzb3IoKTsKIGtleXMgPSBbMSwgLTEsIDAsIDEwLCAyMDAwLCAncScsICd6Jywg
J3R3bycsICdiJywgJ2EnXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItdmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4IDk3NGRjZWIxYmE2NDE0M2MzNTdi
MTEwZTMxYjI3MGU3NmM2OTI1NTAuLjQ4MzBhYzE1ZjcyYzdmNzk0ZGJiMDUwMjllZTg2MGEyYTk5
OGEwMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12
YWx1ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLXZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTog
VGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92
ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWRE
QidzIGN1cnNvciB2YWx1ZSBwcm9wZXJ0eS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpA
QCAtNiwxMSArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1yZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oJ2N1cnNvci12YWx1ZScpCi1kYiA9IHJlcXVlc3QucmVzdWx0Ci1yZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJl
c3VsdAotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjdXJzb3ItdmFsdWUu
aHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQogCiB0ZXN0Q3Vyc29yKCk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YS1jb3JydXB0
aW9uLWV4cGVjdGVkLnR4dAppbmRleCA1NWQwMGQ3OGE0MGY1YWVjOWRkYTRiZGVkMDZlYTU5ZGU3
NjVhM2I3Li43YjczOTg1YjgwZGE0Y2E4M2M1MjI1OTg1NTQxOGEwM2U3MjkyNThiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGEtY29ycnVwdGlv
bi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRW
ZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2Ug
dGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCB0aGF0IGRhdGEgaW5zZXJ0
ZWQgaW50byBJbmRleGVkREIgZG9lcyBub3QgZ2V0IGNvcnJ1cHRlZCBvbiBkaXNrLgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDE0ICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1pbmRleGVkREIub3BlbignZGF0YS1jb3JydXB0aW9uJykKLW9wZW5TdWNjZXNz
KCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9u
JykKK2RibmFtZSA9ICJkYXRhLWNvcnJ1cHRpb24uaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzZXRWZXJzaW9uU3VjY2Vzcygp
OgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Cit0cmFucyA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbgogUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIGFkZERhdGEoKToKIHRyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oWydzdG9yZU5hbWUnXSwgJ3JlYWR3cml0ZScpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1kZWxldGVwZW5k
aW5nLWZsYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0
YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLWV4cGVjdGVkLnR4dAppbmRleCA2NmIwNDRjZGU2YzE4
ZjY4YjVhYWFlYTJiMGM5MzVkMWFiOTMzNzYzLi4wNWIyM2U5MjkzMWZjZDU1NmNkODhkNGUyY2My
YWZjNTRjMWY3OWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
YXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgSURCRGF0YWJhc2UgaW50ZXJu
YWwgZGVsZXRlIHBlbmRpbmcgZmxhZwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02
LDE1ICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJkYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuaHRt
bCIKIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCi0KLU9wZW4gYSBjb25uZWN0aW9u
IGFuZCBzZXQgYSBzZW50aW5lbCB2ZXJzaW9uOgotdmVyc2lvbiA9ICcxMCcKLXJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYm5hbWUpCi1jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVl
c3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24odmVyc2lvbikKLVBBU1MgY29ubmVjdGlvbi52ZXJz
aW9uIGlzIHZlcnNpb24KK2luZGV4ZWREQi5vcGVuKGRibmFtZSwgNSkKIGNvbm5lY3Rpb24uY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIFBBU1MgY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVz
Lmxlbmd0aCBpcyAxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2RlbGV0ZS1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9kZWxldGUtcmFuZ2UtZXhwZWN0ZWQudHh0CmluZGV4IDQ4MWYwZTA1MDQ1YjhjMGVmNTBmMDU4
MTI1YmNiMDU0MDA1YWQ3ZjIuLjRjMTRmYTQ4MjM0ZDM5ZWE4ZDNhMmI3MGIwNjgzZDE0Njc1OTk2
NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1yYW5n
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRl
LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhl
IHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQu
IFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidz
IElEQk9iamVjdFN0b3JlLmRlbGV0ZShJREJLZXlSYW5nZSkgbWV0aG9kLgogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLXJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RlbGV0ZS1yYW5nZScpCi1y
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZS1yYW5nZScpCi1kYiA9IHJlcXVlc3QucmVz
dWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi10cmFucyA9IHJlcXVlc3QucmVzdWx0
CitkYm5hbWUgPSAiZGVsZXRlLXJhbmdlLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0
b3JlJykKIAogdHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZHdyaXRlJykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVj
dGVkLnR4dAppbmRleCA5ODc3ZTFhYjBmZTA1MDkwYjdhZDRhNDg0MTRjNzRiNGYxZTkwMmM0Li5h
OTk2YWMyMzBkOWJhZjIyNTg1ZDFhMDM3ZmRiMGIwZTg1MTMwYzg2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRleC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlSW5kZXgtZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBp
cyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRl
ZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGRlbGV0ZUluZGV4IG1ldGhvZAogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdkZWxldGVJbmRleCcpCi1kYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zYWN0aW9uID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUg
PSAiZGVsZXRlSW5kZXguaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdmb28nKTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBvYmplY3RTdG9yZS5kZWxldGVJbmRl
eCgnZmlyc3QnKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQt
cmVxdWlyZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKaW5kZXgg
Njg3YTJkNWI5ZmMzMzI4ZTFiOTA3YmM5YzRmM2VjODdlMDJiMWE1MC4uYTdhOTU4MDc5OGY3NjQ4
ZjE3NDNlZmJkYjc2ZGVkNjRlMzc1NjhlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0
U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFy
ZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0
ZWFkLgogVGVzdCBJbmRleGVkREIgZGVsZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0
SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2Vs
Zi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgorZGJuYW1lID0gImRlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWly
ZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCiBQQVNTIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCk7IHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAppbmRl
eCA3OWUxM2VmY2IyMjNhMmQ4NzAwMTRkNGI1M2NhYWQ4MzQxMzgwZmVlLi4wYThjODBiODdlMjM1
NGY5OWZhZGRmNWY2ZTQyZDVkNzhjMzY0NzlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwt
bmFtZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgZGVs
ZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQKIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImRlbGV0
ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdudWxs
Jyk7CiBkYi5kZWxldGVPYmplY3RTdG9yZShudWxsKTsKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0
ZWQtb2JqZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGVkLW9iamVjdHMtZXhwZWN0ZWQudHh0CmluZGV4IDdiZTc4Yzk1ZjJmZmJlYWYzZDcyNTgy
NjRhYTU4NTI4M2I0YTI2Y2MuLmYxZTk0MTg0NGE0YTM1NGU2MDM5YjgyOTJlMWY0ZmFlNWIxMTJm
NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQtb2Jq
ZWN0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlZC1vYmplY3RzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJl
bW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IHRoYXQg
SW5kZXhlZERCIG9iamVjdHMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCB0aHJvdyBleGNlcHRpb25z
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTMgKzUsOSBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKIAotZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQotcmVxdWVz
dCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCi0KLW9wZW5EYXRhYmFzZSgpOgot
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLWNvbm5lY3Rpb24gPSByZXF1ZXN0LnJl
c3VsdAotcmVxdWVzdCA9IGNvbm5lY3Rpb24uc2V0VmVyc2lvbignMScpCitkYm5hbWUgPSAiZGVs
ZXRlZC1vYmplY3RzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogCiBkZWxldGVkU3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9i
amVjdFN0b3JlKCdkZWxldGVkU3RvcmUnKQogc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdC1leHBlY3Rl
ZC50eHQKaW5kZXggNDdmYzdhNjZhZmJmNjFjMzA1YmMxOGI2NzY5NjRkNzQ0YWFiMjM1Mi4uMjJi
MWI5ZjllZTFmYjlkOGQ0Yzg1NWE0OTZiNjJjMzNlYzllYTljYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Vycm9yLWNhdXNl
cy1hYm9ydC1ieS1kZWZhdWx0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUg
TUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxs
IGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBWZXJp
ZnkgdGhhdCBhIHRyYW5zYWN0aW9uIHdpdGggYW4gZXJyb3IgYWJvcnRzIHVubGVzcyBwcmV2ZW50
RGVmYXVsdCgpIGlzIGNhbGxlZC4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwx
NCArNSwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2Vy
cm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
ZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQorZGJuYW1lID0gImVycm9yLWNhdXNlcy1hYm9y
dC1ieS1kZWZhdWx0Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAordHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1MgdHJh
bnMgaXMgbm9uLW51bGwuCi10cmFucy5vbmNvbXBsZXRlID0gYWRkRGF0YQotRGVsZXRlZCBhbGwg
b2JqZWN0IHN0b3Jlcy4KIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQog
dHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlTmFtZSddLCAncmVhZHdyaXRlJykKIHRyYW5z
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJv
cnRzLWV4cGVjdGVkLnR4dAppbmRleCA0NjM5YzU5YjEwOTk1YjkzZDUwZDlkMmM1YTM4NjNhMzQ5
NmRhNTJmLi4wNzhmYjk3NDhmMTM0MTA3ZTI4N2Q2ZjI3Zjk0MGI1Y2NkMThmNmEyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJv
cnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNl
cHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKLUNPTlNP
TEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNTc6IFVuY2F1Z2h0IHRoaXMgZXhjZXB0aW9uIGlzIGV4cGVj
dGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTc6IFVuY2F1Z2h0IHRoaXMgZXhjZXB0aW9uIGlz
IGV4cGVjdGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzU6IFVuY2F1Z2h0IHRoaXMgZXhjZXB0
aW9uIGlzIGV4cGVjdGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzU6IFVuY2F1Z2h0IHRoaXMg
ZXhjZXB0aW9uIGlzIGV4cGVjdGVkCiBUZXN0IGV4Y2VwdGlvbnMgaW4gSURCUmVxdWVzdCBoYW5k
bGVycyBjYXVzZSBhYm9ydHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTgsMTQg
KzcsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2V4Y2Vw
dGlvbi1pbi1ldmVudC1hYm9ydHMnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRW
ZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotdHJhbnMub25jb21wbGV0
ZSA9IHN0YXJ0VGVzdAotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJleGNl
cHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAn
a2V5JykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0LWtl
eXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldC1r
ZXlyYW5nZS1leHBlY3RlZC50eHQKaW5kZXggYzM5NjIzNWE5NWYzYWQyNTQ5ZDk5ZmE4NzFiOGYy
YTkzMWY0NTU0Yi4uMGFmNzM2MTEyMDc4ODEwODJkZTM5Njc1Yjk5MjQ3NmNmODE3NzY4OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0LWtleXJhbmdlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9nZXQta2V5cmFuZ2Ut
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgSURCT2Jq
ZWN0U3RvcmUuZ2V0KElEQktleVJhbmdlKSBtZXRob2QuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KQEAgLTYsMTIgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhl
ZERCLm9wZW4oJ2N1cnNvci1jb250aW51ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRi
LnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
UEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5h
bWUgPSAiZ2V0LWtleXJhbmdlLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmpl
Y3RTdG9yZScpCiBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgnc29tZUluZGV4JywgJ3gnKQogb2Jq
ZWN0U3RvcmUuYWRkKHsneCc6IDAgfSwgMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IGYzZTdiNDI0MWY1
NjNkZDQ0YzM1NGU5ODY2MTUzNTBmZTQxYjVkMDQuLjE4MTg0ZTIwNTRjMDllN2JhNzc1ZGYyMDRm
OTQxMmJmMjdkZGNkOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUg
TUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxs
IGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0
IHRoZSBiYXNpY3Mgb2YgSW5kZXhlZERCJ3Mgd2Via2l0SURCSW5kZXguCiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KQEAgLTYsMTMgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWluZGV4ZWREQi5vcGVuKCdpbmRleC1iYXNpY3MnKQotZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgot
dHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJpbmRleC1iYXNpY3MuaHRtbCIKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCisK
K3ByZXBhcmVEYXRhYmFzZSgpOgogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51
bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQogc3RvcmUuY3JlYXRlSW5k
ZXgoJ2luZGV4TmFtZTInLCAneScsIHt1bmlxdWU6IGZhbHNlfSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy13b3JrZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy13b3JrZXJzLWV4
cGVjdGVkLnR4dAppbmRleCBmMjcwNmE4ZDgxMjgxMDIyNWQ0N2M0Y2Q0ZWQ5YTA4YTJjZjE4YmQx
Li4xNjg3Yjc3NjE5MmE4NzU1ZjllZDE3MGM4NzI1MjFiNmQ2ZGIyOTQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mtd29ya2Vycy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLXdv
cmtlcnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUg
c2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4g
VXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFtXb3JrZXJdIFRlc3QgdGhl
IGJhc2ljcyBvZiBJbmRleGVkREIncyB3ZWJraXRJREJJbmRleC4KIAogT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgpAQCAtNywxMyArNiwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogU3Rh
cnRpbmcgd29ya2VyOiByZXNvdXJjZXMvaW5kZXgtYmFzaWNzLmpzCiBbV29ya2VyXSBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIFtXb3JrZXJd
IAotW1dvcmtlcl0gaW5kZXhlZERCLm9wZW4oJ2luZGV4LWJhc2ljcycpCi1bV29ya2VyXSBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLVtXb3JrZXJdIGRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9u
JykKLVtXb3JrZXJdIHNldFZlcnNpb25TdWNjZXNzKCk6Ci1bV29ya2VyXSB0cmFucyA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKLVBBU1MgW1dvcmtlcl0gdHJhbnMgaXMgbm9uLW51bGwuCi1bV29ya2Vy
XSBEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorW1dvcmtlcl0gZGJuYW1lID0gImluZGV4LWJh
c2ljcy5qcyIKK1tXb3JrZXJdIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitbV29y
a2VyXSBpbmRleGVkREIub3BlbihkYm5hbWUpCitbV29ya2VyXSAKK1tXb3JrZXJdIHByZXBhcmVE
YXRhYmFzZSgpOgogW1dvcmtlcl0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51
bGwpCiBbV29ya2VyXSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQogW1dvcmtl
cl0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZTInLCAneScsIHt1bmlxdWU6IGZhbHNlfSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LWV4
cGVjdGVkLnR4dAppbmRleCA5ZGFhM2RiODY1ZTA1NTkwMDI0MzUxYTcyZWJlYTM3MWEwY2RiMGRk
Li41ODg0MjE0ZTJiMjM5ZjQ5OGIzZjIzOGRlY2E5NmI1ZDgwZWM4MDJkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jb3VudC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY291bnQtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgSURCSW5kZXguY291bnQoKS4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxNCArNSw5IEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0
SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2Vs
Zi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignaW5kZXgtY291bnQnKQotZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi0KLXByZXBhcmlu
ZyBkYXRhYmFzZQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5v
bi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJpbmRleC1jb3Vu
dC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwp
CiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJycpCiBQQVNTIHN0b3JlLmluZGV4TmFt
ZXMuY29udGFpbnMoJ2luZGV4TmFtZScpIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3ItZXhwZWN0ZWQudHh0CmluZGV4IDFlYTUx
MDQxMzRlZDQ5ZTFhMDJmNmZiNDAyNGM4ZTAzYjhlMmQ4YzAuLmY2ZWU5N2ViMDBhM2RiYTljZDc0
Y2NmNjdlZjZhYTkwYmQ1NGVlNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LWN1cnNvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNP
TlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFu
ZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQu
CiBUZXN0IEluZGV4ZWREQidzIHdlYmtpdElEQkluZGV4Lm9wZW5DdXJzb3IgKyB0aGUgY3Vyc29y
IGl0IHByb2R1Y2VzIGluIGRlcHRoLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02
LDEyICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdp
bmRleC1jdXJzb3InKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCdu
ZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMg
bm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImluZGV4LWN1
cnNvci5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lT2JqZWN0U3RvcmUnKQogb2Jq
ZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3NvbWVJbmRleCcsICd4JykKIG9iamVjdFN0b3JlLmFkZCh7
J3gnOiB0ZXN0RGF0YVtuZXh0VG9BZGRdfSwgbmV4dFRvQWRkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtZHVwbGljYXRlLWtleXBhdGhzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWR1cGxpY2F0ZS1rZXlw
YXRocy1leHBlY3RlZC50eHQKaW5kZXggM2U1ZDYwZDFkN2IyOWMzMjNiM2NiMTA4NDEzZjVmNDQz
ZjQwODQ2Ni4uMDI0NDgzMThiYjhiMzc3MjEzN2QzY2EwOWI1YTkyZGNkYjAxZjlhMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtZHVwbGljYXRlLWtleXBh
dGhzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1kdXBsaWNhdGUta2V5cGF0aHMtZXhwZWN0ZWQudHh0CkBAIC02LDEwICs2LDkgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdzdG9yZS1pbmRleC1jb2xsaXNp
b24nKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiaW5kZXgtZHVwbGljYXRlLWtleXBhdGhz
Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnY29sbGlkZVdpdGhJbmRleCcs
IHtrZXlQYXRoOiAnZm9vJ30pCiBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdmb28nLCAnZm9v
JykKIG9iamVjdFN0b3JlLnB1dCh7Zm9vOiAxMH0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbmRleC1nZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1l
bnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CmluZGV4IGJjMDlkNTJmOGYzY2EzNDFlMGE3MDk1ZDY2
YTllMDY2ODIzMzBmMGQuLmUzNjcxMjMzZjJhMzc4ZDYxNzA4OWM3NjY4NDE2ZTU1YjFjM2M3YjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWdldC1rZXkt
YXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBp
cyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRl
ZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGluZGV4IC5nZXQoKSByZXF1aXJlZCBh
cmd1bWVudAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJl
ZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsga2V5
UGF0aDogJ2lkJywgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKIGluZGV4ID0gb2JqZWN0U3RvcmUu
Y3JlYXRlSW5kZXgoJ2ZpcnN0JywgJ2ZpcnN0Jyk7CiBQQVNTIGluZGV4LmdldCgpOyB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGIyOTJkMDc4NzdmMWY4OGUxZjNmMDczZDc1ZTUxMDc2NmQ0N2Y1MjAuLjM2ODhlZDljY2Jh
NzIyYzFkNmRkMjdkNDA0YTJkYWJiYmEzZTdjZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0
YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50
IGluc3RlYWQuCiBUZXN0IGZlYXR1cmVzIG9mIEluZGV4ZWREQidzIHVuaXF1ZSBpbmRpY2VzLgog
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEzICs1LDkgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdpbmRleC11bmlxdWUnKQotZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1kZWxldGVFeGlz
dGluZygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1u
dWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJpbmRleC11bmlxdWUu
aHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQogc3RvcmUuY3JlYXRlSW5kZXgo
J2luZGV4JywgJ3gnLCB7dW5pcXVlOiB0cnVlfSkKIHNldFZlcnNpb25Db21wbGV0ZWQoKToKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtleXMtZXhw
ZWN0ZWQudHh0CmluZGV4IDAyNWRjZDE3YzA3ZTQxYWIxOWRiZWE5YTQyMjc2MDQyYTcxY2JkZDEu
LmE3ODQzYTg5NGFiMjY2OGU3ZDBhOGM0NDg0ZGNjMjhhMmJkNjQ3MjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRo
b2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVu
ZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBpbnZhbGlkIGtleXMKIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVz
LgorZGJuYW1lID0gImludmFsaWQta2V5cy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdm
b28nKTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSByZXF1ZXN0ID0gb2JqZWN0U3RvcmUucHV0
KCd2YWx1ZScsIHZvaWQgMCkKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlw
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQt
b3JkZXItYWNyb3NzLXR5cGVzLWV4cGVjdGVkLnR4dAppbmRleCAyM2VjZTYwNTFiZGQyOTcwZWYz
MjM5NjdhYTllZjdhYWM4NGI3OTE4Li42NTYyODk4NTNiMTI0NzhjN2M0M2Y1N2UxYjZhMzc0YzE5
N2Y0MzdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29y
dC1vcmRlci1hY3Jvc3MtdHlwZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlz
IG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVk
IiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIga2V5IGNvbXBhcmlzb24KIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERC
IHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhl
ZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1y
ZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgor
ZGJuYW1lID0gImtleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5odG1sIgoraW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdmb28nKTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoW10sIEluZmluaXR5
KTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoW10sIC1JbmZpbml0eSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRh
dGUtZXhwZWN0ZWQudHh0CmluZGV4IGFhMDM4NGJlMmUyYWI4NGI3OWM4Nzk1ZGJmYjZlNjg2ZTRm
N2JmZDguLjE0NzA5MmE1NWY4ZjEwNWJhYzgzMGY3MzIxOTMwZmRlZDYyNTdhOTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9y
ZGVyLWRhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBU
aGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3Zl
ZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERC
IGtleSBjb21wYXJpc29uCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUs
OSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWRE
QiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1z
SW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJrZXktc29ydC1vcmRlci1kYXRlLmh0
bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOwogZGF0ZTEgPSBuZXcgRGF0ZSgxMDAw
KTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoW10sIGRhdGUxKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5LWV4cGVjdGVkLnR4
dAppbmRleCAxMGFlMjRhNTkyM2IwYmRhMzVmN2E1ZDE2NWE2NzM0NTg5NjZhM2JiLi4xZjA4NDk0
ZDliZDU0NTk2NDhkNmM4YjhmMjI4ZTUzM2Q1NDFhYzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJheS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXktZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBp
cyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRl
ZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIGtleSB0eXBlcwogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci1yZXF1ZXN0ID0g
ZGIuc2V0VmVyc2lvbignMScpCi1wcmVwYXJpbmcgZGF0YWJhc2UKLURlbGV0ZWQgYWxsIG9iamVj
dCBzdG9yZXMuCitkYm5hbWUgPSAia2V5LXR5cGUtYXJyYXkuaHRtbCIKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmUnKTsKIAogdHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVh
ZHdyaXRlJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10
eXBlLWluZmluaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2tleS10eXBlLWluZmluaXR5LWV4cGVjdGVkLnR4dAppbmRleCBlYTA2ZWFhMjFhZTMxMzZlNTY0
MjhkODJkZjZiMjYzMDU1NjlmYmMwLi44MDE2MWNlZTM3YjM5NTA2YzY1NGU1MTk4OTg3NjRlNzBm
N2NkMGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlw
ZS1pbmZpbml0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5LXR5cGUtaW5maW5pdHktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdp
bGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRl
c3QgSW5kZXhlZERCIGtleSB0eXBlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02
LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5h
bWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcx
JykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAia2V5LXR5cGUtaW5maW5p
dHkuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7CiB0ZXN0IGtleSBhcyBpbmZp
bml0eQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChbXSwgSW5maW5pdHkpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcnJheXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcnJheXMtZXhwZWN0
ZWQudHh0CmluZGV4IDBmMWI1NzgyODhhYjUxZTk1ZjM3NjU0ZmM0N2Y1MDRjMWFlYTA1NGYuLjE4
ZTAyYmRiODBkODlmOTkyMzJlODcyMjU4NGJmMzA2ZGYwZTNjOWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYXJyYXlzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5cy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgQXJyYXktdHlwZSBrZXlQYXRo
cwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEyICs1LDkgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgna2V5cGF0aC1hcnJh
eXMnKQotaW5kZXhlZERCLm9wZW4oJ2tleXBhdGgtYXJyYXlzJykKLQotb3BlblN1Y2Nlc3MoKToK
LWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQor
ZGJuYW1lID0gImtleXBhdGgtYXJyYXlzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmUnLCB7a2V5UGF0aDogWydhJywgJ2InXX0pCiBzdG9yZS5jcmVhdGVJbmRleCgn
aW5kZXgnLCBbJ2MnLCAnZCddKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZS13aXRoLWdlbmVyYXRvcicsIHtrZXlQYXRoOiBbJ2EnLCAnYiddLCBh
dXRvSW5jcmVtZW50OiB0cnVlfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2tleXBhdGgtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCBiNzdkYmQyMDJmMDRj
NDIxODQ5ZmQwNjNlZWNhOThlMDI3ZGMzNzhjLi5jOTQ4N2U4MjEzNTYwNGQ3ZmRlMTFmNTY3MDZk
MmFjM2M2NTBhZjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9r
ZXlwYXRoLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIva2V5cGF0aC1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdp
bGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRl
c3QgZm9yIHZhbGlkIGFuZCBpbnZhbGlkIGtleXBhdGhzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KQEAgLTYsMTIgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhl
ZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzEnKQotCi10ZXN0VmFsaWRLZXlQYXRocygpOgotRGVsZXRlZCBhbGwgb2JqZWN0
IHN0b3Jlcy4KK2RibmFtZSA9ICJrZXlwYXRoLWJhc2ljcy5odG1sIgoraW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ25hbWUnKQogUEFTUyBzdG9yZS5rZXlQYXRoIGlzIG51bGwKIERlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleXBhdGgtZWRnZXMtZXhwZWN0ZWQudHh0CmluZGV4IGNkZWVjZDZjNGE3NThl
MTQ5MjRiYTAxMmMyOTAzZTFmZWYxMzA5OTUuLjI5ZDEzMmE3MDc4MGQyMzIwMjdlYmViYzRiOTQz
NGFkYzhhYzdmOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tl
eXBhdGgtZWRnZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2tleXBhdGgtZWRnZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwg
YmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3Qg
SW5kZXhlZERCIGtleVBhdGggZWRnZSBjYXNlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CkBAIC02LDEyICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZSgna2V5cGF0aC1lZGdlcycpCi1pbmRleGVkREIub3Blbigna2V5cGF0aC1l
ZGdlcycpCi0KLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKK2RibmFtZSA9ICJrZXlwYXRoLWVkZ2VzLmh0bWwiCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQog
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlLXdpdGgtcGF0aCcsIHtrZXlQYXRoOiAnZm9vJ30p
CiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUtd2l0aC1wYXRoLWFuZC1nZW5lcmF0b3InLCB7
a2V5UGF0aDogJ2ZvbycsIGF1dG9JbmNyZW1lbnQ6IHRydWV9KQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS1leHBlY3Rl
ZC50eHQKaW5kZXggOGZlZjRhMTgwZGE0ZDcwYjFiODVlN2MwZGYwNGYyZmMyYzNlOWJkYi4uMjMw
ZjFjZDFhZTQwMmEwODRhYTgzYzU3N2RhZTFmM2QwNjRiNWNmNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5LWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24o
KSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVw
Z3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBrZXlQYXRocwogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDkgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0lu
ZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gImtleXBhdGgtZmV0Y2gt
a2V5Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogCiB0ZXN0aW5nIHNpbXBsZSBpZGVudGlmaWVyCiBEZWxldGVkIGFsbCBvYmpl
Y3Qgc3RvcmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5
cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApp
bmRleCBjYWE3OTFlNGQzYzQ1YTRhMjczZTdmMzZjMmJlMWIwMTAyNDFiNWJlLi40YjQ5NTU0YWRk
ODU1NmI2NzExMzkwMmEzOTYzNzIyYWFhNTMwMmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTog
VGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92
ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWRE
QiBrZXlQYXRoIHdpdGggaW50cmluc2ljIHByb3BlcnRpZXMKIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgpAQCAtNiwxMiArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4
ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96
SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoJ2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMnKQotaW5k
ZXhlZERCLm9wZW4oJ2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMnKQotCi1vcGVuU3VjY2Vz
cygpOgotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbign
MScpCitkYm5hbWUgPSAia2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6ICdpZCd9KQogc3RvcmUu
Y3JlYXRlSW5kZXgoJ3N0cmluZyBsZW5ndGgnLCAnc3RyaW5nLmxlbmd0aCcpCiBzdG9yZS5jcmVh
dGVJbmRleCgnYXJyYXkgbGVuZ3RoJywgJ2FycmF5Lmxlbmd0aCcpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDRhNWI5MjU2N2UzOGNlYTA1MzFjN2VmYmY0ODM2ZWQwMDBiNTViZmEuLjMzMGQ0
OTcyODkwMzE5MTAwMzg5NWFhMDViYzAyMTJiZmI1Y2Q5NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1l
dGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFk
ZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIENPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyB0cmFuc2Fj
dGlvbiBtb2RlcyBhcmUgZGVwcmVjYXRlZCBpbiBJREJEYXRhYmFzZS50cmFuc2FjdGlvbi4gVXNl
ICJyZWFkb25seSIgb3IgInJlYWR3cml0ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgdHJh
bnNhY3Rpb24gbW9kZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSURCRGF0YWJhc2UudHJhbnNhY3Rpb24u
IFVzZSAicmVhZG9ubHkiIG9yICJyZWFkd3JpdGUiLgogQ09OU09MRSBNRVNTQUdFOiBOdW1lcmlj
IGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3Blbktl
eUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVl
Ii4KQEAgLTE5LDExICsxOCw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi0KLW9wZW5y
ZXEgPSBpbmRleGVkREIub3BlbignbGVnYWN5LWNvbnN0YW50cycpCi1kYiA9IG9wZW5yZXEucmVz
dWx0Ci12ZXJyZXEgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCitkYm5hbWUgPSAibGVnYWN5LWNvbnN0YW50cy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICd2YWx1ZScp
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3JkZXJp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRl
cmluZy1leHBlY3RlZC50eHQKaW5kZXggMTRkNjlhZDM1YTEzMDI0Y2ZjMWI1N2UyY2FkNWI5ZDNh
MDdkZmM3ZC4uOTY5N2QyMTBjYTRlYWQwNmY3ZWY2ZDE2NDNmZmE0MjU5YWE5OTFiNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJz
aW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhl
ICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBzdHJpbmcgbGlzdCBvcmRlcmlu
ZyBpbiBJbmRleGVkREIuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTcgKzUs
MTMgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKK2RibmFtZSA9ICJsaXN0LW9yZGVyaW5n
Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQogY2hlY2sgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMgdGhlIGNhbm9uaWNhbCBK
UyBzb3J0IG9yZGVyOgogc29ydGVkX29yZGVyID0gZXhwZWN0ZWRfb3JkZXIuc2xpY2UoKTsgc29y
dGVkX29yZGVyLnNvcnQoKQogUEFTUyBhcmVBcnJheXNFcXVhbChzb3J0ZWRfb3JkZXIsIGV4cGVj
dGVkX29yZGVyKSBpcyB0cnVlCiAKLXRlc3RTdG9yZXNBbmRJbmRleGVzKCk6Ci1pbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoJ2xpc3Qtb3JkZXJpbmcnKQotaW5kZXhlZERCLm9wZW4oJ2xpc3Qtb3Jk
ZXJpbmcnKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotUEFTUyBkYi52ZXJzaW9uIGlzIDEKLWRiLnNl
dFZlcnNpb24oJzEnKQotCiBPYmplY3Qgc3RvcmVzOgogZGIuY3JlYXRlT2JqZWN0U3RvcmUoIvCd
hJ4iKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoIu+/vSIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2FkZC10d2ljZS1mYWlsdXJlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1
cmUtZXhwZWN0ZWQudHh0CmluZGV4IDg5YjdlMDNhZWU4Yzg1NmQ3MGI2Y2YxMDIwMGI1MTMyNzBi
OGE1ZjUuLmYzOThiZmZkN2E5ZmE5NGEwZWNjY2JlOGE4YWIwMDI2ZDM0NTg0ZjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1
cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvYWRkLXR3aWNlLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdp
bGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRl
c3QgSW5kZXhlZERCIGJlaGF2aW9yIGFkZGluZyB0aGUgc2FtZSBwcm9wZXJ0eSB0d2ljZQogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCitkYm5hbWUgPSAiYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsKIGtleSA9IDEwCiByZXF1ZXN0ID0gb2JqZWN0U3Rv
cmUuYWRkKHt9LCBrZXkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMtZXhwZWN0
ZWQudHh0CmluZGV4IDdjNDZjY2FiOGMwZTkxMTdjZDMzNWM0MTVkNWQyNTQ1ZDMxNDZjMjAuLmRj
YmMzZjZiOTMxODA0N2FiMmM0YWUzYzY3ZTFlMTI1YzU1ZTNjZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2F1
dG9pbmNyZW1lbnQtaW5kZXhlcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2ls
bCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVz
dCBJbmRleGVkREIgaW5kZXhlcyBhZ2FpbnN0IGF1dG9pbmNyZW1lbnRpbmcga2V5cwogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMu
CitkYm5hbWUgPSAiYXV0b2luY3JlbWVudC1pbmRleGVzLmh0bWwiCitpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogb2JqZWN0U3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnYXV0b2luY3JlbWVudC1pZCcsIHsga2V5UGF0aDogJ2lkJywg
YXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdmaXJzdCcs
ICdmaXJzdCcpOwogb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3NlY29uZCcsICdzZWNvbmQnKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYmFkLWtl
eXBhdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9iYWQta2V5cGF0aC1leHBlY3RlZC50eHQKaW5kZXggZGI3MjhhYTEzYWNhNzU2MDgwNzM5OGNl
NDgzNDAzY2U1NTk3NTRhNS4uZjI2ZTEyMDcyZTY4Yjg3NGU1ODk5ZGM1MGVhN2JkM2M0OTI5YWRk
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9iYWQt
a2V5cGF0aC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9iYWQta2V5cGF0aC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2ls
bCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVz
dCBJbmRleGVkREIgYWRkaW5nIHByb3BlcnR5IHdpdGggaW52YWxpZCBrZXlwYXRoCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWRE
QiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4
ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9ICJiYWQta2V5cGF0aC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2ZvbycsIHsga2V5UGF0aDogJ2tleVBhdGgnIH0pOwogcmVxdWVzdCA9IG9iamVj
dFN0b3JlLmFkZCh7IGtleVBhdGg6ICdmb28nIH0pOwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9t
IHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoe30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jbGVhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLWV4cGVjdGVkLnR4dAppbmRleCA2ZjE4
MWQ5YzI5NTk1NzIxNjU4MWNlMjM0YWYxYzgxYTE4ZmVmYzBkLi40ZjZkYjZkYmU5OGFiNmIzZDNk
ZjAyNGE1OTgxYmVlMDAxM2Y1ZDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NsZWFyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAK
LUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJk
IGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3Rl
YWQuCiBUZXN0IEluZGV4ZWREQidzIGNsZWFyaW5nIGFuIG9iamVjdCBzdG9yZQogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJl
cXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitk
Ym5hbWUgPSAiY2xlYXIuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdmb28nLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUu
YWRkKHt9KTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbignZm9vJyku
b2JqZWN0U3RvcmUoJ2ZvbycpLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVl
LWV4cGVjdGVkLnR4dAppbmRleCBkNWY0ZWVhNjk4ZWRiMzQ2Yzg3ZDg1N2RhYmJlYzdkMGZmOTJm
NWNhLi5lN2IyMWEyZjEzYmMzNGJhYWVmMjYyNWE5ZGExZTc0OWNjOWVmMzViIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlx
dWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvY3JlYXRlLWluZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05T
T0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQg
d2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgog
VGVzdCBJbmRleGVkREIncyBjcmVhdGluZyB1bmlxdWUgaW5kZXggYW5kIHVwZGF0aW5nIGluZGV4
TmFtZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBv
YmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImNyZWF0ZS1pbmRleC11bmlxdWUuaHRtbCIKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBvYmpl
Y3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhJywgeyBrZXlQYXRoOiAnaWQnLCBhdXRv
SW5jcmVtZW50OiB0cnVlIH0pOwogaW5kZXggPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleChpbmRl
eE5hbWUsIGluZGV4S2V5UGF0aCwgeyB1bmlxdWU6IHRydWUgfSk7CiBQQVNTIGluZGV4Lm5hbWUg
aXMgaW5kZXhOYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVn
ZXIta2V5cy1leHBlY3RlZC50eHQKaW5kZXggMDUzZGJiZDg1ODU2ZTgzYWY3NzZiYzAyNTJmMjA2
ZTAzMTU0MDY5Ny4uY2IwNzZkOGM3YTU5ZTM1OGRjNjRhYzg4MmVkOGY0NjU1OWRmZmRlYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5k
ZXgtd2l0aC1pbnRlZ2VyLWtleXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24o
KSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVw
Z3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIGNyZWF0aW5nIGlu
ZGV4IHdpdGggaW50ZWdlciBrZXlzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYs
MTAgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFt
ZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEn
KQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjcmVhdGUtaW5kZXgtd2l0
aC1pbnRlZ2VyLWtleXMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdmb28nLCB7IGtleVBhdGg6ICdpZCcgfSk7CiBkYXRhID0geyBpZDogMTYsIG51bTogNDIgfTsK
IG9iamVjdFN0b3JlLmFkZChkYXRhKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9y
ZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDQyYTlkOWNiMTQ2ZGZiODljNzNkOTQwZGI4ZjZl
M2NkNDA4MGY4MmEuLjAyMzY4MjAxYzQxZDc3ZDJjODI5MDVhODUwNWZmZjEwNzgyMTZmMjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9i
amVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2Qg
aXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVk
ZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIGNyZWF0aW5nIG9iamVjdCBzdG9y
ZSBhbmQgdXBkYXRpbmcgcHJvcGVydGllcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBA
IC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVu
KG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3JlYXRlLW9iamVj
dHN0b3JlLWJhc2ljcy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2lu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
aW5mby5uYW1lLCBpbmZvLm9wdGlvbnMpOwogUEFTUyBvYmplY3RTdG9yZS5uYW1lIGlzIGluZm8u
bmFtZQogUEFTUyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCBpcyAwCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9y
ZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCAz
NzJmZGUxOGIwMmI5ZDQyMjViNmQ4ZGExYzM1MjgxNjQ0OWZlMmI0Li5mY2E1OWQ5YmYxYjZiZTU0
ZGRjNTNkZDYwZWYzOGZhMzQ0ZTUwNDA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9i
amVjdHN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2ls
bCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVz
dCBJbmRleGVkREIncyBjcmVhdGluZyBvYmplY3Qgc3RvcmUgd2l0aCBudWxsIG5hbWUKIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVz
LgorZGJuYW1lID0gImNyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbCIKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOwogUEFTUyBvYmplY3RTdG9yZS5uYW1l
IGlzICdudWxsJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3It
bXV0YXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDE3NDdlYjU3YTVkMWQ1Yzc5ODcwMDYwY2E4MzZi
YTMyMDVlMzdhZDAuLjljNDAyZDg2YmZmOWI4N2ZkMDA3YzM5NTI2M2MzMzUwYzQ2Yjk1MWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11
dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2N1cnNvci1tdXRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05T
T0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQg
d2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgog
VGVzdCBJbmRleGVkREIncyBjdXJzb3IgbXV0YXRpb24KIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgpAQCAtNiwxNCArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1pbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UobmFtZSkKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gImN1cnNvci1t
dXRhdGlvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKIAogc2V0dXBPYmplY3RTdG9yZUFuZENyZWF0ZUluZGV4KCk6Ci10cmFu
cyA9IHJlcXVlc3QucmVzdWx0CiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdm
b28nLCB7IGtleVBhdGg6ICdzcycgfSkKIGluZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgo
J25hbWUnLCAnbmFtZScsIHsgdW5pcXVlOiB0cnVlIH0pCiBvYmplY3RTdG9yZURhdGEgPSBbCkBA
IC0yOSw3ICsyNSw2IEBAIG9iamVjdFN0b3JlLmFkZChvYmplY3RTdG9yZURhdGFbMV0pCiBvYmpl
Y3RTdG9yZS5hZGQob2JqZWN0U3RvcmVEYXRhWzJdKQogb2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0
b3JlRGF0YVszXSkKIG9iamVjdFN0b3JlLmFkZChvYmplY3RTdG9yZURhdGFbNF0pCi10cmFucy5v
bmNvbXBsZXRlID0gY2hlY2tDdXJzb3JSZXN1bHRzCiAKIHNldHVwQ3Vyc29yKCk6CiBjb3VudCA9
IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vy
c29yLW11dGF0aW9uLW9iamVjdHN0b3JlLW9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25s
eS1leHBlY3RlZC50eHQKaW5kZXggMTUyZGUyYjNmZWJiNzNjOTI1ZjFjY2IwMTI4MmU4NDdkY2Mx
NGIwMi4uZTZlZWYzMjFiNDVhMmJmOThhNWU0OTViODdjZTIzMGE2ZjQ4NTdlYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24t
b2JqZWN0c3RvcmUtb25seS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBjdXJzb3IgbXV0YXRp
b24gZHVyaW5nIG9iamVjdCBzdG9yZSBjdXJzb3IgaXRlcmF0aW9uCiAKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KQEAgLTYsMTIgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAot
aW5kZXhlZERCLm9wZW4obmFtZSkKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLXNldHVwT2JqZWN0U3RvcmUoKToK
LURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiY3Vyc29yLW11dGF0aW9uLW9i
amVjdHN0b3JlLW9ubHkuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdmb28nLCB7IGtleVBhdGg6ICdzcycgfSk7CiBvYmplY3RTdG9yZURhdGEgPSBbCiAgICAgICAg
IHsgc3M6ICcyMzctMjMtNzczMicsIG5hbWU6ICdCb2InIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLWV4cGVjdGVkLnR4dApp
bmRleCA0OWI0YTI5MWJmOTE1YjM5MTVhZWY3NjU3MjNjZDgyNjY3MzZlZTM4Li44OTllZGI4NTNl
ZTI3NDBkN2YzNGUyNWQ4YWIwNmJhMmYxMTY3YTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlz
IG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVk
IiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgY3Vyc29yIGJlaGF2aW9yCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWRE
QiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4
ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9ICJjdXJzb3JzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2F1dG9JbmNy
ZW1lbnQnLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUu
b3BlbkN1cnNvcigpOwogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZGVsZXRlLXJlc3VsdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2RlbGV0
ZS1yZXN1bHQtZXhwZWN0ZWQudHh0CmluZGV4IDQxZTQxNDg0OGY0MDVkYTBkNDdkZDk0MTAwZDE2
Y2U2MDE3Zjc2YjIuLjZhNWFmYTE1NzkxMDhhNGYzMDVhZTkxYjI5NTJjNDYzYzJjMDdlNjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZGVsZXRlLXJl
c3VsdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9kZWxldGUtcmVzdWx0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUg
TUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxs
IGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0
IEluZGV4ZWREQjogcmVzdWx0IHByb3BlcnR5IGFmdGVyIGRlbGV0aW5nIGV4aXN0aW5nIGFuZCBu
b24tZXhpc3RpbmcgcmVjb3JkCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAg
KzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkK
LWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQot
RGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJkZWxldGUtcmVzdWx0Lmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywgeyBrZXlQYXRoOiAn
aWQnLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCh7
fSk7CiBpZCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLWV4cGVjdGVkLnR4dAppbmRleCBl
MWI4NWRmYTFjZGY1NzMxZDEyMGQ0OTU4MGVhZTYxZTk3ZTNhOWQ3Li44ZDUwMTg2Mjg1MjIyMWE3
NzU2M2RkNDhjZGNjNGI5MGQzODA2YWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhlcy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1z
dGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVu
dCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREI6IGl0ZXJhdGluZyB0aHJvdWdoIGluZGV4IGN1cnNv
cnMgd2l0aCBrZXlzIGFuZCBrZXkgcmFuZ2VzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
QEAgLTYsMTEgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9w
ZW4obmFtZSkKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5h
bWUgPSAiaW5kZXhlcy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2lu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmVOYW1lKTsKIEZpcnN0LCBhZGQgYWxsIG91ciBkYXRhIHRvIHRoZSBvYmplY3Qg
c3RvcmUuCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0b3JlRGF0YVtpXS52YWx1
ZSwgb2JqZWN0U3RvcmVEYXRhW2ldLmtleSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJl
cXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXktZXhwZWN0ZWQudHh0CmluZGV4IGIyY2IzYzFiMGY3
NTM1YmMyMGU4YTVjYmIwNzM0ODVmYWY0MTBkMGEuLjgzYzJiNGZjZDhmM2VlYTYzOTJjZTFlZmU1
ODNkNmI0NTdjMDI4Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50
cy1kZWxldGUtbnVsbC1rZXktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwg
YmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3Qg
SW5kZXhlZERCJ3MgYmVoYXZpb3IgZGVsZXRpbmcgZW50cnkgd2l0aCBubyBrZXkKIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERC
IHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhl
ZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1y
ZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBz
dG9yZXMuCitkYm5hbWUgPSAia2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXkuaHRtbCIK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsKIEV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSBvYmplY3RTdG9yZS5kZWxldGUobnVsbCk7CiBQQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9rZXktcmVxdWlyZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1leHBlY3RlZC50eHQKaW5kZXggNmEx
MTA3OWE0NmRlMjc3YmVkM2IyNDk3YmZlM2YzYzk1MjNkMDZhNy4uZDNmZjA1OGE2YTg3YjZmYmYx
MzIwNmMwOTY3NGU2YTIyZDg5OTMzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigp
IG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBn
cmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgZXZlbnQudGFyZ2V0
LnJlc3VsdCBhZnRlciBhZGQoKSBhbmQgcHV0KCkKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIu
b3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImtleS1yZXF1
aXJlbWVudHMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28n
LCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHt9
KTsKIGtleTEgPSBldmVudC50YXJnZXQucmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFz
c2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
a2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC1leHBlY3RlZC50eHQKaW5kZXggZGJl
OTUzYzM4MTA1MGQ3YWNlYzk4ZDBjZDBiMTc0Zjk0ZDJmZTM4Zi4uZWE5NGE5ZmMxNWI4NDdiOGQz
NDZkNWZjMTc4ZGVjMDlkNDY5NThjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1y
ZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRh
cmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5z
dGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgYmVoYXZpb3IgYWRkaW5nIGlubGluZSBhbmQgcGFzc2Vk
IGtleSBzaW11bHRhbmVvdXNseQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEy
ICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUp
Ci1vcGVuU3VjY2VzcygpOgotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbigndmVyc2lvbiAxJykKLWNsZWFuRGF0YWJhc2UoKToKLURlbGV0ZWQgYWxsIG9i
amVjdCBzdG9yZXMuCitkYm5hbWUgPSAia2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3Nl
ZC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2JheicsIHsga2V5
UGF0aDogJ2lkJyB9KTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBvYmplY3RTdG9yZS5hZGQo
e2lkOiA1fSwgNSk7CiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1u
by1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXktZXhwZWN0ZWQudHh0CmluZGV4IGFhNzdmMGVj
MzdjNmY5ZmU1Yjc0YjMzN2JhMzIyMWVhNzlhOTVlNmQuLmZiNzE2MTQ2MjM0N2M2MGY3NzJhNDUz
ZTQ2ZGIwNDk5Nzk5NjMwZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
cHV0LW5vLWtleS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6
IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1v
dmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVk
REIncyBiZWhhdmlvciBwdXRpbmcgd2l0aG91dCBrZXkKIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gImtleS1y
ZXF1aXJlbWVudHMtcHV0LW5vLWtleS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2JhcicpOwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIG9iamVjdFN0b3JlLnB1
dCh7fSk7CiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29ycy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3JzLWV4
cGVjdGVkLnR4dAppbmRleCA2ZDA2MjAwYzAxNGI3ZmM5YjMwNTQ3M2FjZTQ1Nzk5NzU4ZDM3NDcy
Li45YjZkNTZlZDE1MzliMGZkMmU2YjMxY2IyN2M0NDZlMTc0NzAzOThlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1jdXJzb3JzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVj
dC1jdXJzb3JzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTog
VGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92
ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWRE
QidzIGluZGV4IGN1cnNvcnMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCAr
NSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1E
ZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gIm9iamVjdC1jdXJzb3JzLmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogYXV0b0luY3JlbWVudCA9IGZhbHNlOwogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnYScsIHsga2V5UGF0aDogJ2lkJywgYXV0b0luY3JlbWVudDogYXV0b0luY3JlbWVudCB9
KTsKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KGluZGV4ZXNbal0ubmFtZSwgJ25hbWUnLCBpbmRl
eGVzW2pdLm9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9vYmplY3QtaWRlbnRpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtaWRlbnRpdHktZXhwZWN0ZWQudHh0CmluZGV4
IDI1YWM2ZTBkYjZkYjg5NTU2N2IyNGQyMWQ2YWJjNWQzZWNmOGViYmYuLjEyOGE3ZjIyNDk4YTI1
ZTI1MWQ0YWI0MGIxM2NjYTEwYTcwNzRjYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9u
KCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1
cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREI6IG9iamVjdCBpZGVu
dGl0eQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDE4ICs1LDE2IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUgPSAib2Jq
ZWN0LWlkZW50aXR5Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rp
b247Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0U3RvcmUxID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ2ZvbycpOwogb2JqZWN0U3RvcmUyID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ2ZvbycpOwogUEFTUyBvYmplY3RTdG9yZTEgPT09IG9iamVjdFN0b3JlMiBpcyB0cnVlCiBp
bmRleDEgPSBvYmplY3RTdG9yZTEuY3JlYXRlSW5kZXgoJ2JhcicsICdrZXknKTsKIGluZGV4MiA9
IG9iamVjdFN0b3JlMi5pbmRleCgnYmFyJyk7CiBQQVNTIGluZGV4MSA9PT0gaW5kZXgyIGlzIHRy
dWUKLXRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0ZXN0SWRlbnRpdHlTb21lTW9yZTsKIHRyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ2ZvbycpOwogb2JqZWN0U3RvcmUzID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ2ZvbycpOwogb2JqZWN0U3RvcmU0ID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ2ZvbycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9vYmplY3Qtc3RvcmUtaW5saW5lLWF1dG9pbmNyZW1lbnQta2V5LWFkZGVkLW9uLXB1
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29i
amVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0LWV4cGVjdGVk
LnR4dAppbmRleCA3OGY5OWRjZDUwZDBmYjY0MTFmNDI0N2VmYzRmYTVkNzNkNjg0Njk0Li4wMTg5
ZjE3ZDEzMDQ4MGMzYzg5OWNjMjhlMzcwYmY1ZjE3MDVhNGU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2lu
Y3JlbWVudC1rZXktYWRkZWQtb24tcHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVu
dC1rZXktYWRkZWQtb24tcHV0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUg
TUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxs
IGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0
IEluZGV4ZWREQiBhZGRpbmcgYW4gYXV0b2luY3JlbWVudGVkIGtleSBhbmQgcmV0cmlldmluZyBp
dCBzdWNjZXNzZnVsbHkKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gIm9iamVjdC1zdG9yZS1pbmxpbmUtYXV0
b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogdGVzdCA9IHsKICAgICAgICAgbmFt
ZTogJ2lubGluZSBrZXk7IGtleSBnZW5lcmF0b3InLAogICAgICAgICBhdXRvSW5jcmVtZW50OiB0
cnVlLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9v
YmplY3RzdG9yZW5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy1leHBlY3RlZC50eHQKaW5kZXggMGU1OTY5Y2Vm
MjdkODVmZjUzMTEzMjM2MmZjMDgwNzcyZjMwMjI0YS4uOTJlMmU1ZDU0YzhlYmU1YWEyNmRkZDkw
NjgwM2NlMzgzNDFhNTM0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9vYmplY3RzdG9yZW5hbWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdHN0b3JlbmFtZXMtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3Mgb2JqZWN0U3RvcmVOYW1lcyBh
cnJheQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9i
amVjdCBzdG9yZXMuCitkYm5hbWUgPSAib2JqZWN0c3RvcmVuYW1lcy5odG1sIgoraW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lLCB7IGtleVBhdGg6ICdp
ZCcsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiBQQVNTICdvYmplY3RTdG9yZU5hbWVzJyBpbiBk
YiBpcyB0cnVlCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDEKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdldC12YWx1ZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQt
Z2V0LXZhbHVlcy1leHBlY3RlZC50eHQKaW5kZXggMjU5NjE4Y2Q5NjU3NWI3MTc4OGIwMDIzN2Mz
NDNkNGNlMGEzZDU4Yi4uNDlmODg5ZjhkNDg4OTFkMzUzMGRhMWM2MDM1NTlmZDc4Y2YxYWY5NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0
LXZhbHVlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9wdXQtZ2V0LXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05T
T0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQg
d2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgog
VGVzdCBJbmRleGVkREIncyBwdXR0aW5nIGFuZCBnZXR0aW5nIHZhbHVlcyBpbiBhbiBvYmplY3Qg
c3RvcmUKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBv
YmplY3Qgc3RvcmVzLgorZGJuYW1lID0gInB1dC1nZXQtdmFsdWVzLmh0bWwiCitpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogdGVzdFN0cmlu
ZyA9IHsga2V5OiAwLCB2YWx1ZTogJ3Rlc3RTdHJpbmcnIH07CiB0ZXN0SW50ID0geyBrZXk6IDEs
IHZhbHVlOiAxMDAyIH07CiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdPYmpl
Y3RzJywgeyBhdXRvSW5jcmVtZW50OiBmYWxzZSB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJh
bnNhY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBlYTE2NzBjM2VhMDc0ODZiZmI3Y2NhYTdiNDc4
OTE4MGFlNjc4Zjk0Li4yNGI0NGE4ZTFiMzc3OWU0MWM3ZGE1NzA0OWJlNjMzMDIwZDgzOGU2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5
LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24t
c3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZl
bnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0lu
ZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jl
cy4KK2RibmFtZSA9ICJyZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbCIKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwog
RXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RT
dG9yZShvc05hbWUpLmFkZCh7fSk7CiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUtdHJh
bnNhY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggMzRhOTM0NWRl
ZTc0YjYzZjMwZmI2MmI2YmUwZGQ4MWI1M2IyNDg1NC4uNjI3MDBhMzRkMjc4ZTg0N2UyNmE5NzUx
MmUwMWM2ZTIyYWRmYmU1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgcmVhZC93
cml0ZSB0cmFuc2FjdGlvbnMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMCAr
NSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1E
ZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gInJlYWR3cml0ZS10cmFuc2FjdGlv
bnMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBh
dXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVd
LCAncmVhZHdyaXRlJykub2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOwogUEFTUyBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24ubW9kZSBpcyAncmVhZHdyaXRlJwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXgtZXhw
ZWN0ZWQudHh0CmluZGV4IDljYTkxN2ZjYzA2YmFkNDYxZmM3MDc3YTc1MTIyMmNlY2IzOWVjODku
LmI3OTcyYmI2MTU5NWI5NDViYzcwYzk0YjdjZTViNTJlNDMzYjZjMzYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1p
bmRleC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIncyBj
cmVhdGluZyBhbmQgZGVsZXRpbmcgaW5kZXhlcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5v
cGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAicmVtb3ZlLWlu
ZGV4Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmplY3RTdG9y
ZU5hbWUsIHsga2V5UGF0aDogJ2ZvbycgfSk7CiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoIGlzIDEKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5pdGVtKDApIGlzIG9iamVjdFN0b3Jl
TmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9y
ZXNvdXJjZXMvYWRkLXR3aWNlLWZhaWx1cmUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hZGQtdHdpY2UtZmFpbHVyZS5qcwppbmRleCAyOWUzZDU4
MjU0NTYzNmI0MDg3YjQ4MjZlNTVmNDFkYWE1MjJhYzVmLi4wNDExZjQ2Y2Q5ZTBhNGFkODcwMDNk
MWEzODAwODA0ZDdlODI1M2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hZGQtdHdpY2UtZmFpbHVyZS5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hZGQtdHdpY2UtZmFpbHVy
ZS5qcwpAQCAtMTEsMjggKzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGJlaGF2aW9yIGFkZGluZyB0aGUgc2FtZSBwcm9wZXJ0
eSB0d2ljZSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFi
YXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQotewotICAgIGRl
bGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2Fs
bGJhY2s7CiAKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIGtleSA9IGV2YWxBbmRMb2coImtleSA9
IDEwIik7CkBAIC01NCw1ICszNywzIEBAIGZ1bmN0aW9uIGFkZFNlY29uZEV4cGVjdGVkRXJyb3Io
KQogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJyb3JDb2RlIiwgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLkNPTlNUUkFJTlRfRVJSIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3Qo
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hdXRvaW5jcmVtZW50LWluZGV4ZXMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hdXRv
aW5jcmVtZW50LWluZGV4ZXMuanMKaW5kZXggMmRhOTZlN2ZmYTU2ZTk3Mzg4OTY1Y2M4NTJmZTkx
ZWM5YmUzODU5Zi4uNjQ4N2RhYzAzZjFhZmEyZDhlN2YzZDFkODA5ZDVkYWRlNmE1OGM3ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMv
YXV0b2luY3JlbWVudC1pbmRleGVzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVzb3VyY2VzL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5qcwpAQCAtMTEsMjkg
KzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCIGluZGV4ZXMgYWdhaW5zdCBhdXRvaW5jcmVtZW50aW5nIGtleXMiKTsKIAotZnVu
Y3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgc2V0VmVyc2lvbkNv
bXBsZXRlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9
IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHNldHVwT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldHVwT2JqZWN0U3RvcmUoKQot
ewotICAgIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAgICAg
b2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdhdXRvaW5jcmVtZW50LWlkJywgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OiB0
cnVlIH0pOyIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdmaXJz
dCcsICdmaXJzdCcpOyIpOwpAQCAtNTAsNyArMzIsNiBAQCBmdW5jdGlvbiBzZXR1cEluZGV4ZXMo
KQogICAgIGtleSA9IGV2YWxBbmRMb2coImtleSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Iik7CiAg
ICAgc2hvdWxkQmVGYWxzZSgia2V5ID09IG51bGwiKTsKICAgICBkZWJ1ZygiZXhwZWN0ZWQga2V5
IGlzICIgKyBrZXkpOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uQ29tcGxldGU7
CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb25Db21wbGV0ZSgpCkBAIC04NSw1ICs2NiwzIEBAIGZ1
bmN0aW9uIGNoZWNrVGhpcmRJbmRleCgpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1
bHQuaWQiLCAia2V5Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9iYWQta2V5cGF0aC5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2JhZC1rZXlwYXRoLmpzCmluZGV4IGQz
ZWIwYjI3YzVhZDc1NmQ4MmYxNjEzMzJlZGMyYTg0MTdiZTQyNTEuLjNkNDM1MWI4YjViMTMyMzI3
OGJkZGExMmE3OTE3YjUzYWMyYWI4YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2JhZC1rZXlwYXRoLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2JhZC1rZXlwYXRoLmpzCkBA
IC0xMSwyOCArMTEsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIgYWRkaW5nIHByb3BlcnR5IHdpdGggaW52YWxpZCBrZXlwYXRoIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
Ci0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBv
cGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxsT2Jq
ZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKIAog
ICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnZm9vJywgeyBrZXlQYXRoOiAna2V5UGF0aCcgfSk7Iik7CiAgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoeyBrZXlQYXRoOiAnZm9vJyB9
KTsiKTsKQEAgLTQ1LDUgKzI4LDMgQEAgZnVuY3Rpb24gYWRkRmlyc3RTdWNjZXNzKCkKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHt9KTsiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
LQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2NsZWFyLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY2xlYXIuanMKaW5k
ZXggMmIxYmI5YzUzYTgyY2QxNzdkMDlmNzgzNWIwZGYxOTEyYWMwODJmNi4uZjIyODBkZmYwNzI3
MDZiYWZmNzM3YTA0NGZkMWNjZTczZGM0YzllOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY2xlYXIuanMKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY2xlYXIuanMKQEAgLTExLDMz
ICsxMSwxNCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQidzIGNsZWFyaW5nIGFuIG9iamVjdCBzdG9yZSIpOwogCi1mdW5jdGlvbiB0ZXN0
KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBjbGVhcik7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
ZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFi
YXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgb2JqZWN0
U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdm
b28nLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Iik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoe30pOyIpOwogICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIGV2ZW50LnRhcmdldC5yZXN1bHQub25j
b21wbGV0ZSA9IGNsZWFyOwogfQogCiBmdW5jdGlvbiBjbGVhcigpCkBAIC01NSw1ICszNiwzIEBA
IGZ1bmN0aW9uIGFyZVdlQ2xlYXJZZXQoKQogICAgIHNob3VsZEJlKCJjdXJzb3IiLCAibnVsbCIp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZXNvdXJjZXMvY3JlYXRlLWluZGV4LXVuaXF1ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1pbmRleC11bmlxdWUuanMKaW5kZXgg
MGQ3NDEwYzk3YzNmYTljOWZjNzRmYzU0ZjM5NWViNmUzMGE3ZGU2OC4uNDJjM2U4NWZlYTk2NWYw
MDNkM2UxZTQ4YjU1ZmY3Y2M0ZjJlZTM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLWluZGV4LXVuaXF1ZS5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUt
aW5kZXgtdW5pcXVlLmpzCkBAIC0xMSwyOSArMTEsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyB1bmlxdWUgaW5k
ZXggYW5kIHVwZGF0aW5nIGluZGV4TmFtZXMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5w
YXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbmRWZXJpZnlJbmRleDsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
Y3JlYXRlQW5kVmVyaWZ5SW5kZXgoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7
Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnLCB7
IGtleVBhdGg6ICdpZCcsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Iik7CiAKICAgICBpbmRleE5h
bWUgPSAiMSI7CkBAIC01NSw1ICszNywzIEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFZlcmlmeUluZGV4
KCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiJ3ZlcnNp
b25jaGFuZ2UnIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUt
aW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMuanMKaW5kZXggYzBkOGFiMWUzYWExZDAyYTNhYzcwZWM4
Y2U0ZjVmZmNkYTQyZjczMC4uMjU4OGI3MjQ2OTcyNTViMzg4YTk2MzgwY2Q5ODZmZjg4NDgyYTVk
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNv
dXJjZXMvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1pbmRleC13aXRoLWlu
dGVnZXIta2V5cy5qcwpAQCAtMTEsMjkgKzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgaW5kZXggd2l0aCBp
bnRlZ2VyIGtleXMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRv
clByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIg
PSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRlSW5kZXg7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldHVw
T2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRleCgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9iamVj
dFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
Zm9vJywgeyBrZXlQYXRoOiAnaWQnIH0pOyIpOwogICAgIGRhdGEgPSBldmFsQW5kTG9nKCJkYXRh
ID0geyBpZDogMTYsIG51bTogNDIgfTsiKTsKICAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5h
ZGQoZGF0YSk7Iik7CkBAIC01MSw1ICszMywzIEBAIGZ1bmN0aW9uIHZlcmlmeUtleUN1cnNvcigp
CiAgICAgc2hvdWxkQmUoImN1cnNvci5wcmltYXJ5S2V5IiwgImRhdGEuaWQiKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0c3RvcmUtYmFzaWNzLmpzCmluZGV4
IDRhNzg3ODg4N2I5ZDZjNTA3ZGFhOWU0ZjQxNmY2MGQxZTNkYTAxMzcuLjgwYzc1Yjc0ZDU3NGNi
ZmIxYTkzMTExMWQxYmEwMjYyNDc2YjY4OGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3Mu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMv
Y3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy5qcwpAQCAtMTEsMjkgKzExLDExIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRp
bmcgb2JqZWN0IHN0b3JlIGFuZCB1cGRhdGluZyBwcm9wZXJ0aWVzIik7CiAKLWZ1bmN0aW9uIHRl
c3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURh
dGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNl
bGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZTsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsK
LQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNh
Y3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9iamVjdFN0b3Jl
SW5mbyA9IFsKICAgICAgICAgeyBuYW1lOiAiMSIsIG9wdGlvbnM6IHsgYXV0b0luY3JlbWVudDog
dHJ1ZSB9IH0sCiAgICAgICAgIHsgbmFtZTogIjIiLCBvcHRpb25zOiB7IGF1dG9JbmNyZW1lbnQ6
IGZhbHNlIH0gfSwKQEAgLTY0LDUgKzQ2LDMgQEAgZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdHN0b3Jl
LW51bGwtbmFtZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVz
b3VyY2VzL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuanMKaW5kZXggY2IxYmQyMDU0OTkx
YmFiM2I4MjJlZjA2MmZkMGViZTIyYmQ2MTJlZC4uM2NmYzBjZWJkZmZhOTE4YWNlZjQxNzZmNGM3
MDM5ODRlMDM2OGM5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUtb2Jq
ZWN0c3RvcmUtbnVsbC1uYW1lLmpzCkBAIC0xMSwzMyArMTEsMTMgQEAgaWYgKHRoaXMuaW1wb3J0
U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyBvYmpl
Y3Qgc3RvcmUgd2l0aCBudWxsIG5hbWUiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJU
ZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRo
bmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Ci17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBjbGVhbkRhdGFi
YXNlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJv
YmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwogICAgIHNob3VsZEJl
KCJvYmplY3RTdG9yZS5uYW1lIiwgIidudWxsJyIpOwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jdXJzb3ItbXV0YXRp
b24tb2JqZWN0c3RvcmUtb25seS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVzb3VyY2VzL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5LmpzCmluZGV4
IDI0N2MwZDIzNDg5NDIxMDhkZjgxY2Y1MDQxMWQ3NzZkNzQ4MGNkYmIuLmVhYmRhY2UwNGI2MmI5
OGJmNDc0MTRlMWEwNWI1NmY5MGIyY2M2NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9y
ZS1vbmx5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVz
b3VyY2VzL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5LmpzCkBAIC0xMSwzMSArMTEs
MTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyBjdXJzb3IgbXV0YXRpb24gZHVyaW5nIG9iamVjdCBzdG9yZSBjdXJzb3IgaXRlcmF0
aW9uIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2Up
OworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRlYnVnKCJvcGVu
U3VjY2VzcygpOiIpOwotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0dXBPYmplY3RTdG9yZTsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gc2V0dXBPYmplY3RTdG9yZSgpCi17Ci0gICAgZGVidWcoInNldHVwT2JqZWN0U3RvcmUoKToi
KTsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBl
Y3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdzcycgfSk7Iik7
CiAgICAgb2JqZWN0U3RvcmVEYXRhID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmVEYXRhID0gW1xu
IiArIAogIiAgICAgICAgeyBzczogJzIzNy0yMy03NzMyJywgbmFtZTogJ0JvYicgfSxcbiIgKyAK
QEAgLTEzNiw1ICsxMTYsMyBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5nQ3Vyc29yUmVzdWx0cygp
CiAgICAgc2hvdWxkQmUoInNhd1JlbW92ZWQiLCAidHJ1ZSIpOwogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3Vyc29yLW11
dGF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJj
ZXMvY3Vyc29yLW11dGF0aW9uLmpzCmluZGV4IGMxMWI0NDU4ODNjYjg0YTA5MGU0OWE0ZmY5ZGRl
MGFkMDc3NmY3NTAuLmEzYmY5NTc3YTBjNzg1ODQzMjYxZjcyMDQzMzE1OWRhNmFkMWMwNDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L2N1cnNvci1tdXRhdGlvbi5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3Jlc291cmNlcy9jdXJzb3ItbXV0YXRpb24uanMKQEAgLTExLDMzICsxMSwxNCBAQCBp
ZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidz
IGN1cnNvciBtdXRhdGlvbiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5k
b3JQcmVmaXhlcygpOwotCi0gICAgZGVidWcoIiIpOwotICAgIG5hbWUgPSAnY3Vyc29yLW11dGF0
aW9uJzsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgICAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRW
ZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVj
dFN0b3JlQW5kQ3JlYXRlSW5kZXg7ICAgICAgICAgIAotICAgICAgICB9OwotICAgIH07Ci19Ci0K
LWZ1bmN0aW9uIHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRleCgpCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSwgY2hlY2tDdXJzb3JSZXN1bHRzKTsKK2Z1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZSgpCiB7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAg
ZGVidWcoIiIpOwogICAgIGRlYnVnKCJzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRlSW5kZXgoKToi
KTsKIAotICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSByZXF1ZXN0LnJlc3VsdCIpOwot
CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdzcycgfSkiKTsKICAgICBpbmRleCA9IGV2YWxB
bmRMb2coImluZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ25hbWUnLCAnbmFtZScsIHsg
dW5pcXVlOiB0cnVlIH0pIik7CiAgICAgb2JqZWN0U3RvcmVEYXRhID0gZXZhbEFuZExvZygib2Jq
ZWN0U3RvcmVEYXRhID0gW1xuIiArIApAQCAtNTgsNyArMzksNiBAQCBmdW5jdGlvbiBzZXR1cE9i
amVjdFN0b3JlQW5kQ3JlYXRlSW5kZXgoKQogICAgICAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9y
ZS5hZGQob2JqZWN0U3RvcmVEYXRhWyIgKyBpICsgIl0pIik7CiAgICAgfQogCi0gICAgZXZhbEFu
ZExvZygidHJhbnMub25jb21wbGV0ZSA9IGNoZWNrQ3Vyc29yUmVzdWx0cyIpOwogICAgIHNldHVw
Q3Vyc29yKCk7CiB9CiAKQEAgLTE3Nyw1ICsxNTcsMyBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5n
Q3Vyc29yUmVzdWx0cygpCiAgICAgc2hvdWxkQmUoInNhd1JlbW92ZWQiLCAiZmFsc2UiKTsKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVz
b3VyY2VzL2N1cnNvcnMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9jdXJzb3JzLmpzCmluZGV4IDE4ODk3ZGFiMWEyZTQ2YzQyM2NhODkxZWUyZDJi
ZTliNTM4YTQzMjguLmMzM2Y2OTM4MmUyZDI2OWZmNWI0MTA0YWFlNTBhMzc2NGM1ODg3MzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L2N1cnNvcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9y
ZXNvdXJjZXMvY3Vyc29ycy5qcwpAQCAtMTEsMjkgKzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNvciBiZWhhdmlvciIp
OwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
LQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
b3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
InJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IHRlc3RHcm91cDE7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RHcm91cDEoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICBv
YmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhdXRvSW5jcmVt
ZW50JywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOwogCiAgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7Iik7CkBAIC0zODMsNSAr
MzY1LDMgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMTUoKQogICAgICAgfQogICAgIH0KIH0KLQotdGVz
dCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2RlbGV0ZS1yZXN1bHQuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9kZWxldGUtcmVz
dWx0LmpzCmluZGV4IDZmYWEyNDAyMmNlNTQ2NGY4YzQzZWViN2MwZDBmNzk1NzA2ZWJhNDEuLjVl
Y2IwMGI5ZmIxYmQ0YzJhZmFiZjZmMWY3NGNhYzZkODIxNWNhMTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2RlbGV0ZS1yZXN1bHQu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMv
ZGVsZXRlLXJlc3VsdC5qcwpAQCAtMTEsMjcgKzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiByZXN1bHQgcHJvcGVydHkgYWZ0
ZXIgZGVsZXRpbmcgZXhpc3RpbmcgYW5kIG5vbi1leGlzdGluZyByZWNvcmQiKTsKIAotZnVuY3Rp
b24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0
U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KLWZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnZm9vJywgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOwogICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHt9KTsiKTsK
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZVJlY29yZDE7CkBAIC01OSw1ICs0MywzIEBA
IGZ1bmN0aW9uIGZpbmFsQ2hlY2soKQogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0
IiwgInVuZGVmaW5lZCIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvaW5kZXhlcy5qcyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2luZGV4ZXMuanMKaW5kZXggNGY3NWMyZGY5
YWFlYzdkMTI5N2QyNjEwNmVlOGMxODNlYmRkNjVhZS4uMzY4OGUzODY5ZGUwMzc4MjI2Y2VhM2M0
Mzk2NDBmNzgyNWViOTA5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZXNvdXJjZXMvaW5kZXhlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9pbmRleGVzLmpzCkBAIC0xMSwyMSArMTEsMTEg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REI6IGl0ZXJhdGluZyB0aHJvdWdoIGluZGV4IGN1cnNvcnMgd2l0aCBrZXlzIGFuZCBrZXkgcmFu
Z2VzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2Us
IHNldFZlcnNpb25Db21wbGV0ZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRo
bmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Ci17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOwogICAgIG9iamVjdFN0b3JlTmFtZSA9ICJQZW9wbGUiOwogCiAgICAgb2JqZWN0
U3RvcmVEYXRhID0gWwpAQCAtNzAsMTYgKzYwLDYgQEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQog
ICAgICAgICB7IGtleTogIjIzNy0yMy03NzM0IiwgdmFsdWU6IHsgbmFtZTogIlJvbiIsIGhlaWdo
dDogNzMsIHdlaWdodDogMTgwIH0gfQogICAgIF07CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVP
YmplY3RTdG9yZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLSAgICB0cmFu
cyA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2co
Im9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsiKTsK
IAogICAgIGRlYnVnKCJGaXJzdCwgYWRkIGFsbCBvdXIgZGF0YSB0byB0aGUgb2JqZWN0IHN0b3Jl
LiIpOwpAQCAtMTAyLDcgKzgyLDYgQEAgZnVuY3Rpb24gY3JlYXRlSW5kZXhlcygpCiAgICAgICBl
dmFsQW5kTG9nKCJvYmplY3RTdG9yZS5jcmVhdGVJbmRleChpbmRleERhdGFbaV0ubmFtZSwgaW5k
ZXhEYXRhW2ldLmtleVBhdGgsIGluZGV4RGF0YVtpXS5vcHRpb25zKTsiKTsKICAgICB9CiAgICAg
c2hvdWxkQmUoIm9iamVjdFN0b3JlLmluZGV4TmFtZXMubGVuZ3RoIiwgImluZGV4RGF0YS5sZW5n
dGgiKTsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBm
dW5jdGlvbiBzZXRWZXJzaW9uQ29tcGxldGUoKQpAQCAtMTAwNiw1ICs5ODUsMyBAQCBmdW5jdGlv
biB0ZXN0R3JvdXAzMCgpCiAgICAgICAgIH0KICAgICB9CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1y
ZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5LmpzCmluZGV4IGZmMDYyYzNkOTFlZTY3MTM0NmEx
NTFhZGZkMTgzYTY3Y2I2NzViZDkuLmEzOGJmY2FhOWRiZGQxNGU3MTIwMGZiMDhiMzlkZTc4NDgz
NjZkNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5LmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVu
dHMtZGVsZXRlLW51bGwta2V5LmpzCkBAIC0xMSwzMSArMTEsMTIgQEAgaWYgKHRoaXMuaW1wb3J0
U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBiZWhhdmlvciBkZWxl
dGluZyBlbnRyeSB3aXRoIG5vIGtleSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRl
c3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAg
cmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkK
LXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9u
IDEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZUFuZENyZWF0ZU9i
amVjdFN0b3JlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotfQotCi1mdW5jdGlvbiBjbGVhbkRhdGFiYXNlQW5kQ3JlYXRlT2JqZWN0U3RvcmUoKQotewot
ICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJvYmplY3RTdG9yZS5kZWxldGUobnVsbCk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRB
VEFfRVJSIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5LXJl
cXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5qcwppbmRleCAyODdhODAwZDA5MzA2NDk0MWYw
OTEzN2JiZTA3NjBkOGQwNmFmNDJkLi5hMjJjMWNhMjNkZDQzMDgxYWM3OTQ1OWMzZWRmYmI1OGNk
ODE2YmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJl
bWVudHMtaW5saW5lLWFuZC1wYXNzZWQuanMKQEAgLTExLDMzICsxMSwxMiBAQCBpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGJlaGF2aW9y
IGFkZGluZyBpbmxpbmUgYW5kIHBhc3NlZCBrZXkgc2ltdWx0YW5lb3VzbHkiKTsKIAotZnVuY3Rp
b24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0g
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0
YWJhc2UoKQotewotICAgIGRlYnVnKCJjbGVhbkRhdGFiYXNlKCk6Iik7Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
ICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2JheicsIHsga2V5UGF0aDogJ2lkJyB9KTsiKTsKICAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5hZGQoe2lkOiA1fSwgNSk7IiwgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLkRBVEFfRVJSIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXku
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9rZXkt
cmVxdWlyZW1lbnRzLXB1dC1uby1rZXkuanMKaW5kZXggNDY3NjRjZWZmODE3ZTVmNTkwZTBjNjIw
ODMyYjVkMDc4NmViOWY4YS4uZDk2NGU4OTU5MTE2ZmVhOTcyNjA3NGU5NWRiNWY3MmI0M2RkYTkz
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNv
dXJjZXMva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtcHV0LW5v
LWtleS5qcwpAQCAtMTEsMzEgKzExLDEyIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAog
ZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgYmVoYXZpb3IgcHV0aW5nIHdpdGhvdXQga2V5
Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
ICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2JhcicpOyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oIm9iamVjdFN0
b3JlLnB1dCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIik7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9rZXktcmVxdWlyZW1lbnRzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9yZXNvdXJjZXMva2V5LXJlcXVpcmVtZW50cy5qcwppbmRleCAwNzJjNTRmMTU0MDQzMjM2
M2I0ZmRhNDllNzI0NzgwYzBlYmJjZGVlLi44OGUwOGM4MjU3MTM0MWE2Njg0MGYwYjQ1ZDA2NjI2
MWRjMDg5MzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMuanMKQEAgLTEx
LDI4ICsxMSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJU
ZXN0IEluZGV4ZWREQidzIGV2ZW50LnRhcmdldC5yZXN1bHQgYWZ0ZXIgYWRkKCkgYW5kIHB1dCgp
Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
ICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2ZvbycsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsiKTsKICAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCh7fSk7Iik7CiAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBwb3N0QWRkOwpAQCAtNzAsNSArNTMsMyBAQCBmdW5jdGlvbiBwb3N0
UHV0MygpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAia2V5MiIpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNv
dXJjZXMvb2JqZWN0LWN1cnNvcnMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3Jlc291cmNlcy9vYmplY3QtY3Vyc29ycy5qcwppbmRleCA5M2RhMjA4NWRiODZlNWQz
Zjg5YjhjN2IxOTk5ZDg0YTVkMTZjYjI1Li4wNWNjZmFlYWVkZGI3ZTYyYTVhNWIyMzBhZjk0ZDIx
ZTJmMzU3NmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy9vYmplY3QtY3Vyc29ycy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3QtY3Vyc29ycy5qcwpAQCAtMTEsMjgg
KzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCJ3MgaW5kZXggY3Vyc29ycyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWRE
QlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0g
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBh
dGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIp
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNz
KCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwot
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0
YWJhc2UoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgYXV0b0luY3JlbWVudCA9IGV2YWxBbmRMb2co
ImF1dG9JbmNyZW1lbnQgPSBmYWxzZTsiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2co
Im9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnLCB7IGtleVBhdGg6ICdpZCcs
IGF1dG9JbmNyZW1lbnQ6IGF1dG9JbmNyZW1lbnQgfSk7Iik7CiAgICAgaW5kZXhlcyA9IFsKQEAg
LTgxLDUgKzY0LDMgQEAgZnVuY3Rpb24gc2V0dXBBdXRvSW5jcmVtZW50KCkKICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHBvc3RBZGQ7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdC1pZGVudGl0eS5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdC1pZGVudGl0
eS5qcwppbmRleCBiMzljZGE0M2MyOGI4NzI3N2JiODliNmQwNTBhNmZhZWVkYzM5YTNkLi44Y2Qw
OGJjMGFhZTEwMjZjY2NmNGU4ZDlhZDdmNDI0YjI1YzIwZjM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3QtaWRlbnRpdHku
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMv
b2JqZWN0LWlkZW50aXR5LmpzCkBAIC0xMSwzNSArMTEsMTggQEAgaWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREI6IG9iamVjdCBpZGVudGl0eSIp
OwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0g
ICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0
ZU9iamVjdFN0b3JlQW5kSW5kZXg7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlQW5kSW5kZXgoKQor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RJZGVudGl0eVNvbWVNb3JlKTsKK2Z1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0
Q2FsbGJhY2s7CiAgICAgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbjsiKTsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIp
OwogICAgIG9iamVjdFN0b3JlMSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlMSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAgICBvYmplY3RTdG9yZTIgPSBldmFsQW5kTG9nKCJv
YmplY3RTdG9yZTIgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgc2hv
dWxkQmVUcnVlKCJvYmplY3RTdG9yZTEgPT09IG9iamVjdFN0b3JlMiIpOwogICAgIGluZGV4MSA9
IGV2YWxBbmRMb2coImluZGV4MSA9IG9iamVjdFN0b3JlMS5jcmVhdGVJbmRleCgnYmFyJywgJ2tl
eScpOyIpOwogICAgIGluZGV4MiA9IGV2YWxBbmRMb2coImluZGV4MiA9IG9iamVjdFN0b3JlMi5p
bmRleCgnYmFyJyk7Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJpbmRleDEgPT09IGluZGV4MiIpOwot
ICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0ZXN0SWRlbnRpdHlTb21l
TW9yZTsiKTsKIH0KIAogZnVuY3Rpb24gdGVzdElkZW50aXR5U29tZU1vcmUoKQpAQCAtNjEsNSAr
NDQsMyBAQCBmdW5jdGlvbiB0ZXN0SWRlbnRpdHlTb21lTW9yZSgpCiAKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVj
dC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0LmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0LXN0b3JlLWlu
bGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuanMKaW5kZXggZDc5YTc3ZjQwZTU1
Y2FkOTA4NTI2YjM3NmU0YWI5YjljM2E0ZDUyMy4uNjRlMGM1ZmRkZmEyMTI5ZTZiNTg3YmFiZmNj
MDlkZTEyNTg1NDMzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1h
ZGRlZC1vbi1wdXQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZXNvdXJjZXMvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1v
bi1wdXQuanMKQEAgLTExLDI4ICsxMSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBhZGRpbmcgYW4gYXV0b2luY3JlbWVudGVkIGtl
eSBhbmQgcmV0cmlldmluZyBpdCBzdWNjZXNzZnVsbHkiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitp
bmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2Uo
KQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2Nh
dGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
bmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVu
U3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lv
bignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVjdFN0b3JlOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlv
biBzZXR1cE9iamVjdFN0b3JlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwor
ICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rp
b24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIHRlc3QgPSBldmFsQW5k
TG9nKCJ0ZXN0ID0ge1xuIiArCiAiICAgICAgICBuYW1lOiAnaW5saW5lIGtleTsga2V5IGdlbmVy
YXRvcicsXG4iICsKICIgICAgICAgIGF1dG9JbmNyZW1lbnQ6IHRydWUsXG4iICsKQEAgLTU5LDUg
KzQyLDMgQEAgZnVuY3Rpb24gZ2V0U3VjY2VzcygpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdl
dC5yZXN1bHQuaWQiLCAiaWQiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdHN0b3JlbmFtZXMuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3RzdG9yZW5h
bWVzLmpzCmluZGV4IDNmNWExMDIyODcyMDlhMjRiY2U3ZTQyNzVjNmM5MTViNjdiZGE2NzEuLjRm
NTZhODE1YmU5ZjBhNjE2NjNiYTQwOGNiOTJjNTkwMTkxYWJiNWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdHN0b3JlbmFt
ZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJj
ZXMvb2JqZWN0c3RvcmVuYW1lcy5qcwpAQCAtMTEsMjggKzExLDExIEBAIGlmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgb2JqZWN0U3RvcmVO
YW1lcyBhcnJheSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURh
dGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9
IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQotewotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0
Q2FsbGJhY2s7CiAKICAgICBvYmplY3RTdG9yZU5hbWUgPSAiYSI7CiAgICAgb2JqZWN0U3RvcmUg
PSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0
b3JlTmFtZSwgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOwpAQCAt
NDIsNSArMjUsMyBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAgICBzaG91bGRCZSgiZGIu
b2JqZWN0U3RvcmVOYW1lcy5pdGVtKDApIiwgIm9iamVjdFN0b3JlTmFtZSIpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMv
cHV0LWdldC12YWx1ZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9wdXQtZ2V0LXZhbHVlcy5qcwppbmRleCBlNDMwNmJiZDg4Mjc0MjY5MDMzY2U0
MmU2NGE5MjRiN2Q5NjRmNTFmLi44NGY5YzBlMzM3OWY2Y2I1YzlhOWUyNThlMmU4ODFmY2E5NTlk
ZTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
c291cmNlcy9wdXQtZ2V0LXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9wdXQtZ2V0LXZhbHVlcy5qcwpAQCAtMTEsMjcgKzExLDEx
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgcHV0dGluZyBhbmQgZ2V0dGluZyB2YWx1ZXMgaW4gYW4gb2JqZWN0IHN0b3JlIik7CiAK
LWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rp
b24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0g
ICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFu
RGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAKICAgICB0
ZXN0U3RyaW5nID0gZXZhbEFuZExvZygidGVzdFN0cmluZyA9IHsga2V5OiAwLCB2YWx1ZTogJ3Rl
c3RTdHJpbmcnIH07Iik7CiAgICAgdGVzdEludCA9IGV2YWxBbmRMb2coInRlc3RJbnQgPSB7IGtl
eTogMSwgdmFsdWU6IDEwMDIgfTsiKTsKQEAgLTEwMyw1ICs4NywzIEBAIGZ1bmN0aW9uIHBvc3RH
ZXRJbnRBdXRvSW5jcmVtZW50KCkKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIs
ICJ0ZXN0SW50LnZhbHVlIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkb25seS10cmFuc2FjdGlvbnMuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkb25seS10
cmFuc2FjdGlvbnMuanMKaW5kZXggNGE5NDNiZWZhNWQ0ZmNmZjcyOGFiNDRhZjk1ODYyN2Q2OGU2
Mzc1MC4uYmQ1MTk4MGRlMzNhZjI2NGNjMTQ3OGFiMWI3N2RkYWY1YTliMGE2MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZG9u
bHktdHJhbnNhY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVzb3VyY2VzL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5qcwpAQCAtMTEsMzIgKzExLDE0
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhl
ZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHNldFZlcnNpb25Db21wbGV0ZSk7CitmdW5jdGlvbiBw
cmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBu
YW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
aW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNj
ZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRh
dGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAgICAgb3NO
YW1lID0gInRlc3Qgc3RvcmUiOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVudDogdHJ1
ZSB9KTsiKTsKLSAgICBldmVudC50YXJnZXQucmVzdWx0Lm9uY29tcGxldGUgPSBzZXRWZXJzaW9u
Q29tcGxldGU7CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb25Db21wbGV0ZSgpCkBAIC01Myw1ICsz
NSwzIEBAIGZ1bmN0aW9uIHNldFZlcnNpb25Db21wbGV0ZSgpCiAgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLmRlbGV0
ZShrZXkyKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJj
ZXMvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVzb3VyY2VzL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuanMKaW5kZXggYWFm
YTZmM2VlOWNmMGNkZDVkMjNhM2NlMzM0YmQ2ZDlkNGU0Yjk5OC4uMDNiODk2MDY2YTBhYTQzOTA0
ZTI5ZTQyM2JhZDQ1MzdkNmJiNTM1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkd3Jp
dGUtdHJhbnNhY3Rpb25zLmpzCkBAIC0xMSwzMiArMTEsMTQgQEAgaWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyByZWFkL3dyaXRlIHRyYW5z
YWN0aW9ucyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFi
YXNlLCBzZXRWZXJzaW9uQ29tcGxldGUpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsK
LSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24u
cGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEn
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5E
YXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQg
PSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKIAogICAgIG9zTmFtZSA9ICJ0ZXN0IHN0b3JlIjsK
ICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUob3NOYW1lLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Iik7Ci0gICAgZXZlbnQu
dGFyZ2V0LnJlc3VsdC5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5j
dGlvbiBzZXRWZXJzaW9uQ29tcGxldGUoKQpAQCAtMTA5LDUgKzkxLDMgQEAgZnVuY3Rpb24gcG9z
dERlbGV0ZTIoKQogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIs
ICIncmVhZHdyaXRlJyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVtb3ZlLWluZGV4LmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVtb3ZlLWluZGV4LmpzCmluZGV4
IDQ5NmRkYTZhODU5YTBiZjZjNGIwNDgxMjRkMzcyNzI5YzY2YTU3MDEuLmQzYWNjN2Q4M2Q3MGIz
MmVjNTA1Nzk5YmJiZWFlYTYxYzRkOWRkOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3JlbW92ZS1pbmRleC5qcworKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZW1vdmUtaW5kZXgu
anMKQEAgLTExLDI4ICsxMSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0aW5nIGFuZCBkZWxldGluZyBpbmRleGVzIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
Ci0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBv
cGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y3JlYXRlQW5kRGVsZXRlSW5kZXg7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZERlbGV0ZUluZGV4KCkKLXsKLSAg
ICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOwogCiAgICAgb2JqZWN0U3RvcmVOYW1lID0gInRlc3Qgc3RvcmUiOwogICAgIG9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZShvYmplY3RTdG9yZU5hbWUsIHsga2V5UGF0aDogJ2ZvbycgfSk7Iik7CkBAIC01MCw1ICszMywz
IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZERlbGV0ZUluZGV4KCkKIAogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vyc29yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL211dGF0aW5nLWN1cnNvci1leHBlY3Rl
ZC50eHQKaW5kZXggYzllNjg3MWQ0MWY3ODI0YzA1OGM1NDU5ODNmYTczODU4N2UzODcxNS4uZGZk
ZjQ2N2M5NTBmYjdmODVjZmRmNWZjNTkzOWZmOWRmYTIyZGRjOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vyc29yLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3ItZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1l
dGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFk
ZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgbXV0YXRpbmcgYW4gSW5kZXhlZERCJ3Mgb2Jq
ZWN0c3RvcmUgZnJvbSBhIGN1cnNvci4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAt
NiwxMyArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Blbign
bXV0YXRpbmctY3Vyc29yJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lv
bignMScpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0
Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2Ri
bmFtZSA9ICJtdXRhdGluZy1jdXJzb3IuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpCiBvYmplY3RTdG9yZS5hZGQoMSwgMSkub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrCiBvYmplY3RTdG9yZS5hZGQoMiwgMikub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLWV4
cGVjdGVkLnR4dAppbmRleCA1MTQxNjU2N2VhZGM3MTRmZWNhZDFhZGQwODNhMjhkMzQ2ZjI4YTUw
Li4yOWJkODhhODZjN2ZhOWRhZjY3MTAyZjMwMTE1YTY1NzEyNGE2ZTJhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVu
dHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dFN0b3JlLXJlcXVpcmVkLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1D
T05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBh
bmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFk
LgogVGVzdCBJbmRleGVkREIgb2JqZWN0IHN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50cwogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMu
CitkYm5hbWUgPSAib2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogb2JqZWN0
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7CiBQQVNTIG9iamVjdFN0b3JlLnB1
dCgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBB
U1Mgb2JqZWN0U3RvcmUuYWRkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50LWV4cGVjdGVkLnR4dAppbmRl
eCAzYzA1ZGU3ZDdhNTMxMjRiZWE2YjZmYTIwMmRjZDhiMDdiYjEwMGYyLi4xYzIxYzg5NGMyM2Zi
M2Y0OWRlYzdkZTEwYTcwZGYzYjJjMmNmYTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZl
cnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0
aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIElEQk9i
amVjdFN0b3JlIGF1dG8taW5jcmVtZW50IGZlYXR1cmUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KQEAgLTYsMTQgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhl
ZERCLm9wZW4oJ29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQnKQotb3BlblN1Y2Nlc3MoKToKLWRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0
VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFu
cyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAib2Jq
ZWN0c3RvcmUtYXV0b2luY3JlbWVudC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGNyZWF0ZU9iamVjdFN0b3JlKCk6CiBzdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdTdG9yZVdpdGhLZXlQYXRoJywge2tleVBhdGg6ICdp
ZCcsIGF1dG9JbmNyZW1lbnQ6IHRydWV9KQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ1N0b3JlV2l0
aEF1dG9JbmNyZW1lbnQnLCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1leHBlY3Rl
ZC50eHQKaW5kZXggYzUwOTZmY2RmMDU4Njg2ZGZkYzgyMDgyYzBjMDY3ZDQ1MzNiODQ2ZS4uZjgz
ZWVmMTdlYTg1YWRkZmM4NDllNjljM2JkNGYzOWNlMjlmNTczMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24o
KSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVw
Z3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIHdlYmtpdElEQk9i
amVjdFN0b3JlLmNsZWFyKCkuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTIg
KzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ29iamVj
dHN0b3JlLWNsZWFyJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbign
bmV3IHZlcnNpb24nKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlz
IG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJvYmplY3Rz
dG9yZS1jbGVhci5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4
ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScsIG51bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJycpCiBQQVNTIHN0b3Jl
LmluZGV4TmFtZXMuY29udGFpbnMoJ2luZGV4TmFtZScpIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50LWV4cGVj
dGVkLnR4dAppbmRleCA2N2M3NjU3YzY0OTVmY2IyNDQ2NmE1NGYzYTc2OTk1NTE5Y2I3MTRmLi5j
MmE5NDhjNTdjZjZiNDJhYTlkOTI0ZTg4MGZiNjg4YTA3ZmE3ODBhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lv
bigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAi
dXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0
U3RvcmUuY291bnQoKS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxNCArNSw5
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Blbignb2JqZWN0c3Rv
cmUtY291bnQnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcg
dmVyc2lvbicpCi0KLXByZXBhcmluZyBkYXRhYmFzZQotdHJhbnMgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9ICJvYmplY3RzdG9yZS1jb3VudC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCiBhZGRpbmcgMCAuLi4gOTkKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNv
ci1leHBlY3RlZC50eHQKaW5kZXggYTJlYmY0ZDc4YWY2ZTkxZTFiNmNmOTcwNDNkYWFjNjAyYjdl
NDEzNS4uOGFjMzBlZGUwMjBiN2UzOGFkZTJkNGUyN2U3MjA1NGJjZmFhM2RhZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1j
dXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUg
c2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4g
VXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3Mg
b2JqZWN0U3RvcmUub3BlbkN1cnNvciArIHRoZSBjdXJzb3IgaXQgcHJvZHVjZXMgaW4gZGVwdGgu
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTIgKzUsOSBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ29iamVjdHN0b3JlLWN1cnNvcicpCi1k
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXRy
YW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAib2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykK
IAogVmVyaWZ5IHRoYXQgc3BlY2lmeWluZyBhbiBpbnZhbGlkIGRpcmVjdGlvbiByYWlzZXMgYW4g
ZXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0
CmluZGV4IGUxMWYxMDFmMDBmMmI0NDgxMWNjZTRlYjI5N2VkZGIwMThkMTVjNzIuLmY2YzhiYjFm
Nzc0Y2E1MzliYWJlYzk2NjExMmUwYzhmNjA0N2Y1NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1v
dmVvYmplY3RzdG9yZS1leHBlY3RlZC50eHQKQEAgLTYsMTIgKzYsOSBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0
b3JlJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNp
b24nKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxs
LgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJvYmplY3RzdG9yZS1yZW1v
dmVvYmplY3RzdG9yZS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2lu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScsIG51bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJycpCiBQQVNTIHN0
b3JlLmluZGV4TmFtZXMuY29udGFpbnMoJ2luZGV4TmFtZScpIGlzIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dApp
bmRleCA4ZGQyNTlhODU1MmU0Y2M5YzUzODBjNDRlMWMxNGQxNjZjYjliMTM3Li4xMTRjNzMwMTk5
MjQzOGY2YWM0YjkxZmYxZmQwOGZkNDI3MWZmNWM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3Rh
bmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQg
aW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3Mgb3BlbkN1cnNvci4KIAogT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgpAQCAtNiwxMyArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGlu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1p
bmRleGVkREIub3Blbignb3Blbi1jdXJzb3InKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1k
Yi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBh
bGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJvcGVuLWN1cnNvci5odG1sIgoraW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKQogb2JqZWN0U3RvcmUuYWRkKCdteVZh
bHVlJywgJ215S2V5JykKIE9wZW5pbmcgY3Vyc29yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vcGVuY3Vyc29yLWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuY3Vyc29yLWtleS1leHBlY3RlZC50eHQKaW5kZXggYmNi
Njc0YTQ2YTY1NTM1MjFlOGY1NGNkN2E4NTU1YzQ2Njc1ZTYwMy4uYTZlMTE2NzhhMjI3YWMzYjMx
NWQyMWUwYWQwYWFlMzAxNTdlODBlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb3BlbmN1cnNvci1rZXktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29wZW5jdXJzb3Ita2V5LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMg
QEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5k
YXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGlu
c3RlYWQuCiBUZXN0IG9wZW5DdXJzb3Ivb3BlbktleUN1cnNvciB3aXRoIHJhdyBJREJLZXlzLgog
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDExICs1LDkgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1vcGVuU3VjY2VzcygpOgotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gIm9wZW5jdXJzb3Ita2V5Lmh0bWwiCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQog
b2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOwogRmly
c3QsIGFkZCBhbGwgb3VyIGRhdGEgdG8gdGhlIG9iamVjdCBzdG9yZS4KIHJlcXVlc3QgPSBvYmpl
Y3RTdG9yZS5hZGQob2JqZWN0U3RvcmVEYXRhW2ldLnZhbHVlLCBvYmplY3RTdG9yZURhdGFbaV0u
a2V5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmct
YWN0aXZpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcGVu
ZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQKaW5kZXggZTBjN2IxNDdhYTg2ODMzNWQzN2E4YmJm
NDRkOGYyYjBmMDZjMzM0ZS4uOGNkYmU0ODZkNjA3NDMzYjUzOTc1MWQ4YWFkYTMwODAzMWUwYzAz
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy1hY3Rp
dml0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcGVu
ZGluZy1hY3Rpdml0eS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NB
R0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSBy
ZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogQ2hlY2tzIHRo
YXQgZ2FyYmFnZSBjb2xsZWN0aW9uIGRvZXNuJ3QgcmVjbGFpbSBvYmplY3RzIHdpdGggcGVuZGlu
ZyBhY3Rpdml0eQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC03LDEzICs2LDEwIEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBz
ZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhl
ZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAogZGJuYW1lID0gInBlbmRpbmctYWN0aXZpdHkuaHRt
bCIKLQotcHJlcGFyZURhdGFiYXNlKCk6CiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQogaW5kZXhlZERCLm9wZW4oZGJuYW1lKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotUEFTUyBkYi52
ZXJzaW9uIGlzIDEKLWRiLnNldFZlcnNpb24oJzEnKQorCitwcmVwYXJlRGF0YWJhc2UoKToKIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlLnB1dCgwLCAwKQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLWFjdGl2aXR5
LXdvcmtlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcGVu
ZGluZy1hY3Rpdml0eS13b3JrZXJzLWV4cGVjdGVkLnR4dAppbmRleCA0NGM0MTc0NGNkNDZhZGI3
YjYzZWY5YWFkZWU5YmE0OGVjMzc3M2QwLi43ZjI5ODRmZTMxMTc1ZjQ3ZjRmZTYxNWIzY2I1NGE4
MzgzMTc3MjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9wZW5k
aW5nLWFjdGl2aXR5LXdvcmtlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3BlbmRpbmctYWN0aXZpdHktd29ya2Vycy1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5v
bi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBl
dmVudCBpbnN0ZWFkLgogW1dvcmtlcl0gQ2hlY2tzIHRoYXQgZ2FyYmFnZSBjb2xsZWN0aW9uIGRv
ZXNuJ3QgcmVjbGFpbSBvYmplY3RzIHdpdGggcGVuZGluZyBhY3Rpdml0eQogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCkBAIC04LDEzICs3LDEwIEBAIFN0YXJ0aW5nIHdvcmtlcjogcmVzb3Vy
Y2VzL3BlbmRpbmctYWN0aXZpdHkuanMKIFtXb3JrZXJdIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogW1dvcmtlcl0gCiBbV29ya2VyXSBkYm5h
bWUgPSAicGVuZGluZy1hY3Rpdml0eS5qcyIKLVtXb3JrZXJdIAotW1dvcmtlcl0gcHJlcGFyZURh
dGFiYXNlKCk6CiBbV29ya2VyXSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogW1dv
cmtlcl0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQotW1dvcmtlcl0gZGIgPSByZXF1ZXN0LnJlc3Vs
dAotUEFTUyBbV29ya2VyXSBkYi52ZXJzaW9uIGlzIDEKLVtXb3JrZXJdIGRiLnNldFZlcnNpb24o
JzEnKQorW1dvcmtlcl0gCitbV29ya2VyXSBwcmVwYXJlRGF0YWJhc2UoKToKIFtXb3JrZXJdIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIFtXb3JrZXJdIHN0b3JlLnB1dCgw
LCAwKQogW1dvcmtlcl0gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9wcmVmZXRjaC1idWdmaXgtMTA4MDcxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEtZXhwZWN0ZWQudHh0CmluZGV4IDg2
YWJhZjY5ZTVkZWMwYjcxMDNhMjgxMTE1MDExNDVhNGZmMDY0MjQuLjAwMjIyYzUwMjQ2MTRiOTli
NzQ5YmM3YTg5OTFjMjFiOTkzOGU5NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1l
dGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFk
ZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgZm9yIGNyYnVnLmNvbS8xMDgwNzEKIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxMyArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoREJOQU1FKQotaW5kZXhlZERCLm9w
ZW4oREJOQU1FKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcg
dmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgorZGJuYW1lID0gInByZWZldGNoLWJ1Z2ZpeC0x
MDgwNzEuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIu
b3BlbihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScs
IHtrZXlQYXRoOiAnaWQnfSkKIAogcmVzZXRPYmplY3RTdG9yZSgpOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3RlZC50
eHQKaW5kZXggNjVmNzZlMWZkMGRmNTZmZjIwMGIzZTIzMTM0NGUyYWE4ZmNkZGU0Yi4uMTQ4ZmU5
OTA2YThlNzBiZDgxZGZmYTYzYmRjYjU3YTAxZmNkNGFkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFZlcmlmeSB0aGF0IHF1ZXVpbmcgdXAgc2V2ZXJhbCBjb21t
YW5kcyB3b3JrcyAoYW5kIHRoZXkgYWxsIGZpcmUpLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCkBAIC02LDEzICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWRE
Qi5vcGVuKCdxdWV1ZWQtY29tbWFuZHMnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwg
b2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJxdWV1ZWQtY29tbWFuZHMuaHRtbCIKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUn
LCAneCcpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWNvbnRpbnVlLWFib3J0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtY29u
dGludWUtYWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDY3MmViYWZiMGJiNDRlNWJlYTM3MzI1NzFi
ZGY3NWJhN2Y2MTQxNmQuLjY4ODM3YTI4NWJmN2Y0MTc1YjRjYThhMjE4NzQzZjkyY2Q5ZTU0Njkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtY29udGlu
dWUtYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3JlcXVlc3QtY29udGludWUtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09O
U09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5k
IHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4K
IFJlZ3Jlc3Npb24gdGVzdCBmb3IgSURCUmVxdWVzdCBpc3N1ZSBjYWxsaW5nIGNvbnRpbnVlIG9u
IGEgY3Vyc29yIHRoZW4gYWJvcnRpbmcuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAg
LTYsMTMgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotZGJuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZQotaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYm5hbWUnKQotcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKCdkYm5hbWUnKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotZGIu
c2V0VmVyc2lvbignMScpCi0KLW9uVXBncmFkZToKK2RibmFtZSA9ICJyZXF1ZXN0LWNvbnRpbnVl
LWFib3J0Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIAogdGVzdEN1cnNv
cjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZl
bnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYjY3YzIzZGZl
OWFkYWFlODVkMzg3MTllOGNkYmE2NDJiZWUwNjYwYy4uZWJkNmEyYTlkM2UzYjNiMzE3NjI4MjIy
NzYzN2I0YmQxNzU5NjZmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBldmVudCBwcm9wb2dhdGlvbiBvbiBJREJSZXF1
ZXN0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDE0ICs1LDkgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdyZXF1ZXN0LWV2ZW50LXByb3Bh
Z2F0aW9uJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZl
cnNpb24nKQotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLXRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QK
LURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAicmVxdWVzdC1ldmVudC1wcm9w
YWdhdGlvbi5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScs
IG51bGwpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCiBWZXJpZnkg
dGhhdCBoYW5kbGVyIGZpcmVzIGFuZCB0aGF0IG5vdCBwcmV2ZW50aW5nIGRlZmF1bHQgd2lsbCBy
ZXN1bHQgaW4gYW4gYWJvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25z
LmpzCmluZGV4IDcwMzliYzA4NWQ3MGU4ODM3YWU0ZDU1NGFmYjE2MWNmZGI1ZjQ5YzIuLmI4Njcy
ZTFiNmFjMzFhM2NhNDJlNGY4NDg1MDUzNDcyYWE3NmE4NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlv
bnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0
ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5qcwpAQCAtNSwzNCArNSwxNiBAQCBpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0ZU9iamVj
dFN0b3JlJ3MgdmFyaW91cyBvcHRpb25zIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UsIHNldFZlcnNpb25Db21wbGV0ZSk7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0
aW9ucycpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3Bl
blN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJ3ZlcnNpb24gMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNl
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIp
OworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKIAogICAgIGV2YWxBbmRMb2coImRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdhJywge2tleVBhdGg6ICdhJ30pIik7CiAgICAgZXZhbEFuZExvZygi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2InKSIpOwogCiAgICAgZGVidWcoImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdjJywge2F1dG9JbmNyZW1lbnQ6IHRydWV9KTsiKTsKICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnYycsIHthdXRvSW5jcmVtZW50OiB0cnVlfSk7Ci0gICAgZXZlbnQudGFyZ2V0LnJl
c3VsdC5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5jdGlvbiBzZXRW
ZXJzaW9uQ29tcGxldGUoKQpAQCAtNzcsNSArNTksMyBAQCBmdW5jdGlvbiBjaGVja0IoKQogCiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3Vt
ZW50LXJlcXVpcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanMKaW5kZXggOTFkOWE3
YWE2YWViNTI4MTA5ODhhNDVhNTBhZmUxMmE1NmNmMTY1Yy4uYjcyYzI2YmIyZmJmYWZkNmRiNGVm
MTdiN2I2NjJiMGY0MzQxMzg3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9i
amVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanMKQEAgLTUsMzEgKzUsMTAgQEAgaWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgY3Jl
YXRlT2JqZWN0U3RvcmUgbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZCIpOwogCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5v
cGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKCkKIHsKICAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVs
YXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewot
ICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzaG91bGRUaHJvdygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoKTsiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUt
bnVsbC1uYW1lLmpzCmluZGV4IDM1ZDdjMDk1ODAyZjE0N2E0YTMwY2QyNzFlZDE3ZWM1N2Y0YjJk
ZjEuLjBiNjA4YTg2ZGNlMTY5YTVlZGUzMjJjM2JhNGYwMWZmOWNlZWM5YjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9y
ZS1udWxsLW5hbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcwpAQCAtNSwzMiArNSwxMSBAQCBpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjcmVh
dGVPYmplY3RTdG9yZSBudWxsIGhhbmRsaW5nIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhl
ZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsK
LSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24u
cGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEn
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9y
ZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCi17Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBv
YmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JqZWN0U3RvcmUubmFtZSIsICJudWxsIik7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLWFkZGVkLWJ1Zy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCmluZGV4IDc0ZGRiYzQwMjY4ZTA3ZTFhMWE0ZjhiYmJk
NzI2YWM1YjhmNGRjOWYuLjM3ZGZkM2Y3Y2FlNTQxYWVkYTZjY2MyY2I5NmQ4ZTRjODFhYzRmZDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJz
b3ItYWRkZWQtYnVnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCkBAIC01LDMzICs1LDEzIEBAIGlmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNvciBpdGVyYXRl
cyBjb3JyZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTsKIAotdGVz
dCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWRlbGV0ZScp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5DdXJzb3IpOworZnVuY3Rp
b24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRW
ZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJz
aW9uU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQotewotICAgIHRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgZGIgPSBldmVudC50
YXJnZXQucmVzdWx0OworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7CiAgICAgdHJh
bnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxl
dGUgPSBvcGVuQ3Vyc29yOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKIAogICAg
IHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3Rlc3QnKSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgxLCAx
KSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1hZHZhbmNlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci1hZHZhbmNlLmpzCmluZGV4IDY4NjhhNzVjNjgxNDU4ODU3ZmRmYzIyN2EzNTBh
ZDFmMTg2YjMzYTUuLmZhODY2MGRkNTY0NTI5OGM0OGUxYTBkZGMxMTVmY2VhYzRlZjg2YmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
YWR2YW5jZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLWFkdmFuY2UuanMKQEAgLTI3LDM4ICsyNywyMCBAQCB2YXIgaW5kZXhEYXRhID0gWwog
ICAgIHsgbmFtZTogIndlaWdodCIsIGtleVBhdGg6ICJ3ZWlnaHQiLCBvcHRpb25zOiB7IHVuaXF1
ZTogZmFsc2UgfSB9CiBdOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlLCBvbk9wZW4pOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5h
bWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQot
ewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CiAgICAgb2JqZWN0U3RvcmVOYW1lID0gIlBlb3BsZSI7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7Iik7CisgICAgY3JlYXRl
SW5kZXhlcygpOwogfQogCi1mdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZShyZXF1ZXN0KQorZnVu
Y3Rpb24gb25PcGVuKCkKIHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotICAgIHRy
YW5zID0gZXZhbEFuZExvZygidHJhbnMgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgIG9iamVjdFN0
b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmpl
Y3RTdG9yZU5hbWUpOyIpOwotICAgIGNyZWF0ZUluZGV4ZXMoKTsKLSAgICB0cmFucy5vbmNvbXBs
ZXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNh
Y3Rpb24ob2JqZWN0U3RvcmVOYW1lLCAncmVhZHdyaXRlJykiKTsKLSAgICAgICAgZXZhbEFuZExv
Zygib2JqZWN0U3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpIik7Ci0g
ICAgICAgIHBvcHVsYXRlT2JqZWN0U3RvcmUoKTsKLSAgICB9OworICAgIGV2YWxBbmRMb2coInRy
YW5zID0gZGIudHJhbnNhY3Rpb24ob2JqZWN0U3RvcmVOYW1lLCAncmVhZHdyaXRlJykiKTsKKyAg
ICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKG9iamVjdFN0b3Jl
TmFtZSkiKTsKKyAgICBwb3B1bGF0ZU9iamVjdFN0b3JlKCk7CiB9CiAKIGZ1bmN0aW9uIHBvcHVs
YXRlT2JqZWN0U3RvcmUoKQpAQCAtNDAyLDUgKzM4NCwzIEBAIGZ1bmN0aW9uIHRlc3REZWxldGUo
KQogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlU2Vjb25kOwogICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQotCi10ZXN0KCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVl
LWRpci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
Y29udGludWUtZGlyLmpzCmluZGV4IGJmZWMwZWJjN2FmNzRjOTdiMTJmYWEwOGJhNWEyZDJhNzc0
NWI0ZGIuLmI3YjRkMDYyMTYxNjA5NjE2OTY3ZTIyODQwMDM4Y2YxODEzMjYwNTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGlu
dWUtZGlyLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItY29udGludWUtZGlyLmpzCkBAIC01LDM0ICs1LDE0IEBAIGlmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBjb250aW51ZSgpIGNhbGxzIGFnYWlu
c3QgY3Vyc29ycyBhcmUgdmFsaWRhdGVkIGJ5IGRpcmVjdGlvbi4iKTsKIAotZnVuY3Rpb24gdGVz
dCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdEN1cnNvcnMpOworZnVuY3Rp
b24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAg
IGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0
Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSkiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAg
ICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAg
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKLSAgICAg
ICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
dHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0KLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJz
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICAgICAg
Zm9yIChpID0gMTsgaSA8PSAxMDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGV2YWxBbmRM
b2coInN0b3JlLnB1dCgiICsgaSArICIsIiArIGkgKyAiKSIpOwotICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB0ZXN0Q3Vyc29yczsKLSAgICAg
ICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUn
KSIpOworICAgIGZvciAoaSA9IDE7IGkgPD0gMTA7ICsraSkgeworICAgICAgICBldmFsQW5kTG9n
KCJzdG9yZS5wdXQoIiArIGkgKyAiLCIgKyBpICsgIikiKTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9u
IHRlc3RDdXJzb3JzKCkKQEAgLTcxLDUgKzUxLDMgQEAgZnVuY3Rpb24gdGVzdFJldmVyc2VDdXJz
b3IoKQogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9OwogfQotCi10ZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNv
bnRpbnVlLXZhbGlkaXR5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS5qcwppbmRleCBhZGZlOGM3MThlNWM2N2M1MmIz
NzUwMmI3YmEyNjI5NmExNDRjMWM1Li5lNGQwY2ZhYWI2MzEzYzQ1MTg1ZmQ4ZWRlMGMzZDY5NWFl
YWY3NWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUtdmFsaWRpdHkuanMKQEAgLTExLDM2
ICsxMSwxNCBAQCB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAvLyBpZiB3ZSdyZSBpbiBhIHByZS1m
ZXRjaGVkIHN0YXRlIG9yIG5vdAogc2VsZi50ZXN0TGVuZ3RoID0gMjU7CiAKLWZ1bmN0aW9uIHRl
c3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURh
dGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIG9wZW5EYXRhYmFz
ZSgpOwotfQotCi1mdW5jdGlvbiBvcGVuRGF0YWJhc2UoKQotewotICAgIHJlc3VsdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3ItY29udGludWUnKSIpOwotICAgIHJlc3VsdC5v
bnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oKQotewotICAgIHNlbGYuZGIg
PSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXN1bHQu
b25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQotewotICAg
IHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
KyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2VsZi50cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25O
dWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKIAotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzZWxmLm9iamVjdFN0
b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScp
Iik7CiAgICAgc2VsZi5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0
ZUluZGV4KCdzb21lSW5kZXgnLCAneCcpIik7CiAgICAgc2VsZi5uZXh0VG9BZGQgPSAwOwpAQCAt
MTc2LDUgKzE1NCwzIEBAIGZ1bmN0aW9uIG1vZGlmeUNvbnRpbnVlT3JkZXJDYWxsYmFjaygpCiAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGlu
dWUuanMKaW5kZXggNWY1YWUzNWJkYmE2ODdmYmJjY2ZiYWMwODQyYzhkODAwN2FmMTkxNC4uYzM3
NTBmZTQxZGY0OTNkYmU5ZmU5MTQyNzQxNTVkOWFjYjEzMDIxZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVl
LmpzCkBAIC0yOSwzNSArMjksMTEgQEAgc2VsZi50ZXN0RGF0YSA9IFsKICAgICAidGhlIEJJR0dF
U1Qgc3RyaW5nIgogXTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSwgb25UcmFuc2FjdGlvbkNvbXBsZXRlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICBvcGVuRGF0YWJhc2UoKTsK
LX0KLQotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKLXsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbignY3Vyc29yLWNvbnRpbnVlJykiKTsKLSAgICByZXN1bHQub25zdWNj
ZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uKCkKLXsKLSAgICBzZWxmLmRiID0gZXZh
bEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXN1bHQgPSBldmFs
QW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVzdWx0Lm9uc3Vj
Y2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxm
LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAg
c2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIg
PSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAKICAgICBzZWxmLm9iamVjdFN0b3JlID0g
ZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScpIik7CiAg
ICAgc2VsZi5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4
KCdzb21lSW5kZXgnLCAneCcpIik7CkBAIC0yNTIsNyArMjI4LDYgQEAgZnVuY3Rpb24gZGVzY2Vu
ZGluZ0Vycm9yVGVzdEVxdWFsKCkKICAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQu
cmVzdWx0LnByaW1hcnlLZXkiLCAiMTUiKTsKICAgICAgICAgICAgIGV2YWxBbmRMb2coImN1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKICAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoJ0EgYml0MicpIiwgIklEQkRhdGFi
YXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIidEYXRhRXJyb3InIik7Ci0gICAgICAgICAgICBzZWxm
LnRyYW5zLm9uY29tcGxldGUgPSBvblRyYW5zYWN0aW9uQ29tcGxldGU7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRlc3RGYWlsZWQoIklsbGVnYWwg
c3RhZ2UuIik7CkBAIC0yNjYsNSArMjQxLDMgQEAgZnVuY3Rpb24gb25UcmFuc2FjdGlvbkNvbXBs
ZXRlKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3IuY29udGludWUoKSIsICJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0
aW9uSW5hY3RpdmVFcnJvciciKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1kZWxldGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vy
c29yLWRlbGV0ZS5qcwppbmRleCA0MjVmZjc3YWUxODJkYmM3YmFkOTQyMDA1OTBkOTIwYTljZTc5
MWY4Li4yNmM0OGExNDQ1N2RhZTE2OGRhYjFhOGUwMjE1NTIxMWYzNzA0YWQ2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWRlbGV0ZS5q
cworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWRl
bGV0ZS5qcwpAQCAtNSwzNCArNSwxNCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRl
c2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7CiAKLXRlc3QoKTsKLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1kZWxldGUnKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsK
LSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVy
c2lvblN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5DdXJzb3Ip
OworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CiAgICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7CiAgICAgc2VsZi50cmFu
cyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwogICAgIHNob3Vs
ZEJlTm9uTnVsbCgidHJhbnMiKTsKICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0
Q2FsbGJhY2s7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IG9wZW5DdXJzb3I7Ci0KLSAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwogCiAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZhbEFuZExv
Zygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpIik7CiAgICAgZXZh
bEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdteVZhbHVlMScsICdteUtleTEnKSIpOwpAQCAtMTAy
LDQgKzgyLDQgQEAgZnVuY3Rpb24gdmVyaWZ5T2JqZWN0RGVsZXRlZCgpCiB7CiAgICAgc2hvdWxk
QmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5kZWZpbmVkIik7CiAgICAgZmluaXNoSlNUZXN0
KCk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmNvbnNp
c3RlbmN5LmpzCmluZGV4IDVmMjQ4ODIwN2FjNWFiZDBmZjIzNDA0MDkyOTM0NDU1MzAxZjYxNDMu
LjM5MmQ1MTRhNWE2NDg1ODM0YzBmNWJkNzRmMTMwNmVmMjk0MTRkYzYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5jb25zaXN0ZW5j
eS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29y
LWluY29uc2lzdGVuY3kuanMKQEAgLTUsNDEgKzUsMjAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBjb25zaXN0ZW5jeSBvZiBJbmRleGVkREIncyBjdXJz
b3Igb2JqZWN0cy4iKTsKIAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbignY3Vyc29yLWluY29uc2lzdGVuY3knKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
b3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICB2YXIgZGIgPSBldmFsQW5k
TG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQoraW5kZXhl
ZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5CYXNpY0N1cnNvcik7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBkZWJ1
Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygi
dHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2VsZi50cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25O
dWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkJhc2ljQ3Vyc29yOwotCi0gICAgZGVsZXRl
QWxsT2JqZWN0U3RvcmVzKGRiKTsKIAogICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2co
Im9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jhc2ljU3RvcmUnKSIpOwogICAg
IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnc29tZVZhbHVlMScsICdzb21lS2V5MScpLm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOwogICAgIGV2YWxBbmRMb2coIm9iamVj
dFN0b3JlLmFkZCgnc29tZVZhbHVlMicsICdzb21lS2V5MicpLm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjayIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnc29tZVZh
bHVlMycsICdzb21lS2V5MycpLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOwog
ICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnc29tZVZhbHVlNCcsICdzb21lS2V5NCcp
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOwotCiB9CiAKIGZ1bmN0aW9uIG9w
ZW5CYXNpY0N1cnNvcigpCkBAIC04Miw0ICs2MSw0IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQ29t
cGxldGUoKQogewogICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRlKCkiKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWluZGV4LWRl
bGV0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
aW5kZXgtZGVsZXRlLmpzCmluZGV4IGQxYWU5Njk3YzFjZmMzY2NkN2VhMmZkNGY2ZjA4YjczNTAy
MDRhMTMuLjQzMzJiOTQwZjAwZDAyODI5NDhkZjEwYWQ0NTg1YzViOTYyZmY5YjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5kZXgt
ZGVsZXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItaW5kZXgtZGVsZXRlLmpzCkBAIC01LDM1ICs1LDE1IEBAIGlmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgb3BlbkN1cnNvci4iKTsK
IAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWlu
ZGV4LWRlbGV0ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNp
b24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25T
dWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIGRlYnVnKCJzZXRW
ZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Cisg
ICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uIik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQg
PSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkN1
cnNvcjsKIAotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3Qn
KSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCd0ZXN0SW5kZXgn
LCAneCcpIik7CiAKQEAgLTEwNiw0ICs4Niw0IEBAIGZ1bmN0aW9uIHZlcmlmeU9iamVjdERlbGV0
ZWQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgInVuZGVmaW5lZCIp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJz
b3Ita2V5LW9yZGVyLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1rZXktb3JkZXIuanMKaW5kZXggZWRjZTU4MGYyZTZmMTc4ZjBiMWM4ZTUyZTg5ZmE5
Nzc2M2E3ZmNlYy4uZmRlMTU5YzcyZjExNDBiYTIyM2U5YWM3M2FiNTIxMzRmNzlkYWNjYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1r
ZXktb3JkZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1rZXktb3JkZXIuanMKQEAgLTUsMzEgKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmluZyBhbmQg
cmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KK2luZGV4
ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBwb3B1bGF0ZVN0b3JlKTsKIGZ1bmN0aW9uIHByZXBh
cmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlbGV0ZVJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2N1cnNvci1rZXktb3JkZXInKSIpOwot
ICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
IGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsQW5k
TG9nKCJvcGVucmVxID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1rZXktb3JkZXInKSIpOwotICAg
ICAgICBvcGVucmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAg
b3BlbnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV2YWxBbmRMb2co
ImRiID0gb3BlbnJlcS5yZXN1bHQiKTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnJlcSA9
IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgdmVycmVxLm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHZlcnJlcS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgICAgIHZlcnJlcS5yZXN1bHQub25jb21wbGV0ZSA9
IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OwotICAgIH07CisgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZScpIik7CiB9CiAKIHNlbGYua2V5cyA9IFsKQEAgLTIyNSw1ICsyMDUsMyBA
QCBmdW5jdGlvbiB0ZXN0S2V5Q29tcGFyZSgpCiAgICAgICAgIH0KICAgICB9CiB9Ci0KLXRlc3Qo
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmV2LW5vLWR1
cGxpY2F0ZS5qcwppbmRleCAyYjA4MzNiYzcyMDYwM2EzZjhjZWQyZjRjMGU3NTQxNjQyNWQ5NDA1
Li44MmRkMjkyM2Y4M2U4NzU3ZmE4YTUwMjU0NTYxOGEzYWQxY2JiYTYxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByZXYtbm8tZHVw
bGljYXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItcHJldi1uby1kdXBsaWNhdGUuanMKQEAgLTUsMzEgKzUsMTIgQEAgaWYgKHRoaXMuaW1w
b3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgYmVoYXZpb3Igd2hl
biBpdGVyYXRpbmcgYmFja3dhcmRzIHdpdGggYW5kIHdpdGhvdXQgTk9fRFVQTElDQVRFIik7CiAK
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBw
cmVwYXJlRGF0YWJhc2UoKTsKLX0KLQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHBv
cHVsYXRlU3RvcmUpOwogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZXZhbEFuZExvZygib3BlbnJlcSA9IGluZGV4ZWREQi5vcGVuKCdjdXJzb3ItcHJl
di1uby1kdXBsaWNhdGUnKSIpOwotICAgIG9wZW5yZXEub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwotICAgIG9wZW5yZXEub25zdWNjZXNzID0gZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgZXZhbEFuZExvZygiZGIgPSBvcGVucmVxLnJlc3VsdCIpOwotICAgICAgICBldmFsQW5k
TG9nKCJ2ZXJyZXEgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgdmVycmVxLm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgdmVycmVxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKLSAgICAgICAgICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUuY3Jl
YXRlSW5kZXgoJ2luZGV4JywgJ3NvcnRlZCcpIik7Ci0gICAgICAgICAgICB2ZXJyZXEucmVzdWx0
Lm9uY29tcGxldGUgPSBwb3B1bGF0ZVN0b3JlOwotICAgICAgICB9OwotICAgIH07CisgICAgZGIg
PSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmNy
ZWF0ZUluZGV4KCdpbmRleCcsICdzb3J0ZWQnKSIpOwogfQogCiBmdW5jdGlvbiBwb3B1bGF0ZVN0
b3JlKCkKQEAgLTIzMiw1ICsyMTMsMyBAQCBmdW5jdGlvbiBydW5UZXN0KG9wZW5DdXJzb3IsIGV4
cCkKIAogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci5qcwppbmRleCAwMTE5
ZGVkZTNjMTliNGJkNzYyM2NjMDczOGQ4OGRkNjIyMDdhYzRhLi5jYmM1NzMyMjkzZGRlNWQzNGRl
NzcwYWVmZTAxMDhjYmJkOGYxNjUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXIuanMKQEAgLTUsMzIgKzUsMTIgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIgcHJpbWFyeSBrZXkgb3JkZXJpbmcgYW5kIHJlYWRiYWNr
IGZyb20gY3Vyc29ycy4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLQotICAgIHByZXBhcmVEYXRhYmFzZSgpOwotfQotCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSwgcG9wdWxhdGVTdG9yZSk7CiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJh
c2UoKQogewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWxldGVSZXF1ZXN0ID0gZXZhbEFuZExvZygi
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXInKSIpOwot
ICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
IGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsQW5k
TG9nKCJvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdjdXJzb3ItcHJpbWFyeS1rZXktb3Jk
ZXInKSIpOwotICAgICAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgZXZhbEFuZExvZygiZGIgPSBvcGVuUmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAg
ICAgIGV2YWxBbmRMb2coInZlcnNpb25DaGFuZ2VSZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScp
Iik7Ci0gICAgICAgICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExv
ZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnaW5kZXhLZXknKSIpOwotICAg
ICAgICAgICAgICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0LnJlc3VsdC5vbmNvbXBsZXRlID0gcG9w
dWxhdGVTdG9yZTsKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgIGV2YWxBbmRMb2coImluZGV4ID0gc3RvcmUuY3Jl
YXRlSW5kZXgoJ2luZGV4JywgJ2luZGV4S2V5JykiKTsKIH0KIAogc2VsZi5rZXlzID0gWwpAQCAt
OTcsNSArNzcsMyBAQCBmdW5jdGlvbiBjaGVja1N0b3JlKCkKICAgICAgICAgfQogICAgIH07CiB9
Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXJldmVyc2UtYnVnLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1yZXZlcnNl
LWJ1Zy5qcwppbmRleCAzYzJkNTEzZTJjYmE0MWM3M2Y2OWU3YTIzYmYyY2Y2MzQ0N2Q2YTNhLi5h
OTUwNmI5YjRlMDYwNzFlYTc5OGUxMDA2YTk0ZTBlYWJlZGJhZDEyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXJldmVyc2UtYnVnLmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcmV2
ZXJzZS1idWcuanMKQEAgLTUsMjkgKzUsMTIgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmluZyBhbmQgcmVhZGJhY2sg
ZnJvbSBjdXJzb3JzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOwotCi0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCBwb3B1bGF0ZVN0b3JlKTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGV2YWxBbmRMb2coIm9wZW5yZXEgPSBpbmRleGVk
REIub3BlbignY3Vyc29yLXJldmVyc2UtYnVnJykiKTsKLSAgICBvcGVucmVxLm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICBvcGVucmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KCkgewotICAgICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0Iik7Ci0gICAgICAg
IGV2YWxBbmRMb2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICB2ZXJy
ZXEub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICB2ZXJyZXEub25z
dWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpOwotICAgICAgICAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5jcmVh
dGVJbmRleCgnaW5kZXgnLCAnJykiKTsKLSAgICAgICAgICAgIHZlcnJlcS5yZXN1bHQub25jb21w
bGV0ZSA9IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5k
ZXgoJ2luZGV4JywgJycpIik7CiB9CiAKIGZ1bmN0aW9uIHBvcHVsYXRlU3RvcmUoKQpAQCAtOTcs
NSArODAsMyBAQCBmdW5jdGlvbiB0ZXN0Q3Vyc29yKCkKICAgICBpbmRleEtleVJlcSA9IGV2YWxB
bmRMb2coImluZGV4S2V5UmVxID0gaW5kZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5nZS51cHBl
ckJvdW5kKHRlc3QudXBwZXJCb3VuZCwgdGVzdC5vcGVuKSwgJ3ByZXYnKSIpOwogICAgIGluZGV4
S2V5UmVxLm9uc3VjY2VzcyA9IHRlc3RGdW5jdGlvbjsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9jdXJzb3Itc2tpcC1kZWxldGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lwLWRlbGV0ZWQuanMKaW5kZXggNjM2MDA3
NDg2ZmVhZTAzZDQyMDg2M2MyOTFlM2IyZjRkYTA4ZDRmNy4uZTY1MzA1MmRhNDY1MjEyZGNiZDIy
YjZjMGYyZjJkMTU5OGIxZjg1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lwLWRlbGV0ZWQuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lwLWRlbGV0ZWQuanMKQEAgLTEw
LDM0ICsxMCwxNCBAQCB2YXIgbmFtZXMgPSBbJ0FscGhhJywgJ0JyYXZvJywgJ0NoYXJsaWUnLCAn
RGVsdGEnLCAnRWNobycsICdGb3h0cm90JywgJ0dvbGYnLAogICAgICAgICAgICAgICdPc2Nhcics
ICdQYXBhJywgJ1F1ZWJlYycsICdSb21lbycsICdTaWVycmEnLCAnVGFuZ28nLCAnVW5pZm9ybScs
CiAgICAgICAgICAgICAgJ1ZpY3RvcicsICdXaGlza2V5JywgJ1gtcmF5JywgJ1lhbmtlZScsICda
dWx1J107CiAKLXRlc3QoKTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2N1
cnNvci1za2lwLWRlbGV0ZWQnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRW
ZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQoraW5kZXhlZERCVGVzdChw
cmVwYXJlRGF0YWJhc2UsIGJhc2ljQ3Vyc29yVGVzdCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJh
c2UoKQogeworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBkZWJ1Zygic2V0VmVy
c2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5z
ID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFu
cyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0
cmFucy5vbmNvbXBsZXRlID0gYmFzaWNDdXJzb3JUZXN0OwotCi0gICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKIAogICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6ICdpZCd9KSIpOwog
ICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCduYW1lSW5kZXgnLCAnbmFt
ZScpIik7CkBAIC0xOTAsNCArMTcwLDQgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21wbGV0ZSgp
CiB7CiAgICAgZGVidWcoInRyYW5zYWN0aW9uQ29tcGxldGUoKToiKTsKICAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXVwZGF0ZS12YWx1ZS1h
cmd1bWVudC1yZXF1aXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpzCmluZGV4IDE3YjUx
ZDk3ZGIzZjQwM2Q2ZmUyMzM2YmM1ZjMwNzExZjFjZTJmODMuLjJjZTMwYTdjZjY2YWFlN2IwMmJi
ZGE2NWU0ZjA1YjkzYzU3ODI4MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBk
YXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpzCkBAIC01LDI5ICs1LDEwIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNvci51
cGRhdGUgcmVxdWlyZWQgYXJndW1lbnRzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0
aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0K
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIp
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdGVzdEdyb3VwMTsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gdGVzdEdyb3VwMSgp
Ci17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdhdXRvSW5jcmVtZW50JywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOwogCiAg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29y
KCk7Iik7CkBAIC02OCw1ICs0OSwzIEBAIGZ1bmN0aW9uIHRlc3RHcm91cDMoKQogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLXVwZGF0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItdXBkYXRlLmpzCmluZGV4IDc4OWU2MmQ4OWM3ZTU2ODU5NWJlZTJkZjhhMDRk
YThmYzA0ZjhjMjEuLmFiNWY0MWM3Y2I5YTE4YzI4MTRmZWIxZWJiMTVmZjRjN2Q2NTM3NjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3It
dXBkYXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItdXBkYXRlLmpzCkBAIC01LDI5ICs1LDEyIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29yIHVwZGF0ZS4iKTsKIAot
dGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLXVwZGF0
ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1
Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2
ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5j
dGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7
CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5z
ID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2VsZi50
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAg
ICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKICAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkJhc2ljQ3Vyc29y
OwpAQCAtMjMyLDQgKzIxNSw0IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogewog
ICAgIGRlYnVnKCJ0cmFuc2FjdGlvbkNvbXBsZXRlKCkiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
LX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXZhbHVlLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci12YWx1ZS5qcwppbmRleCA5MWVm
ZTg3NDExOWRhMTdmZWMzNmVkNmVlNWVjMDQyZjdiMDc1OGM5Li5kZDY4NjZhODI1ZGJjNDdhZWU1
ODkwN2E2YTBhOGY4MmMzN2FkNTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXZhbHVlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdmFsdWUuanMKQEAgLTUsMjUgKzUsMTEgQEAg
aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIn
cyBjdXJzb3IgdmFsdWUgcHJvcGVydHkuIik7CiAKLXJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci1v
cGVuRGF0YWJhc2UoKTsKLQotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCB0ZXN0Q3Vyc29yKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgp
CiB7Ci0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdjdXJzb3ItdmFs
dWUnKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2co
ImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IHJlcXVlc3Qu
cmVzdWx0Iik7Ci0gICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotICAg
ICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAg
ICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0ZXN0Q3Vyc29yOwotICAgICAgICB9
OwotICAgIH07CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2YWxBbmRMb2co
ImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiB9CiAKIGZ1bmN0aW9uIHRlc3RDdXJz
b3IoKQpAQCAtMTIxLDQgKzEwNyw0IEBAIGZ1bmN0aW9uIGVuc3VyZU1vZGlmaWNhdGlvbnNOb3RQ
ZXJzaXN0ZWQoKQogICAgICAgICBzaG91bGRCZSgiY3Vyc29yLnZhbHVlLmZvbyIsICJ1bmRlZmlu
ZWQiKTsKICAgICB9OwogICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7
Ci0gfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YS1jb3JydXB0aW9uLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGEtY29ycnVwdGlvbi5qcwpp
bmRleCAyYTA4YmYxZDQzOGRlNWY3YTg0ZjUwMzlmOThjNDczY2E1NzEwNjA0Li45ZDdlOTU5MDlj
OTE1OGQ2N2Y0ZTUzOTM1NDdkNjVlMDRjMGUxNjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YS1jb3JydXB0aW9uLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhLWNvcnJ1cHRpb24uanMKQEAg
LTUsMzMgKzUsMTQgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IGRhdGEgaW5zZXJ0ZWQgaW50byBJbmRleGVkREIgZG9lcyBub3QgZ2V0IGNvcnJ1
cHRlZCBvbiBkaXNrLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZGF0
YS1jb3JydXB0aW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5j
dGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAg
c2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9u
U3VjY2VzcygpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgYWRkRGF0YSk7CitmdW5j
dGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
ICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2VsZi50cmFucyA9
IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hv
dWxkQmVOb25OdWxsKCJ0cmFucyIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJv
cnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gYWRkRGF0YTsKLQotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAKICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykiKTsKIH0KQEAgLTYxLDUgKzQyLDMgQEAgZnVuY3Rpb24gZG9DaGVj
aygpCiAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQueC50b1N0cmluZygpIiwgInRl
c3REYXRlLnRvU3RyaW5nKCkiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtZGVsZXRlcGVu
ZGluZy1mbGFnLmpzCmluZGV4IGUxYWMxMDg0NTVhODYzYzE1M2I3OWEzMzNkMDRmZWNjMjYzODg3
ZTkuLjc3MzdiMzk2ZjhmN2I1YjhmZGYzNjE2MjliNThmYjRkN2VhZmJkYTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVw
ZW5kaW5nLWZsYWcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5qcwpAQCAtNSwzNyArNSwxMiBAQCBpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBJREJE
YXRhYmFzZSBpbnRlcm5hbCBkZWxldGUgcGVuZGluZyBmbGFnIik7CiAKLWZ1bmN0aW9uIHRlc3Qo
KQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3REYXRhYmFzZURlbGV0ZSwgNSk7
CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVz
KCk7Ci0KLSAgICBldmFsQW5kTG9nKCJkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lIik7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuQ29ubmVjdGlvbjsKLX0KLQotZnVuY3Rpb24gb3Bl
bkNvbm5lY3Rpb24oKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiT3BlbiBhIGNvbm5l
Y3Rpb24gYW5kIHNldCBhIHNlbnRpbmVsIHZlcnNpb246Iik7Ci0gICAgZXZhbEFuZExvZygidmVy
c2lvbiA9ICcxMCciKTsKLSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRM
b2coImNvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0ID0gY29ubmVjdGlvbi5zZXRWZXJzaW9uKHZlcnNpb24pIik7Ci0gICAgICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9u
YmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0
OwotICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwot
ICAgICAgICAgICAgc2hvdWxkQmUoImNvbm5lY3Rpb24udmVyc2lvbiIsICJ2ZXJzaW9uIik7Ci0g
ICAgICAgICAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZScpIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgiY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVz
Lmxlbmd0aCIsICIxIik7Ci0gICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gdGVzdERhdGFi
YXNlRGVsZXRlOwotICAgICAgICB9OwotICAgIH07CisgICAgY29ubmVjdGlvbiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnKSIpOworICAgIHNob3VsZEJlKCJjb25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoIiwgIjEiKTsKIH0KIAogZnVuY3Rpb24gdGVzdERhdGFiYXNlRGVsZXRlKCkKQEAgLTg2
LDUgKzYxLDMgQEAgZnVuY3Rpb24gdGVzdERhdGFiYXNlRGVsZXRlKCkKICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CiAgICAgfTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZS1yYW5nZS5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGUtcmFuZ2UuanMKaW5kZXggYTJlMTQ1
ZWNhNDZkNzhlYWExZjZiYWIxNDNmOGM0Njk1YTZjYTNkZS4uMzhiMjI1ZjBkODBlMzI5YjNjNjY4
NGY3MDg0NTM4ODdiMmE4OTMwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2RlbGV0ZS1yYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLXJhbmdlLmpzCkBAIC01LDI5ICs1LDExIEBAIGlm
ICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mg
SURCT2JqZWN0U3RvcmUuZGVsZXRlKElEQktleVJhbmdlKSBtZXRob2QuIik7CiAKLWZ1bmN0aW9u
IHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHJ1blRlc3RzKTsKK2Z1bmN0
aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQot
ICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RlbGV0
ZS1yYW5nZScpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbignZGVsZXRlLXJhbmdlJykiKTsKLSAgICAg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZXZhbEFuZExvZygi
ZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ0cmFucyA9IHJlcXVlc3Qu
cmVzdWx0Iik7Ci0gICAgICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOwotCi0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJykiKTsKLQotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBy
dW5UZXN0czsKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfQorICAgIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKSIpOwogfQogCiBmdW5jdGlvbiBjaGVja0tleXMoZXhwZWN0ZWQsIGNhbGxiYWNrKQpA
QCAtODYsNSArNjgsMyBAQCBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgfQogICAgIG5leHRUZXN0
KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlSW5kZXguanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlSW5kZXguanMK
aW5kZXggNjczNGZlZTJlM2EyMjk1ZWE3NGRjNmIxYTM4NGM4MDc3ZDYxYjE3Zi4uYjQ4YzU5NGUw
NDI5ZTkwNjlmYjBhYjRhNzc5YTVhMTBhY2U3Y2ZlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZUluZGV4LmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVJbmRleC5qcwpAQCAtNSwzMSAr
NSwxMCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IElu
ZGV4ZWREQiBkZWxldGVJbmRleCBtZXRob2QiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSwgcG9zdFR3aWRkbGluZyk7CitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkZWxldGVJbmRleCcpIik7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRi
ID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gdHdpZGRsZUluZGV4ZXM7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHR3aWRkbGVJbmRleGVzKCkKLXsK
LSAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsiKTsKLSAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwotICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBwb3N0VHdpZGRsaW5nOwotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAg
ICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdmb28nKTsiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9y
ZS5kZWxldGVJbmRleCgnZmlyc3QnKSIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIsICIn
Tm90Rm91bmRFcnJvciciKTsKICAgICBzaG91bGRUaHJvdygib2JqZWN0U3RvcmUuZGVsZXRlSW5k
ZXgoKSIpOyAvLyBUeXBlRXJyb3I6IG5vdCBlbm91Z2ggYXJndW1lbnRzLgpAQCAtNDYsNSArMjUs
MyBAQCBmdW5jdGlvbiBwb3N0VHdpZGRsaW5nKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJvYmplY3RTdG9yZS5kZWxldGVJbmRleCgnc2Vjb25kJykiLCAiSURCRGF0YWJhc2VFeGNlcHRp
b24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3In
Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1l
LWFyZ3VtZW50LXJlcXVpcmVkLmpzCmluZGV4IDAzNjdiYmY2ZTE0MjkxMmYxY2MzZjU2NGQ5OTU4
ZWEzZDNhODU3NzcuLjEyMzg3ZTljMjM3MWI3YjFmYjcwZDBjZThmNTU3ODFhZTI4YjE2ZDUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVP
YmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50
LXJlcXVpcmVkLmpzCkBAIC01LDMxICs1LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGRlbGV0ZU9iamVjdFN0b3JlIHJlcXVpcmVk
IGFyZ3VtZW50Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0
YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0g
ZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQW5k
UG9wdWxhdGVPYmplY3RTdG9yZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsK
LQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBzaG91bGRUaHJvdygiZGIuZGVs
ZXRlT2JqZWN0U3RvcmUoKTsiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUt
bnVsbC1uYW1lLmpzCmluZGV4IGJhYTYzMTc3ZDIzNGMyNmUwY2ZkODU0MzljZGE0ODU0N2NlMDIz
OTcuLjBiMmU0OTc0ZjEzMzQ1MzI4Zjk5NmM2OGRhYzNlNmQ5OWY1MDI1ZWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9y
ZS1udWxsLW5hbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcwpAQCAtNSwzMiArNSwxMiBAQCBpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBkZWxl
dGVPYmplY3RTdG9yZSByZXF1aXJlZCBhcmd1bWVudCIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2lu
ZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgp
CiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0
aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbihu
YW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5T
dWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0
U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogCiAg
ICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ251bGwnKTsiKTsKICAgICBldmFs
QW5kTG9nKCJkYi5kZWxldGVPYmplY3RTdG9yZShudWxsKTsiKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVkLW9iamVjdHMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlZC1vYmpl
Y3RzLmpzCmluZGV4IDg0ZTVkNjJlYzVjMmNiMmY0MjJiYzg5NzMzZjA4ZjI3MzY1ZTBlYjAuLjcy
ZWVmZTVmNTg2NzQ1OTZlMDYwNjVkZmE2NTVjOTM3OWMxYzRjODAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVkLW9iamVjdHMuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWQtb2JqZWN0
cy5qcwpAQCAtNSw4MCArNSw2MCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgSW5kZXhlZERCIG9iamVjdHMgdGhhdCBoYXZlIGJlZW4gZGVsZXRl
ZCB0aHJvdyBleGNlcHRpb25zIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChw
cmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOwotICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRp
b24ucGF0aG5hbWUiKTsKLSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5EYXRhYmFzZTsKLX0KKyAg
ICB0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICBjb25uZWN0aW9uID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKIAotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKLXsKICAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoIm9wZW5EYXRhYmFzZSgpOiIpOwotICAgIGV2YWxBbmRMb2coInJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7
Ci0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEn
KSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRy
YW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygiZGVsZXRlZFN0b3JlID0gY29u
bmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnZGVsZXRlZFN0b3JlJykiKTsKKyAgICBldmFsQW5k
TG9nKCJzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAg
ICBldmFsQW5kTG9nKCJkZWxldGVkSW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnZGVsZXRlZElu
ZGV4JywgJ3BhdGgnKSIpOwogCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBl
dmFsQW5kTG9nKCJkZWxldGVkU3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdk
ZWxldGVkU3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUgPSBjb25uZWN0
aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9n
KCJkZWxldGVkSW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnZGVsZXRlZEluZGV4JywgJ3BhdGgn
KSIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJj
b25uZWN0aW9uLmRlbGV0ZU9iamVjdFN0b3JlKCdkZWxldGVkU3RvcmUnKSIpOwotICAgICAgICAg
ICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5kZXgoJ2RlbGV0ZWRJbmRleCcpIik7CisgICAg
ZGVidWcoIiIpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24uZGVsZXRlT2JqZWN0U3RvcmUo
J2RlbGV0ZWRTdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5kZXgoJ2Rl
bGV0ZWRJbmRleCcpIik7CiAKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5wdXQoMCwgMCkiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAg
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5hZGQoMCwgMCkiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAg
ICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxldGUoMCki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxl
dGUoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRlbGV0ZWRTdG9yZS5nZXQoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVf
RVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRTdG9yZS5nZXQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAg
ICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jbGVhcigpIiwgIkRP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0g
ICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3BlbkN1cnNv
cigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJy
b3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUu
b3BlbkN1cnNvcigwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFs
aWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVs
ZXRlZFN0b3JlLm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgw
KSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJv
ciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5v
cGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jcmVhdGVJbmRleCgnbmFtZScsICdw
YXRoJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9y
ZS5pbmRleCgnbmFtZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52
YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
ZWxldGVkU3RvcmUuZGVsZXRlSW5kZXgoJ25hbWUnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNvdW50KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudCgwKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNvdW50KElEQktleVJhbmdlLm9u
bHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRl
RXJyb3InIik7CisgICAgZGVidWcoIiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRl
bGV0ZWRTdG9yZS5wdXQoMCwgMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwg
IidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkU3RvcmUuYWRkKDAsIDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICIn
SW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRl
ZFN0b3JlLmRlbGV0ZSgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0lu
dmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRT
dG9yZS5kZWxldGUoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJkZWxldGVkU3RvcmUuZ2V0KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRF
X0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZFN0b3JlLmdldChJREJLZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jbGVhcigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZB
TElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoKSIsICJET01FeGNlcHRpb24uSU5W
QUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKDApIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKElEQktleVJh
bmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3Jl
Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jcmVhdGVJbmRleCgnbmFtZScsICdwYXRoJyki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuaW5kZXgoJ25hbWUn
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxldGVJbmRl
eCgnbmFtZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNv
dW50KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY291bnQo
MCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJv
ciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY291bnQoSURC
S2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJ
bnZhbGlkU3RhdGVFcnJvciciKTsKIAotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoKSIsICJE
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwot
ICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJz
b3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRl
eC5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0g
ICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNv
cihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NU
QVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcigpIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcigwKSIs
ICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIp
OwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5L
ZXlDdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAg
ICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vy
c29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoSURCS2V5UmFuZ2Uub25seSgwKSki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvcici
KTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXRL
ZXkoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVF
cnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRl
eC5nZXRLZXkoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudCgpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguY291bnQoMCkiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudChJREJLZXlSYW5nZS5vbmx5
KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVy
cm9yJyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkSW5kZXgub3BlbkN1cnNvcigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIs
ICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVs
ZXRlZEluZGV4Lm9wZW5DdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
ZWxldGVkSW5kZXgub3BlbkN1cnNvcigwLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
KyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNvcihJREJL
ZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJh
bmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4
Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJET01FeGNlcHRp
b24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoMCkiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0KElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Cisg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmdldEtleSgwKSIsICJET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXRLZXkoSURCS2V5UmFuZ2Uu
b25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguY291
bnQoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVy
cm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudCgw
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudChJREJL
ZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0lu
dmFsaWRTdGF0ZUVycm9yJyIpOwogCi0gICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBl
Y3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gZmluaXNo
SlNUZXN0OwotICAgICAgICB9OwotICAgIH07CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CiB9
Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdC5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdC5q
cwppbmRleCBkOGI3NjJjOGMzNjFiMjk5NmM2MjhiNzk1Njg0NTgzYWQwMTBmMmE4Li5hN2Q4YjA5
YTNiMTU3NDc2MjIxNjJkNmJjODcwY2NiNzAzYzQ4MjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1
bHQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2Vycm9y
LWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0LmpzCkBAIC01LDMzICs1LDE0IEBAIGlmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGEgdHJhbnNhY3Rpb24g
d2l0aCBhbiBlcnJvciBhYm9ydHMgdW5sZXNzIHByZXZlbnREZWZhdWx0KCkgaXMgY2FsbGVkLiIp
OwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZXJyb3ItY2F1c2VzLWFib3J0
LWJ5LWRlZmF1bHQnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gc2V0VmVyc2lvbigpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCdu
ZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gZGVsZXRlRXhpc3RpbmcoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIGFk
ZERhdGEpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKKyAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CiAgICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2Vs
Zi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAg
IHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlv
biIpOwogICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKICAgICB0cmFucy5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0
ZSA9IGFkZERhdGEiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBl
dmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKIH0K
IApAQCAtOTcsNSArNzgsMyBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQyKCkKICAgICB0
ZXN0UGFzc2VkKCJUcmFuc2FjdGlvbiBhYm9ydGVkIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZXhjZXB0aW9uLWluLWV2ZW50LWFi
b3J0cy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9leGNlcHRp
b24taW4tZXZlbnQtYWJvcnRzLmpzCmluZGV4IDU3OGMzY2RiNDZkMzE1Njg0N2Y0NGRjNGY5NzY0
ZmMxNTQzZDJjYWEuLjM3OTY2NDMwNDA1MTIxMmMwMzAwNzE0ZTg3MDlhZDcyNzRlMDViZjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9leGNlcHRp
b24taW4tZXZlbnQtYWJvcnRzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmpzCkBAIC01LDMzICs1LDExIEBA
IGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgZXhjZXB0aW9u
cyBpbiBJREJSZXF1ZXN0IGhhbmRsZXJzIGNhdXNlIGFib3J0cy4iKTsKIAotZnVuY3Rpb24gdGVz
dCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgc3RhcnRUZXN0KTsKK2Z1bmN0aW9u
IHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2V4Y2VwdGlvbi1pbi1ldmVudC1h
Ym9ydHMnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0
VmVyc2lvbigpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVy
c2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
ZGVsZXRlRXhpc3RpbmcoKQotewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwot
ICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUg
PSBzdGFydFRlc3QiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICBzdG9yZSA9IGV2YWxBbmRMb2co
InN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAn
a2V5JykiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
QEAgLTExNyw1ICs5NSwzIEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGVkMigpCiAgICAg
ZGVidWcoIiIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9nZXQta2V5cmFuZ2UuanMKaW5kZXggODEwZjUzMDU3M2IxYTlhMTA0YjU0
Mjg3NjJjYjk5MzY2ODhhNzdmOC4uYTFjZjU3ZjIyMDJhYWU5ZDgxY2MwYTQ1ZDI1OWRiODA1MmQ3
NmFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2dldC1rZXlyYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZ2V0LWtleXJhbmdlLmpzCkBAIC01LDM2ICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUu
Z2V0KElEQktleVJhbmdlKSBtZXRob2QuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIG9wZW5EYXRhYmFzZSgpOwotfQotCi1mdW5j
dGlvbiBvcGVuRGF0YWJhc2UoKQotewotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKCdjdXJzb3ItY29udGludWUnKSIpOwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBzZXRW
ZXJzaW9uOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oKQotewotICAgIHNlbGYuZGIgPSBldmFsQW5kTG9nKCJk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImRi
LnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gZGVs
ZXRlRXhpc3Rpbmc7Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQotewotICAgIHNlbGYudHJhbnMgPSBl
dmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBzaG91bGRCZU5v
bk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIHNlbGYudGVzdExlbmd0aCA9IDEwOwogICAgIHNl
bGYub2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9i
amVjdFN0b3JlJykiKTsKICAgICBzZWxmLmluZGV4ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUu
Y3JlYXRlSW5kZXgoJ3NvbWVJbmRleCcsICd4JykiKTsKQEAgLTE3OCw1ICsxNTMsMyBAQCBmdW5j
dGlvbiBnZXROdWxsVGVzdChzdG9yZSwgbWV0aG9kLCByZXN1bHRQYXRoLCBmaW5pc2gpCiAgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbihzdG9yZSArICIuIiArIG1ldGhvZCArICIobnVsbCkiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKICAgICBldmFs
QW5kTG9nKGZpbmlzaCk7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtYmFzaWNzLmpzCmluZGV4IGE0OTYxZjZj
NWNjNzE2MDE0NjhkM2QyYjk4YWVmMzg2YzkxNTBjODQuLmY5YmZkNDRjNmM4ODQ4NzhhMDJkMjYy
MzAxYWUxMjg0YjViMzhiNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbmRleC1iYXNpY3MuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2luZGV4LWJhc2ljcy5qcwpAQCAtNSwzNCArNSwxMiBAQCBpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBiYXNpY3Mgb2Yg
SW5kZXhlZERCJ3Mgd2Via2l0SURCSW5kZXguIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhl
ZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2dCkK
IHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbignaW5kZXgtYmFzaWNzJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHNldFZlcnNpb247Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oZXZ0KQotewotICAgIGV2ZW50ID0gZXZ0
OwotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0
aW5nKGV2dCkKLXsKLSAgICBldmVudCA9IGV2dDsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nl
c3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7Ci0KKyAgICBwcmVhbWJsZShldnQpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOwogICAgIHNlbGYuc3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKICAgICBzZWxmLmluZGV4T2JqZWN0ID0gZXZh
bEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICd4JykiKTsKICAgICBzZWxm
LmluZGV4T2JqZWN0MiA9IGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUy
JywgJ3knLCB7dW5pcXVlOiBmYWxzZX0pIik7CkBAIC0zNDQsNiArMzIyLDMgQEAgZnVuY3Rpb24g
aW5kZXgzQ291bnQoZXZ0KQogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXZhciBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1jb3VudC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1jb3VudC5qcwppbmRleCA0ZDRjZDQwMTNkNTFhZTMx
ZTVlNmFkYzdjNjRiOTBmNmNmMGY5MzE2Li43NDk4MWU4ZDRjZTllZjU1MjE1YjU0YjU5NTNmYjAx
NzllMDJmNzU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaW5kZXgtY291bnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2luZGV4LWNvdW50LmpzCkBAIC01LDI4ICs1LDExIEBAIGlmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgSURCSW5kZXguY291
bnQoKS4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2luZGV4LWNvdW50
JykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBkYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgICAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgICAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBwcmVwYXJlRGF0YWJhc2U7Ci0gICAgfTsKLX0KLQoraW5kZXhlZERCVGVzdChwcmVwYXJl
RGF0YWJhc2UsIHZlcmlmeUNvdW50KTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0g
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJwcmVwYXJpbmcgZGF0YWJhc2UiKTsKLSAgICBzZWxm
LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAg
c2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRi
KTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJh
bnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIHN0b3JlID0g
ZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVs
bCkiKTsKIAogICAgIHNlbGYuaW5kZXggPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgn
aW5kZXhOYW1lJywgJycpIik7CkBAIC0zNyw3ICsyMCw2IEBAIGZ1bmN0aW9uIHByZXBhcmVEYXRh
YmFzZSgpCiAgICAgICAgIHJlcXVlc3QgPSBzdG9yZS5hZGQoaSwgaSk7CiAgICAgICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIH0KLSAgICB0cmFucy5v
bmNvbXBsZXRlID0gdmVyaWZ5Q291bnQ7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeUNvdW50KCkKQEAg
LTE1MCw1ICsxMzIsMyBAQCBmdW5jdGlvbiB2ZXJpZnlDb3VudFdpdGhLZXkoKQogCiAgICAgbmV4
dFRlc3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1jdXJz
b3IuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtY3Vy
c29yLmpzCmluZGV4IGYwMDU0MDFiOTJiNGU3Y2VlZjg2YzlkODY5MTRhMTQ4YTI5NWQ4ZTAuLjIw
YWUyMzA0ZTMzNTg2MDU0MWQ3NDViNzE0Nzc2MWI2MzE5YmZlY2YgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1jdXJzb3IuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2luZGV4LWN1cnNvci5qcwpA
QCAtMTgsMjkgKzE4LDExIEBAIHNlbGYudGVzdERhdGEgPSBbCiAgICAgInRoZSBCSUdFU1Qgc3Ry
aW5nIgogXTsKIAotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2luZGV4LWN1cnNvcicpIik7Ci0gICAgcmVzdWx0
Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbigpCi17Ci0gICAgc2VsZi5k
YiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVzdWx0
ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlc3Vs
dC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCi17Ci0g
ICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIp
OwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwor
ICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rp
b24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAgICAgc2VsZi5vYmplY3RT
dG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lT2JqZWN0U3RvcmUn
KSIpOwogICAgIHNlbGYuaW5kZXhPYmplY3QgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5jcmVh
dGVJbmRleCgnc29tZUluZGV4JywgJ3gnKSIpOwpAQCAtMjQ1LDYgKzIyNywzIEBAIGZ1bmN0aW9u
IHRlc3ROdWxsS2V5UmFuZ2UoKQogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3Vyc29ySXRlcmF0
aW9uOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQot
Ci1yZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotb3BlbkRhdGFiYXNlKCk7IC8vIFRoZSBmaXJzdCBz
dGVwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2luZGV4LWR1cGxpY2F0ZS1rZXlwYXRocy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbmRleC1kdXBsaWNhdGUta2V5cGF0aHMuanMKaW5kZXggYzg4OGQ4NDQ5
NTA1MDM4OGFjMjk1ZjQ5NDAyYTMwMmM1ZjQ1ZDVmOS4uNTE2N2IyODVhMDZlY2E3NjFhNjIyZTQz
ZGNkNGQyYzUxYTcxOGFiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2luZGV4LWR1cGxpY2F0ZS1rZXlwYXRocy5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtZHVwbGljYXRlLWtleXBhdGhzLmpz
CkBAIC01LDM0ICs1LDEzIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRp
b24oIlRlc3QgdGhlIHVzZSBvZiBpZGVudGljYWwga2V5cGF0aHMgYmV0d2VlbiBvYmplY3RzdG9y
ZXMgYW5kIGluZGV4ZXMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBh
cmVEYXRhYmFzZSwgc3RvcmVDb2xsaWRlZFN0b3JlSW5kZXhEYXRhKTsKK2Z1bmN0aW9uIHByZXBh
cmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3N0b3JlLWluZGV4LWNvbGxpc2lvbicpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0ZXN0Q29sbGlkZVN0b3JlSW5kZXhTZXR1cDsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gdGVzdENvbGxpZGVTdG9yZUluZGV4U2V0dXAoZXZ0KQotewotICAgIGV2ZW50ID0gZXZ0Owot
ICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHRlc3RDb2xsaWRlU3RvcmVJbmRleDsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb2xsaWRlU3RvcmVJbmRleChldmVudCkK
LXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotICAgIHZhciB0cmFucyA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50
LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAg
ICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnY29sbGlkZVdpdGhJ
bmRleCcsIHtrZXlQYXRoOiAnZm9vJ30pIik7CiAgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9y
ZS5jcmVhdGVJbmRleCgnZm9vJywgJ2ZvbycpIik7Ci0KLSAgICB0cmFucy5vbmNvbXBsZXRlID0g
c3RvcmVDb2xsaWRlZFN0b3JlSW5kZXhEYXRhOwotICAgIHRyYW5zLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2Fs
bGJhY2s7CiB9CiAKIGZ1bmN0aW9uIHJlc3VsdFNob3VsZEJlKHYpIHsKQEAgLTEwMSw2ICs4MCwz
IEBAIGZ1bmN0aW9uIHN0b3JlQ29sbGlkZWRBdXRvSW5jcmVtZW50RGF0YSgpCiBmdW5jdGlvbiB0
ZXN0Q29sbGlkZUluZGV4SW5kZXhTZXR1cCgpIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQot
dmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOwotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVx
dWlyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgt
Z2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5qcwppbmRleCA2N2FmNDhlZTllNDZmMjIyN2NmMTA2
Y2VhMjEzMWFhMjZlOWE3OTMyLi4yMzcyYjdkYzc2M2U0MGNjZDk3MDQ5YTJjNTU5YWRhNjc2MDc3
NjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
aW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5q
cwpAQCAtNSwzNCArNSwxNCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQiBpbmRleCAuZ2V0KCkgcmVxdWlyZWQgYXJndW1lbnQiKTsKIAot
ZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CitmdW5jdGlv
biBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAg
ICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5T
dWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVh
dGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0
b3JlKCkKLXsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJv
YmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdpZCcs
IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Iik7CiAgICAgaW5kZXggPSBldmFsQW5kTG9nKCJpbmRl
eCA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdmaXJzdCcsICdmaXJzdCcpOyIpOwogICAgIHNo
b3VsZFRocm93KCJpbmRleC5nZXQoKTsiKTsKICAgICBzaG91bGRUaHJvdygiaW5kZXguZ2V0S2V5
KCk7Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvaW5kZXgtdW5pcXVlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2luZGV4LXVuaXF1ZS5qcwppbmRleCAzYTJlMzYxZmM1NmQwZDFmOGU5ZGVhMzNk
ZjE4OGEyNDhlNjQ0ZDVlLi4yODUwMmIyY2I0MmNhODk5OWJlNjcwM2UxMWExMjVhYmM4YWRjNGIx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5k
ZXgtdW5pcXVlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbmRleC11bmlxdWUuanMKQEAgLTUsMzcgKzUsMTQgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBmZWF0dXJlcyBvZiBJbmRleGVkREIncyB1bmlxdWUg
aW5kaWNlcy4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRh
YmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlZCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQog
ewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKCdpbmRleC11bmlxdWUnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gc2V0VmVyc2lvbjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbigpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBkZWxldGVFeGlzdGluZzsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQotewotICAgIGRlYnVnKCJk
ZWxldGVFeGlzdGluZygpOiIpOwotICAgIHZhciB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAg
ICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnMub25j
b21wbGV0ZSA9IHNldFZlcnNpb25Db21wbGV0ZWQ7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAgICAgc2Vs
Zi5zdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiAg
ICAgc2VsZi5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRl
eCcsICd4Jywge3VuaXF1ZTogdHJ1ZX0pIik7Ci0KLSAgICAvLyBMZXQgc2V0VmVyc2lvbiB0cmFu
c2FjdGlvbiBjb21wbGV0ZS4KIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbkNvbXBsZXRlZCgpCkBA
IC0xMzMsNSArMTEwLDMgQEAgZnVuY3Rpb24gZmluYWxBZGRTdWNjZXNzKCkgewogICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZmluaXNoSlNUZXN0OwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ludmFsaWQta2V5cy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbnZhbGlkLWtleXMuanMKaW5kZXggZDM2YTA5OGViMWJkNzRlNjdmY2Q3OTBiZmJlMjVlNGYx
NWMzOWFkNC4uOTYwMDdhZTYyM2E0ZTM1MTRjNmFlOWJjMTUzNzA4ZmM1ODA2OWYzMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludmFsaWQta2V5
cy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW52YWxp
ZC1rZXlzLmpzCkBAIC01LDI5ICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAog
ZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGludmFsaWQga2V5cyIpOwogCi1mdW5jdGlvbiB0
ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0
aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDE7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RHcm91cDEoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KKyAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAgICBvYmplY3RTdG9yZSA9IGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAgICB0ZXN0SW52YWxp
ZEtleXMoKTsKIH0KQEAgLTU5LDUgKzQxLDMgQEAgZnVuY3Rpb24gdGVzdEludmFsaWRLZXlzKCkK
IAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMuanMKaW5kZXgg
N2QxZjQyNmZlMzRlMmYxZmQ3NDNlOTQxMmNmNGM4ZTgzNmRkNjJmMy4uNjJkZmNlMjIyMzRkMGE0
M2E3M2I1MWMzZmNiMjY2MWFlOGYzNmM3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXNvcnQtb3JkZXIt
YWNyb3NzLXR5cGVzLmpzCkBAIC01LDI5ICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSBjb21wYXJpc29uIik7CiAKLWZ1
bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAg
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3Vj
Y2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0K
LQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYWRkS2V5
MTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gYWRkS2V5MSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQor
ICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rp
b24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9iamVjdFN0b3JlID0g
ZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKFtdLCBJbmZpbml0eSk7Iik7
CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBhZGRLZXkyOwpAQCAtODAsNSArNjIsMyBAQCBmdW5j
dGlvbiBvcGVuQUN1cnNvcigpCiAgICAgICAgIH0KICAgICB9CiB9Ci0KLXRlc3QoKTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXNvcnQtb3JkZXItZGF0ZS5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1kYXRlLmpzCmluZGV4IDll
N2NhZmJmM2I0Y2JlMGIxMGVmZDViYWRiZTkzZTMzNjNmZGQ3YzMuLjZlMjMxNjI0NDczNWExOWJm
ZGIwNWVhYTA5ODMzMmE0MzA5ZTRkYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1kYXRlLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1kYXRlLmpzCkBA
IC01LDI5ICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCIGtleSBjb21wYXJpc29uIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5k
ZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkK
IHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRp
b24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5h
bWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1
Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24o
JzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYWRkS2V5MTsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gYWRkS2V5MSgp
Ci17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIGRhdGUxID0gZXZhbEFuZExvZygiZGF0ZTEg
PSBuZXcgRGF0ZSgxMDAwKTsiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9
IG9iamVjdFN0b3JlLmFkZChbXSwgZGF0ZTEpOyIpOwpAQCAtNzcsNSArNTksMyBAQCBmdW5jdGlv
biBvcGVuQUN1cnNvcigpCiAgICAgICAgIH0KICAgICB9CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMva2V5LXR5cGUtYXJyYXkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXR5cGUtYXJyYXkuanMKaW5kZXggMTQxNjUwN2FkYzBmMTBm
Y2EzODdiYzBlNTE0YTFlODVlOGYzMjA0MS4uNzc5MzMxZmUyY2MxYjAzM2E4MTc3NzZmMjAxMjFh
ZWViYmI0MmFkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2tleS10eXBlLWFycmF5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9rZXktdHlwZS1hcnJheS5qcwpAQCAtNSwzMCArNSwxMSBAQCBpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXkgdHlw
ZXMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwg
dGVzdFZhbGlkQXJyYXlLZXlzKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAg
cmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lOwotICAgIG9wZW5yZXEgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwot
ICAgIG9wZW5yZXEub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgb3BlbnJlcS5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkK
LXsKLSAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0Iik7Ci0gICAgc2V0dmVycmVx
ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHNldHZl
cnJlcS5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICBzZXR2ZXJyZXEub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3Vj
Y2VzcygpCi17Ci0gICAgZGVidWcoInByZXBhcmluZyBkYXRhYmFzZSIpOwotICAgIHRyYW5zID0g
c2V0dmVycmVxLnJlc3VsdDsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gdGVzdFZhbGlkQXJyYXlL
ZXlzOwotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBl
Y3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnKTsiKTsKICAgICBkZWJ1ZygiIik7CiB9CkBAIC0xODYsNSAr
MTY3LDMgQEAgZnVuY3Rpb24gdGVzdERlcHRoTGltaXRzKCkKIAogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleS10eXBlLWluZmluaXR5
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleS10eXBlLWlu
ZmluaXR5LmpzCmluZGV4IDc4YWM4OWIzMjhmMjM0NGRlZWU1ZjM5M2RjZDE5NDM1MWE4YzFjZmEu
LjMzNTM1ZjNiODg3NzYzNzlhNzI2NTk5MDQwNTBkZjY3MDBlYmU3NDcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktdHlwZS1pbmZpbml0eS5q
cworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXR5cGUt
aW5maW5pdHkuanMKQEAgLTUsMjkgKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5IHR5cGVzIik7CiAKLWZ1bmN0aW9uIHRl
c3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURh
dGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNl
bGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdGVzdEdyb3VwMTsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gdGVzdEdyb3VwMSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24u
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9iamVjdFN0b3JlID0gZXZh
bEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIGRlYnVnKCJ0ZXN0
IGtleSBhcyBpbmZpbml0eSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
b2JqZWN0U3RvcmUuYWRkKFtdLCBJbmZpbml0eSk7Iik7CkBAIC00Nyw1ICsyOSwzIEBAIGZ1bmN0
aW9uIHRlc3RHcm91cDMoKQogewogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtYXJyYXlzLmpzIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtYXJyYXlzLmpzCmluZGV4IDM4NjY4OGRj
ODlhNWJlY2QwZjMwMzM3OGJiM2U2MmUyNWZmYmE2YjUuLmFkMWI5NzdkZjc0YzZkM2E5MTY5ODM4
OGQ3NzY4OTdmNGUwMWFkODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9rZXlwYXRoLWFycmF5cy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1hcnJheXMuanMKQEAgLTUsNDIgKzUsMjEgQEAg
aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIg
QXJyYXktdHlwZSBrZXlQYXRocyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCB0ZXN0S2V5UGF0aHMpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNl
KCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6IFsnYScsICdiJ119KSIpOworICAgIGV2YWxBbmRMb2co
InN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsIFsnYycsICdkJ10pIik7CiAKLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdrZXlwYXRoLWFycmF5cycp
Iik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3Blbigna2V5cGF0aC1hcnJheXMnKSIpOwotICAgICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICB9OwotfQorICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS13aXRoLWdlbmVyYXRvcicsIHtrZXlQ
YXRoOiBbJ2EnLCAnYiddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfQUNDRVNTX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmNy
ZWF0ZUluZGV4KCdpbmRleC1tdWx0aWVudHJ5JywgWydlJywgJ2YnXSwge211bHRpRW50cnk6IHRy
dWV9KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIik7CiAKLWZ1bmN0aW9uIG9w
ZW5TdWNjZXNzKCkKLXsKICAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6
Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICB0cmFuc2FjdGlvbiA9IHJlcXVl
c3QucmVzdWx0OwotICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0
Q2FsbGJhY2s7Ci0gICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlJywge2tleVBhdGg6IFsnYScsICdiJ119KSIpOwotICAgICAgICBldmFsQW5kTG9n
KCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCBbJ2MnLCAnZCddKSIpOwotCi0gICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS13aXRoLWdl
bmVyYXRvcicsIHtrZXlQYXRoOiBbJ2EnLCAnYiddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiIpOwotICAgICAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgtbXVsdGllbnRyeScsIFsnZScsICdm
J10sIHttdWx0aUVudHJ5OiB0cnVlfSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VS
UiIpOwotCi0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoIkVtcHR5IGFycmF5cyBh
cmUgbm90IHZhbGlkIGtleSBwYXRoczoiKTsKLSAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlLWtleXBhdGgtZW1wdHktYXJyYXknLCB7a2V5
UGF0aDogW119KSIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOwotICAgICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgta2V5cGF0aC1lbXB0eS1h
cnJheScsIFtdKSIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOwotCi0gICAgICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB0ZXN0S2V5UGF0aHM7Ci0gICAgfTsKKyAgICBkZWJ1ZygiRW1w
dHkgYXJyYXlzIGFyZSBub3QgdmFsaWQga2V5IHBhdGhzOiIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS1rZXlwYXRoLWVtcHR5LWFycmF5
Jywge2tleVBhdGg6IFtdfSkiLCAiRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIiKTsKKyAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgta2V5cGF0aC1lbXB0
eS1hcnJheScsIFtdKSIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOwogfQogCiBmdW5jdGlv
biB0ZXN0S2V5UGF0aHMoKQpAQCAtODIsNSArNjEsMyBAQCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHMo
KQogCiAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKIH0KLQotdGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2tleXBhdGgtYmFzaWNzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2tleXBhdGgtYmFzaWNzLmpzCmluZGV4IGRjZDhkNGUxMjBiZTNiYTRmYzRjZDdhNWMyZjQ2
MDRiMTc1N2E3YTkuLmZhYTAwYWRkOTMxMmFjMjIxN2FiZWI2YTU2MzNiMjlmYTJhZTJlZmYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRo
LWJhc2ljcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
a2V5cGF0aC1iYXNpY3MuanMKQEAgLTUsMzAgKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdmFsaWQgYW5kIGludmFsaWQga2V5cGF0aHMi
KTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7Citm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBv
cGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
dGVzdFZhbGlkS2V5UGF0aHM7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RWYWxpZEtleVBhdGhzKCkKLXsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoInRlc3RWYWxpZEtleVBhdGhzKCk6Iik7Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwogICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnKSIp
OwogICAgIHNob3VsZEJlTnVsbCgic3RvcmUua2V5UGF0aCIpOwogICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYik7CkBAIC0xNjgsNSArMTQ5LDMgQEAgZnVuY3Rpb24gdGVzdEludmFsaWRLZXlQ
YXRocygpCiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtZWRnZXMuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1lZGdlcy5q
cwppbmRleCBiMTY4MDNhMDdmYTBhNmM0OWZlNjNmODFlZjYwMGJkOWIyZWM3OGZhLi5hMDkyZjVj
NTZkOWIyNzgzOWJkNTE4MDAzMDk5MjNmYmU3NWYwNDQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1lZGdlcy5qcworKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1lZGdlcy5qcwpAQCAt
NSwzMyArNSwxMyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJU
ZXN0IEluZGV4ZWREQiBrZXlQYXRoIGVkZ2UgY2FzZXMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitp
bmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdEtleVBhdGhzKTsKK2Z1bmN0aW9uIHBy
ZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2tleXBhdGgtZWRn
ZXMnKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2tleXBhdGgtZWRnZXMnKSIpOwotICAgICAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICB9OwotfQotCi1mdW5jdGlvbiBvcGVuU3Vj
Y2VzcygpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwot
ICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJl
c3VsdDsKLSAgICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOwotICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUtd2l0
aC1wYXRoJywge2tleVBhdGg6ICdmb28nfSkiKTsKLSAgICAgICAgZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlLXdpdGgtcGF0aC1hbmQtZ2VuZXJhdG9yJywge2tleVBhdGg6
ICdmb28nLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiKTsKLSAgICAgICAgdHJhbnNhY3Rpb24ub25j
b21wbGV0ZSA9IHRlc3RLZXlQYXRoczsKLSAgICB9OworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZS13aXRoLXBhdGgnLCB7a2V5UGF0aDogJ2Zvbyd9KSIpOworICAgIGV2YWxBbmRMb2coImRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS13aXRoLXBhdGgtYW5kLWdlbmVyYXRvcicsIHtrZXlQYXRo
OiAnZm9vJywgYXV0b0luY3JlbWVudDogdHJ1ZX0pIik7CiB9CiAKIGZ1bmN0aW9uIHRlc3RLZXlQ
YXRocygpCkBAIC0xMDYsNSArODYsMyBAQCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHNBbmRHZW5lcmF0
b3IoKQogICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
ICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwogfQotCi10ZXN0KCk7
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtZmV0Y2gta2V5LmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtZmV0Y2gta2V5LmpzCmluZGV4
IDI2NWZkZjlmYjEzNDI0ZTZjOWUxZDEyNDQ0Nzg5NmE1MThiYjJmZmMuLjAwNmYwNzBkOWY3M2I3
YjMxZGM1YmYzYWVjZWIxODc2MjI0MWE1OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWZldGNoLWtleS5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1mZXRjaC1rZXkuanMKQEAg
LTUsNTEgKzUsMzggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIga2V5UGF0aHMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
OwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsK
LSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKK3Rl
c3REYXRhID0gW3sgbmFtZTogInNpbXBsZSBpZGVudGlmaWVyIiwKKyAgICAgICAgICAgICAgdmFs
dWU6IHtpZDoxMH0sCisgICAgICAgICAgICAgIGtleVBhdGg6ICJpZCIsCisgICAgICAgICAgICAg
IGtleTogMTAgfSwKKyAgICAgICAgICAgIHsgbmFtZTogInNpbXBsZSBpZGVudGlmaWVycyIsCisg
ICAgICAgICAgICAgIHZhbHVlOiB7aWQxOjEwLCBpZDI6MjB9LAorICAgICAgICAgICAgICBrZXlQ
YXRoOiAiaWQxIiwKKyAgICAgICAgICAgICAga2V5OiAxMCB9LAorICAgICAgICAgICAgeyBuYW1l
OiAibmVzdGVkIGlkZW50aWZpZXJzIiwKKyAgICAgICAgICAgICAgdmFsdWU6IHtvdXRlcjp7aW5u
ZXI6MTB9fSwKKyAgICAgICAgICAgICAga2V5UGF0aDogIm91dGVyLmlubmVyIiwKKyAgICAgICAg
ICAgICAga2V5OiAxMCB9LAorICAgICAgICAgICAgeyBuYW1lOiAibmVzdGVkIGlkZW50aWZpZXJz
IHdpdGggZGlzdHJhY3Rpb25zIiwKKyAgICAgICAgICAgICAgdmFsdWU6IHtvdXRlcjp7aW5uZXI6
MTB9LCBpbm5lcjp7b3V0ZXI6MjB9fSwKKyAgICAgICAgICAgICAga2V5UGF0aDogIm91dGVyLmlu
bmVyIiwKKyAgICAgICAgICAgICAga2V5OiAxMCB9LAorXTsKK25leHRUb09wZW4gPSAwOwogCi0g
ICAgdGVzdERhdGEgPSBbeyBuYW1lOiAic2ltcGxlIGlkZW50aWZpZXIiLAotICAgICAgICAgICAg
ICAgICAgdmFsdWU6IHtpZDoxMH0sCi0gICAgICAgICAgICAgICAgICBrZXlQYXRoOiAiaWQiLAot
ICAgICAgICAgICAgICAgICAga2V5OiAxMCB9LAotICAgICAgICAgICAgICAgIHsgbmFtZTogInNp
bXBsZSBpZGVudGlmaWVycyIsCi0gICAgICAgICAgICAgICAgICB2YWx1ZToge2lkMToxMCwgaWQy
OjIwfSwKLSAgICAgICAgICAgICAgICAgIGtleVBhdGg6ICJpZDEiLAotICAgICAgICAgICAgICAg
ICAga2V5OiAxMCB9LAotICAgICAgICAgICAgICAgIHsgbmFtZTogIm5lc3RlZCBpZGVudGlmaWVy
cyIsCi0gICAgICAgICAgICAgICAgICB2YWx1ZToge291dGVyOntpbm5lcjoxMH19LAotICAgICAg
ICAgICAgICAgICAga2V5UGF0aDogIm91dGVyLmlubmVyIiwKLSAgICAgICAgICAgICAgICAgIGtl
eTogMTAgfSwKLSAgICAgICAgICAgICAgICB7IG5hbWU6ICJuZXN0ZWQgaWRlbnRpZmllcnMgd2l0
aCBkaXN0cmFjdGlvbnMiLAotICAgICAgICAgICAgICAgICAgdmFsdWU6IHtvdXRlcjp7aW5uZXI6
MTB9LCBpbm5lcjp7b3V0ZXI6MjB9fSwKLSAgICAgICAgICAgICAgICAgIGtleVBhdGg6ICJvdXRl
ci5pbm5lciIsCi0gICAgICAgICAgICAgICAgICBrZXk6IDEwIH0sCi0gICAgXTsKLSAgICBuZXh0
VG9PcGVuID0gMDsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2Jq
ZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UpOwordmFyIGRiID0gbnVsbDsKK3ZhciB0cmFucyA9IG51bGw7
CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogeworICAgIGRiID0gZGIgfHwgZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICBpZiAoIXRyYW5zKSB7CisgICAgICAgIHRyYW5zID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uOworICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0
Q2FsbGJhY2s7CisgICAgfQogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygidGVzdGluZyAiICsg
dGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7Ci0KICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpOwotCiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIHtrZXlQYXRoOiB0ZXN0
RGF0YVtuZXh0VG9PcGVuXS5rZXlQYXRofSk7Iik7CiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygi
cmVzdWx0ID0gb2JqZWN0U3RvcmUuYWRkKHRlc3REYXRhW25leHRUb09wZW5dLnZhbHVlKTsiKTsK
ICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpAQCAtNzIsMTAg
KzU5LDggQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQogICAgICAgICB0ZXN0RmFpbGVkKCJjdXJz
b3IgaXMgbnVsbCIpOwogICAgIH0KICAgICBpZiAoKytuZXh0VG9PcGVuIDwgdGVzdERhdGEubGVu
Z3RoKSB7Ci0gICAgICAgIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKTsKKyAgICAgICAg
cHJlcGFyZURhdGFiYXNlKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgfQogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtaW50
cmluc2ljLXByb3BlcnRpZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy5qcwppbmRleCA0MzE5YmNjOTM2Y2Fl
OWI5NGYwMmU5NTljODdjZmZmOTNhM2Y3ZTFjLi5mNzYyYzhmOWEyODA3Y2FjZTUxOGU4NzU2MzRj
NDlkMmE5ZmE0NDE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGll
cy5qcwpAQCAtNSwzNSArNSwxNCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXlQYXRoIHdpdGggaW50cmluc2ljIHByb3BlcnRpZXMi
KTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVz
dEtleVBhdGhzKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVu
ZG9yUHJlZml4ZXMoKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoJ2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMnKSIpOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLm9wZW4oJ2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMnKSIpOwotICAgICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICB9OwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3Vs
dDsKLSAgICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwotICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZScsIHtrZXlQYXRoOiAnaWQnfSkiKTsKLSAgICAgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRl
SW5kZXgoJ3N0cmluZyBsZW5ndGgnLCAnc3RyaW5nLmxlbmd0aCcpIik7Ci0gICAgICAgIGV2YWxB
bmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdhcnJheSBsZW5ndGgnLCAnYXJyYXkubGVuZ3RoJyki
KTsKLQotICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdGVzdEtleVBhdGhzOwotICAg
IH07CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgZXZhbEFuZExv
Zygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnLCB7a2V5UGF0aDogJ2lkJ30p
Iik7CisgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ3N0cmluZyBsZW5ndGgnLCAn
c3RyaW5nLmxlbmd0aCcpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2Fy
cmF5IGxlbmd0aCcsICdhcnJheS5sZW5ndGgnKSIpOwogfQogCiBmdW5jdGlvbiB0ZXN0S2V5UGF0
aHMoKQpAQCAtODQsNSArNjMsMyBAQCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHMoKQogCiAgICAgdHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKIH0KLQotdGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xlZ2FjeS1jb25z
dGFudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGVnYWN5
LWNvbnN0YW50cy5qcwppbmRleCA5M2FkZjk0OGRmYzNkOTQ5MjRlYzg3MzYyY2RjMzBkNmM1ODEx
MGZlLi40NjRlYTZlNmJiOWMzMzYyNDBkNWE2NGRhYWQ3MDM4ZDVlZTQ5OTY3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGVnYWN5LWNvbnN0YW50
cy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGVnYWN5
LWNvbnN0YW50cy5qcwpAQCAtNSwzMCArNSwxMyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgbGVnYWN5IGRpcmVjdGlvbi9tb2RlIGNvbnN0YW50
cyB3b3JrIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVz
KCk7Ci0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURh
dGFiYXNlLCBwb3B1bGF0ZVN0b3JlKTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0g
ICAgZGVidWcoIiIpOwotICAgIGV2YWxBbmRMb2coIm9wZW5yZXEgPSBpbmRleGVkREIub3Blbign
bGVnYWN5LWNvbnN0YW50cycpIik7Ci0gICAgb3BlbnJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci0gICAgb3BlbnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxB
bmRMb2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICB2ZXJyZXEub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICB2ZXJyZXEub25zdWNjZXNz
ID0gZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOwotICAgICAgICAgICAgbnN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUu
Y3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykiKTsKLSAgICAgICAgICAgIHZlcnJlcS5yZXN1
bHQub25jb21wbGV0ZSA9IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBuc3RvcmUgPSBldmFsQW5kTG9n
KCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExv
Zygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykiKTsKIH0KIGZ1bmN0aW9uIHBv
cHVsYXRlU3RvcmUoKQogewpAQCAtMTMxLDUgKzExNCwzIEBAIGZ1bmN0aW9uIHRlc3RPYnNvbGV0
ZUNvbnN0YW50cygpCiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xpc3Qtb3JkZXJp
bmcuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGlzdC1vcmRl
cmluZy5qcwppbmRleCA3NWYwMzI1NmM3YzNmOGQ1MmUxOTBhMTU2MGE5MzM2MjcyYzhlMGQ2Li40
Mzk4ZGJhOWY5NTg3YzFkNTBhZjM0ZWRhM2U3YTZjZmU5MmM4NzYzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGlzdC1vcmRlcmluZy5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGlzdC1vcmRlcmluZy5q
cwpAQCAtMzIsNTMgKzMyLDI5IEBAIGZvciAoaSA9IDA7IGkgPCBwZXJtdXRlZF9vcmRlci5sZW5n
dGggLSAyOyBpICs9IDIpIHsKICAgICBwZXJtdXRlZF9vcmRlcltpICsgMV0gPSB0bXA7CiB9CiAK
LWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIGZpbmlzaEpT
VGVzdCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgZGVi
dWcoImNoZWNrIHRoYXQgdGhlIGV4cGVjdGVkIG9yZGVyIGlzIHRoZSBjYW5vbmljYWwgSlMgc29y
dCBvcmRlcjoiKTsKICAgICBldmFsQW5kTG9nKCJzb3J0ZWRfb3JkZXIgPSBleHBlY3RlZF9vcmRl
ci5zbGljZSgpOyBzb3J0ZWRfb3JkZXIuc29ydCgpIik7CiAgICAgc2hvdWxkQmVUcnVlKCJhcmVB
cnJheXNFcXVhbChzb3J0ZWRfb3JkZXIsIGV4cGVjdGVkX29yZGVyKSIpOwotICAgIHRlc3RTdG9y
ZXNBbmRJbmRleGVzKCk7Ci19CiAKLWZ1bmN0aW9uIHRlc3RTdG9yZXNBbmRJbmRleGVzKCkKLXsK
ICAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoInRlc3RTdG9yZXNBbmRJbmRleGVzKCk6Iik7Ci0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnbGlzdC1v
cmRlcmluZycpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignbGlzdC1vcmRlcmluZycpIik7Ci0gICAg
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGV2YWxBbmRMb2co
ImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJkYi52ZXJzaW9u
IiwgIjEiKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9u
KCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAg
IGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiT2JqZWN0IHN0b3JlczoiKTsKLSAg
ICAgICAgICAgICAgICBwZXJtdXRlZF9vcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCIgKyBK
U09OLnN0cmluZ2lmeShuYW1lKSArIikiKTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICBkZWJ1
ZygiT2JqZWN0IHN0b3JlczoiKTsKKyAgICBwZXJtdXRlZF9vcmRlci5mb3JFYWNoKGZ1bmN0aW9u
IChuYW1lKSB7CisgICAgICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCIgKyBK
U09OLnN0cmluZ2lmeShuYW1lKSArIikiKTsKKyAgICB9KTsKIAotICAgICAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoZGIub2JqZWN0U3RvcmVOYW1lcywgZXhwZWN0ZWRf
b3JkZXIpIik7CisgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChkYi5vYmplY3RTdG9y
ZU5hbWVzLCBleHBlY3RlZF9vcmRlcikiKTsKIAotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsK
LSAgICAgICAgICAgICAgICBkZWJ1ZygiSW5kZXhlczoiKTsKLSAgICAgICAgICAgICAgICBzdG9y
ZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsK
LSAgICAgICAgICAgICAgICBwZXJtdXRlZF9vcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCIgKyBK
U09OLnN0cmluZ2lmeShuYW1lKSArIiwgJ2tleVBhdGgnKSIpOwotICAgICAgICAgICAgICAgIH0p
OwotCi0gICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChzdG9yZS5p
bmRleE5hbWVzLCBleHBlY3RlZF9vcmRlcikiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
IkluZGV4ZXM6Iik7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgcGVybXV0ZWRfb3JkZXIuZm9yRWFjaChmdW5jdGlv
biAobmFtZSkgeworICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgiICsgSlNP
Ti5zdHJpbmdpZnkobmFtZSkgKyIsICdrZXlQYXRoJykiKTsKKyAgICB9KTsKIAotICAgICAgICAg
ICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7Ci0gICAgICAgICAgICB9Owot
ICAgICAgICB9OwotICAgIH07CisgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChzdG9y
ZS5pbmRleE5hbWVzLCBleHBlY3RlZF9vcmRlcikiKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL211dGF0aW5nLWN1cnNv
ci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9tdXRhdGluZy1j
dXJzb3IuanMKaW5kZXggYWNkYmM5MWQwNDJkY2JmOTdjMzRhZmYxY2UxZWY0MGQyMDZkZmZjYy4u
ZjY2NzdhODJkMzA5Njc0MmFhMWQ2MjFkODIzYmRhMjBjNGJmYmEwOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL211dGF0aW5nLWN1cnNvci5qcwor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbXV0YXRpbmctY3Vy
c29yLmpzCkBAIC01LDM0ICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVz
Y3JpcHRpb24oIlRlc3QgbXV0YXRpbmcgYW4gSW5kZXhlZERCJ3Mgb2JqZWN0c3RvcmUgZnJvbSBh
IGN1cnNvci4iKTsKIAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCBvcGVuRm9yd2FyZEN1cnNvcik7CitmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdtdXRhdGluZy1jdXJzb3InKSIpOwotICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICB2
YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCi17
Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2
YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9u
TnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IG9wZW5Gb3J3YXJkQ3Vyc29yOwotCi0gICAgZGVs
ZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Cisg
ICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjazsKIAogICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKICAgICBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZS5hZGQoMSwgMSkub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CkBAIC0x
MjksNCArMTA2LDQgQEAgZnVuY3Rpb24gcmV2ZXJzZUN1cnNvckNvbXBsZXRlKCkKIHsKICAgICBk
ZWJ1ZygicmV2ZXJzZUN1cnNvckNvbXBsZXRlKCkiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRz
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdFN0b3Jl
LXJlcXVpcmVkLWFyZ3VtZW50cy5qcwppbmRleCBkMjk1YmZjMWFhNzgxNWIzZDJmY2M0NTJiYzE3
NjdmOTI3Zjc3YTEwLi43MGE0NjQwMjczMWI3ZGY4YThkYTJlNzU3NDJmMDNjNDRmYzg1ZjRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0
U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuanMKQEAgLTUs
MjggKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVz
dCBJbmRleGVkREIgb2JqZWN0IHN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50cyIpOwogCi1mdW5jdGlv
biB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBh
cmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1
bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBv
cHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQot
ewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3Rl
ZEFib3J0Q2FsbGJhY2s7CiAKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIHNob3VsZFRocm93KCJv
YmplY3RTdG9yZS5wdXQoKTsiKTsKQEAgLTM5LDUgKzIyLDMgQEAgZnVuY3Rpb24gY3JlYXRlQW5k
UG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgc2hvdWxkVGhyb3coIm9iamVjdFN0b3JlLmRlbGV0
ZUluZGV4KCk7Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmpz
CmluZGV4IDg2MmEwNTVkN2NlNDQ4YmMxOTExYzY2YWU1YjkyZDkwNjhhMTUyOTIuLjU0OTNjMDli
ODAyNTcwZjNlNTY1ZjUwNWNjZDY1ZGI0ODUyZTVmN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Lmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9y
ZS1hdXRvaW5jcmVtZW50LmpzCkBAIC01LDMzICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUgYXV0
by1pbmNyZW1lbnQgZmVhdHVyZS4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlZCk7CitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdvYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50Jyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9IGV2YWxB
bmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCi17Ci0g
ICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxB
bmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVs
bCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7
Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHNldFZlcnNpb25Db21wbGV0ZWQ7Ci0KLSAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAg
ICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOwogCiAgICAgZGVidWcoImNyZWF0ZU9iamVjdFN0b3JlKCk6Iik7CiAgICAgc2VsZi5zdG9y
ZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ1N0b3JlV2l0aEtl
eVBhdGgnLCB7a2V5UGF0aDogJ2lkJywgYXV0b0luY3JlbWVudDogdHJ1ZX0pIik7CkBAIC00Niw4
ICsyNCw2IEBAIGZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKICAgICBzaG91bGRCZSgic3Rv
cmVOYW1lcy5jb250YWlucygnU3RvcmVXaXRoQXV0b0luY3JlbWVudCcpIiwgInRydWUiKTsKICAg
ICBzaG91bGRCZSgic3RvcmVOYW1lcy5jb250YWlucygnUGxhaW5PbGRTdG9yZScpIiwgInRydWUi
KTsKICAgICBzaG91bGRCZSgic3RvcmVOYW1lcy5sZW5ndGgiLCAiNCIpOwotCi0gICAgLy8gTGV0
IHRoZSBzZXRWZXJzaW9uIHRyYW5zYWN0aW9uIGNvbXBsZXRlLgogfQogCiBmdW5jdGlvbiBzZXRW
ZXJzaW9uQ29tcGxldGVkKCkKQEAgLTE4OSw1ICsxNjUsMyBAQCBmdW5jdGlvbiB0ZXN0TG9uZ0tl
eVBhdGgoKQogICAgICAgICBjdXJzb3IuY29udGludWUoKTsKICAgICB9OwogfQotCi10ZXN0KCk7
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWNsZWFyLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWNsZWFyLmpzCmluZGV4
IDBiN2YzZmY1NTFmODVhYjAxOGUwMGZhNTYxNGRjMzk1NTQ5ZjdhZjUuLmRiMTFmYjBkYjQ0ZjY2
ZmEzNTY0MTcxMWJjNjdmNGI3OTAxNDYxOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jbGVhci5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY2xlYXIuanMKQEAg
LTUsMjkgKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIncyB3ZWJraXRJREJPYmplY3RTdG9yZS5jbGVhcigpLiIpOwogCi1mdW5j
dGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBzZXRWZXJzaW9uQ29t
cGxldGUpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbignb2Jq
ZWN0c3RvcmUtY2xlYXInKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc3RhcnRTZXRWZXJz
aW9uOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBzdGFydFNldFZlcnNpb24oKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIu
c2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVs
ZXRlRXhpc3Rpbmc7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxmLnRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVO
b25OdWxsKCJ0cmFucyIpOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKIAogICAgIHN0b3JlID0gZXZhbEFuZExv
Zygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKIApA
QCAtNzgsNyArNjAsNiBAQCBmdW5jdGlvbiBvcGVuS2V5Q3Vyc29yU3VjY2VzcygpCiB7CiAgICAg
ZGVidWcoIm9wZW5LZXlDdXJzb3JTdWNjZXNzKCk6Iik7CiAgICAgc2hvdWxkQmVOdWxsKCJldmVu
dC50YXJnZXQucmVzdWx0Iik7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHNldFZlcnNpb25Db21w
bGV0ZTsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbkNvbXBsZXRlKCkKQEAgLTk4LDUgKzc5LDMg
QEAgZnVuY3Rpb24gZ2V0U3VjY2VzcygpCiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVz
dCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jb3VudC5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jb3VudC5qcwpp
bmRleCA4OTUwM2Y3YzBjMGU2MTU5Nzk2MTE4YTgzZmNjZDEzM2UwOGE2ODNhLi4wMmIxOTgzNThi
ODRjOThmYTM1NTA3MGRjNzMxYWZmOTlhODQxZGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY291bnQuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWNvdW50Lmpz
CkBAIC01LDI3ICs1LDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRp
b24oIlRlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUuY291bnQoKS4iKTsKIAotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ29iamVjdHN0b3JlLWNvdW50JykiKTsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOwotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwcmVwYXJl
RGF0YWJhc2U7Ci0gICAgfTsKLX0KLQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHZl
cmlmeUNvdW50KTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIiIp
OwotICAgIGRlYnVnKCJwcmVwYXJpbmcgZGF0YWJhc2UiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25O
dWxsKCJ0cmFucyIpOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJv
cnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKIAogICAgIHN0b3JlID0gZXZhbEFuZExvZygi
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKIApAQCAt
MzQsNyArMTgsNiBAQCBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogICAgICAgICByZXF1ZXN0
ID0gc3RvcmUuYWRkKGksIGkpOwogICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKICAgICB9Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHZlcmlmeUNvdW50
OwogfQogCiBmdW5jdGlvbiB2ZXJpZnlDb3VudCgpCkBAIC0xNDAsNSArMTIzLDMgQEAgZnVuY3Rp
b24gdmVyaWZ5Q291bnRXaXRoS2V5KCkKIAogICAgIG5leHRUZXN0KCk7CiB9Ci0KLXRlc3QoKTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY3Vyc29yLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci5qcwppbmRl
eCBlMTRmZTJjNTdkODQ2ODMwMjM0NjNkNjk2MzRhMmFkMGE3YjkxMTIyLi4xYTM5Yjc0Zjk1ZmEz
NmRmOTU1OWU1MTNjNTNiNWYwNzhlNWEwNjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY3Vyc29yLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jdXJzb3IuanMK
QEAgLTE3LDI5ICsxNywxMSBAQCBzZWxmLnRlc3REYXRhID0gWwogICAgICJhIGxvdyBzdHJpbmci
CiBdOwogCi1mdW5jdGlvbiBvcGVuRGF0YWJhc2UoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0
YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ29iamVjdHN0b3JlLWN1cnNvcicpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uKCkKLXsKLSAgICBz
ZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5n
KCkKLXsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJv
cnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jl
cyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAKICAgICBldmFs
QW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21lT2JqZWN0U3Rv
cmUnKSIpOwogCkBAIC0yMjcsNiArMjA5LDMgQEAgZnVuY3Rpb24gdGVzdE51bGxLZXlSYW5nZSgp
CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjdXJzb3JJdGVyYXRpb247CiAgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9Ci0KLXJlbW92ZVZlbmRvclByZWZp
eGVzKCk7Ci1vcGVuRGF0YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0ZXAuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtcmVtb3Zl
b2JqZWN0c3RvcmUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
b2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUuanMKaW5kZXggNzRlNjExNTYyMTI5NzU5NTA3
OGIxODQ4N2VjZjI4YTFjMzIzYTllZC4uNDFlNWM3NjU3NWEwZTViNjRhNzQxYWI5Yjk2NTFjNjBl
NGYzZDc1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5q
cwpAQCAtNSwzMCArNSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQidzIHdlYmtpdElEQk9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdFN0
b3JlKCkuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJh
c2UsIGdldFZhbHVlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3Zl
VmVuZG9yUHJlZml4ZXMoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4oJ29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlJykiKTsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHN0YXJ0U2V0VmVyc2lvbjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc3RhcnRTZXRWZXJzaW9uKCkKLXsKLSAgICBk
YiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCi17
Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKICAg
ICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScsIG51bGwpIik7CiAKICAgICBzZWxmLmluZGV4ID0gZXZhbEFuZExvZygic3RvcmUuY3Jl
YXRlSW5kZXgoJ2luZGV4TmFtZScsICcnKSIpOwpAQCAtMzYsNyArMTcsNiBAQCBmdW5jdGlvbiBk
ZWxldGVFeGlzdGluZygpCiAKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKCd2
YWx1ZScsICdrZXknKSIpOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBnZXRWYWx1ZTsKIH0KIAogZnVuY3Rpb24g
Z2V0VmFsdWUoKQpAQCAtOTMsNSArNzMsMyBAQCBmdW5jdGlvbiB2ZXJpZnlOb3RGb3VuZCgpCiAK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9vcGVuLWN1cnNvci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9vcGVuLWN1cnNvci5qcwppbmRleCA0MzFjMTM5OTNjZmNmNzNjNmExMDAwMmZhYzYxN2E2MGZj
NzMzNzQ5Li5iYzkzYzExYmYwZjA0NTc3YWQxNDUxZjZiZmE1M2RhOTBlMzhlMDRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb3Blbi1jdXJzb3Iu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29wZW4tY3Vy
c29yLmpzCkBAIC04NiwzNiArODYsMTMgQEAgZnVuY3Rpb24gb3BlbkN1cnNvcigpCiAgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKLWZ1bmN0aW9uIHNl
dFZlcnNpb25TdWNjZXNzKCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0
aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6
Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0
ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgdmFyIG9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgndGVzdCcpIik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgn
bXlWYWx1ZScsICdteUtleScpIik7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuQ3Vyc29y
OwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVy
c2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdvcGVuLWN1cnNvcicp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotdGVzdCgpOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9vcGVuY3Vyc29yLWtleS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9vcGVuY3Vyc29yLWtleS5qcwppbmRleCA3YTQxMjdhZTY0Y2I2YWQy
N2NlN2VlZjA0ZDU2M2Q4NDU3MmY1YjA2Li41YmM3OGU3OGMxZmQ4MzQ0ZDMyNjVkYTdhZmVhYTdh
Yzg1MzlmY2U5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvb3BlbmN1cnNvci1rZXkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL29wZW5jdXJzb3Ita2V5LmpzCkBAIC0yNywzNCArMjcsMTUgQEAgdmFyIGlu
ZGV4RGF0YSA9IFsKICAgICB7IG5hbWU6ICJ3ZWlnaHQiLCBrZXlQYXRoOiAid2VpZ2h0Iiwgb3B0
aW9uczogeyB1bmlxdWU6IGZhbHNlIH0gfQogXTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdEFsbCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJh
c2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgbmFtZSA9IHdpbmRvdy5s
b2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBv
cGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKIAogICAgIG9iamVjdFN0b3JlTmFtZSA9ICJQZW9wbGUiOwot
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1
bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAgIGRlbGV0ZUFsbE9i
amVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsiKTsKICAgICB0cmFu
cyA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOwogCiAgICAgZGVidWcoIkZpcnN0LCBhZGQgYWxsIG91ciBkYXRhIHRvIHRo
ZSBvYmplY3Qgc3RvcmUuIik7CiAgICAgYWRkZWREYXRhID0gMDsKQEAgLTYzLDcgKzQ0LDYgQEAg
ZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIH0KICAgICBjcmVhdGVJbmRl
eGVzKCk7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RBbGw7CiB9CiAKIGZ1bmN0aW9uIGNy
ZWF0ZUluZGV4ZXMoKQpAQCAtMTgwLDYgKzE2MCwzIEBAIGZ1bmN0aW9uIHRlc3RJbmRleFdpdGhL
ZXkoKQogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAg
IHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CiB9Ci0KLQotdGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3BlbmRpbmctYWN0
aXZpdHkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcGVuZGlu
Zy1hY3Rpdml0eS5qcwppbmRleCBkMTEwN2RhYWExMjkzN2E3MjFhNzRjODRhOGE3YWQ1OWNkOTg1
NDM2Li5iYWMyZjQ3ZTgwMmVmYzdjNmMzNWMwODIzMDVkODE0YTAxZjAxYTA4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcGVuZGluZy1hY3Rpdml0
eS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcGVuZGlu
Zy1hY3Rpdml0eS5qcwpAQCAtNSwzNCArNSwxNCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CiAKIGRlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBnYXJiYWdlIGNvbGxlY3Rpb24gZG9lc24ndCBy
ZWNsYWltIG9iamVjdHMgd2l0aCBwZW5kaW5nIGFjdGl2aXR5Iik7CiAKLWZ1bmN0aW9uIHRlc3Qo
KQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RUcmFuc2FjdGlvbik7CitmdW5j
dGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZ0KQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0gICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKLSAgICBwcmVwYXJlRGF0YWJhc2UoKTsKLX0KLQot
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKLXsKLSAgICBwcmVhbWJsZSgpOwotICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
aW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0g
ICAgICAgICAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIxIik7Ci0gICAgICAgICAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAgICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHRyYW5zID0gcmVx
dWVzdC5yZXN1bHQ7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0
b3JlLnB1dCgwLCAwKSIpOwotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB0ZXN0
VHJhbnNhY3Rpb247Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OwotICAgIH07CisgICAgcHJl
YW1ibGUoZXZ0KTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBl
dmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAg
ZXZhbEFuZExvZygic3RvcmUucHV0KDAsIDApIik7CiB9CiAKIGZ1bmN0aW9uIHRlc3RUcmFuc2Fj
dGlvbigpCkBAIC05Myw1ICs3MywzIEBAIGZ1bmN0aW9uIGN1cnNvclJlcXVlc3RPblNlY29uZFN1
Y2Nlc3MoKQogICAgIGRlYnVnKCIiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3By
ZWZldGNoLWJ1Z2ZpeC0xMDgwNzEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS5qcwppbmRleCAyZTA4YTEyNjRjNTQzNDhk
NjdiMGMzMTFjYzI3OTU1MGRlMzQ5YTkwLi4yMTJlZmU1NTk0OWYwYzM3ZjIxMGMwN2YxY2NjOWNk
OGQzNjg1ZmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS5qcwpAQCAtOSwzNiAr
OSwxMiBAQCBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY3JidWcuY29tLzEwODA3MSIpOwogLy8gcG9z
dC1hYm9ydCBvdXRzdGFuZGluZyBjb250aW51ZS4KIHZhciBuYW1lcyA9IFsnQWxwaGEnLCAnQnJh
dm8nLCAnQ2hhcmxpZScsICdEZWx0YScsICdFY2hvJ107CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5k
ZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIGl0ZXJhdGVBbmREZWxldGVGaXJzdEVsZW1lbnQp
OworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOwotICAgIERCTkFNRSA9ICdwcmVmZXRjaC1idWdmaXgtMTA4MDcxJzsKLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKERCTkFNRSkiKTsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9u
YmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbiAoZSkgewotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLm9wZW4oREJOQU1FKSIpOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNj
ZXNzOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LSAgICB9OwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZh
bEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKLXsK
LSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25O
dWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gaXRlcmF0ZUFuZERlbGV0ZUZpcnN0RWxlbWVudDsK
KyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFucyA9IGV2ZW50
LnRhcmdldC50cmFuc2FjdGlvbjsKIAogICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2co
Im9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6ICdp
ZCd9KSIpOwogICAgIHJlc2V0T2JqZWN0U3RvcmUoKTsKQEAgLTExNCw1ICs5MCwzIEBAIGZ1bmN0
aW9uIHRyYW5zYWN0aW9uQWJvcnRlZCgpCiAgICAgdGVzdFBhc3NlZCgiVHJhbnNhY3Rpb24gYWJv
cnRlZCBhcyBleHBlY3RlZCIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3F1ZXVlZC1jb21tYW5kcy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9xdWV1ZWQtY29tbWFuZHMuanMKaW5kZXggMDk1Y2Rk
OTQwN2UzYzc0MzBkYmQ3NzA5YzllOWNmYzRkY2Y4ZWNjMC4uMzFkOGViNmE5ODc0Mzk2OGIzMGJi
NjM2ZDFlOGU5YjQwYTlmOGY4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3F1ZXVlZC1jb21tYW5kcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcXVldWVkLWNvbW1hbmRzLmpzCkBAIC01LDMxICs1LDEx
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0
IHF1ZXVpbmcgdXAgc2V2ZXJhbCBjb21tYW5kcyB3b3JrcyAoYW5kIHRoZXkgYWxsIGZpcmUpLiIp
OwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3F1ZXVlZC1jb21tYW5k
cycpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJz
aW9uKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIp
OwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9u
JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBkZWxl
dGVFeGlzdGluZygpCi17Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAg
c2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwot
ICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBl
Y3RlZEFib3J0Q2FsbGJhY2s7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24u
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAgICAgc2VsZi5zdG9yZSA9IGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAgIHNlbGYu
aW5kZXhPYmplY3QgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywg
J3gnKSIpOwpAQCAtNTgsNSArMzgsMyBAQCBmdW5jdGlvbiB2ZXJpZnlBZGQoZXhwZWN0ZWQpCiAg
ICAgaWYgKGFkZENvdW50ID4gMykKICAgICAgICAgdGVzdEZhaWxlZCgiVW5leHBlY3RlZCBjYWxs
IHRvIHZlcmlmeUFkZCEiKTsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9y
ZXF1ZXN0LWNvbnRpbnVlLWFib3J0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3JlcXVlc3QtY29udGludWUtYWJvcnQuanMKaW5kZXggODVjZGYzNDgwZmY3NmVi
NDFlNjkyZDA2YzllMWJhNjQ1MjU4MTZhZS4uMjllNDNjODhhNWIxYTc3OGI1OTliZjlkYjRjMmQ2
MDJlODVhZGY2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3JlcXVlc3QtY29udGludWUtYWJvcnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlcXVlc3QtY29udGludWUtYWJvcnQuanMKQEAgLTUsMzUg
KzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiUmVncmVz
c2lvbiB0ZXN0IGZvciBJREJSZXF1ZXN0IGlzc3VlIGNhbGxpbmcgY29udGludWUgb24gYSBjdXJz
b3IgdGhlbiBhYm9ydGluZy4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHBy
ZXBhcmVEYXRhYmFzZSwgdGVzdEN1cnNvcik7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQog
ewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBldmFsQW5kTG9nKCdkYm5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lJyk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGJuYW1lJykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKCkgewotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKCdkYm5hbWUnKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAg
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAg
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAg
ICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwotICAgICAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB2
YXIgdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICB0cmFuc2Fj
dGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICAgICAg
b25VcGdyYWRlKCk7Ci0gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRl
c3RDdXJzb3I7Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OwotICAgIH07Ci19Ci0KLWZ1bmN0
aW9uIG9uVXBncmFkZSgpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvblVwZ3JhZGU6
Iik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgZXZhbEFuZExv
ZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKIH0KIApAQCAtNzMsNSArNDksMyBA
QCBmdW5jdGlvbiB0ZXN0Q3Vyc29yKCkKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfTsK
IH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5qcwppbmRl
eCBhMzBhOTdlZmM1MjljYjQ4YTA1NDFmNTBjZjlkOWU0ZTg3OGVjZTU1Li5kMmM3NDE5ZTlhZjUw
NjA1ZWE2NjVmM2UxZTE1MmZmM2ZhYzI2OTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvcmVxdWVzdC1ldmVudC1w
cm9wYWdhdGlvbi5qcwpAQCAtNSwzMiArNSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGV2ZW50IHByb3BvZ2F0aW9uIG9uIElEQlJlcXVlc3QuIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHN0YXJ0
VGVzdCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdyZXF1
ZXN0LWV2ZW50LXByb3BhZ2F0aW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZl
cnNpb247Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRl
RXhpc3Rpbmc7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBkZWJ1Zygic2V0VmVyc2lv
blN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRy
YW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICBldmFsQW5kTG9nKCJ0
cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0Iik7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAgICAgc3Rv
cmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
LCBudWxsKSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1
ZScsIHk6ICd6enonfSwgJ2tleScpIik7CkBAIC0yNjMsNSArMjQyLDMgQEAgZnVuY3Rpb24gdHJh
bnNhY3Rpb25Db21wbGV0ZSgpCiAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgcmV0dXJuOwogfQot
Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKaW5kZXggYWIwODY0ZmE2ZGFi
ZjQzMTZmMjQ4NjVjNjQ1MjA0ODZlMjgzNTljMy4uZDFhMDRiNzk0ZmY0MDhiNTllOGU4M2IzNzE5
MDI0ZDhhZmQ0YWU2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvc2hhcmVkLmpzCkBAIC0xNzIsMyArMTcyLDIzIEBAIGlmICghc2VsZi5ET01FeGNl
cHRpb24pIHsKICAgICAgICAgREFUQV9DTE9ORV9FUlI6IDI1CiAgICAgfTsKIH0KKworZnVuY3Rp
b24gaW5kZXhlZERCVGVzdCh1cGdyYWRlQ2FsbGJhY2ssIG9wdGlvbmFsT3BlbkNhbGxiYWNrLCBv
cHRpb25hbFZlcnNpb24pIHsKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIHNldERC
TmFtZUZyb21QYXRoKCk7CisgICAgdmFyIGRlbGV0ZVJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGRlbGV0ZVJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBkZWxldGVSZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgb3BlblJlcXVlc3Q7CisgICAgICAgIGlmIChv
cHRpb25hbFZlcnNpb24pCisgICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3BlbihkYm5hbWUsICIgKyBvcHRpb25hbFZlcnNpb24gKyAiKSIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbihk
Ym5hbWUpIik7CisgICAgICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICAgICAgb3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZUNh
bGxiYWNrOworICAgICAgICBvcGVuUmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworICAgICAgICBpZiAob3B0aW9uYWxPcGVuQ2FsbGJhY2spCisgICAgICAgICAg
ICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcHRpb25hbE9wZW5DYWxsYmFjazsKKyAgICB9Owor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Ry
YW5zYWN0aW9uLWFib3J0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL3RyYW5zYWN0aW9uLWFib3J0LmpzCmluZGV4IGM2ODhiNjM0OGU4ZTVkZTYyYWE2ZTIxNWU3
OWExZjNkM2ZjNjJhYmUuLjdjMTdhOWEyMzdkOWQ2OTE3NGQ5NTVjMmFiNWUxMGFjNDYyMjA4Mzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFu
c2FjdGlvbi1hYm9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanMKQEAgLTUsMzQgKzUsMTAgQEAgaWYgKHRoaXMuaW1w
b3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCB0cmFuc2FjdGlvbiBhYm9ydHMgc2Vu
ZCB0aGUgcHJvcGVyIG9uYWJvcnQgbWVzc2FnZXMuLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2lu
ZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBzdGFydFRlc3QpOworZnVuY3Rpb24gcHJlcGFy
ZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCduYW1lJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oKQotewotICAgIGRiID0gZXZh
bEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBk
ZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExv
ZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0
cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAg
ICBldmFsQW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0Iik7Ci0KLSAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owog
ICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJywgbnVsbCkiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4
OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKSIpOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpAQCAtOTUsNSArNzEsMyBAQCBmdW5jdGlvbiB0cmFuc2Fj
dGlvbkFib3J0ZWQoKQogIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rp
b24tYWN0aXZlLWZsYWcuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvdHJhbnNhY3Rpb24tYWN0aXZlLWZsYWcuanMKaW5kZXggNWY1MzQ5OTUxMDlmN2Y0NjhmNzRj
ODA1ZGE4ZDRhMzFhNzA3NWI3OC4uNGRkZmYzMDkyODkyNmEwZWEyODA5OWU4NzY3NDVmOTFlZTg4
YmFjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy5qcwpAQCAtNSwyNyArNSwx
MyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiB0cmFuc2FjdGlvbiBpbnRlcm5hbCBhY3RpdmUgZmxhZy4iKTsKIAotZnVuY3Rpb24gdGVz
dCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgcnVuVHJhbnNhY3Rpb24pOworZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3RyYW5z
YWN0aW9uLWFjdGl2ZS1mbGFnJykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWFj
dGl2ZS1mbGFnJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBkYiA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uID0gcmVxdWVzdC5y
ZXN1bHQ7Ci0gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJz
dG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAna2V5cGF0aCcpIik7Ci0gICAgICAgICAgICAgICAg
dHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHJ1blRyYW5zYWN0aW9uOwotICAgICAgICAgICAgfTsK
LSAgICAgICAgfTsKLSAgICB9OworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OworICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyki
KTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAna2V5cGF0aCcp
Iik7CiB9CiAKIGZ1bmN0aW9uIHJ1blRyYW5zYWN0aW9uKCkKQEAgLTEzNCw1ICsxMjAsMyBAQCBm
dW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYW5k
LW9iamVjdHN0b3JlLWNhbGxzLmpzCmluZGV4IGI5Y2E0NWJjYmY2MzQ0ZGI1YTM0MGMzNTFjNjY5
N2QwNTczYWRhOGYuLjgyMGQ0MTA3YjRlMWU4ZGRjYzYwZjZkODhkMWRmNDQ4ODk4ZTVkNjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2Fj
dGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5qcwpA
QCAtNSwzMiArNSwxNSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQidzIHRyYW5zYWN0aW9uIGFuZCBvYmplY3RTdG9yZSBjYWxscyIpOwog
Ci1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBjcmVhdGVk
KTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbigndHJhbnNh
Y3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgc2VsZi5kYiA9IGV2YWxB
bmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJyZXN1bHQgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAg
dHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBk
ZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
KyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENh
bGxiYWNrOwogCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnKSIpOwog
ICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiJykiKTsKICAgICBldmFsQW5k
TG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5jcmVhdGVJbmRleCgnaW5kZXgnLCAn
c29tZV9wYXRoJykiKTsKLSAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVyKCdj
b21wbGV0ZScsIGNyZWF0ZWQsIHRydWUpIik7CiAgICAgZGVidWcoIiIpOwogfQogCkBAIC0xMjAs
NSArMTAzLDMgQEAgZnVuY3Rpb24gYWZ0ZXJDb21wbGV0ZSgpCiAKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tY29tcGxldGUtd29ya2Vy
cy5qcwppbmRleCAwNjAzMjRkYzBhZTJkYmM2ZGU3ODdmZTM5Njc2ZjliMzdhNTJiYWQ3Li4xNmIw
NDdhN2EzNmVkZDZhMzgyNTIxNWFlODkwNTBmMjQ2ZTdlN2I4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tY29tcGxldGUtd29y
a2Vycy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJh
bnNhY3Rpb24tY29tcGxldGUtd29ya2Vycy5qcwpAQCAtNSwyNCArNSwxMyBAQCBpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB3b3JrZXJzLCBy
ZWN1cnNpb24sIGFuZCB0cmFuc2FjdGlvbiB0ZXJtaW5hdGlvbi4iKTsKIAotZnVuY3Rpb24gdGVz
dCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgY3JlYXRlVHJhbnNhY3Rpb24pOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2dCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOwotCi0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCd0cmFuc2Fj
dGlvbi1jb21wbGV0ZS13b3JrZXInKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewot
ICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIp
OwotICAgICAgICAgICAgZXZhbEFuZExvZygidHJhbnMgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAg
ICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAg
ICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBjcmVhdGVUcmFuc2FjdGlvbjsKLSAgICAgICAg
fTsKLSAgICB9OworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
JykiKTsKIH0KIAogZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb24oKQpAQCAtMTI0LDUgKzExMywz
IEBAIGZ1bmN0aW9uIGVycm9yVHJhbnNhY3Rpb25Db21wbGV0ZWQoKQogICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oInN0b3JlLmdldCgwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FD
VElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0LmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWNyYXNo
LW9uLWFib3J0LmpzCmluZGV4IGIzM2ViMDRiZWQxNGM0MmQ0ODA2NzQ5NzQ5YTk2NmU1Zjg0ZWMz
NWUuLjEyMjAzNjA0NDEyMTMyMDk0YzEwZjlkNTU2MzdhNTViOTBiN2M0ZWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1jcmFz
aC1vbi1hYm9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQuanMKQEAgLTUsMjggKzUsMTIgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgdHJhbnNh
Y3Rpb24gZG9lcyBub3QgY3Jhc2ggb24gYWJvcnQuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
aW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0JykiKTsKLSAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAg
ZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lv
bignMS4wJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5j
dGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwg
c2V0VmVyc2lvbkNvbXBsZXRlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7CisgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ2ZvbycpIik7Ci0gICAgZXZlbnQudGFyZ2V0LnJlc3VsdC5vbmNvbXBs
ZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5jdGlvbiBzZXRWZXJzaW9uQ29tcGxl
dGUoKQpAQCAtMzUsNSArMTksMyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uQ29tcGxldGUoKQogICAg
IGV2YWxBbmRMb2coInNlbGYuZ2MoKSIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0
KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9u
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9u
LWV2ZW50LXByb3BhZ2F0aW9uLmpzCmluZGV4IDdlNTNjOTdjYzg0YjY4MGQxNWQ2NDkzZGRkMTNm
ZGY2MDY0NzFmYTUuLjhlYjBmZGY5NjIwNDE3NjRmNmM5YzdhNmM1MDM4NGJhOWU1M2QzYTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2Fj
dGlvbi1ldmVudC1wcm9wYWdhdGlvbi5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uanMKQEAgLTUsMzEg
KzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBl
dmVudCBwcm9wb2dhdGlvbiBvbiBJREJUcmFuc2FjdGlvbi4iKTsKIAotZnVuY3Rpb24gdGVzdCgp
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgc3RhcnRUZXN0KTsKK2Z1bmN0aW9uIHBy
ZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWV2ZW50LXByb3Bh
Z2F0aW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNl
dFZlcnNpb24oKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZl
cnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9u
IGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwot
ICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICBldmFsQW5k
TG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0Iik7Ci0KLSAgICBkZWxldGVBbGxPYmpl
Y3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogCiAg
ICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnLCBudWxsKSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6
ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpIik7CkBAIC0xNDAsNSArMTIwLDMgQEAgZnVuY3Rp
b24gZGJDb21wbGV0ZUJ1YmJsZUNhbGxiYWNrKCkKICAgICB0ZXN0RmFpbGVkKCJDb21wbGV0ZSBi
dWJibGUgY2FsbGJhY2sgc2hvdWxkIE5PVCBmaXJlIik7CiAgICAgZGJCdWJibGVGaXJlZDIgPSB0
cnVlOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXJl
YWQtb25seS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFu
c2FjdGlvbi1yZWFkLW9ubHkuanMKaW5kZXggYTc1YTdjMDc1MDRmY2E1NWI4ZTI4ZDJiMGIwMTEw
ODQwMzM3NWUzMi4uMTBjOWMxNGJkZWYyMTdlNmNhZGNmODRmMDdkZGU0N2MwZmNlYzZkNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0
aW9uLXJlYWQtb25seS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LmpzCkBAIC01LDMwICs1LDExIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgcmVhZC1vbmx5IHRyYW5zYWN0
aW9ucyBpbiBJbmRleGVkREIuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChw
cmVwYXJlRGF0YWJhc2UsIHNldFZlcnNpb25Eb25lKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbigndHJhbnNhY3Rpb24tcmVhZC1vbmx5JykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0g
ICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXN1
bHQgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKLQotICAgIGV2ZW50LnRhcmdldC5yZXN1bHQub25jb21wbGV0ZSA9
IHNldFZlcnNpb25Eb25lOwotICAgIGV2ZW50LnRhcmdldC5yZXN1bHQub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKSIpOwogICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCgneCcsICd5JykiKTsKIH0KQEAg
LTU0LDUgKzM1LDMgQEAgZnVuY3Rpb24gZ290Q3Vyc29yKCkKIAogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQotCi10ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tcm9sbGJhY2suanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tcm9sbGJhY2suanMKaW5kZXggYWQ3MmE5
NDVmMjhkZjUxMzg1ZGYxZmExYWYyNDAyYjE4MzJmYjllNC4uY2I5NjFiMDYwNjhhYTdkOTVmZThi
OTMyODMzZmIyZmQyODg5NzAwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1yb2xsYmFjay5qcwpAQCAt
NSwzMiArNSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJU
ZXN0IEluZGV4ZWREQiB0cmFuc2FjdGlvbiByb2xsYmFjay4iKTsKIAotZnVuY3Rpb24gdGVzdCgp
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlKTsKK2Z1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
LQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbigndHJhbnNhY3Rpb24t
cm9sbGJhY2snKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9u
IG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxm
LmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFz
ZSgpCi17Ci0gICAgZGVidWcoImNsZWFuRGF0YWJhc2UoKToiKTsKLSAgICBzZWxmLnRyYW5zYWN0
aW9uID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0g
ICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uQ29tcGxldGU7Ci0KLSAgICBkZWxldGVB
bGxPYmplY3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdteU9iamVjdFN0b3JlJyki
KTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMSIpOwogfQpA
QCAtODcsNSArNjYsMyBAQCBmdW5jdGlvbiBnZXRTdWNjZXNzKCkKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImN1cnNvci52YWx1ZSIsICJyb2xsYmFja1ZhbHVlIik7CiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24t
c3RvcmVOYW1lcy1yZXF1aXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmpzCmluZGV4IDg3NDhiMjVk
NjQ1MGM2MTFjYmUwN2JjY2VlY2NiMTU1YWI4NWM4OGUuLjczMzc5ZmZlNDBlNDlhNjIwOGJiODE4
NzY5OTZjZTU3YzQwMTNkNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zdG9yZU5h
bWVzLXJlcXVpcmVkLmpzCkBAIC01LDMxICs1LDEyIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiB0cmFuc2FjdGlvbiBzdG9yZU5hbWVz
IHJlcXVpcmVkIGFyZ3VtZW50cyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
OwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsK
LSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9u
IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAKICAgICBz
aG91bGRUaHJvdygiZGIudHJhbnNhY3Rpb24oKTsiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
LQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92YWx1ZS11bmRlZmluZWQuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdmFsdWUtdW5kZWZpbmVkLmpz
CmluZGV4IDMyYmMyM2RhM2E0OGZkNjQ5ZGUyZThlMjI4MjA1OTYzMTBkZGQyZjUuLmE4ZmM5MGU2
NjMxZGZmMTAzZWZmMzJmZGFjODAwNWIwMGQyM2EyNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92YWx1ZS11bmRlZmluZWQuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3ZhbHVlLXVuZGVmaW5lZC5qcwpA
QCAtNSwyOCArNSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQiB1bmRlZmluZWQgYXMgcmVjb3JkIHZhbHVlIik7CiAKLWZ1bmN0aW9u
IHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFy
ZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9w
dWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCi17
Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKIAogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygicmVzdWx0ID0gb2JqZWN0U3RvcmUuYWRkKHVuZGVmaW5lZCwgSW5maW5pdHkpOyIpOwpA
QCAtNjEsNSArNDQsMyBAQCBmdW5jdGlvbiBjaGVja0N1cnNvcigpCiAgICAgfQogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3ZhbHVlcy1v
ZGQtdHlwZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdmFs
dWVzLW9kZC10eXBlcy5qcwppbmRleCBkMDcyMjliODdlYjgzOGQ3MGU5MzMzYWI0NGUwNWRjMmE3
NzgwZDI3Li43ZjU0ODkyMjMwYTIwZjg1NGI1MmYxNjU4NjQxZjEyN2FkNDZiZDQyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdmFsdWVzLW9kZC10
eXBlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdmFs
dWVzLW9kZC10eXBlcy5qcwpAQCAtNSwyOCArNSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBvZGQgdmFsdWUgZGF0YXR5cGVzIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
Ci0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBv
cGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
YWRkS2V5MTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LX0KLQotZnVuY3Rpb24gYWRkS2V5MSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRi
KTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKIAogICAgIG9iamVjdFN0
b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHthdXRvSW5jcmVt
ZW50OiB0cnVlfSk7Iik7CiAKQEAgLTczLDUgKzU2LDMgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3Io
KQogICAgICAgICB9CiAgICAgfQogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tYWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDg5YWQ3Njc1YzJkY2RiZDMxMGQ2ZGFl
NjhlMzkyZTMwZjI2MjhlYTcuLmY4ZDhhOTFlMzFmYTg4YTg4YmEyNWJiZmQzNGM2OTg5YmZmYWEy
YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1F
U1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBi
ZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCB0
cmFuc2FjdGlvbiBhYm9ydHMgc2VuZCB0aGUgcHJvcGVyIG9uYWJvcnQgbWVzc2FnZXMuLgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDE0ICs1LDkgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCduYW1lJykKLWRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVyc2lvblN1Y2Nlc3MoKToK
LXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLXRy
YW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitk
Ym5hbWUgPSAidHJhbnNhY3Rpb24tYWJvcnQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQogc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6
J30sICdrZXknKQogdHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlTmFtZSddLCAncmVhZHdy
aXRlJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWFjdGl2ZS1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFnLWV4cGVjdGVkLnR4dAppbmRleCA0YTE0YzQ5NjAy
M2UyNzQ1MzQ2Njk2MzQ0YTQ2ZWMyZWM5ODM2Nzc5Li4zZGQxOTA3MjhkM2ExMTgzMjM1NDMxY2Zl
NmRmZjNkMTM2NGQ2ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWN0aXZlLWZsYWctZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBp
cyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRl
ZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIHRyYW5zYWN0aW9uIGludGVybmFsIGFj
dGl2ZSBmbGFnLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDkgKzUsOSBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBz
ZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhl
ZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCd0cmFu
c2FjdGlvbi1hY3RpdmUtZmxhZycpCi1pbmRleGVkREIub3BlbigndHJhbnNhY3Rpb24tYWN0aXZl
LWZsYWcnKQotZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUgPSAidHJhbnNhY3Rpb24tYWN0aXZl
LWZsYWcuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIu
b3BlbihkYm5hbWUpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAna2V5cGF0aCcpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
bmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0CmluZGV4IDViOWU1ZGQ4ZjM3ODgyNDFl
ZjhkOWE2NTBlZDM1YmE0M2MzNzYxZTYuLjhkNjZkZmJkMWU4YzVmYWI4NTFhYWU3MWZhMTIwNmM2
MmM2ZWE4MzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNp
b24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUg
InVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIHRyYW5zYWN0
aW9uIGFuZCBvYmplY3RTdG9yZSBjYWxscwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBA
IC02LDE1ICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Bl
bigndHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzJykKLWRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAotcmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKLXRyYW5zID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJ0
cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnYScpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYicpCiBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnKS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnc29tZV9wYXRoJykKLXRyYW5zLmFkZEV2
ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgY3JlYXRlZCwgdHJ1ZSkKIAogdHJhbnMgPSBkYi50cmFu
c2FjdGlvbihbJ2EnXSkKIHRyYW5zLm9iamVjdFN0b3JlKCdhJykKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29t
cGxldGUtd29ya2Vycy1leHBlY3RlZC50eHQKaW5kZXggOGY0Y2EzNTc5MTc4MWY0NGE2NzMzZmZi
ODk4MDlkZmI4MDA2ZmZhYS4uZGIxOGFhYzgyMjllODg2ZDI0ZTk0MzA5ZDIxN2ZlNDE3YWY0ZmFh
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
Y29tcGxldGUtd29ya2Vycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd29ya2Vycy1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5v
bi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBl
dmVudCBpbnN0ZWFkLgogW1dvcmtlcl0gVGVzdCBJbmRleGVkREIgd29ya2VycywgcmVjdXJzaW9u
LCBhbmQgdHJhbnNhY3Rpb24gdGVybWluYXRpb24uCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KQEAgLTcsMTEgKzYsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFN0YXJ0aW5nIHdv
cmtlcjogcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMuanMKIFtXb3JrZXJd
IGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwog
W1dvcmtlcl0gCi1bV29ya2VyXSByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9u
LWNvbXBsZXRlLXdvcmtlcicpCi1bV29ya2VyXSBkYiA9IHJlcXVlc3QucmVzdWx0Ci1bV29ya2Vy
XSByZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1bV29ya2VyXSBEZWxldGVkIGFsbCBvYmpl
Y3Qgc3RvcmVzLgotW1dvcmtlcl0gdHJhbnMgPSByZXF1ZXN0LnJlc3VsdAorW1dvcmtlcl0gZGJu
YW1lID0gInRyYW5zYWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMuanMiCitbV29ya2VyXSBpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorW1dvcmtlcl0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
KQorW1dvcmtlcl0gCitbV29ya2VyXSBwcmVwYXJlRGF0YWJhc2UoKToKIFtXb3JrZXJdIGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBbV29ya2VyXSAKIFtXb3JrZXJdIGNyZWF0ZVRyYW5z
YWN0aW9uKCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1jcmFzaC1vbi1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC1leHBlY3RlZC50eHQKaW5kZXgg
ZDRkYmIyZDgzY2QxZjgxM2E2MzIyNGZjMzZiZGIxMDVmYzhiNDEzZC4uOWQ3ZWRmMjZiMDViMWI4
YjQ2OWZiZDlhODA5Y2M3OTg0YzViNDUzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZl
cnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0
aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiB0cmFuc2Fj
dGlvbiBkb2VzIG5vdCBjcmFzaCBvbiBhYm9ydC4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIu
b3BlbigndHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQnKQotb3BlblN1Y2Nlc3MoKToKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignMS4wJykKK2RibmFtZSA9ICJ0cmFu
c2FjdGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28n
KQogZGIudHJhbnNhY3Rpb24oJ2ZvbycpCiBzZWxmLmdjKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50
LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA0OGQ0MWM1MWM0M2VlMTA1YjEwNjdmYjcz
Mzc0ZDNkY2U1Yzc2YzQzLi5hYzViODZhNzRmMDViNTg4MjIyOTk0N2Y2YzE0NGNiMTE3YjFjMTll
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1l
dmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBu
b24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIg
ZXZlbnQgaW5zdGVhZC4KIFRlc3QgZXZlbnQgcHJvcG9nYXRpb24gb24gSURCVHJhbnNhY3Rpb24u
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTMgKzUsOSBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWV2ZW50LXByb3Bh
Z2F0aW9uJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZl
cnNpb24nKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1u
dWxsLgotdHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdAotRGVsZXRlZCBhbGwgb2JqZWN0IHN0
b3Jlcy4KK2RibmFtZSA9ICJ0cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sIgoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCiBzdG9yZS5hZGQo
e3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCiBWZXJpZmluZyBhYm9ydApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJl
YWQtb25seS1leHBlY3RlZC50eHQKaW5kZXggZTRlMjQ2ZGQ5MjhiNDAzNDM2OGJjZWE3MDBiZTY5
ZTBhZWJkNTAzNS4uYjY5NTY1OGVhNWIxYTg2MWYzZmIxYjFkOTQ4OTVlMzc5N2UzN2E2YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1v
bmx5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1yZWFkLW9ubHktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwg
YmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3Qg
cmVhZC1vbmx5IHRyYW5zYWN0aW9ucyBpbiBJbmRleGVkREIuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KQEAgLTYsMTEgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5k
ZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLXJlYWQtb25seScpCi1vcGVuU3VjY2VzcygpOgotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXN1bHQgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEn
KQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJ0cmFuc2FjdGlvbi1yZWFk
LW9ubHkuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIu
b3BlbihkYm5hbWUpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBzdG9y
ZS5wdXQoJ3gnLCAneScpCiB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yb2xsYmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1y
b2xsYmFjay1leHBlY3RlZC50eHQKaW5kZXggMjE5MzBjM2ZiOWM3NmEwMGUxNDc2M2I5MGRkMDE2
MzIxZTNiZWQxOS4uNTRlNGNmZDIyNWI5YWJmZTVlNzZmNzRkZmZhYTdlZjFhNWI1NzI1ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJh
Y2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVT
U0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJl
IHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IElu
ZGV4ZWREQiB0cmFuc2FjdGlvbiByb2xsYmFjay4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgpAQCAtNiwxMyArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIu
b3BlbigndHJhbnNhY3Rpb24tcm9sbGJhY2snKQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpCi1jbGVh
bkRhdGFiYXNlKCk6Ci10cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLURlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAidHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbCIK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbXlPYmplY3RTdG9yZScpCiBQQVNTIGRiLm9iamVjdFN0
b3JlTmFtZXMubGVuZ3RoIGlzIDEKIHNldFZlcnNpb25Db21wbGV0ZSgpOgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1
aXJlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLWV4cGVjdGVkLnR4dAppbmRleCAzMzQ2OTA3ZjVlYjMx
MDZjZTlmZGI3ZDBiZjAxZDM4NDNkMDMwZjA1Li5mOGFkYzgyNzNkMzg1NTQ5YjA0ODNmYjU2Y2Yy
NGE0NDczZTVmMzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNp
b24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUg
InVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQjogdHJhbnNhY3Rp
b24gc3RvcmVOYW1lcyByZXF1aXJlZCBhcmd1bWVudHMKIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgpAQCAtNiwxMCArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gInRyYW5z
YWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBQQVNTIGRiLnRyYW5zYWN0aW9uKCk7
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLWV4cGVjdGVkLnR4dAppbmRleCBiY2U1
YjFmOGJhOWM1Y2QxMjM2N2Q3ZmExZmQ2N2RkNjdkY2I2N2EwLi40NzM0ZjY2NDMzZjNkODk3MGMx
MmZhZDFkZTFkNTZhNDFhMjUyNmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwz
IEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFu
ZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBp
bnN0ZWFkLgogVGVzdCBJbmRleGVkREIgdW5kZWZpbmVkIGFzIHJlY29yZCB2YWx1ZQogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEwICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMu
CitkYm5hbWUgPSAidmFsdWUtdW5kZWZpbmVkLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnZm9vJyk7CiByZXN1bHQgPSBvYmplY3RTdG9yZS5hZGQodW5kZWZpbmVk
LCBJbmZpbml0eSk7CiByZXN1bHQgPSBvYmplY3RTdG9yZS5nZXQoSW5maW5pdHkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVz
LWV4cGVjdGVkLnR4dAppbmRleCA5YTRhY2EyZjNmMTliODkwOWY0YzFkNWJkN2JhZGE5MGIxY2U4
M2I1Li5jOTYyY2U3NDBmZmFmMzg0YWViYmI2MmI2ZTljNDk4ZjBmYTNkZmU4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVz
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZl
cnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0
aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBvZGQgdmFs
dWUgZGF0YXR5cGVzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTAgKzUsOSBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJ2YWx1ZXMtb2RkLXR5cGVzLmh0bWwiCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQog
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHthdXRvSW5jcmVtZW50OiB0cnVlfSk7CiBhZGRp
bmcgcmVnZXhwIHZhbHVlCiBvYmplY3RTdG9yZS5hZGQodmFsaWRUeXBlc1tuZXh0VG9BZGRdLnZh
bHVlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>