<?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>155581</bug_id>
          
          <creation_ts>2016-03-17 02:15:19 -0700</creation_ts>
          <short_desc>Move IndexedDB regular test to web-platform-tests</short_desc>
          <delta_ts>2016-03-18 03:17:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1175668</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-17 02:15:19 -0700</bug_when>
    <thetext>Following on bug 148713 discussion, it might be good to move regular IndexedDB tests to web-platform-tests folder.
That will allow updating these tests according W3C WPT repo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175672</commentid>
    <comment_count>1</comment_count>
      <attachid>274274</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-17 02:46:02 -0700</bug_when>
    <thetext>Created attachment 274274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175743</commentid>
    <comment_count>2</comment_count>
      <attachid>274274</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-17 09:08:15 -0700</bug_when>
    <thetext>Comment on attachment 274274
Patch

Seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175758</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-17 09:41:54 -0700</bug_when>
    <thetext>&gt;  Modified also IndexedDB-private-browsing/support.js to always activate testRunner private browsing mode.

I still think that it would be cleaner to enable private browsing in .html. It was extremely surprising to me to find that hidden in support.js.

At the very least, support.js should be renamed to indicate that it&apos;s different from support.js - simply having it in a different directory is too subtle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175764</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-17 09:56:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt;  Modified also IndexedDB-private-browsing/support.js to always activate testRunner private browsing mode.
&gt; 
&gt; I still think that it would be cleaner to enable private browsing in .html.
&gt; It was extremely surprising to me to find that hidden in support.js.
&gt; 
&gt; At the very least, support.js should be renamed to indicate that it&apos;s
&gt; different from support.js - simply having it in a different directory is too
&gt; subtle.

If we add a script dedicated to those tests, the script should probably do it that way.

In the meantime, I prefer keeping all html files exactly the same as their WPT version.

Once this patch is landed, I plan to update the WPT IndexedDB tests and those tests according W3C WPT repo. Not touching the html files will make this resyncing much easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176132</commentid>
    <comment_count>5</comment_count>
      <attachid>274274</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-18 03:17:01 -0700</bug_when>
    <thetext>Comment on attachment 274274
Patch

Clearing flags on attachment: 274274

Committed r198394: &lt;http://trac.webkit.org/changeset/198394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176133</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-18 03:17:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274274</attachid>
            <date>2016-03-17 02:46:02 -0700</date>
            <delta_ts>2016-03-18 03:17:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155581-20160317104547.patch</filename>
            <type>text/plain</type>
            <size>2782000</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MzE4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDE2MDY5YWZmYTA3NTYyODc5ZjA0
MjZkZjdhYmU2ZGViODE2NWVmNS4uMTFhZTMxMzYwZjcxYzlkYjQ1MmFjNmJmYmYwYTQ4Y2I3YzY0
OWU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTAzLTE3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgTW92ZSBJbmRleGVkREIgcmVn
dWxhciB0ZXN0IHRvIHdlYi1wbGF0Zm9ybS10ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1pbmcgaW5kZXhlZGRiIHRlc3QgZXhwZWN0YXRp
b24gYWNjb3JkaW5nIG5ldyBwYXRoIGFuZCBkaXJlY3RvcnkgbmFtZS4KKworICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMTYtMDMtMTYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IERpcmVjdGx5IGNvbXBvc2l0ZWQg
aW1hZ2UgbGF5ZXJzIG5lZWQgcGl4ZWxzbmFwcGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGNjNmQwYjg5MTA1N2RjMDFiZjhlMWIwNjA4YTU4OWNmMzE2YTQwODQuLmNhYWE3
YzQ1ODEzNjFhZjFiYTVhMTJmYTYwM2RlMmZlZjc2YmUwNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNzUgQEAKKzIwMTYtMDMtMTcgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBNb3ZlIEluZGV4ZWREQiBy
ZWd1bGFyIHRlc3QgdG8gd2ViLXBsYXRmb3JtLXRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZpbmcgcmVndWxhciBJbmRleGVkREIgdGVzdHMg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiIHRvIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCLgorICAgICAgICBNb3Zpbmcg
cHJpdmF0ZSBicm93c2luZyBJbmRleGVkREIgdGVzdHMgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiIHRvIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy4KKyAgICAgICAgUmVtb3ZlZCBwcml2YXRlIHByZWZpeCBmcm9tIHByaXZh
dGUgYnJvd3NpbmcgSW5kZXhlZERCIHRlc3RzIHNpbmNlIHRoZXkgYXJlIHN0b3JlZCBpbiB0aGVp
ciBvd24gZm9sZGVyLgorCisgICAgICAgIE1vZGlmaWVkIHN1cHBvcnQuanMgdG8gcmVtb3ZlIHVu
bmVjZXNzYXJ5IGNhbGxzIHRvIHRlc3RSdW5uZXIgQVBJLgorICAgICAgICBNb2RpZmllZCBhbHNv
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3N1cHBvcnQuanMgdG8gYWx3YXlzIGFjdGl2YXRl
IHRlc3RSdW5uZXIgcHJpdmF0ZSBicm93c2luZyBtb2RlLgorCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJv
cnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1p
bi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5l
ZWRlZC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
Y2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbC4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY3Vyc29y
LW92ZXJsb2Fkcy1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvY3Vyc29yLW92ZXJsb2Fkcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYl93ZWJ3b3JrZXJzLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiX3dlYndvcmtlcnMt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYl93
ZWJ3b3JrZXJzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiX3dlYndvcmtlcnMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFk
dmFuY2UtY29udGludWUtYXN5bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFk
dmFuY2UtY29udGludWUtYXN5bmMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1hZHZh
bmNlLWludmFsaWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItYWR2YW5jZS1p
bnZhbGlkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWFkdmFuY2UuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS5odG0uCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWNvbnRpbnVlLWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3ItY29udGludWUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUuaHRtLgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItZGlyZWN0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1pbmRleC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFu
Z2UuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLmh0bS4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4Lmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVj
dGlvbi1pbmRleC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2Jq
ZWN0c3RvcmUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0
b3JlLWtleXJhbmdlLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1v
YmplY3RzdG9yZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24uaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3It
a2V5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yLWtleS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWtleS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXkuaHRtLgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1wcmltYXJ5a2V5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLXByaW1hcnlrZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1wcmltYXJ5a2V5Lmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXByaW1hcnlrZXkuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1yZXVzZWQtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItcmV1c2VkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3ItcmV1c2VkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJldXNlZC5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXNvdXJjZS1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1zb3VyY2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvci1zb3VyY2UuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Itc291cmNlLmh0bS4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9hZHZhbmNlX2luZGV4LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2
YW5jZV9pbmRleDItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDItZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4Mi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXgzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4NS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1Lmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg1Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRl
eDYtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4Ni5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDcuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9pbmRleDcuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4OC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg4Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4Lmh0bS4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDktZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4OS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2FkdmFuY2Vfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2Jq
ZWN0c3RvcmUyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZTIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTIuaHRtLgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
My1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQuCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0
c3RvcmUzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLmh0bS4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2Vfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZTUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRl
eC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Lmh0bS4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9j
b250aW51ZV9pbmRleDIuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgz
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfY29udGludWVfaW5kZXgzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXg0Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
NS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4NS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUuaHRtLgorICAgICAg
ICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJ
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4Ni5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRl
eDctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDcuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3Lmh0bS4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1leHBlY3RlZC50eHQuCisgICAgICAgICog
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9pbmRleDguaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
dmFsaWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9v
YmplY3RzdG9yZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50
eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlLmh0bS4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3Rv
cmUyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQuCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29i
amVjdHN0b3JlMi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTIuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0
c3RvcmUzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy5odG0uCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9y
ZTQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU2Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5k
ZXgtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXguaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Lmh0bS4KKyAgICAgICAgKiBJ
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXgyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5k
ZXgyLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
ZGVsZXRlX2luZGV4My1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4My5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
aW5kZXg0LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0Lmh0bS4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS5odG1sOiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfaW5kZXg1Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9y
ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2Jq
ZWN0c3RvcmUyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmUyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTIuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQuCisgICAgICAgICog
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRl
X29iamVjdHN0b3JlNC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlNS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3Jl
NS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0
ZXJhdGluZy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmcuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRl
cmF0aW5nLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJz
b3JfaXRlcmF0aW5nX2luZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0
ZXJhdGluZ19pbmRleC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXguaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2l0ZXJhdGluZ19pbmRleDItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19pbmRleDIuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2Jq
ZWN0c3RvcmUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVj
dHN0b3JlLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJz
b3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0
c3RvcmUyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0
c3RvcmUyLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC1leHBlY3RlZC50eHQu
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9p
bmRleC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9p
bmRleDItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDIuaHRtLgorICAgICAg
ICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl91cGRhdGVfaW5kZXg0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRh
dGVfaW5kZXg0Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5k
ZXg2LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleDYuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNv
cl91cGRhdGVfaW5kZXg3Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDcuaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTIuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlMi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
My1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy5odG0u
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9v
YmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNC1leHBlY3RlZC50
eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0
ZV9vYmplY3RzdG9yZTQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNC5odG0uCisgICAgICAgICog
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9y
ZTUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX29iamVjdHN0b3JlNi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29i
amVjdHN0b3JlNy1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZTgtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTguaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY2xvc2UtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9jbG9zZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY2xvc2UuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS5odG0uCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY2xvc2UyLWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfY2xvc2UyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jbG9zZTIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTIuaHRtLgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3Jl
YXRlSW5kZXgtZW1wdHluYW1lLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgt
ZW1wdHluYW1lLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLmh0
bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmUxMC0xMDAwZW5kcy1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1l
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1l
bXB0eW5hbWUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTExLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmUxMS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUy
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTIuaHRt
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bS4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTQtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlNC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5odG0uCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1LWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1LWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU2Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy5odG1sOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlNy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVycy1leHBlY3RlZC50eHQuCisgICAgICAgICog
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4
LXBhcmFtZXRlcnMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVycy5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxp
ZHBhcmFtZXRlcnMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMu
aHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2Rl
bGV0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNl
X2RlbGV0ZU9iamVjdFN0b3JlLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUuaHRtLgorICAgICAg
ICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0
b3JlMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1leHBlY3RlZC50eHQuCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVsZXRlT2Jq
ZWN0U3RvcmUyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLmh0bS4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3Jl
My5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC1leHBlY3RlZC50
eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVs
ZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90
X3JldXNlZC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0
YWJhc2VfdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1leHBlY3RlZC50
eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJh
bnNhY3Rpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24yLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb24yLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRt
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1leHBlY3RlZC50eHQuCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24z
Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb24zLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2Fj
dGlvbjQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC5odG0uCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJ
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV90cmFuc2FjdGlvbjUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3RvcnlfY21wLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfY21wLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAu
aHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfY21w
Mi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3RvcnlfY21wMi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9jbXAyLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLmh0bS4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNl
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS1leHBlY3RlZC50eHQuCisgICAgICAgICog
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfZGVsZXRlRGF0YWJhc2UuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRh
YmFzZTItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0
YWJhc2UzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTMtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJh
c2UzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZTQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0Lmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFz
ZTQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlf
b3Blbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuLmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuLmh0bS4KKyAg
ICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMC1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmZhY3Rvcnlfb3BlbjEwLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLmh0bS4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjExLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bS4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMi1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjEyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJmYWN0b3J5X29wZW4xMi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bS4KKyAgICAgICAgKiBJ
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4yLWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuMi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZmFjdG9yeV9vcGVuMi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjIuaHRtLgorICAgICAgICAqIEluZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjMtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4z
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJm
YWN0b3J5X29wZW4zLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuNC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjQtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlf
b3BlbjQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X29wZW40Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJmYWN0b3J5X29wZW41LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNS1leHBlY3RlZC50eHQu
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuNS5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmZhY3Rvcnlfb3BlbjYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW42LWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW42Lmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuNi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9y
eV9vcGVuNy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjcuaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43Lmh0
bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW44
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjguaHRtLgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X29wZW45LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjktcHJpdmF0ZS5odG1sLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnkt
YXJyYXlrZXlwYXRoLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGgtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11
bHRpZW50cnktYXJyYXlrZXlwYXRoLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGguaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnkt
YmlnLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWctZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgt
bXVsdGllbnRyeS1iaWcuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmluZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleC1tdWx0aWVu
dHJ5Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXgtbXVsdGllbnRyeS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiaW5kZXhfY291bnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfY291bnQuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9j
b3VudC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhf
Y291bnQyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDIuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDIuaHRtLgor
ICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2NvdW50My1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2NvdW50My1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiaW5kZXhfY291bnQzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQzLmh0bS4KKyAgICAgICAgKiBJ
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDQtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9j
b3VudDQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmluZGV4X2NvdW50NC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50NC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0LWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQuaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4
X2dldDItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQyLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Mi5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0My1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X2dldDMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmluZGV4X2dldDMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQzLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleF9nZXQ0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NC1leHBlY3RlZC50eHQu
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0NC5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X2dldDQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4
X2dldDUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ1LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQ1Lmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X2dldDYtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmluZGV4X2dldDYuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleF9nZXQ3LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2YXRlLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9n
ZXQ3Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0Ny5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRL
ZXkuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dl
dEtleTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkyLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Mi5odG0u
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5My1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2dldEtleTMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkzLmh0bS4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXk0LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5NC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5NC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTQuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTUtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9n
ZXRLZXk1LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJpbmRleF9nZXRLZXk1Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NS5odG0uCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5Ni1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmlu
ZGV4X2dldEtleTYuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXk3LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJp
bmRleF9nZXRLZXk3Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2luZGV4TmFtZXMt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmlu
ZGV4X2luZGV4TmFtZXMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1
cnNvci1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfb3BlbkN1cnNvci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IuaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5DdXJzb3IyLWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
b3BlbkN1cnNvcjItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfb3BlbkN1cnNvcjIuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi5odG0u
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfb3BlbktleUN1
cnNvci1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3IuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9v
cGVuS2V5Q3Vyc29yLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9v
cGVuS2V5Q3Vyc29yMi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLmh0bS4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X29wZW5LZXlDdXJzb3IzLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1
cnNvcjMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJh
bmdlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRia2V5cmFuZ2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UuaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlX2luY29ycmVjdC1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJh
bmdlX2luY29ycmVjdC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRia2V5cmFuZ2VfaW5jb3JyZWN0Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0Lmh0bS4KKyAg
ICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZC5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTAt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTAuaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
MC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfYWRkMTEtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTEuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQxMS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfYWRkMTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMi1leHBlY3RlZC50eHQu
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRk
MTIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQxMi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy1leHBl
Y3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfYWRkMTMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQxNC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfYWRkMTQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNC5odG0uCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQxNS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNS5odG0uCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQxNi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTYuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNi5o
dG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
YWRkMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDIuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQyLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9hZGQzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1leHBlY3RlZC50eHQuCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMy5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2FkZDMuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2FkZDQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ0Lmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkNC5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Fk
ZDUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQ1Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ2LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNi1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfYWRkNi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9hZGQ3Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkOC1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDgtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2FkZDguaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4Lmh0bS4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ5LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkOS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfYWRkOS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDkuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY2xlYXItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIuaHRtLgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXIyLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xl
YXIyLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9jbGVhcjMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjMtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyMy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyMy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9jbGVhcjQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50LWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y291bnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2NvdW50Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50Mi1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NvdW50Mi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY291bnQyLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQyLmh0bS4K
KyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3Vu
dDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50My5odG1sOiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NvdW50My5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfY291bnQ0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQ0LWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3Vu
dDQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jb3VudDQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXgtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXguaHRt
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4MTAtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDEwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC5odG0uCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEuaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDExLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgxMi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4MTIuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDEzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy5odG0uCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDIuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdh
eS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1leHBl
Y3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5Lmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgzLXVzYWJsZS1yaWdodC1hd2F5Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3Jk
ZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3Jk
ZXItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci5odG0uCisgICAgICAgICog
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVt
cHR5a2V5cGF0aC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGguaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDUtZW1wdHlrZXlwYXRoLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVu
dF9vcmRlci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3
LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVy
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDctZXZlbnRfb3JkZXIuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9r
ZXlzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0
eW5hbWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFt
ZS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGUuaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGUuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9kZWxldGUyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi5odG0uCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZTMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLmh0bS4KKyAg
ICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU0
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC5odG1sOiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZTQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU1LWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9k
ZWxldGU1Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZTYtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2Lmh0bS4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU3LWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0
ZTcuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZUluZGV4Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXguaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGVkLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC5odG0u
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQuaHRt
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dl
dDItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQyLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0
Mi5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfZ2V0My1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDMuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9nZXQzLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9nZXQ0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0NC5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2dldDUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ1LWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ1
Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZ2V0NS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfZ2V0Ni1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDYtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2dldDYuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9nZXQ2Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ3LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBl
Y3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfZ2V0Ny5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDcuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2luZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5k
ZXgtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2luZGV4Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXguaHRtLgorICAgICAgICAqIEluZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3ItZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3Bl
bkN1cnNvci5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNv
cl9pbnZhbGlkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFsaWQuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vy
c29yX2ludmFsaWQuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX3B1dC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0Lmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9wdXQxMC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9w
dXQxMC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDEwLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9wdXQxMS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMi1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDEyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9wdXQxMi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLmh0bS4KKyAgICAgICAgKiBJ
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDEzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLmh0bS4KKyAg
ICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxNC1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxNC5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0
Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9wdXQxNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxNS5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDE1Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJv
YmplY3RzdG9yZV9wdXQxNi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE2LWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQx
Ni5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDE2Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9wdXQyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfcHV0Mi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDIuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9wdXQzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0My5odG0uCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0NC1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX3B1dDQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0Lmh0bS4KKyAgICAgICAgKiBJbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ1LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0NS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfcHV0NS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUuaHRtLgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDYtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ2LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ2Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni5odG0uCisgICAgICAg
ICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0Ny1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDcuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ3Lmh0bS4KKyAg
ICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ4LWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0OC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0OC5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDguaHRt
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1
dDktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ5Lmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
OS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rp
b24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5z
YWN0aW9uLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBs
ZXRlLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0cmFuc2Fj
dGlvbi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYnRyYW5zYWN0aW9uLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0cmFuc2FjdGlv
bl9hYm9ydC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZl
bnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YnZlcnNpb25jaGFuZ2VldmVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC5odG0uCisgICAgICAgICogSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRid29ya2VyLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYndvcmtlci5qcy4KKyAgICAgICAgKGZhbHNl
Lk1lc3NhZ2VIYW5kbGVyLm9wZW5fcnEub251cGdyYWRlbmVlZGVkKToKKyAgICAgICAgKGZhbHNl
Lk1lc3NhZ2VIYW5kbGVyLmRiLmUudGFyZ2V0LnJlc3VsdC5kYi5vbmVycm9yKToKKyAgICAgICAg
KGZhbHNlLk1lc3NhZ2VIYW5kbGVyLmRiLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlLm9uc3VjY2Vz
cyk6CisgICAgICAgIChmYWxzZS5NZXNzYWdlSGFuZGxlci5vcGVuX3JxLm9uc3VjY2Vzcyk6Cisg
ICAgICAgIChmYWxzZS5NZXNzYWdlSGFuZGxlci5vcGVuX3JxLm9uZXJyb3IpOgorICAgICAgICAo
ZmFsc2UuTWVzc2FnZUhhbmRsZXIub3Blbl9ycS5vbmJsb2NrZWQpOgorICAgICAgICAoZmFsc2Uu
TWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lu
ZGV4X3NvcnRfb3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pbmRleF9zb3J0X29yZGVyLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9v
cmRlci5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5X2ludmFs
aWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlfaW52YWxpZC1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3Npbmcva2V5X2ludmFsaWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxpZC5odG0uCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3Npbmcva2V5X3ZhbGlkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlkLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlfdmFsaWQuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfdmFsaWQu
aHRtbC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3It
Y29uc3RyYWludGVycm9yLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5Z2VuZXJhdG9y
LWNvbnN0cmFpbnRlcnJvci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3IuaHRtLgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleWdlbmVyYXRvci1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRv
ci1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5
Z2VuZXJhdG9yLW92ZXJmbG93LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLW92ZXJmbG93LWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3Itb3Zl
cmZsb3cuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3cuaHRtLgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2tleWdlbmVyYXRvci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci5odG0uCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3Npbmcva2V5b3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlvcmRlci1leHBlY3RlZC50eHQuCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5b3JkZXIuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlvcmRlci5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aC1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGgt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleXBh
dGguaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlwYXRoLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlwYXRo
X2ludmFsaWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9rZXlwYXRoX2ludmFsaWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIElu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleXBhdGhfaW52YWxpZC5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfaW52YWxpZC5odG0u
CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aF9tYXhzaXplLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5cGF0aF9tYXhzaXplLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9rZXlwYXRoX21heHNpemUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX21heHNpemUuaHRtLgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2xpc3Rfb3JkZXJpbmctZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVy
aW5nLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9s
aXN0X29yZGVyaW5nLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvbGlzdF9vcmRlcmluZy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3Npbmcvb2JqZWN0c3RvcmVfa2V5b3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1l
eHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcvb2JqZWN0
c3RvcmVfa2V5b3JkZXIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci5odG0uCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0
X2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUuaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQt
Y2FwdHVyZS5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcvc3RyaW5n
LWxpc3Qtb3JkZXJpbmctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmluZy1leHBlY3RlZC50eHQuCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcvc3RyaW5nLWxpc3Qtb3JkZXJpbmcu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdHJp
bmctbGlzdC1vcmRlcmluZy5odG0uCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvc3VwcG9ydC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9zdXBwb3J0LmpzLgorICAgICAgICAod2luZG93LmluZGV4ZWREQi5lbHNlKToKKyAgICAg
ICAgKGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKToKKyAgICAgICAgKGZhaWwpOgorICAgICAgICAo
YXV0b19mYWlsKToKKyAgICAgICAgKGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cyk6CisgICAg
ICAgIChhc3NlcnRfa2V5X2VxdWFscyk6CisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2Uu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS5odG0uCisgICAgICAgICogSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1s
aWZldGltZS1ibG9ja2VkLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy90cmFuc2FjdGlvbi1saWZldGltZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbi1s
aWZldGltZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLmh0bS4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1
ZXN0cXVldWUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS5odG0uCisg
ICAgICAgICogSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb25fYnViYmxlLWFu
ZC1jYXB0dXJlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbl9idWJi
bGUtYW5kLWNhcHR1cmUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUuaHRtLgorICAgICAgICAq
IEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3ZhbHVlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3ZhbHVlLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWUuaHRtLgorICAg
ICAgICAqIEluZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3ZhbHVlX3JlY3Vyc2l2ZS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3Zh
bHVlX3JlY3Vyc2l2ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvdmFsdWVfcmVjdXJzaXZlLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLmh0bS4KKyAgICAgICAgKiBJbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy93cml0ZXItc3RhcnZhdGlvbi1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFy
dmF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBJbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy93cml0ZXItc3RhcnZhdGlvbi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLmh0bS4KKyAgICAgICAgKiBpbmRleGVk
ZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtcHJpdmF0ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWNv
bnRpbnVlLWFzeW5jLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLXByaXZhdGUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5n
ZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1k
aXJlY3Rpb24taW5kZXgtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLXByaXZhdGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3Rz
dG9yZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
ci1kaXJlY3Rpb24tcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJjdXJzb3Ita2V5LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiY3Vyc29yLXByaW1hcnlrZXktcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3ItcmV1c2VkLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4LXByaXZhdGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLXByaXZh
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXgzLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg1LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LXByaXZhdGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4LXBy
aXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXg5LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3Rz
dG9yZTMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgtcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfaW5kZXgyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4My1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQtcHJpdmF0ZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1LXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
ZGV4Ni1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9pbmRleDctcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtcHJpdmF0ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0
c3RvcmUtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy1wcml2YXRlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3Rz
dG9yZTQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmU1LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi1wcml2YXRlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRl
X2luZGV4Mi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My1wcml2YXRlLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0LXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRl
eDUtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX29iamVjdHN0b3JlLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMy1wcml2
YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmU0LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLXByaXZh
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGlu
Z19pbmRleC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9pdGVyYXRpbmdfaW5kZXgyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS1wcml2YXRlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3Rv
cmUyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtcHJpdmF0ZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC1wcml2YXRlLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1
LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDYtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4Ny1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1w
cml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRh
dGVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmU2LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC1wcml2YXRlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xvc2UyLXBy
aXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLXByaXZhdGUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTExLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLXByaXZh
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRl
T2JqZWN0U3RvcmU0LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2LXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU3LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtcHJpdmF0ZS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTkt
aW52YWxpZHBhcmFtZXRlcnMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1wcml2
YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlMy1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLXByaXZhdGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFu
c2FjdGlvbjItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJk
YXRhYmFzZV90cmFuc2FjdGlvbjMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtcHJpdmF0ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC1wcml2YXRlLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wMi1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0
YWJhc2UtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0
b3J5X2RlbGV0ZURhdGFiYXNlMi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQtcHJpdmF0ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4tcHJpdmF0
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMC1w
cml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjExLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuMTItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW4yLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiZmFjdG9yeV9vcGVuMy1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjctcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW44LXByaXZhdGUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGgt
cHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleC1tdWx0
aWVudHJ5LWJpZy1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmluZGV4LW11bHRpZW50cnktcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJpbmRleF9jb3VudC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmluZGV4X2NvdW50Mi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50NC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXQzLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0NC1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2YXRlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleS1wcml2YXRlLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTItcHJpdmF0ZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkzLXByaXZhdGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUtcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2
LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0
S2V5Ny1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4
X2luZGV4TmFtZXMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJpbmRleF9vcGVuQ3Vyc29yLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLXByaXZhdGUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjItcHJpdmF0ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29y
My1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmtleXJhbmdl
LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRia2V5cmFuZ2Vf
aW5jb3JyZWN0LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTAtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEyLXByaXZhdGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtcHJpdmF0ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNC1w
cml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDE1LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMTYtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQtcHJpdmF0ZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1LXByaXZhdGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNi1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDct
cHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQ4LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkOS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NsZWFyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIzLXByaXZhdGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQt
cHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jb3VudDItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jb3VudDMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1wcml2YXRlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAt
cHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDExLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMtcHJpdmF0ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXktcHJpdmF0ZS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVs
ZXRlSW5kZXgtZXZlbnRfb3JkZXItcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlrZXlwYXRoLXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXg2LWV2ZW50X29yZGVyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLXByaXZhdGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXg4LXZhbGlkX2tleXMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLXByaXZhdGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
Mi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZTMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9kZWxldGU0LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtcHJpdmF0ZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LXByaXZh
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlSW5kZXgtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGVkLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtcHJpdmF0ZS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0LXByaXZhdGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1wcml2
YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dl
dDYtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9nZXQ3LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLXByaXZh
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTAtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxMS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTMtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNC1wcml2YXRlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYt
cHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9wdXQyLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0My1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ1LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni1wcml2YXRlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctcHJpdmF0ZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4LXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0OS1w
cml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9u
LW9uY29tcGxldGUtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJ0cmFuc2FjdGlvbi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRidmVyc2lvbmNoYW5nZWV2ZW50LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaW5kZXhfc29ydF9vcmRlci1wcml2YXRlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2tleV9pbnZhbGlkLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIva2V5X3ZhbGlkLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2YXRlLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleWdlbmVyYXRvci1vdmVyZmxvdy1w
cml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleWdlbmVyYXRvci1w
cml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleW9yZGVyLXByaXZh
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5cGF0aC1wcml2YXRlLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleXBhdGhfaW52YWxpZC1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleXBhdGhfbWF4c2l6ZS1wcml2
YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctcHJp
dmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlv
cmRlci1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL3JlcXVlc3Rf
YnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1wcml2YXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1l
LWJsb2NrZWQtcHJpdmF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluZGV4ZWRkYi90cmFu
c2FjdGlvbi1saWZldGltZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5kZXhlZGRiL3ZhbHVlLXByaXZhdGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLXByaXZhdGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvd3JpdGVyLXN0YXJ2YXRpb24tcHJpdmF0ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIHJlc291cmNlcy9JbXBvcnRFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9hYm9ydC1pbi1pbml0aWFsLXVw
Z3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0
bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9jbG9zZS1pbi11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Nsb3NlLWluLXVwZ3Jh
ZGVuZWVkZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMt
cHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9jdXJzb3Itb3ZlcmxvYWRzLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG0uCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJfd2Vid29ya2Vycy1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJz
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiX3dlYndvcmtlcnMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy5odG0uCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLXByaXZhdGUtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2Ut
Y29udGludWUtYXN5bmMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy5odG0uCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItYWR2YW5jZS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvci1hZHZhbmNlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1hZHZhbmNlLWludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLmh0bTog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWFkdmFuY2UtaW52YWxpZC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3ItYWR2YW5jZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLmh0bS4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
ci1jb250aW51ZS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1jb250aW51ZS5odG06IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1jb250aW51ZS5odG0uCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9u
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi1p
bmRleC1rZXlyYW5nZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtcHJp
dmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRl
eC1rZXlyYW5nZS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC5odG0uCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9i
amVjdHN0b3JlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1wcml2YXRlLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3Rz
dG9yZS1rZXlyYW5nZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UuaHRtLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlv
bi1vYmplY3RzdG9yZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUuaHRtLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi5odG06IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1k
aXJlY3Rpb24uaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yLWtleS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Ita2V5Lmh0bTogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWtl
eS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3It
cHJpbWFyeWtleS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1wcmltYXJ5a2V5LXByaXZhdGUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLXByaW1h
cnlrZXkuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItcHJpbWFyeWtleS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3ItcmV1c2VkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJldXNlZC1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvci1yZXVzZWQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItcmV1c2VkLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1zb3VyY2UtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Itc291cmNlLXBy
aXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yLXNvdXJjZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UuaHRtLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Lmh0bTogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXguaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXgyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLXByaXZh
dGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bS4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
My1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4My5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4My5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUuaHRtOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleDUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg2LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2LXByaXZhdGUt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXg2Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2Lmh0bS4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
Ny5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4Ny5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDgtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDgtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDguaHRtOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRl
eDguaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg5Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5Lmh0bS4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLmh0bS4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
Mi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZh
bmNlX29iamVjdHN0b3JlMi5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi5odG0uCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3Rz
dG9yZTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
YWR2YW5jZV9vYmplY3RzdG9yZTMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTMuaHRtLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2Vfb2Jq
ZWN0c3RvcmU0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0LXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0Lmh0bS4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNl
X29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5o
dG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXgtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXguaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXguaHRtLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLmh0
bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4Mi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMuaHRtOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXgzLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9jb250aW51ZV9pbmRleDQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LXByaXZhdGUt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4NC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
NS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXg1Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4Ni1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYuaHRtOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg2Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDcuaHRt
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRp
bnVlX2luZGV4OC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXg4Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC5odG0uCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW52YWxpZC1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFs
aWQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfaW52YWxpZC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3Rv
cmUuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2Jq
ZWN0c3RvcmUyLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi5odG0uCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUz
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250
aW51ZV9vYmplY3RzdG9yZTMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLmh0bS4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0LXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQuaHRt
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUtcHJp
dmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1Lmh0bTogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlNS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlNi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYuaHRtOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
b2JqZWN0c3RvcmU2Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4LXByaXZh
dGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXguaHRtLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLmh0
bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2RlbGV0ZV9pbmRleDIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMu
aHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9k
ZWxldGVfaW5kZXg0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfZGVsZXRlX2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1Lmh0bTogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9pbmRleDUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3Rv
cmUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3Rz
dG9yZS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfZGVsZXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUy
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTIuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0
b3JlMi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfZGVsZXRlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUz
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMuaHRt
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQuaHRt
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRt
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJh
dGluZy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
aXRlcmF0aW5nLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0
ZXJhdGluZ19pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXguaHRtOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0
aW5nX2luZGV4Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDIt
cHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLmh0
bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVy
YXRpbmdfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLmh0
bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVy
YXRpbmdfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTIt
cHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi5odG06IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2Jq
ZWN0c3RvcmUyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl91cGRhdGVfaW5kZXgtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4LXByaXZhdGUt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX3VwZGF0ZV9pbmRleC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bTog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleDIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1w
cml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMuaHRtLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRl
eDQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5k
ZXg0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1Lmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUu
aHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ni1wcml2YXRlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91
cGRhdGVfaW5kZXg2Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYuaHRtLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4Ny1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3Lmh0bTogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDcuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUy
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTIuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlMi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUz
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlMy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlOC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTguaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlOC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRh
YmFzZV9jbG9zZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLXByaXZhdGUtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY2xvc2Uu
aHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJk
YXRhYmFzZV9jbG9zZS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJkYXRhYmFzZV9jbG9zZTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTItcHJpdmF0ZS1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRh
YmFzZV9jbG9zZTIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgt
ZW1wdHluYW1lLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgt
ZW1wdHluYW1lLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgt
ZW1wdHluYW1lLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1l
Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtcHJp
dmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3Jl
Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmpl
Y3RTdG9yZTEwLTEwMDBlbmRzLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0x
MDAwZW5kcy5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVt
cHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLmh0
bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUuaHRtLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTExLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS5odG0uCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTIuaHRtLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmUzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bS4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5o
dG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUtcHJp
dmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU2LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2Lmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU2Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlNy1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy5odG06IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlNy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU4LXBhcmFtZXRlcnMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVy
cy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTktaW52YWxpZHBhcmFtZXRlcnMuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9k
ZWxldGVPYmplY3RTdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLmh0bTog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfZGVsZXRlT2JqZWN0U3RvcmUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
ZGVsZXRlT2JqZWN0U3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLmh0
bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3Jl
My5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNl
ZC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLXByaXZhdGUt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQuaHRtOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmpl
Y3RTdG9yZTQtbm90X3JldXNlZC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0
aW9uLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24uaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi5odG0u
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFu
c2FjdGlvbjItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItcHJpdmF0ZS1leHBlY3RlZC50
eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90
cmFuc2FjdGlvbjIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfdHJhbnNhY3Rpb24zLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLmh0bTogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb24zLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1w
cml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC5odG0uCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2Fj
dGlvbjUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFu
c2FjdGlvbjUuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9jbXAtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC1wcml2
YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmZhY3RvcnlfY21wLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9jbXAyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLXByaXZh
dGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZmFjdG9yeV9jbXAyLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X2RlbGV0ZURhdGFiYXNlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS5odG06IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVs
ZXRlRGF0YWJhc2UuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNl
Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLmh0bTogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIu
aHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1wcml2YXRlLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZh
Y3RvcnlfZGVsZXRlRGF0YWJhc2UzLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTMuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFz
ZTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1wcml2YXRlLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRl
RGF0YWJhc2U0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZmFjdG9yeV9vcGVuLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuLmh0bS4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjEwLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuMTAtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLmh0bS4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjExLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuMTEtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMS5odG06IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bS4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjEy
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuMTItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMi5odG06IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjEyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rv
cnlfb3BlbjItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4yLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMi5odG06
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZmFjdG9yeV9vcGVuMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjMtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4z
Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuMy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJmYWN0b3J5X29wZW40LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNC1wcml2YXRlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlf
b3BlbjQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X29wZW40Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeV9vcGVuNS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYtcHJpdmF0
ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJmYWN0b3J5X29wZW42Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW43LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy1w
cml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmZhY3Rvcnlfb3BlbjcuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjgtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW44LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZmFjdG9yeV9vcGVuOC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjguaHRtLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuOS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjktcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW45Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS5odG0uCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5
a2V5cGF0aC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGguaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC5o
dG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1tdWx0
aWVudHJ5LWJpZy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLXByaXZhdGUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtbXVs
dGllbnRyeS1iaWcuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy5odG0uCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVs
dGllbnRyeS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmluZGV4LW11bHRpZW50cnkuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5Lmh0bS4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50LWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfY291bnQtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC5odG06IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50Lmh0bS4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50Mi1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2NvdW50Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50Mi5odG06IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50Mi5odG0uCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDMtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9jb3VudDMtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDMuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDMuaHRtLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQ0LWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfY291bnQ0LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQ0Lmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0Lmh0bS4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldC1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldC5odG0uCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQyLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmluZGV4X2dldDIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQzLXByaXZh
dGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiaW5kZXhfZ2V0My5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldDMuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0NC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRl
eF9nZXQ0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0NC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJpbmRleF9nZXQ1LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1wcml2YXRlLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDUu
aHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9nZXQ1Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4X2dldDYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0Ni5odG06IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dl
dDYuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhf
Z2V0Ny1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0Ny5odG06IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDcuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5Lmh0bTogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Lmh0bS4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTItZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXRLZXkyLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5Mi5odG06IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTIuaHRtLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5My1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2dldEtleTMtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXkzLmh0bTogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5My5o
dG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRL
ZXk0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTQuaHRtOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRL
ZXk0Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
X2dldEtleTUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5NS5odG06
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X2dldEtleTUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
aW5kZXhfZ2V0S2V5Ni1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXk2
Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5Ni5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJpbmRleF9nZXRLZXk3LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny1leHBlY3RlZC50eHQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXk3Lmh0
bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfZ2V0S2V5Ny5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9pbmRleE5hbWVzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1wcml2YXRlLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
X2luZGV4TmFtZXMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5DdXJzb3ItZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vy
c29yLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfb3BlbkN1cnNvci5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbkN1cnNvcjItZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9vcGVuQ3Vyc29yMi5odG06IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3Iy
Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29w
ZW5LZXlDdXJzb3ItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLXByaXZhdGUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3Bl
bktleUN1cnNvci5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjItZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9v
cGVuS2V5Q3Vyc29yMi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLmh0bTogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1
cnNvcjIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXhfb3BlbktleUN1cnNvcjMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy1leHBlY3RlZC50
eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9vcGVu
S2V5Q3Vyc29yMy5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmtleXJhbmdlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UtcHJpdmF0ZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJr
ZXlyYW5nZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmtleXJhbmdlLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmtleXJhbmdlX2luY29ycmVjdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC1wcml2
YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmtleXJhbmdlX2luY29ycmVjdC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC5odG0uCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQtZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQuaHRtOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQuaHRt
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
YWRkMTAtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDEw
Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkMTAuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTEtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1wcml2
YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2FkZDExLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTEuaHRtLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTItZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxMi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDEyLmh0bTogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
MTIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy1wcml2YXRlLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2FkZDEzLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
NC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDE0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTQuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTUtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQxNS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDE1Lmh0bTogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkMTUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNi1wcml2YXRlLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2FkZDE2Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMi1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQyLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMi5odG0uCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQzLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDMuaHRtOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQzLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2FkZDQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LXByaXZhdGUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfYWRkNC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUt
cHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ1Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS5odG0uCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ2LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkNi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDYuaHRtOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ2
Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX2FkZDctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRk
Ny5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDcuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfYWRkOC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDgtcHJpdmF0
ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9hZGQ4Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC5odG0uCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ5LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkOS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDkuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5Lmh0bS4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2Ns
ZWFyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jbGVhci5o
dG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1wcml2
YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2NsZWFyMi5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi5odG0uCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jbGVhcjMtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhcjMtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jbGVhcjMuaHRtOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jbGVhcjMuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfY2xlYXI0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NvdW50LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY291bnQtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudC5odG06IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Lmh0
bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2NvdW50Mi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2Nv
dW50Mi5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NvdW50Mi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3Vu
dDMtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMuaHRtLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQ0
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQ0LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQ0Lmh0
bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY291bnQ0Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC5odG06IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTAtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLXBy
aXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAu
aHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXgxMS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtcHJpdmF0
ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS5odG0u
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDEyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1wcml2YXRlLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4MTIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLmh0bS4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4MTMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLXByaXZhdGUtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXgxMy5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgyLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLmh0bS4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2Fi
bGUtcmlnaHQtYXdheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmln
aHQtYXdheS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdh
eS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS5odG0uCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRl
SW5kZXgtZXZlbnRfb3JkZXIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDUtZW1wdHlrZXlwYXRoLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5
cGF0aC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDYtZXZlbnRfb3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZl
bnRfb3JkZXIuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXIuaHRtLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXg3LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29y
ZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLmh0bTogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxp
ZF9rZXlzLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDktZW1wdHluYW1lLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5
bmFtZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUuaHRtLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLmh0bTogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlMi5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTIuaHRtLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLmh0bTogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlMy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9kZWxldGU0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC1wcml2YXRlLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0Lmh0bS4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGU1LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS5odG06IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZTUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtcHJpdmF0ZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9kZWxldGU2Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi5odG0uCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNy1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTcuaHRtOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9kZWxldGU3Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgt
cHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4Lmh0
bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLXByaXZhdGUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlZC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Lmh0bS4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDItZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9nZXQyLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Mi5odG06IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDIu
aHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfZ2V0My1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQz
Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZ2V0My5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2dldDQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDUtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9nZXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0NS5odG06IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUuaHRtLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0
Ni1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDYtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ2Lmh0bTog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0Ni5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9nZXQ3LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1wcml2YXRlLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2dldDcuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ3Lmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2luZGV4LWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
aW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9pbmRleC5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2luZGV4Lmh0bS4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX29wZW5D
dXJzb3ItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLXByaXZhdGUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
b3BlbkN1cnNvci5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3IuaHRtLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
b3BlbkN1cnNvcl9pbnZhbGlkLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLmh0bS4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dC1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dC5odG06IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9wdXQxMC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLXByaXZhdGUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfcHV0MTAuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMS1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDExLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTEuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMS5odG0uCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMi1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTIuaHRtOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQxMi5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9wdXQxMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLXByaXZhdGUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfcHV0MTMuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy5odG0uCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNC1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDE0LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTQuaHRtOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNC5odG0u
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9w
dXQxNS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTUu
aHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxNS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE2LXByaXZh
dGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfcHV0MTYuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi5odG0uCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQyLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0Mi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDIuaHRtOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQyLmh0
bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X3B1dDMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0My5o
dG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDMuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfcHV0NC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9wdXQ0Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NC5odG0uCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ1LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0NS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDUuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ1Lmh0bS4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDYt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0Ni5odG06IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDYuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0Ny1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9wdXQ3Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ4LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
OC1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDguaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4Lmh0bS4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDktZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQ5LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0OS5odG06IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDkuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNh
Y3Rpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb24tb25jb21w
bGV0ZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb24uaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi5odG0uCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb25fYWJvcnQuaHRtOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9h
Ym9ydC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ2ZXJz
aW9uY2hhbmdlZXZlbnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ2ZXJzaW9u
Y2hhbmdlZXZlbnQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRid29ya2VyLmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ3b3JrZXIuanMuCisgICAgICAgIChmYWxzZS5NZXNz
YWdlSGFuZGxlci5vcGVuX3JxLm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChmYWxzZS5NZXNz
YWdlSGFuZGxlci5kYi5lLnRhcmdldC5yZXN1bHQuZGIub25lcnJvcik6CisgICAgICAgIChmYWxz
ZS5NZXNzYWdlSGFuZGxlci5kYi50cmFuc2FjdGlvbi5vYmplY3RTdG9yZS5vbnN1Y2Nlc3MpOgor
ICAgICAgICAoZmFsc2UuTWVzc2FnZUhhbmRsZXIub3Blbl9ycS5vbnN1Y2Nlc3MpOgorICAgICAg
ICAoZmFsc2UuTWVzc2FnZUhhbmRsZXIub3Blbl9ycS5vbmVycm9yKToKKyAgICAgICAgKGZhbHNl
Lk1lc3NhZ2VIYW5kbGVyLm9wZW5fcnEub25ibG9ja2VkKToKKyAgICAgICAgKGZhbHNlLk1lc3Nh
Z2VIYW5kbGVyKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2luZGV4
X3NvcnRfb3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW5kZXhfc29ydF9vcmRlci5o
dG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4
X3NvcnRfb3JkZXIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aW50ZXJmYWNlcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJmYWNlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLmh0bWwuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmlkbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW50ZXJmYWNlcy5pZGwuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLndvcmtlci5q
czogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW50ZXJm
YWNlcy53b3JrZXIuanMuCisgICAgICAgIChyZXF1ZXN0Lm9ubG9hZCk6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlfaW52YWxpZC1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV9pbnZhbGlkLXBy
aXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIva2V5X2ludmFsaWQuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9rZXlfaW52YWxpZC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9rZXlfdmFsaWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfdmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlfdmFsaWQuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlk
Lmh0bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlnZW5lcmF0
b3ItY29uc3RyYWludGVycm9yLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2
YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3IuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLmh0
bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2tleWdlbmVyYXRvci1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1vdmVyZmxvdy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVy
YXRvci1vdmVyZmxvdy1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1vdmVyZmxvdy5odG06IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1vdmVyZmxv
dy5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlnZW5lcmF0
b3IuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlnZW5lcmF0b3IuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
a2V5b3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9rZXlvcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleW9yZGVyLmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5b3JkZXIuaHRtLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aC1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGgtcHJpdmF0
ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9r
ZXlwYXRoLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5cGF0aC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9r
ZXlwYXRoX2ludmFsaWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoX2ludmFsaWQu
aHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlw
YXRoX2ludmFsaWQuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
a2V5cGF0aF9tYXhzaXplLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9tYXhzaXplLXByaXZhdGUtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aF9tYXhzaXpl
Lmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5
cGF0aF9tYXhzaXplLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2xpc3Rfb3JkZXJpbmctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbGlzdF9vcmRlcmluZy5odG06
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3Jk
ZXJpbmcuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvb2JqZWN0
c3RvcmVfa2V5b3JkZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1wcml2YXRlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL29iamVjdHN0b3Jl
X2tleW9yZGVyLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvb2JqZWN0c3RvcmVfa2V5b3JkZXIuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1
YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLmh0bTogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvcmVxdWVzdF9idWJi
bGUtYW5kLWNhcHR1cmUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmluZy1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3N0
cmluZy1saXN0LW9yZGVyaW5nLmh0bTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmcuaHRtLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc3VwcG9ydC5qczogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3VwcG9ydC5qcy4KKyAgICAgICAgKHdpbmRvdy5p
bmRleGVkREIuZWxzZSk6CisgICAgICAgIChhZGRfY29tcGxldGlvbl9jYWxsYmFjayk6CisgICAg
ICAgIChmYWlsKToKKyAgICAgICAgKGF1dG9fZmFpbCk6CisgICAgICAgIChjcmVhdGVkYl9mb3Jf
bXVsdGlwbGVfdGVzdHMpOgorICAgICAgICAoYXNzZXJ0X2tleV9lcXVhbHMpOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNp
b25jaGFuZ2UtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1wcml2YXRl
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3Ry
YW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLmh0bTogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNp
b25jaGFuZ2UuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJh
bnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2Nr
ZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi90cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLmh0bTogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxv
Y2tlZC5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2Fj
dGlvbi1saWZldGltZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLXByaXZhdGUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24t
bGlmZXRpbWUuaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1y
ZXF1ZXN0cXVldWUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUuaHRtOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0
cXVldWUuaHRtLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNh
Y3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0
dXJlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvdHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLmh0bTogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFu
ZC1jYXB0dXJlLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3Zh
bHVlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvdmFsdWUtcHJpdmF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi92YWx1ZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLmh0bS4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL3ZhbHVlX3JlY3Vyc2l2ZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS1wcml2
YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L3ZhbHVlX3JlY3Vyc2l2ZS5odG06IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS5odG0uCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi93cml0ZXItc3RhcnZhdGlvbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9u
LXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvd3JpdGVyLXN0YXJ2YXRpb24uaHRtOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi5odG0uCisKIDIwMTYtMDMtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBb
RmV0Y2ggQVBJXSBGZXRjaExvYWRlciBzaG91bGQgY2hlY2sgZm9yIGVtcHR5IGJvZGllcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggOTdjYWM2MzU4ZWU5YTU3NjIyYmE1YjY5NjZmMzk4NjJlMjdkNjY0
ZS4uNjZhY2YzMjFiMGM2ZGUwNDdhNzUyZTMzMGI1OGVhNTJlMWI3MzhhYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC05MDEsMTQgKzkwMSwxNCBAQCB3ZWJraXQub3JnL2IvOTQ0NTggaHR0cC90ZXN0
cy9zZWN1cml0eS9hYm91dEJsYW5rL3NlY3VyaXR5LWNvbnRleHQtd3JpdGUuaHRtbCBbCiAjIyMg
U1RBUlQgT0YgSW5kZXhlZERCIGZhaWx1cmVzCiAKICMgT3VyIElETCBwYXJzZXIgdGVzdCBoYXJu
ZXNzIGlzIG5vdCB3aGF0IHRoaXMgdGVzdCBleHBlY3RzCi1pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2ludGVyZmFjZXMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaW50ZXJmYWNlcy5odG1sIFsgU2tpcCBdCiAKICMgVzNDIElEQiB0ZXN0cyB3
aGVyZSB0aGUgdGVzdCBpcyB3cm9uZyAodGhlIHNwZWMsIG90aGVyIGJyb3dzZXJzLCBhbmQgV2Vi
S2l0IGFsbCBhZ3JlZSkKICMgQ292ZXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pc3N1ZXMvMjQ1NgotaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQ3Lmh0bSBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9n
ZXRLZXk3Lmh0bSBbIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9v
cGVuQ3Vyc29yMi5odG0gWyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfb3BlbktleUN1cnNvcjMuaHRtIFsgRmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQ3Lmh0bSBbIEZhaWx1cmUgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5Ny5odG0g
WyBGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4X29wZW5DdXJzb3IyLmh0bSBbIEZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjMuaHRtIFsgRmFpbHVy
ZSBdCiAKICMgVGltZXMgb3V0IGZvciB1bmV4cGxvcmVkIHJlYXNvbnMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sIFsgU2tpcCBdCkBAIC05NzEsOCArOTcxLDggQEAg
c3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS12ZXJzaW9uY2hhbmdl
Lmh0bWwgWyBTa2lwIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3Byb3BlcnRpZXMtZGlzYWJsZWQtYXQt
cnVudGltZS5odG1sIFsgRmFpbHVyZSBdCiAKICMgQ29tcGxldGVzIHdpdGggcGFzc2luZyByZXN1
bHRzLCBidXQgdG9vIHNsb3dseSBmb3Igb3VyIHRlc3QgdGltZW91dHMuCi1pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bSBbIEZhaWx1cmUgXQotaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLmh0bSBbIEZhaWx1cmUgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtbXVsdGllbnRy
eS1iaWcuaHRtIFsgRmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nLmh0bSBbIEZhaWx1cmUgXQogCiAjIFNRTGl0ZSBi
YWNrZW5kIHRlc3RzIHRoYXQgdGltZW91dAogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5z
YWN0aW9uLXNjaGVkdWxlci0xLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFmNGZkYjU0NzAzMjgzOWRjNmU3NjE1ZWQxNWE2MzFk
ZTA3NzFjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3QgdGhhdCBhbiBhYm9ydCBpbiB0
aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9hYm9ydC1pbi1pbml0aWFsLXVwZ3Jh
ZGVuZWVkZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjZiNjE5Y2E2NGIzYWNmZDRkMDc1NzNhYzI3ZGEx
NDU5OGZlNmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5o
dG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJv
bSBUZXN0VFdGIFBhcmlzIC0tPgorPHRpdGxlPlRlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5p
dGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDA8L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciBk
Yiwgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCAyKTsKKworb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAyKTsKKyAgICB0cmFuc2FjdGlv
biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBm
YWlsKHRoaXMsICJ1bmV4cGVjdGVkIHRyYW5zYWN0aW9uLmNvbXBsZXRlIik7CisgICAgdHJhbnNh
Y3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5kYi52ZXJzaW9uLCAwKTsKKyAgICB9CisgICAgZGIub25hYm9ydCA9IGZ1bmN0aW9uKCkg
e30KKworICAgIHRyYW5zYWN0aW9uLmFib3J0KCk7Cit9CisKK29wZW5fcnEub25lcnJvciA9IGZ1
bmN0aW9uKGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEsIGUudGFyZ2V0KTsKKyAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJBYm9ydEVycm9yIik7CisgICAgYXNzZXJ0X2VxdWFs
cyhkYi52ZXJzaW9uLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEudHJhbnNhY3Rpb24s
IG51bGwpOworICAgIHRoaXMuZG9uZSgpOworfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2Nsb3NlLWluLXVw
Z3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZTcyYmQ1OGJiODhlMGIzZWVh
ZDM4N2M5Nzc4ZTdjYmQ1NmUxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvY2xvc2UtaW4tdXBncmFkZW5lZWRl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgV2hlbiBkYi5jbG9zZSBpcyBj
YWxsZWQgaW4gdXBncmFkZW5lZWRlZCwgdGhlIGRiIGlzIGNsZWFuZWQgdXAgb24gcmVmcmVzaCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9jbG9zZS1pbi11cGdyYWRlbmVlZGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmUwMGI0ZTg1NmZjMzQ2NTgwNTlhZmNmZWIzODE1MzFiMjhiZDE3
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwz
OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMg
LS0+Cis8dGl0bGU+V2hlbiBkYi5jbG9zZSBpcyBjYWxsZWQgaW4gdXBncmFkZW5lZWRlZCwgdGhl
IGRiIGlzIGNsZWFuZWQgdXAgb24gcmVmcmVzaDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIG9wZW5fcnEgPSBjcmVh
dGVkYihhc3luY190ZXN0KCkpCit2YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlCisK
K29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0CisgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAxKQorCisgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ29zJykKKyAgICBkYi5jbG9zZSgpCisKKyAgICBlLnRhcmdldC50cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUg
PSB0cnVlIH0KK30KKworb3Blbl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgIGFzc2Vy
dF90cnVlKHNhd1RyYW5zYWN0aW9uQ29tcGxldGUsICJzYXcgdHJhbnNhY3Rpb24uY29tcGxldGUi
KQorCisgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAnQWJvcnRFcnJvcicp
CisgICAgYXNzZXJ0X2VxdWFscyhlLnJlc3VsdCwgdW5kZWZpbmVkKQorCisgICAgYXNzZXJ0X3Ry
dWUoISFkYikKKyAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDEpCisgICAgYXNzZXJ0X2Vx
dWFscyhkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCwgMSkKKyAgICBhc3NlcnRfdGhyb3dzKCJJ
bnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbignb3MnKSB9KQor
CisgICAgdGhpcy5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODk5OWEwYmNkZTcxZWQwNzQxMjJmODJlMDcwMDNkNmM4YWI4
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgVmFsaWRhdGUgdGhlIG92ZXJsb2FkcyBvZiBJREJPYmplY3RTdG9yZS5v
cGVuQ3Vyc29yKCksIElEQkluZGV4Lm9wZW5DdXJzb3IoKSBhbmQgSURCSW5kZXgub3BlbktleUN1
cnNvcigpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvY3Vyc29yLW92ZXJsb2Fkcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2N1cnNvci1vdmVybG9hZHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NmIxNjliMDIwOGQxN2JjNGJkZDFhOWI1MjZmNjRjOTI3MzY4NGIzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2N1cnNvci1vdmVybG9hZHMuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IS0t
CitUZXN0IGNvbnZlcnRlZCBmcm9tIFdlYktpdDoKK2h0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJv
d3Nlci90cnVuay9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRz
Lmh0bWwKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRX
RiBQYXJpcyAtLT4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+VmFsaWRhdGUgdGhlIG92
ZXJsb2FkcyBvZiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCksIElEQkluZGV4Lm9wZW5DdXJz
b3IoKSBhbmQgSURCSW5kZXgub3BlbktleUN1cnNvcigpPC90aXRsZT4KKzxsaW5rIHJlbD1hdXRo
b3IgaHJlZj0ibWFpbHRvOnJvbWFpbi5odWV0QGdtYWlsLmNvbSIgdGl0bGU9IlJvbWFpbiBIdWV0
Ij4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisKKyAgICB2YXIgZGIsIHRyYW5zLCBzdG9yZSwgaW5kZXg7CisgICAgdmFyIHQgPSBhc3lu
Y190ZXN0KCk7CisKKyAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZWRiKHQpOworICAgIHJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IHJlcXVlc3QucmVz
dWx0OworICAgICAgICBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOworICAg
ICAgICBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICd2YWx1ZScpOworICAgICAg
ICBzdG9yZS5wdXQoe3ZhbHVlOiAwfSwgMCk7CisgICAgICAgIHRyYW5zID0gcmVxdWVzdC50cmFu
c2FjdGlvbjsKKyAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IHZlcmlmeU92ZXJsb2FkczsKKyAg
ICB9OworCisgICAgZnVuY3Rpb24gdmVyaWZ5T3ZlcmxvYWRzKCkgeworICAgICAgICB0cmFucyA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpOworICAgICAgICBzdG9yZSA9IHRyYW5zLm9iamVjdFN0
b3JlKCdzdG9yZScpOworICAgICAgICBpbmRleCA9IHN0b3JlLmluZGV4KCdpbmRleCcpOworCisg
ICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKCkiLCAibmV4dCIp
OworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwKSIsICJu
ZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAs
ICduZXh0JykiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUu
b3BlbkN1cnNvcigwLCAnbmV4dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hl
Y2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoMCwgJ3ByZXYnKSIsICJwcmV2Iik7
CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAsICdwcmV2
dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOworCisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9u
KCJzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCkpIiwgIm5leHQiKTsKKyAgICAg
ICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25s
eSgwKSwgJ25leHQnKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJz
dG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0dW5pcXVlJykiLCAibmV4
dHVuaXF1ZSIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNv
cihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldicpIiwgInByZXYiKTsKKyAgICAgICAgY2hlY2tD
dXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3By
ZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7CisKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rp
b24oImluZGV4Lm9wZW5DdXJzb3IoKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGly
ZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKDApIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJz
b3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJuZXh0Iik7CisgICAg
ICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKDAsICduZXh0dW5pcXVl
JykiLCAibmV4dHVuaXF1ZSIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgu
b3BlbkN1cnNvcigwLCAncHJldicpIiwgInByZXYiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJl
Y3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7
CisKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoSURCS2V5
UmFuZ2Uub25seSgwKSkiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigi
aW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIm5leHQiKTsK
KyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFu
Z2Uub25seSgwKSwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7CisgICAgICAgIGNoZWNr
Q3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdw
cmV2JykiLCAicHJldiIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3Bl
bkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUi
KTsKKworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigp
IiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlD
dXJzb3IoMCkiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgu
b3BlbktleUN1cnNvcigwLCAnbmV4dCcpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JE
aXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoMCwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5p
cXVlIik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29y
KDAsICdwcmV2JykiLCAicHJldiIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5k
ZXgub3BlbktleUN1cnNvcigwLCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsKKworICAg
ICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5n
ZS5vbmx5KDApKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRl
eC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAibmV4dCIpOwor
ICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcihJREJLZXlS
YW5nZS5vbmx5KDApLCAnbmV4dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hl
Y2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgw
KSwgJ3ByZXYnKSIsICJwcmV2Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRl
eC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2dW5pcXVlJykiLCAicHJl
dnVuaXF1ZSIpOworCisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNo
ZWNrQ3Vyc29yRGlyZWN0aW9uKHN0YXRlbWVudCwgZGlyZWN0aW9uKSB7CisgICAgICAgIHJlcXVl
c3QgPSBldmFsKHN0YXRlbWVudCk7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGV2ZW50LnRhcmdldC5y
ZXN1bHQsIG51bGwsICJDaGVjayB0aGUgcmVzdWx0IGlzIG5vdCBudWxsIikKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LnJlc3VsdC5kaXJlY3Rpb24sIGRpcmVjdGlvbiwg
IkNoZWNrIHRoZSByZXN1bHQgZGlyZWN0aW9uIik7CisgICAgICAgIH07CisgICAgfQorCis8L3Nj
cmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiX3dlYndvcmtlcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYl93ZWJ3b3JrZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmE5ZjAxN2JjYjlk
ZTYyMzEwYzYzMDI2NGNiMjEzODQzOGE3MzYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYl93ZWJ3b3JrZXJz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJbmRleGVkREIgaW5zaWRlIG9m
IGEgV2ViV29ya2VyICBhc3NlcnRfZXF1YWxzOiB3b3JrZXIgaGFzIGlkYiBvYmplY3QgZXhwZWN0
ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJfd2Vid29ya2Vycy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYl93ZWJ3
b3JrZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGIyZmFmZjBiZTJkZTU3YTBlNmJlNWEwNThiZjQzOTg0
N2NkYjA1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJfd2Vid29ya2Vycy5odG1sCkBAIC0wLDAgKzEsMzMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPkluZGV4ZWREQiBpbnNpZGUgb2YgYSBXZWJXb3Jr
ZXIgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIGNvdW50ID0gMCwKKyAgICAg
IHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciB3b3JrZXIgPSBuZXcgV29ya2VyKCJpZGJ3b3JrZXIuanMiKTsKKyAgICAgICAgd29ya2VyLm9u
bWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICAgICAgICBzd2l0Y2go
Y291bnQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLCB0cnVlLCAnd29ya2VyIGhhcyBpZGIgb2JqZWN0JykKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICJ0ZXN0IiwgImdldCgxKSBpbiB3b3Jr
ZXIiKQorICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBjb3VudCsrCisgICAgICAgIH0pOworCisgICAgICAgIHdvcmtlci5wb3N0TWVzc2Fn
ZSgxKTsKKyAgICB9KQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWFk
dmFuY2UtY29udGludWUtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMDRlYTY4NjNi
YjI0NjY0ODBiZTAwZjZlOGJiZjYwZmNhODgzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWFk
dmFuY2UtY29udGludWUtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNT
IElEQkN1cnNvciBhc3luY25lc3MgLSBhZHZhbmNlIAorUEFTUyBJREJDdXJzb3IgYXN5bmNuZXNz
IC0gY29udGludWUgCitQQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBmcmVzaCBhZHZhbmNlIHN0
aWxsIGFzeW5jIAorUEFTUyBJREJDdXJzb3IgYXN5bmNuZXNzIC0gZnJlc2ggY29udGludWUgc3Rp
bGwgYXN5bmMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk0ZWQ5ZWYx
ZmM5MTc5YmZhZDdkZTRhMTk0ODA2M2MxNDVmNGZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3It
YWR2YW5jZS1jb250aW51ZS1hc3luYy5odG1sCkBAIC0wLDAgKzEsMTg2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJDdXJzb3IgYXN5bmNuZXNzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCisgICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRp
bWUoKSk7CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEi
LCAgMSk7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7CisgICAgICAgIH07
CisgICAgfSwKKyAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25z
dWNjZXNzID0gZnVuY3Rpb24oKSB7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtIGFkdmFuY2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
b3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9i
amVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFl
LnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3Vu
dCwgMiwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2go
Y291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnNvci5hZHZhbmNlKDEpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK
KworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAg
IGN1cnNvci5hZHZhbmNlKDEpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLmtleSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAg
IH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBjb250aW51
ZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3Qi
KS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChj
b3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAgICJkYXRhIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoImRhdGEyIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJk
YXRhMiIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXks
ICAgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIDIpCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJk
YXRhMiIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXks
ICAgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIDIpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpCisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsK
KworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gZnJlc2ggYWR2YW5j
ZSBzdGlsbCBhc3luYyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50
ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0
U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAg
IHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25l
KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAg
ICBjdXJzb3IuYWR2YW5jZSgxKQorCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhMiIpCisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEyIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDIp
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVj
dGVkIGNvdW50OiAiICsgY291bnQpCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZh
aWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gZnJlc2ggY29udGludWUgc3RpbGwgYXN5bmMi
KS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iiku
b3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgJ2NvdW50Jyk7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCkKKworICAgICAg
ICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEi
KQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwg
ImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtl
eSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVu
ZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9y
ID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisgICAgICAg
IC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAg
IGRvbmUoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3ItYWR2YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWFkdmFuY2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUzMjMzMTUxNmI3NTgzNjg2ZDkzNjg0MzU1MzQ5NTNmYmU0MjI4NWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWFkdmFuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OCBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBhZHZhbmNlcyAKK1BBU1MgSURCQ3Vy
c29yLmFkdmFuY2UoKSAtIGFkdmFuY2VzIGJhY2t3YXJkcyAKK1BBU1MgSURCQ3Vyc29yLmFkdmFu
Y2UoKSAtIHNraXAgZmFyIGZvcndhcmQgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSB3aXRo
aW4gcmFuZ2UgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSB3aXRoaW4gc2luZ2xlIGtleSBy
YW5nZSAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdl
LCB3aXRoIHNldmVyYWwgcmVzdWx0cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1hZHZhbmNlLWludmFs
aWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc5MTZiNTc3YTk0ZjFhYmVlZDExMDcwZDUyYjc4ODQ0ZGVlZGJkYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBhdHRlbXB0IHRvIGNh
bGwgYWR2YW5jZSB0d2ljZSAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBw
YXNzIHNvbWV0aGluZyBvdGhlciB0aGFuIG51bWJlciAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2Uo
KSAtIGludmFsaWQgLSBwYXNzIG51bGwvdW5kZWZpbmVkIAorUEFTUyBJREJDdXJzb3IuYWR2YW5j
ZSgpIC0gaW52YWxpZCAtIG1pc3NpbmcgYXJndW1lbnQgCitQQVNTIElEQkN1cnNvci5hZHZhbmNl
KCkgLSBpbnZhbGlkIC0gcGFzcyBuZWdhdGl2ZSBudW1iZXJzIAorUEFTUyBJREJDdXJzb3IuYWR2
YW5jZSgpIC0gaW52YWxpZCAtIGdvdCB2YWx1ZSBub3Qgc2V0IG9uIGV4Y2VwdGlvbiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTI1MDRiOWU0MWU2ODk5MmU3MGI2MTFhNWFkMjk2NDhiYTRmMTY3
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLmh0bWwKQEAgLTAsMCAr
MSwxODggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBp
bnZhbGlkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVm
PSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSB2YWx1ZSBmb3IgY291bnQgaXMgMCAoemVybykg
b3IgYSBuZWdhdGl2ZSBudW1iZXIsIHRoaXMgbWV0aG9kIG11c3QgdGhyb3cgYSBKYXZhU2NyaXB0
IFR5cGVFcnJvciBleGNlcHRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlR5cGVFcnJv
ciBUaGUgdmFsdWUgcGFzc2VkIGludG8gdGhlIGNvdW50IHBhcmFtZXRlciB3YXMgemVybyBvciBh
IG5lZ2F0aXZlIG51bWJlci4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSW52YWxpZFN0YXRl
RXJyb3IgVGhlIGN1cnNvciBpcyBjdXJyZW50bHkgYmVpbmcgaXRlcmF0ZWQsIG9yIGhhcyBpdGVy
YXRlZCBwYXN0IGl0cyBlbmQuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkNhbGxpbmcgdGhp
cyBtZXRob2QgbW9yZSB0aGFuIG9uY2UgYmVmb3JlIG5ldyBjdXJzb3IgZGF0YSBoYXMgYmVlbiBs
b2FkZWQgaXMgbm90IGFsbG93ZWQgYW5kIHJlc3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlw
ZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0aHJvd24uIEZvciBleGFtcGxlLCBjYWxsaW5nIGFk
dmFuY2UoKSB0d2ljZSBmcm9tIHRoZSBzYW1lIG9uc3VjY2VzcyBoYW5kbGVyIHJlc3VsdHMgaW4g
YSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0aHJvd24gb24g
dGhlIHNlY29uZCBjYWxsLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJCZWZvcmUgdGhpcyBt
ZXRob2QgcmV0dXJucywgdW5sZXNzIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCBpdCBzZXRzIHRo
ZSBnb3QgdmFsdWUgZmxhZyBvbiB0aGUgY3Vyc29yIHRvIGZhbHNlLiI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRi
LCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rpb24oKSB7CisgICAgICAgIG9wZW4gPSBpbmRleGVk
REIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CisgICAgICAgIG9wZW4u
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIp
OworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7CisgICAgICAgICAgICBv
YmpTdG9yZS5hZGQoImRhdGEyIiwgMik7CisgICAgICAgIH07CisgICAgfSwKKyAgICB7IGV4cGxp
Y2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhdHRlbXB0IHRvIGNh
bGwgYWR2YW5jZSB0d2ljZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNv
dW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2Jq
ZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5k
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAg
ICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworCisgICAgICAgICAgICAgICAgLy8gU2Vjb25kIHRy
eQorICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAg
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKDEpOyB9LCAnc2Vj
b25kIGFkdmFuY2UnKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRT
dGF0ZUVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKDMpOyB9LCAndGhpcmQgYWR2YW5jZScpOworCisgICAgICAgICAgICAgICAgY291bnQrKzsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVu
ZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUgKyAiIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhhbiBudW1iZXIiKS5zdGVw
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0
Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAg
ICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShkb2N1bWVudCk7IH0pOworCisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSh7fSk7IH0pOworCisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShbXSk7IH0pOworCisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgiIik7IH0pOworCisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgiMSAyIik7IH0pOworCisg
ICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7
CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHBhc3MgbnVsbC91
bmRlZmluZWQiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShudWxsKTsg
fSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIg
fSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKHVuZGVm
aW5lZCk7IH0pOworCisgICAgICAgICAgICAgICAgdmFyIG15dmFyID0gbnVsbDsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKG15dmFyKTsgfSk7CisKKyAgICAg
ICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEu
b25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKwor
CisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gbWlzc2luZyBhcmd1bWVu
dCIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3Io
KTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKCk7IH0pOworCisgICAg
ICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJx
Lm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisK
KworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHBhc3MgbmVnYXRpdmUg
bnVtYmVycyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwK
KyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKC0xKTsgfSk7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwK
KyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKE5hTik7IH0p
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgwKTsgfSk7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwK
KyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKC0wKTsgfSk7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwK
KyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKEluZmluaXR5
KTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJv
ciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKC1J
bmZpbml0eSk7IH0pOworCisgICAgICAgICAgICAgICAgdmFyIG15dmFyID0gLTk5OTk5OTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKG15dmFyKTsgfSk7CisK
KyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9
KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gZ290IHZhbHVl
IG5vdCBzZXQgb24gZXhjZXB0aW9uIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3Qi
KS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAg
ICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAg
ICAgaWYgKCFjdXJzb3IpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQgcnVucyIpOworICAgICAgICAgICAgICAgICAg
ICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAiVHlwZUVycm9y
IiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFkdmFuY2UoMCk7
IH0pOworCisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZh
aWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIC8v
IFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAgIGRv
bmUoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3ItYWR2YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1hZHZhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNi
ZmQ4NDBiMjZlMDdiYzQyZTZiYWUyZjQzZTVlN2IzYWJhOGRjYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3ItYWR2YW5jZS5odG1sCkBAIC0wLDAgKzEsMjQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
CisgICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rpb24oKSB7CisgICAgICAgIG9w
ZW4gPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7Cisg
ICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImN1cGNha2UiLCA1KTsK
KyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgicGFuY2FrZSIsIDMpOyAvLyBZZXMsIGl0IGlzIGlu
dGVuZGVkCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoInBpZSIsICAgICAxKTsKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZCgicGllIiwgICAgIDQpOworICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KCJ0YWNvIiwgICAgMik7CisgICAgICAgIH07CisgICAgfSwKKyAgICB7IGV4cGxpY2l0X2RvbmU6
IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisKKyAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyIpLnN0ZXAoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgi
KS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkg
eworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAiY291bnQiKTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAg
ICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNv
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5
S2V5LCAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMik7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1
bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyBiYWNrd2FyZHMiKS5zdGVwKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3BlbkN1
cnNvcihudWxsLCAicHJldiIpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1
bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywgImNvdW50
Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiY3Vw
Y2FrZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJp
bWFyeUtleSwgNSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVh
Y2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNl
KDIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlz
LCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisgICAgICAgIGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQorICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMSwgImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0
Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVk
IGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMTAwMDAwKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0
ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQu
dGl0bGUgKyAiIC0gd2l0aGluIHJhbmdlIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmxvd2VyQm91bmQoImN1cGNha2UiLCB0cnVl
KSk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQiKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZSwgInBhbmNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnByaW1hcnlLZXksIDMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3Vu
dCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAg
ICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9
KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHNp
bmdsZSBrZXkgcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3Vu
dCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVj
dFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoInBhbmNha2UiKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICJjb3Vu
dCIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNv
dW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAg
IH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4g
c2luZ2xlIGtleSByYW5nZSwgd2l0aCBzZXZlcmFsIHJlc3VsdHMiKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoInBpZSIpOworCisgICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjb3VudCwgMiwgImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAg
ICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUs
ICJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnBy
aW1hcnlLZXksIDQpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5j
ZSgxKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhp
cywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIC8vIFN0b3Ag
YmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAgIGRvbmUoKTsK
KyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYjA5YWUyOWRjYzJmMzcxOTUwYmVmOTcyNzE3NGExOGQyM2QwOTdiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmN1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBA
CisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBjb250aW51ZXMgCitQQVNTIElEQkN1cnNv
ci5jb250aW51ZSgpIC0gd2l0aCBnaXZlbiBrZXkgCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgp
IC0gc2tpcCBmYXIgZm9yd2FyZCAKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSB3aXRoaW4g
cmFuZ2UgCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gd2l0aGluIHNpbmdsZSBrZXkgcmFu
Z2UgCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gd2l0aGluIHNpbmdsZSBrZXkgcmFuZ2Us
IHdpdGggc2V2ZXJhbCByZXN1bHRzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yLWNvbnRpbnVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFjMTI4NTg5YjdhY2JkZWQxNjczNTcx
MDM1ZGI1ZWIyN2I1YzFhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItY29udGludWUuaHRtbApA
QCAtMCwwICsxLDI0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRp
bnVlKCk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxsaW5rIHJlbD1hc3Nl
cnQgdGl0bGU9IlRoZSBuZXh0IGtleSB0byBwb3NpdGlvbiB0aGlzIGN1cnNvciBhdCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisg
ICAgdmFyIGRiLCBvcGVuOworICAgIHZhciBzdG9yZSA9IFsgeyB2YWx1ZTogImN1cGNha2UiLCBr
ZXk6IDUgfSwKKyAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJwYW5jYWtlIiwga2V5OiAzIH0s
CisgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAicGllIiwgICAgIGtleTogMSB9LAorICAgICAg
ICAgICAgICAgICAgeyB2YWx1ZTogInBpZSIsICAgICBrZXk6IDQgfSwKKyAgICAgICAgICAgICAg
ICAgIHsgdmFsdWU6ICJ0YWNvIiwgICAga2V5OiAyIH0gXTsKKworICAgIHNldHVwKGZ1bmN0aW9u
KCkgeworICAgICAgICBvcGVuID0gaW5kZXhlZERCLm9wZW4oJ3Rlc3RkYi0nICsgbmV3IERhdGUo
KS5nZXRUaW1lKCkpOworICAgICAgICBvcGVuLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBvcywgaTsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAg
ICAgICAgICAgb3MuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBmb3Ig
KGkgPSAwOyBpIDwgc3RvcmUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgb3MuYWRkKHN0
b3JlW2ldLnZhbHVlLCBzdG9yZVtpXS5rZXkpOworICAgICAgICB9OworICAgIH0sCisgICAgeyBl
eHBsaWNpdF9kb25lOiB0cnVlIH0pOworCisKKyAgICBvcGVuLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KCkgeworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBjb250aW51
ZXMiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0
IikuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFl
LnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3Vu
dCwgNSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgc3RvcmVbY291bnRdLnZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBzdG9yZVtjb3VudF0ua2V5KTsKKwor
ICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworCisgICAgICAgICAgICAgICAgY291
bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhp
cywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rl
c3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aCBnaXZlbiBrZXkiKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3Bl
bkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywgJ2NvdW50Jyk7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJzb3IudmFsdWUsICJjdXBjYWtlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgicGllIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjdXJzb3IuY29udGludWUoInRhY28iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAidGFjbyIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVy
cm9yIikKKyAgICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtIHNraXAgZmFyIGZvcndhcmQiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICdjb3Vu
dCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiY3VwY2FrZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgNSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNv
dW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShbXSk7IC8vIEFycmF5cyBhcmUgYWx3YXlzIGJp
Z2dlciB0aGFuIHN0cmluZ3MKKworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVy
cm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjIiKQorICAgICAgICB9KTsKKworCisg
ICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHJhbmdlIikuc3Rl
cChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4
KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKElEQktleVJhbmdl
Lmxvd2VyQm91bmQoImN1cGNha2UiLCB0cnVlKSk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChj
b3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBhbmNha2UiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCJwaWUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgienp6Iik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3Vu
dDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3Vu
dCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlz
LCAidW5leHBlY3RlZCBlcnJvcjEiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rl
c3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHNpbmdsZSBrZXkgcmFuZ2UiKS5zdGVwKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIg
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImlu
ZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoInBhbmNha2UiKTsKKwor
ICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAg
ICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAi
cGFuY2FrZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgMyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
InBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQo
IlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25l
cnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IxIikKKyAgICAgICAgfSk7CisKKwor
ICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHdpdGhpbiBzaW5nbGUga2V5
IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAg
ICAgICAgICAgICAub3BlbkN1cnNvcigicGllIik7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChj
b3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA0KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQg
ZXJyb3IxIikKKyAgICAgICAgfSk7CisKKworICAgICAgICAvLyBTdG9wIGJsb2NraW5nIHRoZSB0
ZXN0aW5nIHN5c3RlbSBmcm9tIGhlcmVvbgorICAgICAgICBkb25lKCk7CisgICAgfQorCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Y2E4NDg5N2MzM2RhYzc1NjIyMjhhMDRiZDgyN2IyOWEwNTg4YzZmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvci1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIElE
QkN1cnNvci5kaXJlY3Rpb24gLSB1bmRlZmluZWQgCitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24g
LSBuZXh0IAorUEFTUyBJREJDdXJzb3IuZGlyZWN0aW9uIC0gcHJldiAKK1BBU1MgSURCQ3Vyc29y
LmRpcmVjdGlvbiAtIG5leHR1bmlxdWUgCitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBwcmV2
dW5pcXVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1pbmRleC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNiYzljOTYy
N2EwMWUwZDNiYjA0Y2UyN2U5N2NjYmJlMWNjM2VjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3It
ZGlyZWN0aW9uLWluZGV4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBJREJD
dXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBuZXh0IAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9u
IC0gaW5kZXggLSBwcmV2IAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBuZXh0
dW5pcXVlIAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBwcmV2dW5pcXVlIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Yjc4YWYzMjI1NThiODEzMmI3NDVhODVlMGVkMTY5ZmY5NWRjMjNjYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKKworUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZSAt
IG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0g
cHJldiAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2UgLSBu
ZXh0dW5pcXVlIAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5n
ZSAtIHByZXZ1bmlxdWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJh
bmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFiOTE2YzdkODg5OTQxYjgyY2JkN2RkY2I2ZWE2MjdjNTBmZTlkN2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS5odG1sCkBAIC0wLDAgKzEsODIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRo
IGtleXJhbmdlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBo
cmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dCIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0
IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVx
dWlyZW1lbnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmlu
ZWQsIGFuZCBzb3VyY2UgaXMgYW4gaW5kZXgsIHRoZSByZWNvcmQncyBrZXkgaXMgZXF1YWwgdG8g
cG9zaXRpb24gYW5kIHRoZSByZWNvcmQncyB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gb2JqZWN0IHN0
b3JlIHBvc2l0aW9uIG9yIHRoZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9u
LiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXYiLCBsZXQg
Zm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkg
YWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gaW5kZXgsIHRoZSBy
ZWNvcmQncyBrZXkgaXMgZXF1YWwgdG8gcG9zaXRpb24gYW5kIHRoZSByZWNvcmQncyB2YWx1ZSBp
cyBsZXNzIHRoYW4gb2JqZWN0IHN0b3JlIHBvc2l0aW9uIG9yIHRoZSByZWNvcmQncyBrZXkgaXMg
bGVzcyB0aGFuIHBvc2l0aW9uLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiByYW5nZSBp
cyBkZWZpbmVkLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGluIHJhbmdlLiI+Cis8bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJJZiB0ZW1wIHJlY29yZCBpcyBkZWZpbmVkLCBsZXQgZm91bmQgcmVjb3JkIGJl
IHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aG9zZSBrZXkgaXMgZXF1YWwgdG8gdGVtcCBy
ZWNvcmQncyBrZXkuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9InJlY29yZHMgaXMgYWx3YXlz
IHNvcnRlZCBpbiBhc2NlbmRpbmcga2V5IG9yZGVyLiBJbiB0aGUgY2FzZSBvZiBzb3VyY2UgYmVp
bmcgYW4gaW5kZXgsIHJlY29yZHMgaXMgc2Vjb25kYXJpbHkgc29ydGVkIGluIGFzY2VuZGluZyB2
YWx1ZSBvcmRlci4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKyAgICB2YXIgcmVjb3JkcyA9IFsgMTMzNywgIkFsaWNlIiwgIkJvYiIs
ICJCb2IiLCAiR3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsKKyAgICB2YXIgZGlyZWN0aW9ucyA9
IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOworICAgIHZhciB0
ZXN0cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAg
ICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAnICsgZGly
KTsKKyAgICB9KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRlc3RkYi0i
ICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUgPSBl
LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKyAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgoImlkeCIsICJuYW1lIik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgbmFt
ZTogcmVjb3Jkc1tpXSB9LCBpKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
ZGIub25lcnJvciA9IGZhaWxfaGVscGVyKCJkYi5vbmVycm9yIik7CisKKworICAgICAgICAvLyBU
aGUgdGVzdHMKKyAgICAgICAgdGVzdGRpcignbmV4dCcsICAgICAgIFsnQWxpY2U6MScsICdCb2I6
MicsICdCb2I6MycsICdHcmVnOjQnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXYnLCAgICAgICBb
J0dyZWc6NCcsICAnQm9iOjMnLCAnQm9iOjInLCAnQWxpY2U6MSddKTsKKyAgICAgICAgdGVzdGRp
cignbmV4dHVuaXF1ZScsIFsnQWxpY2U6MScsICdCb2I6MicsICdHcmVnOjQnXSk7CisgICAgICAg
IHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWc6NCcsICAnQm9iOjInLCAnQWxpY2U6MSddKTsK
KworCisgICAgICAgIC8vIFRlc3QgZnVuY3Rpb24KKyAgICAgICAgZnVuY3Rpb24gdGVzdGRpcihk
aXIsIGV4cGVjdCkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZh
ciB0ID0gdGVzdHNbZGlyXTsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaWR4Iikub3BlbkN1cnNvcihJREJLZXlS
YW5nZS5ib3VuZCgiQUEiLCAiWloiKSwgZGlyKTsKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIGV4cGVjdC5sZW5ndGgsICJjdXJzb3Ig
cnVucyIpOworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUubmFtZSArICI6IiAr
IGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7CisgICAg
ICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAg
ICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJycS5vbmVycm9yIC0gIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICAvLyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gZmFp
bF9oZWxwZXIobmFtZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBkaXJlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAgdGVz
dHNbZGlyXS5zdGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9
IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9
IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxv
Zz4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1k
aXJlY3Rpb24taW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTAyOGZkZTdlN2VmYzE2MjM2ZTFmOTIy
NzUzMDg3ZDZhYzk4YWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgu
aHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Ig
ZGlyZWN0aW9uIC0gaW5kZXg8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJl
bD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgorPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0
aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxv
d2luZyByZXF1aXJlbWVudHMnPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcG9zaXRpb24g
aXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBvYmplY3Qgc3RvcmUsIHRoZSByZWNvcmQncyBr
ZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJ
ZiBkaXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29y
ZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1l
bnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFu
ZCBzb3VyY2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGxlc3MgdGhh
biBwb3NpdGlvbi4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidzIHBvc2l0
aW9uIHRvIGZvdW5kIHJlY29yZCdzIGtleS4gSWYgc291cmNlIGlzIGFuIGluZGV4LCBzZXQgY3Vy
c29yJ3Mgb2JqZWN0IHN0b3JlIHBvc2l0aW9uIHRvIGZvdW5kIHJlY29yZCdzIHZhbHVlLiI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSJTZXQgY3Vyc29yJ3Mga2V5IHRvIGZvdW5kIHJlY29yZCdz
IGtleS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICB2YXIgcmVjb3JkcyA9IFsgIkFsaWNlIiwgIkJvYiIsICJCb2IiLCAiR3Jl
ZyIgXTsKKyAgICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUi
LCAicHJldnVuaXF1ZSJdOworICAgIHZhciB0ZXN0cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5m
b3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSArICcgLSAnICsgZGlyKTsKKyAgICB9KTsKKworICAgIHZhciBvcGVuX3Jx
ID0gaW5kZXhlZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRo
LnJhbmRvbSgpKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3Rv
cmUoInRlc3QiKTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJuYW1lIik7
CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHsgbmFtZTogcmVjb3Jkc1tpXSB9LCBpKTsKKyAgICB9Owor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIub25lcnJvciA9IGZhaWxfaGVscGVyKCJkYi5v
bmVycm9yIik7CisKKworICAgICAgICAvLyBUaGUgdGVzdHMKKyAgICAgICAgdGVzdGRpcignbmV4
dCcsICAgICAgIFsnQWxpY2U6MCcsICdCb2I6MScsICdCb2I6MicsICdHcmVnOjMnXSk7CisgICAg
ICAgIHRlc3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWc6MycsICAnQm9iOjInLCAnQm9iOjEnLCAn
QWxpY2U6MCddKTsKKyAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsnQWxpY2U6MCcsICdC
b2I6MScsICdHcmVnOjMnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWc6
MycsICAnQm9iOjEnLCAnQWxpY2U6MCddKTsKKworCisgICAgICAgIC8vIFRlc3QgZnVuY3Rpb24K
KyAgICAgICAgZnVuY3Rpb24gdGVzdGRpcihkaXIsIGV4cGVjdCkgeworICAgICAgICAgICAgdmFy
IGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciB0ID0gdGVzdHNbZGlyXTsKKyAgICAgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRl
eCgiaWR4Iikub3BlbkN1cnNvcih1bmRlZmluZWQsIGRpcik7CisgICAgICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikgewor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3QubGVuZ3RoLCAi
Y3Vyc29yIHJ1bnMiKTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLm5hbWUg
KyAiOiIgKyBjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIp
OworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwor
ICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3VucmVhY2hlZCgicnEub25lcnJvciAtICIgKyBlLm1lc3NhZ2UpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgLy8gRmFpbCBoYW5kbGluZworICAgIGZ1bmN0
aW9uIGZhaWxfaGVscGVyKG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAgICAgICAg
ICAgIHRlc3RzW2Rpcl0uc3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisgICAgb3Blbl9ycS5vbmJs
b2NrZWQgPSBmYWlsX2hlbHBlcignb3Blbl9ycS5vbmJsb2NrZWQnKTsKKyAgICBvcGVuX3JxLm9u
ZXJyb3IgPSBmYWlsX2hlbHBlcignb3Blbl9ycS5vbmVycm9yJyk7Cis8L3NjcmlwdD4KKworPGRp
diBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY1NjAyOGNlZjk1NjdhODgwNzQ3MTk0ZDc0ZGZkNGMzMTA0OGQ3NDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACisKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAt
IG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgLSBwcmV2IAor
UEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gbmV4dHVuaXF1ZSAKK1BB
U1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAtIHByZXZ1bmlxdWUgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNDM4ODFhZjA1YmIzM2JhMDg4Y2ViMzMzNzNkYjc0YTk0N2NjMzAxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qg
c3RvcmUgd2l0aCBrZXlyYW5nZSAtIG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBv
YmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIHByZXYgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rp
b24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIG5leHR1bmlxdWUgCitQQVNTIElEQkN1
cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIHByZXZ1bmlxdWUg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlh
ZTdlZjUyY2NjNWJkNTRlYWY0YzAwZGNhZDFjYWI4MTJjZTBkMGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS5odG1sCkBAIC0wLDAgKzEsNzcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qg
c3RvcmUgd2l0aCBrZXlyYW5nZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsg
cmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90
aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Cis8bGluayByZWw9
YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgIm5leHQiLCBsZXQgZm91bmQgcmVjb3JkIGJl
IHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9s
bG93aW5nIHJlcXVpcmVtZW50cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rp
b24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiByZWNv
cmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHJhbmdlIGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBr
ZXkgaXMgaW4gcmFuZ2UuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHJlY29yZHMgPSBbIDEzMzcsICJBbGljZSIsICJC
b2IiLCAiR3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsKKyAgICB2YXIgZGlyZWN0aW9ucyA9IFsi
bmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOworICAgIHZhciB0ZXN0
cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAg
ICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAnICsgZGlyKTsK
KyAgICB9KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRlc3RkYi0iICsg
bmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUgPSBlLnRh
cmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSwgcmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIub25lcnJvciIpOworCisKKyAgICAg
ICAgLy8gVGhlIHRlc3RzCisgICAgICAgIHRlc3RkaXIoJ25leHQnLCAgICAgICBbJ0FsaWNlJywg
J0JvYicsICdHcmVnJ10pOworICAgICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydHcmVnJywg
J0JvYicsICdBbGljZSddKTsKKyAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsnQWxpY2Un
LCAnQm9iJywgJ0dyZWcnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWcn
LCAnQm9iJywgJ0FsaWNlJ10pOworCisKKyAgICAgICAgLy8gVGVzdCBmdW5jdGlvbgorICAgICAg
ICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7CisgICAgICAgICAgICB2YXIgY291bnQg
PSAwOworICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJdOworICAgICAgICAgICAgdmFyIHJx
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5DdXJzb3Io
SURCS2V5UmFuZ2UuYm91bmQoIkFBIiwgIlpaIiksIGRpcik7CisgICAgICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikgewor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3QubGVuZ3RoLCAi
Y3Vyc29yIHJ1bnMiKTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCBleHBl
Y3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRp
b24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJycS5vbmVycm9yIC0gIiAr
IGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICAv
LyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFtZSkgeworICAgICAg
ICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaXJlY3Rpb25zLmZvckVhY2goZnVu
Y3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5zdGVwKGZ1bmN0aW9uKCkg
eyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9u
YmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9u
ZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3Rv
cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOWY5ODE1ZDBhODU5YmM2MzVkZTAwNGU4YWRmM2IzZmQ0YzIx
ZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUuaHRtbApA
QCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IgZGlyZWN0
aW9uIC0gb2JqZWN0IHN0b3JlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWls
dG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayBy
ZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3Rp
cC9PdmVydmlldy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KKzxsaW5rIHJlbD1h
c3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dCIsIGxldCBmb3VuZCByZWNvcmQgYmUg
dGhlIGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xs
b3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9u
IGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0aGUgcmVjb3JkJ3Mg
a2V5IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0n
SWYgZGlyZWN0aW9uIGlzICJwcmV2IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgbGFzdCByZWNv
cmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVt
ZW50cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZpbmVkLCBh
bmQgc291cmNlIGlzIGFuIG9iamVjdCBzdG9yZSwgdGhlIHJlY29yZCdzIGtleSBpcyBsZXNzIHRo
YW4gcG9zaXRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlNldCBjdXJzb3IncyBwb3Np
dGlvbiB0byBmb3VuZCByZWNvcmQncyBrZXkuIElmIHNvdXJjZSBpcyBhbiBpbmRleCwgc2V0IGN1
cnNvcidzIG9iamVjdCBzdG9yZSBwb3NpdGlvbiB0byBmb3VuZCByZWNvcmQncyB2YWx1ZS4iPgor
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidzIGtleSB0byBmb3VuZCByZWNvcmQn
cyBrZXkuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIHJlY29yZHMgPSBbICJBbGljZSIsICJCb2IiLCAiR3JlZyIgXTsK
KyAgICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJl
dnVuaXF1ZSJdOworICAgIHZhciB0ZXN0cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNo
KGZ1bmN0aW9uKGRpcikgeworICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSArICcgLSAnICsgZGlyKTsKKyAgICB9KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5k
ZXhlZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRv
bSgpKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSwgcmVjb3Jkc1tpXSk7CisgICAg
fTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigi
ZGIub25lcnJvciIpOworCisKKyAgICAgICAgLy8gVGhlIHRlc3RzCisgICAgICAgIHRlc3RkaXIo
J25leHQnLCAgICAgICBbJ0FsaWNlJywgJ0JvYicsICdHcmVnJ10pOworICAgICAgICB0ZXN0ZGly
KCdwcmV2JywgICAgICAgWydHcmVnJywgJ0JvYicsICdBbGljZSddKTsKKyAgICAgICAgdGVzdGRp
cignbmV4dHVuaXF1ZScsIFsnQWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7CisgICAgICAgIHRlc3Rk
aXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOworCisKKyAgICAgICAg
Ly8gVGVzdCBmdW5jdGlvbgorICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7
CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tk
aXJdOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RT
dG9yZSgidGVzdCIpLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIpOworICAgICAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKCFjdXJzb3Ip
IHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0Lmxlbmd0
aCwgImN1cnNvciBydW5zIik7CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwg
ZXhwZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIpOworICAgICAgICAgICAgICAgIGNvdW50Kys7
CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIGUuc3RvcFByb3Bh
Z2F0aW9uKCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgicnEub25lcnJvciAt
ICIgKyBlLm1lc3NhZ2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9OworCisg
ICAgLy8gRmFpbCBoYW5kbGluZworICAgIGZ1bmN0aW9uIGZhaWxfaGVscGVyKG5hbWUpIHsKKyAg
ICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGlyZWN0aW9ucy5mb3JFYWNo
KGZ1bmN0aW9uKGRpcikgeworICAgICAgICAgICAgICAgIHRlc3RzW2Rpcl0uc3RlcChmdW5jdGlv
bigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfTsKKyAgICB9CisgICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hlbHBlcignb3Blbl9y
cS5vbmJsb2NrZWQnKTsKKyAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hlbHBlcignb3Blbl9y
cS5vbmVycm9yJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvci1kaXJlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItZGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODE4OWQ1NmY1NGM3OWMyYTgyOGM0NzY0ODQ4NzBjOTFmYTYzM2I4NQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3ItZGlyZWN0aW9uLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCQ3Vyc29yLmRpcmVjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKworICAgIGZ1bmN0aW9uIGN1cnNvcl9kaXJlY3Rpb24oY29uc3RhbnQsIGRpcikKKyAgICB7
CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSArICIgLSAiICsgZGlyKSwKKyAgICAgICAgICBleHBlY3RlZCA9IGRpciA/IGRpciA6ICJuZXh0
IjsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAia2V5Iik7
CisgICAgICAgIH07CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yX3JxLCBjb3VudCA9IDA7CisgICAg
ICAgICAgICB2YXIgb3MgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgaWYgKGRpcikKKyAgICAg
ICAgICAgICAgICBjdXJzb3JfcnEgPSBvcy5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgZGlyKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjdXJzb3JfcnEgPSBvcy5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRpcmVjdGlvbiwgY29uc3Rh
bnQsICdkaXJlY3Rpb24gY29uc3RhbnQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci5kaXJlY3Rpb24sIGV4cGVjdGVkLCAnZGlyZWN0aW9uJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2RpcmVjdGlvbicpOworCisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPj0gMikKKyAgICAgICAgICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdmFyIGN1
cnNvcl9ycTIgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBjb25zdGFudCk7CisKKyAgICAgICAgICAgIGN1cnNv
cl9ycTIub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci5kaXJlY3Rpb24sIGNvbnN0YW50LCAnZGlyZWN0aW9uIGNvbnN0YW50
IChzZWNvbmQgdHJ5KScpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRp
cmVjdGlvbiwgZXhwZWN0ZWQsICdkaXJlY3Rpb24gKHNlY29uZCB0cnkpJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2RpcmVjdGlvbicpOworCisgICAgICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPj0gMikKKyAgICAgICAg
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0Iik7CisgICAgY3Vyc29yX2RpcmVjdGlv
bigibmV4dCIsICAgICAgICJuZXh0Iik7CisgICAgY3Vyc29yX2RpcmVjdGlvbigicHJldiIsICAg
ICAgICJwcmV2Iik7CisgICAgY3Vyc29yX2RpcmVjdGlvbigibmV4dHVuaXF1ZSIsICJuZXh0dW5p
cXVlIik7CisgICAgY3Vyc29yX2RpcmVjdGlvbigicHJldnVuaXF1ZSIsICJwcmV2dW5pcXVlIik7
CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1r
ZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMTNj
MTNkNzA2MzlkNmM5NWFiYTAzZTdhOWE4ZjYzYmE4YThiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yLWtleS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgSURCQ3Vyc29yLmtl
eSAtIDEgCitQQVNTIElEQkN1cnNvci5rZXkgLSBrZXkgCitQQVNTIElEQkN1cnNvci5rZXkgLSBt
eSxrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Ita2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLWtleS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVjYjI4Mjc1ODIxNGQ4YTRlYzhkY2M0MzM0OGMxNzEwODYyOGEwMjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yLWtleS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkN1cnNvci5rZXk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisK
KyAgICBmdW5jdGlvbiBjdXJzb3Jfa2V5KGtleSkKKyAgICB7CisgICAgICAgIHZhciBkYiwKKyAg
ICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsga2V5KTsKKwor
ICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgICAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiKTsKKworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhIiwga2V5KTsKKyAgICAgICAg
fTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgY3Vy
c29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIsICJwcmVxdWlzaXRlIGN1cnNvci52YWx1ZSIp
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLmtleSwga2V5LCAn
a2V5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2tleScpOwor
CisgICAgICAgICAgICAgICAgaWYgKGtleSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAg
ICAgICAgICAgIGN1cnNvci5rZXkucHVzaCgibmV3Iik7CisgICAgICAgICAgICAgICAgICAgIGtl
eS5wdXNoKCJuZXciKTsKKworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhj
dXJzb3Iua2V5LCBrZXksICdrZXkgYWZ0ZXIgYXJyYXkgcHVzaCcpOworCisgICAgICAgICAgICAg
ICAgICAgIC8vIEJ1dCB3ZSBjYW4gbm90IGNoYW5nZSBrZXkgKGxpa2UgcmVhZG9ubHksIGp1c3Qg
YSBiaXQgZGlmZmVyZW50KQorICAgICAgICAgICAgICAgICAgICBjdXJzb3Iua2V5ID0gMTA7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGN1cnNvci5rZXksIGtleSwgJ2tl
eSBhZnRlciBhc3NpZ25tZW50Jyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
Y3Vyc29yX2tleSgxKTsKKyAgICBjdXJzb3Jfa2V5KCJrZXkiKTsKKyAgICBjdXJzb3Jfa2V5KFsi
bXkiLCAia2V5Il0pOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3ItcHJpbWFyeWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXByaW1hcnlrZXktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMDViNmZiODZhOTg0MjJkYzExZDMwZDBmZGZhYTcxNDFm
NmMwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXByaW1hcnlrZXktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitQQVNTIElEQkN1cnNvci5wcmltYXJ5S2V5IC0gMSAKK1BBU1MgSURC
Q3Vyc29yLnByaW1hcnlLZXkgLSBrZXkgCitQQVNTIElEQkN1cnNvci5wcmltYXJ5S2V5IC0gbXks
a2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXByaW1hcnlrZXkuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3ItcHJpbWFyeWtl
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMwNzI4MzlhMDk2OTJmYTkzZmExNDcwZDY5MTA5YTdlNGRhNjIx
NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXByaW1hcnlrZXkuaHRtbApAQCAtMCwwICsxLDYx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IucHJpbWFyeUtleTwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIGZ1bmN0aW9uIGN1cnNvcl9wcmltYXJ5a2V5
KGtleSkKKyAgICB7CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICB0ID0gYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSArICIgLSAiICsga2V5KTsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKyAgICAgICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKTsKKworICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KCJkYXRhIiwga2V5KTsKKyAgICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJp
bmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisg
ICAgICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiLCAicHJlcXVpc2l0
ZSBjdXJzb3IudmFsdWUiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5r
ZXksICJkYXRhIiwgInByZXF1aXNpdGUgY3Vyc29yLmtleSIpOworCisgICAgICAgICAgICAgICAg
YXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIGtleSwgJ3ByaW1hcnlLZXknKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAncHJpbWFyeUtleScpOwor
CisgICAgICAgICAgICAgICAgaWYgKGtleSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAg
ICAgICAgICAgIGN1cnNvci5wcmltYXJ5S2V5LnB1c2goIm5ldyIpOworICAgICAgICAgICAgICAg
ICAgICBrZXkucHVzaCgibmV3Iik7CisKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9l
cXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIGtleSwgJ3ByaW1hcnlLZXkgYWZ0ZXIgYXJyYXkgcHVz
aCcpOworCisgICAgICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBjYW4gbm90IGNoYW5nZSBrZXkg
KGxpa2UgcmVhZG9ubHksIGp1c3QgYSBiaXQgZGlmZmVyZW50KQorICAgICAgICAgICAgICAgICAg
ICBjdXJzb3Iua2V5ID0gMTA7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxz
KGN1cnNvci5wcmltYXJ5S2V5LCBrZXksICdrZXkgYWZ0ZXIgYXNzaWdubWVudCcpOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGN1cnNvcl9wcmltYXJ5a2V5KDEpOworICAgIGN1
cnNvcl9wcmltYXJ5a2V5KCJrZXkiKTsKKyAgICBjdXJzb3JfcHJpbWFyeWtleShbIm15IiwgImtl
eSJdKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yLXJldXNlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXJldXNlZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzU4MzNlYzZlYzFkMDFlZmZlMjlkZTkxY2YzZDkyMmU0ZTFjMWRlNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3ItcmV1c2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJDdXJzb3IgaXMgcmV1c2VkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXJldXNlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvci1yZXVzZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjljOGJmNGU0N2UzOTlmMGFiMmU4OGYxY2Qz
N2M3ODgzYzE0NTkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1yZXVzZWQuaHRtbApAQCAtMCww
ICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IgaXMgcmV1c2VkPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIg
dGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSByZWw9aGVscCBocmVmPSJodHRwOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwt
SURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQtYW55LWtleSI+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxl
PSJPdGhlcndpc2UgdGhpcyBtZXRob2QgcnVucyB0aGUgc3RlcHMgZm9yIGFzeW5jaHJvbm91c2x5
IGV4ZWN1dGluZyBhIHJlcXVlc3QuIEhvd2V2ZXIsIHRoZSBzdGVwcyBhcmUgc2xpZ2h0bHkgbW9k
aWZpZWQgc3VjaCB0aGF0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgSURCUmVxdWVzdCwgaXQg
cmV1c2VzIHRoZSByZXF1ZXN0IG9yaWdpbmFsbHkgY3JlYXRlZCB3aGVuIHRoaXMgY3Vyc29yIHdh
cyBjcmVhdGVkLiBUaGUgZG9uZSBmbGFnIG9uIHRoZSByZXF1ZXN0IGlzIHNldCB0byBmYWxzZSBi
ZWZvcmUgdGhlIHJlcXVlc3QgaXMgcmV0dXJuZWQuIFRoZSBzdGVwcyBhcmUgcnVuIHdpdGggdGhl
IGN1cnNvcidzIHNvdXJjZSBhcyBzb3VyY2UgYW5kIHRoZSBzdGVwcyBmb3IgaXRlcmF0aW5nIGEg
Y3Vyc29yIGFzIG9wZXJhdGlvbiwgdXNpbmcgdGhpcyBjdXJzb3IgYXMgY3Vyc29yIGFuZCB0aGUg
a2V5IHBhcmFtZXRlciBhcyBrZXkuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICAgICAgdmFyIGRiCisgICAgICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorCisgICAgICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQKKyAgICAgICAgICAgIHZhciBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IikKKwor
ICAgICAgICAgICAgb3MuYWRkKCJkYXRhIiwgICJrIikKKyAgICAgICAgICAgIG9zLmFkZCgiZGF0
YTIiLCAiazIiKQorICAgICAgICB9CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yCisgICAgICAgICAgICB2YXIgY291bnQg
PSAwCisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0
b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcigpCisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRo
aXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
c3dpdGNoKGNvdW50KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0CisK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0
YSIsICJwcmVxdWlzaXRlIGN1cnNvci52YWx1ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICBj
dXJzb3IuY3VzdG9tX2N1cnNvcl92YWx1ZSA9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIGUu
dGFyZ2V0LmN1c3RvbV9yZXF1ZXN0X3ZhbHVlID0gMgorCisgICAgICAgICAgICAgICAgICAgICAg
ICBjdXJzb3IuY29udGludWUoKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAg
ICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIiwgInByZXF1aXNpdGUgY3Vyc29yLnZhbHVlIikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmN1c3RvbV9jdXJz
b3JfdmFsdWUsIDEsICJjdXN0b20gY3Vyc29yIHZhbHVlIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuY3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJjdXN0
b20gcmVxdWVzdCB2YWx1ZSIpCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5hZHZh
bmNlKDEpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSghIWUudGFy
Z2V0LnJlc3VsdCwgImdvdCBjdXJzb3IiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IuY3VzdG9tX2N1cnNvcl92YWx1ZSwgMSwgImN1c3RvbSBjdXJzb3IgdmFs
dWUiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5jdXN0
b21fcmVxdWVzdF92YWx1ZSwgMiwgImN1c3RvbSByZXF1ZXN0IHZhbHVlIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNv
dW50KysKKyAgICAgICAgICAgIH0pCisKKyAgICAgICAgICAgIHJxLnRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCAzLCAiY3Vyc29yIGNhbGxiYWNrIHJ1bnMiKQorICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocnEuY3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJ2YXJpYWJsZSBw
bGFjZWQgb24gb2xkIElEQlJlcXVlc3QiKQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLmN1c3RvbV9jdXJzb3JfdmFsdWUsIDEsICJjdXN0b20gY3Vyc29yIHZhbHVlICh0cmFu
c2FjdGlvbi5jb21wbGV0ZSkiKQorICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAg
ICAgICB9KQorICAgICAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvci1zb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvci1zb3VyY2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY4MzFiM2EwMGU3MjE5NmNkNjc0ZWFhYmJjNDEzYzY0ZGY0Mjhi
ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACisKK1BBU1MgSURCQ3Vyc29yLnNvdXJjZSAtIElEQk9iamVjdFN0b3JlIAorUEFTUyBJ
REJDdXJzb3Iuc291cmNlIC0gSURCSW5kZXggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Itc291cmNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yLXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwZGUxYzM1MDc4YTRmZGFhODA4YjI2
OGEzNTdmZGM5NTA1ZThhMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yLXNvdXJjZS5odG1sCkBA
IC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5zb3VyY2U8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgc2V0dXAoeyBleHBsaWNpdF9kb25l
OiB0cnVlIH0pOworCisgICAgdmFyIGRiOworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9w
ZW4oJ3Rlc3RkYi0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoIm15X29iamVjdHN0
b3JlIik7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJteV9pbmRleCIsICIiKTsKKwor
ICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7CisgICAgICAgIG9ialN0b3JlLmFkZCgi
ZGF0YTIiLCAyKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gY3Vyc29yX3NvdXJjZShuYW1lLCBz
dHJpbmdpZmllZF9vYmplY3QsIGN1cnNvcl9ycSkgeworICAgICAgICB2YXIgY3Vyc29yOworCisg
ICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgICAgIGFzc2VydF9yZWFkb25seShjdXJzb3IsICdzb3VyY2UnKTsKKworICAg
ICAgICAgICAgLy8gRGlyZWN0IHRyeQorICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yLnNv
dXJjZSBpbnN0YW5jZW9mIE9iamVjdCwgInNvdXJjZSBpc29iamVjdCIpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3Iuc291cmNlICsgIiIsIHN0cmluZ2lmaWVkX29iamVjdCwgInNv
dXJjZSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iuc291cmNlLm5hbWUsIG5h
bWUsICJuYW1lIik7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICB9
KTsKKworICAgICAgICBjdXJzb3JfcnEudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAg
fSk7CisKKyAgICAgICAgY3Vyc29yX3JxLnRyYW5zYWN0aW9uLm9uZXJyb3IgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJUcmFuc2Fj
dGlvbiBnb3QgZXJyb3IuICIgKyAoZS50YXJnZXQuZXJyb3IgPyBlLnRhcmdldC5lcnJvci5uYW1l
IDogInVua25vd24iKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAn
IC0gSURCT2JqZWN0U3RvcmUnKS5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY3Vyc29y
X3NvdXJjZS5jYWxsKHRoaXMsICJteV9vYmplY3RzdG9yZSIsICJbb2JqZWN0IElEQk9iamVjdFN0
b3JlXSIsIGRiLnRyYW5zYWN0aW9uKCJteV9vYmplY3RzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJteV9v
YmplY3RzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9wZW5DdXJzb3IoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAnIC0gSURCSW5kZXgnKS5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgY3Vyc29yX3NvdXJjZS5jYWxsKHRoaXMsICJteV9pbmRleCIsICJbb2JqZWN0
IElEQkluZGV4XSIsIGRiLnRyYW5zYWN0aW9uKCJteV9vYmplY3RzdG9yZSIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJteV9v
YmplY3RzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLmluZGV4KCJteV9pbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGRvbmUoKTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2ZDdkOTM5OGIwOWQ4YjQ2OTUyNTE2NGQz
YWYzZjFkNGFiZTdiNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBp
bmRleCAtIGl0ZXJhdGUgY3Vyc29yIG51bWJlciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291bnQg
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjMWYyNDZhMjliMGI1Y2JlM2FiMzNkZDY5MmQwMjRmMTQ5
MGViY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXguaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0g
aW5kZXggLSBpdGVyYXRlIGN1cnNvciBudW1iZXIgb2YgdGltZXMgc3BlY2lmaWVkIGJ5IGNvdW50
IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8yIiwgaUtleTogImluZGV4S2V5XzIiIH0sCisgICAgICAgICAg
ICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzMiLCBpS2V5OiAiaW5kZXhLZXlfMyIgfV07CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtl
eSJ9KTsKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJpS2V5Iik7CisKKyAgICAg
ICAgZm9yKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAg
IHN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaWR4IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBp
bnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAg
ICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMzsKKyAg
ICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMyk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWNvcmQucEtleSwgcmVjb3Jkc1tjb3VudF0ucEtleSwgInJlY29yZC5wS2V5Iik7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbY291bnRd
LmlLZXksICJyZWNvcmQuaUtleSIpOworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgidW5leHBlY3RlZCBjb3VudCIpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZh
bmNlX2luZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMWRlMTdjNTA2YWI0OGQzMWI0MjgxYTNmZjA4NGJkM2Q0NGQ3MDI5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGF0dGVtcHQgdG8gcGFzcyBh
IGNvdW50IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhIG51bWJlciAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNv
cl9hZHZhbmNlX2luZGV4Mi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA4ZmIwNWQzNjI3YzM4YzBlMWM5ZDg4MTc3MjVlZjE4ZjI2ZjI2YWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGF0dGVtcHQgdG8gcGFzcyBh
IGNvdW50IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhIG51bWJlcjwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNl
LXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUg
dmFsdWUgcGFzc2VkIGludG8gdGhlIGNvdW50IHBhcmFtZXRlciB3YXMgemVybyBvciBhIG5lZ2F0
aXZlIG51bWJlci4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3Vt
ZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTog
InByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0p
OworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAg
ICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yICE9IG51
bGwsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShkb2N1
bWVudCk7IH0pOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsK
KworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXgzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMxNmFmMzE1MGNmZTEwOGNjY2FjZGUwZTVmMzQ2MDBiY2YyOTBkZTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBhdHRlbXB0
IHRvIGFkdmFuY2UgYmFja3dhcmRzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhhMWFlZjA3MDdh
MzA1MmE4MWNiNDFmMWE5ZjhiZTY3MjkzYTIwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2
YW5jZV9pbmRleDMuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIGFkdmFuY2UgYmFja3dh
cmRzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJh
LmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJo
dHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBwYXNzZWQgaW50byB0aGUgY291bnQgcGFyYW1l
dGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVyLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwg
e3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5
XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInBy
aW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6InBLZXkiIH0pOworCisgICAg
ICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHQiKTsKKworICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2
YW5jZSgtMSk7IH0pOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA0MWU0NWUxMWI4NDMyYjI0Mzk4ZDlmMThhZTlhZjQ2ZDg2ZmYx
NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBpdGVy
YXRlIHRvIHRoZSBuZXh0IHJlY29yZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
NS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNjg4ZjMzMWE0
NTU2YmE0N2EwNDZlZTdhZTdhZjA0NTYyOWZiNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXg1Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNv
cmQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPGxpbmsg
cmVsPWFzc2VydCB0aXRsZT0iVGhlIG9wZXJhdGlvbiBydW5zIHRoZSBzdGVwcyBmb3IgaXRlcmF0
aW5nIGEgY3Vyc29yIGNvdW50IG51bWJlciBvZiB0aW1lcyB3aXRoIG51bGwgYXMga2V5IGFuZCB0
aGlzIGN1cnNvciBhcyBjdXJzb3IuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBudW1i
ZXIgb2YgYWR2YW5jZXMgZm9yd2FyZCB0aGUgY3Vyc29yIHNob3VsZCBtYWtlLiI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdLAor
ICAgICAgZXhwZWN0ZWQgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4
S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBp
S2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6InBLZXkiIH0pCisKKyAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImlLZXkiKQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KQorICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQs
IGV4cGVjdGVkLmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKQorICAgICAgICAgICAgICAgIHQu
ZG9uZSgpCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3Iu
dmFsdWU7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZFtj
b3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZC5pS2V5LCBleHBlY3RlZFtjb3VudF0uaUtleSwgImluZGV4IGtleSIpOworCisgICAgICAg
ICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0p
OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1MjExZmUzNDhlYThiZjY3NjIwYjQ3ZDViODhhZTMx
ODE5ZGU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAt
IHRocm93IFR5cGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0ZDY1M2MwOTk1MTQ2Mzgw
NmMzZDEyMzNjNzBhM2NjODhkNWIyYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXg2Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cg
VHlwZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9
Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1J
REJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAg
cmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwK
KyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhL
ZXlfMSIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNv
cmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7
CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3Bl
bkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
dmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMCk7CisgICAgICAgICAgICB9LCAiQ2FsbGlu
ZyBhZHZhbmNlKCkgd2l0aCBjb3VudCBhcmd1bWVudCAwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
Iik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3Njcmlw
dD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmE0NDdiYjI2OTljZjBh
YjgzYjBmNTVjZDYzYjYyOTI3OTFkMzc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNl
X2luZGV4Ny1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFk
dmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjE3Y2RhMDdhZjZiYzkzOGM1NDY2MmM0Y2U1NjNmZGQ1YTYzMzg0OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDcuaHRtbApAQCAtMCwwICsxLDM5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJD
dXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1h
ZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+Cisg
ICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0g
W3sgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7a2V5UGF0aCA6ICJwS2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5k
ZXgiLCAiaUtleSIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAg
fQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7
CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAg
IGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAg
IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOworICAgICAgICAgICAgYXNzZXJ0X3Ro
cm93cygiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNl
KCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIHdo
ZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7CisKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDgtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ4MmIxNGU2OWM0N2FiYjE4ZTUyNGE0MTFjMDQ0MDkzMDVhNTM5
OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJv
dyBJbnZhbGlkU3RhdGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjZGU5YWYxYTdhNzFl
MGIzNmE4MzM5ZjU1NzQ2YzNhZDdiZDBhNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXg4Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhy
b3cgSW52YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRl
eEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOworICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgi
aW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1
cnNvcik7CisKKyAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2Uo
KSBzaG91bGQgdGhyb3cgRE9NRXhjZXB0aW9uIHdoZW4gdGhlIGN1cnNvciBpcyBjdXJyZW50bHkg
YmVpbmcgaXRlcmF0ZWQuIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NTQwYTcxZTY3YjljODg4ZmRiOTdmOWY5Y2Y5ZTE4MjdiOTcwMjFhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4OS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Ig
Y2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
YWR2YW5jZV9pbmRleDkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOTFjMWJjYmM5YjVjMGM0MzVlMzdhMmVjZWE2ZmYzN2ZlZThjMTAxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNl
KCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3Rv
cmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2
YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH1dOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtr
ZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9Cisg
ICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKyAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisK
KyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29y
J3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhl
IGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlk
U3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIxMDM1ODQ3MjdlNjEzODNhNWFmYzk1YmZjMzM0ZjMzZDVjZWFjMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTICBJREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0
ZSBjdXJzb3IgbnVtYmVyIG9mIHRpbWVzIHNwZWNpZmllZCBieSBjb3VudCAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA2M2MyYjFjYmM0NmYzM2E1Yjg0ZTAwODhlODA2YTc0OGI2
OWE5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS5odG1sCkBA
IC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPiBJREJDdXJzb3IuYWR2YW5j
ZSgpIC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0ZSBjdXJzb3IgbnVtYmVyIG9mIHRpbWVzIHNwZWNp
ZmllZCBieSBjb3VudCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBj
b3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBw
S2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9LAor
ICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8zIiB9XTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisg
ICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgICBzdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
YXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAg
c3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAg
ICAgICBjb3VudCArPSAzOworICAgICAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgzKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5LCByZWNvcmRz
W2NvdW50XS5wS2V5LCAiY3Vyc29yLnZhbHVlLnBLZXkiKTsKKyAgICAgICAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoInVuZXhwZWN0ZWQg
Y291bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPiA8L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZh
bmNlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZhNzA4N2MwZDY3OGFm
MWJhZjVmYmRiYTRmOTZlYzUxNTc2OTBkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1
cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUeXBlRXJyb3IgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmpl
Y3RzdG9yZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWNmN2ZmODAzYTBjNjUxYzU1MDZjYTQ3NDkzNTdk
ZDM0N2I3YjI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi5o
dG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBU
eXBlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0i
aHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlE
QkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICBy
ZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAorICAgICAgICAgICAgICAgICAgIHsg
cEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAg
ICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB2YXIgcnEgPSB0eG4ub2JqZWN0
U3RvcmUoInN0b3JlIikub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2Vv
ZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMCk7CisgICAg
ICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgd2l0aCBjb3VudCBhcmd1bWVudCAwIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IuIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mY2IwZGViMzViMDVhOTFmZjgwYWMzYjAyYTE0OGVkYTFlZTI5ZmQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9y
ZSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9h
ZHZhbmNlX29iamVjdHN0b3JlMy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk4YjU3NzUyNDdmNGVlNGJkZjNkYmJiNWQyNTdiZjRiMGJhNTcxMTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLmh0bWwKQEAgLTAsMCAr
MSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5h
Y3RpdmVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVm
PSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwt
SURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAg
IHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCisgICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAg
ICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9i
alN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFu
c2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIHZhciBycSA9IHR4bi5vYmpl
Y3RTdG9yZSgic3RvcmUiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5j
ZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5h
Ym9ydCgpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Cisg
ICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRp
b24gVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBh
Y3RpdmUiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
PC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjdhZDc5Y2NkNDkzMzM1Njg3Y2IxYmNiNTA0YjlmMGQ2Y2JiNDQ3MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
NC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhYmY4
ZTg2OTczNzYxYThlZGE3MGFhZGI5NjRmNTZhMmI5YmNkYTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2Uo
KSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVu
c2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
Iiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwor
ICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3Jp
dGUiKTsKKyAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpLm9wZW5DdXJz
b3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAg
ICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZh
bmNlKDEpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2YW5jZSgpIHNob3VsZCB0aHJvdyBE
T01FeGNlcHRpb24gd2hlbiB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBiZWluZyBpdGVyYXRlZC4i
KTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyN2Yz
Y2I3YjM3OWRlYjY0ZTIwOTQxNDI3YTUzMWNkM2Y4ZTc1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0
YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3Rz
dG9yZTUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjYxZjZmMzY2YTM2ODdlYzM4OTJmMjE1ODc1NzcwNzBh
MmExZTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5odG1s
CkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZh
bGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVs
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5
bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAor
ICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoi
cEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAg
ICAgICAgdmFyIHJxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Ig
aW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgZGIu
ZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJ
bnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5h
ZHZhbmNlKDEpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZm
ZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24g
TVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7CisK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRp
bnVlX2luZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNGEwMDVlZTBlMmI1MTdiYTI0ZmY5
YTdlMWFjYWVmNGNlY2RlMTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRl
eC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVl
KCkgLSBpbmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGE4MmUyN2Q5ZjEzZDJiOGE1ZTJkZDhkMTMzOTVjYTVhMzU4NTdkYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXguaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0
ZSB0byB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8bGluayByZWw9aGVs
cCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVy
dmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQtYW55LWtleSI+Cis8bGluayBy
ZWw9YXNzZXJ0IHRpdGxlPSJPdGhlcndpc2UgdGhpcyBtZXRob2QgcnVucyB0aGUgc3RlcHMgZm9y
IGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBhIHJlcXVlc3QuIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBb
IHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9
LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0IiwgeyBrZXlQYXRoOiJwS2V5IiB9KTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAg
ICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5p
bmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
aWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCByZWNv
cmRzLmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1
ZTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNbY291bnRd
LnBLZXksICJwcmltYXJ5IGtleSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQu
aUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgImluZGV4IGtleSIpOworCisgICAgICAgICAgICBj
dXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAg
IH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXgyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZTE3MzEwZTFiYzFhNzgwYzUwMzI1MWM1MThhYWQwYmViNzhj
MGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBh
dHRlbXB0IHRvIHBhc3MgYSBrZXkgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgdmFsaWQga2V5IAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9p
bmRleDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTg4OThjZDZmNzUzMjViNWZmNTQzODQzY2QxMTliMjVh
ODkxODUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDIuaHRtbApAQCAt
MCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUo
KSAtIGluZGV4IC0gYXR0ZW1wdCB0byBwYXNzIGEga2V5IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBh
IHZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IklmIHRoZSBrZXkgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBhbmQgZnVsZmlsbHMgYW55
IG9mIHRoZXNlIGNvbmRpdGlvbnMgdGhpcyBtZXRob2QgbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlv
biBvZiB0eXBlIERhdGFFcnJvciI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgcGFyYW1l
dGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5
OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisK
KyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAg
ZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51ZShkb2N1bWVudCk7IH0pOworCisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3JXaXRoVmFsdWUsICJjdXJz
b3IiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07CisKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51
ZV9pbmRleDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ1MGQ5ZjI0Njk1ZjY4MDlkNDY3ZTY5NGFmOGM1N2IzNDc3NmNiNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGF0dGVtcHQg
dG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBz
ZXQgZm9yIHRoZSBuZXh0IHJlY29yZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXgzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZWVmYTM3
MjFmNDUxNDJkZTI3N2Y3OGQ1MjhhOTkyOTc4MmIwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4My5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIGl0ZXJhdGUg
dG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUg
bmV4dCByZWNvcmQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0i
aHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgorPGxpbmsgcmVsPWFzc2Vy
dCB0aXRsZT0iVGhlIHBhcmFtZXRlciBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJz
b3IncyBwb3NpdGlvbiBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgJ25leHQnIG9yICdu
ZXh0dW5pcXVlJy4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJp
bmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAg
ICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBjb3VudCA9IDA7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJuZXh0Iik7IC8vIFhYWDogRnggaGFzIGlz
c3VlIHdpdGggInVuZGVmaW5lZCIKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjb3VudCwgMiwgInJhbiBudW1iZXIgb2YgdGltZXMiKTsKKyAgICAgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRmlyc3QgdGlt
ZSBjaGVja3Mga2V5IGVxdWFsLCBzZWNvbmQgdGltZSBjaGVja3Mga2V5IGxlc3MgdGhhbgorICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKHJlY29yZHNbMF0uaUtleSk7IH0pOworCisgICAgICAg
ICAgICBjdXJzb3IuY29udGludWUoKTsKKworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAg
fSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
ZGV4NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0MDY5YWNhMzJmM2M3MDYyYTc5NDRlNWEx
MmFmMTlkNGZmNmIzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAt
IGluZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCB3aGVuIHRoZSBk
aXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgcHJldmlvdXMgcmVjb3JkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4NC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDE2YzlmNThlZGRkMGQ0MTVlZjQxZTkzMDExYTA3MWU4YWNkYTBhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0
ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMg
c2V0IGZvciB0aGUgcHJldmlvdXMgcmVjb3JkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPGxpbmsg
cmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90
aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgor
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3Ig
ZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBwb3NpdGlvbiBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rp
b24gaXMgJ3ByZXYnIG9yICdwcmV2dW5pcXVlJy4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
LCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8yIiwgaUtleTogImluZGV4S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwor
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGNvdW50ID0gMCwKKyAgICAgICAgICBjdXJz
b3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRl
eCIpCisgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJwcmV2
Iik7IC8vIFhYWCBGeCBpc3N1ZXMgdyB1bmRlZmluZWQKKworICAgICAgICBjdXJzb3JfcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdCwKKyAgICAgICAgICAgICAgcmVjb3JkID0gY3Vyc29yLnZhbHVl
OworCisgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzWzJdLnBLZXks
ICJmaXJzdCBwS2V5Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtl
eSwgcmVjb3Jkc1syXS5pS2V5LCAiZmlyc3QgaUtleSIpOworICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVjb3Jkc1sx
XS5wS2V5LCAic2Vjb25kIHBLZXkiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZC5pS2V5LCByZWNvcmRzWzFdLmlLZXksICJzZWNvbmQgaUtleSIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uKCkgeyBjdXJzb3IuY29udGludWUoImluZGV4S2V5XzIiKTsgfSk7CisgICAgICAgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudCB2
YWx1ZTogIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY291bnQrKzsK
KyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2Nv
bnRpbnVlX2luZGV4NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY0NGRlN2YwNDIyZTdlOTNj
NGU2YzNjYmE2NjM1ODNlZjgzYzJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVf
aW5kZXg1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29u
dGludWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1c2luZyAncHJldnVuaXF1ZScgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfY29udGludWVfaW5kZXg1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI2NzJhYzE0NmViYWM5NDMxNmE4NDFhYmM2NjU2ZWFkNWM0NDMwMmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS5odG1sCkBAIC0wLDAgKzEsNjQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXgg
LSBpdGVyYXRlIHVzaW5nICdwcmV2dW5pcXVlJzwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXZ1bmlxdWUiLCBsZXQg
dGVtcCByZWNvcmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBh
bGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHM6Jz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFu
IHBvc2l0aW9uLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1l
bnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAg
IHsgcEtleTogInByaW1hcnlLZXlfMSIsICAgaUtleTogImluZGV4S2V5XzEiIH0sCisgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9
LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5k
ZXhLZXlfMiIgfSBdLAorCisgICAgICBleHBlY3RlZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8y
IiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSwKKyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJp
bWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSBdOworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIg
fSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY291bnQgPSAwLAorICAgICAgICAg
IGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgo
ImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwg
J3ByZXZ1bmlxdWUnKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICdjb3Vu
dCcpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQs
CisgICAgICAgICAgICAgIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJwS2V5ICMiICsg
Y291bnQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRb
Y291bnRdLmlLZXksICJpS2V5ICMiICsgY291bnQpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5rZXksICBleHBlY3RlZFtjb3VudF0uaUtleSwgImN1cnNvci5rZXkgIyIgKyBj
b3VudCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBleHBl
Y3RlZFtjb3VudF0ucEtleSwgImN1cnNvci5wcmltYXJ5S2V5ICMiICsgY291bnQpOworCisgICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKGV4cGVjdGVkW2Nv
dW50XSA/IGV4cGVjdGVkW2NvdW50XS5pS2V5IDogdW5kZWZpbmVkKTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ni1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkzYmVlZmUwNDMwZjBhNDJlOGNkZjBjMjRmNThkNTM4
MWM1YzRjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4
IC0gaXRlcmF0ZSB1c2luZyBuZXh0dW5pcXVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4Ni5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODll
NTRiMGY4OWZkMTJkYWYxN2ZhZmRjNTcyYmNkZWI3NGEwOTMyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDYuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1c2luZyBu
ZXh0dW5pcXVlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBo
cmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dHVuaXF1ZSIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhl
IGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dp
bmcgcmVxdWlyZW1lbnRzOic+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBp
cyBkZWZpbmVkLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGlt
ZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
ICAgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKKyAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsICAgaUtleTogImluZGV4S2V5XzIiIH0gXSwK
KworICAgICAgZXhwZWN0ZWQgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImlu
ZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsICAg
aUtleTogImluZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMiIsICAgaUtleTogImluZGV4S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAg
IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUu
YWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIGNvdW50ID0gMCwKKyAgICAgICAgICBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJuZXh0dW5pcXVlIik7
CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0ZWQubGVuZ3RoLCAnY291bnQnKTsKKyAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICAgICAg
ICByZWNvcmQgPSBjdXJzb3IudmFsdWU7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVj
b3JkLnBLZXksIGV4cGVjdGVkW2NvdW50XS5wS2V5LCAicEtleSAjIiArIGNvdW50KTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIGV4cGVjdGVkW2NvdW50XS5pS2V5LCAi
aUtleSAjIiArIGNvdW50KTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5
LCAgZXhwZWN0ZWRbY291bnRdLmlLZXksICJjdXJzb3Iua2V5ICMiICsgY291bnQpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0ZWRbY291bnRdLnBL
ZXksICJjdXJzb3IucHJpbWFyeUtleSAjIiArIGNvdW50KTsKKworICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShleHBlY3RlZFtjb3VudF0gPyBleHBlY3Rl
ZFtjb3VudF0uaUtleSA6IHVuZGVmaW5lZCk7CisgICAgICAgIH0pOworICAgIH07CisKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9p
bmRleDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAzMDAyOTllMDkyMGVlNjA0MTg2ODU4Yjk2ZmY4MTgxYjFkOGJlZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIHRocm93IFRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDcu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFlNjA5OGFmMGRh
MThiYjdjNjEzZDIzMThlOGFhMTMzZDUwOWRmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg3Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAt
IHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0s
CisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhL
ZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9w
ZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKwor
ICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0sICJDYWxs
aW5nIGNvbnRpbnVlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7CisKKyAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9p
bmRleDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZDdmMzU2YTExZmUwMmU5M2IzZWQyNDNj
MGNlMTY5ODNmM2Q4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkg
LSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUg
YmVlbiBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWU1N2Y1YmQyNGQyZjczNDc0
NGZhZWM5MjA5YjlkNmZjYjE2MzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9p
bmRleDguaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gdGhyb3cg
SW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
IGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOwor
ICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9i
alN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEgPSBvYmpT
dG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0
YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJz
dG9yZSIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUg
aGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29u
dGludWVfaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5MWEwOGIyZWY1MzNmNzg2OWFjNGJlNDdiZDQ5MWQ5ZWVmNjFl
NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gYXR0ZW1wdCB0
byBjYWxsIGNvbnRpbnVlIHR3byB0aW1lcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9p
bnZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTdh
NmEwMmMwNmUzNTgwZmQyNDViZjEyNjY3YjJiOGYzZTVlMjA1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl9jb250aW51ZV9pbnZhbGlkLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBhdHRlbXB0IHRvIGNhbGwgY29udGlu
dWUgdHdvIHRpbWVzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRi
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0p
OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgIG9ialN0
b3JlLmFkZCgiZGF0YSIsICAxKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhMiIsIDIpOwor
ICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
dmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgJ2NvdW50Jyk7
CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKHVuZGVmaW5lZCk7CisKKyAgICAgICAgICAgIC8v
IFNlY29uZCB0cnkKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9y
JywKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKCk7IH0sICdz
ZWNvbmQgY29udGludWUnKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0
YXRlRXJyb3InLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUo
Myk7IH0sICd0aGlyZCBjb250aW51ZScpOworCisgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250
aW51ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRjNmE2OTQxZmRlMmE2
OTE3YmY5NThhNGQ3ZDY5MjBmZTI2NjMwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1
cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNv
cmQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
Y29udGludWVfb2JqZWN0c3RvcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2U3ODE2ZjliYTdlNmI5OTBh
ZWVjYzU3NmZjOWI2ZTM2MTYyYWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9v
YmplY3RzdG9yZS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0ZSB0byB0aGUgbmV4
dCByZWNvcmQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3Vw
cG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBjb3VudCA9
IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
YXV0b0luY3JlbWVudDp0cnVlLCBrZXlQYXRoOiJwS2V5In0pOworCisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICBjdXJzb3Jf
cnEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCByZWNvcmRzLmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKTsK
KyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
dmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVj
b3JkLnBLZXksIHJlY29yZHNbY291bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgImluZGV4
IGtleSIpOworCisgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIGNv
dW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+IDwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRh
OWM2YjVhMTQ0ZTM0YzRmMDFlMzY4MmE2MDUxZWY5YTVhN2VkYTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRv
IHBhc3MgYSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZTQzOGZlOTc4ODUyZDM1MTQxZmEzOTZmZGEwOTlmMzFj
OWIwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi5odG1s
CkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250
aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBwYXNzIGEga2V5IHBhcmFtZXRlciBp
cyBub3QgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisg
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFy
eUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0
aDoicEtleSJ9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29y
X3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNv
cigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3Ig
ZXhpc3RzIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUoZG9jdW1lbnQpOyB9KTsKKwor
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjY4MDgwM2Y0NjA4YzMwNjk0OGU2NWY0NWU4OWY2YmEwNTI5NDYzZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBz
dG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3JkIHdoZW4gdGhl
IGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBuZXh0IHJlY29yZCAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNv
cl9jb250aW51ZV9vYmplY3RzdG9yZTMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzgwNDJlNGE0ZGZmMzAwMmJmOTEyZWUzNTBjZjFlNjZhODJlNjBh
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLmh0bWwKQEAg
LTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVl
KCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIHByZXZpb3VzIHJl
Y29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgbmV4dCByZWNvcmQ8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHQiKTsKKwor
ICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAg
YXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7
CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAg
IGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUocmVjb3Jkc1swXS5wS2V5KTsgfSk7CisKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9y
ZTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE1ZjMxYjUyNGJjNGU1ZGE0M2UxYTVkOWQyZjY3YWY0NzljZDFkNzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3Rv
cmUgLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRpcmVj
dGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MGQ5MWQ5YjEyMjYyZjE0M2ZiYWVjMzMyZGI2MjczMTI4NWIzZjBi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQuaHRtbApAQCAt
MCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUo
KSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQg
d2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIHByZXZpb3VzIHJlY29yZCA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBjb3VudCA9IDAsCisgICAgICAgICAgY3Vyc29yX3JxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7
CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciAhPSBudWxsLCAiY3Vyc29yIGV4aXN0Iik7CisKKyAgICAg
ICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbMl0ucEtleSwgImZp
cnN0IGN1cnNvciBwa2V5Iik7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKHJlY29y
ZHNbMV0ucEtleSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5LCByZWNv
cmRzWzFdLnBLZXksICJzZWNvbmQgY3Vyc29yIHBrZXkiKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsg
Y3Vyc29yLmNvbnRpbnVlKHJlY29yZHNbMl0ucEtleSk7IH0pOworICAgICAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQgdmFsdWU6
ICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAg
ICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29u
dGludWVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWExYTg3NTE0ZWMz
ZWZkMWY3ZTRmZWY1MDY4NjRjNTM3MTFmZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250
aW51ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjYzMTVjYmQw
MzU3NmFjMmMyNWQyOGI1YTk5OWZlN2ExMTU3MmM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9j
b250aW51ZV9vYmplY3RzdG9yZTUuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAt
IG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBp
ZD0ibG9nIj4gPC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190
ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3RzIik7CisKKyAgICAg
ICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0sICJDYWxsaW5nIGNvbnRp
bnVlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9y
IHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7CisKKworICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGludWVfb2Jq
ZWN0c3RvcmU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWUwZjEzMDlhZGUxNjNlM2MxOWJh
Y2M2N2ZkNzFiYzVmZjU0N2M0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5j
b250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2Vk
IGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmU2Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI1Njk1NTlmOGU5NjhlZTI5MmRhOGZjYzQxOGI4NzBhYWEyYTNiMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi5odG1sCkBAIC0wLDAgKzEs
MzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
QkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJy
b3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+
IDwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAor
ICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IG9ialN0b3Jl
Lm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwg
ImN1cnNvciBleGlzdHMiKTsKKworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInRl
c3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAg
ICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhh
cyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVf
aW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM5ODVmOWM3ZGVlZGNiMGFkZTdiYjFkMWIxZjBlYmM2ZWE2NzNlYmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSByZW1vdmUgYSByZWNvcmQgZnJv
bSB0aGUgb2JqZWN0IHN0b3JlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTMwYWNmZDVlN2YxMWEwMjQ2
NmY2M2VlN2E1OGE4MzAyODE0NzMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5k
ZXguaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJz
b3IuZGVsZXRlKCkgLSBpbmRleCAtIHJlbW92ZSBhIHJlY29yZCBmcm9tIHRoZSBvYmplY3Qgc3Rv
cmU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgY291bnQgPSAw
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInBy
aW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIg
fSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKEN1cnNvckRlbGV0ZVJlY29yZCk7CisKKworICAgIGZ1bmN0aW9u
IEN1cnNvckRlbGV0ZVJlY29yZChlKSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlv
bigidGVzdCIsICJyZWFkd3JpdGUiKSwKKyAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0
U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1
cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAg
Y3Vyc29yLmRlbGV0ZSgpOworICAgICAgICB9KTsKKworICAgICAgICB0eG4ub25jb21wbGV0ZSA9
IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc0RlbGV0ZWQpOworICAgIH0KKworCisgICAgZnVu
Y3Rpb24gVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZChlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7
CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
ICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwg
MSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbMV0u
cEtleSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5pS2V5LCByZWNv
cmRzWzFdLmlLZXkpOworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfZGVsZXRlX2luZGV4Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZiYWNlNjdlYzEw
ODc1NGRhOGM2MWYyODc4NWEwZWI0NWFhMGJlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29y
LmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJlYWQt
b25seSB0cmFuc2FjdGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX2RlbGV0ZV9pbmRleDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzNmOTEyNDQ4ODhmNGIwOTZm
NDYzYTA0ODQzM2M1NDg3NTMxMThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5k
ZXgyLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vy
c29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJl
YWQtb25seSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5j
ZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IuZGVsZXRlKCk7IH0pOworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmJm
MTcyYjljZjE2YjJkOTA3NWM5ZTdlZjNmMDcxMDBmNjczOTkwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl9kZWxldGVfaW5kZXgzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGlu
IGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRl
eDMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYzMwNDRiM2Y1
YzBiZmNmNTVmY2MxYjA1YzExNDkyYWFlYTRhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3Jk
IGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAg
ICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJw
S2V5IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAg
dmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBp
bnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgd2luZG93
LmN1cnNvciA9IGN1cnNvcjsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNh
Y3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF90aHJvd3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3
aW5kb3cuY3Vyc29yLmRlbGV0ZSgpOyB9KQorICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzM2MGE4YWI0OWFiZWZmNGU5MzEwMzg3YmEwNDZl
NmNlZmZlODE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAt
IHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxl
dGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRl
X2luZGV4NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNmU1NzY3NDA5ZDdkNmZjZjdiYThiOGY3ZWMzOTUy
MzY0YjQ4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQuaHRtbApAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9y
IGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhL
ZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5
OiAiaW5kZXhLZXlfMSIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImlu
ZGV4Iikub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJz
b3IsICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUo
InN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAgICAgICAg
ICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUg
aGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ2OWFhYWYyMmQ3MWY0MmVlZDY2NTU1M2VjODU4NGExMGIxOGE1ZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRmYzBlMjk2N2Q2MmMzNzBkY2I2NGRjMDc1ZGE5MWRhZDVhZmIxM2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3Iu
ZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGN1cnNv
ciBpcyBiZWluZyBpdGVyYXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLWRlbGV0ZS1JREJSZXF1ZXN0Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29y
ZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAg
ICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEi
IH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4
KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1
cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVu
dCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3Ig
ZXhpc3QiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJz
b3JfZGVsZXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0
b3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzY2MGZhMTQwYWZiMzg2NjQ2NTA4MzFmZWRj
NTQwN2U3ZDQxZmM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAt
IG9iamVjdCBzdG9yZSAtIHJlbW92ZSBhIHJlY29yZCBmcm9tIHRoZSBvYmplY3Qgc3RvcmUgIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzJhZDQ3NjVlY2I4ZmFmYmExNTM2MTZiZTI3
ZWZmNWQyZjIwZDI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Iu
ZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSByZW1vdmUgYSByZWNvcmQgZnJvbSB0aGUgb2JqZWN0
IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICBjb3Vu
dCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhDdXJzb3JE
ZWxldGVSZWNvcmQpOworCisKKyAgICBmdW5jdGlvbiBDdXJzb3JEZWxldGVSZWNvcmQoZSkgewor
ICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIiksCisg
ICAgICAgICAgY3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcigp
OworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOworICAgICAg
ICAgICAgY3Vyc29yLmRlbGV0ZSgpOworICAgICAgICB9KTsKKworICAgICAgICB0eG4ub25jb21w
bGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc0RlbGV0ZWQpOworICAgIH0KKworCisg
ICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZChlKSB7CisgICAgICAgIHZhciBjdXJz
b3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29y
ZHNbMV0ucEtleSk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY3Vyc29yLmNv
bnRpbnVlKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NGNiNmI3MjcwZjliNWJkODgwMzFiYjMwOGRjNjZlOTEwZTI5ODQzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIHJl
bW92ZSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYzU3ZTk5ZjY5NWQ2OWY2OWE0NDI4MjdjNmM2NTc4YTZjMjUzMzNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLmh0bWwKQEAgLTAs
MCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0g
b2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkg
dHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
LCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAg
IG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlv
bigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vy
c29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGN1cnNvciAhPSBudWxsLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCdSZWFkT25seUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci5kZWxldGUoKTsgfSk7Cisg
ICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3Jl
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE2YmYxNzJiOWNmMTZiMmQ5MDc1YzllN2VmM2YwNzEwMGY2NzM5OTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0
byByZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3Rv
cmUzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJmZDgyMDFhZGMzMDI4OWY4NjA4NTZjZTllYTUzMzhiNzJj
ZDJmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMy5odG1sCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUo
KSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJh
bnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
IGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9i
alN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKworICAgICAgICB2YXIgY3Vyc29yX3JxID0gb2JqU3Rv
cmUub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
LCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAgICB3aW5kb3cuY3Vyc29yID0gY3Vyc29yOwor
ICAgICAgICB9KTsKKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yJywgZnVuY3Rpb24oKSB7IHdpbmRvdy5jdXJzb3IuZGVsZXRl
KCk7IH0pCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI3NmNlOTA3ODg5NzliNjM3MWY0YzllYWM5ZDAxZTEyOTIwMmRj
ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBz
dG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVl
biBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5Nzc1YzhmMTY2MzJh
M2MzNmFhYjI2YTE5YmE5N2RkNzYyMzQ3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZTQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qg
c3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJl
ZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVm
PSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKKyAgICB2YXIg
ZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5
OiAicHJpbWFyeUtleV8wIn0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIn1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRz
W2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7
CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAg
IGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIp
OworCisgICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJz
b3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0
aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFs
aWRTdGF0ZUVycm9yIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjBmOWVkNWJlMmZiMmY5ZDA2OTVlZjIxZDUzOWExNDkxNzZiNzNiNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cg
SW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3ZmE1ZjIzM2NlZWZiZWQ0NGE4YzEwZWNlZmU4
YjAwNWUyMTE4OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUu
aHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBjdXJzb3IgaXMgYmVpbmcgaXRlcmF0ZWQ8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1kZWxldGUt
SURCUmVxdWVzdCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlf
MCJ9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5
UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgewor
ICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpOwor
ICAgICAgICB2YXIgcnEgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikub3BlbkN1cnNvcigpOwor
ICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsK
KworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1
cnNvci5kZWxldGUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfaXRlcmF0
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJjdXJzb3JfaXRlcmF0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zODNlZDlkMjI1MmIyZDliZDk3MzdjOGY5NDhiMjc4NjhmZDVhNzA0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl9pdGVyYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50
LCBhbmQgaXRlcmF0ZSB0byBpdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfaXRlcmF0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUzNGJjYzNiNGY2M2ZiZTY5ODJiYWFm
ZjA4NjBmMGJlMzQyY2Q5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfaXRlcmF0aW5nLmh0bWwK
QEAgLTAsMCArMSwxMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250
aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0
byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBj
b3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6
IDEwMDAwfSk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
LCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTAw
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6IGksIHZhbDogInZhbF8iK2kg
fSk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHsga2V5OiA1MDAsIHZhbDogInZh
bF81MDAiIH0pOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDk5OTsgaSA+IDUwMDsgaS0tKQorICAgICAg
ICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTogaSwgdmFsOiAidmFsXyIraSB9KTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgWydrZXknLCAn
dmFsJ10pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0
ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgICAgIHN0b3JlID0gZS50YXJnZXQu
c291cmNlOworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCA5OTcsICJjdXJzb3IgcnVuIGNvdW50Iik7CisKKyAgICAgICAgICAg
ICAgICB2YXIgcnEgPSBlLnRhcmdldC5zb3VyY2UuY291bnQoKTsKKyAgICAgICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA5OTUsICJvYmplY3QgY291bnQiKTsK
KyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2gg
KGN1cnNvci5rZXkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5LCAiY291bnQiKTsKKyAgICAgICAg
ICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDExKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgICAgIGNhc2UgNDk5Ogor
ICAgICAgICAgICAgICAgIGNhc2UgNTAwOgorICAgICAgICAgICAgICAgIGNhc2UgNTAxOgorICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5IC0gMSwgImNv
dW50Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8g
RGVsZXRlIHRoZSBuZXh0IGtleQorICAgICAgICAgICAgICAgIGNhc2UgNTEwOgorICAgICAgICAg
ICAgICAgICAgICBzdG9yZS5kZWxldGUoNTExKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgICAgICAvLyBEZWxldGUgcmFuZG9tbHkKKyAgICAgICAgICAgICAgICBj
YXNlIDUxMjoKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDYxMSk7CisgICAgICAg
ICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSg0OTkpOworICAgICAgICAgICAgICAgICAgICBzdG9y
ZS5kZWxldGUoNTAwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
ICAgICAvLyBEZWxldGUgYW5kIGFkZCBhIG5ldyBrZXkKKyAgICAgICAgICAgICAgICBjYXNlIDUy
MDoKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDUyMSk7CisgICAgICAgICAgICAg
ICAgICAgIHN0b3JlLmFkZCh7IGtleTogNTIxLCB2YWw6ICJuZXcifSk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSA1MjE6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnZhbCwgIm5ldyIpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IGJl
IGhlcmUgb25jZSBhbHRob3VnaCB3ZSdyZSBiYXNpY2FsbHkgbWFraW5nIHRoZSBpbmRleAorICAg
ICAgICAgICAgICAgIC8vICJoZWF2aWVyIiB3aXRoIGl0cyBuZXcga2V5LgorICAgICAgICAgICAg
ICAgIGNhc2UgNTMwOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZS52YWwsICJ2YWxfNTMwIik7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUo
eyBrZXk6IDUzMCwgdmFsOiAidmFsXzUzMSIgfSkKKworICAgICAgICAgICAgICAgICAgICBzdG9y
ZS5nZXQoNTMwKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52YWwsICJ2YWxf
NTMxIik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgICAgIC8vIFNob3VsZG4ndCBoYXBwZW4uCisgICAgICAgICAgICAg
ICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICBjYXNlIDUxMToKKyAgICAgICAgICAgICAgICBj
YXNlIDYxMToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChjdXJzb3Iua2V5
ICsgIiBzaG91bGQgYmUgZGVsZXRlZCBhbmQgbmV2ZXIgcnVuIik7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRl
eC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWEwZjYzZGZhOWYyYzg0NTMwOGNiZGQxNGRhYzI3Mzk5MjUwMDRjNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gZGVsZXRlIG5leHQgZWxl
bWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfaXRlcmF0aW5nX2lu
ZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2MzAzY2Mx
OGY0OTc4MDc1ODNmMjc1YTIyNTdlZTg1OGUxOGQwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X2l0ZXJhdGluZ19pbmRleC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBkZWxldGUgbmV4dCBlbGVtZW50
LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2
YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCBvYmo6IHsgaUtleTogImlLZXlfMCIgfX0sCisgICAgICAgICAgICAgICAgICB7
IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBvYmo6IHsgaUtleTogImlLZXlfMSIgfX0sCisgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBvYmo6IHsgaUtleTogImlLZXlfMiIg
fX0gXSwKKworICAgICAgZXhwZWN0ZWQgPSBbIFsgInByaW1hcnlLZXlfMiIsICJpS2V5XzIiIF0s
CisgICAgICAgICAgICAgICAgICAgWyAicHJpbWFyeUtleV8wIiwgImlLZXlfMCIgXSBdOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6WyJw
S2V5IiwgIm9iai5pS2V5Il19KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgWyAicEtleSIsICJvYmouaUtleSIgXSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcihudWxsLCAicHJldiIpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY3Vyc29yIHJ1biBjb3VudCIpOworICAg
ICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
Y291bnQgPT09IDApIHsKKyAgICAgICAgICAgICAgICBlLnRhcmdldC5zb3VyY2Uub2JqZWN0U3Rv
cmUuZGVsZXRlKFsicHJpbWFyeUtleV8xIiwgImlLZXlfMSJdKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY3Vyc29yLmtleSwgZXhwZWN0ZWRbY291bnRd
LCAicHJpbWFyeSBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTQ3ODBiMmUwNWMxNzRjOTAwMzQ0NDdhZTMyY2MxMzIzNTgyOTQ1NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGFkZCBuZXh0IGVsZW1lbnQsIGFu
ZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3NTRjN2NjYWZmZGQ0
OTMyNTQ0ZTZmMDVhOGE3NDdhMTUxN2EyNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJh
dGluZ19pbmRleDIuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYWRkIG5leHQgZWxlbWVudCwgYW5kIGl0
ZXJhdGUgdG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGlu
aG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0
aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8w
Iiwgb2JqOiB7IGlLZXk6ICJpS2V5XzAiIH19LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8yIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzIiIH19IF0sCisKKyAgICAgIGV4cGVj
dGVkID0gWyBbICJwcmltYXJ5S2V5XzIiLCAiaUtleV8yIiBdLAorICAgICAgICAgICAgICAgICAg
IFsgInByaW1hcnlLZXlfMSIsICJpS2V5XzEiIF0sCisgICAgICAgICAgICAgICAgICAgWyAicHJp
bWFyeUtleV8wIiwgImlLZXlfMCIgXSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsIFsgInBLZXkiLCAib2JqLmlLZXkiIF0pOworCisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUo
InRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IobnVsbCwgInByZXYiKTsKKworICAgICAg
ICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vy
c29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywgImN1cnNvciBy
dW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKGNvdW50ID09PSAwKSB7CisgICAgICAgICAgICAgICAgZS50YXJnZXQu
c291cmNlLm9iamVjdFN0b3JlLmFkZCh7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBvYmo6IHsgaUtl
eTogImlLZXlfMSIgfSB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY3Vyc29yLmtleSwgZXhwZWN0ZWRbY291bnRdLCAicHJpbWFyeSBrZXkiKTsKKwor
ICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9p
dGVyYXRpbmdfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4M2VkOWQyMjUy
YjJkOWJkOTczN2M4Zjk0OGIyNzg2OGZkNWE3MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0
ZXJhdGluZ19vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGRlbGV0ZSBuZXh0IGVsZW1lbnQs
IGFuZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3Rz
dG9yZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YmQzYzYzMDdlYzg5ODVlZTY4NDliNzM1MzAwYzhlOTAyYTkzOTlhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdHN0b3JlIC0g
ZGVsZXRlIG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hy
dGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3Jk
cyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8yIiB9IF0sCisgICAgICBleHBlY3RlZF9yZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5
XzAiIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIi
IH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tl
eVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1
cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY291bnQsIDIsICJjdXJzb3IgcnVuIGNvdW50Iik7CisgICAgICAgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWNvcmQgPSBj
dXJzb3IudmFsdWU7CisgICAgICAgICAgICBpZiAocmVjb3JkLnBLZXkgPT0gInByaW1hcnlLZXlf
MCIpIHsKKyAgICAgICAgICAgICAgIGUudGFyZ2V0LnNvdXJjZS5kZWxldGUoInByaW1hcnlLZXlf
MSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtl
eSwgZXhwZWN0ZWRfcmVjb3Jkc1tjb3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7CisKKyAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAg
fSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyOGI3OTRhOGFjNGQ3
YmUyNmUxYzVlNzMxODVhYjcyNTM4ZTRkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQg
aXRlcmF0ZSB0byBpdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjFk
OWYzZGNjYWI2YWRlMGM2NzJkNDNkOTAyMzU1MWRhNmQxYTIwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGFk
ZCBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBb
IHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInBy
aW1hcnlLZXlfMiIgfSBdLAorICAgICAgZXhwZWN0ZWRfcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJp
bWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8yIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
LCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Cisg
ICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2
YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29y
ZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAgIGlmIChyZWNvcmQucEtleSA9PSAicHJpbWFy
eUtleV8wIikgeworICAgICAgICAgICAgICAgZS50YXJnZXQuc291cmNlLmFkZCh7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWNvcmQucEtleSwgZXhwZWN0ZWRfcmVjb3Jkc1tjb3VudF0ucEtleSwgInByaW1hcnkga2V5
Iik7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmJhZjM0NTE1ZDE3NGRkYzZjMGMx
OWYwZmFkMWVjYzQzMWZmNDYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAt
IGluZGV4IC0gbW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX3VwZGF0ZV9pbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MTNmZjg1N2EzZDA4NzNmOTkzODJiOTRiNzI5ZmE2ZGIyMWJmOTNjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBh
IHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAg
ICB2YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisK
KyAgICAgICAgLy8gWFhYOiBHZWNrbyBkb2Vzbid0IGxpa2UgdGhpcworICAgICAgICAvL2UudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhDdXJzb3JVcGRhdGVSZWNv
cmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IEN1cnNvclVwZGF0ZVJlY29y
ZDsKKworCisgICAgZnVuY3Rpb24gQ3Vyc29yVXBkYXRlUmVjb3JkKGUpIHsKKyAgICAgICAgdmFy
IHR4biA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAorICAgICAgICAgIGN1
cnNvcl9ycSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
ICAgIGN1cnNvci52YWx1ZS5pS2V5ICs9ICJfdXBkYXRlZCI7CisgICAgICAgICAgICBjdXJzb3Iu
dXBkYXRlKGN1cnNvci52YWx1ZSk7CisgICAgICAgIH0pOworCisgICAgICAgIHR4bi5vbmNvbXBs
ZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkV2FzVXBkYXRlZCk7CisgICAgfQorCisKKyAg
ICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRXYXNVcGRhdGVkKGUpIHsKKyAgICAgICAgdmFyIGN1cnNv
cl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJz
b3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUuaUtleSwgcmVjb3Jkc1swXS5pS2V5
ICsgIl91cGRhdGVkIik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkzM2M3ZTBkZmE2ZWZlMjkwYTUyYWNmODJjMDhmMTkwZTU3NmRjNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0
byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2QwMDAxY2JiOTE4OTdiNDYxZmE0MGM0ZmZjOWY5YTlmNTM2MjI2NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1w
dCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb248L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIg
fSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRl
eEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
dGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAg
ICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5p
bmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRl
KGN1cnNvci52YWx1ZSk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkzMzI3NTNhOGNjOGMzNDZiZWRmYjZhOTZmM2IxMjhjNmQz
MDk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIGF0dGVt
cHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkZTY2Y2JjNmMzMDdkZjNmNzFkODdlMzM0YjBlNDI2MGRhMDcxNzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMuaHRtbApAQCAtMCwwICsxLDQxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIGF0
dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhL
ZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6
ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gb2Jq
U3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQo
cmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJzb3Io
KTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlz
dCIpOworICAgICAgICAgICAgd2luZG93LmN1cnNvciA9IGN1cnNvcjsKKyAgICAgICAgICAgIHdp
bmRvdy5yZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAgIH0pOworCisgICAgICAgIGUudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InLCBmdW5j
dGlvbigpIHsgd2luZG93LmN1cnNvci51cGRhdGUod2luZG93LnJlY29yZCk7IH0pCisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NDg5MmEw
ZjU2MGI4MjFmOTFiODIwNWFlYjY3YjM2ODVmNGI3NzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1
cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgd2hlbiBv
YmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRl
eDQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhZDI5NDU4Y2Q3
ODk3ZmQ0YWRkOGNjNWI0M2RmYmM5N2I3ODdlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIGF0
dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIHdoZW4gb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3
LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8w
IiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVu
dCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9i
alN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGlu
c3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUo
InN0b3JlIik7CisgICAgICAgICAgICBjdXJzb3IudmFsdWUuaUtleSArPSAiX3VwZGF0ZWQiOwor
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7CisgICAgICAg
ICAgICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3Jl
IGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MjA5YTU2MDNkZThhOGY5OTkwNWQzZTQyMmY4YjI5OWIyMzAwMjZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIHRocm93IERhdGFD
bG9uZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4MjUzZTU0YjExMDc1ZjcyNTQ2MTE3NDVk
ZGE3ZDRlMjZhZTA5NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUuaHRt
bApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBk
YXRlKCkgLSBpbmRleCAtIHRocm93IERhdGFDbG9uZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItdXBkYXRlLUlEQlJlcXVlc3QtYW55
LXZhbHVlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBh
c3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
IGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAg
ICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3Qi
LCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5z
dGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZh
bHVlOworICAgICAgICAgICAgcmVjb3JkLmRhdGEgPSBkb2N1bWVudDsKKyAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoJ0RhdGFDbG9uZUVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgY3Vyc29yLnVwZGF0ZShyZWNvcmQpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY0MDE1YTE4MDVmYTBjNGE5ODlhZTIxMjIzYTY3Yzk0MzI4M2Nm
ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gbm8gYXJn
dW1lbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ni5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRh
dGVfaW5kZXg2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIyOGQ3OWIzZjU5ZDlmNmU0NDlhNjg4NTZlN2Rj
MzExOGVkMGUxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ni5odG1sCkBA
IC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUo
KSAtIGluZGV4IC0gbm8gYXJndW1lbnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4
S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRz
W2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1
cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBjdXJz
b3IudXBkYXRlKCk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTZiZGFh
NzIwMTI4MmYxOWI1NDU0ZGNlYzg2ZjgxZWU2M2E5NzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNv
cl91cGRhdGVfaW5kZXg3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJD
dXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIHRocm93IERhdGFFcnJvciAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl91cGRhdGVfaW5kZXg3Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MjcwZWJlZWM4N2Y5MjJjODU0MTI3NTgyMDNkMTM0NzljZWFkODU5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSB0aHJvdyBEYXRh
RXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1
cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9
IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9
IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsg
a2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3Jf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRl
KG51bGwpOyB9KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8
L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMw
NGIwNjc1ZjZiMGFiMmFiMzczNWRjZTI2ZDYxMGFkYjM0NmMwYjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0c3RvcmUgLSBtb2RpZnkgYSByZWNvcmQg
aW4gdGhlIG9iamVjdCBzdG9yZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YjEz
N2NlNjAxZGRjYjYxZDcwMGRmYWEyMTAyMDg2NWQxNDhmMzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdHN0b3JlIC0gbW9kaWZ5IGEg
cmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5
S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKKworICAgICAgICAvLyBYWFg6IEdlY2tvIGRvZXNuJ3QgbGlrZSB0aGlzCisgICAgICAgIC8v
ZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKEN1cnNvclVwZGF0
ZVJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gQ3Vyc29yVXBkYXRl
UmVjb3JkOworCisKKyAgICBmdW5jdGlvbiBDdXJzb3JVcGRhdGVSZWNvcmQoZSkgeworICAgICAg
ICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIiksCisgICAgICAg
ICAgY3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICAgICAgY3Vyc29yLnZhbHVlLmRhdGEgPSAiTmV3IGluZm9ybWF0
aW9uISI7CisgICAgICAgICAgICBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7CisgICAgICAg
IH0pOworCisgICAgICAgIHR4bi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3Jk
V2FzVXBkYXRlZCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRXYXNVcGRh
dGVkKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
dmFsdWUuZGF0YSwgIk5ldyBpbmZvcm1hdGlvbiEiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3Jf
dXBkYXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgzN2E1NTdiNWQ1
M2QwODFmYmQ2NmNhZDAxZDk2NjA1ODhkNGM1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBk
YXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
Q3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNv
cmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmVhOTM1OGE3NTk2NjRlMjY4NmM5NWQxMjg5NjUzMTVhZTIzZDUwMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi5odG1sCkBAIC0wLDAgKzEsMzggQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9y
ZSAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9u
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImlu
ZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBp
S2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnUmVhZE9ubHlF
cnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7IH0pOworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMzZiMWY5YjE5NWVjYzI4MjZiZjJkNDgyY2Q2YTUxODdmODMxYTY3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRl
bXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmpl
Y3RzdG9yZTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjg1ZDc0NDAxM2YyM2M0MDM5NmE1YTA1Zjg0OThk
YjlkMDAxOGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLmh0
bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVw
ZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYW4g
aW5hY3RpdmUgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRi
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInBy
aW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0p
OworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKworICAgICAgICB2YXIgY3Vyc29y
X3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNl
b2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAgICB3aW5kb3cuY3Vyc29y
ID0gY3Vyc29yOworICAgICAgICAgICAgd2luZG93LnJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1RyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cuY3Vyc29yLnVwZGF0ZSh3
aW5kb3cucmVjb3JkKTsgfSkKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNv
cl91cGRhdGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM4M2IyZTdlYzQ0YmJiODVmYWNjOGVjMjVh
YjFlMjVmOTdlOGExMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgp
IC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBzdG9yZSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZTQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTU3MThhZWVkZWQwNjhjMjg3YTBhOGRiOGQ4ZjU5NzFk
ZjA0YWNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0Lmh0bWwK
QEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0
ZSgpIC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgIG9ialN0b3JlLmFkZCgi
ZGF0YSIsICJrZXkiKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVz
dCIsICJyZWFkd3JpdGUiKSwKKyAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUo
InRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAg
ICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGN1cnNv
ci52YWx1ZSA9ICJuZXcgZGF0YSEiOworICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3Iu
dmFsdWUpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgImtleSIpOworICAgICAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZWRiMzNjOWZmMmEwMTJmN2ZiNWIwNjA0ZWRmNThjNmNj
ZDc1ODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVj
dCBzdG9yZSAtIGF0dGVtcHQgdG8gIG1vZGlmeSBhIHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBi
ZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk2NGRiOTc4MDky
ZGM3ZmVjYzk4Yzc5ZmI5MGE2OTk4YmY5ZTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBk
YXRlX29iamVjdHN0b3JlNS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVj
dCBzdG9yZSAtIGF0dGVtcHQgdG8gIG1vZGlmeSBhIHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBi
ZWVuIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCisgICAgdmFy
IGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTog
InByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwg
e2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRz
Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisg
ICAgICAgIHZhciBjdXJzb3JfcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3RzIik7CisKKyAgICAg
ICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBjdXJzb3Iu
dmFsdWUgKz0gIl91cGRhdGVkIjsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRT
dGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShj
dXJzb3IudmFsdWUpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3Ig
ZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRp
b24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7
CisKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1
cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjY3MjFi
Yjk3ZDgxMzg4ZGVmMzU3M2VkNDcxOTMwZmNiOWQyZjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNv
cl91cGRhdGVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBEYXRhQ2xvbmVFcnJv
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3Vw
ZGF0ZV9vYmplY3RzdG9yZTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDgyMzRjMjg4NjY4YzUyNTcwZGNi
ZjkyNDRmYzcyNjgwYzYyOGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmU2Lmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURC
Q3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUNsb25lRXJyb3I8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRh
dGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAg
ICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDog
InBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3Jf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
KTsKKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAg
IHJlY29yZC5kYXRhID0gZG9jdW1lbnQ7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRh
Q2xvbmVFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUo
cmVjb3JkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YmU4ZGUxNGY0N2RhZTI4NDRmM2I0ZmRiZDM4YWYxMTc4ZDE5NmJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUg
LSBubyBhcmd1bWVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjk4MDYzZTA5
OTdiNGMyMzY3YjIzZDRiYzJkYWU5Y2YxMjU1N2M4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91
cGRhdGVfb2JqZWN0c3RvcmU3Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gbm8gYXJndW1lbnQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11
cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsgeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0
aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9Owor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJz
b3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vy
c29yKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgeyBjdXJzb3IudXBkYXRlKCk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX3VwZGF0ZV9vYmpl
Y3RzdG9yZTgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYzQ2ODU3ZjAxMzY4ZDZjYzA4MWU2Y2M1MjlmM2E4OTk2YmU4NGU4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3Rv
cmUgLSB0aHJvdyBEYXRhRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlOC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ4
YzU0OTE2OWIwNTI4MjVlOGVlNmM2NjMxNjlmOTk0OTBlY2YwMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJj
dXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93
IERhdGFFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVm
PSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwt
SURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3Jp
cHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNv
cmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5
XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0
IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFu
Y2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRhRXJyb3In
LCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZShudWxsKTsgfSk7CisgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFz
ZV9jbG9zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY2xvc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjljZTE5YjNhZjZhNWQyYTU4YjU3ODhjNTFlNmZlNTAxMDgxYmYyOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZGF0YWJhc2VfY2xvc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkRhdGFiYXNlLmNsb3NlKCkgLSB1bmJsb2NrIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2Fj
dGlvbiBjcmVhdGVkIGJ5IGFuIG9wZW4gZGF0YWJhc2UgcmVxdWVzdCAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRh
dGFiYXNlX2Nsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY2xvc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmVlYjdk
MzQ4NjM2YmQ3Y2YzYjRjMzg1ZTQ3N2Q4NGE5MWVlNTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFi
YXNlX2Nsb3NlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
SURCRGF0YWJhc2UuY2xvc2UoKSAtIHVuYmxvY2sgdGhlIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0
aW9uIGNyZWF0ZWQgYnkgYW4gb3BlbiBkYXRhYmFzZSByZXF1ZXN0PC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KK3ZhciBkYjsKK3ZhciB2ZXJzaW9uY2hhbmdlX2ZpcmVkOwordmFyIGJsb2NrZWRfZmly
ZWQ7Cit2YXIgdXBncmFkZW5lZWRlZF9maXJlZDsKK3ZhciB0ID0gYXN5bmNfdGVzdCgpOwordmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKK3ZhciBjb3VudGVyID0gMDsKKworb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9CitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBkYi5vbnZlcnNpb25jaGFuZ2Ug
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHZlcnNpb25jaGFuZ2VfZmlyZWQg
PSBjb3VudGVyKys7CisgICAgfSk7CisgICAgdmFyIHJxID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KGRiLm5hbWUsIGRiLnZlcnNpb24gKyAxKTsKKyAgICBycS5vbmJsb2NrZWQgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbiAoZSkgeworICAgICAgICBibG9ja2VkX2ZpcmVkID0gY291bnRlcisrOworICAg
ICAgICBkYi5jbG9zZSgpOworICAgIH0pOworICAgIHJxLm9udXBncmFkZW5lZWRlZCA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICAgIHVwZ3JhZGVuZWVkZWRfZmlyZWQgPSBjb3Vu
dGVyKys7CisgICAgfSk7CisgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24g
KGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2ZXJzaW9uY2hhbmdlX2ZpcmVkLCAwLCAndmVy
c2lvbmNoYW5nZSBldmVudCBmaXJlZCAjJykKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9ja2Vk
X2ZpcmVkLCAxLCAnYmxvY2sgZXZlbnQgZmlyZWQgIycpCisgICAgICAgIGFzc2VydF9lcXVhbHMo
dXBncmFkZW5lZWRlZF9maXJlZCwgMiwgJ3NlY29uZCB1cGdyYWRlbmVlZGVkIGV2ZW50IGZpcmVk
ICMnKQorCisgICAgICAgIHQuZG9uZSgpOworICAgIH0pOworICAgIHJxLm9uZXJyb3IgPSBmYWls
KHQsICdVbmV4cGVjdGVkIGRhdGFiYXNlIGRlbGV0aW9uIGVycm9yJyk7Cit9OworCis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jbG9zZTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmRhdGFiYXNlX2Nsb3NlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY2Y2Vl
OWMxMzVkOWFmM2MxNjkwNTUzYWZhMDAzNGJjY2VmN2Q3NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRh
YmFzZV9jbG9zZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFi
YXNlLmNsb3NlKCkgLSB1bmJsb2NrIHRoZSBkZWxldGUgZGF0YWJhc2UgcmVxdWVzdCAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmRhdGFiYXNlX2Nsb3NlMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2Nsb3NlMi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZlY2E3NWMwNDQwZTg1ZWRmNTJiZGJkNmQ5YmMxYTJlMTJhNDczN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZGF0YWJhc2VfY2xvc2UyLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY2xvc2UoKSAtIHVuYmxvY2sgdGhlIGRlbGV0ZSBkYXRh
YmFzZSByZXF1ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIGRiOwordmFyIGJsb2Nr
ZWRfZmlyZWQgPSBmYWxzZTsKK3ZhciB2ZXJzaW9uY2hhbmdlX2ZpcmVkID0gZmFsc2U7Cit2YXIg
dCA9IGFzeW5jX3Rlc3QoKTsKK3ZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7fSk7CitvcGVuX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChl
KSB7CisgICAgICB2ZXJzaW9uY2hhbmdlX2ZpcmVkID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIHZh
ciBycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGIubmFtZSk7CisgICAgcnEu
b25ibG9ja2VkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgYmxvY2tlZF9m
aXJlZCA9IHRydWU7CisgICAgICAgIGRiLmNsb3NlKCk7CisgICAgfSk7CisgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUodmVy
c2lvbmNoYW5nZV9maXJlZCwgInZlcnNpb25jaGFuZ2UgZXZlbnQgZmlyZWQiKQorICAgICAgICBh
c3NlcnRfdHJ1ZShibG9ja2VkX2ZpcmVkLCAiYmxvY2sgZXZlbnQgZmlyZWQiKQorICAgICAgICB0
LmRvbmUoKTsKKyAgICB9KTsKKyAgICBycS5vbmVycm9yID0gZmFpbCh0LCAnVW5leHBlY3RlZCBk
YXRhYmFzZSBkZWxldGlvbiBlcnJvcicpOworfSk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUlu
ZGV4LWVtcHR5bmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3Jl
YXRlSW5kZXgtZW1wdHluYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGNiNjAwNzBjNTYz
NTQ3MjljZTJiMTYzYmEzY2Y2NDM2MTYwMGFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSBhbmQgSURC
T2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGJvdGggd2l0aCBlbXB0eSBuYW1lIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTU5N2MyZWIyMzQ5MTY5Zjk0NDkyZmI1OTc2YTZhNjIwZWNmYTNkZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0
eW5hbWUuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSBhbmQgSURC
T2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGJvdGggd2l0aCBlbXB0eSBuYW1lPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIoYXN5bmNfdGVzdCgpKQorICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICB2YXIgc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiIikKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDU7IGkrKykKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGlkeDogIm9iamVjdF8iICsgaSB9LCBp
KQorCisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCIiLCAiaWR4IikKKworICAgICAgICBzdG9y
ZS5nZXQoNCkKKyAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaWR4LCAn
b2JqZWN0XzQnLCAncmVzdWx0JykKKyAgICAgICAgfSkKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
dG9yZS5pbmRleE5hbWVzWzBdLCAiIiwgImluZGV4TmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRf
ZXF1YWxzKHN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1lcy5sZW5ndGgiKQor
ICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCIiKS5vYmplY3RTdG9yZSgiIikKKworICAgICAgICBh
c3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5h
bWVzLmxlbmd0aCIpCisKKyAgICAgICAgc3RvcmUuaW5kZXgoIiIpCisgICAgICAgICAgICAgLmdl
dCgnb2JqZWN0XzQnKQorICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5p
ZHgsICdvYmplY3RfNCcsICdyZXN1bHQnKQorICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAgICAg
ICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2M0Y2RkMWQ1ZDEyZWQxMTJmMmI1
NDRmOGFjZTFhNGEzNmMwMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5j
cmVhdGVPYmplY3RTdG9yZSgpIC0gcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBJREJPYmplY3RTdG9y
ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGE3ZjZmMWQ0ODVjNmFlOTkwMmRm
OTM4NzY4NTc2Yjk3OWMzZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURC
RGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgSURC
T2JqZWN0U3RvcmU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCks
CisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdpbnN0YW5jZXRlc3QnKQorCisgICAgYXNzZXJ0
X3RydWUob2JqU3RvcmUgaW5zdGFuY2VvZiBJREJPYmplY3RTdG9yZSwgJ2luc3RhbmNlb2YgSURC
T2JqZWN0U3RvcmUnKQorfQorCitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICB2YXIgb2JqU3RvcmUgPSBkYi50cmFuc2Fj
dGlvbignaW5zdGFuY2V0ZXN0Jykub2JqZWN0U3RvcmUoJ2luc3RhbmNldGVzdCcpCisKKyAgICBh
c3NlcnRfdHJ1ZShvYmpTdG9yZSBpbnN0YW5jZW9mIElEQk9iamVjdFN0b3JlLCAnaW5zdGFuY2Vv
ZiBJREJPYmplY3RTdG9yZScpCisgICAgdC5kb25lKCkKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlk
PWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBl
bmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZiOTVhYmZhMzUyNGYyMWJkOTM3Y2I2NjFmMWZkZmRj
N2FkZjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAw
MGVuZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNy
ZWF0ZU9iamVjdFN0b3JlKCkgLSBjcmVhdGUgMTAwMCBvYmplY3Qgc3RvcmVzLCBhZGQgb25lIGl0
ZW0gYW5kIGRlbGV0ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAt
MTAwMGVuZHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmFlNzY2MWM4NDc0NWY5NTQ4YWQxZjU0N2FlYzkwMzM3MDZkNWMwMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLmh0bWwK
QEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3Jl
YXRlT2JqZWN0U3RvcmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVjdCBzdG9yZXMsIGFkZCBvbmUgaXRl
bSBhbmQgZGVsZXRlPC90aXRsZT4KKzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
dmFyIGRiLAorICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogNjAw
MDAwfSksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgdmFyIHN0
LCBpOworICAgIGZvciAoaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgeworICAgICAgICBzdCA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJvYmplY3Rfc3RvcmVfIiArIGkpCisgICAgICAgIHN0LmFk
ZCgidGVzdCIsIDEpOworICAgIH0KKworICAgIHN0LmdldCgxKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0
LCAidGVzdCIpCisgICAgfSkKK30KK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgIGRiLmNsb3NlKCkKKyAgICB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5h
bWUpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdC5kb25lKCkKKyAgICB9Cit9
Cis8L3NjcmlwdD4KKworCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
YjdhNTdjOTZkZWEyYTJlNDllNmY0NzhhNzkwZTQ0ZGY5NDZiY2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBlbXB0
eSBuYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5h
bWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE5NDE0ZDI5YjJlYWMyMzYyMTcxODI2OWY4ODUyMjQ1ZTZhYTY3ZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUuaHRtbApAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0
bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGVtcHR5IG5hbWU8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYihhc3luY190ZXN0KCkpCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBzdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCIiKQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
NTsgaSsrKQorICAgICAgICAgICAgc3RvcmUuYWRkKCJvYmplY3RfIiArIGksIGkpCisKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0
b3JlTmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoLCAxLCAib2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQorICAgIH0KKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCIiKS5vYmplY3RTdG9yZSgiIikKKworICAgICAgICBzdG9yZS5nZXQoMikub25zdWNj
ZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsICJvYmplY3RfMiIpCisgICAgICAgIH0pCisKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0b3Jl
TmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoLCAxLCAib2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQorCisgICAgICAgIHRoaXMuZG9uZSgp
CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmN2VlYjE2NTk4MDVkMzk5MmMxMmZk
ZDRlZDBjNDliNTU4MjNhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGFuIGV4aXN0aW5nIG9i
amVjdCBzdG9yZSB3aXRoIGEgZGlmZmVyZW50IGtleVBhdGggdGhyb3cgQ29uc3RyYWludEVycm9y
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTExLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJlMjMzYTZlNjZlMTc4MDE1
OTg2YjM2ZDI5NTdlMTMwZTUxY2Y1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTExLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUo
KSAtIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGFuIGV4aXN0aW5nIG9iamVjdCBzdG9yZSB3aXRoIGEg
ZGlmZmVyZW50IGtleVBhdGggdGhyb3cgQ29uc3RyYWludEVycm9yIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRGF0YWJhc2UtY3JlYXRlT2JqZWN0U3Rv
cmUtSURCT2JqZWN0U3RvcmUtRE9NU3RyaW5nLW5hbWUtSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJz
LW9wdGlvbmFsUGFyYW1ldGVycyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdCA9IGFzeW5j
X3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgYXNzZXJ0X3Rocm93cygiQ29u
c3RyYWludEVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeworICAgICAgICAgICAga2V5UGF0aDogImtleTEiLAorICAgICAgICB9KTsKKyAg
ICB9KTsKKyAgICB0LmRvbmUoKTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZDcxNTdlZTgxMDlmZDM2NGExNjg1MDhlMzlj
YjQxN2U5ZTU2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVP
YmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlICduYW1lJyBhbmQgJ2tleVBhdGgnIHByb3BlcnRp
ZXMgYXJlIGNvcnJlY3RseSBzZXQgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U2ZDVjNTYzYWI0OWQxOGNjMjZjNWQ3NTU0MmM0Y2I5MzRjOTY2OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2Jq
ZWN0IHN0b3JlICduYW1lJyBhbmQgJ2tleVBhdGgnIHByb3BlcnRpZXMgYXJlIGNvcnJlY3RseSBz
ZXQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdCwKKyAgICAgICAgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicHJvcCIsIHsga2V5UGF0aDogIm15a2V5cGF0aCIgfSkK
KworICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUubmFtZSwgInByb3AiLCAib2JqZWN0IHN0b3Jl
IG5hbWUiKQorICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUua2V5UGF0aCwgIm15a2V5cGF0aCIs
ICJrZXkgcGF0aCIpCisgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5hdXRvSW5jcmVtZW50LCBm
YWxzZSwgImF1dG8gaW5jcmVtZW50IikKK30KKworb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgdmFyIG9ialN0b3JlID0g
ZGIudHJhbnNhY3Rpb24oJ3Byb3AnKS5vYmplY3RTdG9yZSgncHJvcCcpCisKKyAgICBhc3NlcnRf
ZXF1YWxzKG9ialN0b3JlLm5hbWUsICJwcm9wIiwgIm9iamVjdCBzdG9yZSBuYW1lIikKKyAgICBh
c3NlcnRfZXF1YWxzKG9ialN0b3JlLmtleVBhdGgsICJteWtleXBhdGgiLCAia2V5IHBhdGgiKQor
ICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuYXV0b0luY3JlbWVudCwgZmFsc2UsICJhdXRvIGlu
Y3JlbWVudCIpCisgICAgdC5kb25lKCkKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmFj
ZjljMjU4NmE2YjBhNTNhOGQ5Y2U0ZWRmMGM1YTJlYTIzZjc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRl
IGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24g
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQxMGU5MGQ4YjllYjkyNGUwNDU1
NjMwNzU3ZDNkMWQwOTI3ZDIyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmpl
Y3RTdG9yZTMuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2Jq
ZWN0IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0g
Y3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9Citv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQu
cmVzdWx0CisgICAgYXNzZXJ0X3Rocm93cygKKyAgICAgICAgJ0ludmFsaWRTdGF0ZUVycm9yJywK
KyAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmYWlscycpIH0pCisg
ICAgdC5kb25lKCk7Cit9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODIzZTllYjg1YmRj
YmVmM2RiZDEwMWEwODAxZGRkZDgzNTVhMzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
RGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVj
dCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlNC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiYzdmZmVmNWMwMmQ2MmU5MWZjNzA1ZDRhMWU5YjFhNWQ1MzdmMWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU0Lmh0bWwKQEAgLTAsMCArMSwyNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUo
KSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3Rz
IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAorICAgIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICBkYi5jcmVhdGVPYmplY3RT
dG9yZSgiZHVwZSIpCisgICAgYXNzZXJ0X3Rocm93cygKKyAgICAgICAgJ0NvbnN0cmFpbnRFcnJv
cicsCisgICAgICAgIGZ1bmN0aW9uKCkgeyBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZHVwZSIpIH0p
CisKKyAgICAvLyBCb251cyB0ZXN0IGNyZWF0aW5nIGEgbmV3IG9iamVjdHN0b3JlIGFmdGVyIHRo
ZSBleGNlcHRpb24KKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZHVwZSAiKQorICAgIHQuZG9u
ZSgpCit9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDY2MmI4M2QzMTJjMmU3MzI0MTgx
M2Y5YmZhY2FiZTVjZGE5ZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSdzIG5hbWUgYXBwZWFycyBpbiBkYXRh
YmFzZSdzIGxpc3QgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q3YTkzODkw
MzJkNDliOGYxMGQ3OWQ4ZDViOTA2ODM2NGVlNDE2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3Jl
J3MgbmFtZSBhcHBlYXJzIGluIGRhdGFiYXNlJ3MgbGlzdCA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKwor
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50
YXJnZXQucmVzdWx0CisKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiTXkgY29vbCBvYmplY3Qg
c3RvcmUgbmFtZSIpCisgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIGRiLm9iamVjdFN0b3JlTmFt
ZXMuY29udGFpbnMoIk15IGNvb2wgb2JqZWN0IHN0b3JlIG5hbWUiKSwKKyAgICAgICAgJ29iamVj
dFN0b3JlTmFtZXMuY29udGFpbnMnKQorfQorCitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgIGFzc2VydF90cnVlKAor
ICAgICAgICBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJNeSBjb29sIG9iamVjdCBzdG9y
ZSBuYW1lIiksCisgICAgICAgICdvYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zIChpbiBzdWNjZXNz
KScpCisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZGZjNGU3
MTkzNDBlYjNjOWUyNWNiOGZmYjFiYjk1YzJkYzU3YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4g
b2JqZWN0IHN0b3JlIHdpdGggYW4gaW52YWxpZCBrZXkgcGF0aCAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xZTNmNDAwODk4MTkzZjJkNDU1N2M0N2Y5ZDUwZGRiODk0ZTQ4ZWZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi5odG1sCkBAIC0w
LDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9i
amVjdFN0b3JlKCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgd2l0aCBhbiBp
bnZhbGlkIGtleSBwYXRoIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNf
dGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAg
IGFzc2VydF90aHJvd3MoJ1N5bnRheEVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgiaW52YWxpZGtleXBhdGgiLCB7IGtleVBhdGg6ICJJbnZhbGlk
IEtleXBhdGgiIH0pCisgICAgICAgIH0pCisKKyAgICBhc3NlcnRfdGhyb3dzKCdTeW50YXhFcnJv
cicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoImludmFs
aWRrZXlwYXRoIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlQYXRoOiAiSW52YWxpZCBLZXlwYXRo
IiB9KQorICAgICAgICB9KQorCisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU3MzlmOGM3OTY0OWRkNWRmYjA5YjYwNTBlZDZlYTA5MDEwYmNhMTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gY3JlYXRl
IGFuIG9iamVjdCBzdG9yZSB3aXRoIGFuIHVua25vd24gb3B0aW9uYWwgcGFyYW1ldGVyIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRl
T2JqZWN0U3RvcmU3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI2YTMwOTkwZGMzZWU2ZjEzNzY3YmRkNjUz
ZDBhYjQzNjIwNTllZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTcuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRh
YmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB3aXRoIGFu
IHVua25vd24gb3B0aW9uYWwgcGFyYW1ldGVyIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKwordmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9
KSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoIndpdGggdW5rbm93biBwYXJhbSIsIHsgcGFyYW1ldGVyOiAwIH0pOwor
CisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZWMyNmM5NGZmMmE1MTgxYTRkODkwNjE1ZTdiNjk0MjdiNjgxMjll
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJh
bWV0ZXJzIC0gYXV0b0luYyB0cnVlIAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBh
dXRvSW5jIHRydWUsIGtleVBhdGggbnVsbCAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJz
IC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIHVuZGVmaW5lZCAKK1BBU1MgSURCT2JqZWN0U3RvcmVQ
YXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIHN0cmluZyAKK1BBU1MgSURCT2JqZWN0
U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5UGF0aCBlbXB0eSAKK1BBU1MgSURC
T2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5UGF0aCBhcnJheSAKK1BB
U1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5UGF0aCBzdHJp
bmcgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggZW1wdHkgCitQQVNT
IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggYXJyYXkgCitQQVNTIElEQk9iamVj
dFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggc3RyaW5nIAorUEFTUyBJREJPYmplY3RTdG9yZVBh
cmFtZXRlcnMgLSBrZXlQYXRoIG51bGwgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAt
IGtleVBhdGggdW5kZWZpbmVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmU4LXBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVy
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQzOGM1MmM0NDhkZDcxNmRjZWE0YTRhNmJmOWIzOTQ2ZDlhM2Y0
MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRl
cnMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZVBhcmFtZXRlcnM8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBI
w7hydGhlIE9tZGFsIj4KKzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIGZ1
bmN0aW9uIG9wdGlvbmFsUGFyYW1ldGVycyhkZXNjLCBwYXJhbXMpIHsKKyAgICAgICAgdmFyIHQg
PSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICBj
cmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBl
LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgcGFyYW1zKTsKKworICAg
ICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH07CisgICAgfQorCisKKyAgICBvcHRpb25h
bFBhcmFtZXRlcnMoImF1dG9JbmMgdHJ1ZSIsICAgICAgICAgICAgICAgICAgICB7YXV0b0luY3Jl
bWVudDogdHJ1ZX0pOworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyB0cnVlLCBrZXlQ
YXRoIG51bGwiLCAgICAgIHthdXRvSW5jcmVtZW50OiB0cnVlLCAga2V5UGF0aDogbnVsbH0pOwor
ICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyB0cnVlLCBrZXlQYXRoIHVuZGVmaW5lZCIs
IHthdXRvSW5jcmVtZW50OiB0cnVlLCAga2V5UGF0aDogdW5kZWZpbmVkfSk7CisgICAgb3B0aW9u
YWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUsIGtleVBhdGggc3RyaW5nIiwgICAge2F1dG9JbmNy
ZW1lbnQ6IHRydWUsICBrZXlQYXRoOiAiYSJ9KTsKKworICAgIG9wdGlvbmFsUGFyYW1ldGVycygi
YXV0b0luYyBmYWxzZSwga2V5UGF0aCBlbXB0eSIsICB7YXV0b0luY3JlbWVudDogZmFsc2UsIGtl
eVBhdGg6ICIifSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGZhbHNlLCBrZXlQ
YXRoIGFycmF5IiwgIHthdXRvSW5jcmVtZW50OiBmYWxzZSwga2V5UGF0aDogWyJoIiwgImoiXX0p
OworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBmYWxzZSwga2V5UGF0aCBzdHJpbmci
LCB7YXV0b0luY3JlbWVudDogZmFsc2UsIGtleVBhdGg6ICJhYmMifSk7CisKKyAgICBvcHRpb25h
bFBhcmFtZXRlcnMoImtleVBhdGggZW1wdHkiLCAgICAge2tleVBhdGg6ICIifSk7CisgICAgb3B0
aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIGFycmF5IiwgICAgIHtrZXlQYXRoOiBbImEiLCJiIl19
KTsKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggc3RyaW5nIiwgICAge2tleVBhdGg6
ICJhYmMifSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIG51bGwiLCAgICAgIHtr
ZXlQYXRoOiBudWxsfSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIHVuZGVmaW5l
ZCIsIHtrZXlQYXRoOiB1bmRlZmluZWR9KTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJh
bWV0ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBh
cmFtZXRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZDViYmI3ZWMwNGRhY2ZjODA5ZDU0
OWIxOTk2N2RkZDU2YzQ3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKwor
UEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25hbFBhcmFtZXRlcnMgLSBhdXRv
SW5jIGFuZCBlbXB0eSBrZXlQYXRoIAorUEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBv
cHRpb25hbFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFuZCBrZXlQYXRoIGFycmF5IAorUEFTUyBjcmVh
dGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25hbFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFuZCBr
ZXlQYXRoIGFycmF5IDIgCitQQVNTIGNyZWF0ZU9iamVjdFN0b3JlOiBJbnZhbGlkIG9wdGlvbmFs
UGFyYW1ldGVycyAtIGF1dG9JbmMgYW5kIGtleVBhdGggb2JqZWN0IAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU2
MjVlMjQ4NDkzMWFjMjAwODBkMzA5NjRhZThlZjAwNWU0ODAyMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMuaHRtbApAQCAtMCww
ICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+
Y3JlYXRlT2JqZWN0U3RvcmU6IEludmFsaWQgb3B0aW9uYWxQYXJhbWV0ZXJzPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVy
cyhkZXNjLCBwYXJhbXMpIHsKKyAgICAgICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCBwYXJhbXMpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMu
ZG9uZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGludmFsaWRfb3B0aW9uYWxQYXJhbWV0
ZXJzKCJhdXRvSW5jIGFuZCBlbXB0eSBrZXlQYXRoIiwge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtl
eVBhdGg6ICIifSk7CisgICAgaW52YWxpZF9vcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgYW5k
IGtleVBhdGggYXJyYXkiLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogW119KTsKKyAg
ICBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQga2V5UGF0aCBhcnJheSAy
Iiwge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6IFsiaGV5Il19KTsKKyAgICBpbnZhbGlk
X29wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQga2V5UGF0aCBvYmplY3QiLCB7YXV0b0lu
Y3JlbWVudDogdHJ1ZSwga2V5UGF0aDoge2E6ImhleSIsIGI6Mn19KTsKKworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3Jl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWU1NmEwOTk2NzRjMzEwZjE1YTY3MmY1MzZkMDY1MWY0OWJjYmMwNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIG9iamVj
dCBzdG9yZSdzIG5hbWUgaXMgcmVtb3ZlZCBmcm9tIGRhdGFiYXNlJ3MgbGlzdCAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVj
dFN0b3JlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3ZmMwZTY1NWVjYWM1MjdiM2VhYzMzOTczNDAzMzU1
OTIyNmE2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS5odG1s
CkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLmRl
bGV0ZU9iamVjdFN0b3JlKCkgLSBvYmplY3Qgc3RvcmUncyBuYW1lIGlzIHJlbW92ZWQgZnJvbSBk
YXRhYmFzZSdzIGxpc3QgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190
ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorCisgICAg
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoImRlbGV0ZWQiKTsKKyAgICBkYi5kZWxldGVPYmplY3RTdG9y
ZSgiZGVsZXRlZCIpOworICAgIGFzc2VydF9mYWxzZShkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRh
aW5zKCJkZWxldGVkIikpCisKKyAgICB0LmRvbmUoKQorfQorCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmRjN2Q2MjMzNWQxMmE3MjI2MjA5Y2Y4ZTIwZTIyOTUwODJkZGFlMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBhdHRlbXB0
IHRvIHJlbW92ZSBhbiBvYmplY3Qgc3RvcmUgb3V0c2lkZSBvZiBhIHZlcnNpb24gY2hhbmdlIHRy
YW5zYWN0aW9uICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0YTg3ZWNiOWQw
ZTkxYjYzNWI0ZTZjMDY4MzllMDUxOWJmZTBhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2Vf
ZGVsZXRlT2JqZWN0U3RvcmUyLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVt
b3ZlIGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rp
b24gPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpCit7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIpOworCisgICAgZS50YXJn
ZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKQorICAg
IHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgICAg
ICAgZnVuY3Rpb24oKSB7IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIpOyB9
KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorCisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3Jl
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYzRlNmU2NGMyOTIzMzU3YTllZDg1MzIyYzM3ZWM4YTI5YjFiN2JlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0
dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGRvZXMgbm90IGV4aXN0ICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0OTdjMTY5ZTU5YWYxMzIxNGE3MDY5ZWNk
ZmY2OTA1YmI5MzI5NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3Rv
cmUzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0
YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBz
dG9yZSB0aGF0IGRvZXMgbm90IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0
ID0gYXN5bmNfdGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKQoreworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICBhc3NlcnRfdGhyb3dzKCdOb3RGb3VuZEVycm9yJywKKyAgICAgICAgZnVuY3Rp
b24oKSB7IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCd3aGF0ZXZlcicpOyB9KTsKKyAgICB0LmRvbmUo
KTsKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0
YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNl
X2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YWNkMTYyN2UxZGIyMTExZTgyY2I3NjA0YWJmOTVmNTkwZDZmYjZkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gdGhl
IG9iamVjdCBzdG9yZSBpcyBub3QgcmV1c2VkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVsZXRl
T2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQt
bm90X3JldXNlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkYTc4OWE2NGZhNjMwMTBhNDQ1ZjAxM2Y2ZmJm
NTFlMTYyYTc1NGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0
LW5vdF9yZXVzZWQuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAt
IHRoZSBvYmplY3Qgc3RvcmUgaXMgbm90IHJldXNlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAw
fSksCisgICAga2V5cyA9IFtdLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5y
ZXN1bHQKKworICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJyZXN1cnJl
Y3RlZCIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogImsiIH0pOworICAgIG9ialN0
b3JlLmFkZCh7azo1fSkub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeyBrZXlzLnB1c2goZS50YXJn
ZXQucmVzdWx0KTsgfQorICAgIG9ialN0b3JlLmFkZCh7fSkub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeyBrZXlzLnB1c2goZS50YXJnZXQucmVzdWx0KTsgfQorICAgIG9ialN0b3JlLmNyZWF0ZUlu
ZGV4KCJpZHgiLCAiaSIpOworICAgIGFzc2VydF90cnVlKG9ialN0b3JlLmluZGV4TmFtZXMuY29u
dGFpbnMoImlkeCIpKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmtleVBhdGgsICJrIiwg
ImtleVBhdGgiKTsKKworICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJyZXN1cnJlY3RlZCIpOwor
CisgICAgdmFyIG9ialN0b3JlMiA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJyZXN1cnJlY3RlZCIs
IHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICBvYmpTdG9yZTIuYWRkKCJVbmljb3JucydS
J3VzIikub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeyBrZXlzLnB1c2goZS50YXJnZXQucmVzdWx0
KTsgfTsKKyAgICBhc3NlcnRfZmFsc2Uob2JqU3RvcmUyLmluZGV4TmFtZXMuY29udGFpbnMoImlk
eCIpLCAiaW5kZXggZXhpc3Qgb24gbmV3IG9ianN0b3JlIik7CisgICAgYXNzZXJ0X2VxdWFscyhv
YmpTdG9yZTIua2V5UGF0aCwgbnVsbCwgImtleVBhdGgiKTsKKworICAgIGFzc2VydF90aHJvd3Mo
Ik5vdEZvdW5kRXJyb3IiLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUyLmluZGV4KCJpZHgiKTsgfSk7
Cit9CisKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoa2V5cywgWzUsIDYsIDFdLCAia2V5cyIpOworICAgIHQuZG9uZSgpOworfQorCis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFu
c2FjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmNTA2YTdhNGU1NjFjZWRiODQ4NTAxYzk5ZGUyY2EwMjAxMjAyYjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4g
YSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgc2NvcGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90
cmFuc2FjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhj
MmM5ZjU5NGI0MzI0ZDYxZWY0MTIwYjQ2MzQ5NTc1NDAzNDRiMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJk
YXRhYmFzZV90cmFuc2FjdGlvbi5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0
cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgc2NvcGU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2
YXIgZGIsCisgIHQgPSBhc3luY190ZXN0KCksCisgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKwor
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9Oworb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICBhc3Nl
cnRfdGhyb3dzKCdOb3RGb3VuZEVycm9yJywgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCdu
b24tZXhpc3RpbmcnKTsgfSk7CisgICAgdC5kb25lKCk7Cit9OworCis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY1
MTc3MmJlNjM4YzMzYTJjM2I4YTZhOGU1ZTc3OTMwZDljZWU5ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJk
YXRhYmFzZV90cmFuc2FjdGlvbjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBvcGVuaW5nIGEgdHJhbnNhY3Rpb24gZGVmYXVs
dHMgdG8gYSByZWFkLW9ubHkgbW9kZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlv
bjIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTJlNDI3YjAy
NzEwNmEzZGM4OGJlZGU0OWUxNGI0NjMwMzU1ZWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNl
X3RyYW5zYWN0aW9uMi5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBvcGVuaW5nIGEgdHJhbnNhY3Rpb24gZGVm
YXVsdHMgdG8gYSByZWFkLW9ubHkgbW9kZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIg
ZGIsCisgIHQgPSBhc3luY190ZXN0KCksCisgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3JlYWRvbmx5Jyk7Cit9Oworb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9u
KCdyZWFkb25seScpOworICAgIGFzc2VydF9lcXVhbHModHhuLm1vZGUsICJyZWFkb25seSIsICd0
eG4ubW9kZScpOworCisgICAgdC5kb25lKCk7Cit9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVhZTQzYjEw
OWQ2NjE2NmNkMjAwZmYxY2Q0ZWM5YzNiNTIzMjJmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFz
ZV90cmFuc2FjdGlvbjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRh
dGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiBmcm9t
IGNsb3NlZCBkYXRhYmFzZSBjb25uZWN0aW9uICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uMy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwODdh
ZWNjOGRlZWEwOGYyN2YzYWM1OWI2ZTRkNTRlMDBjZjAzMGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0
YWJhc2VfdHJhbnNhY3Rpb24zLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBhIHRy
YW5zYWN0aW9uIGZyb20gY2xvc2VkIGRhdGFiYXNlIGNvbm5lY3Rpb24gPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgndGVzdCcpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIuY2xvc2UoKTsKKworICAgICAgICBhc3NlcnRfdGhy
b3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgZGIudHJh
bnNhY3Rpb24oJ3Rlc3QnKTsgfSk7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5zYWN0
aW9uNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yOGQxYmU2Y2QyZjExZWRlZTkxY2IxZDMzZDU2YjNkODllZjhlNTBkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBh
IHRyYW5zYWN0aW9uIHdpdGggaW52YWxpZCBtb2RlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJh
bnNhY3Rpb240Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEy
MGYwNzlkYmYwY2Q0MjdkOTdjMDE3MmViN2M0ZGVhZTc0ZDM2OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJk
YXRhYmFzZV90cmFuc2FjdGlvbjQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5JREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVuIGEg
dHJhbnNhY3Rpb24gd2l0aCBpbnZhbGlkIG1vZGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7
dGltZW91dDogMTAwMDB9KSwKKyAgICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKTsKKyAgICB9
OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2Vy
dF90aHJvd3MoeyBuYW1lOiAnVHlwZUVycm9yJyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IGRiLnRyYW5zYWN0aW9uKCd0ZXN0JywgJ3doYXRldmVyJyk7IH0pOworCisgICAgICAgIHQuZG9u
ZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9u
NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFjNzI4M2NlNmRjZTEyMjllNzYzMTBiNjM1ZmZm
NTVjYWI2NmE4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkg
LSBJZiBzdG9yZU5hbWVzIGlzIGFuIGVtcHR5IGxpc3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0
IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZEFjY2Vzc0Vycm9yIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2VmNmQyYTQwZTdhODQ5ZTlhNjE4ODk4NTQ3ZTIwZjRjZjk2ZmIwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUuaHRtbApAQCAtMCwwICsxLDIy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJE
YXRhYmFzZS50cmFuc2FjdGlvbigpIC0gSWYgc3RvcmVOYW1lcyBpcyBhbiBlbXB0eSBsaXN0LCB0
aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFs
aWRBY2Nlc3NFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCRGF0YWJhc2UtdHJhbnNhY3Rpb24tSURCVHJhbnNhY3Rpb24tRE9NU3RyaW5nLXNlcXVl
bmNlLURPTVN0cmluZy0tc3RvcmVOYW1lcy1JREJUcmFuc2FjdGlvbk1vZGUtbW9kZSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZGIsCisgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
KSB7fTsKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJvcicsIGZ1bmN0
aW9uKCkgeyBkYi50cmFuc2FjdGlvbihbXSk7IH0pOworICAgIHQuZG9uZSgpOworfTsKKzwvc2Ny
aXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9jbXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfY21wLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2QwNGFiMjViOWVkNzhkNjcyYThmMzllOTA0NDUxYjhj
NDg5YTYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfY21wLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5LmNtcCgpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9j
bXAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJmYWN0b3J5X2NtcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MGE5YzFiY2UyNWQ4YjY4NDZm
NTAwMDk0YzhjMDc3MDFjNWM0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9jbXAuaHRtbApA
QCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+SURCRmFjdG9yeS5jbXAoKSAtIGNvbXBhcmVkIGtleXMgcmV0dXJuIGNvcnJlY3QgdmFs
dWU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5q
cz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2
YXIgZ3JlYXRlciA9IHdpbmRvdy5pbmRleGVkREIuY21wKDIsIDEpOworICAgICAgICB2YXIgZXF1
YWwgPSB3aW5kb3cuaW5kZXhlZERCLmNtcCgyLCAyKTsKKyAgICAgICAgdmFyIGxlc3MgPSB3aW5k
b3cuaW5kZXhlZERCLmNtcCgxLCAyKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGdyZWF0ZXIs
IDEsICJncmVhdGVyIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZXF1YWwsIDAsICJlcXVhbCIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGxlc3MsIC0xLCAibGVzcyIpOworICAgIH0sICJJREJG
YWN0b3J5LmNtcCgpIik7Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZmFjdG9yeV9jbXAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X2NtcDItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzMzA3NzIzOGJiYmNlZjM1YTk5OTYyYmIzZDY4YTIwNDJlNTQ4NWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiZmFjdG9yeV9jbXAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKwor
UEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gbm8gYXJndW1lbnQgCitQQVNTIElEQkZhY3RvcnkuY21w
KCkgLSBudWxsIAorUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gTmFOIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFj
dG9yeV9jbXAyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9jbXAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkzOWRkMmQzMTQz
OGQwMjllZjM2YmY1ZTk0ZTI3MjYzYzA3OTllZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X2Nt
cDIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJGYWN0b3J5LmNtcCgpIC0gaW52YWxpZCBrZXk8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkZhY3RvcnktY21wLXNob3J0
LWFueS1maXJzdC1hbnktc2Vjb25kIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorICAgIHRlc3QoIGZ1bmN0
aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpbmRleGVkREIuY21wKCk7CisgICAgICAgIH0pOworICAgIH0sICJJ
REJGYWN0b3J5LmNtcCgpIC0gbm8gYXJndW1lbnQiKTsKKworICAgIHRlc3QoIGZ1bmN0aW9uKCkg
eworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGluZGV4ZWREQi5jbXAobnVsbCwgbnVsbCk7CisgICAgICAgIH0pOworICAgICAgICBh
c3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4
ZWREQi5jbXAoMSwgbnVsbCk7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJE
YXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4ZWREQi5jbXAobnVsbCwg
MSk7CisgICAgICAgIH0pOworICAgIH0sICJJREJGYWN0b3J5LmNtcCgpIC0gbnVsbCIpOworCisg
ICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5kZXhlZERCLmNtcChOYU4sIE5hTik7CisgICAg
ICAgIH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGluZGV4ZWREQi5jbXAoMSwgTmFOKTsKKyAgICAgICAgfSk7CisgICAgICAg
IGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5k
ZXhlZERCLmNtcChOYU4sIDEpOworICAgICAgICB9KTsKKyAgICB9LCAiSURCRmFjdG9yeS5jbXAo
KSAtIE5hTiIpOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NTRiZWU1YjRiMTQ1ZmYyYTNiNzY3ZjQxZTdjYmQ5OWIyMGY0YTQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJlcXVlc3QgaGFzIG5vIHNv
dXJjZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMjhhMTFiYTI0YWY4ZmViOTliZjE0NTRm
MGE4ZDgwNGI3Y2FmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnku
ZGVsZXRlRGF0YWJhc2UoKSAtIHJlcXVlc3QgaGFzIG5vIHNvdXJjZSA8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVk
LCA5KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307Cisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgZGVsZXRl
X3JxID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYi5uYW1lKTsKKyAgICAgICAg
ZGVsZXRlX3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4cGVjdGVkIGRlbGV0ZV9ycS5lcnJv
ciBldmVudCIpOworICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMo
IGZ1bmN0aW9uIChlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnNvdXJj
ZSwgbnVsbCwgImV2ZW50LnRhcmdldC5zb3VyY2UiKQorICAgICAgICAgICAgdGhpcy5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxl
dGVEYXRhYmFzZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NzU0MTBlZWU3YjJiOTdmMzQw
MjRjNjA3Y2UwZmRhNzYyYTgwOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxldGVEYXRh
YmFzZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3RvcnkuZGVs
ZXRlRGF0YWJhc2UoKSAtIHJlc3VsdCBvZiB0aGUgcmVxdWVzdCBpcyBzZXQgdG8gdW5kZWZpbmVk
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X2RlbGV0
ZURhdGFiYXNlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiOGE0NGFkM2QwZGJhM2NhOTE3ODAyN2Y2ZTc5
NTcyZWY1NWI0YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIuaHRt
bApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5LmRl
bGV0ZURhdGFiYXNlKCkgLSByZXN1bHQgb2YgdGhlIHJlcXVlc3QgaXMgc2V0IHRvIHVuZGVmaW5l
ZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNz
LnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJG
YWN0b3J5LWRlbGV0ZURhdGFiYXNlLUlEQk9wZW5EQlJlcXVlc3QtRE9NU3RyaW5nLW5hbWUiPgor
PG1ldGEgbmFtZT1hc3NlcnQgdGl0bGU9IklmIHRoZSBzdGVwcyBhYm92ZSBhcmUgc3VjY2Vzc2Z1
bCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3Qgc2V0IHRoZSByZXN1bHQgb2YgdGhlIHJlcXVlc3Qg
dG8gdW5kZWZpbmVkIGFuZCBmaXJlIGEgc3VjY2VzcyBldmVudCBhdCB0aGUgcmVxdWVzdC4iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCA5KTsK
KworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307CisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgZGVsZXRlX3JxID0g
d2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYi5uYW1lKTsKKyAgICAgICAgZGVsZXRl
X3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4cGVjdGVkIGRlbGV0ZV9ycS5lcnJvciBldmVu
dCIpOworICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoIGZ1bmN0
aW9uIChlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5k
ZWZpbmVkLCAicmVzdWx0Iik7CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfSk7
CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFj
dG9yeV9kZWxldGVEYXRhYmFzZTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2Uz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjY4ZGRhZDczYWMzZTEwYzhlYTU3NzExNTNmNTUz
MTg2ZjU2YzNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNl
KCkgLSBzdWNjZXNzIGV2ZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyM2VhY2QyMGY2
MDAyMmQxNTA0OTRlZDFiOWQyYjQ1Zjc5ODQ2ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZTMuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSBzdWNjZXNzIGV2ZW50PC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRmFj
dG9yeS1kZWxldGVEYXRhYmFzZS1JREJPcGVuREJSZXF1ZXN0LURPTVN0cmluZy1uYW1lIj4KKzxt
ZXRhIG5hbWU9YXNzZXJ0IHRpdGxlPSJJZiB0aGUgc3RlcHMgYWJvdmUgYXJlIHN1Y2Nlc3NmdWws
IHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHNldCB0aGUgcmVzdWx0IG9mIHRoZSByZXF1ZXN0IHRv
IHVuZGVmaW5lZCBhbmQgZmlyZSBhIHN1Y2Nlc3MgZXZlbnQgYXQgdGhlIHJlcXVlc3QuIFRoZSBl
dmVudCBtdXN0IGltcGxlbWVudCB0aGUgSURCVmVyc2lvbkNoYW5nZUV2ZW50IGludGVyZmFjZSBh
bmQgaGF2ZSBvbGRWZXJzaW9uIHNldCB0byBkYXRhYmFzZSB2ZXJzaW9uIGFuZCBoYXZlIHRoZSBu
ZXdWZXJzaW9uIHByb3BlcnR5IHNldCB0byBudWxsLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAw
MH0pLCB1bmRlZmluZWQsIDkpCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ29zJykKKyAgICB9CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiLmNsb3NlKCkKKworICAgICAgICB2YXIgZGVsZXRlX3JxID0gd2lu
ZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYi5uYW1lKQorICAgICAgICBkZWxldGVfcnEu
b25lcnJvciA9IGZhaWwodGhpcywgIlVuZXhwZWN0ZWQgZGVsZXRlX3JxLmVycm9yIGV2ZW50IikK
KyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKCBmdW5jdGlvbiAo
ZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDksICJvbGRWZXJz
aW9uIikKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCBudWxsLCAibmV3
VmVyc2lvbiIpCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5k
ZWZpbmVkLCAicmVzdWx0IikKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQsICJlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50
IikKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAgIH0pCisgICAgfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGE3OWEzYjkzMzk0YzYwYjdlODE5OTEyYWUxNmIzYjU0OTI3NjhkMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKK1BBU1MgRGVsZXRlIGFuIGV4aXN0aW5nIGRhdGFiYXNlIAorUEFTUyBEZWxldGUgYSBu
b25leGlzdGFudCBkYXRhYmFzZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDg0ZWU3ZWM2
MWYyZGI5MjZiM2M1YzMyZDhlMWE2Y2NiMjhhNTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlf
ZGVsZXRlRGF0YWJhc2U0Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+VGVzdCBldmVudHMgb3BlbmluZyBhIHNlY29uZCBkYXRhYmFzZSB3aGVuIG9uZSBjb25u
ZWN0aW9uIGlzIG9wZW4gYWxyZWFkeTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiRGVsZXRlIGFu
IGV4aXN0aW5nIGRhdGFiYXNlIik7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHZhciBvcGVucnEgPSBpbmRleGVkREIub3BlbignZGInLCAzKTsKKworICAgICAgICBvcGVucnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZS50YXJnZXQucmVz
dWx0LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOworICAgICAgICB9OworICAgICAgICBvcGVu
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAg
ZGIub252ZXJzaW9uY2hhbmdlID0gZmFpbCh0LCAiZGIudmVyc2lvbmNoYW5nZSIpOworICAgICAg
ICAgICAgZGIub25lcnJvciA9IGZhaWwodCwgImRiLmVycm9yIik7CisgICAgICAgICAgICBkYi5h
Ym9ydCA9IGZhaWwodCwgImRiLmFib3J0Iik7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodC5z
dGVwX2Z1bmMoU2Vjb25kKSwgNCk7CisgICAgICAgICAgICBkYi5jbG9zZSgpOworICAgICAgICB9
KTsKKworICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBmYWlsKHQs
ICJvcGVuLmVycm9yIik7CisgICAgICAgIG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVu
LmJsb2NrZWQiKTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIFNlY29uZChlKSB7CisgICAgICAg
IHZhciBkZWxldGVycSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKKworICAgICAg
ICBkZWxldGVycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7IHQuZG9uZSgpOyB9CisKKyAgICAg
ICAgZGVsZXRlcnEub25lcnJvciA9IGZhaWwodCwgImRlbGV0ZS5lcnJvciIpOworICAgICAgICBk
ZWxldGVycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJkZWxldGUuYmxvY2tlZCIpOworICAgICAgICBk
ZWxldGVycS5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHQsICJkZWxldGUudXBncmFkZW5lZWRlZCIp
OworICAgIH0KKworICAgIGFzeW5jX3Rlc3QoIkRlbGV0ZSBhIG5vbmV4aXN0YW50IGRhdGFiYXNl
Iikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkZWxldGVycSA9IGluZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZSgnbm9uZXhpc3RhbnQnKTsKKworICAgICAgICBkZWxldGVycS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7IHRoaXMuZG9uZSgpOyB9KTsKKworICAg
ICAgICBkZWxldGVycS5vbmVycm9yID0gZmFpbCh0aGlzLCAiZGVsZXRlLmVycm9yIik7CisgICAg
ICAgIGRlbGV0ZXJxLm9uYmxvY2tlZCA9IGZhaWwodGhpcywgImRlbGV0ZS5ibG9ja2VkIik7Cisg
ICAgICAgIGRlbGV0ZXJxLm9udXBncmFkZW5lZWRlZCA9IGZhaWwodGhpcywgImRlbGV0ZS51cGdy
YWRlbmVlZGVkIik7CisgICAgfSk7CisKKzwvc2NyaXB0PgorPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZmFjdG9yeV9vcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU5ZTk1NjVkZTNhMGU1NjMyOTQ0ODhhOTBmOTA5NDRmMjgzMWY0NzcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiZmFjdG9yeV9vcGVuLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJGYWN0b3J5Lm9wZW4oKSAtIHJlcXVlc3QgaGFzIG5vIHNvdXJjZSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmZhY3Rvcnlfb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3Blbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjOTVlMGVh
MDExMDQ1YjI0NjJkODVhZGY5ODNkNmY1ZjkwMmU4ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9y
eV9vcGVuLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURC
RmFjdG9yeS5vcGVuKCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2U8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCA5
KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307CisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQuc291cmNlLCBudWxsLCAic291cmNlIikKKyAgICAgICAgdGhpcy5kb25lKCk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rv
cnlfb3BlbjEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzc3NTZjNDIxYjRkMDI0Y2YwMjY1YzBhYjIyZjVmMmViMTA5YjU5MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJmYWN0b3J5X29wZW4xMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvciBpbiB1cGdyYWRlbmVlZGVkIHJlc2V0cyBkYiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjEwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuMTAuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MDljYjJiNjZhM2FkMTZkMTlmZGU5ZTkwMDBiODYyZWIyNzRhOTg3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjEwLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvciBpbiB1cGdyYWRlbmVlZGVk
IHJlc2V0cyBkYjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCBkYjI7
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7
dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVkLCA5KTsKKworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICB2YXIgc3QgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAg
c3QuY3JlYXRlSW5kZXgoImluZGV4IiwgImkiKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGRi
LnZlcnNpb24sIDksICJmaXJzdCBkYi52ZXJzaW9uIik7CisgICAgICAgIGFzc2VydF90cnVlKGRi
Lm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJvYmplY3RTdG9yZU5hbWVzIGNv
bnRhaW5zIHN0b3JlIik7CisgICAgICAgIGFzc2VydF90cnVlKHN0LmluZGV4TmFtZXMuY29udGFp
bnMoImluZGV4IiksICJpbmRleE5hbWVzIGNvbnRhaW5zIGluZGV4Iik7CisKKyAgICAgICAgc3Qu
YWRkKHtpOiAiSm9zaHVhIn0sIDEpOworICAgICAgICBzdC5hZGQoe2k6ICJKb25hcyJ9LCAyKTsK
KyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
Yi5jbG9zZSgpOworICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4o
ZGIubmFtZSwgMTApOworICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgIGRiMi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUyIik7CisKKyAgICAg
ICAgICAgIHZhciBzdG9yZSA9IG9wZW5fcnEyLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCisgICAgICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgyIiwgImkiKTsKKworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgMTAsICJkYjIudmVyc2lvbiIpOwor
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygi
c3RvcmUiKSwgInNlY29uZCBvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7CisgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUy
IiksICJzZWNvbmQgb2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9yZTIiKTsKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKHN0b3JlLmluZGV4TmFtZXMuY29udGFpbnMoImluZGV4IiksICJzZWNv
bmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRleCIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
c3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgyIiksICJzZWNvbmQgaW5kZXhOYW1lcyBj
b250YWlucyBpbmRleDIiKTsKKworICAgICAgICAgICAgc3RvcmUuYWRkKHtpOiAiT2RpbiJ9LCAz
KTsKKyAgICAgICAgICAgIHN0b3JlLnB1dCh7aTogIlNpY2tpbmcifSwgMik7CisKKyAgICAgICAg
ICAgIG9wZW5fcnEyLnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAgIH0pOworICAgICAgICBv
cGVuX3JxMi5vbmVycm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgOSwgImRiMi52ZXJzaW9uIGFmdGVyIGVycm9y
Iik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUgYWZ0ZXIgZXJyb3Ii
KTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cygic3RvcmUyIiksICJvYmplY3RTdG9yZU5hbWVzIG5vdCBjb250YWlucyBzdG9yZTIgYWZ0ZXIg
ZXJyb3IiKTsKKworICAgICAgICAgICAgdmFyIG9wZW5fcnEzID0gd2luZG93LmluZGV4ZWREQi5v
cGVuKGRiLm5hbWUpOworICAgICAgICAgICAgb3Blbl9ycTMub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBkYjMgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjMub2JqZWN0U3RvcmVOYW1l
cy5jb250YWlucygic3RvcmUiKSwgInRoaXJkIG9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3Rv
cmUiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGIzLm9iamVjdFN0b3JlTmFtZXMu
Y29udGFpbnMoInN0b3JlMiIpLCAidGhpcmQgb2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9y
ZTIiKTsKKworICAgICAgICAgICAgICAgIHZhciBzdCA9IGRiMy50cmFuc2FjdGlvbigic3RvcmUi
KS5vYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGIzLnZlcnNpb24sIDksICJkYjMudmVyc2lvbiIpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0
X3RydWUoc3QuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgiKSwgInRoaXJkIGluZGV4TmFtZXMg
Y29udGFpbnMgaW5kZXgiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc3QuaW5kZXhO
YW1lcy5jb250YWlucygiaW5kZXgyIiksICJ0aGlyZCBpbmRleE5hbWVzIGNvbnRhaW5zIGluZGV4
MiIpOworCisgICAgICAgICAgICAgICAgc3Qub3BlbkN1cnNvcihudWxsLCAicHJldiIpLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAyLCAib3BlbmN1cnNvcihwcmV2KSBr
ZXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQu
dmFsdWUuaSwgIkpvbmFzIiwgIm9wZW5jdXJzb3IocHJldikgdmFsdWUiKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBzdC5nZXQoMykub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0KDMpIik7CisgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgICAgICB2YXIgaWR4ID0gc3QuaW5kZXgoImluZGV4Iik7CisgICAgICAg
ICAgICAgICAgaWR4LmdldEtleSgiSm9uYXMiKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
cmVzdWx0LCAyLCAiZ2V0S2V5KEpvbmFzKSIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGlkeC5nZXRLZXkoIk9kaW4iKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
cmVzdWx0LCB1bmRlZmluZWQsICJnZXRLZXkoT2RpbikiKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBpZHguZ2V0S2V5KCJTaWNraW5nIikub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0S2V5KFNpY2tpbmcpIik7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjEx
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjVhY2I3YWNmOTZkY2E4MzhjNWY4MTg4ZThkOTIw
OWQ3NWI1ZDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjExLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIHNlY29uZCBvcGVuJ3Mg
dHJhbnNhY3Rpb24gaXMgYXZhaWxhYmxlIHRvIGdldCBvYmplY3RTdG9yZXMgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJmYWN0b3J5X29wZW4xMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjExLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ0
NjViYjUyMzNkODM4ODcxOWY5NjNkMjI5OTE1ODVkMmI1ZDdiYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJm
YWN0b3J5X29wZW4xMS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkZhY3Rvcnkub3BlbigpIC0gc2Vjb25kIG9wZW4ncyB0cmFuc2FjdGlvbiBpcyBhdmFp
bGFibGUgdG8gZ2V0IG9iamVjdFN0b3JlczwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgdmFyIGRiOworICAgIHZhciBjb3VudF9kb25lID0gMDsKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKTsKKwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3Rv
cmUiKSwgIm9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUiKTsKKworICAgICAgICB2YXIg
c3RvcmUgPSBlLnRhcmdldC50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5uYW1lLCAic3RvcmUiLCAic3RvcmUubmFtZSIpOworCisg
ICAgICAgIHN0b3JlLmFkZCgiZGF0YSIsIDEpOworCisgICAgICAgIHN0b3JlLmNvdW50KCkub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEsICJjb3VudCgpIik7CisgICAgICAgICAgICBjb3Vu
dF9kb25lKys7CisgICAgICAgIH0pOworCisgICAgICAgIHN0b3JlLmFkZCgiZGF0YTIiLCAyKTsK
KyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2
YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5uYW1lLCAic3RvcmUiLCAic3RvcmUubmFtZSIp
OworICAgICAgICBzdG9yZS5jb3VudCgpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAyLCAi
Y291bnQoKSIpOworICAgICAgICAgICAgY291bnRfZG9uZSsrOworICAgICAgICB9KTsKKyAgICAg
ICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oZGIubmFtZSwgMTApOworICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgZGIyID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGIyLm9iamVjdFN0b3JlTmFtZXMu
Y29udGFpbnMoInN0b3JlIiksICJvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7Cisg
ICAgICAgICAgICB2YXIgc3RvcmUgPSBvcGVuX3JxMi50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgi
c3RvcmUiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUubmFtZSwgInN0b3JlIiwg
InN0b3JlLm5hbWUiKTsKKworICAgICAgICAgICAgc3RvcmUuYWRkKCJkYXRhMyIsIDMpOworCisg
ICAgICAgICAgICBzdG9yZS5jb3VudCgpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwg
MywgImNvdW50KCkiKTsKKyAgICAgICAgICAgICAgICBjb3VudF9kb25lKys7CisKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50X2RvbmUsIDMsICJjb3VudF9kb25lIik7CisgICAg
ICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5
X29wZW4xMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuMTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ5MWJiMjdmNWFmYTg2N2FhYjEwMDc1MzdjM2M3YTJjZmUyYzVkNmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiZmFjdG9yeV9vcGVuMTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IElEQkZhY3Rvcnkub3BlbigpIC0gdXBncmFkZW5lZWRlZCBnZXRzIFZlcnNpb25DaGFuZ2VFdmVu
dCAKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSB1cGdyYWRlbmVlZGVkIGdldHMgVmVyc2lvbkNo
YW5nZUV2ZW50IC0gc2Vjb25kIHVwZ3JhZGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3Rvcnlfb3BlbjEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUwN2Q0MDBhOGM2N2UzYmI5NTRi
ZmRiMjgxNzFlZjIzODdjNGUyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4xMi5odG1s
CkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3Bl
bigpIC0gdXBncmFkZW5lZWRlZCBnZXRzIFZlcnNpb25DaGFuZ2VFdmVudDwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiOworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksIHVuZGVmaW5lZCwg
OSk7CisgICAgdmFyIG9wZW4yX3QgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHNl
Y29uZCB1cGdyYWRlIik7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgYXNzZXJ0X3Ry
dWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUgaW5zdGFuY2VvZiBJREJW
ZXJzaW9uQ2hhbmdlRXZlbnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24s
IDAsICJvbGRWZXJzaW9uIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA5
LCAibmV3VmVyc2lvbiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgInVwZ3JhZGVu
ZWVkZWQiLCAiZXZlbnQgdHlwZSIpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIudmVyc2lv
biwgOSwgImRiLnZlcnNpb24iKTsKKyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgRXZlbnQsICJlIGlu
c3RhbmNlb2YgRXZlbnQiKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGUgaW5zdGFuY2VvZiBJREJW
ZXJzaW9uQ2hhbmdlRXZlbnQsICJlIG5vdCBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVu
dCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgInN1Y2Nlc3MiLCAiZXZlbnQgdHlw
ZSIpOworICAgICAgICB0aGlzLmRvbmUoKTsKKworCisgICAgICAgIC8qKgorICAgICAgICAgKiBT
ZWNvbmQgdGVzdAorICAgICAgICAgKi8KKyAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gZnVu
Y3Rpb24oKSB7IGRiLmNsb3NlKCk7IH07CisKKyAgICAgICAgdmFyIG9wZW5fcnEyID0gY3JlYXRl
ZGIob3BlbjJfdCwgZGIubmFtZSwgMTApOworICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgZGIyID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VF
dmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCA5LCAib2xkVmVyc2lvbiIpOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIDEwLCAibmV3VmVyc2lvbiIpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJ1cGdyYWRlbmVlZGVkIiwgImV2ZW50IHR5cGUi
KTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgMTAsICJuZXcgZGIu
dmVyc2lvbiIpOworCisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfTsKKyAgICB9
OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3Bl
bjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRi
YzAxMWYyOGU3YzA3MTg0N2E3MTc5ZjcwNzI2ZjAwMDNlZjg2N2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZmFjdG9yeV9vcGVuMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFj
dG9yeS5vcGVuKCkgLSBkYXRhYmFzZSAnbmFtZScgYW5kICd2ZXJzaW9uJyBhcmUgY29ycmVjdGx5
IHNldCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjc4MjNjMDQyZmM3MGM5ZmYwZGI0Y2ZkMDU4YzJiY2NjNmQ4ZjkxNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4yLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBkYXRhYmFzZSAnbmFtZScgYW5k
ICd2ZXJzaW9uJyBhcmUgY29ycmVjdGx5IHNldDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCAnZGF0YWJhc2VfbmFtZScsIDEzKTsK
KworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307CisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi5uYW1lLCAnZGF0YWJhc2VfbmFtZScs
ICdkYi5uYW1lJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgMTMsICdkYi52
ZXJzaW9uJyk7CisgICAgICAgIHRoaXMuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2
IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW4zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0
b3J5X29wZW4zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjdiYjUzMjc1MzRkMWFiNjA3NDlj
OTNkYWMxZjE1ZWY2NmI4OThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gbm8gdmVy
c2lvbiBvcGVucyBjdXJyZW50IGRhdGFiYXNlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuMy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3Rvcnlfb3BlbjMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTdhZDVmNmM3N2FjM2QwYTEyMDAz
N2E1YzcwMDMwNGM2ZjU0NTIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjMuaHRtbApA
QCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4o
KSAtIG5vIHZlcnNpb24gb3BlbnMgY3VycmVudCBkYXRhYmFzZTwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDEz
KTsKKyAgICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKKworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jbG9z
ZSgpOworCisgICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5u
YW1lKTsKKyAgICAgICAgb3Blbl9ycTIub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lv
biwgMTMsICJkYi52ZXJzaW9uIikKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICAgICAgb3Blbl9ycTIub251cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5leHBl
Y3RlZCB1cGdyYWRlbmVlZGVkJykKKyAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhp
cywgJ1VuZXhwZWN0ZWQgZXJyb3InKQorICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW40LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW40
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjYwNDBlMzU1NDlhNmE2ZTI0NGZjZDdlMjc0M2Jk
ZmU5YWNhOTlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNlIGhh
cyBkZWZhdWx0IHZlcnNpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW40Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9y
eV9vcGVuNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NzRiNGY3Y2VlNjFhYmE0Y2I1NDQ4ZWE0YzNlMTRk
YWUxNzBhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuNC5odG1sCkBAIC0wLDAgKzEs
MjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRh
dGFiYXNlIGhhcyBkZWZhdWx0IHZlcnNpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgJ2RhdGFiYXNlX25hbWUnKTsKKworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52ZXJzaW9uLCAxLCAiZGIudmVyc2lvbiIpOworICAgIH07
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LnZlcnNpb24sIDEsICJkYi52ZXJzaW9uIik7CisgICAgICAg
IHRoaXMuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiZmFjdG9yeV9vcGVuNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuNS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2E1OTA5YjgxZTA4Njk3MzYzMjQwMzg2MmRiNTJjYzU0YTU5Yjdk
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW41LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG5ldyBkYXRhYmFzZSBpcyBlbXB0eSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW41Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTdiM2ExMTBlZjgwY2M4M2NjZWY5NTgzMmNjY2ZiNDFmNGI1Yzg1YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJmYWN0b3J5X29wZW41Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0YWJhc2UgaXMgZW1wdHk8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3Qo
KSwgJ2RhdGFiYXNlX25hbWUnKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgs
IDAsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIpOworICAgICAgICB0aGlzLmRvbmUoKTsKKyAg
ICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlf
b3BlbjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQxZjFiZmNjMmIxNDIxZDg4Y2M2NzYwYmZiMWU3ZDUyMTc4NzQ3ZTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZmFjdG9yeV9vcGVuNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
RmFjdG9yeS5vcGVuKCkgLSBvcGVuIGRhdGFiYXNlIHdpdGggYSBsb3dlciB2ZXJzaW9uIHRoYW4g
Y3VycmVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjYuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW42Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjg5YjVlYTBlNjU3YThmZTE5ZTNiZmZhNmJhMzgzOTY0Y2QzOGM0Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW42Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBvcGVuIGRhdGFiYXNlIHdp
dGggYSBsb3dlciB2ZXJzaW9uIHRoYW4gY3VycmVudDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDEzKTsKKyAg
ICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jbG9zZSgpOwor
CisgICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lLCAx
NCk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307Cisg
ICAgICAgIG9wZW5fcnEyLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKG9wZW5fcHJldmlvdXNf
ZGIpOworICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBl
cnJvcicpCisgICAgfQorCisgICAgZnVuY3Rpb24gb3Blbl9wcmV2aW91c19kYihlKSB7CisgICAg
ICAgIHZhciBvcGVuX3JxMyA9IHdpbmRvdy5pbmRleGVkREIub3BlbihlLnRhcmdldC5yZXN1bHQu
bmFtZSwgMTMpOworICAgICAgICBvcGVuX3JxMy5vbmVycm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1l
LCAnVmVyc2lvbkVycm9yJywgJ2UudGFyZ2V0LmVycm9yLm5hbWUnKQorICAgICAgICAgICAgdGhp
cy5kb25lKCk7CisgICAgICAgIH0pOworICAgICAgICBvcGVuX3JxMy5vbnVwZ3JhZGVuZWVkZWQg
PSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHVwZ3JhZGVuZWVkZWQnKQorICAgICAgICBvcGVuX3Jx
My5vbnN1Y2Nlc3MgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHN1Y2Nlc3MnKQorICAgIH0KKzwv
c2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW43LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJmYWN0b3J5X29wZW43LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWQ0OTkz
ZmM1ZDhlMzI3MmNiODE4NDJhNWQzY2Q1N2U2OGI5NGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rv
cnlfb3BlbjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnku
b3BlbigpIC0gb3BlbiBkYXRhYmFzZSB3aXRoIGEgaGlnaGVyIHZlcnNpb24gdGhhbiBjdXJyZW50
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuNy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjcuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZTU2YmUwN2Y1ZTk0YzRjNmNiMWMxZTNkOTQyNGY1Njk3MjE0MWMxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjcuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIG9wZW4gZGF0YWJhc2Ugd2l0aCBhIGhp
Z2hlciB2ZXJzaW9uIHRoYW4gY3VycmVudDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDEzKTsKKyAgICB2YXIg
ZGlkX3VwZ3JhZGUgPSBmYWxzZTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jbG9zZSgpOworCisgICAg
ICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lLCAxNCk7Cisg
ICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgZGlkX3VwZ3JhZGUgPSB0cnVlOworICAgICAgICB9OworICAgICAgICBvcGVuX3JxMi5vbnN1
Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhvcGVuX2N1cnJlbnRfZGIpOworICAgICAgICBvcGVuX3Jx
Mi5vbmVycm9yID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBlcnJvcicpCisgICAgfQorCisgICAg
ZnVuY3Rpb24gb3Blbl9jdXJyZW50X2RiKGUpIHsKKyAgICAgICAgdmFyIG9wZW5fcnEzID0gd2lu
ZG93LmluZGV4ZWREQi5vcGVuKGUudGFyZ2V0LnJlc3VsdC5uYW1lKTsKKyAgICAgICAgb3Blbl9y
cTMub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lvbiwgMTQsICJkYi52ZXJzaW9uIikK
KyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgb3Blbl9ycTMu
b251cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCB1cGdyYWRlbmVlZGVkJykK
KyAgICAgICAgb3Blbl9ycTMub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgZXJyb3In
KQorCisgICAgICAgIGFzc2VydF90cnVlKGRpZF91cGdyYWRlLCAnZGlkIHVwZ3JhZGUnKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9v
cGVuOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjY0N2IxZDU0MTExOTgwMWY3OTdlNWNiNzMwMDEwZDdmZjUxMDRkNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJmYWN0b3J5X29wZW44LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJG
YWN0b3J5Lm9wZW4oKSAtIGVycm9yIGluIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0
cyBvcGVuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjguaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMjhhMjdkMjQxYTIwZDc3YTcwMTZhZTFkYTEyMmNkNWM0ZDhlM2RjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjguaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIGVycm9yIGluIHZlcnNpb24g
Y2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0cyBvcGVuPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVuZGVmaW5lZCwgMTMpOworICAg
IHZhciBkaWRfdXBncmFkZSA9IGZhbHNlOworICAgIHZhciBkaWRfZGJfYWJvcnQgPSBmYWxzZTsK
KworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
aWRfdXBncmFkZSA9IHRydWU7CisgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5vbmFib3J0ID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBkaWRfZGJfYWJvcnQgPSB0cnVlOworICAgICAgICB9Cisg
ICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgfTsKKyAgICBvcGVuX3Jx
Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF90cnVlKGRpZF91cGdyYWRl
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAnQWJvcnRFcnJv
cicsICd0YXJnZXQuZXJyb3InKTsKKyAgICAgICAgdGhpcy5kb25lKCkKKyAgICB9OworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmZhY3Rvcnlfb3BlbjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZmM4ODMyMDUw
NGFkYzhjYTFkNDUyZTliNTVjMzU1NDZlMDEwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9v
cGVuOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIENhbGxpbmcgb3Blbigp
IHdpdGggdmVyc2lvbiBhcmd1bWVudCAtMSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1Mg
Q2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IC0wLjUgc2hvdWxkIHRocm93IFR5
cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAwIHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24g
YXJndW1lbnQgMC41IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4o
KSB3aXRoIHZlcnNpb24gYXJndW1lbnQgMC44IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFT
UyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgOTAwNzE5OTI1NDc0MDk5MiBz
aG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9u
IGFyZ3VtZW50IE5hTiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVu
KCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IEluZmluaXR5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgLUluZmluaXR5IHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24g
YXJndW1lbnQgImZvbyIgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3Bl
bigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCB1bmRlZmluZWQgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBudWxsIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJn
dW1lbnQgZmFsc2Ugc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3Blbigp
IHdpdGggdmVyc2lvbiBhcmd1bWVudCBvYmplY3Qgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQ
QVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBvYmplY3QgKHNlY29uZCkg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lv
biBhcmd1bWVudCBvYmplY3QgKHRoaXJkKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1Mg
Q2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDEuNSBzaG91bGQgbm90IHRocm93
LiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDkwMDcxOTkyNTQ3
NDA5OTEgc2hvdWxkIG5vdCB0aHJvdy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZmFjdG9yeV9vcGVuOS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiOTYxYjE5MGIyYzk4NTliZjI4MWRiNjQx
NTdlZTQ0ZTNhZmZiOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOS5odG1sCkBAIC0w
LDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0g
ZXJyb3JzIGluIHZlcnNpb24gYXJndW1lbnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBzaG91bGRfdGhyb3co
dmFsLCBuYW1lKSB7CisgICAgaWYgKCFuYW1lKSB7CisgICAgICAgIG5hbWUgPSAoKHR5cGVvZiB2
YWwgPT0gIm9iamVjdCIgJiYgdmFsKSA/ICJvYmplY3QiIDogZm9ybWF0X3ZhbHVlKHZhbCkpCisg
ICAgfQorICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBl
RXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy5pbmRleGVkREIub3BlbigndGVz
dCcsIHZhbCk7CisgICAgICB9KTsKKyAgICB9LCAiQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9u
IGFyZ3VtZW50ICIgKyBuYW1lICsgIiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiIpCit9CisKK3No
b3VsZF90aHJvdygtMSkKK3Nob3VsZF90aHJvdygtMC41KQorc2hvdWxkX3Rocm93KDApCitzaG91
bGRfdGhyb3coMC41KQorc2hvdWxkX3Rocm93KDAuOCkKK3Nob3VsZF90aHJvdygweDIwMDAwMDAw
MDAwMDAwKSAgLy8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgKyAxCitzaG91bGRfdGhyb3coTmFO
KQorc2hvdWxkX3Rocm93KEluZmluaXR5KQorc2hvdWxkX3Rocm93KC1JbmZpbml0eSkKK3Nob3Vs
ZF90aHJvdygiZm9vIikKK3Nob3VsZF90aHJvdyh1bmRlZmluZWQpCitzaG91bGRfdGhyb3cobnVs
bCkKK3Nob3VsZF90aHJvdyhmYWxzZSkKKworc2hvdWxkX3Rocm93KHsKKyAgICB0b1N0cmluZzog
ZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoInRvU3RyaW5nIHNob3VsZCBub3QgYmUgY2Fs
bGVkIGZvciBUb1ByaW1pdGl2ZSBbTnVtYmVyXSIpOyB9LAorICAgIHZhbHVlT2Y6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gMDsgfQorfSkKK3Nob3VsZF90aHJvdyh7CisgICAgdG9TdHJpbmc6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gMDsgfSwKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt9
OyB9Cit9LCAnb2JqZWN0IChzZWNvbmQpJykKK3Nob3VsZF90aHJvdyh7CisgICAgdG9TdHJpbmc6
IGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0sCisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJl
dHVybiB7fTsgfSwKK30sICdvYmplY3QgKHRoaXJkKScpCisKKworLyogVmFsaWQgKi8KKworZnVu
Y3Rpb24gc2hvdWxkX3dvcmsodmFsKSB7CisgICAgdmFyIG5hbWUgPSBmb3JtYXRfdmFsdWUodmFs
KTsKKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoIkNhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBh
cmd1bWVudCAiICsgbmFtZSArICIgc2hvdWxkIG5vdCB0aHJvdy4iKQorICAgIHZhciBycSA9IGNy
ZWF0ZWRiKHQsIHZhbCkKKyAgICBycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgdC5kb25lKCkKKyAgICB9Cit9CisKK3Nob3VsZF93b3JrKDEuNSkKK3Nob3VsZF93b3Jr
KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSAgLy8gMHgyMDAwMDAwMDAwMDAwMCAtIDEKKworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnkt
YXJyYXlrZXlwYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgyNDA5ODcxMTJhOWRiYjg4YmQzODYwN2IwN2I5ODNl
ZDI3ZTcwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXgubXVsdGlFbnRyeTog
YXJyYXkga2V5UGF0aCB3aXRoIG11bHRpRW50cnkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleC1tdWx0aWVu
dHJ5LWFycmF5a2V5cGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2RlZGZiZjlhODNhNTk2ZTg3NzdhMmIwMmU4NTdhY2QwN2UzODNiNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQkluZGV4Lm11bHRpRW50cnk6IGFycmF5IGtleVBhdGggd2l0aCBtdWx0aUVudHJ5PC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0
bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZj
cy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1jb25z
dHJ1Y3QiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iWFhYIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgY3JlYXRlZGIoYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkpLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZS50YXJnZXQucmVzdWx0LmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFs
aWRBY2Nlc3NFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc3RvcmUuY3JlYXRlSW5k
ZXgoJ2FjdG9ycycsIFsnbmFtZSddLCB7IG11bHRpRW50cnk6IHRydWUgfSkKKyAgICAgICAgfSk7
CisKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnktYmlnLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJp
bmRleC1tdWx0aWVudHJ5LWJpZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRjNGQzZDBiMzg1
YTljM2Y4M2I3ODU5OTk1ZTEwZDFmNmM3Njg0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleC1tdWx0
aWVudHJ5LWJpZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgQWRkaW5nIG9u
ZSBpdGVtIHdpdGggMTAwMCBtdWx0aUVudHJ5IGtleXMgCitQQVNTIEdldHRpbmcgdGhlIG9uZSBp
dGVtIGJ5IDEwMDAgaW5kZWNlZCBrZXlzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11bHRpZW50cnkt
YmlnLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTEwMjQ4MGVj
YzBjODRkMmM1OGU3OTllYWY0MTdiOTAwMmRmYmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4LW11
bHRpZW50cnktYmlnLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgubXVsdGlFbnRyeSAtIGEgMTAwMCBl
bnRyeSBtdWx0aUVudHJ5IGFycmF5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGlu
ayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI2tleS1jb25zdHJ1Y3QiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iWFhYIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0X2FkZCA9IGFzeW5jX3Rlc3QoIkFkZGlu
ZyBvbmUgaXRlbSB3aXRoIDEwMDAgbXVsdGlFbnRyeSBrZXlzIiwgeyB0aW1lb3V0OiAxMDAwMCB9
KSwKKyAgICAgICAgdF9nZXQgPSBhc3luY190ZXN0KCJHZXR0aW5nIHRoZSBvbmUgaXRlbSBieSAx
MDAwIGluZGVjZWQga2V5cyAiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0X2FkZCk7CisgICAgdmFyIG9iaiA9IHsgdGVzdDogJ3lvJywgaWR4a2V5
czogW10gfTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICBv
YmouaWR4a2V5cy5wdXNoKCdpbmRleF9ub18nICsgaSk7CisKKworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQorICAgICAgICAgIC5jcmVh
dGVJbmRleCgnaW5kZXgnLCAnaWR4a2V5cycsIHsgbXVsdGlFbnRyeTogdHJ1ZSB9KTsKKyAgICB9
OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgdHgg
PSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZHdyaXRlJyk7CisgICAgICAgIHR4Lm9iamVj
dFN0b3JlKCdzdG9yZScpCisgICAgICAgICAgLnB1dChvYmosIDEpCisgICAgICAgICAgLm9uc3Vj
Y2VzcyA9IHRfYWRkLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMSwgInB1dCdkIGtleSIpOworICAgICAg
ICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworCisgICAgICAgIHR4Lm9uY29tcGxldGUg
PSB0X2dldC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgaWR4ID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2luZGV4JykK
KworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgaWR4LmdldCgnaW5kZXhfbm9fJyArIGkpLm9uc3VjY2VzcyA9
IHRfZ2V0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnRlc3QsICJ5byIpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZHguZ2V0KCdpbmRleF9ub185OTknKS5v
bnN1Y2Nlc3MgPSB0X2dldC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnRlc3QsICJ5byIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmlkeGtleXMubGVuZ3RoLCAxMDAwKTsK
KyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
aW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGRhNDYzYzdiMDZiNThmN2RmMzNkMzQyMTAyN2RkOWZiZDYzYzVhZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJJbmRleC5tdWx0aUVudHJ5IC0gYWRkaW5nIGtleXMgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJpbmRleC1tdWx0aWVudHJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXgtbXVsdGllbnRyeS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM0MGRhODQwOGQ4NGUxYjAxMWE5YWU0MjgwYzE3ZDExNzkwZGFiMDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiaW5kZXgtbXVsdGllbnRyeS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4Lm11bHRpRW50cnkg
LSBhZGRpbmcga2V5czwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsxLCAyLCAyLCAzLCAzXTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwg
e3RpbWVvdXQ6IDEwMDAwfSkpCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBzdG9yZS5jcmVh
dGVJbmRleCgnYWN0b3JzJywgJ25hbWUnLCB7IG11bHRpRW50cnk6IHRydWUgfSkKKworICAgICAg
ICBzdG9yZS5hZGQoe25hbWU6ICdPZGluJ30sIDEpOworICAgICAgICBzdG9yZS5hZGQoe25hbWU6
IFsnUml0YScsICdTY2hlZXRhJywge0JvYmJ5OidCb2JieSd9XX0sIDIpOworICAgICAgICBzdG9y
ZS5hZGQoe25hbWU6IFsge3M6ICdSb2JlcnQnfSwgJ05laWwnLCAnQm9iYnknXX0sIDMpOworICAg
IH07CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBn
b3R0ZW5fa2V5cyA9IFtdOworICAgICAgICB2YXIgaWR4ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3Jl
Jykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2FjdG9ycycpOworCisgICAgICAgIGlkeC5n
ZXRLZXkoJ09kaW4nKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgfSk7
CisgICAgICAgIGlkeC5nZXRLZXkoJ1JpdGEnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3Vs
dCkKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXRLZXkoJ1NjaGVldGEnKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBnb3R0ZW5fa2V5cy5w
dXNoKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXRLZXkoJ05l
aWwnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgfSk7CisgICAgICAg
IGlkeC5nZXRLZXkoJ0JvYmJ5Jykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisKKyAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZ290dGVuX2tleXMsIGV4cGVjdGVkX2tleXMp
OworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2NvdW50LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJpbmRleF9jb3VudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTYwYTlkZDhlMmQ1MGFi
ZGM1MmUwNmIxMDA3ZTQ4NTFiZjZjNGRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguY291bnQoKSAtIHJl
dHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBpbmRleCAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJp
bmRleF9jb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmluZGV4X2NvdW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkyZTQ3ZDQ2YjBj
YjcxNWVmZmQ0Njk5MzlmY2E4ZGZmY2I4OTQwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3Vu
dC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzx0aXRsZT5JREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJl
Y29yZHMgaW4gdGhlIGluZGV4IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgdCA9
IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7
IGkgPCAxMDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVydHk6
ICJkYXRhIiArIGkgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAg
ICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAuY291bnQoKTsKKwor
ICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMTApOworICAgICAgICAgICAgdC5k
b25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2NvdW50Mi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzMTg0YjgzZWQ1YmI0OGM4YWEzNDA2NmI4MTA3MDIxMzMx
NDc2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2Yg
cmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlICAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmlu
ZGV4X2NvdW50Mi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmluZGV4X2NvdW50Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3MTFjOTE2NzM3
MzgyMjZiNmI2Zjc4ZTMyOWMxNGE3NzkyNGUxNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfY291
bnQyLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPHRpdGxlPklEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2Yg
cmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAg
ICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisg
ICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5h
ZGQoeyBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiArIGkgfSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUo
InN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAg
ICAgICAgICAuY291bnQoSURCS2V5UmFuZ2UuYm91bmQoJ2RhdGEwJywgJ2RhdGE0JykpOworCisg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA1KTsKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiaW5kZXhfY291bnQzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE5MzhhYjIyMjQ3NzJlODI3N2M5ZTY5N2VkMzAyODIyZjM0NzM5
MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfY291bnQzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJl
Y29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aCB0aGUga2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfY291
bnQzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiaW5kZXhfY291bnQzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ3YTJmYjc5NmI1YTU1ODdm
YWNlODM3M2RmMTRkMjA3NWMwZTUyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDMuaHRt
bApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8dGl0bGU+SURCSW5kZXguY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRz
IHRoYXQgaGF2ZSBrZXlzIHdpdGggdGhlIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiCisKKyAgICBjcmVhdGVkYihhc3luY190ZXN0KCkpLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgICAg
ICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1l
bnQ6IHRydWUgfSkKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoIm15aW5kZXgiLCAiaWR4IikK
KworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICBzdG9y
ZS5hZGQoeyBpZHg6ICJkYXRhXyIgKyAoaSUyKSB9KTsKKworICAgICAgICBzdG9yZS5pbmRleCgi
bXlpbmRleCIpLmNvdW50KCJkYXRhXzAiKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNSwg
ImNvdW50KGRhdGFfMCkiKQorICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAgfSkKKyAg
ICB9CisKKzwvc2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfY291
bnQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFh
MzQxM2QzZmQ1NDgxMGUzNTdiMDkxZmQzM2Y2ODhiOGY3YWU0MTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
aW5kZXhfY291bnQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRl
eC5jb3VudCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJpbmRleF9jb3VudDQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9jb3VudDQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NTk0OGVjNWRlZjAzZjQ3YTQwNTMyYjUwNWRiOTZlMWNhMWY5ZWY4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
YmluZGV4X2NvdW50NC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmNvdW50KCkgLSB0aHJvdyBEYXRh
RXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtY291bnQtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6
IHRydWUgfSk7CisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJv
cGVydHkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAg
ICAgICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAg
ICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIHZhciBpbmRleCA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgLmluZGV4
KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaW5kZXguY291bnQoTmFOKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmluZGV4X2dldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYwMWM3OGRhMWEx
ODk0MjM4ZjMwNjgwZjgyNGFiMDdhZmM0OTU4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4LmdldCgpIC0gcmV0
dXJucyB0aGUgcmVjb3JkICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdlNDZlMTg1OGI3OTUyNzQzMWQ4MzRmNjI1NGRmNDBmOGRjYzkxZjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0KCkg
LSByZXR1cm5zIHRoZSByZWNvcmQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIGluZGV4
ZWRQcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgaW5kZXggPSBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQuaW5kZXhl
ZFByb3BlcnR5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIHJl
Y29yZC5rZXkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldDItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmluZGV4X2dldDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMjJiNTM1Mjc5
YTI1ZDUzMzYwYjZjZjRhZjI1OWM3OTQ1NmE3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0
Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0KCkgLSBy
ZXR1cm5zIHRoZSByZWNvcmQgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1
ZXMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0Mi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldDIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNjc1OWNiYWUzNzQ0NjY3MzRkOGJlMDUzMDBiMmUzMDBlOTE5OTgzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmluZGV4X2dldDIuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHJldHVybnMg
dGhlIHJlY29yZCB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcyA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmRzID0gWyB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCisg
ICAgICAgICAgICAgICAgICB7IGtleToyLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCisgICAg
ICAgICAgICAgICAgICB7IGtleTozLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0gXTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtl
eSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJv
cGVydHkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBp
KyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0
IikKKyAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAg
ICAuZ2V0KCJkYXRhIik7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5
LCByZWNvcmRzWzBdLmtleSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4
X2dldDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
ZmY1OWIyNWE5NzRjNTEwYTVlYWRmYjIwYzg5OGNhZTg5OGYzNTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
aW5kZXhfZ2V0My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXgu
Z2V0KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3JkIHRoYXQgZG9lc24ndCBleGlzdCAg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleF9nZXQzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0My5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZjMGI5NTE3MzgxNmJlMmM2MDdhNDM4MDhiMDcwZGEwOGI0NGQ5ZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfZ2V0My5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gYXR0ZW1wdCB0byBy
ZXRyaWV2ZSBhIHJlY29yZCB0aGF0IGRvZXNuJ3QgZXhpc3QgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBycSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgICAgICAg
ICAgICAgICAgIC5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5IikKKyAgICAg
ICAgICAgICAgICAgICAuZ2V0KDEpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LCB1bmRlZmluZWQpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAg
IH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9n
ZXQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTQ0
ODhhYmQxZTFiYTFhOTcyYTRjZDI5MTJiYTA5ZDk0YmI4OWZiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmlu
ZGV4X2dldDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4Lmdl
dCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2Ug
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0NC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldDQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMzRlOWNlZWY1ZmEwMGRkNjkxMWE3Y2ZkOWUzNTVkOTM5MzkyZTc4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmluZGV4X2dldDQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCSW5kZXguZ2V0KCkgLSByZXR1cm5zIHRoZSBy
ZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5IGluIHRoZSByYW5nZSA8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBz
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAg
Zm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGtl
eTogaSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9
IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAg
ICAgICAgICAgLmdldChJREJLZXlSYW5nZS5ib3VuZCgnZGF0YTQnLCAnZGF0YTcnKSk7CisKKyAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCA0KTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmluZGV4ZWRQcm9wZXJ0eSwgJ2RhdGE0Jyk7CisK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHQuZG9uZSgpOyB9LCA0KQorICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzYzOGMwOThhYTJjNDBmYjRiOTNjZGM0ZDkyOWI0OWIyN2RiZWM0ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJpbmRleF9nZXQ1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJJbmRleC5nZXQoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5ICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmluZGV4X2dldDUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQ1Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDE1MjQ5MjYyMjRhMDY5MzJhZWY2MThhZDUzMTM4ZWY3MmY4ZjliNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJpbmRleF9nZXQ1Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0KCkgLSB0aHJvdyBEYXRhRXJy
b3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAg
ICAgIHZhciBpbmRleCA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAi
a2V5IiB9KQorICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5k
ZXhlZFByb3BlcnR5Iik7CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsZnVuY3Rp
b24oKXsKKyAgICAgICAgICAgIGluZGV4LmdldChOYU4pOworICAgICAgICB9KTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0Ni1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA2MTZhNjg1Y2U5
MTM0ZmQ0ODg3ZTJjNmUwYTAxYTAzN2ExMjY5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQ2
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXQoKSAtIHRo
cm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJpbmRleF9nZXQ2Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1Yjc2M2Vk
NWUzZGIzNzY2OTQ0OTAwYzM2NmRmMWYwYTU0YzM1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhf
Z2V0Ni5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJy
b3Igd2hlbiB0aGUgaW5kZXggaXMgZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtZ2V0LUlEQlJlcXVlc3QtYW55LWtleSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJr
ZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVk
UHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAgICAgc3RvcmUuZGVsZXRlSW5kZXgoImluZGV4Iik7
CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
eworICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0pOworICAgICAgICB0
LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMDZlMWI0MGE4OWNh
OThlYzA4YjhiMGE1MTBmZTU0NWI5OTViNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0Ny1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0ZBSUwgSURCSW5kZXguZ2V0KCkgLSB0aHJv
dyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7CisgICAgICAgICAgICBpbmRleC5nZXQoImRh
dGEiKTsKKyAgICAgICAgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUg
J2dldCcgb24gJ0lEQkluZGV4JzogVGhlIHRyYW5zYWMuLi4iIHRoYXQgaXMgbm90IGEgRE9NRXhj
ZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwg
ZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldDcuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXQ3Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODk3MzVlYWQ4NGRmNWY0MTU5YzRhMjNlNjczYTUyMjVjMTBjZGVmNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJpbmRleF9nZXQ3Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0KCkgLSB0
aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbjwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3Lmlu
dGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtZ2V0LUlE
QlJlcXVlc3QtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgICAgIHN0b3Jl
LmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7CisKKyAgICAgICAgZS50
YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBpbmRleC5nZXQoImRhdGEi
KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3ODNlODUzNGM4YWJjZGNjNjg0NjhkMmExZDUxYTkyMWY4MmNlZGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMgdGhlIHJlY29yZCdzIHByaW1h
cnkga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI3MDFiYTMxZDc0ODU5OTI0MmZiNGFlNjI4OTA5ZDllYmE1NjFiNmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0S2V5
KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleSA8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQg
PSB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAg
ICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAg
cnEgPSBycS5pbmRleCgiaW5kZXgiKTsKKworICAgICAgICBycSA9IHJxLmdldEtleSgiZGF0YSIp
OworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCByZWNvcmQua2V5KTsKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
aW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTgwMzNmMDY5OGZmZmM2YjEw
Njk1MTZlYTBiMzZjMGZkYWFmNzM5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHJl
dHVybnMgdGhlIHJlY29yZCdzIHByaW1hcnkga2V5IHdoZXJlIHRoZSBpbmRleCBjb250YWlucyBk
dXBsaWNhdGUgdmFsdWVzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTIuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9n
ZXRLZXkyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQyZTgxZDBiN2RjODM0ZTQ1ZWYwYmRlZjJmOWNhYTEw
ZjgzNDBmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkyLmh0bWwKQEAgLTAsMCArMSwz
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURC
SW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleSB3aGVyZSB0
aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcyA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0g
WyB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCisgICAgICAgICAgICAgICAgICB7
IGtleToyLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCisgICAgICAgICAgICAgICAgICB7IGtl
eTozLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIG9i
alN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBv
YmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
CisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAg
ICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0S2V5KCJkYXRhIik7
CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHJlY29yZHNbMF0ua2V5KTsK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5My1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfZ2V0S2V5My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgyMzc3MzhlYmE3N2Rh
NjVkZjQwMzIwNTQwZDk0OTIwMTUxMzViOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXRLZXkoKSAt
IGF0dGVtcHQgdG8gcmV0cmlldmUgdGhlIHByaW1hcnkga2V5IG9mIGEgcmVjb3JkIHRoYXQgZG9l
c24ndCBleGlzdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmQ2ODRiZmNmNmFlZTcwZmZmNzY0NTk1MjE2ZDQwZDhjMGIzNzlj
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXkzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgu
Z2V0S2V5KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBwcmltYXJ5IGtleSBvZiBhIHJlY29y
ZCB0aGF0IGRvZXNuJ3QgZXhpc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgcnEgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAgICAgICAgICAuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCisgICAgICAgICAgICAgICAgICAg
LmdldEtleSgxKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZp
bmVkKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5NC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRiaW5kZXhfZ2V0S2V5NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM3MjY3NmM2
MjE0MDEyZTJhMzdjYmQ2MjYzOWY2YTc4MjFkNjc3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9n
ZXRLZXk0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXRL
ZXkoKSAtIHJldHVybnMgdGhlIGtleSBvZiB0aGUgZmlyc3QgcmVjb3JkIHdpdGhpbiB0aGUgcmFu
Z2UgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5NC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNzFlZDY1OTIyZjZlNmI5Y2E4MjA1Zjg4ZDFjZWQ2YzUzNDBmMThiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkg
LSByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0IHJlY29yZCB3aXRoaW4gdGhlIHJhbmdlIDwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
IHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtl
eSIgfSk7CisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVy
dHkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgICAg
ICAgc3RvcmUuYWRkKHsga2V5OiBpLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiArIGkgfSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuaW5kZXgoImlu
ZGV4IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0S2V5KElEQktleVJhbmdlLmJvdW5kKCdkYXRh
NCcsICdkYXRhNycpKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNCk7
CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHQuZG9uZSgpOyB9LCA0KQor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRiaW5kZXhfZ2V0S2V5NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5NS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTJhNmY1NTAxY2Y4OTJlOTM4YzlhMzdjZGIyNTUyY2JhMjgwYjA5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXk1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5n
IGludmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRL
ZXk1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyYzNjZDQ4ZGQ2YTYyMzcyMmI2ZmNkYjljN2Y1YjE0MmJm
OWM5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXk1Lmh0bWwKQEAgLTAsMCArMSwyNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5k
ZXguZ2V0S2V5KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldEtl
eS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBpbmRleCA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgICAgICAgICAgICAgICAg
ICAgIC5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgICAgIGFz
c2VydF90aHJvd3MoIkRhdGFFcnJvciIsZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGluZGV4Lmdl
dEtleShOYU4pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2Ny
aXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5
Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk5MTIyZThiZDVjNmYwNjJmNjMyNWZjMGUyYjZi
YjNlYTgwNzk3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXk2LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHRocm93IEludmFsaWRT
dGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9n
ZXRLZXk2Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYzhlODgwNWU2ZTZl
Y2FmZTI3YWJjYjViYmVlZjY2Y2ZiNWNkNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfZ2V0S2V5
Ni5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJy
b3Igd2hlbiB0aGUgaW5kZXggaXMgZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtZ2V0S2V5LUlEQlJlcXVlc3QtYW55LWtleSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRl
eGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAgICAgc3RvcmUuZGVsZXRlSW5kZXgoImluZGV4
Iik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlv
bigpeworICAgICAgICAgICAgaW5kZXguZ2V0S2V5KCJkYXRhIik7CisgICAgICAgIH0pOworICAg
ICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtl
eTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNj
ZWRjYzYwMzcwNzlkOGRkN2FlM2NjNWQ1ZjI1ODY3OTZjNDg4MTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
aW5kZXhfZ2V0S2V5Ny1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0ZBSUwgSURCSW5k
ZXguZ2V0S2V5KCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0
cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7CisgICAgICAg
ICAgICBpbmRleC5nZXRLZXkoImRhdGEiKTsKKyAgICAgICAgfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogRmFpbGVkIHRvIGV4ZWN1dGUgJ2dldEtleScgb24gJ0lEQkluZGV4JzogVGhlIHRyYW4uLi4i
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAi
Y29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2dldEtl
eTcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJpbmRleF9nZXRLZXk3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRlMDgwNzk5N2I3NTEyY2Y0
ZTk2MjA2MzUyOTUwNjUwYzc1ODkxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9nZXRLZXk3Lmh0
bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZl
RXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtZ2V0S2V5LUlEQlJlcXVlc3QtYW55LWtleSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhl
ZFByb3BlcnR5OiAiZGF0YSIgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJv
cnQoKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0
aW9uKCl7CisgICAgICAgICAgICBpbmRleC5nZXRLZXkoImRhdGEiKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfaW5k
ZXhOYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDg4NjA0NDE5Y2NjNzY1MzBlZWJmNWQ4NzYzYzZjNzgwMjViZTA4ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJpbmRleF9pbmRleE5hbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMgdGhlIHJlY29yZCdzIHByaW1hcnkga2V5
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiaW5kZXhfaW5kZXhOYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X2luZGV4TmFtZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMGU0MGU2NmZhNmIzNmY2OWEyYjFmODBlYTdiZDljZjg3ZjVmMzMwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmluZGV4X2luZGV4TmFtZXMuaHRtbApAQCAtMCwwICsxLDM0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5n
ZXRLZXkoKSAtIHJldHVybnMgdGhlIHJlY29yZCdzIHByaW1hcnkga2V5PC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4g
SMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3Vt
ZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJkYXRhIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhvYmpTdG9yZS5pbmRleE5hbWVzWzBdLCAiaW5kZXgiLCAiaW5kZXhOYW1lcyIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1l
cy5sZW5ndGgiKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICBhc3NlcnRfZXF1
YWxzKG9ialN0b3JlLmluZGV4TmFtZXNbMF0sICJpbmRleCIsICJpbmRleE5hbWVzIChzZWNvbmQp
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEs
ICJpbmRleE5hbWVzLmxlbmd0aCAoc2Vjb25kKSIpOworCisgICAgICAgIHQuZG9uZSgpOworICAg
IH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9v
cGVuQ3Vyc29yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NzhjY2FlZjJiNzllOTI2YmJhNzdlOGJjMmE2MzIyYTA0ODk5MmU2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYmluZGV4X29wZW5DdXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkluZGV4Lm9wZW5DdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdo
ZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuQ3Vyc29yLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfb3BlbkN1cnNvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5ZmI2OGE1MTgzY2QzZmQ3ZmVh
NTNiZDY0MWZkNDQ3OGI2ODA1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfb3BlbkN1cnNvci5o
dG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPklEQkluZGV4Lm9wZW5DdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVy
cm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5DdXJzb3ItSURCUmVxdWVzdC1hbnktcmFu
Z2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2
YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7
CisKKyAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9
KTsKKyAgICAgICAgc3RvcmUuZGVsZXRlSW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgYXNzZXJ0
X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5k
ZXgub3BlbkN1cnNvcigpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQor
PC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuQ3Vyc29yMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5k
ZXhfb3BlbkN1cnNvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MjMxMTI3MTJlZjNjZTg2
MzkxMjkyOTE5NzAwYWU5OWI2NThlMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfb3BlbkN1cnNv
cjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkluZGV4Lm9wZW5DdXJz
b3IoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0
aW9uIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKXsKKyAgICAgICAgICAgIGlu
ZGV4Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogRmFpbGVk
IHRvIGV4ZWN1dGUgJ29wZW5DdXJzb3InIG9uICdJREJJbmRleCc6IFRoZSAuLi4iIHRoYXQgaXMg
bm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMg
ZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5DdXJzb3IyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfb3BlbkN1cnNvcjIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTM4YWNiNWVmZTY5ZDQyODk0
M2ZlNzAwOGIwYmQwYTUzNDg3MGIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5DdXJzb3Iy
Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgub3BlbkN1cnNvcigpIC0gdGhyb3cgVHJhbnNhY3Rpb25J
bmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmls
ZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5DdXJzb3ItSURCUmVxdWVzdC1h
bnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAg
ICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3Bl
cnR5Iik7CisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0
YSIgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKworICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAg
ICAgICBpbmRleC5vcGVuQ3Vyc29yKCk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMmJj
YWI5Y2E1MDE3YmMwZWJmM2U3ZjdjMTI4ZDcxNGYxNTFkYmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiaW5k
ZXhfb3BlbktleUN1cnNvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
SW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgYSBpbnZh
bGlkIGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3IuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVu
S2V5Q3Vyc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1NWUwNjRmYjJhMWEyMmMxN2E5NWY4NGIxNDFi
ZDU2OWY5NDRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLmh0bWwKQEAg
LTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNp
bmcgYSBpbnZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVs
IiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I3dpZGwtSURCSW5kZXgtb3BlbktleUN1cnNvci1JREJSZXF1ZXN0LWFueS1yYW5nZS1JREJDdXJz
b3JEaXJlY3Rpb24tZGlyZWN0aW9uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIHZhciBpbmRleCA9
IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKworICAgICAg
ICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOworCisgICAg
ICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBp
bmRleC5vcGVuS2V5Q3Vyc29yKE5hTik7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRh
NDRhNDA0Y2QxODk0N2I1MmFhMjI2ODU2NGZkMjIxYWM2YzllMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJp
bmRleF9vcGVuS2V5Q3Vyc29yMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0
aGUgaW5kZXggaXMgZGVsZXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiaW5kZXhfb3BlbktleUN1cnNvcjIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjMyZDE5MWMwODUwMGI1
MzAyZDc1ZDYxMWNiMWQ1ZDA4N2VjMWZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlD
dXJzb3IyLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgSW52
YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgaW5kZXggaXMgZGVsZXRlZDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtb3BlbktleUN1cnNvci1JREJS
ZXF1ZXN0LWFueS1yYW5nZS1JREJDdXJzb3JEaXJlY3Rpb24tZGlyZWN0aW9uIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZh
ciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIg
fSk7CisgICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRl
eGVkUHJvcGVydHkiKTsKKworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9w
ZXJ0eTogImRhdGEiIH0pOworICAgICAgICBzdG9yZS5kZWxldGVJbmRleCgiaW5kZXgiKTsKKwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Cisg
ICAgICAgICAgICBpbmRleC5vcGVuS2V5Q3Vyc29yKCk7CisgICAgICAgIH0pOworICAgICAgICB0
LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmluZGV4X29wZW5LZXlDdXJz
b3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTg1ZWQwYjA3NWQ5MjM3YTlkODM5MDUwNjlmY2ExNzY0OGEwMzQyOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CisKK0ZBSUwgSURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
ImZ1bmN0aW9uICgpeworICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNvcigpOworICAgICAg
ICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSAnb3BlbktleUN1cnNv
cicgb24gJ0lEQkluZGV4JzogVC4uLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxp
ZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAxMQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiaW5kZXhfb3BlbktleUN1cnNvcjMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJpbmRleF9vcGVuS2V5Q3Vyc29y
My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRhMmIyZjFhYmUxZmRjY2ZmYjA0OWYwM2U0OGFjZGQzZTVhMjE2
ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRiaW5kZXhfb3BlbktleUN1cnNvcjMuaHRtbApAQCAtMCwwICsx
LDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJJbmRleC5vcGVuS2V5Q3Vyc29yKCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Ig
b24gYWJvcnRlZCB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI3dpZGwtSURCSW5kZXgtb3BlbktleUN1cnNvci1JREJSZXF1ZXN0LWFueS1yYW5nZS1J
REJDdXJzb3JEaXJlY3Rpb24tZGlyZWN0aW9uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBw
b3J0LmpzPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFy
IGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIHZhciBp
bmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKyAg
ICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKwor
ICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOworCisgICAgICAgIGFzc2VydF90
aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGluZGV4
Lm9wZW5LZXlDdXJzb3IoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0K
Kzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRia2V5cmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDI3NjcyYmQyOTZhOThiYjJlYzZlODk3ZTA2ZTkwZGMw
MDA2YWNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKKworUEFTUyBJREJLZXlSYW5nZS5vbmx5KCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdl
IGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSAKK1BBU1MgSURCS2V5UmFuZ2Uu
bG93ZXJCb3VuZCgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMg
YXJlIHNldCBjb3JyZWN0bHkgCitQQVNTIElEQktleVJhbmdlLmxvd2VyQm91bmQoKSAtICdvcGVu
JyBwYXJhbWV0ZXIgaGFzIGNvcnJlY3QgZGVmYXVsdCBzZXQgCitQQVNTIElEQktleVJhbmdlLnVw
cGVyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFy
ZSBzZXQgY29ycmVjdGx5IAorUEFTUyBJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSAnb3Blbicg
cGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0IAorUEFTUyBJREJLZXlSYW5nZS5ib3Vu
ZCgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBj
b3JyZWN0bHkgCitQQVNTIElEQktleVJhbmdlLmJvdW5kKCkgLSAnbG93ZXJPcGVuJyBhbmQgJ3Vw
cGVyT3BlbicgcGFyYW1ldGVycyBoYXZlIGNvcnJlY3QgZGVmYXVsdHMgc2V0IAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRia2V5cmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJrZXlyYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MmE5NDMwMjVhMGZh
NzcwNzllOTYwZTQ1ZTMzMTdmMmRlMGIxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRia2V5cmFuZ2UuaHRt
bApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8dGl0bGU+SURCS2V5UmFuZ2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICAvLyBv
bmx5CisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBrZXlSYW5nZSA9IElEQktl
eVJhbmdlLm9ubHkoMSk7CisgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlIGluc3RhbmNlb2Yg
SURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdlIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIDEsICJrZXlSYW5nZSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCAxLCAia2V5UmFuZ2UiKTsKKyAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGtleVJhbmdlLmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3BlbiIpOworICAg
ICAgICBhc3NlcnRfZmFsc2Uoa2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVu
Iik7CisgICAgfSwgIklEQktleVJhbmdlLm9ubHkoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2Ug
YW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5Iik7CisKKyAgICAvLyBsb3dlckJv
dW5kCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBrZXlSYW5nZSA9IElEQktl
eVJhbmdlLmxvd2VyQm91bmQoMSwgdHJ1ZSkKKyAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2Ug
aW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtleVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2Ui
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5nZS5sb3dlciwgMSwgImtleVJhbmdlLmxv
d2VyIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UudXBwZXIsIHVuZGVmaW5lZCwg
ImtleVJhbmdlLnVwcGVyIik7CisgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLmxvd2VyT3Bl
biwgImtleVJhbmdlLmxvd2VyT3BlbiIpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS51
cHBlck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsKKyAgICB9LCAiSURCS2V5UmFuZ2UubG93
ZXJCb3VuZCgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJl
IHNldCBjb3JyZWN0bHkiKTsKKworICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5sb3dlckJvdW5kKDEpOworICAgICAgICBhc3NlcnRfZmFs
c2Uoa2V5UmFuZ2UubG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJPcGVuIik7CisgICAgfSwgIklE
QktleVJhbmdlLmxvd2VyQm91bmQoKSAtICdvcGVuJyBwYXJhbWV0ZXIgaGFzIGNvcnJlY3QgZGVm
YXVsdCBzZXQiKTsKKworICAgIC8vIHVwcGVyQm91bmQKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHZhciBrZXlSYW5nZSA9IElEQktleVJhbmdlLnVwcGVyQm91bmQoMSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJh
bmdlLCAia2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSIpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhrZXlSYW5nZS5sb3dlciwgdW5kZWZpbmVkLCAia2V5UmFuZ2UubG93ZXIiKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UudXBwZXIsIDEsICJrZXlSYW5nZS51
cHBlciIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UubG93ZXJPcGVuLCAia2V5
UmFuZ2UubG93ZXJPcGVuIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS51cHBl
ck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsKKyAgICB9LCAiSURCS2V5UmFuZ2UudXBwZXJC
b3VuZCgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNl
dCBjb3JyZWN0bHkiKTsKKworICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5
UmFuZ2UgPSBJREJLZXlSYW5nZS51cHBlckJvdW5kKDEpOworICAgICAgICBhc3NlcnRfZmFsc2Uo
a2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktl
eVJhbmdlLnVwcGVyQm91bmQoKSAtICdvcGVuJyBwYXJhbWV0ZXIgaGFzIGNvcnJlY3QgZGVmYXVs
dCBzZXQiKTsKKworICAgIC8vIGJvdW5kCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAg
IHZhciBrZXlSYW5nZSA9IElEQktleVJhbmdlLmJvdW5kKDEsIDIsIHRydWUsIHRydWUpOworICAg
ICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdlLCAia2V5UmFu
Z2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJh
bmdlLmxvd2VyLCAxLCAia2V5UmFuZ2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5n
ZS51cHBlciwgMiwgImtleVJhbmdlIik7CisgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLmxv
d2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3BlbiIpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlS
YW5nZS51cHBlck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsKKyAgICB9LCAiSURCS2V5UmFu
Z2UuYm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFy
ZSBzZXQgY29ycmVjdGx5Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFy
IGtleVJhbmdlID0gSURCS2V5UmFuZ2UuYm91bmQoMSwgMik7CisgICAgICAgIGFzc2VydF9mYWxz
ZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIpOworICAg
IH0sICJJREJLZXlSYW5nZS5ib3VuZCgpIC0gJ2xvd2VyT3BlbicgYW5kICd1cHBlck9wZW4nIHBh
cmFtZXRlcnMgaGF2ZSBjb3JyZWN0IGRlZmF1bHRzIHNldCIpOworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlX2luY29ycmVjdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
a2V5cmFuZ2VfaW5jb3JyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDliZmYxYzYwY2Zj
NDAwYTgwMjliOTczYWEyZmI2NTBjODBlYmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlX2lu
Y29ycmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1MgSURCS2V5UmFuZ2Uu
Ym91bmQoKSAtIGJvdW5kIHJlcXVpcmVzIG1vcmUgdGhhbiAwIGFyZ3VtZW50cy4gCitQQVNTIElE
QktleVJhbmdlLmJvdW5kKG51bGwsIG51bGwpIC0gbnVsbCBwYXJhbWV0ZXJzIGFyZSBpbmNvcnJl
Y3QuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZCgxLCBudWxsIC8gbnVsbCwgMSkgLSBudWxsIHBh
cmFtZXRlciBpcyBpbmNvcnJlY3QuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZChsb3dlciwgdXBw
ZXIgLyBsb3dlciA+IHVwcGVyKSAtICAnbG93ZXInIGlzIGdyZWF0ZXIgdGhhbiAndXBwZXInLiAK
K1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoRE9NU3RyaW5nL0RhdGUvQXJyYXksIDEpIC0gQSBET01T
dHJpbmcsIERhdGUgYW5kIEFycmF5IGFyZSBncmVhdGVyIHRoYW4gYSBmbG9hdC4gCitQQVNTIElE
QktleVJhbmdlLmJvdW5kKG5vRXhpc3RpbmdWYXJpYWJsZSwgMSAvIGdvb2RWYXJpYWJsZSwgbm9F
eGlzdGluZ1ZhcmlhYmxlKSAtIG5vRXhpc3RpbmdWYXJpYWJsZSBpcyBub3QgZGVmaW5lZC4gCitQ
QVNTIElEQktleVJhbmdlLmJvdW5kKHRydWUsIDEpIC0gYm9vbGVhbiBpcyBub3QgYSB2YWxpZCBr
ZXkgdHlwZS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJrZXlyYW5nZV9pbmNvcnJlY3QuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJrZXlyYW5nZV9p
bmNvcnJlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTE5NzkxNDJlZmQ2ODJlMDZkMmUxNzI3NTVmZDQw
YmNkYzJiNjcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmtleXJhbmdlX2luY29ycmVjdC5odG1sCkBAIC0w
LDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdG
IFBhcmlzIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9dXRm
LTg+CisgICAgICAgIDx0aXRsZSBpZD0nZGVzYyc+SURCS2V5UmFuZ2UgVGVzdHMgLSBJbmNvcnJl
Y3Q8L3RpdGxlPgorICAgICAgICA8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5v
cmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3JhbmdlLWNvbmNlcHQi
PgorICAgICAgICA8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiB0aGUgbG93ZXIga2V5IGlzIGdy
ZWF0ZXIgdGhhbiB0aGUgdXBwZXIga2V5LCB0aGVuIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0
YUVycm9yIG11c3QgYmUgdGhyb3duLiI+CisgICAgICAgIDxsaW5rIHJlbD1hdXRob3IgaHJlZj0i
bWFpbHRvOmNocmNoYXJsZXM2N0BnbWFpbC5jb20iIHRpdGxlPSJDaHJpc3RvcGhlIENIQVJMRVMi
PgorCisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKworICAgICAgICAgICAgLy8gVHlwZUVycm9yOiBib3VuZCByZXF1aXJlcyBtb3JlIHRoYW4g
MCBhcmd1bWVudHMKKyAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZCgpIC0gYm91bmQgcmVxdWlyZXMgbW9yZSB0
aGFuIDAgYXJndW1lbnRzLiIpOworCisgICAgICAgICAgICAvLyBOdWxsIHBhcmFtZXRlcnMKKyAg
ICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBJREJLZXlS
YW5nZS5ib3VuZChudWxsLCBudWxsKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0sICJJREJLZXlSYW5nZS5ib3VuZChudWxsLCBudWxsKSAtIG51bGwgcGFyYW1ldGVycyBhcmUg
aW5jb3JyZWN0LiIpOworCisgICAgICAgICAgICAvLyAvLyBOdWxsIHBhcmFtZXRlcgorICAgICAg
ICAgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdl
LmJvdW5kKDEsIG51bGwpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBJREJLZXlSYW5nZS5ib3VuZChudWxsLCAxKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZCgxLCBudWxsIC8gbnVsbCwgMSkgLSBudWxsIHBh
cmFtZXRlciBpcyBpbmNvcnJlY3QuIik7CisKKyAgICAgICAgICAgIC8vIGJvdW5kIGluY29ycmVj
dAorICAgICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIGxv
d2VyQmFkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMxKSArIDU7CisgICAgICAgICAgICAg
ICAgdmFyIHVwcGVyID0gbG93ZXJCYWQgLSAxOworICAgICAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBJREJLZXlS
YW5nZS5ib3VuZChsb3dlckJhZCwgdXBwZXIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgnYicsICdhJyk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQobG93ZXIsIHVwcGVyIC8g
bG93ZXIgPiB1cHBlcikgLSAgJ2xvd2VyJyBpcyBncmVhdGVyIHRoYW4gJ3VwcGVyJy4iCisgICAg
ICAgICAgICApOworCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoJ2EnLCAxKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQobmV3IERhdGUoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVy
cm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5k
KFsxLCAyXSwgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5
UmFuZ2UuYm91bmQoRE9NU3RyaW5nL0RhdGUvQXJyYXksIDEpIC0gQSBET01TdHJpbmcsIERhdGUg
YW5kIEFycmF5IGFyZSBncmVhdGVyIHRoYW4gYSBmbG9hdC4iKTsKKworCisgICAgICAgICAgICAv
LyBSZWZlcmVuY2VFcnJvcjogdGhlIHZhcmlhYmxlIGlzIG5vdCBkZWZpbmVkCisgICAgICAgICAg
ICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2YXIgZ29vZFZhcmlhYmxlID0g
MTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBSZWZlcmVuY2VFcnJvcigpLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQobm9FeGlz
dGluZ1ZhcmlhYmxlLCAxKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBSZWZlcmVuY2VFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoZ29vZFZhcmlhYmxlLCBub0V4aXN0aW5nVmFy
aWFibGUpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgIklEQktleVJhbmdl
LmJvdW5kKG5vRXhpc3RpbmdWYXJpYWJsZSwgMSAvIGdvb2RWYXJpYWJsZSwgbm9FeGlzdGluZ1Zh
cmlhYmxlKSAtIG5vRXhpc3RpbmdWYXJpYWJsZSBpcyBub3QgZGVmaW5lZC4iKTsKKworICAgICAg
ICAgICAgLy8gVmFsaWQgdHlwZSBrZXkgZXJyb3IKKyAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCh0cnVlLCAxKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZCh0cnVl
LCAxKSAtIGJvb2xlYW4gaXMgbm90IGEgdmFsaWQga2V5IHR5cGUuIik7CisKKworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjdjYmJkM2QzZDdjOWRlMGFlMjJhNzdhNjUzOWRj
M2ViMGM5Zjk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2l0aCBh
biBpbmxpbmUga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2FkZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZGY1ODRkOGMyOWJjMjIyOTllMzY3Yzc4MGU5NmFi
MWUzYjEwOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkLmh0bWwKQEAgLTAsMCAr
MSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2l0aCBhbiBpbmxpbmUga2V5IDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKwor
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJz
dG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAg
ICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3JkLmtleSk7CisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDEwLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9hZGQxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU1MmEzOTdjNWI2NDEwMTY5YjE3
ZGU5MjdmYjY1ZjJjNWUyNzc1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQxMC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkg
LSBBdHRlbXB0IHRvIGNhbGwgJ2FkZCcgd2l0aG91dCBhbiBrZXkgcGFyYW1ldGVyIHdoZW4gdGhl
IG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMgIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfYWRkMTAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQxMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4Zjcx
NmQzMWRiZmJkOWRkYzdmOGE5NGE5ODYxMTc2MGM0N2Y3ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfYWRkMTAuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVt
cHQgdG8gY2FsbCAnYWRkJyB3aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2JqZWN0
IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3Bl
cnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFF
cnJvciIsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3Jk
KTsgfSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2FkZDExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQxMS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3MjhhMTQ0NDAwNDYyNDc4NTkyMjAzYWVlNWVkYjQ3
YzE2YjU5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQxMS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRv
IGFkZCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNv
bnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDEx
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfYWRkMTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTZhNGU0MGJhMjFlNTkw
YzdhOGYwYjM0ZjQxMmZjODU1YjNjNzA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Fk
ZDExLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBh
IHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFp
bnRzIG9mIGEgdmFsaWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiB7IHZhbHVlOiAx
IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisK
KyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1
YWxzKHJxLCB1bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGY4
ZWUxOWEyOWRkMTljYTY5MmQxYzIyNDdlMDM3MWIyZDM1ZTM5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2FkZDEyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJP
YmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRoZSByZWNv
cmQncyBpbi1saW5lIGtleSBpcyBub3QgZGVmaW5lZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9hZGQxMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE0Y2RhN2I1
NTgyYzBlYTViZDc5ZWZlYjE2NjEyZGU2OTI0YjEyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9hZGQxMi5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0
byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZp
bmVkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFy
IHJxLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
eyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3Ii
LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7IH0p
OworCisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9u
ZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9hZGQxMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUwNzE0MTdlYjNmZTBhNjVhMDBiM2U5ODVjOGJmYmQzYTA3Zjhh
NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQg
YSByZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0
IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9hZGQxMy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDEzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y0YjMwZDNh
ZmMxODI3YTExMjUxODA4NzA3ODk1ODlhYjgyNjY1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9hZGQxMy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0
byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5v
dCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQg
PSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIGFzc2VydF90aHJv
d3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5h
ZGQocmVjb3JkLCB7IHZhbHVlOiAxIH0pOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJx
LCB1bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2FkZDE0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWFiMzc2YzAy
ZjZkOTNhZDY2NTNiZTUzZGM0NjM1NGI0NTM5N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2FkZDE0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5hZGQoKSAtIEFkZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9l
cyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfYWRkMTQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQxNC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA3YTFjNzQxMjI2YmVmZWZhYjg3MmQ1MmE0MDMwODQ2NjE3MTkxYjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfYWRkMTQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAt
IEFkZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVldCB0
aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6
IDEsIGluZGV4ZWRQcm9wZXJ0eTogeyBwcm9wZXJ0eTogImRhdGEiIH0gfTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBy
cSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsg
a2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIHJxID0gb2JqU3RvcmUuYWRkKHJlY29y
ZCk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUocnEgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KTsKKyAg
ICAgICAgcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfQorICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9hZGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MTA0Mjk3MzE4MWUwZTRiYTAxYmQzZTFlMDA5ZDI1
YTU3ZjIxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gSWYgdGhlIHRy
YW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0
IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2FkZDE1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzIyY2E3
ZGEwYjE4Y2Y2YzA1NGExN2JlNzdhMzIzZGRiMmZkNjFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2FkZDE1Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUg
dHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBz
ZXQgdG8gcmVhZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVzdC1h
bnktdmFsdWUtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKTsKKyAgICAgICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUi
KTsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJSZWFkT25seUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuYWRk
KHsgcEtleTogInByaW1hcnlLZXlfMCJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9hZGQxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZlMTU5ZDEyZDgwOTlkZDM1Nzg1ZjNiM2ZjMjMwNTg0ZDFiM2JhMjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMg
YmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlv
biBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Fk
ZDE2Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDEyZTA0M2Y3MmE3
ZmRkMzJjMGY2Y2I4YjQ2OTU2YzAxZWYwMjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2FkZDE2Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUgb2JqZWN0
IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEg
RE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3
LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVz
dC1hbnktdmFsdWUtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgICBvc3RvcmUsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
b3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7
CisgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5j
dGlvbigpeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBm
dW5jdGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtl
eV8wIn0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2FkZDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZWUzYjZjODc0
MThjMjk0ZDA4NmU2MzlhNTY0YzgxOWM5YjE0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfYWRkMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuYWRkKCkgLSBhZGQgd2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfYWRkMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTBh
MDlkNThkN2UyZDEzOWE0N2NmY2U4NGNlNzRkMGJjMDNlMzc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2FkZDIuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3
aXRoIGFuIG91dC1vZi1saW5lIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBrZXkgPSAxLAorICAgICAgcmVjb3Jk
ID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwga2V5KTsK
KyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmdldChrZXkpOworCisgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkp
OworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZjQ3
OGUxNjFhODc0MTBiZGZhNDU0YTZhYmIwODE1ZDViZmRkYWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfYWRkMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSByZWNvcmQgd2l0aCBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cyAgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVlMGQ0MGEyZThkOWJiMWNmMGY4NTZjMDMzMmFhZWFhMDA3NzY0ODIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkMy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmFkZCgpIC0gcmVjb3JkIHdpdGggc2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKworICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5h
ZGQocmVjb3JkKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gZmFpbCh0LCAic3VjY2VzcyBvbiBh
ZGRpbmcgZHVwbGljYXRlIHJlY29yZCIpCisKKyAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJy
b3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
cS5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudHlwZSwgImVycm9yIik7CisKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07CisK
KyAgICAvLyBEZWZlciBkb25lLCBnaXZpbmcgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRvIHJ1bgor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9hZGQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MzJhMDlhMzA4MjRlYTQ4Yjc5NjljOThiNTU2ZDQyZDIxMTYyNzExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdoZXJlIGFuIGluZGV4IGhhcyB1
bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkNC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2FkZDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjM0ZWI3MTBkNmQzYWI2OTMxNGU5
NjE2MGQyMWMwYTk2OTlkMGM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDQuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3aGVyZSBhbiBpbmRleCBoYXMg
dW5pcXVlOnRydWUgc3BlY2lmaWVkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9w
ZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaTEiLCAicHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKyAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZCk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHJlY29y
ZCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IGZhaWwodCwgInN1Y2Nlc3Mgb24gYWRkaW5nIGR1
cGxpY2F0ZSBpbmRleGVkIHJlY29yZCIpCisKKyAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocnEuZXJyb3IubmFt
ZSwgIkNvbnN0cmFpbnRFcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudHlwZSwgImVycm9yIik7CisKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07CisK
KyAgICAvLyBEZWZlciBkb25lLCBnaXZpbmcgYSBzcHVyaW91cyBycS5vbnN1Y2Nlc3MgYSBjaGFu
Y2UgdG8gcnVuCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2FkZDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNDc3ODczYzdmOWI4NWMzYTQxMjAwYjc5YmMyNGM1YzY5
YThkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBvYmplY3Qgc3RvcmUn
cyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2FkZDUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1ZTIxNThj
Y2EyNGRkMTM2OWY4YTVjMDg0NzBlYWMxODgzZjVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9hZGQ1Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBvYmplY3Qgc3Rv
cmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlIDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9
IHsgdGVzdDogeyBvYmo6IHsga2V5OiAxIH0gfSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogInRl
c3Qub2JqLmtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUo
InN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC50ZXN0Lm9iai5rZXkpOwor
CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJv
cGVydHkpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Fk
ZDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNkMDU2NDNmZTkyYzgwNWZmNzE4MzMzNzJkZTNmMjc5MTAxYzg0NWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfYWRkNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBpbmxpbmUga2V5cyAgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ2Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkNi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYxMjNmZjU1YTNmYjVkNDcwMDg2MGM2Mzg3ZjNhYzg3NmVmOGEwOWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkNi5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3Jk
ID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCisgICAgICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAz
LCA0IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
eyBrZXlQYXRoOiAia2V5IiwgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAg
IG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAg
ICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAg
ICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlz
LnB1c2goY3Vyc29yLnZhbHVlLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Fk
ZDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg3MzQ1MTVkYjFjZDQ0ZDBkZTU3OWNlYjExMTg1NDZmM2NlNjIxYWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfYWRkNy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQtb2YtbGluZSBrZXlz
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ3Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWUxNDU1YzFlYjRkNzBiY2ZkNWIzNmM1ZDI3Mzk2ZTRhZjI3ZWNkMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9hZGQ3Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0
U3RvcmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQtb2YtbGluZSBrZXlzIDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAg
ICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAorICAgICAgZXhwZWN0ZWRfa2V5cyA9
IFsgMSwgMiwgMywgNCBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9Owor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1
YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5v
cGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAg
ICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2go
Y3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2FkZDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMzlmNDY4ZmUx
YWUzNjY1OWMwYTg1OGRmZTJiZmNlZGIwODdmNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfYWRkOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuYWRkKCkgLSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtl
eSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
YWRkOC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzQ2N2I5NWRjNjRh
ODE5Y2NjZTdiMWQxODA2M2Q3ZjQ2YjRmOTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2FkZDguaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVjdCBzdG9yZSBo
YXMgYXV0b0luY3JlbWVudDp0cnVlIGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJp
YnV0ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAgIGV4
cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiLCBhdXRvSW5j
cmVtZW50OiB0cnVlIH0pOworCisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Cisg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisgICAg
ICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoY3Vyc29y
KSB7CisgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3IudmFsdWUudGVzdC5v
Ymoua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMpOworICAgICAgICAgICAgICAgIHQuZG9uZSgp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkOS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfYWRkOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFlZWViNGMzZTk5YzFj
ZDFiY2QyMDlkZTlmOWMxYzdkZDYxNTQzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9h
ZGQ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5h
ZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHRoYXQgZG9lcyBub3QgbWVldCB0aGUgY29u
c3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3MgaW5saW5lIGtleSByZXF1aXJlbWVudHMgIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfYWRkOS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jOTMwNGEwMzEwYTcwOTcxZWNiZjU2NjhjMDllOGUzYTFjZmJkMGIzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2FkZDkuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9y
ZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHRoYXQgZG9lcyBub3QgbWVldCB0aGUg
Y29uc3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3MgaW5saW5lIGtleSByZXF1aXJlbWVudHMg
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgcnEsCisgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQsCisg
ICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBh
dGg6ICJrZXkiIH0pOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsgfSk7CisK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7
CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2NsZWFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jbGVhci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDk0ZTg3NzkyYTI4YmE5MGY4NzJmNjQ0NTFhZGM4ZTQ3MjVkYWUyNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jbGVhci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIFZlcmlmeSBjbGVhciByZW1v
dmVzIGFsbCByZWNvcmRzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfY2xlYXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTkxODBhODBlZDYwNzFjOTMwZTkzMjM1
Yjg1ZGQyZTc3MmI3ZTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyLmh0bWwK
QEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIFZlcmlmeSBjbGVhciByZW1vdmVzIGFs
bCByZWNvcmRzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuYWRk
KHsgcHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsgc29tZXRoaW5n
X2RpZmZlcmVudDogIll1cCwgdG90YWxseSBkaWZmZXJlbnQiIH0pOworICAgICAgICBvYmpTdG9y
ZS5hZGQoMTIzNCk7CisgICAgICAgIG9ialN0b3JlLmFkZChbMSwgMiwgMTIzNF0pOworCisgICAg
ICAgIG9ialN0b3JlLmNsZWFyKCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7
CisgICAgICAgIH0pOworICAgIH07CisKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5v
cGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIG51bGws
ICdjdXJzb3InKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Owor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
Y2xlYXIyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jbGVhcjItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI4OGMwMjhjMjRjNWIyYTY2NTU0Yzg0MGZjMGQxMjgxMTJkNmUwNDkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXIyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJPYmplY3RTdG9yZS5jbGVhcigpIC0gY2xlYXIgcmVtb3ZlcyBhbGwgcmVjb3Jk
cyBmcm9tIGFuIGluZGV4ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyMi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2NsZWFyMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMTBjYmQxYjVjMzliMWY3ZWIxY2U1
YWZkYmE5YWU0YzQ3YmQ1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXIyLmh0
bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIGNsZWFyIHJlbW92ZXMgYWxsIHJl
Y29yZHMgZnJvbSBhbiBpbmRleCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAg
b2JqU3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7CisgICAgICAgIG9ialN0
b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogInlvLCBtYW4iLCBzb21ldGhpbmdfZGlmZmVyZW50
OiAiWXVwLCB0b3RhbGx5IGRpZmZlcmVudCIgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGlu
ZGV4ZWRQcm9wZXJ0eTogMTIzNCB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsgaW5kZXhlZFBy
b3BlcnR5OiBbMSwgMiwgMTIzNF0gfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCgxMjM0KTsKKwor
ICAgICAgICBvYmpTdG9yZS5jbGVhcigpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmlu
ZWQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAg
LmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgbnVsbCwgJ2N1cnNvcicpOworICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jbGVhcjMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2NsZWFyMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlkMzBmODNkZDc0
NDgzZjQ2NjFiYzAxNjFjYzk4MWNkZGZiOWI5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9jbGVhcjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLmNsZWFyKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxv
bmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3Ig
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXIzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXIz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDU1MDlhYzk2MTZiMWIzNGYxYTdmM2FhNTdiYjAyYWRlYzA4OGVk
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jbGVhcjMuaHRtbApAQCAtMCwwICsxLDM2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJP
YmplY3RTdG9yZS5jbGVhcigpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3Rv
cmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25s
eUVycm9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJo
dHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZj
cy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURC
T2JqZWN0U3RvcmUtY2xlYXItSURCUmVxdWVzdCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sg
cEtleTogInByaW1hcnlLZXlfMCJ9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMSJ9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uIChldmVudCkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3Jl
Iik7CisgICAgICAgIHZhciBvc3RvcmUgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAg
ICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9u
bHlFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmNsZWFyKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwv
c2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9jbGVhcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNTZmZjhlZTAxYzc1YTQz
MjQ5OGUwYTNkMTQ2MDA4OWEwNzEwYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xl
YXI0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5j
bGVhcigpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NsZWFyNC5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Ns
ZWFyNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3NTI1MmIwNGM5MzI2MzgwZjc2MTRlYTZiOGQ1M2NiYWFk
NmUwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY2xlYXI0Lmh0bWwKQEAgLTAsMCAr
MSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVs
ZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlw
ZSBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNsZWFyLUlEQlJlcXVlc3QiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3JlLAorICAgICAgICB0ID0gYXN5bmNf
dGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3Rv
cmUiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkg
eworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
IkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUu
Y2xlYXIoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7
CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfY291bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0MzQ0Yzk1
ZmFiNDYzYTkyZTkxMmVjMGI0ZjI3NDZkZmNlNzc1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfY291bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVj
dFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgb2Jq
ZWN0IHN0b3JlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfY291bnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDFmMDZhZDk0Mjc0Mzc2OGNjOTg4NjkwMGIwMTA3
OThlYTQ1NjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50Lmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBp
biB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgdCA9
IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAg
ICAgICBzdG9yZS5hZGQoeyBkYXRhOiAiZGF0YSIgKyBpIH0sIGkpOworICAgICAgICB9CisgICAg
fQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmNvdW50KCk7CisKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEwKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfY291bnQyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudDItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZmEzMjZhOTIyNjI3N2E2NTM5ZDEwOTA5OTZhYmQ5ZTY1
ODBkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY291bnQyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0
aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aGluIHRoZSByYW5nZSAgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudDIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudDIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YzYyY2IzMDE3YWI2NzI2OGY1ODc3OTFjZWMzYjQ4ZWRlMTJmNDBkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50Mi5odG1sCkBAIC0wLDAgKzEsMzUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5JREJPYmplY3RT
dG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtl
eXMgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQg
PSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAg
ICAgICAgc3RvcmUuYWRkKHsgZGF0YTogImRhdGEiICsgaSB9LCBpKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIg
cnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5jb3VudChJREJLZXlSYW5nZS5ib3Vu
ZCg1LDIwKSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDUpOworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2
IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudDMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2NvdW50My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQyYTQ1OTEwN2Vh
NTAyMzA3NTFjZWEzMTI0NmM5OTM0OTg3OGVhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9jb3VudDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5
cyB3aXRoIHRoZSBrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudDMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9jb3VudDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzkxMmI2YzcyNTAxMTYzM2IwNTMwNjFi
NDFlZWEzNTUwYTkwOGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50My5odG1s
CkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
Kzx0aXRsZT5JREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJl
Y29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aCB0aGUga2V5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgZGIKKworICAgIGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorCisg
ICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0
aDogImsiIH0pCisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1OyBpKyspCisgICAgICAg
ICAgICBzdG9yZS5hZGQoeyBrOiAia2V5XyIgKyBpIH0pOworCisgICAgICAgIHN0b3JlLmNvdW50
KCJrZXlfMiIpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAxLCAiY291bnQoa2V5XzIpIikK
KworICAgICAgICAgICAgc3RvcmUuY291bnQoImtleV8iKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQsIDAsICJjb3VudChrZXlfKSIpCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCkK
KyAgICAgICAgICAgIH0pCisgICAgICAgIH0pCisgICAgfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50NC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfY291bnQ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTQ0ODUwYjc0M2ExY2Rj
NDlhZWU5Zjg5NDQ3OWY3OWNlMzdjNDNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Nv
dW50NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUu
Y291bnQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxl
bWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVF
cnJvciAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jb3VudDQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9j
b3VudDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWRhOGFjOGU1MjI5ZjMxZGZhMWNhYzY3ZWIyMDQ3NDA1
MDZiMjM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NvdW50NC5odG1sCkBAIC0wLDAg
KzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmNvdW50KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRl
bGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5
cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jb3VudC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3JlLAorICAgICAgICB0
ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBkYi5kZWxldGVPYmplY3RT
dG9yZSgic3RvcmUiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
IChldmVudCkgeworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAg
ICBvc3RvcmUuY291bnQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVmYmU0MjBhMDNlOWI4NWRlNDhjM2QxNzk2YjAwMjdkNGFiM2RjNTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSByZXR1cm5z
IGFuIElEQkluZGV4IGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MTAxMTk1NTNkMjQ2YWFhODA2MzQ2ODY0MTFjN2FhNTU3NDQw
ZjAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Lmh0bWwKQEAgLTAs
MCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIHJldHVybnMgYW4gSURCSW5kZXggYW5k
IHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICB2YXIgaW5kZXggPSBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5IiwgeyB1bmlxdWU6IHRy
dWUgfSk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5zdGFuY2VvZiBJREJJbmRleCwg
IklEQkluZGV4Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgubmFtZSwgImluZGV4Iiwg
Im5hbWUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmRleC5vYmplY3RTdG9yZSwgb2JqU3Rv
cmUsICJvYmplY3RTdG9yZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluZGV4LmtleVBhdGgs
ICJpbmRleGVkUHJvcGVydHkiLCAia2V5UGF0aCIpOworICAgICAgICBhc3NlcnRfdHJ1ZShpbmRl
eC51bmlxdWUsICJ1bmlxdWUiKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZGV4Lm11bHRpRW50
cnksICJtdWx0aUVudHJ5Iik7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFhMWFjNTMyOGMzOGEwNjk4NTcxOGNhM2QyN2E4MTZiMDQxNDc5ZTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIGFuIGlu
ZGV4IHdpdGggdGhlIG5hbWUgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIG9iamVjdCBzdG9y
ZSwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBD
b25zdHJhaW50RXJyb3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjBlMTE5Nzli
OTJmZjE1MzljNjk1MWI0YWE5MWE3OTBkNjU0MjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2NyZWF0ZUluZGV4MTAuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgp
IC0gSWYgYW4gaW5kZXggd2l0aCB0aGUgbmFtZSBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoaXMg
b2JqZWN0IHN0b3JlLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlv
biBvZiB0eXBlIENvbnN0cmFpbnRFcnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURPTVN0
cmluZy1uYW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5kZXhQ
YXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIg
dCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgdmFyIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwor
ICAgIG9zdG9yZS5jcmVhdGVJbmRleCgiYSIsICJhIik7CisgICAgYXNzZXJ0X3Rocm93cygiQ29u
c3RyYWludEVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJh
IiwgImEiKTsKKyAgICB9KTsKKyAgICB0LmRvbmUoKTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXgxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZhZjFlMmIxYWU5ODJmMThkMGFi
MDBkNzg4NzYxYTZmMDZhYTBkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDExLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5j
cmVhdGVJbmRleCgpIC0gSWYga2V5UGF0aCBpcyBub3QgYSB2YWxpZCBrZXkgcGF0aCwgdGhlIGlt
cGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBTeW50YXhFcnJv
ciAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXgxMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NGQyNDUwNmZiZDZkOTRhZTc0MjEw
NjZjNTMxM2IzMTQxZDUxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgxMS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiBrZXlQYXRo
IGlzIG5vdCBhIHZhbGlkIGtleSBwYXRoLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBh
IERPTUV4Y2VwdGlvbiBvZiB0eXBlIFN5bnRheEVycm9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5k
ZXgtRE9NU3RyaW5nLW5hbWUtRE9NU3RyaW5nLXNlcXVlbmNlLURPTVN0cmluZy0ta2V5UGF0aC1J
REJJbmRleFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0ZXJzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKwor
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZSkgeworICAgIHZhciBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICB2YXIgb3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIik7CisgICAgYXNzZXJ0X3Rocm93cygiU3ludGF4RXJyb3IiLCBmdW5jdGlvbigpeworICAg
ICAgICBvc3RvcmUuY3JlYXRlSW5kZXgoImFiIiwgIi4iKTsKKyAgICB9KTsKKyAgICB0LmRvbmUo
KTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTIzMjlmOTcwYTY0NjZmOWYzY2JmMzhmNWUwMmYyZjFkN2E3YjFlZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gSWYgdGhlIG9iamVjdCBz
dG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDhhNmQ2YTc3OTBjZGNiOGEyNjI3Y2UwYTZkOTE2N2FlZWQ0MjhkOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLmh0bWwKQEAgLTAsMCArMSwz
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURC
RGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVs
ZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlw
ZSBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURPTVN0cmluZy1u
YW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5kZXhQYXJhbWV0
ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRi
LAorICAgICAgICBvc3RvcmUsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgb3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIGRiLmRl
bGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAg
ICAgICAgICAgICAgIG9zdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5
Iik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDdmYmU1MjYyOTEwMzNmZWJhZGE2ODMyNGY1OTIxOTExODM0YWNjMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gT3BlcmF0ZSBvdXQgdmVyc2lv
bmNoYW5nZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDEzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY1MTIzMWM1MjU3ODNlOTZjMjBkMmU0ZWMzNzFjNTZjYWZhYzBlZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy5odG1sCkBAIC0wLDAgKzEsMzEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkRhdGFi
YXNlLmNyZWF0ZUluZGV4KCkgLSBPcGVyYXRlIG91dCB2ZXJzaW9uY2hhbmdlIHRocm93IEludmFs
aWRTdGF0ZUVycm9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5kZXgtRE9NU3RyaW5nLW5hbWUtRE9N
U3RyaW5nLXNlcXVlbmNlLURPTVN0cmluZy0ta2V5UGF0aC1JREJJbmRleFBhcmFtZXRlcnMtb3B0
aW9uYWxQYXJhbWV0ZXJzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIik7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3Jp
dGUiKTsKKyAgICAgICAgb3N0b3JlID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAg
ICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRT
dGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTJkMmE0ZGU1MGZlYmE3MmI2NmZhYTZhMDNm
ZjFjMGUwZTNiNmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRl
SW5kZXgoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIGluZGV4IHRoYXQgcmVxdWlyZXMgdW5pcXVl
IHZhbHVlcyBvbiBhbiBvYmplY3Qgc3RvcmUgYWxyZWFkeSBjb250YWlucyBkdXBsaWNhdGVzICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4YmViNDlmMzcxYjJhYzY2MjBjZDFjM2ZmODBj
NTFmMDRkYjg5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGF0dGVtcHQgdG8gY3Jl
YXRlIGFuIGluZGV4IHRoYXQgcmVxdWlyZXMgdW5pcXVlIHZhbHVlcyBvbiBhbiBvYmplY3Qgc3Rv
cmUgYWxyZWFkeSBjb250YWlucyBkdXBsaWNhdGVzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgdmFyIGRiLCBhYm9ydGVkLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29y
ZCA9IHsgaW5kZXhlZFByb3BlcnR5OiAiYmFyIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50
cmFuc2FjdGlvbiwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIpOworCisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQsIDEpOworICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3JkLCAyKTsKKyAgICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIsIHsgdW5pcXVlOiB0cnVlIH0pOworCisg
ICAgICAgIGFzc2VydF90cnVlKGluZGV4IGluc3RhbmNlb2YgSURCSW5kZXgsICJJREJJbmRleCIp
OworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50eXBlLCAiYWJvcnQiLCAiZXZlbnQgdHlwZSIpOworICAgICAgICB9KTsK
KworICAgICAgICBkYi5vbmFib3J0ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoYWJvcnRlZCwgInRyYW5zYWN0aW9uLmFib3J0IGV2ZW50IGhhcyBmaXJlZCIpOworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH07CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNh
Y3Rpb24ub25jb21wbGV0ZSA9IGZhaWwodCwgImdvdCBjb21wbGV0ZSwgZXhwZWN0ZWQgYWJvcnQi
KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGRmZmJlOTAzZTFmNGYwZDhhMWQxN2I4YTU3MmZkNWVkZWQ4NDU5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0
ZUluZGV4KCkgLSB0aGUgaW5kZXggaXMgdXNhYmxlIHJpZ2h0IGFmdGVyIGJlaW5nIG1hZGUgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mOTlmZGIwOGU0YjRiMjE2Zjk0N2ZkMjhiNzc3NjMwODM2NGQxNDFiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS5odG1sCkBA
IC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSB0aGUgaW5kZXggaXMgdXNhYmxl
IHJpZ2h0IGFmdGVyIGJlaW5nIG1hZGU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxt
ZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgYWJvcnRlZCwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDoxOTAwMH0pCisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAgIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAna2V5JyB9KTsKKworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHsga2V5OiAia2V5XyIgKyBpLCBpbmRleGVkUHJvcGVydHk6ICJpbmRleGVkXyIgKyBpIH0pOwor
CisgICAgICAgIHZhciBpZHggPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhl
ZFByb3BlcnR5IikKKworICAgICAgICBpZHguZ2V0KCdpbmRleGVkXzk5Jykub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQua2V5LCAna2V5Xzk5JywgJ2tleScpOworICAgICAgICB9KTsKKyAgICAgICAg
aWR4LmdldCgnaW5kZXhlZF85Jykub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAna2V5Xzkn
LCAna2V5Jyk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxl
dGVJbmRleC1ldmVudF9vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0
LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTI3MmNk
NjQzN2E1ZWRlMGU3M2M1NzU3ZTcwMGJjNzdmZGVjZmQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIEV2
ZW50IG9yZGVyaW5nIGZvciBhIGxhdGVyIGRlbGV0ZWQgaW5kZXggCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXIuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YmYwMTM5ZjZlYWEwNjg5YTA0YzRiZjI4MDI5MTA5NzdhNTc1N2ZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBvcmRlcmluZyBm
b3IgYSBsYXRlciBkZWxldGVkIGluZGV4PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
ICAgIHZhciBkYiwKKyAgICAgIGV2ZW50cyA9IFtdLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGxvZygidHJhbnNhY3Rpb24uY29tcGxldGUiKTsKKworICAgICAgICB2YXIg
dHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICB2YXIgcnFfYWRkMSA9IG9ialN0b3Jl
LmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDEpOworICAgICAgICBycV9hZGQxLm9uc3VjY2Vz
cyA9IGxvZygicnFfYWRkMS5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDEub25lcnJvciAgID0g
bG9nKCJycV9hZGQxLmVycm9yIik7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImFuaW1hbCIsIHsgdW5pcXVlOiB0cnVlIH0pOworCisgICAgICAgIHZhciBycV9hZGQy
ID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMik7CisgICAgICAgIHJxX2Fk
ZDIub25zdWNjZXNzID0gbG9nKCJycV9hZGQyLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRkMi5v
bmVycm9yICAgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBsb2coInJxX2FkZDIuZXJyb3Ii
KShlKTsKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgIGUuc3Rv
cFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBvYmpTdG9yZS5kZWxldGVJbmRl
eCgiaW5kZXgiKTsKKworICAgICAgICB2YXIgcnFfYWRkMyA9IG9ialN0b3JlLmFkZCh7IGFuaW1h
bDogIlVuaWNvcm4iIH0sIDMpOworICAgICAgICBycV9hZGQzLm9uc3VjY2VzcyA9IGxvZygicnFf
YWRkMy5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDMub25lcnJvciAgID0gbG9nKCJycV9hZGQz
LmVycm9yIik7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGxvZygib3Blbl9ycS5zdWNjZXNzIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZXZlbnRzLCBbICJycV9hZGQxLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicnFfYWRkMi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDMuc3VjY2VzcyIsCisK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zYWN0aW9uLmNvbXBs
ZXRlIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9ycS5z
dWNjZXNzIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiKTsKKyAgICAg
ICAgdC5kb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdldCAmJiBlLnRh
cmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAiOiAiICsgZS50
YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZXZl
bnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlrZXlw
YXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlrZXlwYXRoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjE2MzA1MjRlMzY3YjY0MWVkMTJmM2FiYWUzMDIzMjZk
OGRjMjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtl
eXBhdGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3Jl
LmNyZWF0ZUluZGV4KCkgLSBlbXB0eSBrZXlQYXRoIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1l
bXB0eWtleXBhdGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2JlOGVmZjVhOGU1ODc0MTBhMzgxMzJhMjUx
NDViODMzMWQ0ZmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1l
bXB0eWtleXBhdGguaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0g
ZW1wdHkga2V5UGF0aDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
IGFib3J0ZWQsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6
IDEwMDAwfSkKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAgICAgICAg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDU7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgib2JqZWN0
XyIgKyBpLCBpKTsKKworICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5k
ZXgiLCAiIikKKyAgICAgICAgcnEub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFj
aGVkKCJlcnJvcjogIiArIHJxLmVycm9yLm5hbWUpOyB9CisgICAgICAgIHJxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkgeyB9CisKKyAgICAgICAgb2JqU3RvcmUuaW5kZXgoImluZGV4IikKKyAgICAg
ICAgICAgICAgICAuZ2V0KCdvYmplY3RfNCcpCisgICAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCAnb2JqZWN0XzQnLCAncmVzdWx0Jyk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHQuZG9uZSgp
OworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWU1
MzU1ZmY2MGM3MjFmNzJkYzM1NWQzNjhmZjMyNmNhYTZhNDAxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGV2ZW50IG9yZGVy
IHdoZW4gdW5pcXVlIGNvbnN0cmFpbnQgaXMgdHJpZ2dlcmVkIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXg2LWV2ZW50X29yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEwMWNhMGFmYzJkY2Q5ODI3MWFmYmQy
ZmU5OTlkOTA5OTk3ZjllMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDYtZXZlbnRfb3JkZXIuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAt
IGV2ZW50IG9yZGVyIHdoZW4gdW5pcXVlIGNvbnN0cmFpbnQgaXMgdHJpZ2dlcmVkPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSByZWw9aGVscCBocmVmPWh0dHA6Ly9vZGluaG8u
aHRtbDUub3JnL0luZGV4ZWREQi9zcGVjL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9y
ZS1jcmVhdGVJbmRleC1JREJJbmRleC1ET01TdHJpbmctbmFtZS1hbnkta2V5UGF0aC1JREJJbmRl
eFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0ZXJzPgorPG1ldGEgcmVsPWFzc2VydCB0aXRsZT0i
VGhlIGluZGV4IHRoYXQgaXMgcmVxdWVzdGVkIHRvIGJlIGNyZWF0ZWQgY2FuIGNvbnRhaW4gY29u
c3RyYWludHMgb24gdGhlIGRhdGEgYWxsb3dlZCBpbiB0aGUgaW5kZXgncyByZWZlcmVuY2VkIG9i
amVjdCBzdG9yZSwgc3VjaCBhcyByZXF1aXJpbmcgdW5pcXVlbmVzcyBvZiB0aGUgdmFsdWVzIHJl
ZmVyZW5jZWQgYnkgdGhlIGluZGV4J3Mga2V5UGF0aC4gSWYgdGhlIHJlZmVyZW5jZWQgb2JqZWN0
IHN0b3JlIGFscmVhZHkgY29udGFpbnMgZGF0YSB3aGljaCB2aW9sYXRlcyB0aGVzZSBjb25zdHJh
aW50cywgdGhpcyBtdXN0IG5vdCBjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgY3JlYXRlSW5k
ZXggdG8gdGhyb3cgYW4gZXhjZXB0aW9uIG9yIGFmZmVjdCB3aGF0IGl0IHJldHVybnMuIFRoZSBp
bXBsZW1lbnRhdGlvbiBtdXN0IHN0aWxsIGNyZWF0ZSBhbmQgcmV0dXJuIGFuIElEQkluZGV4IG9i
amVjdC4gSW5zdGVhZCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCBxdWV1ZSB1cCBhbiBvcGVyYXRp
b24gdG8gYWJvcnQgdGhlICd2ZXJzaW9uY2hhbmdlJyB0cmFuc2FjdGlvbiB3aGljaCB3YXMgdXNl
ZCBmb3IgdGhlIGNyZWF0ZUluZGV4IGNhbGwuIj4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9Iklu
IHNvbWUgaW1wbGVtZW50YXRpb25zIGl0J3MgcG9zc2libGUgZm9yIHRoZSBpbXBsZW1lbnRhdGlv
biB0byBhc3luY2hyb25vdXNseSBydW4gaW50byBwcm9ibGVtcyBjcmVhdGluZyB0aGUgaW5kZXgg
YWZ0ZXIgdGhlIGNyZWF0ZUluZGV4IGZ1bmN0aW9uIGhhcyByZXR1cm5lZC4gRm9yIGV4YW1wbGUg
aW4gaW1wbGVtZW50YXRpb25zIHdoZXJlIG1ldGFkYXRhIGFib3V0IHRoZSBuZXdseSBjcmVhdGVk
IGluZGV4IGlzIHF1ZXVlZCB1cCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBkYXRhYmFzZSBhc3lu
Y2hyb25vdXNseSwgb3Igd2hlcmUgdGhlIGltcGxlbWVudGF0aW9uIG1pZ2h0IG5lZWQgdG8gYXNr
IHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uIGZvciBxdW90YSByZWFzb25zLiBTdWNoIGltcGxlbWVu
dGF0aW9ucyBtdXN0IHN0aWxsIGNyZWF0ZSBhbmQgcmV0dXJuIGFuIElEQkluZGV4IG9iamVjdC4g
SW5zdGVhZCwgb25jZSB0aGUgaW1wbGVtZW50YXRpb24gcmVhbGl6ZXMgdGhhdCBjcmVhdGluZyB0
aGUgaW5kZXggaGFzIGZhaWxlZCwgaXQgbXVzdCBhYm9ydCB0aGUgdHJhbnNhY3Rpb24gdXNpbmcg
dGhlIHN0ZXBzIGZvciBhYm9ydGluZyBhIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBhcHByb3ByaWF0
ZSBlcnJvciBhcyBlcnJvciBwYXJhbWV0ZXIuIj4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9Imlm
IHRoZSBpbmRleCBjYW4ndCBiZSBjcmVhdGVkIGR1ZSB0byB1bmlxdWUgY29uc3RyYWludHMsIENv
bnN0cmFpbnRFcnJvciBtdXN0IGJlIHVzZWQgYXMgZXJyb3IiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgLy8gVHJhbnNhY3Rpb24g
bWF5IGZpcmUgd2luZG93Lm9uZXJyb3IgaW4gc29tZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgc2V0
dXAoe2FsbG93X3VuY2F1Z2h0X2V4Y2VwdGlvbjp0cnVlfSk7CisKKyAgICB2YXIgZGIsCisgICAg
ICBldmVudHMgPSBbXSwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGlt
ZW91dDogMTAwMDB9KQorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBsb2coImRiLmVycm9yIik7CisgICAgICAg
IGRiLm9uYWJvcnQgPSBsb2coImRiLmFib3J0Iik7CisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uYWJvcnQgPSBsb2coInRyYW5zYWN0aW9uLmFib3J0IikKKyAgICAgICAgZS50YXJnZXQu
dHJhbnNhY3Rpb24ub25lcnJvciA9IGxvZygidHJhbnNhY3Rpb24uZXJyb3IiKQorICAgICAgICBl
LnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gbG9nKCJ0cmFuc2FjdGlvbi5jb21wbGV0
ZSIpCisKKyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAg
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgdmFy
IHJxX2FkZDEgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAxKTsKKyAgICAg
ICAgcnFfYWRkMS5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDEuc3VjY2VzcyIpOworICAgICAgICBy
cV9hZGQxLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMS5lcnJvciIpOworCisgICAgICAgIHZhciBy
cV9hZGQyID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMik7CisgICAgICAg
IHJxX2FkZDIub25zdWNjZXNzID0gbG9nKCJycV9hZGQyLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFf
YWRkMi5vbmVycm9yICAgPSBsb2coInJxX2FkZDIuZXJyb3IiKTsKKworICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiYW5pbWFsIiwgeyB1bmlxdWU6IHRydWUgfSkKKworICAg
ICAgICB2YXIgcnFfYWRkMyA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDMp
OworICAgICAgICBycV9hZGQzLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMy5zdWNjZXNzIik7Cisg
ICAgICAgIHJxX2FkZDMub25lcnJvciAgID0gbG9nKCJycV9hZGQzLmVycm9yIik7CisgICAgfQor
CisgICAgb3Blbl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5f
cnEuZXJyb3IiKShlKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsgInJx
X2FkZDEuc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
cV9hZGQyLnN1Y2Nlc3MiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJycV9hZGQzLmVycm9yOiBBYm9ydEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRyYW5zYWN0aW9uLmVycm9yOiBBYm9ydEVycm9yIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiLmVycm9yOiBBYm9ydEVycm9yIiwKKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNhY3Rpb24uYWJvcnQ6IENv
bnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
Yi5hYm9ydDogQ29uc3RyYWludEVycm9yIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAib3Blbl9ycS5lcnJvcjogQWJvcnRFcnJvciIgXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZXZlbnRzIik7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAg
ICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7CisgICAgICAgIH07
CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTNlZDFl
M2VhYTFiNWMyNmM5OGNkYTg2ZDQ4NTA1MDI3OTMwOTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIEV2ZW50IG9yZGVyaW5n
IGZvciBDb25zdHJhaW50RXJyb3Igb24gcmVxdWVzdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1l
dmVudF9vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNzczZDNkM2JlNDUwMTJhMGEwZDZkYjM5MzMy
YjEzNjA3ODk1ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2
ZW50X29yZGVyLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIEV2
ZW50IG9yZGVyaW5nIGZvciBDb25zdHJhaW50RXJyb3Igb24gcmVxdWVzdDwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgorPG1ldGEgcmVsPWhlbHAgaHJlZj1odHRwOi8vb2RpbmhvLmh0bWw1
Lm9yZy9JbmRleGVkREIvc3BlYy9PdmVydmlldy5odG1sI2Rmbi1zdGVwcy1mb3ItYWJvcnRpbmct
YS10cmFuc2FjdGlvbj4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IlVubGVzcyBlcnJvciB3YXMg
c2V0IHRvIG51bGwsIGNyZWF0ZSBhIERPTUVycm9yIG9iamVjdCBhbmQgc2V0IGl0cyBuYW1lIHRv
IGVycm9yLiBTZXQgdHJhbnNhY3Rpb24ncyBlcnJvciBwcm9wZXJ0eSB0byB0aGlzIG5ld2x5IGNy
ZWF0ZWQgRE9NRXJyb3IuIj4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSB0cmFuc2Fj
dGlvbidzIHJlcXVlc3QgbGlzdCBjb250YWluIGFueSByZXF1ZXN0cyB3aG9zZSBkb25lIGZsYWcg
aXMgc3RpbGwgZmFsc2UsIGFib3J0IHRoZSBzdGVwcyBmb3IgYXN5bmNocm9ub3VzbHkgZXhlY3V0
aW5nIGEgcmVxdWVzdCBmb3IgZWFjaCBzdWNoIHJlcXVlc3QgYW5kIHF1ZXVlIGEgdGFzayB0byBw
ZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ij4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9InNl
dCB0aGUgcmVxdWVzdCdzIGVycm9yIGF0dHJpYnV0ZSB0byBhIERPTUVycm9yIHdpdGggYSB0eXBl
IG9mIEFib3J0RXJyb3IuIj4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IkRpc3BhdGNoIGFuIGV2
ZW50IGF0IHJlcXVlc3QuIFRoZSBldmVudCBtdXN0IHVzZSB0aGUgRXZlbnQgaW50ZXJmYWNlIGFu
ZCBoYXZlIGl0cyB0eXBlIHNldCB0byAnZXJyb3InLiBUaGUgZXZlbnQgYnViYmxlcyBhbmQgaXMg
Y2FuY2VsYWJsZS4gVGhlIHByb3BhZ2F0aW9uIHBhdGggZm9yIHRoZSBldmVudCBpcyB0cmFuc2Fj
dGlvbidzIGNvbm5lY3Rpb24sIHRoZW4gdHJhbnNhY3Rpb24gYW5kIGZpbmFsbHkgdGhlIHJlcXVl
c3QuIFRoZXJlIGlzIG5vIGRlZmF1bHQgYWN0aW9uIGZvciB0aGUgZXZlbnQuIj4KKzxtZXRhIHJl
bD1hc3NlcnQgdGl0bGU9IlF1ZXVlIHVwIGFuIG9wZXJhdGlvbiB0byBkaXNwYXRjaCBhbiBldmVu
dCBhdCB0cmFuc2FjdGlvbi4gVGhlIGV2ZW50IG11c3QgdXNlIHRoZSBFdmVudCBpbnRlcmZhY2Ug
YW5kIGhhdmUgaXRzIHR5cGUgc2V0IHRvICdhYm9ydCcuIFRoZSBldmVudCBkb2VzIGJ1YmJsZSBi
dXQgaXMgbm90IGNhbmNlbGFibGUuIFRoZSBwcm9wYWdhdGlvbiBwYXRoIGZvciB0aGUgZXZlbnQg
aXMgdHJhbnNhY3Rpb24ncyBjb25uZWN0aW9uIGFuZCB0aGVuIHRyYW5zYWN0aW9uLiI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IC8vIFRyYW5zYWN0aW9uIG1heSBmaXJlIHdpbmRvdy5vbmVycm9yIGluIHNvbWUgaW1wbGVtZW50
YXRpb25zLgorICAgIHNldHVwKHthbGxvd191bmNhdWdodF9leGNlcHRpb246dHJ1ZX0pOworCisg
ICAgdmFyIGRiLAorICAgICAgZXZlbnRzID0gW10sCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJh
bnNhY3Rpb247CisgICAgICAgIGRiLm9uZXJyb3IgPSBsb2coImRiLmVycm9yIik7CisgICAgICAg
IGRiLm9uYWJvcnQgPSBsb2coImRiLmFib3J0Iik7CisgICAgICAgIHR4bi5vbmFib3J0ID0gbG9n
KCJ0cmFuc2FjdGlvbi5hYm9ydCIpCisgICAgICAgIHR4bi5vbmVycm9yID0gbG9nKCJ0cmFuc2Fj
dGlvbi5lcnJvciIpCisgICAgICAgIHR4bi5vbmNvbXBsZXRlID0gbG9nKCJ0cmFuc2FjdGlvbi5j
b21wbGV0ZSIpCisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIik7CisKKyAgICAgICAgdmFyIHJxX2FkZDEgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6
ICJVbmljb3JuIiB9LCAxKTsKKyAgICAgICAgcnFfYWRkMS5vbnN1Y2Nlc3MgPSBsb2coInJxX2Fk
ZDEuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQxLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMS5l
cnJvciIpOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJhbmltYWwi
LCB7IHVuaXF1ZTogdHJ1ZSB9KQorCisgICAgICAgIHZhciBycV9hZGQyID0gb2JqU3RvcmUuYWRk
KHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMik7CisgICAgICAgIHJxX2FkZDIub25zdWNjZXNzID0g
bG9nKCJycV9hZGQyLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRkMi5vbmVycm9yICAgPSBsb2co
InJxX2FkZDIuZXJyb3IiKTsKKworICAgICAgICB2YXIgcnFfYWRkMyA9IG9ialN0b3JlLmFkZCh7
IGFuaW1hbDogIkhvcnNlIiB9LCAzKTsKKyAgICAgICAgcnFfYWRkMy5vbnN1Y2Nlc3MgPSBsb2co
InJxX2FkZDMuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQzLm9uZXJyb3IgICA9IGxvZygicnFf
YWRkMy5lcnJvciIpOworICAgIH0KKworICAgIG9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgbG9nKCJvcGVuX3JxLmVycm9yIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZXZlbnRzLCBbICJycV9hZGQxLnN1Y2Nlc3MiLAorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQyLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNhY3Rpb24uZXJyb3I6
IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJkYi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicnFfYWRkMy5lcnJvcjogQWJvcnRFcnJvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5lcnJvcjogQWJvcnRFcnJvciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYi5lcnJvcjogQWJvcnRF
cnJvciIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zYWN0
aW9uLmFib3J0OiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGIuYWJvcnQ6IENvbnN0cmFpbnRFcnJvciIsCisKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuZXJyb3I6IEFib3J0RXJyb3IiIF0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIpOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQor
ICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5u
YW1lKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cp
OworICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTc2ZWZkMjJlYzVjNmZkYmEzMGNmNzU5ZWRiNzk4OTY4MTVlM2RlOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGlu
ZGV4IGNhbiBiZSB2YWxpZCBrZXlzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXg4LXZhbGlkX2tleXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE3MmZlYjJmMDljODY3Mzc2MjFjNDYyMDFjN2JhZDNiOGI3NTdhM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMuaHRt
bApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gaW5kZXggY2FuIGJlIHZh
bGlkIGtleXM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9A
b3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIG5hbWU9dGltZW91
dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3Vt
ZW50LnRpdGxlLCB7dGltZW91dDoxOTAwMH0pLAorICAgICAgbm93ID0gbmV3IERhdGUoKSwKKyAg
ICAgIG1hcjE4ID0gbmV3IERhdGUoMTExMTExMTExMTExMSksCisgICAgICBhciA9IFsiWWF5Iiwg
MiwgLUluZmluaXR5XSwKKyAgICAgIG51bSA9IDEzMzcKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQu
dHJhbnNhY3Rpb24sCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGtleVBhdGg6ICdrZXknIH0pOworCisgICAgICAgIG9ialN0b3JlLmFkZCh7IGtl
eTogIm5vdyIsICAgIGk6IG5vdyAgIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6ICJt
YXIxOCIsICBpOiBtYXIxOCB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiAiYXJyYXki
LCAgaTogYXIgICAgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTogIm51bWJlciIsIGk6
IG51bSAgIH0pOworCisgICAgICAgIHZhciBpZHggPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5k
ZXgiLCAiaSIpCisKKyAgICAgICAgaWR4LmdldChub3cpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0
LmtleSwgJ25vdycsICdrZXknKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
cmVzdWx0LmkuZ2V0VGltZSgpLCBub3cuZ2V0VGltZSgpLCAnZ2V0VGltZScpOworICAgICAgICB9
KTsKKyAgICAgICAgaWR4LmdldChtYXIxOCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAn
bWFyMTgnLCAna2V5Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dC5pLmdldFRpbWUoKSwgbWFyMTguZ2V0VGltZSgpLCAnZ2V0VGltZScpOworICAgICAgICB9KTsK
KyAgICAgICAgaWR4LmdldChhcikub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAnYXJyYXkn
LCAna2V5Jyk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dC5pLCBhciwgJ2FycmF5IGlzIHRoZSBzYW1lJyk7CisgICAgICAgIH0pOworICAgICAgICBpZHgu
Z2V0KG51bSkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAnbnVtYmVyJywgJ2tleScpOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaSwgbnVtLCAnbnVtYmVy
IGlzIHRoZSBzYW1lJyk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
OS1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5h
bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhZWU5YmUzMzFlZmE2ZDYyZGMyNGFjZGRiNmI1
MDI2YzFjZWE2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVt
cHR5bmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5IG5hbWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDktZW1wdHluYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5
bmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ODkxZjRmMjVlNGMyOTBjMDNjNWNjMTMxMDNmMWNkZjM1
Y2M1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFt
ZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZW1wdHkgbmFtZTwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20i
IHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBv
cnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiCisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgdmFy
IHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDU7IGkrKykKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGlkeDogIm9iamVj
dF8iICsgaSB9LCBpKQorCisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCIiLCAiaWR4IikKKwor
ICAgICAgICBzdG9yZS5pbmRleCgiIikKKyAgICAgICAgICAgICAuZ2V0KCdvYmplY3RfNCcpCisg
ICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmlkeCwgJ29iamVjdF80Jywg
J3Jlc3VsdCcpCisgICAgICAgIH0pCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhO
YW1lc1swXSwgIiIsICJpbmRleE5hbWVzWzBdIikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9y
ZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3RoIikKKyAgICB9CisKKyAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgc3RvcmUgPSBk
Yi50cmFuc2FjdGlvbigic3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKQorCisgICAgICAgIGFz
c2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lc1swXSwgIiIsICJpbmRleE5hbWVzWzBdIikKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFt
ZXMubGVuZ3RoIikKKworICAgICAgICB0aGlzLmRvbmUoKQorICAgIH0KKzwvc2NyaXB0PgorCis8
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI5ODY3NDYz
ZDM1M2FlOWRhNTg4NzMxZTI4ZmI1NWMxNTFmZGJkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9kZWxldGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVj
dFN0b3JlLmRlbGV0ZSgpIC0gZGVsZXRlIHJlbW92ZXMgcmVjb3JkIChpbmxpbmUga2V5cykgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MjNjMjAyMWQzMTNhNzdjNWM2ZmQyNGVjNDAxNTNkOWM5NjJiMGM3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS5odG1sCkBAIC0wLDAgKzEsNDYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVj
dFN0b3JlLmRlbGV0ZSgpIC0gZGVsZXRlIHJlbW92ZXMgcmVjb3JkIChpbmxpbmUga2V5cyk8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXki
IH0pOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkZWxldGVfcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVsZXRl
KHJlY29yZC5rZXkpOworCisgICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgdW5kZWZpbmVkKTsKKworICAgICAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFJlbW92ZWQpOworICAgICAgICB9KTsKKyAg
ICB9OworCisgICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkUmVtb3ZlZCgpIHsKKyAgICAgICAgdmFy
IHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsKKworICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTlhZmE2MWQ0YzA0YzM4
YzdiZjFjMGEwYTFhMmI4ODEwOWJkODJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3Jl
LmRlbGV0ZSgpIC0ga2V5IGRvZXNuJ3QgbWF0Y2ggYW55IHJlY29yZHMgIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYTBjMTVlYjQxYmIwY2JhMWMxOWQyNWU0Mzc0YzVhNTczYzEzNzZhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTIuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5k
ZWxldGUoKSAtIGtleSBkb2Vzbid0IG1hdGNoIGFueSByZWNvcmRzIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBk
ZWxldGVfcnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5kZWxldGUoMSk7CisKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCB1bmRlZmluZWQpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0p
OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJv
YmplY3RzdG9yZV9kZWxldGUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGUzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MjZkOWEwMDAzMTE5M2EwZWMxNWQ4NmE1ODE2ZTY4M2RiZTAy
NmRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gb2JqZWN0IHN0
b3JlJ3Mga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9kZWxldGUzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZiOWU0ZmY4ODNkYTk4YzM2OGY2YzM1MmVmMWIyZDAyNDAxZDRjZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfZGVsZXRlMy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmRlbGV0
ZSgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmQgPSB7IHRlc3Q6IHsgb2JqOiB7IGtleTogMSB9IH0sIHByb3BlcnR5OiAi
ZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0
IiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgZGVsZXRlX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRl
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLmRlbGV0ZShyZWNvcmQudGVzdC5vYmoua2V5KTsKKworICAg
ICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisKKyAg
ICAgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhW
ZXJpZnlSZWNvcmRSZW1vdmVkKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9u
IFZlcmlmeVJlY29yZFJlbW92ZWQoKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAg
ICAgICAgICAgICAgIC5nZXQocmVjb3JkLnRlc3Qub2JqLmtleSk7CisKKyAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9k
ZWxldGU0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzBhNzg2YzQxZGIyMjMzMTgwYjc1ZDZi
MGMxZjgyODJmNThmMzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgp
IC0gZGVsZXRlIHJlbW92ZXMgcmVjb3JkIChvdXQtb2YtbGluZSBrZXlzKSAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9kZWxldGU0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNmYTQ1MGM5OWFmYzUwMzljMzE5NTY1YzYxODgxZjlkZDI1MGRhMDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmRlbGV0ZSgpIC0gZGVsZXRlIHJlbW92ZXMgcmVjb3JkIChvdXQtb2YtbGluZSBrZXlzKSA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICBrZXkgPSAxLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3JkLCBrZXkpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRlbGV0ZV9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGUoa2V5KTsK
KworICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7
CisKKyAgICAgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBf
ZnVuYyhWZXJpZnlSZWNvcmRSZW1vdmVkKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1
bmN0aW9uIFZlcmlmeVJlY29yZFJlbW92ZWQoKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5z
YWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQor
ICAgICAgICAgICAgICAgICAgIC5nZXQoa2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZGE5NmJkYTViNGZhYWFkNmNlNTQyMTZlNjI5OWI2YTJj
ZTQxOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSByZW1vdmVz
IGFsbCBvZiB0aGUgcmVjb3JkcyBpbiB0aGUgcmFuZ2UgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9kZWxldGU1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNzli
N2MzYjQ1OGI2ZGI1ZDk3Njk2NzE1ZGEyOWEyYmI5ZGVmN2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlNS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gcmVtb3ZlcyBhbGwgb2YgdGhlIHJlY29y
ZHMgaW4gdGhlIHJhbmdlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHZhciBkYgorICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAg
ICAgIHZhciBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgZm9y
KHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICBvcy5hZGQoImRhdGEiICsgaSwg
aSkKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAg
ICAgIHZhciBvcyA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKQorICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorCisgICAgICAgIG9zLmRlbGV0ZSgg
SURCS2V5UmFuZ2UuYm91bmQoMywgNikgKQorICAgICAgICBvcy5jb3VudCgpLm9uc3VjY2VzcyA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA2LCAiQ291bnQgYWZ0ZXIgZGVsZXRpbmcgMy02IGZy
b20gMTAiKTsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9KQorICAgIH0KKzwv
c2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxl
dGU2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU2LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZWMxZjBiM2YwODBiYzU0MDFkYTVlZjVlZTMxZDI0ZDBjYmZiOWJlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMg
SURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0
aHJvdyBSZWFkT25seUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjU0ZTA0MzI1ZjkzYTRmNGY3
ZTY2Y2ViZjBlOTBhODUxMWJiMDVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0
ZTYuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIElmIHRoZSB0cmFuc2Fj
dGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byBy
ZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtZGVsZXRlLUlEQlJlcXVlc3QtYW55LWtl
eSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNf
dGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAorICAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
biAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtl
eSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB2
YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIik7CisgICAgICAgIHZhciBvc3RvcmUgPSB0
eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9ubHlFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAg
ICAgICAgICAgICAgb3N0b3JlLmRlbGV0ZSgicHJpbWFyeUtleV8wIik7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZkNWE4ZmRmZWY4YzI2ZTdiOTg2ZWFhZWJm
ZDVkMWI3NGJlNWMzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU3LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5kZWxldGUoKSAt
IElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9u
IG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU3Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmYxNTdiOTc0MTRhYTMwNzk3ODI2MDEzOTFmOWVjYmI3YzE0MWY5NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxldGU3Lmh0bWwKQEAgLTAsMCArMSwzMyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQs
IHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52
YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQk9iamVjdFN0b3JlLWRlbGV0ZS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3JlLAorICAgICAgICB0ID0gYXN5
bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAor
ICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9
KTsKKyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgfQorCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdC5zdGVwKGZ1
bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIs
IGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmRlbGV0ZSgicHJpbWFyeUtleV8w
Iik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ODg5NGM2MjE4OTgzNGZiM2MzYWU3YmFiYTY3YmYwZGRhOTI5MTcwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJPYmplY3RTdG9yZS5kZWxldGVJbmRleCgpIC0gcmVtb3ZlcyB0aGUgaW5kZXggIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9kZWxl
dGVJbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmY3ZmFkYzk2N2M1ODg0M2IwNWU2YTAxYTdkNThj
MjU1ZDhmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXguaHRtbApA
QCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGVJbmRleCgpIC0gcmVtb3ZlcyB0aGUgaW5kZXgg
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAga2V5ID0gMSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9
OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAuY3JlYXRlSW5k
ZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCisgICAgfTsKKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYi5jbG9zZSgpOworICAgICAgICB2YXIg
bmV3X3ZlcnNpb24gPSBjcmVhdGVkYih0LCBkYi5uYW1lLCAyKTsKKyAgICAgICAgbmV3X3ZlcnNp
b24ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC50cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICBvYmpTdG9yZS5kZWxldGVJbmRl
eCgiaW5kZXgiKTsKKyAgICAgICAgfQorICAgICAgICBuZXdfdmVyc2lvbi5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgaW5kZXgsCisgICAgICAgICAgICAgIG9ialN0
b3JlID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ05vdEZv
dW5kRXJyb3InLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBpbmRleCA9IG9ialN0b3Jl
LmluZGV4KCJpbmRleCIpIH0pOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmRleCwgdW5k
ZWZpbmVkKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9CisgICAgfQorPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOThjZThkYWMxMmEzNTA0NjgzZGU4MDRlODA5YzYwNTc4ZDEzMGRkOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBBdHRlbXB0aW5nIHRvIHVzZSBkZWxldGVkIElEQk9iamVjdFN0b3JlIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRib2JqZWN0c3RvcmVfZGVsZXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YjhmNzQwYjY1NmE1MWQyNjYzOGJjNTJhZjQ5ZDIxYTM1NjFjZDQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+QXR0ZW1wdGluZyB0byB1
c2UgZGVsZXRlZCBJREJPYmplY3RTdG9yZTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPSJo
dHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I29iamVjdC1zdG9yZSI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJbnZhbGlkU3RhdGVFcnJv
ciBPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQgaGFz
IGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiI+Cis8bGluayByZWw9YXV0aG9yIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgIGFkZF9zdWNjZXNzID0gZmFsc2UsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAic3RvcmUiLCAib2JqZWN0
U3RvcmVOYW1lcyIpOworCisgICAgICAgIHZhciBycV9hZGQgPSBvYmpTdG9yZS5hZGQoMSk7Cisg
ICAgICAgIHJxX2FkZC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsgYWRkX3N1Y2Nlc3MgPSB0cnVl
OyB9OworICAgICAgICBycV9hZGQub25lcnJvciA9IGZhaWwodCwgJ3JxX2FkZC5lcnJvcicpOwor
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpZHgiLCAiYSIpOworICAgICAgICBkYi5k
ZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi5vYmpl
Y3RTdG9yZU5hbWVzLmxlbmd0aCwgMCwgIm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGFmdGVyIGRl
bGV0ZSIpOworCisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0
b3JlLmFkZCgyKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7
IG9ialN0b3JlLnB1dCgzKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rp
b24oKSB7IG9ialN0b3JlLmdldCgxKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwg
ZnVuY3Rpb24oKSB7IG9ialN0b3JlLmNsZWFyKCk7IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dz
KG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5jb3VudCgpOyB9KTsKKyAgICAgICAgYXNzZXJ0
X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUuZGVsZXRlKDEpOyB9KTsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUub3BlbkN1cnNvcigp
OyB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUu
aW5kZXgoImlkeCIpOyB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigp
IHsgb2JqU3RvcmUuZGVsZXRlSW5kZXgoImlkeCIpOyB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93
cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeDIiLCAiYSIpOyB9
KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICBhc3NlcnRfdHJ1ZShhZGRfc3VjY2VzcywgIkZpcnN0IGFkZCB3YXMgc3VjY2Vzc2Z1bCIpOwor
ICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzNGUyYWUyNWM0ZDI4NzlkYWI5ZDI2MDgwNDk4MWZh
MDE1ODc3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIG51
bWJlciAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NTgzZWFkM2VlZDcwMTdlMWY0YmI5YmZhMzA3NTFmODAxMDMxMTdh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldC5odG1sCkBAIC0wLDAgKzEsMzUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVj
dFN0b3JlLmdldCgpIC0ga2V5IGlzIGEgbnVtYmVyIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5
OiAzLjE0MTU5MjY1LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgICAgICAgIC5hZGQocmVjb3JkKTsK
KyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOwor
CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3JkLmtleSk7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3Jk
LnByb3BlcnR5KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2dldDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFlMWMzNmY1YWJkZTlmMDUxMDExNGQ2ZmJlODNhZWViMTE0MDRmZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaWRib2JqZWN0c3RvcmVfZ2V0Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSBrZXkgaXMgYSBzdHJpbmcgIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfZ2V0Mi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MzE0ZGIwZDY0YzBjMWRlNmIzZjAwYTllZTkyYWU0MzVlNjEzNTE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX2dldDIuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGtl
eSBpcyBhIHN0cmluZyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAg
IHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogInRoaXMgaXMgYSBrZXkg
dGhhdCdzIGEgc3RyaW5nIiwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAuYWRkKHJlY29y
ZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtl
eSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQua2V5
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCBy
ZWNvcmQucHJvcGVydHkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAg
IH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY3ZjFiZTg4YzYzMjNiN2U3MGQ1MDdhMDA4NmNkMDNhNmYxMzkyMDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSBrZXkgaXMgYSBEYXRlICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX2dldDMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWU4ZmFkMGM4ZjkzZjZiYWUzNGU0NmMyYzc2ZmNmNDFkYmQ3ZjhjNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9nZXQzLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkg
LSBrZXkgaXMgYSBEYXRlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiBuZXcgRGF0ZSgpLCBw
cm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBr
ZXlQYXRoOiAia2V5IiB9KQorICAgICAgICAgIC5hZGQocmVjb3JkKTsKKyAgICB9CisKKyAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOworCisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LmtleS52YWx1ZU9mKCksIHJlY29yZC5rZXkudmFsdWVPZigp
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCBy
ZWNvcmQucHJvcGVydHkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX2dldDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiY2VhYmQzNmM2NzJkYjJmMTQxMjI0YzlmYTJiNzA5ZjI2YTk5ZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3Jk
IHRoYXQgZG9lc24ndCBleGlzdCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfZ2V0NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNzlkYTJiM2QwYTVkMGZjMmVjYjcw
MDcyZTYzZmUwOThiMDg4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0NC5odG1s
CkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJl
Y29yZCB0aGF0IGRvZXNuJ3QgZXhpc3QgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBycSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAgICAgICAgICAu
Z2V0KDEpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdHMsIHVuZGVmaW5lZCk7
CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgMTApOwor
ICAgICAgICB9KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigp
IHt9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfZ2V0NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0NS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTMyMTA3ZjIzZjQ5NTNkNmJlZDI5ZmJiNTcyMDc0YTFjZDFkYzRjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29yZCB3aXRoIHRo
ZSBmaXJzdCBrZXkgaW4gdGhlIHJhbmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9nZXQ1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdhYjU5OGMwMzk5YjE0ZDJh
OWRmZWZlM2Q4MzY0NmM4NmM3N2EyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ1
Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCT2JqZWN0
U3RvcmUuZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5IGluIHRo
ZSByYW5nZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3Vw
cG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgdmFyIGRiCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYihhc3luY190ZXN0KCkpCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgdmFy
IG9zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBmb3IodmFyIGkg
PSAwOyBpIDwgMTA7IGkrKykKKyAgICAgICAgICAgIG9zLmFkZCgiZGF0YSIgKyBpLCBpKQorICAg
IH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAg
ICAgICAgICAuZ2V0KCBJREJLZXlSYW5nZS5ib3VuZCgzLCA2KSApCisgICAgICAgICAgLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAiZGF0YTMiLCAiZ2V0KDMtNikiKTsKKyAg
ICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9KQorICAgIH0KKzwvc2NyaXB0PgorCis8
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ2LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9nZXQ2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDI0ZTRiZjYyMDdi
NDQ4Y2FhMzA2NzkyMjEyNjc3MDIxOWM4NzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X2dldDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3Jl
LmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNh
Y3Rpb24gIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0Ni5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dl
dDYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YTdiNTQ3N2I4YTU1OGMwMmVkN2IyYjEyYzMwOGU3NDU2MjA3
MWM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDYuaHRtbApAQCAtMCwwICsxLDMw
IEBACivvu788IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJPYmplY3RTdG9yZS5nZXQoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBh
Ym9ydGVkIHRyYW5zYWN0aW9uIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ill1
aWNoaU51a2l5YW1hIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vWXVpY2hpTnVraXlhbWEiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICB9CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpOworICAgICAgICBzdG9yZS50cmFuc2FjdGlvbi5hYm9ydCgpOworICAgICAgICBhc3NlcnRf
dGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBzdG9yZS5nZXQoMSk7CisgICAgICAgIH0sICJ0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZl
RXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbi4iKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAg
fQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfZ2V0Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2FjZDY1NjE1ZjA0Y2YwNDM5OWU4YjRjYjEzYTBmMDU1ZWRhYmE1MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGlu
dmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2dldDcuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9nZXQ3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk1NjEwYzllZWEyZmI4ZDNhNzczNWRlMTI5YTBhZTYx
ZWU3MmExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9nZXQ3Lmh0bWwKQEAgLTAsMCAr
MSwyOSBAQAor77u/PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZh
bGlkIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJZdWljaGlOdWtpeWFt
YSIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1l1aWNoaU51a2l5YW1hIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAg
IGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHN0
b3JlLmdldChudWxsKQorICAgICAgICB9LCAidGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52
YWxpZCBrZXkuIik7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX2luZGV4LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9pbmRleC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA4NTY2MTU5YjY4
NjEwN2U0N2EzNjZjYTg2MGNhNzI1OTI2NjQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9pbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuaW5kZXgoKSAtIHJldHVybnMgYW4gaW5kZXggIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
aW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMzgzYjJkMDk2
N2NmZGU2YzNhOWU2MDU0NGE1YjYzZjFhNDA2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfaW5kZXguaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5pbmRleCgpIC0gcmV0dXJucyBh
biBpbmRleCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAg
ICAgIC5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgaW5kZXgg
PSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKTsKKwor
ICAgICAgICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAnaW5zdGFuY2Vv
ZiBJREJJbmRleCcpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworCis8L3NjcmlwdD4KKwor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNv
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDExNmZmOWYzMDJhMDY0ODBjNjQ2YWI3NzViMzE2YjgxMDk0MzEwMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkgLSBpdGVyYXRlIHRocm91Z2gg
MTAwIG9iamVjdHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfb3BlbkN1cnNvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YWQ4ODkwMjczOGU1OTZmM2Q0
ZWZjYmRmNDQzYzdlOTRjY2MyOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfb3BlbkN1
cnNvci5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQk9i
amVjdFN0b3JlLm9wZW5DdXJzb3IoKSAtIGl0ZXJhdGUgdGhyb3VnaCAxMDAgb2JqZWN0czwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRp
dGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYgorICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBmb3Ig
KHZhciBpPTA7IGkgPCAxMDA7IGkrKykKKyAgICAgICAgICAgIHN0b3JlLmFkZCgicmVjb3JkXyIg
KyBpLCBpKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBjb3VudCA9IDAKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9u
KCJzdG9yZSIpCisKKyAgICAgICAgdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAg
IC5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAg
ICAgIGNvdW50ICs9IDE7CisgICAgICAgICAgICAgICAgZS50YXJnZXQucmVzdWx0LmNvbnRpbnVl
KCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkKKworICAgICAgICB0eG4ub25jb21wbGV0ZSA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMTAwKTsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAgIH0pCisgICAgfQor
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9vcGVuQ3Vyc29yX2ludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3Jf
aW52YWxpZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFiNThhMWM3MDMyOGQxZmUwYWMyNGUz
YzJlMWNmYmFhZjM2ODIzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29y
X2ludmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLm9wZW5DdXJzb3IoKSAtIGludmFsaWQgLSBwYXNzIHNvbWV0aGluZyBvdGhlciB0aGFuIG51
bWJlciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmYjMzMzMwOTI0
NGQ4MjUwZTY5NWUxYjkyMTdhYTBiYTdkMzY1YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfb3BlbkN1cnNvcl9pbnZhbGlkLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaW52YWxpZDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwgb3BlbjsKKworICAgIHNldHVw
KGZ1bmN0aW9uKCkgeworICAgICAgICBvcGVuID0gaW5kZXhlZERCLm9wZW4oJ3Rlc3RkYi0nICsg
bmV3IERhdGUoKS5nZXRUaW1lKCkpOworICAgICAgICBvcGVuLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKyAgICAgICAg
ICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKTsKKworICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKCJkYXRhIiwgIDEpOworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhMiIs
IDIpOworICAgICAgICB9OworICAgIH0sCisgICAgeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOwor
CisKKyAgICBvcGVuLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworCisgICAgICAgIGFzeW5jX3Rl
c3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhhbiBudW1iZXIi
KS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBpZHggPSBkYi50cmFuc2FjdGlv
bigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iik7CisKKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IGlkeC5vcGVuQ3Vyc29yKHsgbG93ZXI6ICJhIiB9KTsgfSk7CisKKyAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGlk
eC5vcGVuQ3Vyc29yKHsgbG93ZXI6ICJhIiwgbG93ZXJPcGVuOiBmYWxzZSB9KTsgfSk7CisKKyAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgZnVu
Y3Rpb24oKSB7IGlkeC5vcGVuQ3Vyc29yKHsgbG93ZXI6ICJhIiwgbG93ZXJPcGVuOiBmYWxzZSwg
dXBwZXI6IG51bGwsIHVwcGVyT3BlbjogZmFsc2UgfSk7IH0pOworCisgICAgICAgICAgICB0aGlz
LmRvbmUoKTsKKyAgICAgICAgfSk7CisKKworICAgICAgICAvLyBTdG9wIGJsb2NraW5nIHRoZSB0
ZXN0aW5nIHN5c3RlbSBmcm9tIGhlcmVvbgorICAgICAgICBkb25lKCk7CisgICAgfQorCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlm
MDYyZDQyZTQ3ODQyYWI1YjBmNWFlYWEyMmU2MWZhYmRjNmRlYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJv
YmplY3RzdG9yZV9wdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9i
amVjdFN0b3JlLnB1dCgpIC0gcHV0IHdpdGggYW4gaW5saW5lIGtleSAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJv
YmplY3RzdG9yZV9wdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMThi
MzQ2ODRlOGM5ZmViZmU4Mjg1N2Q4MzZmZTlhODJkYjA5ZmIyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX3B1dC5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdp
dGggYW4gaW5saW5lIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6
ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7
CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5w
cm9wZXJ0eSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXks
IHJlY29yZC5rZXkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9wdXQxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIxMmM3ODQ1MmVjMWE0NjQ4YzI2OWY5YTdkODQ2MjQ1NTIyY2VmY2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBjYWxsICdwdXQnIHdpdGhv
dXQgYW4ga2V5IHBhcmFtZXRlciB3aGVuIHRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGlu
ZSBrZXlzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDEwLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVf
cHV0MTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDI5YmEzOWY3NGZhMTIwZTIyNGJmYmM4ZjJkMzJmNTVl
ZmVlZDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDEwLmh0bWwKQEAgLTAsMCAr
MSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIGNhbGwgJ3B1dCcgd2l0aG91dCBhbiBr
ZXkgcGFyYW1ldGVyIHdoZW4gdGhlIG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMg
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEs
CisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtl
eVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisg
ICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsgfSk7CisK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7
CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9i
amVjdHN0b3JlX3B1dDExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDUzZmRiZmI0YjQxNjRmNzQ0NzkwNDE1Y2Q0MWI5NjAzZTNiOTZiYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJl
Y29yZCB3aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRz
IG9mIGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDExLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfcHV0MTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmVkNDMzOWM2M2FlNTA1OGFlMDUzMGU1
YmRjM2VkMzFmNDYzMTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDExLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3
aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEg
dmFsaWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiB7IHZhbHVlOiAxIH0sIHByb3Bl
cnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAg
YXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9
IG9ialN0b3JlLnB1dChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1
bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lk
Ym9iamVjdHN0b3JlX3B1dDEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Zjc4ZDc4ODc1MDBh
ODk4MDE2Y2JhMzNlZjM4NWI3ODlhYTVhNGNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X3B1dDEyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBpbi1s
aW5lIGtleSBpcyBub3QgZGVmaW5lZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX3B1dDEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1ZWFmZThjYjg1OTIwMGQ0
YzdlNTFkMjY0NjJhODU1N2EyNGVlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQx
Mi5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSBy
ZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkIDwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHJxLAorICAg
ICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRo
OiAia2V5IiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCk7IH0pOworCisgICAg
ICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9wdXQxMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY4NmE5ODU4MDdiMDM5Y2MzZDliZmM1NzMzNWNiOGJmOTU1MjE3ZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQg
d2hlcmUgdGhlIG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25z
dHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxMy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX3B1dDEzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiOTAzYWYxYzAxNTI4YWVl
ZGY3NWQwNTU5N2VjNjM5ZTBjNzUwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQx
My5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSBy
ZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRo
ZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3Bl
cnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFF
cnJvciIsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3Jk
LCB7IHZhbHVlOiAxIH0pOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmlu
ZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX3B1dDE0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTkxN2FhNGMxYTFiNWNhNWIy
OWIwYmM5YzA2OGJiNTBmZGI2ZTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDE0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQo
KSAtIFB1dCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVl
dCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfcHV0MTQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YzhjMTQ2
NDg5NzYzN2EwMWMxZjkwYmM5Mzc0ZmQ4MWJhOTQ0NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0
c3RvcmVfcHV0MTQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIFB1dCBhIHJl
Y29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3Ry
YWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIGluZGV4
ZWRQcm9wZXJ0eTogeyBwcm9wZXJ0eTogImRhdGEiIH0gfTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAg
ICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDog
ImtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4
ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCk7CisKKyAg
ICAgICAgYXNzZXJ0X3RydWUocnEgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KTsKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
fQorICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJv
YmplY3RzdG9yZV9wdXQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMzYjVhOWJkYTQ1MzU0MDk1Mzc1NDRiM2E3NDY1N2VhMzEzMzEwMzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gSWYgdGhlIHRyYW5zYWN0aW9u
IHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRv
bmx5LCB0aHJvdyBSZWFkT25seUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9pZGJvYmplY3RzdG9yZV9wdXQxNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZmQ3MTY2ZTgwMzNhNWQ5
ODdhNDlkY2E0MWEwOWUxODZiYWM5NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0
MTUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSB0cmFuc2FjdGlv
biB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFk
b25seSwgdGhyb3cgUmVhZE9ubHlFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVy
dmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtcHV0LUlEQlJlcXVlc3QtYW55LXZhbHVlLWFu
eS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
a2V5UGF0aDoicEtleSJ9KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uIChldmVudCkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIik7
CisgICAgICAgIHZhciBvc3RvcmUgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAg
IHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9ubHlF
cnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLnB1dCh7cEtleTogInBy
aW1hcnlLZXlfMCJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5k
b25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQxNi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNi
ZDA2NGEwMWJlYzVkZGFkMzU4YWUxZGU1NDA3NWY5NDZhMWE5ZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
b2JqZWN0c3RvcmVfcHV0MTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
Qk9iamVjdFN0b3JlLnB1dCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVk
LCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIElu
dmFsaWRTdGF0ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTYuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9wdXQxNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZGM4NjgxY2QzMjY3N2E3NWJmNTZiZDI0
Yjg1YzkyZWMyMzkzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0MTYuaHRtbApA
QCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJl
ZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24g
b2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVy
dmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtcHV0LUlEQlJlcXVlc3QtYW55LXZhbHVlLWFu
eS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3Jl
LAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewor
ICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBkYi5k
ZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAg
ICAgICAgICAgICAgICBvc3RvcmUucHV0KHtwS2V5OiAicHJpbWFyeUtleV8wIn0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3Jl
X3B1dDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZDM5YmQ1ZmE3NTY3YzMwMTYyODc0NmI3
NTQzMDJkMTE0MzM5MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0Mi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBwdXQg
d2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0Mi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX3B1dDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDVlYTQ3MDU2NzRhZmQxMjYy
MDU1Y2M0MzZkMGI0YjhiMTgxYjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDIu
aHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aXRoIGFuIG91dC1vZi1s
aW5lIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCksCisgICAgICBrZXkgPSAxLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTog
ImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
Iik7CisKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCwga2V5KTsKKyAgICB9OworCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgICAgLmdldChrZXkpOworCisgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOworCisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX3B1dDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNWNiMTM4ZTA5YmQwNjVlY2Vm
MTAxYzNjZTk0YzU0NDVjNzVlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0My1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkg
LSByZWNvcmQgd2l0aCBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cyAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9wdXQzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0My5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2ZmY4
YmNjY2E0ZThjYjIxZDQ5NzVlZmI5ZWNlYjQwOWU5MTRiYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfcHV0My5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gcmVjb3Jk
IHdpdGggc2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICB2YXIgZGIsIHN1Y2Nlc3NfZXZlbnQsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAgIHJlY29yZF9wdXQg
PSB7IGtleTogMSwgcHJvcGVydHk6ICJjaGFuZ2VkIiwgbW9yZTogWyJzdHVmZiIsIDJdIH07CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRo
OiAia2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisKKyAgICAgICAgdmFy
IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZF9wdXQpOworICAgICAgICBycS5vbmVycm9yID0gZmFp
bCh0LCAiZXJyb3Igb24gcHV0Iik7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgc3VjY2Vzc19ldmVudCA9IHRydWU7CisgICAg
ICAgIH0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgYXNzZXJ0X3RydWUoc3VjY2Vzc19ldmVudCk7CisKKyAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUo
InN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KDEpOworCisgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciByZWMgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjLmtleSwgcmVj
b3JkX3B1dC5rZXkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWMucHJvcGVydHksIHJl
Y29yZF9wdXQucHJvcGVydHkpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhyZWMu
bW9yZSwgcmVjb3JkX3B1dC5tb3JlKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJvYmplY3RzdG9yZV9wdXQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOWViYThiN2M1MjA1N2I2YzIxZTI1ZTc5ZjBjZTU1MjU4OWUwY2U2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdoZXJlIGFuIGluZGV4
IGhhcyB1bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0
NC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX3B1dDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGI4NDBkZjc2ODY2NzY5
MGY4NGUyODFhOWFiN2I2YTQzNzhmNDNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1
dDQuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aGVyZSBhbiBpbmRl
eCBoYXMgdW5pcXVlOnRydWUgc3BlY2lmaWVkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImkxIiwgInByb3BlcnR5IiwgeyB1bmlxdWU6IHRydWUgfSk7CisgICAgICAgIG9ialN0b3JlLnB1
dChyZWNvcmQpOworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOworICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSBmYWlsKHRoaXMsICJzdWNjZXNzIG9uIHB1dHRpbmcgZHVwbGlj
YXRlIGluZGV4ZWQgcmVjb3JkIikKKworICAgICAgICBycS5vbmVycm9yID0gdGhpcy5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhycS5lcnJvci5uYW1l
LCAiQ29uc3RyYWludEVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3IiKTsKKworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnR5cGUsICJlcnJvciIpOworCisgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7
CisgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9KTsKKyAgICB9Owor
CisgICAgLy8gRGVmZXIgZG9uZSwgZ2l2aW5nIGEgc3B1cmlvdXMgcnEub25zdWNjZXNzIGEgY2hh
bmNlIHRvIHJ1bgorICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB0aGlzLmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ1
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTEwZmNmOTU5ZGY5MmYxZjRmMzE5NWU2MWE3MTNh
ZjE1NDc0ZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0
b3JlJ3Mga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmpl
Y3RzdG9yZV9wdXQ1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZDkw
YzY4ZjVmOTViYTM5NWMxMGY4NzMyZDliNDE0YzI1Y2MxNGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2Jq
ZWN0c3RvcmVfcHV0NS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0
IHN0b3JlJ3Mga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNv
cmQgPSB7IHRlc3Q6IHsgb2JqOiB7IGtleTogMSB9IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJ0ZXN0Lm9iai5rZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICB9
OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQudGVzdC5vYmoua2V5
KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3Jk
LnByb3BlcnR5KTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9wdXQ2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ2LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xM2FlMDYyY2E5OWFkMTc5MDIxOTZkN2Y1Zjc4OTg0NWI2ZjI4ZDZhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX3B1dDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gYXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMg
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0Ni5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDYuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNzQ4MGFlNTRiYjk0MDEzNTlkZTAwODNiNzE4NmRkNzY4NGFiOGI3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDYuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RT
dG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzIDwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJl
Y29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAorICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwg
MiwgMywgNCBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHsga2V5UGF0aDogImtleSIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAg
b2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAg
ICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJz
dG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxf
a2V5cy5wdXNoKGN1cnNvci52YWx1ZS5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAg
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9y
ZV9wdXQ3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ3LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44Y2U0ZWFmMmM2MzMxZjVhOGQ5NWZlYzRiODcxZTNmYWY0MjkzODg5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2lkYm9iamVjdHN0b3JlX3B1dDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gYXV0b0luY3JlbWVudCBhbmQgb3V0LW9mLWxpbmUg
a2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ3Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0
Ny5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZmY4OTkxNzFjZGYzMzhjYjU0M2M5ODdiYTU1ZTU1N2I2MmEx
YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3RvcmVfcHV0Ny5odG1sCkBAIC0wLDAgKzEsNDcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9i
amVjdFN0b3JlLnB1dCgpIC0gYXV0b0luY3JlbWVudCBhbmQgb3V0LW9mLWxpbmUga2V5cyA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAgIGV4cGVjdGVkX2tl
eXMgPSBbIDEsIDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgb2JqU3Rv
cmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgICAgICBv
YmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAg
fTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIg
YWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisK
KyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5w
dXNoKGN1cnNvci5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ4LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTIzN2E1
OGVhMjViZTg4MGQ4YjQwNjlkMTZmYjc4NTE2ZTFiNmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVj
dHN0b3JlX3B1dDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVj
dFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0b3JlIGhhcyBhdXRvSW5jcmVtZW50OnRydWUgYW5kIHRo
ZSBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0
b3JlX3B1dDguaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlNzhjYmM5
YWZkODcxNmJlZTgyNTVkYjBmNjIyZWZiMmUxY2I2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3Rz
dG9yZV9wdXQ4Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qgc3Rv
cmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVjdCBh
dHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0g
YXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCisgICAg
ICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiwgYXV0
b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAg
ICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQp
OworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAor
ICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1
cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLnRl
c3Qub2JqLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYm9iamVjdHN0b3JlX3B1dDktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NGY3ZDhhNjIy
Y2U0ZWMwNGZjNmFhNThkZGE4OTY1MzU1NDIwYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRib2JqZWN0c3Rv
cmVfcHV0OS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQgdGhl
IGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1lbnRz
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYm9iamVjdHN0b3JlX3B1dDkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzc5YWVkN2YxNjc2ZWEyOTQ3NDA1OTlhNWFhNDhjMTYyZjFlNWViYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9pZGJvYmplY3RzdG9yZV9wdXQ5Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0
U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQg
dGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1l
bnRzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
LAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBr
ZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAor
ICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCwgMSk7IH0p
OworCisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9u
ZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJ0cmFuc2FjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdlN2FkMTZhYjQ0MGJjY2Y4ODBhN2M0M2VhNDc5NDU5NmM2YzQyNGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRidHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IElEQlRyYW5zYWN0aW9uIC0gcmVxdWVzdCBnb3R0ZW4gYnkgdGhlIGhhbmRsZXIgCitQQVNTIElE
QlRyYW5zYWN0aW9uIC0gcmVxdWVzdCByZXR1cm5lZCBieSBvcGVuKCkgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0
cmFuc2FjdGlvbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWYzZjMyNGRhMTM1MmQ0MmM1NDVjOGFkN2Q3M2Mw
NGZiZGMzYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0lu
ZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQlRyYW5zYWN0aW9uIC0gY29tcGxldGUg
ZXZlbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rp
b24tb25jb21wbGV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZjZkNDQzOWZjOGRjY2RmYzQzYTM1MTNl
MzgwZDQzMDZjOTc3N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS5o
dG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQlRyYW5zYWN0
aW9uIC0gY29tcGxldGUgZXZlbnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1h
aWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLCBzdG9yZSwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGlt
ZW91dDogMTAwMDB9KSwKKyAgICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KSwKKyAgICAgIHN0YWdl
cyA9IFtdOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHN0YWdlcy5wdXNoKCJ1cGdyYWRlbmVlZGVkIik7CisKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
Jyk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgc3RhZ2VzLnB1c2goImNvbXBsZXRlIik7CisgICAgICAgIH07Cisg
ICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBz
dGFnZXMucHVzaCgic3VjY2VzcyIpOworCisgICAgICAgIC8vIE1ha2luZyBhIHRvdGFsbHkgbmV3
IHRyYW5zYWN0aW9uIHRvIGNoZWNrCisgICAgICAgIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9i
amVjdFN0b3JlKCdzdG9yZScpLmNvdW50KCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGFnZXMsIFsgInVwZ3Jh
ZGVuZWVkZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv
bXBsZXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWNj
ZXNzIiBdKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgLy8g
WFhYOiBNYWtlIG9uZSB3aXRoIHJlYWwgdHJhbnNhY3Rpb25zLCBub3Qgb25seSBvcGVuKCkgdmVy
c2lvbmNoYW5nZSBvbmUKKworICAgICAgICAvKmRiLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZScpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBzdGFnZXMucHVzaCgib3BlbmN1cnNvcjEiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0b3Jl
Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBzdGFn
ZXMucHVzaCgib3BlbmN1cnNvcjIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGUudGFyZ2V0LnRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBzdGFnZXMucHVzaCgib3BlbmN1cnNvcjMiKTsKKyAg
ICAgICAgfQorICAgICAgICAqLworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0cmFuc2FjdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM1N2U2NWZmZTY4ZmQ3ZWM1ZDU1NWVjNmYyMjFkY2M2MjJkZWRhMzIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvaWRidHJhbnNhY3Rpb24uaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5JREJUcmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBy
ZXF1ZXN0IGdvdHRlbiBieSB0aGUgaGFuZGxlciIpLAorICAgICAgb3Blbl90ID0gYXN5bmNfdGVz
dChkb2N1bWVudC50aXRsZSArICIgLSByZXF1ZXN0IHJldHVybmVkIGJ5IG9wZW4oKSIpLAorCisg
ICAgb3Blbl9ycSA9IGluZGV4ZWREQi5vcGVuKCJpZGJ0cmFuc2FjdGlvbi0iICsgbmV3IERhdGUo
KS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9wZW5fdC5zdGVwKGZ1bmN0aW9u
KCkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEudHJhbnNhY3Rpb24sIG51bGwsICJJ
REJPcGVuREJSZXF1ZXN0LnRyYW5zYWN0aW9uIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3Bl
bl9ycS5zb3VyY2UsIG51bGwsICJJREJPcGVuREJSZXF1ZXN0LnNvdXJjZSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKG9wZW5fcnEucmVhZHlTdGF0ZSwgInBlbmRpbmciLCAiSURCT3BlbkRCUmVx
dWVzdC5yZWFkeVN0YXRlIik7CisKKyAgICAgICAgYXNzZXJ0X3RydWUob3Blbl9ycSBpbnN0YW5j
ZW9mIElEQk9wZW5EQlJlcXVlc3QsICJvcGVuX3JxIGluc3RhbmNlb2YgSURCT3BlbkRCUmVxdWVz
dCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEgKyAiIiwgIltvYmplY3QgSURCT3Bl
bkRCUmVxdWVzdF0iLCAiSURCT3BlbkRCUmVxdWVzdCAob3Blbl9ycSkiKTsKKworICAgICAgICBv
cGVuX3QuZG9uZSgpOworICAgIH0pOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQs
IG9wZW5fcnEsICJlLnRhcmdldCBpcyByZXVzaW5nIHRoZSBzYW1lIElEQk9wZW5EQlJlcXVlc3Qi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC50cmFuc2FjdGlvbiwgb3Blbl9ycS50
cmFuc2FjdGlvbiwgIklEQk9wZW5EQlJlcXVlc3QudHJhbnNhY3Rpb24iKTsKKworICAgICAgICBh
c3NlcnRfdHJ1ZShlLnRhcmdldC50cmFuc2FjdGlvbiBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9u
LCAidHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiIpOworICAgICAgICB0LmRv
bmUoKTsKKyAgICB9KTsKKworCisgICAgLy8gTm90IHBsYXVzaWJsZSBjb25kaXRpb25zLi4uCisg
ICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFtZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFt
ZSk7IH0pOworICAgICAgICAgICAgb3Blbl90LnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJl
YWNoZWQobmFtZSk7IH0pOworICAgICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tl
ZCA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJv
ciA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYnRyYW5zYWN0aW9uX2Fib3J0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0
cmFuc2FjdGlvbl9hYm9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFlZWEwYTcyYTk4MDEx
MGYxNWFjZTJlMTcxMGYyNDEzZWJjNzk4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ0cmFuc2FjdGlvbl9h
Ym9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCVHJhbnNhY3Rpb24g
LSBhYm9ydCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidHJhbnNhY3Rpb25f
YWJvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDFiZWFkMjYxZDE2M2IyZjhjNDZhOTcwZmU0N2ZiMGEz
YTY5MGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bWwKQEAgLTAsMCAr
MSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklE
QlRyYW5zYWN0aW9uIC0gYWJvcnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1h
aWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBkYiwgYWJvcnRlZCwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGlt
ZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZCA9IHsgaW5kZXhlZFByb3BlcnR5OiAiYmFyIiB9
OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbiwKKyAgICAgICAgICBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmQsIDEpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkLCAyKTsKKyAgICAgICAg
dmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIsIHsgdW5pcXVlOiB0cnVlIH0pOworCisgICAgICAgIGFzc2VydF90cnVlKGluZGV4IGluc3Rh
bmNlb2YgSURCSW5kZXgsICJJREJJbmRleCIpOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uYWJvcnQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhYm9y
dGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAiYWJvcnQiLCAi
ZXZlbnQgdHlwZSIpOworICAgICAgICB9KTsKKworICAgICAgICBkYi5vbmFib3J0ID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3RydWUoYWJvcnRlZCwgInRyYW5zYWN0aW9uLmFi
b3J0IGV2ZW50IGhhcyBmaXJlZCIpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH07
CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZhaWwodCwgImdv
dCBjb21wbGV0ZSwgZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRp
diBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidmVyc2lvbmNoYW5nZWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9p
ZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMmU4MzI5NGJk
ODUzYjViMjE0ZWVlYWEwZDNlMTgzNDkyM2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRidmVyc2lvbmNo
YW5nZWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJWZXJzaW9u
Q2hhbmdlRXZlbnQgZmlyZWQgaW4gdXBncmFkZW5lZWRlZCwgdmVyc2lvbmNoYW5nZSBhbmQgZGVs
ZXRlRGF0YWJhc2UgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ2ZXJzaW9u
Y2hhbmdlZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzA1NGZjOGIxYmNlNjM5NDRhYzkzN2U2Nzhl
M2NhMjFkZTkwZWE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYnZlcnNpb25jaGFuZ2VldmVudC5odG1sCkBA
IC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQlZlcnNpb25DaGFuZ2VF
dmVudCBmaXJlZCBpbiB1cGdyYWRlbmVlZGVkLCB2ZXJzaW9uY2hhbmdlIGFuZCBkZWxldGVEYXRh
YmFzZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0i
aHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN2ZXJzaW9uY2hhbmdlLS10cmFuc2FjdGlvbi1zdGVwcyI+Cis8bGluayByZWw9YXNzZXJ0IHRp
dGxlPSJGaXJlIGEgdmVyc2lvbmNoYW5nZSBldmVudCBhdCBlYWNoIG9iamVjdCBpbiBvcGVuRGF0
YWJhc2VzIHRoYXQgaXMgb3Blbi4gVGhlIGV2ZW50IG11c3Qgbm90IGJlIGZpcmVkIG9uIG9iamVj
dHMgd2hpY2ggaGFzIHRoZSBjbG9zZVBlbmRpbmcgZmxhZyBzZXQuIFRoZSBldmVudCBtdXN0IHVz
ZSB0aGUgSURCVmVyc2lvbkNoYW5nZUV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSB0aGUgb2xkVmVy
c2lvbiBwcm9wZXJ0eSBzZXQgdG8gZGIncyB2ZXJzaW9uIGFuZCBoYXZlIHRoZSBuZXdWZXJzaW9u
IHByb3BlcnR5IHNldCB0byB2ZXJzaW9uLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJGaXJl
IGEgdXBncmFkZW5lZWRlZCBldmVudCB0YXJnZXRlZCBhdCByZXF1ZXN0LiBUaGUgZXZlbnQgbXVz
dCB1c2UgdGhlIElEQlZlcnNpb25DaGFuZ2VFdmVudCBpbnRlcmZhY2UgYW5kIGhhdmUgdGhlIG9s
ZFZlcnNpb24gcHJvcGVydHkgc2V0IHRvIG9sZCB2ZXJzaW9uIGFuZCBoYXZlIHRoZSBuZXdWZXJz
aW9uIHByb3BlcnR5IHNldCB0byB2ZXJzaW9uLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0Pgor
CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3Rp
bWVvdXQ6IDEwMDAwfSk7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBv
cGVucnEgPSBpbmRleGVkREIub3BlbignZGInLCAzKTsKKworICAgICAgICBvcGVucnEub251cGdy
YWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLm9sZFZlcnNpb24sIDAsICJvbGQgdmVyc2lvbiAodXBncmFkZW5lZWRlZCkiKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCAzLCAibmV3IHZlcnNpb24g
KHVwZ3JhZGVuZWVkZWQpIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2Yg
SURCVmVyc2lvbkNoYW5nZUV2ZW50LCAidXBncmFkZW5lZWRlZCBpbnN0YW5jZW9mIElEQlZlcnNp
b25DaGFuZ2VFdmVudCIpOworICAgICAgICB9KTsKKworICAgICAgICBvcGVucnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwg
MywgIm9sZCB2ZXJzaW9uICh2ZXJzaW9uY2hhbmdlKSIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5uZXdWZXJzaW9uLCBudWxsLCAibmV3IHZlcnNpb24gKHZlcnNpb25jaGFuZ2Up
Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25D
aGFuZ2VFdmVudCwgInZlcnNpb25jaGFuZ2UgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQiKTsKKyAgICAgICAgICAgICAgICBkYi5jbG9zZSgpOworICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIub25lcnJvciA9IGZhaWwodCwgImRi
LmVycm9yIik7CisgICAgICAgICAgICBkYi5vbmFib3J0ID0gZmFpbCh0LCAiZGIuYWJvcnQiKTsK
KworICAgICAgICAgICAgc2V0VGltZW91dCh0LnN0ZXBfZnVuYyhkZWxldGVEQiksIDEwKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9wZW5ycS5vbmVycm9yID0g
ZmFpbCh0LCAib3Blbi5lcnJvciIpOworICAgICAgICBvcGVucnEub25ibG9ja2VkID0gZmFpbCh0
LCAib3Blbi5ibG9ja2VkIik7CisKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIGRlbGV0ZURCIChl
KSB7CisgICAgICAgIHZhciBkZWxldGVycSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGIn
KTsKKworICAgICAgICBkZWxldGVycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgMywgIm9sZCB2ZXJz
aW9uIChkZWxldGUuc3VjY2VzcykiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdW
ZXJzaW9uLCBudWxsLCAibmV3IHZlcnNpb24gKGRlbGV0ZS5zdWNjZXNzKSIpOworICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImRlbGV0
ZS5zdWNjZXNzIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50Iik7CisKKyAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHQuZG9uZSgpOyB9LCAxMCk7CisgICAgICAgIH0p
OworCisgICAgICAgIC8vIEVycm9ycworICAgICAgICBkZWxldGVycS5vbmVycm9yID0gZmFpbCh0
LCAiZGVsZXRlLmVycm9yIik7CisgICAgICAgIGRlbGV0ZXJxLm9uYmxvY2tlZCA9IGZhaWwodCwg
ImRlbGV0ZS5ibG9ja2VkIik7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJ3b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRid29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1OWY2ZmI2OTExOWI1YzY2MDUwNDdmMGUwYzM4ZWY2
ZmU4NDcwMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRid29ya2VyLmpzCkBAIC0wLDAgKzEsMzQgQEAKK3Zh
ciBkYgorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBNZXNzYWdlSGFuZGxlciwg
ZmFsc2UpCisKK2Z1bmN0aW9uIE1lc3NhZ2VIYW5kbGVyKGUpCit7CisgICAgdmFyIG9wZW5fcnEs
IGlkYiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIKKworICAgIGlmICghaWRiKQorICAgIHsKKyAg
ICAgICAgc2VsZi5wb3N0TWVzc2FnZShmYWxzZSkKKyAgICAgICAgcmV0dXJuCisgICAgfQorICAg
IGVsc2UKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0cnVlKQorCisgICAgb3Blbl9ycSA9IGlk
Yi5vcGVuKCJ3ZWJ3b3JrZXIxMDEiLCAxKQorCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgLmFkZCgidGVzdCIsIDEpCisg
ICAgfQorICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICBkYi5vbmVycm9yID0gZnVuY3Rpb24oKSB7IHNlbGYu
cG9zdE1lc3NhZ2UoImRiLmVycm9yIikgfQorICAgICAgICBkYi50cmFuc2FjdGlvbigic3RvcmUi
KS5vYmplY3RTdG9yZSgic3RvcmUiKS5nZXQoMSkub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShlLnRhcmdldC5yZXN1bHQpCisgICAgICAgICAg
ICBkYi5jbG9zZSgpCisgICAgICAgIH0KKyAgICB9CisgICAgb3Blbl9ycS5vbmVycm9yID0gZnVu
Y3Rpb24oKSB7IHNlbGYucG9zdE1lc3NhZ2UoIm9wZW4uZXJyb3IiKSB9CisgICAgb3Blbl9ycS5v
bmJsb2NrZWQgPSBmdW5jdGlvbigpIHsgc2VsZi5wb3N0TWVzc2FnZSgib3Blbi5ibG9ja2VkIikg
fQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2luZGV4X3NvcnRfb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2luZGV4X3NvcnRfb3JkZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0NDE4YWFjZWYwNmY2NzYxMGViZWZlYTQ3NzI0MTI5
YzI4YjA0ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaW5kZXhfc29ydF9vcmRlci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgVmVyaWZ5IGtleSBzb3J0IG9yZGVyIGluIGFuIGluZGV4IGlz
ICdudW1iZXIgPCBEYXRlIDwgRE9NU3RyaW5nJyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pbmRleF9zb3J0X29yZGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcvaW5kZXhfc29ydF9vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1N2IzNzQwNzFhMWM1NjU4NzM5
YWE0NjY4NWZkNTA0YzZhYjI5NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaW5kZXhfc29ydF9vcmRlci5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPlZlcmlmeSBrZXkgc29ydCBvcmRlciBpbiBhbiBpbmRleCBpcyAnbnVtYmVyICZs
dDsgRGF0ZSAmbHQ7IERPTVN0cmluZycgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICBkID0gbmV3IERhdGUoKSwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICByZWNvcmRzID0gWyB7IGZvbzogZCB9LAorICAgICAgICAgICAgICAgICAgeyBmb286ICJ0ZXN0
IiB9LAorICAgICAgICAgICAgICAgICAgeyBmb286IDEgfSwKKyAgICAgICAgICAgICAgICAgIHsg
Zm9vOiAyLjU1IH0gIF0sCisgICAgICBleHBlY3RlZEtleU9yZGVyID0gWyAxLCAyLjU1LCBkLnZh
bHVlT2YoKSwgInRlc3QiIF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCAiZm9vIik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKQorICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAg
aWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtl
eS52YWx1ZU9mKCkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRLZXlPcmRlcik7CisgICAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlfaW52YWxpZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5
X2ludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YzVlYmY1N2U2ZWQyOWVkZDczYzc4
ODlhNDg0M2MyODc2NTA4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5X2ludmFsaWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBJbnZhbGlkIGtleSAtIHRydWUgCitQQVNTIEludmFs
aWQga2V5IC0gZmFsc2UgCitQQVNTIEludmFsaWQga2V5IC0gbnVsbCAKK1BBU1MgSW52YWxpZCBr
ZXkgLSBOYU4gCitQQVNTIEludmFsaWQga2V5IC0gdW5kZWZpbmVkIAorUEFTUyBJbnZhbGlkIGtl
eSAtIHVuZGVmaW5lZDIgCitQQVNTIEludmFsaWQga2V5IC0gZnVuY3Rpb24oKSB7fSAKK1BBU1Mg
SW52YWxpZCBrZXkgLSB7fSAKK1BBU1MgSW52YWxpZCBrZXkgLSB7IG9iajogMSB9IAorUEFTUyBJ
bnZhbGlkIGtleSAtIE1hdGggCitQQVNTIEludmFsaWQga2V5IC0gd2luZG93IAorUEFTUyBJbnZh
bGlkIGtleSAtIHtsZW5ndGg6MCxjb25zdHJ1Y3RvcjpBcnJheX0gCitQQVNTIEludmFsaWQga2V5
IC0gQXJyYXkgY2xvbmXDouKCrOKEonMgaW5zdGFuY2UgCitQQVNTIEludmFsaWQga2V5IC0gQXJy
YXkgKG9iamVjdCkgCitQQVNTIEludmFsaWQga2V5IC0gU3RyaW5nIChvYmplY3QpIAorUEFTUyBJ
bnZhbGlkIGtleSAtIG5ldyBTdHJpbmcoKSAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcgTnVtYmVy
KCkgCitQQVNTIEludmFsaWQga2V5IC0gbmV3IEJvb2xlYW4oKSAKK1BBU1MgSW52YWxpZCBrZXkg
LSBbe31dIAorUEFTUyBJbnZhbGlkIGtleSAtIFtbXSwgW10sIFtdLCBbWyBEYXRlIF1dXSAKK1BB
U1MgSW52YWxpZCBrZXkgLSBbdW5kZWZpbmVkXSAKK1BBU1MgSW52YWxpZCBrZXkgLSBbLDFdIAor
UEFTUyBJbnZhbGlkIGtleSAtIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQi
KSAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcgRGF0ZShOYU4pIAorUEFTUyBJbnZhbGlkIGtleSAt
IG5ldyBEYXRlKEluZmluaXR5KSAKK1BBU1MgSW52YWxpZCBrZXkgLSAvZm9vLyAKK1BBU1MgSW52
YWxpZCBrZXkgLSBuZXcgUmVnRXhwKCkgCitQQVNTIEludmFsaWQga2V5IC0gc3BhcnNlIGFycmF5
IAorUEFTUyBJbnZhbGlkIGtleSAtIHNwYXJzZSBhcnJheSAyIAorUEFTUyBJbnZhbGlkIGtleSAt
IFtbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UgYXJyYXkgXV1dIAorUEFTUyBJbnZhbGlkIGtleSAt
IFsxLDIsMywsXSAKK1BBU1MgSW52YWxpZCBrZXkgLSBhcnJheSBkaXJlY3RseSBjb250YWlucyBz
ZWxmIAorUEFTUyBJbnZhbGlkIGtleSAtIGFycmF5IGluZGlyZWN0bHkgY29udGFpbnMgc2VsZiAK
K1BBU1MgSW52YWxpZCBrZXkgLSBhcnJheSBtZW1iZXIgY29udGFpbnMgc2VsZiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2tleV9pbnZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXBy
aXZhdGUtYnJvd3Npbmcva2V5X2ludmFsaWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzJkYTM3NTliNTRi
ZDdjNWY4NDU0MTdmNDY5ZWExNWE1Njk3MTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleV9pbnZhbGlkLmh0
bWwKQEAgLTAsMCArMSwxMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJv
bSBUZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+SW52YWxp
ZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEgdmFsdWUgaXMgc2FpZCB0byBiZSBhIHZhbGlkIGtleSBp
ZiBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogQXJyYXkgSmF2YVNjcmlwdCBvYmpl
Y3RzIFtFQ01BLTI2Ml0sIERPTVN0cmluZyBbV0VCSURMXSwgRGF0ZSBbRUNNQS0yNjJdIG9yIGZs
b2F0IFtXRUJJRExdLiBIb3dldmVyIEFycmF5cyBhcmUgb25seSB2YWxpZCBrZXlzIGlmIGV2ZXJ5
IGl0ZW0gaW4gdGhlIGFycmF5IGlzIGRlZmluZWQgYW5kIGlzIGEgdmFsaWQga2V5IChpLmUuIHNw
YXJzZSBhcnJheXMgY2FuIG5vdCBiZSB2YWxpZCBrZXlzKSBhbmQgaWYgdGhlIEFycmF5IGRvZXNu
J3QgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjb250YWluIGl0c2VsZi4gQW55IG5vbi1udW1lcmlj
IHByb3BlcnRpZXMgYXJlIGlnbm9yZWQsIGFuZCB0aHVzIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVy
IHRoZSBBcnJheSBpcyBhIHZhbGlkIGtleS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdmFsdWUgaXMg
b2YgdHlwZSBmbG9hdCwgaXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdCBpcyBub3QgTmFOLCBh
bmQgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUgRGF0ZSBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlm
IGl0cyBbW1ByaW1pdGl2ZVZhbHVlXV0gaW50ZXJuYWwgcHJvcGVydHksIGFzIGRlZmluZWQgYnkg
W0VDTUEtMjYyXSwgaXMgbm90IE5hTi4gQ29uZm9ybWluZyB1c2VyIGFnZW50cyBtdXN0IHN1cHBv
cnQgYWxsIHZhbGlkIGtleXMgYXMga2V5cy4iPgorPCEtLSBvcmlnaW5hbCBhdXRob3IgLS0+Cis8
bGluayByZWw9YXV0aG9yIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzwhLS0gc29tZSBhZGRpdGlvbnMgYnkgQmFwdGlzdGUgRm9udGFp
bmUgKGJhdGlmb25AeWFob28uZnIpIC0tPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQu
anM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiICAgICAgICA9IGNyZWF0ZWRiX2Zv
cl9tdWx0aXBsZV90ZXN0cygpLAorICAgICAgICAvLyBjYWNoZSBmb3IgT2JqZWN0U3RvcmVzCisg
ICAgICAgIG9ialN0b3JlICA9IG51bGwsCisgICAgICAgIG9ialN0b3JlMiA9IG51bGw7CisKKyAg
ICBmdW5jdGlvbiBpc19jbG9uZWFibGUobykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAg
c2VsZi5wb3N0TWVzc2FnZShvLCAnKicpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBpbnZhbGlkX2tleShkZXNjLCBrZXkpIHsKKyAgICAgICAg
dmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAg
ICAgICAvLyBzZXQgdGhlIGN1cnJlbnQgdGVzdCwgYW5kIHJ1biBpdAorICAgICAgICBkYi5zZXRU
ZXN0KHQpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIG9ialN0
b3JlID0gb2JqU3RvcmUgfHwgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUVycm9yJywgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJ2YWx1ZSIsIGtleSk7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgaWYgKGlzX2Nsb25lYWJsZShrZXkpKSB7CisgICAgICAgICAg
ICAgICAgb2JqU3RvcmUyID0gb2JqU3RvcmUyIHx8IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUyIiwgeyBrZXlQYXRoOiBbIngiLCAia2V5cGF0aCJdIH0pOworICAgICAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBvYmpTdG9yZTIuYWRkKHsgeDogInZhbHVlIiwga2V5cGF0aDoga2V5IH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5k
b25lKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgdmFyIGZha2VfYXJyYXkgPSB7CisgICAg
ICAgIGxlbmd0aCAgICAgIDogMCwKKyAgICAgICAgY29uc3RydWN0b3IgOiBBcnJheQorICAgIH07
CisKKyAgICB2YXIgQXJyYXlDbG9uZSA9IGZ1bmN0aW9uKCl7fTsKKyAgICBBcnJheUNsb25lLnBy
b3RvdHlwZSA9IEFycmF5OworICAgIHZhciBBcnJheUNsb25lX2luc3RhbmNlID0gbmV3IEFycmF5
Q2xvbmUoKTsKKworICAgIC8vIGJvb2xlYW5zCisgICAgaW52YWxpZF9rZXkoICd0cnVlJyAgLCB0
cnVlICk7CisgICAgaW52YWxpZF9rZXkoICdmYWxzZScgLCBmYWxzZSApOworCisgICAgLy8gbnVs
bC9OYU4vdW5kZWZpbmVkCisgICAgaW52YWxpZF9rZXkoICdudWxsJyAgICAgICwgbnVsbCApOwor
ICAgIGludmFsaWRfa2V5KCAnTmFOJyAgICAgICAsIE5hTiApOworICAgIGludmFsaWRfa2V5KCAn
dW5kZWZpbmVkJyAsIHVuZGVmaW5lZCApOworICAgIGludmFsaWRfa2V5KCAndW5kZWZpbmVkMicp
OworCisgICAgLy8gZnVuY3Rpb25zCisgICAgaW52YWxpZF9rZXkoICdmdW5jdGlvbigpIHt9Jywg
ZnVuY3Rpb24oKXt9ICk7CisKKyAgICAvLyBvYmplY3RzCisgICAgaW52YWxpZF9rZXkoICd7fScg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHt9ICk7CisgICAgaW52YWxpZF9rZXkoICd7IG9i
ajogMSB9JyAgICAgICAgICAgICAgICAgICAsIHsgb2JqOiAxIH0pOworICAgIGludmFsaWRfa2V5
KCAnTWF0aCcgICAgICAgICAgICAgICAgICAgICAgICAgLCBNYXRoICk7CisgICAgaW52YWxpZF9r
ZXkoICd3aW5kb3cnICAgICAgICAgICAgICAgICAgICAgICAsIHdpbmRvdyApOworICAgIGludmFs
aWRfa2V5KCAne2xlbmd0aDowLGNvbnN0cnVjdG9yOkFycmF5fScgLCBmYWtlX2FycmF5ICk7Cisg
ICAgaW52YWxpZF9rZXkoICdBcnJheSBjbG9uZeKAmXMgaW5zdGFuY2UnICAgICAgICwgQXJyYXlD
bG9uZV9pbnN0YW5jZSApOworICAgIGludmFsaWRfa2V5KCAnQXJyYXkgKG9iamVjdCknICAgICAg
ICAgICAgICAgLCBBcnJheSApOworICAgIGludmFsaWRfa2V5KCAnU3RyaW5nIChvYmplY3QpJyAg
ICAgICAgICAgICAgLCBTdHJpbmcgKTsKKyAgICBpbnZhbGlkX2tleSggJ25ldyBTdHJpbmcoKScg
ICAgICAgICAgICAgICAgICwgbmV3IFN0cmluZygpICk7CisgICAgaW52YWxpZF9rZXkoICduZXcg
TnVtYmVyKCknICAgICAgICAgICAgICAgICAsIG5ldyBOdW1iZXIoKSApOworICAgIGludmFsaWRf
a2V5KCAnbmV3IEJvb2xlYW4oKScgICAgICAgICAgICAgICAgLCBuZXcgQm9vbGVhbigpICk7CisK
KyAgICAvLyBhcnJheXMKKyAgICBpbnZhbGlkX2tleSggJ1t7fV0nICAgICAgICAgICAgICAgICAg
ICAgLCBbe31dICk7CisgICAgaW52YWxpZF9rZXkoICdbW10sIFtdLCBbXSwgW1sgRGF0ZSBdXV0n
ICwgWyBbXSwgW10sIFtdLCBbWyBEYXRlIF1dIF0gKTsKKyAgICBpbnZhbGlkX2tleSggJ1t1bmRl
ZmluZWRdJyAgICAgICAgICAgICAgLCBbdW5kZWZpbmVkXSApOworICAgIGludmFsaWRfa2V5KCAn
WywxXScgICAgICAgICAgICAgICAgICAgICAsIFssMV0gKTsKKworICAgIGludmFsaWRfa2V5KCAn
ZG9jdW1lbnQuZ2V0RWxlbWVudHMnCisgICAgICAgICAgICAgICAgKydCeVRhZ05hbWUoInNjcmlw
dCIpJyAgICAgICwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpICk7CisK
KyAgICAvLyAgZGF0ZXMKKyAgICBpbnZhbGlkX2tleSggJ25ldyBEYXRlKE5hTiknICAgICAgLCBu
ZXcgRGF0ZShOYU4pICk7CisgICAgaW52YWxpZF9rZXkoICduZXcgRGF0ZShJbmZpbml0eSknICwg
bmV3IERhdGUoSW5maW5pdHkpICk7CisKKyAgICAvLyByZWdleGVzCisgICAgaW52YWxpZF9rZXko
ICcvZm9vLycgICAgICAgICwgL2Zvby8gKTsKKyAgICBpbnZhbGlkX2tleSggJ25ldyBSZWdFeHAo
KScgLCBuZXcgUmVnRXhwKCkgKTsKKworICAgIHZhciBzcGFyc2UgPSBbXTsKKyAgICBzcGFyc2Vb
MTBdID0gImhlaSI7CisgICAgaW52YWxpZF9rZXkoJ3NwYXJzZSBhcnJheScsIHNwYXJzZSk7CisK
KyAgICB2YXIgc3BhcnNlMiA9IFtdOworICAgIHNwYXJzZTJbMF0gID0gMTsKKyAgICBzcGFyc2Uy
WyIiXSA9IDI7CisgICAgc3BhcnNlMlsyXSAgPSAzOworICAgIGludmFsaWRfa2V5KCdzcGFyc2Ug
YXJyYXkgMicsIHNwYXJzZTIpOworCisgICAgaW52YWxpZF9rZXkoJ1tbMV0sIFszXSwgWzddLCBb
WyBzcGFyc2UgYXJyYXkgXV1dJywgWyBbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UyIF1dIF0pOwor
CisgICAgLy8gc3BhcnNlMworICAgIGludmFsaWRfa2V5KCAnWzEsMiwzLCxdJywgWzEsMiwzLCxd
ICk7CisKKyAgICB2YXIgcmVjdXJzaXZlID0gW107CisgICAgcmVjdXJzaXZlLnB1c2gocmVjdXJz
aXZlKTsKKyAgICBpbnZhbGlkX2tleSgnYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJl
Y3Vyc2l2ZSk7CisKKyAgICB2YXIgcmVjdXJzaXZlMiA9IFtdOworICAgIHJlY3Vyc2l2ZTIucHVz
aChbcmVjdXJzaXZlMl0pOworICAgIGludmFsaWRfa2V5KCdhcnJheSBpbmRpcmVjdGx5IGNvbnRh
aW5zIHNlbGYnLCByZWN1cnNpdmUyKTsKKworICAgIHZhciByZWN1cnNpdmUzID0gW3JlY3Vyc2l2
ZV07CisgICAgaW52YWxpZF9rZXkoJ2FycmF5IG1lbWJlciBjb250YWlucyBzZWxmJywgcmVjdXJz
aXZlMyk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlfdmFs
aWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2tleV92YWxpZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RjYjBhZmRk
MWU5ZGI5MGE2NGMyODc2M2EzZmJjYzk1MzhmNTUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlfdmFsaWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBWYWxpZCBrZXkgLSBuZXcgRGF0
ZSgpIAorUEFTUyBWYWxpZCBrZXkgLSBuZXcgRGF0ZSgwKSAKK1BBU1MgVmFsaWQga2V5IC0gW10g
CitQQVNTIFZhbGlkIGtleSAtIG5ldyBBcnJheSgpIAorUEFTUyBWYWxpZCBrZXkgLSBbInVuZGVm
aW5lZCJdIAorUEFTUyBWYWxpZCBrZXkgLSBJbmZpbml0eSAKK1BBU1MgVmFsaWQga2V5IC0gLUlu
ZmluaXR5IAorUEFTUyBWYWxpZCBrZXkgLSAwIAorUEFTUyBWYWxpZCBrZXkgLSAxLjUgCitQQVNT
IFZhbGlkIGtleSAtIDNlMzggCitQQVNTIFZhbGlkIGtleSAtIDNlLTM4IAorUEFTUyBWYWxpZCBr
ZXkgLSAiZm9vIiAKK1BBU1MgVmFsaWQga2V5IC0gIlxuIiAKK1BBU1MgVmFsaWQga2V5IC0gIiIg
CitQQVNTIFZhbGlkIGtleSAtICJcIiIgCitQQVNTIFZhbGlkIGtleSAtICJcdTEyMzQiIAorUEFT
UyBWYWxpZCBrZXkgLSAiXHUwMDAwIiAKK1BBU1MgVmFsaWQga2V5IC0gIk5hTiIgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy9rZXlfdmFsaWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJp
dmF0ZS1icm93c2luZy9rZXlfdmFsaWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTVjMWQ0YTZhNTZjMjIz
OGRhNTcwMWI2OTQxYTViZDQxOTI4ODE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleV92YWxpZC5odG1sCkBA
IC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0
VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD11dGYtOCI+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5WYWxpZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEgdmFs
dWUgaXMgc2FpZCB0byBiZSBhIHZhbGlkIGtleSBpZiBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2lu
ZyB0eXBlczogQXJyYXkgSmF2YVNjcmlwdCBvYmplY3RzIFtFQ01BLTI2Ml0sIERPTVN0cmluZyBb
V0VCSURMXSwgRGF0ZSBbRUNNQS0yNjJdIG9yIGZsb2F0IFtXRUJJRExdLiBIb3dldmVyIEFycmF5
cyBhcmUgb25seSB2YWxpZCBrZXlzIGlmIGV2ZXJ5IGl0ZW0gaW4gdGhlIGFycmF5IGlzIGRlZmlu
ZWQgYW5kIGlzIGEgdmFsaWQga2V5IChpLmUuIHNwYXJzZSBhcnJheXMgY2FuIG5vdCBiZSB2YWxp
ZCBrZXlzKSBhbmQgaWYgdGhlIEFycmF5IGRvZXNuJ3QgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBj
b250YWluIGl0c2VsZi4gQW55IG5vbi1udW1lcmljIHByb3BlcnRpZXMgYXJlIGlnbm9yZWQsIGFu
ZCB0aHVzIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVyIHRoZSBBcnJheSBpcyBhIHZhbGlkIGtleS4g
QWRkaXRpb25hbGx5LCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBmbG9hdCwgaXQgaXMgb25seSBh
IHZhbGlkIGtleSBpZiBpdCBpcyBub3QgTmFOLCBhbmQgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUg
RGF0ZSBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlmIGl0cyBbW1ByaW1pdGl2ZVZhbHVlXV0gaW50
ZXJuYWwgcHJvcGVydHksIGFzIGRlZmluZWQgYnkgW0VDTUEtMjYyXSwgaXMgbm90IE5hTi4gQ29u
Zm9ybWluZyB1c2VyIGFnZW50cyBtdXN0IHN1cHBvcnQgYWxsIHZhbGlkIGtleXMgYXMga2V5cy4i
PgorPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86YmF0aWZvbkB5YWhvby5mciIgdGl0bGU9
IkJhcHRpc3RlIEZvbnRhaW5lIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHZhbGlkX2tleShkZXNjLCBrZXkpIHsK
KyAgICAgICAgdmFyIGRiOworICAgICAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUgKyAiIC0gIiArIGRlc2MpOworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzdG9yZS5h
ZGQoJ3ZhbHVlJywga2V5KSBpbnN0YW5jZW9mIElEQlJlcXVlc3QpOworCisgICAgICAgICAgICBz
dG9yZTIgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUyIiwgeyBrZXlQYXRoOiBbIngiLCAi
a2V5cGF0aCJdIH0pOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUyLmFkZCh7IHg6ICd2
Jywga2V5cGF0aDoga2V5IH0pIGluc3RhbmNlb2YgSURCUmVxdWVzdCk7CisgICAgICAgIH07Cisg
ICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFy
IHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoa2V5KQorICAg
ICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAndmFsdWUnKQorICAgICAg
ICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZTIiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZTIiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLmdldChbJ3YnLCBrZXldKQorICAgICAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQueCwgJ3YnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2tleV9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleXBhdGgsIGtleSk7CisgICAgICAgICAgICAg
ICAgICAgIHQuZG9uZSgpCisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIH0pCisgICAg
ICAgIH0KKyAgICB9CisKKyAgICAvLyBEYXRlCisgICAgdmFsaWRfa2V5KCAnbmV3IERhdGUoKScg
ICAgLCBuZXcgRGF0ZSgpICk7CisgICAgdmFsaWRfa2V5KCAnbmV3IERhdGUoMCknICAgLCBuZXcg
RGF0ZSgwKSApOworCisgICAgLy8gQXJyYXkKKyAgICB2YWxpZF9rZXkoICdbXScgICAgICAgICAg
ICAsIFtdICk7CisgICAgdmFsaWRfa2V5KCAnbmV3IEFycmF5KCknICAgLCBuZXcgQXJyYXkoKSAp
OworCisgICAgdmFsaWRfa2V5KCAnWyJ1bmRlZmluZWQiXScgLCBbJ3VuZGVmaW5lZCddICk7CisK
KyAgICAvLyBGbG9hdAorICAgIHZhbGlkX2tleSggJ0luZmluaXR5JyAgICAgICwgSW5maW5pdHkg
KTsKKyAgICB2YWxpZF9rZXkoICctSW5maW5pdHknICAgICAsIC1JbmZpbml0eSApOworICAgIHZh
bGlkX2tleSggJzAnICAgICAgICAgICAgICwgMCApOworICAgIHZhbGlkX2tleSggJzEuNScgICAg
ICAgICAgICwgMS41ICk7CisgICAgdmFsaWRfa2V5KCAnM2UzOCcgICAgICAgICAgLCAzZTM4ICk7
CisgICAgdmFsaWRfa2V5KCAnM2UtMzgnICAgICAgICAgLCAzZTM4ICk7CisKKyAgICAvLyBTdHJp
bmcKKyAgICB2YWxpZF9rZXkoICciZm9vIicgICAgICAgICAsICJmb28iICk7CisgICAgdmFsaWRf
a2V5KCAnIlxcbiInICAgICAgICAgLCAiXG4iICk7CisgICAgdmFsaWRfa2V5KCAnIiInICAgICAg
ICAgICAgLCAiIiApOworICAgIHZhbGlkX2tleSggJyJcXCIiJyAgICAgICAgICwgIlwiIiApOwor
ICAgIHZhbGlkX2tleSggJyJcXHUxMjM0IicgICAgICwgIlx1MTIzNCIgKTsKKyAgICB2YWxpZF9r
ZXkoICciXFx1MDAwMCInICAgICAsICJcdTAwMDAiICk7CisgICAgdmFsaWRfa2V5KCAnIk5hTiIn
ICAgICAgICAgLCAiTmFOIiApOworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3Npbmcva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5Z2VuZXJhdG9y
LWNvbnN0cmFpbnRlcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzNmYxYzY3MGNjN2E3
MDFiNzIxNTQzYzA1YzJjYjdlZDMyNWRjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3ItY29u
c3RyYWludGVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBLZXlnZW5l
cmF0b3IgQ29uc3RyYWludEVycm9yIHdoZW4gdXNpbmcgc2FtZSBpZCBhcyBhbHJlYWR5IGdlbmVy
YXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3IuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0
b3ItY29uc3RyYWludGVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgyMjExNTQ5MzNjZGMwMmFmNzE1
NjM0NzEyYzY5N2Q1YzY3YWJjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3ItY29uc3RyYWlu
dGVycm9yLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+S2V5Z2VuZXJhdG9yIENvbnN0cmFpbnRFcnJvciB3aGVuIHVz
aW5nIHNhbWUgaWQgYXMgYWxyZWFkeSBnZW5lcmF0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICBvYmplY3RzID0gWzEsIG51bGwsIHtpZDogMn0s
IG51bGwsIDIuMDAwMDEsIDUsIG51bGwsIHtpZDogNn0gXSwKKyAgICAgIGV4cGVjdGVkID0gWzEs
IDIsIDIuMDAwMDEsIDMsIDUsIDZdLAorICAgICAgZXJyb3JzID0gMDsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJpZCIsIGF1dG9J
bmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3Rz
Lmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAob2JqZWN0c1tpXSA9PT0g
bnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoe30pOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9iamVjdHNbaV0gPT09
ICJvYmplY3QiKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBycSA9IG9ialN0
b3JlLmFkZChvYmplY3RzW2ldKQorICAgICAgICAgICAgICAgIHJxLnllaCA9IG9iamVjdHNbaV07
CisgICAgICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgZXJyb3JzKys7CisKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIik7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAiZXJyb3IiKTsKKworICAgICAg
ICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgICAgICBl
LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfdW5yZWFjaGVkKCJHb3QgcnEuc3VjY2VzcyB3aGVuIGFkZGluZyBkdXBsaWNh
dGUgaWQgIiArIG9iamVjdHNbaV0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGlkOiBv
YmplY3RzW2ldIH0pOworICAgICAgICB9CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAg
ICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAg
IHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXJyb3JzLCAyLCAi
ZXhwZWN0ZWQgQ29uc3RyYWludEVycm9yJ3MiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZCwgImtleWdlbmVyYXRvciBhcnJheSIpOwor
ICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5l
cmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2tleWdlbmVyYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBh
NmVmY2UxNTQ0NGViZjQ1NjIzY2MxZDg1M2M5ZWQ5ZjIzNDhjMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXln
ZW5lcmF0b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIEtleWdlbmVyYXRv
ciAtIHN0YXJ0cyBhdCBvbmUsIGFuZCBpbmNyZW1lbnRzIGJ5IG9uZSAKK1BBU1MgS2V5Z2VuZXJh
dG9yIC0gaW5jcmVtZW50cyBieSBvbmUgZnJvbSBsYXN0IHNldCBrZXkgCitQQVNTIEtleWdlbmVy
YXRvciAtIGRvbid0IGluY3JlbWVudCB3aGVuIG5ldyBrZXkgaXMgbm90IGJpZ2dlciB0aGFuIGN1
cnJlbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleWdlbmVy
YXRvci1vdmVyZmxvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5NzgzNWY3MGY4MTc3YmYz
MmY1YzY2MTZmNDY4NTA2ZTRhNzUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3Itb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEtleWdlbmVyYXRvciBvdmVy
ZmxvdyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2tleWdlbmVyYXRvci1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleWdlbmVyYXRvci1vdmVy
Zmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZmQ1NzdlMDM4MjJjMDM1ZDhkYzZiZDA5NjU2MGExNzA4
ZGUyM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3Npbmcva2V5Z2VuZXJhdG9yLW92ZXJmbG93Lmh0bWwKQEAgLTAsMCAr
MSw3MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
S2V5Z2VuZXJhdG9yIG92ZXJmbG93PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGlu
ayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI2tleS1nZW5lcmF0b3ItY29uY2VwdCI+Cis8bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJXaGVuIHRoZSBjdXJyZW50IG51bWJlciBvZiBhIGtleSBnZW5lcmF0b3IgcmVh
Y2hlcyBhYm92ZSB0aGUgdmFsdWUgMl41MyAoOTAwNzE5OTI1NDc0MDk5MikgYW55IGF0dGVtcHRz
IHRvIHVzZSB0aGUga2V5IGdlbmVyYXRvciB0byBnZW5lcmF0ZSBhIG5ldyBrZXkgd2lsbCByZXN1
bHQgaW4gYW4gZXJyb3IuIEl0J3Mgc3RpbGwgcG9zc2libGUgdG8gaW5zZXJ0IHJlY29yZHMgaW50
byB0aGUgb2JqZWN0IHN0b3JlIGJ5IHNwZWNpZnlpbmcgYW4gZXhwbGljaXQga2V5LCBob3dldmVy
IHRoZSBvbmx5IHdheSB0byB1c2UgYSBrZXkgZ2VuZXJhdG9yIGFnYWluIGZvciB0aGUgb2JqZWN0
IHN0b3JlIGlzIHRvIGRlbGV0ZSB0aGUgb2JqZWN0IHN0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25l
LiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgb3ZlcmZsb3dfZXJyb3JfZmlyZWQgPSBmYWxzZSwK
KyAgICAgIG9iamVjdHMgPSAgWzkwMDcxOTkyNTQ3NDA5OTEsIG51bGwsICJlcnJvciIsIDIsICJl
cnJvciIgXSwKKyAgICAgIGV4cGVjdGVkX2tleXMgPSBbMiwgOTAwNzE5OTI1NDc0MDk5MSwgOTAw
NzE5OTI1NDc0MDk5Ml07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworCisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKG9iamVjdHNbaV0gPT09IG51bGwpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHt9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGVsc2UgaWYgKG9iamVjdHNbaV0gPT09ICJlcnJvciIpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHt9KTsKKyAgICAgICAgICAgICAgICBycS5v
bnN1Y2Nlc3MgPSBmYWlsKHQsICdXaGVuICJjdXJyZW50IG51bWJlciIgb3ZlcmZsb3dzLCBlcnJv
ciBldmVudCBpcyBleHBlY3RlZCcpOworICAgICAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93X2Vycm9y
X2ZpcmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIiwgImVycm9yIG5hbWUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGlkOiBvYmplY3Rz
W2ldIH0pOworICAgICAgICB9CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9
IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
c3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAg
ICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAg
ICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKG92ZXJmbG93X2Vycm9yX2ZpcmVk
LCAiZXJyb3IgZmlyZWQgb24gJ2N1cnJlbnQgbnVtYmVyJyBvdmVyZmxvdyIpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMsICJr
ZXlnZW5lcmF0b3IgYXJyYXkiKTsKKworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlnZW5lcmF0b3IuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NWE4NmJhNDhhNmU5OWU0NDYwMGY2ZWU5M2YxYmVjNGNkMzE2OWIzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2tleWdlbmVyYXRvci5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPktleWdlbmVyYXRvcjwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktZ2VuZXJhdG9yLWNv
bmNlcHQiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGN1cnJlbnQgbnVtYmVyIG9mIGEg
a2V5IGdlbmVyYXRvciBpcyBhbHdheXMgc2V0IHRvIDEgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIGZv
ciB0aGF0IGtleSBnZW5lcmF0b3IgaXMgZmlyc3QgY3JlYXRlZC4iPgorPGxpbmsgcmVsPWFzc2Vy
dCB0aXRsZT0iV2hlbiBhIGtleSBnZW5lcmF0b3IgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIG5ldyBr
ZXkgZm9yIGEgb2JqZWN0IHN0b3JlLCB0aGUga2V5IGdlbmVyYXRvcidzIGN1cnJlbnQgbnVtYmVy
IGlzIHVzZWQgYXMgdGhlIG5ldyBrZXkgdmFsdWUgYW5kIHRoZW4gdGhlIGtleSBnZW5lcmF0b3In
cyBjdXJyZW50IG51bWJlciBpcyBpbmNyZWFzZWQgYnkgMS4iPgorPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0iV2hlbiBhIHJlY29yZCBpcyBzdG9yZWQgaW4gYSBvYmplY3Qgc3RvcmUgd2hpY2ggdXNl
cyBhIGtleSBnZW5lcmF0b3IsIGFuZCBhbiBleHBsaWNpdCBrZXkgaXMgZGVmaW5lZCwgaWYgdGhl
IGtleSdzIHZhbHVlIGlzIGEgZmxvYXQgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBrZXkg
Z2VuZXJhdG9yJ3MgY3VycmVudCBudW1iZXIsIHRoZW4gdGhlIGtleSBnZW5lcmF0b3IncyBjdXJy
ZW50IG51bWJlciBpcyBzZXQgdG8gdGhlIHNtYWxsZXN0IGludGVnZXIgbnVtYmVyIGxhcmdlciB0
aGFuIHRoZSBleHBsaWNpdCBrZXkuIE9ubHkgZXhwbGljaXQga2V5cyB3aGljaCBhcmUgZmxvYXQg
dmFsdWVzIGFmZmVjdCB0aGUgY3VycmVudCBudW1iZXIgb2YgdGhlIGtleSBnZW5lcmF0b3IuIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgZnVuY3Rpb24ga2V5Z2VuZXJhdG9yKG9iamVjdHMsIGV4cGVjdGVkX2tleXMsIGRlc2Ms
IGZ1bmMpIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3Vt
ZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRv
SW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9i
amVjdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKG9i
amVjdHNbaV0gPT09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7fSk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQo
eyBpZDogb2JqZWN0c1tpXSB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBhY3R1
YWxfa2V5cyA9IFtdLAorICAgICAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAg
ICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAg
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFs
cyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cywgImtleWdlbmVyYXRvciBhcnJheSIpOworICAg
ICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisKKworICAgIGtleWdlbmVyYXRvcihbbnVsbCwgbnVs
bCwgbnVsbCwgbnVsbF0sICBbMSwgMiwgMywgNF0sCisgICAgICAgICJzdGFydHMgYXQgb25lLCBh
bmQgaW5jcmVtZW50cyBieSBvbmUiKTsKKworICAgIGtleWdlbmVyYXRvcihbMiwgbnVsbCwgNSwg
bnVsbCwgNi42NiwgN10sICBbMiwgMywgNSwgNiwgNi42NiwgN10sCisgICAgICAgICJpbmNyZW1l
bnRzIGJ5IG9uZSBmcm9tIGxhc3Qgc2V0IGtleSIpOworCisgICAga2V5Z2VuZXJhdG9yKFstMTAs
IG51bGwsICI2IiwgNi4zLCBbMTBdLCAtMiwgNCwgbnVsbF0sICAgWy0xMCwgLTIsIDEsIDQsIDYu
MywgNywgIjYiLCBbMTBdXSwKKyAgICAgICAgImRvbid0IGluY3JlbWVudCB3aGVuIG5ldyBrZXkg
aXMgbm90IGJpZ2dlciB0aGFuIGN1cnJlbnQiKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3Npbmcva2V5b3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleW9yZGVyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YTZlYTdiZjg2MWEzNjcwMGJiMWJmM2NkY2IyNjUyMzVmMGUxMzkzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2tleW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACisKK1BB
U1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIFN0cmluZyA8IEFycmF5IAorUEFTUyBJREJLZXku
Y21wIHNvcnRlZCAtIFN0cmluZyA8IEFycmF5IAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0
IC0gZmxvYXQgPCBTdHJpbmcgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBTdHJp
bmcgCitQQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBmbG9hdCA8IERhdGUgCitQQVNTIElE
QktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBEYXRlIAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBz
b3J0IC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkgCitQQVNTIElEQktleS5jbXAgc29y
dGVkIC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkgCitQQVNTIERhdGFiYXNlIHJlYWRi
YWNrIHNvcnQgLSBEYXRlKDEgc2VjIGFnbykgPCBEYXRlKG5vdykgPCBEYXRlKDEgbWludXRlIGlu
IGZ1dHVyZSkgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gRGF0ZSgxIHNlYyBhZ28pIDwgRGF0
ZShub3cpIDwgRGF0ZSgxIG1pbnV0ZSBpbiBmdXR1cmUpIAorUEFTUyBEYXRhYmFzZSByZWFkYmFj
ayBzb3J0IC0gLTEuMSA8IDEgPCAxLjAxMzM3IDwgMS4wMTMzNzMgPCAyIAorUEFTUyBJREJLZXku
Y21wIHNvcnRlZCAtIC0xLjEgPCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwgMiAKK1BBU1MgRGF0
YWJhc2UgcmVhZGJhY2sgc29ydCAtIC1JbmZpbml0eSA8IC0wLjAxIDwgMCA8IEluZmluaXR5IAor
UEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIC1JbmZpbml0eSA8IC0wLjAxIDwgMCA8IEluZmluaXR5
IAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gIiIgPCAiYSIgPCAiYWIiIDwgImIiIDwg
ImJhIiAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSAiIiA8ICJhIiA8ICJhYiIgPCAiYiIgPCAi
YmEiIAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gQXJyYXlzIAorUEFTUyBJREJLZXku
Y21wIHNvcnRlZCAtIEFycmF5cyAKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEFycmF5
Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXkubGVuZ3RoOiAxMCwwMDEgCitQQVNTIElEQktleS5jbXAg
c29ydGVkIC0gQXJyYXkubGVuZ3RoOiAxMCwwMDAgPCBBcnJheS5sZW5ndGg6IDEwLDAwMSAKK1BB
U1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEluZmluaXR5IGluc2lkZSBhcnJheXMgCitQQVNT
IElEQktleS5jbXAgc29ydGVkIC0gSW5maW5pdHkgaW5zaWRlIGFycmF5cyAKK1BBU1MgRGF0YWJh
c2UgcmVhZGJhY2sgc29ydCAtIFRlc3QgZGlmZmVyZW50IHN0dWZmIGF0IG9uY2UgCitQQVNTIElE
QktleS5jbXAgc29ydGVkIC0gVGVzdCBkaWZmZXJlbnQgc3R1ZmYgYXQgb25jZSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2tleW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3Npbmcva2V5b3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2Y0ZjkwMTg4NmU0ZmM3NjY3
NTVmNDU2ODAyZDUxMDJjMzg0MTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleW9yZGVyLmh0bWwKQEAgLTAs
MCArMSwxNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdG
IFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPktleSBzb3J0IG9yZGVy
PC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LWNvbnN0cnVjdCI+Cis8bGluayBy
ZWw9YXNzZXJ0IHRpdGxlPSJGb3IgcHVycG9zZXMgb2YgY29tcGFyaXNvbiwgYWxsIEFycmF5cyBh
cmUgZ3JlYXRlciB0aGFuIGFsbCBET01TdHJpbmcsIERhdGUgYW5kIGZsb2F0IHZhbHVlczsgYWxs
IERPTVN0cmluZyB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBhbGwgRGF0ZSBhbmQgZmxvYXQgdmFs
dWVzOyBhbmQgYWxsIERhdGUgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYWxsIGZsb2F0IHZhbHVl
cy4gVmFsdWVzIG9mIHR5cGUgZmxvYXQgYXJlIGNvbXBhcmVkIHRvIG90aGVyIGZsb2F0IHZhbHVl
cyBudW1lcmljYWxseS4gVmFsdWVzIG9mIHR5cGUgRGF0ZSBhcmUgY29tcGFyZWQgdG8gb3RoZXIg
RGF0ZSB2YWx1ZXMgY2hyb25vbG9naWNhbGx5LiBWYWx1ZXMgb2YgdHlwZSBET01TdHJpbmcgYXJl
IGNvbXBhcmVkIHRvIG90aGVyIHZhbHVlcyBvZiB0eXBlIERPTVN0cmluZyBieSB1c2luZyB0aGUg
YWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9mIHNlY3Rpb24gMTEuOC41LCBUaGUgQWJzdHJh
Y3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29yaXRobSwgb2YgdGhlIEVDTUFTY3JpcHQgTGFu
Z3VhZ2UgU3BlY2lmaWNhdGlvbiBbRUNNQS0yNjJdLiBWYWx1ZXMgb2YgdHlwZSBBcnJheSBhcmUg
Y29tcGFyZWQgdG8gb3RoZXIgdmFsdWVzIG9mIHR5cGUgQXJyYXkgYXMgZm9sbG93czoKKworMS4g
TGV0IEEgYmUgdGhlIGZpcnN0IEFycmF5IHZhbHVlIGFuZCBCIGJlIHRoZSBzZWNvbmQgQXJyYXkg
dmFsdWUuCisyLiBMZXQgbGVuZ3RoIGJlIHRoZSBsZXNzZXIgb2YgQSdzIGxlbmd0aCBhbmQgQidz
IGxlbmd0aC4KKzMuIExldCBpIGJlIDAuCis0LiBJZiB0aGUgaXRoIHZhbHVlIG9mIEEgaXMgbGVz
cyB0aGFuIHRoZSBpdGggdmFsdWUgb2YgQiwgdGhlbiBBIGlzIGxlc3MgdGhhbiBCLiBTa2lwIHRo
ZSByZW1haW5pbmcgc3RlcHMuCis1LiBJZiB0aGUgaXRoIHZhbHVlIG9mIEEgaXMgZ3JlYXRlciB0
aGFuIHRoZSBpdGggdmFsdWUgb2YgQiwgdGhlbiBBIGlzIGdyZWF0ZXIgdGhhbiBCLiBTa2lwIHRo
ZSByZW1haW5pbmcgc3RlcHMuCis2LiBJbmNyZWFzZSBpIGJ5IDEuCis3LiBJZiBpIGlzIG5vdCBl
cXVhbCB0byBsZW5ndGgsIGdvIGJhY2sgdG8gc3RlcCA0LiBPdGhlcndpc2UgY29udGludWUgdG8g
bmV4dCBzdGVwLgorOC4gSWYgQSdzIGxlbmd0aCBpcyBsZXNzIHRoYW4gQidzIGxlbmd0aCwgdGhl
biBBIGlzIGxlc3MgdGhhbiBCLiBJZiBBJ3MgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBCJ3MgbGVu
Z3RoLCB0aGVuIEEgaXMgZ3JlYXRlciB0aGFuIEIuIE90aGVyd2lzZSBBIGFuZCBCIGFyZSBlcXVh
bC4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7
CisKKyAgICBmdW5jdGlvbiBrZXlzb3J0KGRlc2MsIHVuc29ydGVkLCBleHBlY3RlZCkgeworICAg
ICAgICB2YXIgZGIsCisgICAgICAgICAgICB0ID0gYXN5bmNfdGVzdCgiRGF0YWJhc2UgcmVhZGJh
Y2sgc29ydCAtICIgKyBkZXNjLCB7IHRpbWVvdXQ6IDEwMDAwIH0pLAorICAgICAgICAgICAgc3Rv
cmVfbmFtZSA9ICdzdG9yZS0nICsgRGF0ZS5ub3coKSArIE1hdGgucmFuZG9tKCk7CisKKyAgICAg
ICAgLy8gVGhlIGRhdGFiYXNlIHRlc3QKKyAgICAgICAgdmFyIG9wZW5fcnEgPSBnbG9iYWxfZGIu
c2V0VGVzdCh0KTsKKyAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHN0b3JlX25hbWUpOworCisgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHVuc29ydGVkLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
ICAgIG9ialN0b3JlLmFkZCgidmFsdWUiLCB1bnNvcnRlZFtpXSk7CisgICAgICAgIH07CisKKyAg
ICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIg
YWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbihzdG9y
ZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKHN0b3JlX25hbWUpCisg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5KTsKKyAgICAg
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFs
cyhhY3R1YWxfa2V5cywgZXhwZWN0ZWQsICJrZXlvcmRlciBhcnJheSIpOworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbF9rZXlzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3Ro
LCAiYXJyYXkgbGVuZ3RoIik7CisKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisKKyAgICAgICAgLy8g
VGhlIElEQktleS5jbXAgdGVzdAorICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHZhciBzb3J0ZWQgPSB1bnNvcnRlZC5zbGljZSgwKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsg
cmV0dXJuIGluZGV4ZWREQi5jbXAoYSwgYil9KTsKKyAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1
YWxzKHNvcnRlZCwgZXhwZWN0ZWQsICJzb3J0ZWQgYXJyYXkiKTsKKworICAgICAgICB9LCAiSURC
S2V5LmNtcCBzb3J0ZWQgLSAiICsgZGVzYyk7CisgICAgfQorCisgICAgdmFyIG5vdyA9IG5ldyBE
YXRlKCksCisgICAgICAgIG9uZV9zZWNfYWdvID0gbmV3IERhdGUobm93IC0gMTAwMCksCisgICAg
ICAgIG9uZV9taW5fZnV0dXJlID0gbmV3IERhdGUobm93LmdldFRpbWUoKSArICgxMDAwKjYwKSk7
CisKKyAgICBrZXlzb3J0KCdTdHJpbmcgPCBBcnJheScsCisgICAgICAgIFsgWzBdLCAieW8iLCAi
IiwgW10gXSwKKyAgICAgICAgWyAiIiwgInlvIiwgW10sIFswXSBdKTsKKworICAgIGtleXNvcnQo
J2Zsb2F0IDwgU3RyaW5nJywKKyAgICAgICAgWyBJbmZpbml0eSwgInlvIiwgMCwgIiIsIDEwMCBd
LAorICAgICAgICBbIDAsIDEwMCwgSW5maW5pdHksICIiLCAieW8iIF0pOworCisgICAga2V5c29y
dCgnZmxvYXQgPCBEYXRlJywKKyAgICAgICAgWyBub3csIDAsIDk5OTk5OTk5OTk5OTksIC0wLjIy
IF0sCisgICAgICAgIFsgLTAuMjIsIDAsIDk5OTk5OTk5OTk5OTksIG5vdyBdKTsKKworICAgIGtl
eXNvcnQoJ2Zsb2F0IDwgRGF0ZSA8IFN0cmluZyA8IEFycmF5JywKKyAgICAgICAgWyBbXSwgIiIs
IG5vdywgWzBdLCAiLTEiLCAwLCA5OTk5OTk5OTk5OTk5LCBdLAorICAgICAgICBbIDAsIDk5OTk5
OTk5OTk5OTksIG5vdywgIiIsICItMSIsIFtdLCBbMF0gXSk7CisKKworICAgIGtleXNvcnQoJ0Rh
dGUoMSBzZWMgYWdvKSA8IERhdGUobm93KSA8IERhdGUoMSBtaW51dGUgaW4gZnV0dXJlKScsCisg
ICAgICAgIFsgbm93LCBvbmVfc2VjX2Fnbywgb25lX21pbl9mdXR1cmUgXSwKKyAgICAgICAgWyBv
bmVfc2VjX2Fnbywgbm93LCBvbmVfbWluX2Z1dHVyZSBdKTsKKworICAgIGtleXNvcnQoJy0xLjEg
PCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwgMicsCisgICAgICAgIFsgMS4wMTMzNzMsIDIsIDEu
MDEzMzcsIC0xLjEsIDEgXSwKKyAgICAgICAgWyAtMS4xLCAxLCAxLjAxMzM3LCAxLjAxMzM3Mywg
MiBdKTsKKworICAgIGtleXNvcnQoJy1JbmZpbml0eSA8IC0wLjAxIDwgMCA8IEluZmluaXR5JywK
KyAgICAgICAgWyAwLCAtMC4wMSwgLUluZmluaXR5LCBJbmZpbml0eSBdLAorICAgICAgICBbIC1J
bmZpbml0eSwgLTAuMDEsIDAsIEluZmluaXR5IF0pOworCisgICAga2V5c29ydCgnIiIgPCAiYSIg
PCAiYWIiIDwgImIiIDwgImJhIicsCisgICAgICAgIFsgImEiLCAiYmEiLCAiIiwgImIiLCAiYWIi
IF0sCisgICAgICAgIFsgIiIsICJhIiwgImFiIiwgImIiLCAiYmEiIF0pOworCisgICAga2V5c29y
dCgnQXJyYXlzJywKKyAgICAgICAgWyBbWzBdXSwgWzBdLCBbXSwgWzAsIDBdLCBbMCwgWzBdXSBd
LAorICAgICAgICBbIFtdLCBbMF0sIFswLCAwXSwgWzAsIFswXV0sIFtbMF1dIF0pOworCisgICAg
dmFyIGJpZ19hcnJheSA9IFtdLCBiaWdnZXJfYXJyYXkgPSBbXTsKKyAgICBmb3IgKHZhciBpPTA7
IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgICAgIGJpZ19hcnJheS5wdXNoKGkpOworICAgICAgICBi
aWdnZXJfYXJyYXkucHVzaChpKTsKKyAgICB9CisgICAgYmlnZ2VyX2FycmF5LnB1c2goMCk7CisK
KyAgICBrZXlzb3J0KCdBcnJheS5sZW5ndGg6IDEwLDAwMCA8IEFycmF5Lmxlbmd0aDogMTAsMDAx
JywKKyAgICAgICAgWyBiaWdnZXJfYXJyYXksIFswLCAyLCAzXSwgWzBdLCBbOV0sIGJpZ19hcnJh
eSBdLAorICAgICAgICBbIFswXSwgYmlnX2FycmF5LCBiaWdnZXJfYXJyYXksIFswLCAyLCAzXSwg
WzldIF0pOworCisgICAga2V5c29ydCgnSW5maW5pdHkgaW5zaWRlIGFycmF5cycsCisgICAgICAg
IFsgW0luZmluaXR5LCAxXSwgW0luZmluaXR5LCBJbmZpbml0eV0sIFsxLCAxXSwKKyAgICAgICAg
ICAgIFsxLCBJbmZpbml0eV0sIFsxLCAtSW5maW5pdHldLCBbLUluZmluaXR5LCBJbmZpbml0eV0g
XSwKKyAgICAgICAgWyBbLUluZmluaXR5LCBJbmZpbml0eV0sIFsxLCAtSW5maW5pdHldLCBbMSwg
MV0sCisgICAgICAgICAgICBbMSwgSW5maW5pdHldLCBbSW5maW5pdHksIDFdLCBbSW5maW5pdHks
IEluZmluaXR5XSBdKTsKKworCisgICAga2V5c29ydCgnVGVzdCBkaWZmZXJlbnQgc3R1ZmYgYXQg
b25jZScsCisgICAgICAgIFsKKyAgICAgICAgICBub3csCisgICAgICAgICAgWzAsIFtdXSwKKyAg
ICAgICAgICAidGVzdCIsCisgICAgICAgICAgMSwKKyAgICAgICAgICBbImEiLCBbMSwgWy0xXV1d
LAorICAgICAgICAgIFsiYiIsICJhIl0sCisgICAgICAgICAgWyAwLCAyLCAiYyJdLAorICAgICAg
ICAgIFsiYSIsIFsxLCAyXV0sCisgICAgICAgICAgW10sCisgICAgICAgICAgWzAsIFtdLCAzXSwK
KyAgICAgICAgICBbImEiLCAiYiJdLAorICAgICAgICAgIFsgMSwgMiBdLAorICAgICAgICAgIFsi
YSIsICJiIiwgImMiXSwKKyAgICAgICAgICBvbmVfc2VjX2FnbywKKyAgICAgICAgICBbIDAsICJi
IiwgImMiXSwKKyAgICAgICAgICBJbmZpbml0eSwKKyAgICAgICAgICAtSW5maW5pdHksCisgICAg
ICAgICAgMi41NSwKKyAgICAgICAgICBbIDAsIG5vdyBdLAorICAgICAgICAgIFsxXQorICAgICAg
ICBdLAorICAgICAgICBbCisgICAgICAgICAgLUluZmluaXR5LAorICAgICAgICAgIDEsCisgICAg
ICAgICAgMi41NSwKKyAgICAgICAgICBJbmZpbml0eSwKKyAgICAgICAgICBvbmVfc2VjX2FnbywK
KyAgICAgICAgICBub3csCisgICAgICAgICAgInRlc3QiLAorICAgICAgICAgIFtdLAorICAgICAg
ICAgIFswICwyLCAiYyJdLAorICAgICAgICAgIFswLCBub3ddLAorICAgICAgICAgIFswLCAiYiIs
ICJjIl0sCisgICAgICAgICAgWzAsIFtdXSwKKyAgICAgICAgICBbMCwgW10sIDNdLAorICAgICAg
ICAgIFsxXSwKKyAgICAgICAgICBbMSwgMl0sCisgICAgICAgICAgWyJhIiwgImIiXSwKKyAgICAg
ICAgICBbImEiLCAiYiIsICJjIl0sCisgICAgICAgICAgWyJhIiwgWzEsIDJdXSwKKyAgICAgICAg
ICBbImEiLCBbMSwgWy0xXV1dLAorICAgICAgICAgIFsiYiIsICJhIl0KKyAgICAgICAgXSk7CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleXBhdGgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL2tleXBhdGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0YWI5ZWQ3YmUwNjM2NTY5Yzc0
NDJjYzU4MzIxNWEwZDFhMGExODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMSBAQAorCitQQVNTIEtleXBhdGggLSBteS5rZXkgCitQQVNTIEtleXBhdGgg
LSBteS5rw7hpIAorUEFTUyBLZXlwYXRoIC0gbXkua2V5X3lhIAorUEFTUyBLZXlwYXRoIC0gcHVi
bGljLmtleSR5YSAKK1BBU1MgS2V5cGF0aCAtIHRydWUuJCAKK1BBU1MgS2V5cGF0aCAtIG15Ll8g
CitQQVNTIEtleXBhdGggLSBkZWxldGUuYTcgCitQQVNTIEtleXBhdGggLSBwLnAucC5wLnAucC5w
LnAucC5wLnAucC5wLnAgCitQQVNTIEtleXBhdGggLSBzdHIubGVuZ3RoIAorUEFTUyBLZXlwYXRo
IC0gYXJyLmxlbmd0aCAKK1BBU1MgS2V5cGF0aCAtIGxlbmd0aCAKK1BBU1MgS2V5cGF0aCAtICcn
IHVzZXMgdmFsdWUgYXMga2V5IAorUEFTUyBLZXlwYXRoIC0gWycnXSB1c2VzIHZhbHVlIGFzIFtr
ZXldIAorUEFTUyBLZXlwYXRoIC0gWyd4JywgJ3knXSAKK1BBU1MgS2V5cGF0aCAtIFtbJ3gnXSwg
J3knXSAoc3RyaW5naWZpZXMpIAorUEFTUyBLZXlwYXRoIC0gWyd4Jywge3RvU3RyaW5nLT4neSd9
XSAoc3RyaW5naWZpZXMpIAorUEFTUyBLZXlwYXRoIC0gbmFtZSx0eXBlIAorUEFTUyBLZXlwYXRo
IC0gbmFtZSx0eXBlLm5hbWUgCitQQVNTIEtleXBhdGggLSBhcnJheSBsb29wIC0+IHN0cmluZ2lm
eSBiZWNvbWVzIFsnJ10gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlwYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRhOTBiZjE2ODEyZjZjNWFmYzE2ZDU5ODIyODczMTRmYzMzM2YyNmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Np
bmcva2V5cGF0aC5odG1sCkBAIC0wLDAgKzEsMTQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0g
U3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5LZXlwYXRoPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNz
LnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LXBhdGgt
Y29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEga2V5IHBhdGggaXMgYSBET01T
dHJpbmcgdGhhdCBkZWZpbmVzIGhvdyB0byBleHRyYWN0IGEga2V5IGZyb20gYSB2YWx1ZS4gQSB2
YWxpZCBrZXkgcGF0aCBpcyBlaXRoZXIgdGhlIGVtcHR5IHN0cmluZywgYSBKYXZhU2NyaXB0IGlk
ZW50aWZpZXIsIG9yIG11bHRpcGxlIEphdmFzY3JpcHQgaWRlbnRpZmllcnMgc2VwYXJhdGVkIGJ5
IHBlcmlvZHMgKEFTQ0lJIGNoYXJhY3RlciBjb2RlIDQ2KSBbRUNNQS0yNjJdLiI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAg
dmFyIGdsb2JhbF9kYiA9IGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cygpOworCisgICAgZnVu
Y3Rpb24ga2V5cGF0aChrZXlwYXRoLCBvYmplY3RzLCBleHBlY3RlZF9rZXlzLCBkZXNjKSB7Cisg
ICAgICAgIHZhciBkYiwKKyAgICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtICIgKyAoZGVzYyA/IGRlc2MgOiBrZXlwYXRoKSksCisKKyAgICAgICAgICAgIHN0b3Jl
X25hbWUgPSAic3RvcmUtIisoRGF0ZS5ub3coKSkrTWF0aC5yYW5kb20oKTsKKworICAgICAgICB2
YXIgb3Blbl9ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQpOworICAgICAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3Rv
cmVfbmFtZSwgeyBrZXlQYXRoOiBrZXlwYXRoIH0pOworCisgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgb2JqU3RvcmUu
YWRkKG9iamVjdHNbaV0pOworICAgICAgICB9OworCisgICAgICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisgICAg
ICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oc3RvcmVfbmFtZSkKKyAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZShzdG9yZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgICAgIGFj
dHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOworICAgICAgICAgICAgICAgICAg
ICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGFjdHVhbF9rZXlz
LCBleHBlY3RlZF9rZXlzLCAia2V5b3JkZXIgYXJyYXkiKTsKKyAgICAgICAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH07
CisgICAgfQorCisgICAga2V5cGF0aCgnbXkua2V5JywKKyAgICAgICAgWyB7IG15OiB7IGtleTog
MTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdteS5rw7hpJywKKyAg
ICAgICAgWyB7IG15OiB7IGvDuGk6IDUgfSB9IF0sCisgICAgICAgIFsgNSBdKTsKKworICAgIGtl
eXBhdGgoJ215LmtleV95YScsCisgICAgICAgIFsgeyBteTogeyBrZXlfeWE6IDEwIH0gfSBdLAor
ICAgICAgICBbIDEwIF0pOworCisgICAga2V5cGF0aCgncHVibGljLmtleSR5YScsCisgICAgICAg
IFsgeyBwdWJsaWM6IHsga2V5JHlhOiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBdKTsKKworICAg
IGtleXBhdGgoJ3RydWUuJCcsCisgICAgICAgIFsgeyB0cnVlOiB7ICQ6IDEwIH0gfSBdLAorICAg
ICAgICBbIDEwIF0pOworCisgICAga2V5cGF0aCgnbXkuXycsCisgICAgICAgIFsgeyBteTogeyBf
OiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBdKTsKKworICAgIGtleXBhdGgoJ2RlbGV0ZS5hNycs
CisgICAgICAgIFsgeyBkZWxldGU6IHsgYTc6IDEwIH0gfSBdLAorICAgICAgICBbIDEwIF0pOwor
CisgICAga2V5cGF0aCgncC5wLnAucC5wLnAucC5wLnAucC5wLnAucC5wJywKKyAgICAgICAgWyB7
cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDoxMH19fX19fX19fX19fX19
IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdzdHIubGVuZ3RoJywKKyAgICAg
ICAgWyB7IHN0cjogInBvbnkiIH0sIHsgc3RyOiAibXkiIH0sIHsgc3RyOiAibGl0dGxlIiB9LCB7
IHN0cjogIiIgfSBdLAorICAgICAgICBbIDAsIDIsIDQsIDYgXSk7CisKKyAgICBrZXlwYXRoKCdh
cnIubGVuZ3RoJywKKyAgICAgICAgWyB7YXJyOiBbMCwgMCwgMCwgMF19LCB7YXJyOiBbe30sIDAs
ICJoZWkiLCAibGVuZ3RoIiwgSW5maW5pdHksIFtdXX0sIHthcnI6IFsxMCwgMTBdfSwgeyBhcnI6
IFtdfSBdLAorICAgICAgICBbIDAsIDIsIDQsIDYgXSk7CisKKyAgICBrZXlwYXRoKCdsZW5ndGgn
LAorICAgICAgICBbIFsxMCwgMTBdLCAiMTIzIiwgeyBsZW5ndGg6IDIwIH0gXSwKKyAgICAgICAg
WyAyLCAzLCAyMCBdKTsKKworICAgIGtleXBhdGgoJycsCisgICAgICAgIFsgWyJiYWdzIl0sICJi
ZWFuIiwgMTAgXSwKKyAgICAgICAgWyAxMCwgImJlYW4iLCBbImJhZ3MiXSBdLAorICAgICAgICAi
JycgdXNlcyB2YWx1ZSBhcyBrZXkiKTsKKworICAgIGtleXBhdGgoWycnXSwKKyAgICAgICAgWyBb
ImJhZ3MiXSwgImJlYW4iLCAxMCBdLAorICAgICAgICBbIFsxMF0sIFsiYmVhbiJdICwgW1siYmFn
cyJdXSBdLAorICAgICAgICAiWycnXSB1c2VzIHZhbHVlIGFzIFtrZXldIik7CisKKyAgICBrZXlw
YXRoKFsneCcsICd5J10sCisgICAgICAgIFsge3g6MTAsIHk6MjB9LCB7eToxLjMzNywgeDoxMDB9
IF0sCisgICAgICAgIFsgWzEwLCAyMF0sIFsxMDAsIDEuMzM3XSBdLAorICAgICAgICAiWyd4Jywg
J3knXSIpOworCisgICAga2V5cGF0aChbWyd4J10sIFsneSddXSwKKyAgICAgICAgWyB7eDoxMCwg
eToyMH0sIHt5OjEuMzM3LCB4OjEwMH0gXSwKKyAgICAgICAgWyBbMTAsIDIwXSwgWzEwMCwgMS4z
MzddIF0sCisgICAgICAgICJbWyd4J10sICd5J10gKHN0cmluZ2lmaWVzKSIpOworCisgICAga2V5
cGF0aChbJ3gnLCB7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gJ3knfX1dLAorICAgICAgICBb
IHt4OjEwLCB5OjIwfSwge3k6MS4zMzcsIHg6MTAwfSBdLAorICAgICAgICBbIFsxMCwgMjBdLCBb
MTAwLCAxLjMzN10gXSwKKyAgICAgICAgIlsneCcsIHt0b1N0cmluZy0+J3knfV0gKHN0cmluZ2lm
aWVzKSIpOworCisgICAgaWYgKGZhbHNlKSB7CisgICAgICAgIHZhciBteWJsb2IgPSBCbG9iKFsi
WW9kYSJdLCB7dHlwZTonc3VwcmF3c3VtJ30pOworICAgICAgICBrZXlwYXRoKFsnbGVuZ3RoJywg
J3R5cGUnXSwKKyAgICAgICAgICAgIFsgbXlibG9iIF0sCisgICAgICAgICAgICBbIDQsICdzdXBy
YXdzdW0nIF0sCisgICAgICAgICAgICAiW0Jsb2IubGVuZ3RoLCBCbG9iLnR5cGVdIik7CisgICAg
fQorCisgICAgLy8gRmlsZS5uYW1lIGFuZCBGaWxlLmxhc3RNb2RpZmllZERhdGUgaXMgbm90IHRl
c3RhYmxlIGF1dG9tYXRpY2FsbHkKKworICAgIGtleXBhdGgoWyduYW1lJywgJ3R5cGUnXSwKKyAg
ICAgICAgWyB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiAiZnJ1aXQiIH0sIHsgbmFtZTogIm9yYW5n
ZSIsIHR5cGU6IFsidGVsZWNvbSIsICJmcmVuY2giXSB9IF0sCisgICAgICAgIFsgWyJvcmFuZ2Ui
LCAiZnJ1aXQiXSwgWyJvcmFuZ2UiLCBbInRlbGVjb20iLCAiZnJlbmNoIl1dIF0pOworCisgICAg
a2V5cGF0aChbJ25hbWUnLCAndHlwZS5uYW1lJ10sCisgICAgICAgIFsgeyBuYW1lOiAib3Jhbmdl
IiwgdHlwZTogeyBuYW1lOiAiZnJ1aXQiIH19LCB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiB7IG5h
bWU6ICJ0ZWxlY29tIiB9fSBdLAorICAgICAgICBbIFsib3JhbmdlIiwgImZydWl0Il0sIFsib3Jh
bmdlIiwgInRlbGVjb20iIF0gXSk7CisKKyAgICBsb29wX2FycmF5ID0gW107CisgICAgbG9vcF9h
cnJheS5wdXNoKGxvb3BfYXJyYXkpOworICAgIGtleXBhdGgobG9vcF9hcnJheSwKKyAgICAgICAg
WyAiYSIsIDEsIFsiayJdIF0sCisgICAgICAgIFsgWzFdLCBbImEiXSwgW1siayJdXSBdLAorICAg
ICAgICAiYXJyYXkgbG9vcCAtPiBzdHJpbmdpZnkgYmVjb21lcyBbJyddIik7Cis8L3NjcmlwdD4K
KworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aF9pbnZhbGlkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9r
ZXlwYXRoX2ludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwOTgyNDI2MjhmODAwZjhk
MmJkYWY4MDEzNjcyZDVlYWMwMzc0ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aF9pbnZhbGlkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACisKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gImog
YSIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIueW8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGgg
LSAieW8sbG8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSBbXSAKK1BBU1MgSW52YWxpZCBrZXlQ
YXRoIC0gWyJhcnJheSB3aXRoIHNwYWNlIl0gCitQQVNTIEludmFsaWQga2V5UGF0aCAtIG11bHRp
ZGltZW5zaW9uYWwgYXJyYXkgKGludmFsaWQgdG9TdHJpbmcpIAorUEFTUyBJbnZhbGlkIGtleVBh
dGggLSAiM20iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSB7dG9TdHJpbmctPjNtfSAKK1BBU1Mg
SW52YWxpZCBrZXlQYXRoIC0gIm15LjEzMzciIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiLi55
byIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJ5Li5vIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRo
IC0gInkuby4iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAieS5vLi4iIAorUEFTUyBJbnZhbGlk
IGtleVBhdGggLSAibS4qIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIlwibVwiIiAKK1BBU1Mg
SW52YWxpZCBrZXlQYXRoIC0gIm0lIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0vIiAKK1BB
U1MgSW52YWxpZCBrZXlQYXRoIC0gIm0vYSIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJtJiIg
CitQQVNTIEludmFsaWQga2V5UGF0aCAtICJtISIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIq
IiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIiouKiIgCitQQVNTIEludmFsaWQga2V5UGF0aCAt
ICJebSIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIvbS8iIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aF9p
bnZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3Npbmcva2V5cGF0aF9pbnZhbGlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MxZDQ0NDE2ZmJlYWQy
ZWVmYmE3ZTRkMTFlYTA3NzRlNWYyMjkwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlwYXRoX2ludmFsaWQu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZy
b20gVGVzdFRXRiBQYXJpcyAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JbnZh
bGlkIGtleXBhdGg8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktcGF0aC1jb25z
dHJ1Y3QiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSBrZXkgcGF0aCBpcyBhIERPTVN0cmlu
ZyB0aGF0IGRlZmluZXMgaG93IHRvIGV4dHJhY3QgYSBrZXkgZnJvbSBhIHZhbHVlLiBBIHZhbGlk
IGtleSBwYXRoIGlzIGVpdGhlciB0aGUgZW1wdHkgc3RyaW5nLCBhIEphdmFTY3JpcHQgaWRlbnRp
Zmllciwgb3IgbXVsdGlwbGUgSmF2YXNjcmlwdCBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgcGVy
aW9kcyAoQVNDSUkgY2hhcmFjdGVyIGNvZGUgNDYpIFtFQ01BLTI2Ml0uIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIg
Z2xvYmFsX2RiID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7CisKKyAgICBmdW5jdGlv
biBpbnZhbGlkX2tleXBhdGgoa2V5cGF0aCwgZGVzYykgeworICAgICAgICB2YXIgdCA9IGFzeW5j
X3Rlc3QoIkludmFsaWQga2V5UGF0aCAtICIgKyAoZGVzYyA/IGRlc2MgOiBmb3JtYXRfdmFsdWUo
a2V5cGF0aCkpLCB1bmRlZmluZWQsIDIpOworCisgICAgICAgIHZhciBvcGVucnEgPSBnbG9iYWxf
ZGIuc2V0VGVzdCh0KSwKKyAgICAgICAgICAgIHN0b3JlX25hbWUgID0gInN0b3JlLSIgKyBEYXRl
Lm5vdygpICsgTWF0aC5yYW5kb20oKTsKKworICAgICAgICBvcGVucnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSwgeyBrZXlQ
YXRoOiBrZXlwYXRoIH0pCisgICAgICAgICAgICAgICAgfSwgImNyZWF0ZU9iamVjdFN0b3JlIHdp
dGgga2V5UGF0aCIpOworCisgICAgICAgICAgICBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KHN0b3JlX25hbWUpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4
Jywga2V5cGF0aCk7CisgICAgICAgICAgICAgICAgfSwgImNyZWF0ZUluZGV4IHdpdGgga2V5UGF0
aCIpOworCisgICAgICAgICAgICBkYi5jbG9zZSgpOworCisgICAgICAgICAgICB0aGlzLmRvbmUo
KTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBpbnZhbGlkX2tleXBhdGgoJ2ogYScpOworICAg
IGludmFsaWRfa2V5cGF0aCgnLnlvJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCd5byxsbycpOwor
ICAgIGludmFsaWRfa2V5cGF0aChbXSk7CisgICAgaW52YWxpZF9rZXlwYXRoKFsnYXJyYXkgd2l0
aCBzcGFjZSddKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoWydtdWx0aV9hcnJheScsIFsnYScsICdi
J11dLCAibXVsdGlkaW1lbnNpb25hbCBhcnJheSAoaW52YWxpZCB0b1N0cmluZykiKTsgLy8gPT4g
WydtdWx0aV9hcnJheScsICdhLGInXQorICAgIGludmFsaWRfa2V5cGF0aCgnM20nKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoe3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICczbSd9fSwgJ3t0b1N0
cmluZy0+M219Jyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdteS4xMzM3Jyk7CisgICAgaW52YWxp
ZF9rZXlwYXRoKCcuLnlvJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCd5Li5vJyk7CisgICAgaW52
YWxpZF9rZXlwYXRoKCd5Lm8uJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCd5Lm8uLicpOworICAg
IGludmFsaWRfa2V5cGF0aCgnbS4qJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCcibSInKTsKKyAg
ICBpbnZhbGlkX2tleXBhdGgoJ20lJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtLycpOworICAg
IGludmFsaWRfa2V5cGF0aCgnbS9hJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtJicpOworICAg
IGludmFsaWRfa2V5cGF0aCgnbSEnKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoJyonKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJyouKicpOworICAgIGludmFsaWRfa2V5cGF0aCgnXm0nKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJy9tLycpOworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3Npbmcva2V5cGF0aF9tYXhzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9rZXlwYXRoX21heHNpemUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYyOTI5MWI0MzFkZjA2ZTQ5NmU5YThkMjU5ZDcxMDhkN2E2ZDZk
MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERC
LXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aF9tYXhzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKKworUEFTUyBLZXlwYXRoIC0gfjI2MCBjaGFycyAKK1BBU1MgS2V5cGF0aCAtIH41MzAg
Y2hhcnMgCitQQVNTIEtleXBhdGggLSB+MTA1MCBjaGFycyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2tleXBhdGhfbWF4
c2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL2tleXBhdGhfbWF4c2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmOWUxMjBlNzhmZTkzNjU5
MzZhZTA0NTJlZWM5YzAxODUyODQ3YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcva2V5cGF0aF9tYXhzaXplLmh0
bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+S2V5cGF0aDwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1w
YXRoLWNvbnN0cnVjdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJBIGtleSBwYXRoIGlzIGEg
RE9NU3RyaW5nIHRoYXQgZGVmaW5lcyBob3cgdG8gZXh0cmFjdCBhIGtleSBmcm9tIGEgdmFsdWUu
IEEgdmFsaWQga2V5IHBhdGggaXMgZWl0aGVyIHRoZSBlbXB0eSBzdHJpbmcsIGEgSmF2YVNjcmlw
dCBpZGVudGlmaWVyLCBvciBtdWx0aXBsZSBKYXZhc2NyaXB0IGlkZW50aWZpZXJzIHNlcGFyYXRl
ZCBieSBwZXJpb2RzIChBU0NJSSBjaGFyYWN0ZXIgY29kZSA0NikgW0VDTUEtMjYyXS4iPgorPG1l
dGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24ga2V5cGF0aChrZXlw
YXRoLCBvYmplY3RzLCBleHBlY3RlZF9rZXlzLCBkZXNjKSB7CisgICAgICAgIHZhciBkYiwKKyAg
ICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyAoZGVzYyA/
IGRlc2MgOiBrZXlwYXRoKSwgeyB0aW1lb3V0OiAxMDAwMCB9KSwKKyAgICAgICAgICAgIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRo
OiBrZXlwYXRoIH0pOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMu
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKG9iamVjdHNbaV0pOwor
ICAgICAgICB9OworCisgICAgICAgIG9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAg
IH07CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICAgICAgICBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3Rv
cmUiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGlmIChj
dXJzb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5
LnZhbHVlT2YoKSk7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMsICJrZXlvcmRlciBhcnJheSIpOworICAg
ICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBrZXlwYXRoKCdtYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaS5rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVleScsCisgICAgICAgIFsgeyBtYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhaTogeyBrZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVleTogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSwgJ34yNjAgY2hhcnMn
KTsKKworICAgIGtleXBhdGgoJ21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpLmtlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5JywKKyAgICAgICAgWyB7IG1hYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFpOiB7IGtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWV5OiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBdLCAnfjUzMCBjaGFycycpOworCisg
ICAga2V5cGF0aCgnbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWkua2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2Vl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXknLAorICAgICAgICBbIHsg
bWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWk6IHsg
a2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXk6IDEwIH0gfSBdLAorICAgICAgICBbIDEw
IF0sICd+MTA1MCBjaGFycycpOworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9sb2c+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvbGlzdF9vcmRlcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvbGlzdF9vcmRlcmluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTc5M2I1ZDY2MGE2YmU3YWUwZDk0MGMwYjgxODJhMWEyZmIwNzk4MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy9saXN0X29yZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKwor
UEFTUyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbnVtYmVycyAKK1BB
U1Mgb2JqZWN0U3RvcmVOYW1lcyBhbmQgaW5kZXhOYW1lcyBvcmRlciAtIG51bWJlcnMgJ292ZXJm
bG93JyAKK1BBU1Mgb2JqZWN0U3RvcmVOYW1lcyBhbmQgaW5kZXhOYW1lcyBvcmRlciAtIGxleGln
cmFwaGljYWwgc3RyaW5nIHNvcnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9saXN0X29yZGVyaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvbGlzdF9vcmRl
cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5OTc2N2EwYTczMTljMmVlZmZkNDBjOGIxY2JlNmMzMmJh
OWQzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvbGlzdF9vcmRlcmluZy5odG1sCkBAIC0wLDAgKzEsNjEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPm9iamVjdFN0
b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXI8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1vYmplY3RTdG9yZU5h
bWVzIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBsaXN0IG11c3QgYmUgc29ydGVkIGlu
IGFzY2VuZGluZyBvcmRlciB1c2luZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9m
IHNlY3Rpb24gMTEuOC41LCBUaGUgQWJzdHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29y
aXRobSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0u
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisgICAgZnVuY3Rpb24gbGlzdF9vcmRlcihkZXNjLCB1bnNvcnRlZCwgZXhwZWN0ZWQpIHsK
KyAgICAgICAgdmFyIG9ialN0b3JlLCBkYiwKKyAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSArICIgLSAiICsgZGVzYyk7CisKKyAgICAgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSh1bnNvcnRlZFtpXSk7CisKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCwg
Im9iamVjdFN0b3JlTmFtZXMgbGVuZ3RoIik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhk
Yi5vYmplY3RTdG9yZU5hbWVzW2ldLCBleHBlY3RlZFtpXSwgIm9iamVjdFN0b3JlTmFtZXNbIitp
KyJdIik7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgodW5zb3J0ZWRbaV0s
ICJsZW5ndGgiKTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5h
bWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiaW5kZXhOYW1lcyBsZW5ndGgiKTsKKyAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzW2ldLCBleHBlY3RlZFtp
XSwgImluZGV4TmFtZXNbIitpKyJdIik7CisgICAgICAgIH07CisKKyAgICAgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9i
amVjdFN0b3JlTmFtZXMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICJvYmplY3RTdG9yZU5hbWVz
IGxlbmd0aCIpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFt
ZXNbaV0sIGV4cGVjdGVkW2ldLCAib2JqZWN0U3RvcmVOYW1lc1siK2krIl0iKTsKKworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQu
bGVuZ3RoLCAiaW5kZXhOYW1lcyBsZW5ndGgiKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhvYmpTdG9yZS5pbmRleE5hbWVzW2ldLCBleHBlY3RlZFtpXSwgImluZGV4TmFtZXNbIitpKyJd
Iik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGxp
c3Rfb3JkZXIoIm51bWJlcnMiLAorICAgICAgICBbMTIzNDU2LCAtMTIzNDUsIC0xMjMsIDEyMywg
MTIzNCwgLTEyMzQsIDAsIDEyMzQ1LCAtMTIzNDU2XSwKKyAgICAgICAgWyItMTIzIiwgIi0xMjM0
IiwgIi0xMjM0NSIsICItMTIzNDU2IiwgIjAiLCAiMTIzIiwgIjEyMzQiLCAiMTIzNDUiLCAiMTIz
NDU2Il0pOworCisgICAgbGlzdF9vcmRlcigibnVtYmVycyAnb3ZlcmZsb3cnIiwKKyAgICAgICAg
WzksIDEsIDEwMDAwMDAwMDAsIDIwMDAwMDAwMDAwMDAwMDAwMF0sCisgICAgICAgIFsiMSIsICIx
MDAwMDAwMDAwIiwgIjIwMDAwMDAwMDAwMDAwMDAwMCIsICI5Il0pOworCisgICAgbGlzdF9vcmRl
cigibGV4aWdyYXBoaWNhbCBzdHJpbmcgc29ydCIsCisgICAgICAgIFsgImNjIiwgImMiLCAiYWEi
LCAiYSIsICJiYiIsICJiIiwgImFiIiwgIiIsICJhYyIgXSwKKyAgICAgICAgWyAiIiwgImEiLCAi
YWEiLCAiYWIiLCAiYWMiLCAiYiIsICJiYiIsICJjIiwgImNjIiBdKTsKKworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcvb2JqZWN0c3RvcmVfa2V5b3JkZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL29iamVjdHN0b3JlX2tleW9yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWI0OGZj
ZTc1ZDhhMTQ0NjZlNDk2MThiNDAxODRiNmE0NmE1MGE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL29iamVjdHN0
b3JlX2tleW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBWZXJpZnkg
a2V5IHNvcnQgb3JkZXIgaW4gYW4gb2JqZWN0IHN0b3JlIGlzICdudW1iZXIgPCBEYXRlIDwgRE9N
U3RyaW5nJyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9vYmplY3RzdG9yZV9rZXlvcmRlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL29iamVjdHN0b3JlX2tl
eW9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIyY2VmMzZlNThmNzMxY2MxNTk1N2U3NTMzNmU4ODcz
YjM5OTk2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy9vYmplY3RzdG9yZV9rZXlvcmRlci5odG1sCkBAIC0wLDAg
KzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PlZlcmlmeSBrZXkgc29ydCBvcmRlciBpbiBhbiBvYmplY3Qgc3RvcmUgaXMgJ251bWJlciAmbHQ7
IERhdGUgJmx0OyBET01TdHJpbmcnIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LAorICAgICAgZCA9IG5ldyBEYXRlKCksCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkcyA9IFsgeyBrZXk6IGQgfSwKKyAgICAgICAgICAgICAgICAgIHsga2V5OiAidGVzdCIg
fSwKKyAgICAgICAgICAgICAgICAgIHsga2V5OiAxIH0sCisgICAgICAgICAgICAgICAgICB7IGtl
eTogMi41NSB9ICBdLAorICAgICAgZXhwZWN0ZWRLZXlPcmRlciA9IFsgMSwgMi41NSwgZC52YWx1
ZU9mKCksICJ0ZXN0IiBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisgICAgICAgICAgcnEgPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAg
YWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZEtl
eU9yZGVyKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9yZXF1ZXN0X2J1YmJsZS1hbmQt
Y2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFmZmM1ODE0Mzc1ZmYxOTI4ZjEzYzgz
YzBhYzI3NDZiNTc4NTI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVy
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQnViYmxpbmcgYW5kIGNhcHR1
cmluZyBvZiByZXF1ZXN0IGV2ZW50cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0
dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJv
d3NpbmcvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2E0ZjQ1
MWI2ZWQ2ZGY5N2U4M2MyZGMxZTNiMTE2ZjU2ODdjNTdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3JlcXVlc3Rf
YnViYmxlLWFuZC1jYXB0dXJlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkJ1YmJsaW5nIGFuZCBjYXB0dXJpbmcgb2Yg
cmVxdWVzdCBldmVudHM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBldmVu
dHMgPSBbXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICAgICAgdmFyIHN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInMiKTsKKyAgICAgICAgdmFyIHJxMSA9IHN0b3JlLmFkZCgi
IiwgMSk7CisgICAgICAgIHZhciBycTIgPSBzdG9yZS5hZGQoIiIsIDEpOworICAgICAgICBkYi5v
bmVycm9yID0gZnVuY3Rpb24oKXt9OworCisgICAgICAgIGxvZ19yZXF1ZXN0KCcgZGInLCAgZGIp
OworICAgICAgICBsb2dfcmVxdWVzdCgndHhuJywgdHhuKTsKKyAgICAgICAgbG9nX3JlcXVlc3Qo
J3JxMScsIHJxMSk7CisgICAgICAgIGxvZ19yZXF1ZXN0KCdycTInLCBycTIpOworCisgICAgICAg
IC8vIERvbid0IGxldCBpdCBnZXQgdG8gYWJvcnQKKyAgICAgICAgZGIuYWRkRXZlbnRMaXN0ZW5l
cignZXJyb3InLCBmdW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1bHQoKSB9LCBmYWxzZSk7Cisg
ICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxv
Zygib3Blbl9ycS5zdWNjZXNzIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZl
bnRzLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlICBk
Yi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1
cmUgdHhuLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2FwdHVyZSBycTEuc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJidWJibGUgIHJxMS5zdWNjZXNzIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY2FwdHVyZSAgZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHR4bi5lcnJvcjogQ29uc3Ry
YWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1
cmUgcnEyLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYnViYmxlICBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHR4bi5lcnJvcjogQ29u
c3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1
YmJsZSAgIGRiLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJvcGVuX3JxLnN1Y2Nlc3MiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRz
Iik7CisgICAgICAgIHRoaXMuZG9uZSgpOworICAgIH0KKworCisgICAgZnVuY3Rpb24gbG9nX3Jl
cXVlc3QodHlwZSwgb2JqKSB7CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNz
JywgbG9nKCdjYXB0dXJlICcgKyB0eXBlICsgJy5zdWNjZXNzJyksIHRydWUpOworICAgICAgICBv
YmouYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGxvZygnYnViYmxlICAnICsgdHlwZSArICcu
c3VjY2VzcycpLCBmYWxzZSk7CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdlcnJvcics
IGxvZygnY2FwdHVyZSAnICsgdHlwZSArICcuZXJyb3InKSwgdHJ1ZSk7CisgICAgICAgIG9iai5h
ZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGxvZygnYnViYmxlICAnICsgdHlwZSArICcuZXJyb3In
KSwgZmFsc2UpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJn
ZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFy
Z2V0LmVycm9yLm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2ZW50
cy5wdXNoKG1zZyk7CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL3N0cmluZy1saXN0LW9yZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9zdHJpbmctbGlz
dC1vcmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI3NjBkYTI1ZTMxYzQzMDJhZDY2
ZTIwMTc4YmNjYTQ5MGM4ZTg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9zdHJpbmctbGlzdC1vcmRlcmluZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdCBzdHJpbmcgbGlzdCBvcmRl
cmluZyBpbiBJbmRleGVkREIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9zdHJpbmctbGlzdC1vcmRlcmluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3N0cmlu
Zy1saXN0LW9yZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcyODQ1ZjQxM2RmNjVjMjI0OTlhZTAz
ODhjNjY1ZDA5MDI0ODE1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9zdHJpbmctbGlzdC1vcmRlcmluZy5odG1s
CkBAIC0wLDAgKzEsODUgQEAKKzwhLS0KK1Rlc3QgY29udmVydGVkIGZyb20gV2ViS2l0OgoraHR0
cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9saXN0LW9yZGVyaW5nLmpzCistLT4KKworPCFET0NUWVBFIGh0bWw+
Cis8IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8bWV0YSBjaGFyc2V0PXV0
Zi04PgorPHRpdGxlPlRlc3Qgc3RyaW5nIGxpc3Qgb3JkZXJpbmcgaW4gSW5kZXhlZERCPC90aXRs
ZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1vYmplY3RTdG9yZU5h
bWVzIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBsaXN0IG11c3QgYmUgc29ydGVkIGlu
IGFzY2VuZGluZyBvcmRlciB1c2luZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9m
IHNlY3Rpb24gMTEuOC41LCBUaGUgQWJzdHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29y
aXRobSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0u
Ij4KKzxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOnJvbWFpbi5odWV0QGdtYWlsLmNvbSIg
dGl0bGU9IlJvbWFpbiBIdWV0Ij4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZXhwZWN0ZWRPcmRlciA9IFsKKyAgICAg
ICAgIiIsCisgICAgICAgICJceDAwIiwgLy8gJ05VTEwnIChVKzAwMDApCisgICAgICAgICIwIiwK
KyAgICAgICAgIjEiLAorICAgICAgICAiQSIsCisgICAgICAgICJCIiwKKyAgICAgICAgImEiLAor
ICAgICAgICAiYiIsCisgICAgICAgICJceDdGIiwgLy8gJ0RFTEVURScgKFUrMDA3RikKKyAgICAg
ICAgIlx4QzAiLCAvLyAnTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFJyAoVSswMEMw
KQorICAgICAgICAiXHhDMSIsIC8vICdMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUn
IChVKzAwQzEpCisgICAgICAgICJceEUwIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEgg
R1JBVkUnIChVKzAwRTApCisgICAgICAgICJceEUxIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBB
IFdJVEggQUNVVEUnIChVKzAwRTEpCisgICAgICAgICJceEZGIiwgLy8gJ0xBVElOIFNNQUxMIExF
VFRFUiBZIFdJVEggRElBRVJFU0lTJyAoVSswMEZGKQorICAgICAgICAiXHUwMTAwIiwgLy8gJ0xB
VElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBNQUNST04nIChVKzAxMDApCisgICAgICAgICJcdTEw
MDAiLCAvLyAnTVlBTk1BUiBMRVRURVIgS0EnIChVKzEwMDApCisgICAgICAgICJcdUQ4MzRcdURE
MUUiLCAvLyAnTVVTSUNBTCBTWU1CT0wgRy1DTEVGJyAoVSsxRDExRSksIFVURi0xNiBzdXJyb2dh
dGUgcGFpcnMKKyAgICAgICAgIlx1RkZGRCIgLy8gJ1JFUExBQ0VNRU5UIENIQVJBQ1RFUicgKFUr
RkZGRCkKKyAgICBdOworCisgICAgdmFyIGksIHRtcCwgcGVybXV0ZWRPcmRlciA9IGV4cGVjdGVk
T3JkZXIuc2xpY2UoKTsKKyAgICBwZXJtdXRlZE9yZGVyLnJldmVyc2UoKTsKKyAgICBmb3IgKGkg
PSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGggLSAyOyBpICs9IDIpIHsKKyAgICAgICAgdG1w
ID0gcGVybXV0ZWRPcmRlcltpXTsKKyAgICAgICAgcGVybXV0ZWRPcmRlcltpXSA9IHBlcm11dGVk
T3JkZXJbaSArIDFdOworICAgICAgICBwZXJtdXRlZE9yZGVyW2kgKyAxXSA9IHRtcDsKKyAgICB9
CisKKyAgICB2YXIgb2JqU3RvcmUsIGRiOworICAgIHZhciB0ID0gYXN5bmNfdGVzdCgpOworCisg
ICAgLy8gQ2hlY2sgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMgdGhlIGNhbm9uaWNhbCBKUyBz
b3J0IG9yZGVyLgorICAgIHZhciBzb3J0ZWRPcmRlciA9IGV4cGVjdGVkT3JkZXIuc2xpY2UoKTsK
KyAgICBzb3J0ZWRPcmRlci5zb3J0KCk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzb3J0ZWRP
cmRlciwgZXhwZWN0ZWRPcmRlcik7CisKKyAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZWRiKHQpOwor
CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIC8vIE9iamVjdCBzdG9yZXMuCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShwZXJtdXRlZE9yZGVyW2ldKTsK
KyAgICAgICAgfQorICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFt
ZXMsIGV4cGVjdGVkT3JkZXIpOworCisgICAgICAgIC8vIEluZGV4ZXMuCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgocGVybXV0ZWRPcmRlcltpXSwgImtleVBhdGgiKTsKKyAgICAg
ICAgfQorICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMsIGV4
cGVjdGVkT3JkZXIpOworICAgIH07CisKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgLy8gT2JqZWN0IHN0b3Jlcy4KKyAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhkYi5vYmplY3RTdG9yZU5hbWVzLCBleHBlY3RlZE9yZGVyKTsKKyAgICAgICAgLy8gSW5k
ZXhlcy4KKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLCBl
eHBlY3RlZE9yZGVyKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3N1cHBvcnQuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcvc3VwcG9ydC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43ZTYxMTQ3YjUxZWIxMDBjMWMxZDJjOGFmNzQxM2RhYWMwODU2NzY1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L3N1cHBvcnQuanMKQEAgLTAsMCArMSwxMzIgQEAKKy8vIFdlYktpdCBjaGFuZ2VzOiB0aGlzIGZp
bGUgaXMgdGhlIHNhbWUgYXMgIkluZGV4ZWREQi9zdXBwb3J0LmpzIiBmb3VuZCBpbiBXM0Mgd2Vi
LXBsYXRmb3JtLXRlc3RzIHJlcG8sCisvLyBleGNlcHQgZm9yIHRoZSBmb2xsb3dpbmcgbGluZXMg
dGhhdCBhY3RpdmF0ZSBwcml2YXRlIGJyb3dzaW5nCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworLy9FbmQgb2Yg
V2ViS2l0IGNoYW5nZXMKKwordmFyIGRhdGFiYXNlTmFtZSA9ICJkYXRhYmFzZSI7Cit2YXIgZGF0
YWJhc2VWZXJzaW9uID0gMTsKKworaWYgKCF3aW5kb3cuaW5kZXhlZERCKQoreworICAgIGlmICh3
aW5kb3cubXNJbmRleGVkREIpCisgICAgeworICAgICAgICB3aW5kb3cuaW5kZXhlZERCID0gd2lu
ZG93Lm1zSW5kZXhlZERCOworICAgIH0KKyAgICBlbHNlIGlmICh3aW5kb3cubW96SW5kZXhlZERC
KQorICAgIHsKKyAgICAgICAgd2luZG93LmluZGV4ZWREQiA9IHdpbmRvdy5tb3pJbmRleGVkREI7
CisgICAgfQorICAgIGVsc2UgaWYgKHdpbmRvdy53ZWJraXRJbmRleGVkREIpCisgICAgeworICAg
ICAgICB3aW5kb3cuaW5kZXhlZERCICAgICAgICA9IHdlYmtpdEluZGV4ZWREQjsKKyAgICAgICAg
SURCQ3Vyc29yICAgICAgICAgICAgICAgPSB3ZWJraXRJREJDdXJzb3I7CisgICAgICAgIElEQkRh
dGFiYXNlRXhjZXB0aW9uICAgID0gd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247CisgICAgICAg
IElEQkluZGV4ICAgICAgICAgICAgICAgID0gd2Via2l0SURCSW5kZXg7CisgICAgICAgIElEQk9i
amVjdFN0b3JlICAgICAgICAgID0gd2Via2l0SURCT2JqZWN0U3RvcmU7CisgICAgICAgIElEQlJl
cXVlc3QgICAgICAgICAgICAgID0gd2Via2l0SURCUmVxdWVzdDsKKyAgICAgICAgSURCS2V5UmFu
Z2UgICAgICAgICAgICAgPSB3ZWJraXRJREJLZXlSYW5nZTsKKyAgICAgICAgSURCVHJhbnNhY3Rp
b24gICAgICAgICAgPSB3ZWJraXRJREJUcmFuc2FjdGlvbjsKKyAgICB9Cit9CisKKy8qIERlbGV0
ZSBjcmVhdGVkIGRhdGFiYXNlcworICoKKyAqIEdvIHRocm91Z2ggZWFjaCBmaW5pc2hlZCB0ZXN0
LCBzZWUgaWYgaXQgaGFzIGFuIGFzc29jaWF0ZWQgZGF0YWJhc2UuIENsb3NlCisgKiB0aGF0IGFu
ZCBkZWxldGUgdGhlIGRhdGFiYXNlLiAqLworYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rp
b24odGVzdHMpCit7CisgICAgZm9yICh2YXIgaSBpbiB0ZXN0cykKKyAgICB7CisgICAgICAgIGlm
KHRlc3RzW2ldLmRiKQorICAgICAgICB7CisgICAgICAgICAgICB0ZXN0c1tpXS5kYi5jbG9zZSgp
OworICAgICAgICAgICAgd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0ZXN0c1tpXS5k
Yi5uYW1lKTsKKyAgICAgICAgfQorICAgIH0KK30pOworCitmdW5jdGlvbiBmYWlsKHRlc3QsIGRl
c2MpIHsKKyAgICByZXR1cm4gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICBp
ZiAoZSAmJiBlLm1lc3NhZ2UgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKGRlc2MgKyAiICgiICsgZS50YXJnZXQuZXJyb3IubmFtZSArICI6ICIgKyBlLm1l
c3NhZ2UgKyAiKSIpOworICAgICAgICBlbHNlIGlmIChlICYmIGUubWVzc2FnZSkKKyAgICAgICAg
ICAgIGFzc2VydF91bnJlYWNoZWQoZGVzYyArICIgKCIgKyBlLm1lc3NhZ2UgKyAiKSIpOworICAg
ICAgICBlbHNlIGlmIChlICYmIGUudGFyZ2V0LnJlYWR5U3RhdGUgPT09ICdkb25lJyAmJiBlLnRh
cmdldC5lcnJvcikKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoZGVzYyArICIgKCIgKyBl
LnRhcmdldC5lcnJvci5uYW1lICsgIikiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXNz
ZXJ0X3VucmVhY2hlZChkZXNjKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlZGIodGVz
dCwgZGJuYW1lLCB2ZXJzaW9uKQoreworICAgIHZhciBycV9vcGVuID0gY3JlYXRlZGJfZm9yX211
bHRpcGxlX3Rlc3RzKGRibmFtZSwgdmVyc2lvbik7CisgICAgcmV0dXJuIHJxX29wZW4uc2V0VGVz
dCh0ZXN0KTsKK30KKworZnVuY3Rpb24gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKGRibmFt
ZSwgdmVyc2lvbikgeworICAgIHZhciBycV9vcGVuLAorICAgICAgICBmYWtlX29wZW4gPSB7fSwK
KyAgICAgICAgdGVzdCA9IG51bGwsCisgICAgICAgIGRibmFtZSA9IChkYm5hbWUgPyBkYm5hbWUg
OiAidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkgKTsKKwor
ICAgIGlmICh2ZXJzaW9uKQorICAgICAgICBycV9vcGVuID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KGRibmFtZSwgdmVyc2lvbik7CisgICAgZWxzZQorICAgICAgICBycV9vcGVuID0gd2luZG93Lmlu
ZGV4ZWREQi5vcGVuKGRibmFtZSk7CisKKyAgICBmdW5jdGlvbiBhdXRvX2ZhaWwoZXZ0LCBjdXJy
ZW50X3Rlc3QpIHsKKyAgICAgICAgLyogRmFpbCBoYW5kbGVycywgaWYgd2UgaGF2ZW4ndCBzZXQg
b24vd2hhdGV2ZXIvLCBkb24ndAorICAgICAgICAgKiBleHBlY3QgdG8gZ2V0IGV2ZW50IHdoYXRl
dmVyLiAqLworICAgICAgICBycV9vcGVuLm1hbnVhbGx5X2hhbmRsZWQgPSB7fQorCisgICAgICAg
IHJxX29wZW4uYWRkRXZlbnRMaXN0ZW5lcihldnQsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGlmIChjdXJyZW50X3Rlc3QgIT09IHRlc3QpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIXJxX29wZW4ubWFudWFsbHlfaGFuZGxlZFtldnRdKSB7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoInVuZXhwZWN0ZWQgb3Blbi4iICsgZXZ0ICsg
IiBldmVudCIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChlLnRh
cmdldC5yZXN1bHQgKyAiIiA9PSAiW29iamVjdCBJREJEYXRhYmFzZV0iICYmICF0aGlzLmRiKSB7
CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5kYi5vbmVycm9yID0gZmFpbCh0ZXN0LCAidW5leHBlY3RlZCBk
Yi5lcnJvciIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRiLm9uYWJvcnQgPSBmYWlsKHRl
c3QsICJ1bmV4cGVjdGVkIGRiLmFib3J0Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZGIu
b252ZXJzaW9uY2hhbmdlID0gZmFpbCh0ZXN0LCAidW5leHBlY3RlZCBkYi52ZXJzaW9uY2hhbmdl
Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSkKKyAgICAg
ICAgcnFfb3Blbi5fX2RlZmluZVNldHRlcl9fKCJvbiIgKyBldnQsIGZ1bmN0aW9uKGgpIHsKKyAg
ICAgICAgICAgIHJxX29wZW4ubWFudWFsbHlfaGFuZGxlZFtldnRdID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmICghaCkKKyAgICAgICAgICAgICAgICBycV9vcGVuLmFkZEV2ZW50TGlzdGVuZXIoZXZ0
LCBmdW5jdGlvbigpIHt9KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBycV9v
cGVuLmFkZEV2ZW50TGlzdGVuZXIoZXZ0LCB0ZXN0LnN0ZXBfZnVuYyhoKSk7CisgICAgICAgIH0p
CisgICAgfQorCisgICAgLy8gYWRkIGEgLnNldFRlc3QgbWV0aG9kIHRvIHRoZSBEQiBvYmplY3QK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocnFfb3BlbiwgJ3NldFRlc3QnLCB7CisgICAgICAg
IGVudW1lcmFibGU6IGZhbHNlLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24odCkgeworICAgICAg
ICAgICAgdGVzdCA9IHQ7CisKKyAgICAgICAgICAgIGF1dG9fZmFpbCgidXBncmFkZW5lZWRlZCIs
IHRlc3QpOworICAgICAgICAgICAgYXV0b19mYWlsKCJzdWNjZXNzIiwgdGVzdCk7CisgICAgICAg
ICAgICBhdXRvX2ZhaWwoImJsb2NrZWQiLCB0ZXN0KTsKKyAgICAgICAgICAgIGF1dG9fZmFpbCgi
ZXJyb3IiLCB0ZXN0KTsKKworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAg
ICB9KTsKKworICAgIHJldHVybiBycV9vcGVuOworfQorCitmdW5jdGlvbiBhc3NlcnRfa2V5X2Vx
dWFscyhhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikgeworICAgIGFzc2VydF9lcXVhbHMo
aW5kZXhlZERCLmNtcChhY3R1YWwsIGV4cGVjdGVkKSwgMCwgZGVzY3JpcHRpb24pOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2Fj
dGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU3
YjlhYmExNWM1YjMxMTQ2MjQyMmM2MjQ5NDA5MjRkNjZjZjI0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFu
c2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgQXR0ZW1wdCB0byBjcmVhdGUgbmV3IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2
ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tY3JlYXRlX2lu
X3ZlcnNpb25jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAwMjc5MTZkMmU1MDU4MjY4YTAzOTNkYTk3NmE5NjFkYWU3ZTZlNDYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UuaHRtbApAQCAt
MCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0
bGU+QXR0ZW1wdCB0byBjcmVhdGUgbmV3IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2ZXJzaW9uY2hh
bmdlIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86
b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
IGV2ZW50cyA9IFtdLAorICAgICAgICBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQor
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0CisKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
IikKKyAgICAgICAgICAgIC5hZGQoInZlcnNpb25jaGFuZ2UxIiwgMSkKKyAgICAgICAgICAgIC5h
ZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJzaW9uY2hhbmdlX2FkZC5zdWNjZXNz
IikpCisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCBmdW5jdGlv
bigpIHsgZGIudHJhbnNhY3Rpb24oInN0b3JlIikgfSkKKworICAgICAgICBlLnRhcmdldC50cmFu
c2FjdGlvbgorICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAu
Y291bnQoMikKKyAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2
ZXJzaW9uY2hhbmdlX2NvdW50LnN1Y2Nlc3MiKSkKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJ
bnZhbGlkU3RhdGVFcnJvcicsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAi
cmVhZHdyaXRlIikgfSkKKworICAgICAgICBvcGVuX3JxLnRyYW5zYWN0aW9uCisgICAgICAgICAg
ICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgIC5hZGQoInZlcnNpb25jaGFuZ2Uy
IiwgMikKKyAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJz
aW9uY2hhbmdlX2FkZDIuc3VjY2VzcyIpKQorCisgICAgICAgIG9wZW5fcnEudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGxvZygidmVyc2lvbmNoYW5n
ZV90eG4uY29tcGxldGUiKShlKQorCisgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigic3RvcmUi
KQorICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAg
IC5jb3VudCgpCisgICAgICAgICAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBs
b2coImNvbXBsZXRlX2NvdW50LnN1Y2Nlc3MiKSkKKyAgICAgICAgfQorICAgIH0KKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5fcnEuc3Vj
Y2VzcyIpKGUpCisKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJy
ZWFkd3JpdGUiKQorICAgICAgICB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAg
IC5wdXQoIndvbyIsIDEpCisgICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIs
IGxvZygiY29tcGxldGUyX2dldC5zdWNjZXNzIikpCisKKyAgICAgICAgdHhuLm9uY29tcGxldGUg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGV2ZW50cywgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJz
aW9uY2hhbmdlX2FkZC5zdWNjZXNzOiAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAidmVyc2lvbmNoYW5nZV9jb3VudC5zdWNjZXNzOiAwIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidmVyc2lvbmNoYW5nZV9hZGQyLnN1Y2Nlc3M6IDIiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9uY2hhbmdlX3R4bi5jb21wbGV0ZSIs
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9ycS5zdWNjZXNzOiBb
b2JqZWN0IElEQkRhdGFiYXNlXSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY29tcGxldGVfY291bnQuc3VjY2VzczogMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImNvbXBsZXRlMl9nZXQuc3VjY2VzczogMSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiKQorICAgICAg
ICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAgfSkKKyAgICB9CisKKworICAgIGZ1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUg
JiYgZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1
c2gobXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpCisgICAgICAgICAgICBlbHNlIGlm
KGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQucmVzdWx0ICE9PSB1bmRlZmluZWQpCisgICAgICAg
ICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0LnJlc3VsdCkKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cpCisgICAgICAgIH07
CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3RyYW5zYWN0
aW9uLWxpZmV0aW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2Nr
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ZTlmNmNiMTEwYjZkODYwZWVlYTAyYmI1NjU4
MGQ3N2IwNDVmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
SW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQmxvY2tlZCBldmVudCAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbi1saWZldGltZS1i
bG9ja2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA0YjlhYjBiODc3MjZjNjkwOTVhYjgxYWNkZjg3OWQ0
MWNmZGE1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLmh0bWwK
QEAgLTAsMCArMSwxMDggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPkJsb2NrZWQgZXZlbnQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxzY3JpcHQ+CisK
KyAgICB2YXIgZGIsIGRiX2dvdF92ZXJzaW9uY2hhbmdlLCBkYjIsCisgICAgICAgIGV2ZW50cyA9
IFtdLAorICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEw
MDAwfSk7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBvcGVucnEgPSBp
bmRleGVkREIub3BlbignZGInLCAzKTsKKworICAgICAgICAvLyAxCisgICAgICAgIG9wZW5ycS5v
bnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBl
dmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsKKyAgICAgICAgICAgIGUudGFyZ2V0LnJlc3Vs
dC5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8g
MgorICAgICAgICBvcGVucnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGV2ZW50cy5w
dXNoKCJvcGVuLiIgKyBlLnR5cGUpOworCisgICAgICAgICAgICAvLyAzCisgICAgICAgICAgICBk
Yi5vbnZlcnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICAgICAgZXZlbnRzLnB1c2goImRiLiIgKyBlLnR5cGUpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDMsICJvbGQgdmVyc2lvbiIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA0LCAibmV3IHZlcnNpb24iKTsKKyAgICAg
ICAgICAgICAgICAvLyBEbyBub3QgY2xvc2UgZGIgaGVyZSAoYXMgd2Ugc2hvdWxkKQorICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIub25lcnJv
ciA9IGZhaWwodCwgImRiLmVycm9yIik7CisgICAgICAgICAgICBkYi5hYm9ydCA9IGZhaWwodCwg
ImRiLmFib3J0Iik7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1bmMoT3BlblNl
Y29uZCksIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9w
ZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJvciIpOworICAgICAgICBvcGVucnEub25i
bG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7CisKKyAgICB9KTsKKworICAgIGZ1bmN0
aW9uIE9wZW5TZWNvbmQgKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIsIHVuZGVmaW5l
ZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2Vd
Iik7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcywgWyAi
c3RvcmUiIF0pOworCisgICAgICAgIHZhciBvcGVucnEyID0gaW5kZXhlZERCLm9wZW4oJ2RiJywg
NCk7CisKKyAgICAgICAgLy8gNAorICAgICAgICBvcGVucnEyLm9uYmxvY2tlZCA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50
eXBlKTsKKyAgICAgICAgICAgIC8vIFdlJ3JlIGNsb3NpbmcgY29ubmVjdGlvbiBmcm9tIHRoZSBv
dGhlciBvcGVuKCkKKyAgICAgICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIC8vIDUKKyAgICAgICAgb3BlbnJxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAg
ICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkYjIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisKKyAgICAgICAg
ICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIyLm9udmVyc2lvbmNoYW5nZSA9IGZhaWwodCwg
ImRiMi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICBkYjIub25lcnJvciA9IGZhaWwodCwg
ImRiMi5lcnJvciIpOworICAgICAgICAgICAgZGIyLmFib3J0ID0gZmFpbCh0LCAiZGIyLmFib3J0
Iik7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIDYKKyAgICAgICAgb3BlbnJxMi5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmVudHMucHVzaCgi
b3BlbjIuIiArIGUudHlwZSk7CisKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZl
bnRzLAorICAgICAgICAgICAgICAgIFsgIm9wZW4udXBncmFkZW5lZWRlZCIsCisgICAgICAgICAg
ICAgICAgICAib3Blbi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICJkYi52ZXJzaW9uY2hh
bmdlIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi5ibG9ja2VkIiwKKyAgICAgICAgICAgICAg
ICAgICJvcGVuMi51cGdyYWRlbmVlZGVkIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi5zdWNj
ZXNzIiwKKyAgICAgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJy
b3JzCisgICAgICAgIG9wZW5ycTIub25lcnJvciA9IGZhaWwodCwgIm9wZW4yLmVycm9yIik7Cisg
ICAgfQorCisKKyAgICAvLyBDbGVhbnVwCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVu
Y3Rpb24odGVzdHMpIHsKKyAgICAgICAgaWYgKGRiMikgZGIyLmNsb3NlKCk7CisgICAgICAgIGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKKyAgICB9KQorCis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2lu
Zy90cmFuc2FjdGlvbi1saWZldGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tbGlmZXRpbWUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhYjNmZGQ0NTdmNjQ3ZDBiZjk4OGM3NzkyYjYxZTBiZGU4
NWM0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhl
ZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tbGlmZXRpbWUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3QgZXZlbnRzIG9wZW5pbmcgYSBzZWNvbmQgZGF0YWJh
c2Ugd2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVuIGFscmVhZHkgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2Fj
dGlvbi1saWZldGltZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL3RyYW5zYWN0aW9uLWxpZmV0aW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgy
YmY2ZGU5MjRiZTA0MjcwYTI1MTk5YTBjOGM3MDk4NThlZGIzNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFu
c2FjdGlvbi1saWZldGltZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4K
Kzx0aXRsZT5UZXN0IGV2ZW50cyBvcGVuaW5nIGEgc2Vjb25kIGRhdGFiYXNlIHdoZW4gb25lIGNv
bm5lY3Rpb24gaXMgb3BlbiBhbHJlYWR5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLCBkYl9nb3RfdmVyc2lvbmNoYW5n
ZSwgZGIyLAorICAgICAgICBldmVudHMgPSBbXSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pOworCisgICAgdC5zdGVwKGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgb3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7CisKKyAgICAg
ICAgLy8gMQorICAgICAgICBvcGVucnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUudHlwZSk7Cisg
ICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIC8vIDIKKyAgICAgICAgb3BlbnJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgICAgICBldmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsKKworICAgICAg
ICAgICAgLy8gMworICAgICAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJkYi4iICsgZS50eXBl
KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAzLCAib2xk
IHZlcnNpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwg
NCwgIm5ldyB2ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgICAgIGRiLm9uZXJyb3Ig
PSBmYWlsKHQsICJkYi5lcnJvciIpOworICAgICAgICAgICAgZGIuYWJvcnQgPSBmYWlsKHQsICJk
Yi5hYm9ydCIpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHQuc3RlcF9mdW5jKE9wZW5TZWNv
bmQpLCAxMCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEVycm9ycworICAgICAgICBvcGVu
cnEub25lcnJvciA9IGZhaWwodCwgIm9wZW4uZXJyb3IiKTsKKyAgICAgICAgb3BlbnJxLm9uYmxv
Y2tlZCA9IGZhaWwodCwgIm9wZW4uYmxvY2tlZCIpOworCisgICAgfSk7CisKKyAgICBmdW5jdGlv
biBPcGVuU2Vjb25kIChlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIyLCB1bmRlZmluZWQp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiICsgIiIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMsIFsgInN0
b3JlIiBdKTsKKworICAgICAgICB2YXIgb3BlbnJxMiA9IGluZGV4ZWREQi5vcGVuKCdkYicsIDQp
OworCisgICAgICAgIC8vIDQKKyAgICAgICAgb3BlbnJxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkYjIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisK
KyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIyLm9udmVyc2lvbmNoYW5nZSA9
IGZhaWwodCwgImRiMi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICBkYjIub25lcnJvciA9
IGZhaWwodCwgImRiMi5lcnJvciIpOworICAgICAgICAgICAgZGIyLmFib3J0ID0gZmFpbCh0LCAi
ZGIyLmFib3J0Iik7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIDUKKyAgICAgICAgb3BlbnJx
Mi5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmVu
dHMucHVzaCgib3BlbjIuIiArIGUudHlwZSk7CisKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZXZlbnRzLAorICAgICAgICAgICAgICAgIFsgIm9wZW4udXBncmFkZW5lZWRlZCIsCisg
ICAgICAgICAgICAgICAgICAib3Blbi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICJkYi52
ZXJzaW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi51cGdyYWRlbmVlZGVkIiwK
KyAgICAgICAgICAgICAgICAgICJvcGVuMi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICBdKTsK
KworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9wZW5ycTIub25lcnJv
ciA9IGZhaWwodCwgIm9wZW4yLmVycm9yIik7CisgICAgICAgIG9wZW5ycTIub25ibG9ja2VkID0g
ZmFpbCh0LCAib3BlbjIuYmxvY2tlZCIpOworICAgIH0KKworCisgICAgLy8gQ2xlYW51cAorICAg
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzKSB7CisgICAgICAgIGlmIChk
YjIpIGRiMi5jbG9zZSgpOworICAgICAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RiJyk7
CisgICAgfSkKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1i
cm93c2luZy90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZmZjQ2ZWJmOGQwMmZhY2UwMjhjN2EzMmVkYTc3OGU2MTk5MGUwMjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
dHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBUcmFuc2FjdGlvbnMgaGF2ZSBhIHJlcXVlc3QgcXVldWUgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2Fj
dGlvbi1yZXF1ZXN0cXVldWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNmExY2ZjMDczZDNhMTNlMmI5Yzk0YmVhNDE5NTIxNDBlNzAxMWYwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dz
aW5nL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5UcmFuc2FjdGlvbnMgaGF2
ZSBhIHJlcXVlc3QgcXVldWU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgZGIs
IHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICBr
ZXlzID0geyB0eG46IFtdLCB0eG4yOiBbXSB9LAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQor
CitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgaSwgb3M7
CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICBmb3IgKGkgPSAxOyBpIDwgNjsgaSsr
KQorICAgIHsKKyAgICAgICAgb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgib3MiICsgaSwgeyBh
dXRvSW5jcmVtZW50OiB0cnVlLCBrZXlQYXRoOiAiayIgfSk7CisgICAgICAgIG9zLmFkZCh7IG9z
OiAib3MiICsgaSB9KTsKKyAgICAgICAgb3MucHV0KHsgb3M6ICJvcyIgKyBpLCBrOiBpfSk7Cisg
ICAgICAgIG9zLmFkZCh7IG9zOiAib3MiICsgaSB9KTsKKyAgICB9Cit9CisKK29wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbihbIm9z
MiIsICJvczEiLCAib3MzIiwgIm9zNSJdKQorICAgIHR4bi5vYmplY3RTdG9yZSgib3MxIikub3Bl
bkN1cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAgICB0eG4ub2JqZWN0U3RvcmUoIm9z
MyIpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCisgICAgdHhuLm9iamVjdFN0
b3JlKCJvczEiKS5nZXQoMikub25zdWNjZXNzID0gcmVnKCJ0eG4iKQorICAgIHR4bi5vYmplY3RT
dG9yZSgib3MyIikuZ2V0KDMpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKworICAgIHZhciB0eG4y
ID0gZGIudHJhbnNhY3Rpb24oWyJvczQiLCAib3MzIiwgIm9zMSIsICJvczUiXSkKKyAgICB2YXIg
b3M0ID0gdHhuMi5vYmplY3RTdG9yZSgib3M0IikKKworICAgIGZvciAodmFyIGk9MDsgaSA8IDM7
IGkrKykgeworICAgICAgICBvczQub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIp
CisgICAgICAgIG9zNC5nZXQoNSkub25zdWNjZXNzID0gcmVnKCJ0eG4yIikKKyAgICAgICAgb3M0
LmdldCg0KS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQorICAgICAgICB0eG4ub2JqZWN0U3RvcmUo
Im9zMiIpLmdldCgxKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCisgICAgICAgIHR4bjIub2JqZWN0
U3RvcmUoIm9zMyIpLmdldCgxKS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQorICAgIH0KKworICAg
IHR4bjIub2JqZWN0U3RvcmUoIm9zMSIpLmdldCgyKS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQor
ICAgIHR4bi5vYmplY3RTdG9yZSgib3MxIikub3BlbkN1cnNvcihudWxsLCAicHJldiIpLm9uc3Vj
Y2VzcyA9IHJlZygidHhuIikKKyAgICBvczQub3BlbkN1cnNvcihudWxsLCAicHJldiIpLm9uc3Vj
Y2VzcyA9IHJlZygidHhuMiIpCisKKyAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZp
bmlzaCk7CisgICAgdHhuMi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoZmluaXNoKTsKK30KKwor
CitmdW5jdGlvbiByZWcobikgeworICAgIHJldHVybiB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkg
eworICAgICAgICB2YXIgdiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgaWYgKHYudmFsdWUp
IHYgPSB2LnZhbHVlOworICAgICAgICBrZXlzW25dLnB1c2godi5vcyArICI6ICIgKyB2LmspOwor
ICAgIH0pOworfQorCit2YXIgZmluaXNoX3RvX2dvID0gMjsKK2Z1bmN0aW9uIGZpbmlzaCgpIHsK
KyAgICBpZiAoLS1maW5pc2hfdG9fZ28pCisgICAgICAgIHJldHVybjsKKworICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoa2V5c1sndHhuJ10sIFsKKyAgICAgICAgIm9zMTogMSIsCisgICAgICAgICJv
czM6IDEiLAorICAgICAgICAib3MxOiAyIiwKKyAgICAgICAgIm9zMjogMyIsCisgICAgICAgICJv
czI6IDEiLCAib3MyOiAxIiwgIm9zMjogMSIsCisgICAgICAgICJvczE6IDIiLAorICAgIF0sICd0
cmFuc2FjdGlvbiBrZXlzJyk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGtleXNbJ3R4bjIn
XSwgWworICAgICAgICAib3M0OiAxIiwgIm9zNDogNSIsICJvczQ6IDQiLCAib3MzOiAxIiwKKyAg
ICAgICAgIm9zNDogMSIsICJvczQ6IDUiLCAib3M0OiA0IiwgIm9zMzogMSIsCisgICAgICAgICJv
czQ6IDEiLCAib3M0OiA1IiwgIm9zNDogNCIsICJvczM6IDEiLAorICAgICAgICAib3MxOiAyIiwK
KyAgICAgICAgIm9zNDogNSIsCisgICAgXSwgJ3RyYW5zYWN0aW9uIDIga2V5cycpOworCisgICAg
dC5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90
cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3RyYW5zYWN0aW9uX2J1YmJs
ZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2VlZDM3NDEwMmMxZTcxNzVh
NjRlYjc2ZWMwYmE2ZmMyNTFlMmRiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy90cmFuc2FjdGlvbl9idWJibGUt
YW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENhcHR1cmUg
YW5kIGJ1YmJsZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4
ZWREQi1wcml2YXRlLWJyb3dzaW5nL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3Ry
YW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkZDk4NTlmNTZk
NTJjNWMzZDlkY2IwZDcxMjJlMmM1YTM4OThlMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvdHJhbnNhY3Rpb25f
YnViYmxlLWFuZC1jYXB0dXJlLmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkNhcHR1cmUgYW5kIGJ1YmJsZTwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGV2ZW50cyA9IFtdOworCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAw
MDB9KSk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0
LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiKTsKKyAgICAgICAgdmFyIHJxMSA9IHN0b3JlLmFkZCgiIiwgMSk7CisgICAgICAgIHZh
ciBycTIgPSBzdG9yZS5hZGQoIiIsIDEpOworCisgICAgICAgIGRiLm9uZXJyb3IgPSB1bmRlZmlu
ZWQ7IC8vIFdlIHdpbGwgcnVuIGRiLmVycm9yLCBidXQgZG9uJ3QgbGV0IHRoYXQgZmFpbCB0aGUg
dGVzdAorCisgICAgICAgIGxvZ19ldmVudHMoJ2RiJywgZGIsICdzdWNjZXNzJyk7CisgICAgICAg
IGxvZ19ldmVudHMoJ2RiJywgZGIsICdlcnJvcicpOworCisgICAgICAgIGxvZ19ldmVudHMoJ3R4
bicsIHR4biwgJ3N1Y2Nlc3MnKTsKKyAgICAgICAgbG9nX2V2ZW50cygndHhuJywgdHhuLCAnZXJy
b3InKTsKKworICAgICAgICBsb2dfZXZlbnRzKCdycTEnLCBycTEsICdzdWNjZXNzJyk7CisgICAg
ICAgIGxvZ19ldmVudHMoJ3JxMScsIHJxMSwgJ2Vycm9yJyk7CisKKyAgICAgICAgbG9nX2V2ZW50
cygncnEyJywgcnEyLCAnc3VjY2VzcycpOworICAgICAgICBsb2dfZXZlbnRzKCdycTInLCBycTIs
ICdlcnJvcicpOworCisgICAgICAgIC8vIERvbid0IGxldCBpdCBnZXQgdG8gYWJvcnQKKyAgICAg
ICAgZGIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihlKSB7IGUucHJldmVudERl
ZmF1bHQoKTsgfSwgZmFsc2UpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUpOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY2FwdHVyZSBkYi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNhcHR1cmUgdHhuLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBycTEuc3VjY2VzcyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHJxMS5zdWNjZXNzIiwKKworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBkYi5lcnJvcjogQ29uc3Ry
YWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1
cmUgdHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY2FwdHVyZSBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHJxMi5lcnJvcjogQ29u
c3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1
YmJsZSAgdHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYnViYmxlICBkYi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9ycS5zdWNjZXNzIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJldmVudHMiKTsKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAgfQorCisK
KyAgICBmdW5jdGlvbiBsb2dfZXZlbnRzKHR5cGUsIG9iaiwgZXZ0KSB7CisgICAgICAgIG9iai5h
ZGRFdmVudExpc3RlbmVyKGV2dCwgbG9nKCdjYXB0dXJlICcgKyB0eXBlICsgJy4nICsgZXZ0KSwg
dHJ1ZSk7CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2dCwgbG9nKCdidWJibGUgICcg
KyB0eXBlICsgJy4nICsgZXZ0KSwgZmFsc2UpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYg
ZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2go
bXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7CisgICAgICAgIH07CisgICAgfQorPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3ZhbHVlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy92YWx1ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMxNTUyY2IyZmQwOWEzMWEyOTRmZTViN2Y0ZDdhMjVm
MmM2Y2VhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy92YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CisKK1BBU1MgVmFsdWVzIC0gRGF0ZSAKK1BBU1MgVmFsdWVzIC0gQXJyYXkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy92
YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJy
b3dzaW5nL3ZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBlODNiNjgwYzYwMWM0N2JmNjFiNTQ2Y2E3
YmY4NTlmZThiNmQzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy92YWx1ZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlZhbHVlczwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20i
IHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHZhbHVlKHZhbHVlLCBfaW5z
dGFuY2VvZikgeworICAgIHZhciB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAi
ICsgX2luc3RhbmNlb2YubmFtZSk7CisgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICBh
c3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIF9pbnN0YW5jZW9mLCAiVEVTVCBFUlJPUiwgaW5z
dGFuY2VvZiIpOworICAgIH0pOworCisgICAgY3JlYXRlZGIodCkub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgICAgICAgICAu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAuYWRkKHZhbHVlLCAx
KTsKKworICAgICAgICBlLnRhcmdldC5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgLnRy
YW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3Rv
cmUiKQorICAgICAgICAgICAgICAgICAgICAuZ2V0KDEpCisgICAgICAgICAgICAgICAgICAgIC5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKGUudGFyZ2V0LnJlc3VsdCBpbnN0YW5jZW9mIF9pbnN0YW5j
ZW9mLCAiaW5zdGFuY2VvZiIpCisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfTsKK30KKwordmFsdWUobmV3IERhdGUoKSwgRGF0ZSk7
Cit2YWx1ZShuZXcgQXJyYXkoKSwgQXJyYXkpOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy92YWx1ZV9yZWN1cnNpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3ZhbHVlX3JlY3Vyc2l2
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk1N2U3ZWY5N2NhYzcwZjYwNDkyNmUxNjgyOGI3
ZmYyMjFjMWY3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9J
bmRleGVkREItcHJpdmF0ZS1icm93c2luZy92YWx1ZV9yZWN1cnNpdmUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitQQVNTIFJlY3Vyc2l2ZSB2YWx1ZSAtIGFycmF5IGRpcmVjdGx5IGNv
bnRhaW5zIHNlbGYgCitQQVNTIFJlY3Vyc2l2ZSB2YWx1ZSAtIGFycmF5IGluZGlyZWN0bHkgY29u
dGFpbnMgc2VsZiAKK1BBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkgbWVtYmVyIGNvbnRhaW5z
IHNlbGYgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZy92YWx1ZV9yZWN1cnNpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy92YWx1ZV9yZWN1cnNpdmUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NDQ2YWVhMmI0Y2I5MDdmOWM1NTBmODMyNjY0OTk4NTgwYmNhMjNiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRl
LWJyb3dzaW5nL3ZhbHVlX3JlY3Vyc2l2ZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlJlY3Vyc2l2ZSB2YWx1ZTwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20i
IHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHJlY3Vyc2l2ZV92YWx1ZShk
ZXNjLCB2YWx1ZSkgeworICAgIHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gIiArIGRlc2MpOworCisgICAgY3JlYXRlZGIodCkub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgIC5hZGQodmFsdWUsIDEpOworCisgICAg
ICAgIGUudGFyZ2V0Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpCisgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgnc3RvcmUnKQorICAgICAgICAgICAgICAuZ2V0KDEpCisgICAgICAgICAgICAgIC5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAgeworCisgICAgICAgICAg
ICAgICAgdHJ5CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB2YXIgZnJl
c2hfdmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIlRlc3RjYXNlIGlzIHdyaXR0ZW4gd3JvbmdseSwgbXVzdCBzdXBwbHkg
c29tZXRoaW5nIHJlY3Vyc2l2ZSAodGhhdCBKU09OIHdvbid0IHN0cmluZ2lmeSkuIik7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChlKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUubmFtZSA9PSAnVHlwZUVycm9yJykKKyAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdp
ZnkoZS50YXJnZXQucmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCJFeHBlY3RlZCBhIG5vbi1KU09OLXNlcmlhbGl6YWJsZSB2YWx1ZSBiYWNrLCBk
aWRuJ3QgZ2V0IHRoYXQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICBjYXRjaCAoZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfTsKK30KKwordmFyIHJlY3Vyc2l2ZSA9IFtdOworcmVjdXJzaXZlLnB1c2gocmVjdXJz
aXZlKTsKK3JlY3Vyc2l2ZV92YWx1ZSgnYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJl
Y3Vyc2l2ZSk7CisKK3ZhciByZWN1cnNpdmUyID0gW107CityZWN1cnNpdmUyLnB1c2goW3JlY3Vy
c2l2ZTJdKTsKK3JlY3Vyc2l2ZV92YWx1ZSgnYXJyYXkgaW5kaXJlY3RseSBjb250YWlucyBzZWxm
JywgcmVjdXJzaXZlMik7CisKK3ZhciByZWN1cnNpdmUzID0gW3JlY3Vyc2l2ZV07CityZWN1cnNp
dmVfdmFsdWUoJ2FycmF5IG1lbWJlciBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlMyk7CisKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3dyaXRlci1zdGFydmF0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0
ZS1icm93c2luZy93cml0ZXItc3RhcnZhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ2
MTAxMTgzMDBjY2Y0ZmUyNTY1ODAxYTM0MGQ5ZGU2MGNjM2E1YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy93cml0
ZXItc3RhcnZhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgV3JpdGVy
IHN0YXJ2YXRpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRl
eGVkREItcHJpdmF0ZS1icm93c2luZy93cml0ZXItc3RhcnZhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL3dyaXRlci1zdGFydmF0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRhNmRjYjcwZDRmOTQ4YWM2NTAyNGY1Nzg2MGU2Njc4ZDgx
Mzg5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy93cml0ZXItc3RhcnZhdGlvbi5odG1sCkBAIC0wLDAgKzEsMTA1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+V3JpdGVy
IHN0YXJ2YXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGlu
aG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIG5hbWU9dGlt
ZW91dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHJlYWRfcmVxdWVzdF9jb3VudCA9IDAsIHJl
YWRfc3VjY2Vzc19jb3VudCA9IDA7CisgICAgdmFyIHdyaXRlX3JlcXVlc3RfY291bnQgPSAwLCB3
cml0ZV9zdWNjZXNzX2NvdW50ID0gMDsKKyAgICB2YXIgUlFfQ09VTlQgPSAyNTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCh1bmRlZmluZWQsIHt0aW1lb3V0OiAyMDAw
MH0pKTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
IikKKyAgICAgICAgICAuYWRkKCIxIiwgMSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBpID0gMCwgY29udGludWVfcmVhZGluZyA9
IHRydWU7CisKKyAgICAgICAgLyogUHJlLWZpbGwgc29tZSByZWFkIHJlcXVlc3RzICovCisgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBSUV9DT1VOVDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAg
ICByZWFkX3JlcXVlc3RfY291bnQrKzsKKworICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMi
KQorICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInMiKQorICAgICAgICAgICAgICAuZ2V0KDEp
CisgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICAgICAgICAgIHJlYWRfc3VjY2Vzc19jb3VudCsrOworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUsICJyZWFkb25s
eSIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5zdGVw
KGxvb3ApOworCisgICAgICAgIGZ1bmN0aW9uIGxvb3AoKSB7CisgICAgICAgICAgICByZWFkX3Jl
cXVlc3RfY291bnQrKzsKKworICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiKQorICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInMiKQorICAgICAgICAgICAgICAuZ2V0KDEpCisgICAgICAg
ICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHJlYWRfc3VjY2Vzc19jb3VudCsrOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSwgInJlYWRvbmx5Iik7
CisKKyAgICAgICAgICAgICAgICBpZiAocmVhZF9zdWNjZXNzX2NvdW50ID49IFJRX0NPVU5UICYm
IHdyaXRlX3JlcXVlc3RfY291bnQgPT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgIHdyaXRlX3JlcXVlc3RfY291bnQrKzsKKworICAgICAgICAgICAgICAgICAgICBk
Yi50cmFuc2FjdGlvbigicyIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgicyIpCisgICAgICAgICAgICAgICAgICAgICAgLmFkZCgid3JpdHRlbiIsIHJl
YWRfcmVxdWVzdF9jb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgd3JpdGVfc3VjY2Vzc19jb3VudCsrOworICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC50cmFuc2FjdGlvbi5tb2RlLCAicmVhZHdyaXRl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgcmVhZF9zdWNjZXNzX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndyaXRlIGNiIGNhbWUgYmVmb3JlIGxhdGVyIHJlYWQgY2IncyIpCisgICAgICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgICAgIC8qIFJlYWRzIGRvbmUgYWZ0ZXIg
dGhlIHdyaXRlICovCisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA1OyBpKysp
CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfcmVx
dWVzdF9jb3VudCsrOworCisgICAgICAgICAgICAgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigi
cyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgicyIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9u
c3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zdWNjZXNzX2NvdW50Kys7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAocmVhZF9z
dWNjZXNzX2NvdW50IDwgUlFfQ09VTlQgKyA1KQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
dGhpcy5zdGVwX2Z1bmMobG9vcCksIHdyaXRlX3JlcXVlc3RfY291bnQgPyAxMDAwIDogMTAwKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIG1lcmVseSBhICJu
aWNlIiBoYWNrIHRvIHJ1biBmaW5pc2ggYWZ0ZXIgdGhlIGxhc3QgcmVxdWVzdCBpcyBkb25lCisg
ICAgICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiKQorICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzIikKKyAgICAgICAgICAgICAgICAgIC5jb3VudCgpCisgICAgICAgICAgICAg
ICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oKQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnN0ZXBfZnVuYyhmaW5p
c2gpLCAxMDApOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisKK2Z1
bmN0aW9uIGZpbmlzaCgpIHsKKyAgICBhc3NlcnRfZXF1YWxzKHJlYWRfcmVxdWVzdF9jb3VudCwg
cmVhZF9zdWNjZXNzX2NvdW50LCAicmVhZCBjb3VudHMiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHdy
aXRlX3JlcXVlc3RfY291bnQsIHdyaXRlX3N1Y2Nlc3NfY291bnQsICJ3cml0ZSBjb3VudHMiKTsK
KyAgICB0aGlzLmRvbmUoKTsKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5p
dGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFmNGZkYjU0NzAzMjgzOWRjNmU3NjE1ZWQx
NWE2MzFkZTA3NzFjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2Fib3J0LWluLWluaXRpYWwt
dXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBUZXN0IHRoYXQgYW4gYWJvcnQgaW4gdGhlIGluaXRpYWwgdXBncmFkZW5lZWRlZCBz
ZXRzIHZlcnNpb24gYmFjayB0byAwIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4t
aW5pdGlhbC11cGdyYWRlbmVlZGVkLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkYWY0ZmRiNTQ3MDMyODM5ZGM2ZTc2MTVlZDE1YTYzMWRlMDc3MWM0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgVGVzdCB0aGF0IGFuIGFib3J0IGluIHRoZSBpbml0aWFsIHVwZ3JhZGVuZWVkZWQgc2V0cyB2
ZXJzaW9uIGJhY2sgdG8gMCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3Jh
ZGVuZWVkZWQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjZi
NjE5Y2E2NGIzYWNmZDRkMDc1NzNhYzI3ZGExNDU5OGZlNmJkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLXByaXZhdGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPCEtLSBTdWJtaXR0ZWQg
ZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgotPHRpdGxlPlRlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUg
aW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDA8L3RpdGxlPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZh
ciBkYiwgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCAyKTsKLQot
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAyKTsKLSAgICB0cmFuc2Fj
dGlvbiA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOwotICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIHRyYW5zYWN0aW9uLmNvbXBsZXRlIik7Ci0gICAgdHJh
bnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5kYi52ZXJzaW9uLCAwKTsKLSAgICB9Ci0gICAgZGIub25hYm9ydCA9IGZ1bmN0aW9u
KCkge30KLQotICAgIHRyYW5zYWN0aW9uLmFib3J0KCk7Ci19Ci0KLW9wZW5fcnEub25lcnJvciA9
IGZ1bmN0aW9uKGUpIHsKLSAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEsIGUudGFyZ2V0KTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKLSAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJBYm9ydEVycm9yIik7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhkYi52ZXJzaW9uLCAwKTsKLSAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEudHJhbnNhY3Rp
b24sIG51bGwpOwotICAgIHRoaXMuZG9uZSgpOwotfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NmI2MTljYTY0YjNhY2ZkNGQwNzU3M2FjMjdkYTE0
NTk4ZmU2YmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3Jh
ZGVuZWVkZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgotPHRpdGxlPlRlc3Qg
dGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBi
YWNrIHRvIDA8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciBkYiwgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3Qo
KSwgdW5kZWZpbmVkLCAyKTsKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJz
aW9uLCAyKTsKLSAgICB0cmFuc2FjdGlvbiA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOwotICAgIHRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIHRyYW5zYWN0aW9u
LmNvbXBsZXRlIik7Ci0gICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5kYi52ZXJzaW9uLCAwKTsKLSAgICB9Ci0gICAg
ZGIub25hYm9ydCA9IGZ1bmN0aW9uKCkge30KLQotICAgIHRyYW5zYWN0aW9uLmFib3J0KCk7Ci19
Ci0KLW9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICBhc3NlcnRfZXF1YWxzKG9w
ZW5fcnEsIGUudGFyZ2V0KTsKLSAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5k
ZWZpbmVkKTsKLSAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJBYm9ydEVy
cm9yIik7Ci0gICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAwKTsKLSAgICBhc3NlcnRfZXF1
YWxzKG9wZW5fcnEudHJhbnNhY3Rpb24sIG51bGwpOwotICAgIHRoaXMuZG9uZSgpOwotfQotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRl
ZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZTcyYmQ1OGJi
ODhlMGIzZWVhZDM4N2M5Nzc4ZTdjYmQ1NmUxZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9j
bG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIFdoZW4gZGIuY2xvc2UgaXMgY2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQs
IHRoZSBkYiBpcyBjbGVhbmVkIHVwIG9uIHJlZnJlc2ggCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY2xvc2Ut
aW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzBlNzJiZDU4YmI4OGUwYjNlZWFkMzg3Yzk3NzhlN2NiZDU2ZTFlMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBXaGVuIGRiLmNs
b3NlIGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBvbiBy
ZWZyZXNoIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLXByaXZhdGUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmUwMGI0ZTg1NmZjMzQ2NTgwNTlhZmNmZWIzODE1
MzFiMjhiZDE3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVk
ZWQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFkb2N0eXBl
IGh0bWw+Ci08IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Ci08dGl0bGU+V2hl
biBkYi5jbG9zZSBpcyBjYWxsZWQgaW4gdXBncmFkZW5lZWRlZCwgdGhlIGRiIGlzIGNsZWFuZWQg
dXAgb24gcmVmcmVzaDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0
KCkpCi12YXIgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlCi0KLW9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgIGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAg
YXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAxKQotCi0gICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J29zJykKLSAgICBkYi5jbG9zZSgpCi0KLSAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBs
ZXRlID0gZnVuY3Rpb24oKSB7IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIH0KLX0KLQot
b3Blbl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgIGFzc2VydF90cnVlKHNhd1RyYW5z
YWN0aW9uQ29tcGxldGUsICJzYXcgdHJhbnNhY3Rpb24uY29tcGxldGUiKQotCi0gICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAnQWJvcnRFcnJvcicpCi0gICAgYXNzZXJ0X2Vx
dWFscyhlLnJlc3VsdCwgdW5kZWZpbmVkKQotCi0gICAgYXNzZXJ0X3RydWUoISFkYikKLSAgICBh
c3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDEpCi0gICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RT
dG9yZU5hbWVzLmxlbmd0aCwgMSkKLSAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJv
ciIsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbignb3MnKSB9KQotCi0gICAgdGhpcy5kb25l
KCkKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVu
ZWVkZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmUwMGI0ZTg1NmZjMzQ2
NTgwNTlhZmNmZWIzODE1MzFiMjhiZDE3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2Nsb3Nl
LWluLXVwZ3JhZGVuZWVkZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwh
ZG9jdHlwZSBodG1sPgotPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgotPHRp
dGxlPldoZW4gZGIuY2xvc2UgaXMgY2FsbGVkIGluIHVwZ3JhZGVuZWVkZWQsIHRoZSBkYiBpcyBj
bGVhbmVkIHVwIG9uIHJlZnJlc2g8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBv
cnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5
bmNfdGVzdCgpKQotdmFyIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSBmYWxzZQotCi1vcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dAotICAgIGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgMSkKLQotICAgIGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdvcycpCi0gICAgZGIuY2xvc2UoKQotCi0gICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgeyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZSB9
Ci19Ci0KLW9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICBhc3NlcnRfdHJ1ZShz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlLCAic2F3IHRyYW5zYWN0aW9uLmNvbXBsZXRlIikKLQotICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgJ0Fib3J0RXJyb3InKQotICAgIGFz
c2VydF9lcXVhbHMoZS5yZXN1bHQsIHVuZGVmaW5lZCkKLQotICAgIGFzc2VydF90cnVlKCEhZGIp
Ci0gICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAxKQotICAgIGFzc2VydF9lcXVhbHMoZGIu
b2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIDEpCi0gICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0
YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rpb24oJ29zJykgfSkKLQotICAgIHRo
aXMuZG9uZSgpCi19Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1v
dmVybG9hZHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzg5
OTlhMGJjZGU3MWVkMDc0MTIyZjgyZTA3MDAzZDZjOGFiOGExLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBWYWxpZGF0ZSB0aGUgb3ZlcmxvYWRzIG9mIElEQk9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNvcigpIGFuZCBJREJJbmRleC5vcGVuS2V5
Q3Vyc29yKCkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvY3Vyc29yLW92ZXJsb2Fkcy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1wcml2YXRlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM4OTk5YTBiY2RlNzFlZDA3NDEyMmY4
MmUwNzAwM2Q2YzhhYjhhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9h
ZHMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBWYWxpZGF0ZSB0aGUgb3ZlcmxvYWRzIG9mIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3Io
KSwgSURCSW5kZXgub3BlbkN1cnNvcigpIGFuZCBJREJJbmRleC5vcGVuS2V5Q3Vyc29yKCkgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY3Vyc29yLW92
ZXJsb2Fkcy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2N1cnNvci1vdmVybG9hZHMtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4NmIxNjliMDIwOGQxN2JjNGJkZDFhOWI1MjZmNjRjOTI3MzY4NGIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw4OCArMCwwIEBACi08IS0tCi1UZXN0IGNvbnZlcnRlZCBmcm9tIFdlYktpdDoKLWh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLmh0bWwKLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTwh
LS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+
Ci08dGl0bGU+VmFsaWRhdGUgdGhlIG92ZXJsb2FkcyBvZiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vy
c29yKCksIElEQkluZGV4Lm9wZW5DdXJzb3IoKSBhbmQgSURCSW5kZXgub3BlbktleUN1cnNvcigp
PC90aXRsZT4KLTxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOnJvbWFpbi5odWV0QGdtYWls
LmNvbSIgdGl0bGU9IlJvbWFpbiBIdWV0Ij4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBv
cnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsIHRyYW5zLCBzdG9yZSwg
aW5kZXg7Ci0gICAgdmFyIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgcmVxdWVzdCA9IGNy
ZWF0ZWRiKHQpOwotICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICBkYiA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpOwotICAgICAgICBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdp
bmRleCcsICd2YWx1ZScpOwotICAgICAgICBzdG9yZS5wdXQoe3ZhbHVlOiAwfSwgMCk7Ci0gICAg
ICAgIHRyYW5zID0gcmVxdWVzdC50cmFuc2FjdGlvbjsKLSAgICAgICAgdHJhbnMub25jb21wbGV0
ZSA9IHZlcmlmeU92ZXJsb2FkczsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gdmVyaWZ5T3Zlcmxv
YWRzKCkgewotICAgICAgICB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpOwotICAgICAg
ICBzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpOwotICAgICAgICBpbmRleCA9IHN0
b3JlLmluZGV4KCdpbmRleCcpOwotCi0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9y
ZS5vcGVuQ3Vyc29yKCkiLCAibmV4dCIpOwotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigi
c3RvcmUub3BlbkN1cnNvcigwKSIsICJuZXh0Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0
aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAibmV4dCIpOwotICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwLCAnbmV4dHVuaXF1ZScpIiwgIm5l
eHR1bmlxdWUiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJz
b3IoMCwgJ3ByZXYnKSIsICJwcmV2Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJz
dG9yZS5vcGVuQ3Vyc29yKDAsICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOwotCi0gICAg
ICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9u
bHkoMCkpIiwgIm5leHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9w
ZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJuZXh0Iik7Ci0gICAgICAg
IGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHko
MCksICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOwotICAgICAgICBjaGVja0N1cnNvckRp
cmVjdGlvbigic3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldicpIiwg
InByZXYiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3Io
SURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7Ci0KLSAg
ICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoKSIsICJuZXh0Iik7
Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKDApIiwgIm5l
eHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCwg
J25leHQnKSIsICJuZXh0Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5v
cGVuQ3Vyc29yKDAsICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOwotICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcigwLCAncHJldicpIiwgInByZXYiKTsK
LSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCwgJ3ByZXZ1
bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7Ci0KLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24o
ImluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAibmV4dCIpOwotICAgICAg
ICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5
KDApLCAnbmV4dCcpIiwgIm5leHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImlu
ZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHR1bmlxdWUnKSIsICJuZXh0
dW5pcXVlIik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29y
KElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2JykiLCAicHJldiIpOwotICAgICAgICBjaGVja0N1
cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJl
dnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsKLQotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlv
bigiaW5kZXgub3BlbktleUN1cnNvcigpIiwgIm5leHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JE
aXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoMCkiLCAibmV4dCIpOwotICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigwLCAnbmV4dCcpIiwgIm5leHQi
KTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoMCwg
J25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0
aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKDAsICdwcmV2JykiLCAicHJldiIpOwotICAgICAgICBj
aGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigwLCAncHJldnVuaXF1ZScp
IiwgInByZXZ1bmlxdWUiKTsKLQotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgu
b3BlbktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApKSIsICJuZXh0Iik7Ci0gICAgICAgIGNo
ZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHko
MCksICduZXh0JykiLCAibmV4dCIpOwotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5k
ZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dHVuaXF1ZScpIiwgIm5l
eHR1bmlxdWUiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlD
dXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXYnKSIsICJwcmV2Iik7Ci0gICAgICAgIGNo
ZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHko
MCksICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOwotCi0gICAgICAgIHQuZG9uZSgpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKHN0YXRlbWVudCwgZGly
ZWN0aW9uKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsKHN0YXRlbWVudCk7Ci0gICAgICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKGV2ZW50LnRhcmdldC5yZXN1bHQsIG51bGwsICJDaGVjayB0aGUgcmVzdWx0IGlz
IG5vdCBudWxsIikKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LnJlc3Vs
dC5kaXJlY3Rpb24sIGRpcmVjdGlvbiwgIkNoZWNrIHRoZSByZXN1bHQgZGlyZWN0aW9uIik7Ci0g
ICAgICAgIH07Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9h
ZHMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jdXJzb3Itb3Zlcmxv
YWRzLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZiMTY5YjAyMDhkMTdiYzRi
ZGQxYTliNTI2ZjY0YzkyNzM2ODRiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1v
dmVybG9hZHMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotPCEtLQotVGVzdCBj
b252ZXJ0ZWQgZnJvbSBXZWJLaXQ6Ci1odHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1
bmsvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sCi0t
LT4KLQotPCFET0NUWVBFIGh0bWw+Ci08IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMg
LS0+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPlZhbGlkYXRlIHRoZSBvdmVybG9hZHMg
b2YgSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLCBJREJJbmRleC5vcGVuQ3Vyc29yKCkgYW5k
IElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKTwvdGl0bGU+Ci08bGluayByZWw9YXV0aG9yIGhyZWY9
Im1haWx0bzpyb21haW4uaHVldEBnbWFpbC5jb20iIHRpdGxlPSJSb21haW4gSHVldCI+Ci0KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0g
ICAgdmFyIGRiLCB0cmFucywgc3RvcmUsIGluZGV4OwotICAgIHZhciB0ID0gYXN5bmNfdGVzdCgp
OwotCi0gICAgdmFyIHJlcXVlc3QgPSBjcmVhdGVkYih0KTsKLSAgICByZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSByZXF1ZXN0LnJlc3VsdDsKLSAg
ICAgICAgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKLSAgICAgICAgaW5k
ZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKTsKLSAgICAgICAgc3RvcmUu
cHV0KHt2YWx1ZTogMH0sIDApOwotICAgICAgICB0cmFucyA9IHJlcXVlc3QudHJhbnNhY3Rpb247
Ci0gICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB2ZXJpZnlPdmVybG9hZHM7Ci0gICAgfTsKLQot
ICAgIGZ1bmN0aW9uIHZlcmlmeU92ZXJsb2FkcygpIHsKLSAgICAgICAgdHJhbnMgPSBkYi50cmFu
c2FjdGlvbignc3RvcmUnKTsKLSAgICAgICAgc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3Rv
cmUnKTsKLSAgICAgICAgaW5kZXggPSBzdG9yZS5pbmRleCgnaW5kZXgnKTsKLQotICAgICAgICBj
aGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigpIiwgIm5leHQiKTsKLSAgICAg
ICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoMCkiLCAibmV4dCIpOwot
ICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwLCAnbmV4dCcp
IiwgIm5leHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJz
b3IoMCwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7Ci0gICAgICAgIGNoZWNrQ3Vyc29y
RGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAsICdwcmV2JykiLCAicHJldiIpOwotICAgICAg
ICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwLCAncHJldnVuaXF1ZScp
IiwgInByZXZ1bmlxdWUiKTsKLQotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUu
b3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApKSIsICJuZXh0Iik7Ci0gICAgICAgIGNoZWNr
Q3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdu
ZXh0JykiLCAibmV4dCIpOwotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3Bl
bkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUi
KTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoSURCS2V5
UmFuZ2Uub25seSgwKSwgJ3ByZXYnKSIsICJwcmV2Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGly
ZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2dW5pcXVl
JykiLCAicHJldnVuaXF1ZSIpOwotCi0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRl
eC5vcGVuQ3Vyc29yKCkiLCAibmV4dCIpOwotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigi
aW5kZXgub3BlbkN1cnNvcigwKSIsICJuZXh0Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0
aW9uKCJpbmRleC5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAibmV4dCIpOwotICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcigwLCAnbmV4dHVuaXF1ZScpIiwgIm5l
eHR1bmlxdWUiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJz
b3IoMCwgJ3ByZXYnKSIsICJwcmV2Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJp
bmRleC5vcGVuQ3Vyc29yKDAsICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOwotCi0gICAg
ICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9u
bHkoMCkpIiwgIm5leHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9w
ZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJuZXh0Iik7Ci0gICAgICAg
IGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHko
MCksICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOwotICAgICAgICBjaGVja0N1cnNvckRp
cmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldicpIiwg
InByZXYiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3Io
SURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7Ci0KLSAg
ICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoKSIsICJuZXh0
Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKDAp
IiwgIm5leHQiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlD
dXJzb3IoMCwgJ25leHQnKSIsICJuZXh0Iik7Ci0gICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9u
KCJpbmRleC5vcGVuS2V5Q3Vyc29yKDAsICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOwot
ICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigwLCAncHJl
dicpIiwgInByZXYiKTsKLSAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5L
ZXlDdXJzb3IoMCwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7Ci0KLSAgICAgICAgY2hl
Y2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgw
KSkiLCAibmV4dCIpOwotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3Blbktl
eUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIm5leHQiKTsKLSAgICAgICAg
Y2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25s
eSgwKSwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7Ci0gICAgICAgIGNoZWNrQ3Vyc29y
RGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2
JykiLCAicHJldiIpOwotICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3Blbktl
eUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUi
KTsKLQotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0N1cnNv
ckRpcmVjdGlvbihzdGF0ZW1lbnQsIGRpcmVjdGlvbikgewotICAgICAgICByZXF1ZXN0ID0gZXZh
bChzdGF0ZW1lbnQpOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhldmVudC50YXJnZXQucmVzdWx0LCBu
dWxsLCAiQ2hlY2sgdGhlIHJlc3VsdCBpcyBub3QgbnVsbCIpCi0gICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50LnRhcmdldC5yZXN1bHQuZGlyZWN0aW9uLCBkaXJlY3Rpb24sICJDaGVjayB0
aGUgcmVzdWx0IGRpcmVjdGlvbiIpOwotICAgICAgICB9OwotICAgIH0KLQotPC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmJhOWYwMTdiY2I5ZGU2MjMxMGM2MzAyNjRjYjIxMzg0Mzhh
NzM2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1GQUlMIEluZGV4ZWREQiBpbnNpZGUg
b2YgYSBXZWJXb3JrZXIgIGFzc2VydF9lcXVhbHM6IHdvcmtlciBoYXMgaWRiIG9iamVjdCBleHBl
Y3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiX3dlYndvcmtlcnMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYTlmMDE3YmNiOWRl
NjIzMTBjNjMwMjY0Y2IyMTM4NDM4YTczNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJf
d2Vid29ya2Vycy1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1GQUlMIEluZGV4ZWREQiBpbnNpZGUgb2YgYSBXZWJXb3JrZXIgIGFzc2VydF9lcXVh
bHM6IHdvcmtlciBoYXMgaWRiIG9iamVjdCBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJfd2Vid29y
a2Vycy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Yl93ZWJ3b3JrZXJzLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGIyZmFmZjBiZTJkZTU3YTBlNmJlNWEwNThiZjQzOTg0N2NkYjA1Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPkluZGV4ZWREQiBpbnNpZGUgb2Yg
YSBXZWJXb3JrZXIgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIGNvdW50ID0g
MCwKLSAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJpZGJ3b3JrZXIuanMiKTsKLSAgICAgICAg
d29ya2VyLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgICAg
ICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLCB0cnVlLCAnd29ya2VyIGhhcyBpZGIgb2JqZWN0
JykKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgICAgIGNhc2UgMToK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICJ0ZXN0IiwgImdldCgx
KSBpbiB3b3JrZXIiKQotICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKQotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBjb3VudCsrCi0gICAgICAgIH0pOwotCi0gICAgICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgxKTsKLSAgICB9KQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiX3dl
YndvcmtlcnMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJfd2Vi
d29ya2Vycy5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiMmZhZmYwYmUyZGU1
N2EwZTZiZTVhMDU4YmY0Mzk4NDdjZGIwNWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJf
d2Vid29ya2Vycy5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTx0aXRsZT5JbmRleGVkREIgaW5zaWRlIG9mIGEgV2ViV29ya2VyIDwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCBjb3VudCA9IDAsCi0gICAgICB0ID0gYXN5bmNfdGVz
dCgpOwotCi0gICAgdC5zdGVwKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgd29ya2VyID0gbmV3
IFdvcmtlcigiaWRid29ya2VyLmpzIik7Ci0gICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbiAoZSkgewotICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAg
ICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
ZGF0YSwgdHJ1ZSwgJ3dvcmtlciBoYXMgaWRiIG9iamVjdCcpCi0gICAgICAgICAgICAgICAgICAg
IGJyZWFrCi0KLSAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLCAidGVzdCIsICJnZXQoMSkgaW4gd29ya2VyIikKLSAgICAgICAg
ICAgICAgICAgICAgdC5kb25lKCkKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY291bnQr
KwotICAgICAgICB9KTsKLQotICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoMSk7Ci0gICAgfSkK
LQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFz
eW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWFkdmFuY2UtY29udGludWUtYXN5bmMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2YzA0ZWE2ODYzYmIyNDY2NDgwYmUwMGY2ZThiYmY2MGZjYTg4MzZl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGludWUtYXN5
bmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgSURC
Q3Vyc29yIGFzeW5jbmVzcyAtIGFkdmFuY2UgCi1QQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBj
b250aW51ZSAKLVBBU1MgSURCQ3Vyc29yIGFzeW5jbmVzcyAtIGZyZXNoIGFkdmFuY2Ugc3RpbGwg
YXN5bmMgCi1QQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBmcmVzaCBjb250aW51ZSBzdGlsbCBh
c3luYyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGlu
dWUtYXN5bmMtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZjMDRlYTY4NjNiYjI0NjY0ODBiZTAwZjZlOGJiZjYwZmNhODgzNmUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1wcml2YXRlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNv
ciBhc3luY25lc3MgLSBhZHZhbmNlIAotUEFTUyBJREJDdXJzb3IgYXN5bmNuZXNzIC0gY29udGlu
dWUgCi1QQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBmcmVzaCBhZHZhbmNlIHN0aWxsIGFzeW5j
IAotUEFTUyBJREJDdXJzb3IgYXN5bmNuZXNzIC0gZnJlc2ggY29udGludWUgc3RpbGwgYXN5bmMg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yLWFkdmFuY2UtY29udGludWUtYXN5bmMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5NGVkOWVmMWZjOTE3OWJm
YWQ3ZGU0YTE5NDgwNjNjMTQ1ZjRmYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxODYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yIGFzeW5jbmVz
czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwgb3BlbjsKLQot
ICAgIHNldHVwKGZ1bmN0aW9uKCkgewotICAgICAgICBvcGVuID0gaW5kZXhlZERCLm9wZW4oJ3Rl
c3RkYi0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpOwotICAgICAgICBvcGVuLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsK
LSAgICAgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKTsKLQotICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhIiwgIDEpOwotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KCJkYXRhMiIsIDIpOwotICAgICAgICB9OwotICAgIH0sCi0gICAgeyBleHBsaWNpdF9kb25lOiB0
cnVlIH0pOwotCi0KLSAgICBvcGVuLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotCi0KLSAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlIikuc3RlcChmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5DdXJzb3IoKTsK
LQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
ewotICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAg
ICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owot
Ci0gICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCAiZGF0YSIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5r
ZXksIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKQotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgMSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRh
MiIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksIDIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKQotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhMiIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksIDIpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAi
ICsgY291bnQpCi0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVu
ZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUgKyAiIC0gY29udGludWUiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOwot
Ci0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgJ2NvdW50Jyk7Ci0gICAgICAgICAgICAgICAg
ICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0K
LSAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUs
ICJkYXRhIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtl
eSwgICAiZGF0YSIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci5wcmltYXJ5S2V5LCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
KCJkYXRhMiIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZSwgImRhdGEiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3Iua2V5LCAgICJkYXRhIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnByaW1hcnlLZXksIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotCi0g
ICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAgICJkYXRhMiIpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKQotICAgICAgICAgICAgICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAgICJkYXRhMiIpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKQotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNv
dW50KQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVj
dGVkIGVycm9yIikKLSAgICAgICAgfSk7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlICsgIiAtIGZyZXNoIGFkdmFuY2Ugc3RpbGwgYXN5bmMiKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3Bl
bkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgJ2NvdW50Jyk7Ci0gICAg
ICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSkKLQotICAgICAgICAg
ICAgICAgIHN3aXRjaChjb3VudCkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAgICJkYXRh
IikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlL
ZXksIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAgICAg
ICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnZhbHVlLCAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJzb3Iua2V5LCAgICJkYXRhMiIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK
LQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KQotICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKLSAg
ICAgICAgfSk7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGZy
ZXNoIGNvbnRpbnVlIHN0aWxsIGFzeW5jIikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEu
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
IGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgpCi0KLSAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLmtleSwgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0K
LSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhMiIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksIDIpCi0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhawotCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpCi0gICAg
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3Ii
KQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBTdG9wIGJsb2NraW5nIHRoZSB0ZXN0aW5nIHN5
c3RlbSBmcm9tIGhlcmVvbgotICAgICAgICBkb25lKCk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQot
PGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGludWUtYXN5
bmMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTRlZDllZjFmYzkxNzliZmFk
N2RlNGExOTQ4MDYzYzE0NWY0ZmIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWFkdmFuY2UtY29udGludWUtYXN5bmMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMTg2ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvciBhc3luY25lc3M8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsIG9wZW47Ci0KLSAgICBzZXR1cChm
dW5jdGlvbigpIHsKLSAgICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5l
dyBEYXRlKCkuZ2V0VGltZSgpKTsKLSAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0gICAgICAgICAg
ICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7Ci0KLSAgICAgICAgICAgIG9ialN0
b3JlLmFkZCgiZGF0YSIsICAxKTsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIiLCAy
KTsKLSAgICAgICAgfTsKLSAgICB9LAotICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKLQot
Ci0gICAgb3Blbi5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLQotCi0gICAgICAgIGFzeW5jX3Rl
c3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gYWR2YW5jZSIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5k
b25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAg
ICAgICAgIHN3aXRjaChjb3VudCkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAxKQotICAg
ICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksIDEpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAyKQotICAgICAgICAg
ICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAyKQotICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KQot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVy
cm9yIikKLSAgICAgICAgfSk7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtIGNvbnRpbnVlIikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY291
bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmpl
Y3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAg
ICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLmRv
bmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAg
ICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEi
KQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtl
eSwgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgiZGF0YTIiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRh
IikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAi
ZGF0YSIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmlt
YXJ5S2V5LCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAg
ICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgImRhdGEyIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY3Vyc29yLmtleSwgICAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMikKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgImRhdGEyIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY3Vyc29yLmtleSwgICAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMikKLSAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0KLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIp
Ci0gICAgICAgIH0pOwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSBmcmVzaCBhZHZhbmNlIHN0aWxsIGFzeW5jIikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24o
InRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsK
LQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
ewotICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAg
ICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpCi0KLSAgICAgICAgICAgICAgICBzd2l0
Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YSIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKQotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgICAgICAgICBjYXNlIDE6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRh
dGEyIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwg
ICAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgMikKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKLSAgICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBy
cS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0pOwot
Ci0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBmcmVzaCBjb250aW51
ZSBzdGlsbCBhc3luYyIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50
ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0
U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFy
Z2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAy
LCAnY291bnQnKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKQotCi0gICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnZhbHVlLCAiZGF0YSIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci5rZXksIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAg
ICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLCAiZGF0YTIiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3Iua2V5LCAyKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KQotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0ZW0gZnJvbSBo
ZXJlb24KLSAgICAgICAgZG9uZSgpOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItYWR2YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTMyMzMxNTE2Yjc1ODM2ODZkOTM2ODQzNTUzNDk1M2ZiZTQyMjg1Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkg
LSBhZHZhbmNlcyAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGFkdmFuY2VzIGJhY2t3YXJk
cyAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHNraXAgZmFyIGZvcndhcmQgCi1QQVNTIElE
QkN1cnNvci5hZHZhbmNlKCkgLSB3aXRoaW4gcmFuZ2UgCi1QQVNTIElEQkN1cnNvci5hZHZhbmNl
KCkgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAt
IHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5j
ZS1pbnZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc5MTZiNTc3YTk0ZjFhYmVlZDExMDcwZDUyYjc4ODQ0ZGVlZGJkYTgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5h
ZHZhbmNlKCkgLSBpbnZhbGlkIC0gYXR0ZW1wdCB0byBjYWxsIGFkdmFuY2UgdHdpY2UgCi1QQVNT
IElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhh
biBudW1iZXIgCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0gcGFzcyBudWxs
L3VuZGVmaW5lZCAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBtaXNzaW5n
IGFyZ3VtZW50IAotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIHBhc3MgbmVn
YXRpdmUgbnVtYmVycyAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBnb3Qg
dmFsdWUgbm90IHNldCBvbiBleGNlcHRpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWFkdmFuY2UtaW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzkxNmI1NzdhOTRmMWFiZWVkMTEwNzBkNTJiNzg4NDRkZWVkYmRhOC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFTUyBJREJDdXJz
b3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIGF0dGVtcHQgdG8gY2FsbCBhZHZhbmNlIHR3aWNlIAot
UEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIHBhc3Mgc29tZXRoaW5nIG90aGVy
IHRoYW4gbnVtYmVyIAotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIHBhc3Mg
bnVsbC91bmRlZmluZWQgCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0gbWlz
c2luZyBhcmd1bWVudCAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBwYXNz
IG5lZ2F0aXZlIG51bWJlcnMgCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0g
Z290IHZhbHVlIG5vdCBzZXQgb24gZXhjZXB0aW9uIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2
YW5jZS1pbnZhbGlkLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTI1MDRiOWU0MWU2ODk5MmU3MGI2MTFhNWFkMjk2NDhiYTRmMTY3Ni4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQtcHJpdmF0ZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNv
ci5hZHZhbmNlKCkgLSBpbnZhbGlkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08bGlu
ayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1s
b25nLWNvdW50Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSB2YWx1ZSBmb3IgY291
bnQgaXMgMCAoemVybykgb3IgYSBuZWdhdGl2ZSBudW1iZXIsIHRoaXMgbWV0aG9kIG11c3QgdGhy
b3cgYSBKYXZhU2NyaXB0IFR5cGVFcnJvciBleGNlcHRpb24uIj4KLTxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IlR5cGVFcnJvciBUaGUgdmFsdWUgcGFzc2VkIGludG8gdGhlIGNvdW50IHBhcmFtZXRl
ciB3YXMgemVybyBvciBhIG5lZ2F0aXZlIG51bWJlci4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iSW52YWxpZFN0YXRlRXJyb3IgVGhlIGN1cnNvciBpcyBjdXJyZW50bHkgYmVpbmcgaXRlcmF0
ZWQsIG9yIGhhcyBpdGVyYXRlZCBwYXN0IGl0cyBlbmQuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IkNhbGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0aGFuIG9uY2UgYmVmb3JlIG5ldyBjdXJzb3Ig
ZGF0YSBoYXMgYmVlbiBsb2FkZWQgaXMgbm90IGFsbG93ZWQgYW5kIHJlc3VsdHMgaW4gYSBET01F
eGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0aHJvd24uIEZvciBleGFt
cGxlLCBjYWxsaW5nIGFkdmFuY2UoKSB0d2ljZSBmcm9tIHRoZSBzYW1lIG9uc3VjY2VzcyBoYW5k
bGVyIHJlc3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBi
ZWluZyB0aHJvd24gb24gdGhlIHNlY29uZCBjYWxsLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxl
PSJCZWZvcmUgdGhpcyBtZXRob2QgcmV0dXJucywgdW5sZXNzIGFuIGV4Y2VwdGlvbiB3YXMgdGhy
b3duLCBpdCBzZXRzIHRoZSBnb3QgdmFsdWUgZmxhZyBvbiB0aGUgY3Vyc29yIHRvIGZhbHNlLiI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotCi0gICAgdmFyIGRiLCBvcGVuOwotCi0gICAgc2V0dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7
Ci0gICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOwotICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgIiIpOwotCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7
Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7Ci0gICAgICAgIH07Ci0gICAg
fSwKLSAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7Ci0KLQotICAgIG9wZW4ub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7Ci0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSBhdHRlbXB0IHRvIGNhbGwgYWR2YW5jZSB0d2ljZSIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29y
KCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKLSAgICAgICAgICAg
ICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKLQotICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOwotCi0gICAgICAgICAgICAg
ICAgLy8gU2Vjb25kIHRyeQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRT
dGF0ZUVycm9yJywKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKDEpOyB9LCAnc2Vjb25kIGFkdmFuY2UnKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IGN1cnNvci5hZHZhbmNlKDMpOyB9LCAndGhpcmQgYWR2YW5jZScpOwotCi0gICAgICAgICAg
ICAgICAgY291bnQrKzsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9
IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAg
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhh
biBudW1iZXIiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVu
Q3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShkb2N1bWVu
dCk7IH0pOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSh7
fSk7IH0pOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShb
XSk7IH0pOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgi
Iik7IH0pOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgi
MSAyIik7IH0pOwotCi0gICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9y
IikKLSAgICAgICAgfSk7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
IiAtIHBhc3MgbnVsbC91bmRlZmluZWQiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRl
eCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRo
aXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6
ICJUeXBlRXJyb3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
YWR2YW5jZShudWxsKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFt
ZTogIlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNv
ci5hZHZhbmNlKHVuZGVmaW5lZCk7IH0pOwotCi0gICAgICAgICAgICAgICAgdmFyIG15dmFyID0g
bnVsbDsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIg
fSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKG15dmFy
KTsgfSk7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQot
ICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0g
bWlzc2luZyBhcmd1bWVudCIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIHJx
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRl
eCIpLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KCk7IH0pOwotCi0gICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikK
LSAgICAgICAgfSk7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
IHBhc3MgbmVnYXRpdmUgbnVtYmVycyIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4
KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC0xKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKE5hTik7IH0pOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6
ICJUeXBlRXJyb3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
YWR2YW5jZSgwKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC0wKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKEluZmluaXR5KTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsg
bmFtZTogIlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1
cnNvci5hZHZhbmNlKC1JbmZpbml0eSk7IH0pOwotCi0gICAgICAgICAgICAgICAgdmFyIG15dmFy
ID0gLTk5OTk5OTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KG15dmFyKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJy
b3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gZ290IHZhbHVlIG5vdCBzZXQgb24gZXhjZXB0aW9uIikuc3RlcChmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5D
dXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
Ci0gICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQgcnVucyIpOwotICAg
ICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UoMCk7IH0pOwotCi0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7
Ci0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
cnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsK
LQotCi0gICAgICAgIC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVy
ZW9uCi0gICAgICAgIGRvbmUoKTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWFkdmFuY2UtaW52YWxpZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMjUwNGI5ZTQxZTY4OTkyZTcwYjYxMWE1YWQyOTY0OGJhNGYxNjc2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC5odG0KKysrIC9k
ZXYvbnVsbApAQCAtMSwxODggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vy
c29yLmFkdmFuY2UoKSAtIGludmFsaWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxs
aW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVk
LWxvbmctY291bnQiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgdGhlIHZhbHVlIGZvciBj
b3VudCBpcyAwICh6ZXJvKSBvciBhIG5lZ2F0aXZlIG51bWJlciwgdGhpcyBtZXRob2QgbXVzdCB0
aHJvdyBhIEphdmFTY3JpcHQgVHlwZUVycm9yIGV4Y2VwdGlvbi4iPgotPGxpbmsgcmVsPWFzc2Vy
dCB0aXRsZT0iVHlwZUVycm9yIFRoZSB2YWx1ZSBwYXNzZWQgaW50byB0aGUgY291bnQgcGFyYW1l
dGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVyLiI+Ci08bGluayByZWw9YXNzZXJ0IHRp
dGxlPSJJbnZhbGlkU3RhdGVFcnJvciBUaGUgY3Vyc29yIGlzIGN1cnJlbnRseSBiZWluZyBpdGVy
YXRlZCwgb3IgaGFzIGl0ZXJhdGVkIHBhc3QgaXRzIGVuZC4iPgotPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0iQ2FsbGluZyB0aGlzIG1ldGhvZCBtb3JlIHRoYW4gb25jZSBiZWZvcmUgbmV3IGN1cnNv
ciBkYXRhIGhhcyBiZWVuIGxvYWRlZCBpcyBub3QgYWxsb3dlZCBhbmQgcmVzdWx0cyBpbiBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIGJlaW5nIHRocm93bi4gRm9yIGV4
YW1wbGUsIGNhbGxpbmcgYWR2YW5jZSgpIHR3aWNlIGZyb20gdGhlIHNhbWUgb25zdWNjZXNzIGhh
bmRsZXIgcmVzdWx0cyBpbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9y
IGJlaW5nIHRocm93biBvbiB0aGUgc2Vjb25kIGNhbGwuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IkJlZm9yZSB0aGlzIG1ldGhvZCByZXR1cm5zLCB1bmxlc3MgYW4gZXhjZXB0aW9uIHdhcyB0
aHJvd24sIGl0IHNldHMgdGhlIGdvdCB2YWx1ZSBmbGFnIG9uIHRoZSBjdXJzb3IgdG8gZmFsc2Uu
Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0KLSAgICB2YXIgZGIsIG9wZW47Ci0KLSAgICBzZXR1cChmdW5jdGlvbigpIHsKLSAgICAg
ICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBEYXRlKCkuZ2V0VGltZSgp
KTsKLSAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0gICAgICAgICAgICBvYmpTdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCAiIik7Ci0KLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICAx
KTsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKLSAgICAgICAgfTsKLSAg
ICB9LAotICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKLQotCi0gICAgb3Blbi5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbigpIHsKLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
IiAtIGF0dGVtcHQgdG8gY2FsbCBhZHZhbmNlIHR3aWNlIikuc3RlcChmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNh
Y3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJz
b3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAg
ICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OwotCi0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0KLSAgICAgICAgICAg
ICAgICAvLyBTZWNvbmQgdHJ5Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxp
ZFN0YXRlRXJyb3InLAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFk
dmFuY2UoMSk7IH0sICdzZWNvbmQgYWR2YW5jZScpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlv
bigpIHsgY3Vyc29yLmFkdmFuY2UoMyk7IH0sICd0aGlyZCBhZHZhbmNlJyk7Ci0KLSAgICAgICAg
ICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9y
ID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0pOwotCi0KLSAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBwYXNzIHNvbWV0aGluZyBvdGhlciB0
aGFuIG51bWJlciIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9w
ZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIg
fSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKGRvY3Vt
ZW50KTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KHt9KTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KFtdKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KCIiKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KCIxIDIiKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJy
b3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gcGFzcyBudWxsL3VuZGVmaW5lZCIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmlu
ZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0g
dGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFt
ZTogIlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNv
ci5hZHZhbmNlKG51bGwpOyB9KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UodW5kZWZpbmVkKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgbXl2YXIg
PSBudWxsOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAiVHlwZUVycm9y
IiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFkdmFuY2UobXl2
YXIpOyB9KTsKLQotICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIp
Ci0gICAgICAgIH0pOwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSBtaXNzaW5nIGFyZ3VtZW50Iikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIg
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImlu
ZGV4Iikub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAiVHlw
ZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFkdmFu
Y2UoKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3Ii
KQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAi
IC0gcGFzcyBuZWdhdGl2ZSBudW1iZXJzIikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5k
ZXgoImluZGV4Iikub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1l
OiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmFkdmFuY2UoLTEpOyB9KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1l
OiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmFkdmFuY2UoTmFOKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFt
ZTogIlR5cGVFcnJvciIgfSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNv
ci5hZHZhbmNlKDApOyB9KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1l
OiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmFkdmFuY2UoLTApOyB9KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1l
OiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmFkdmFuY2UoSW5maW5pdHkpOyB9KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
eyBuYW1lOiAiVHlwZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsg
Y3Vyc29yLmFkdmFuY2UoLUluZmluaXR5KTsgfSk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgbXl2
YXIgPSAtOTk5OTk5OwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAiVHlw
ZUVycm9yIiB9LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFkdmFu
Y2UobXl2YXIpOyB9KTsKLQotICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBl
cnJvciIpCi0gICAgICAgIH0pOwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSArICIgLSBnb3QgdmFsdWUgbm90IHNldCBvbiBleGNlcHRpb24iKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3Bl
bkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjb3VudCBydW5zIik7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7
IG5hbWU6ICJUeXBlRXJyb3IiIH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBj
dXJzb3IuYWR2YW5jZSgwKTsgfSk7Ci0KLSAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgx
KTsKLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0p
OwotCi0KLSAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0ZW0gZnJvbSBo
ZXJlb24KLSAgICAgICAgZG9uZSgpOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItYWR2YW5jZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtcHJpdmF0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzMjMzMTUxNmI3NTgzNjg2ZDkzNjg0MzU1
MzQ5NTNmYmU0MjI4NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5j
ZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1Q
QVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBhZHZhbmNlcyAKLVBBU1MgSURCQ3Vyc29yLmFkdmFu
Y2UoKSAtIGFkdmFuY2VzIGJhY2t3YXJkcyAKLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHNr
aXAgZmFyIGZvcndhcmQgCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSB3aXRoaW4gcmFuZ2Ug
Ci1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSAKLVBB
U1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNl
dmVyYWwgcmVzdWx0cyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLXByaXZhdGUuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNiZmQ4NDBiMjZlMDdiYzQyZTZiYWUyZjQzZTVlN2Iz
YWJhOGRjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLXByaXZh
dGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotCi0gICAgdmFyIGRiLCBvcGVuOwotCi0gICAgc2V0dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IG9wZW4gPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7
Ci0gICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOwotICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgIiIpOwotCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoImN1cGNha2UiLCA1
KTsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgicGFuY2FrZSIsIDMpOyAvLyBZZXMsIGl0IGlz
IGludGVuZGVkCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoInBpZSIsICAgICAxKTsKLSAgICAg
ICAgICAgIG9ialN0b3JlLmFkZCgicGllIiwgICAgIDQpOwotICAgICAgICAgICAgb2JqU3RvcmUu
YWRkKCJ0YWNvIiwgICAgMik7Ci0gICAgICAgIH07Ci0gICAgfSwKLSAgICB7IGV4cGxpY2l0X2Rv
bmU6IHRydWUgfSk7Ci0KLQotICAgIG9wZW4ub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0KLSAg
ICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyIpLnN0ZXAoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5k
ZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3Vs
dCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAiY291bnQi
KTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewotICAg
ICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAy
OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0
YWNvIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmlt
YXJ5S2V5LCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFj
aGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2Uo
Mik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMs
ICJ1bmV4cGVjdGVkIGVycm9yIikKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyBiYWNrd2FyZHMiKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3Bl
bkN1cnNvcihudWxsLCAicHJldiIpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlz
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5y
ZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywgImNv
dW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsK
LSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGNhc2Ug
MjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAi
Y3VwY2FrZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgNSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKLSAgICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgICAgIGN1cnNvci5hZHZh
bmNlKDIpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0
aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0pOwotCi0gICAgICAgIGFzeW5jX3Rl
c3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQot
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgMSwgImNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBz
d2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVj
dGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIGNvdW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMTAwMDAwKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhw
ZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1l
bnQudGl0bGUgKyAiIC0gd2l0aGluIHJhbmdlIikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24o
InRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmxvd2VyQm91bmQoImN1cGNha2UiLCB0
cnVlKSk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQiKTsKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdDsKLQotICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewotICAgICAgICAgICAgICAg
ICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci52YWx1ZSwgInBhbmNha2UiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY3Vyc29yLnByaW1hcnlLZXksIDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBj
b3VudCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAg
ICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAgICAg
ICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGlu
IHNpbmdsZSBrZXkgcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBj
b3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9i
amVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAg
Lm9wZW5DdXJzb3IoInBhbmNha2UiKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQu
cmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICJj
b3VudCIpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7
Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiAr
IGNvdW50KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwot
ICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAg
ICAgIH0pOwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRo
aW4gc2luZ2xlIGtleSByYW5nZSwgd2l0aCBzZXZlcmFsIHJlc3VsdHMiKS5zdGVwKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikK
LSAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoInBpZSIpOwotCi0gICAgICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjb3VudCwgMiwgImNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9u
ZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAg
ICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAg
Y2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFs
dWUsICJwaWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIDQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91
bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgICAgICBjdXJzb3IuYWR2
YW5jZSgxKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwo
dGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIC8vIFN0
b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCi0gICAgICAgIGRvbmUo
KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNl
Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNiZmQ4NDBiMjZlMDdiYzQyZTZi
YWUyZjQzZTVlN2IzYWJhOGRjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1h
ZHZhbmNlLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi0gICAgdmFyIGRiLCBvcGVuOwotCi0gICAgc2V0dXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUo
KSk7Ci0gICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOwotICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgIiIpOwotCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoImN1cGNha2Ui
LCA1KTsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgicGFuY2FrZSIsIDMpOyAvLyBZZXMsIGl0
IGlzIGludGVuZGVkCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoInBpZSIsICAgICAxKTsKLSAg
ICAgICAgICAgIG9ialN0b3JlLmFkZCgicGllIiwgICAgIDQpOwotICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKCJ0YWNvIiwgICAgMik7Ci0gICAgICAgIH07Ci0gICAgfSwKLSAgICB7IGV4cGxpY2l0
X2RvbmU6IHRydWUgfSk7Ci0KLQotICAgIG9wZW4ub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0K
LSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyIpLnN0ZXAo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZh
ciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgi
aW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJl
c3VsdCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAiY291
bnQiKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewot
ICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAyOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUs
ICJ0YWNvIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5w
cmltYXJ5S2V5LCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFu
Y2UoMik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRo
aXMsICJ1bmV4cGVjdGVkIGVycm9yIikKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgYXN5bmNfdGVz
dChkb2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyBiYWNrd2FyZHMiKS5zdGVwKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iiku
b3BlbkN1cnNvcihudWxsLCAicHJldiIpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdl
dC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywg
ImNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQp
IHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGNh
c2UgMjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCAiY3VwY2FrZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IucHJpbWFyeUtleSwgNSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKLSAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgICAgIGN1cnNvci5h
ZHZhbmNlKDIpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFp
bCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0pOwotCi0gICAgICAgIGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgi
KQotICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjb3VudCwgMSwgImNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAg
ICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4
cGVjdGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMTAwMDAwKTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVu
ZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHJhbmdlIikuc3RlcChmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmxvd2VyQm91bmQoImN1cGNha2Ui
LCB0cnVlKSk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQiKTsKLSAgICAg
ICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0
LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewotICAgICAgICAgICAg
ICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgInBhbmNha2UiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIg
KyBjb3VudCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsK
LSAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAg
ICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0
aGluIHNpbmdsZSBrZXkgcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZh
ciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
Lm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IoInBhbmNha2UiKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0g
dGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIGlmICghZS50YXJn
ZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEs
ICJjb3VudCIpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIg
Y3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDog
IiArIGNvdW50KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsr
OwotICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0g
ICAgICAgIH0pOwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3
aXRoaW4gc2luZ2xlIGtleSByYW5nZSwgd2l0aCBzZXZlcmFsIHJlc3VsdHMiKS5zdGVwKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4
IikKLSAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoInBpZSIpOwotCi0gICAgICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjb3VudCwgMiwgImNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMu
ZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAg
ICAgICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXks
IDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
dmFsdWUsICJwaWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnByaW1hcnlLZXksIDQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7Ci0gICAgICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgICAgICBjdXJzb3Iu
YWR2YW5jZSgxKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZh
aWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIC8v
IFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCi0gICAgICAgIGRv
bmUoKTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGlu
dWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxYjA5YWUyOWRjYzJmMzcxOTUwYmVmOTcyNzE3NGExOGQyM2QwOTdiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gY29udGludWVz
IAotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIHdpdGggZ2l2ZW4ga2V5IAotUEFTUyBJREJD
dXJzb3IuY29udGludWUoKSAtIHNraXAgZmFyIGZvcndhcmQgCi1QQVNTIElEQkN1cnNvci5jb250
aW51ZSgpIC0gd2l0aGluIHJhbmdlIAotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIHdpdGhp
biBzaW5nbGUga2V5IHJhbmdlIAotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIHdpdGhpbiBz
aW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyAKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUtcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1jb250aW51ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWIwOWFlMjlkY2MyZjM3MTk1MGJlZjk3MjcxNzRhMThkMjNkMDk3Yi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1jb250aW51ZS1wcml2YXRlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250aW51
ZSgpIC0gY29udGludWVzIAotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIHdpdGggZ2l2ZW4g
a2V5IAotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIHNraXAgZmFyIGZvcndhcmQgCi1QQVNT
IElEQkN1cnNvci5jb250aW51ZSgpIC0gd2l0aGluIHJhbmdlIAotUEFTUyBJREJDdXJzb3IuY29u
dGludWUoKSAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlIAotUEFTUyBJREJDdXJzb3IuY29udGlu
dWUoKSAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3It
Y29udGludWUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItY29udGludWUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxYWMxMjg1ODliN2FjYmRlZDE2NzM1NzEwMzVkYjVlYjI3YjVjMWFhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLXByaXZhdGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDI0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJz
b3IuY29udGludWUoKTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgotPGxpbmsg
cmVsPWFzc2VydCB0aXRsZT0iVGhlIG5leHQga2V5IHRvIHBvc2l0aW9uIHRoaXMgY3Vyc29yIGF0
Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0KLSAgICB2YXIgZGIsIG9wZW47Ci0gICAgdmFyIHN0b3JlID0gWyB7IHZhbHVlOiAiY3Vw
Y2FrZSIsIGtleTogNSB9LAotICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogInBhbmNha2UiLCBr
ZXk6IDMgfSwKLSAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJwaWUiLCAgICAga2V5OiAxIH0s
Ci0gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAicGllIiwgICAgIGtleTogNCB9LAotICAgICAg
ICAgICAgICAgICAgeyB2YWx1ZTogInRhY28iLCAgICBrZXk6IDIgfSBdOwotCi0gICAgc2V0dXAo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBu
ZXcgRGF0ZSgpLmdldFRpbWUoKSk7Ci0gICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIG9zLCBpOwotICAgICAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0
Iik7Ci0gICAgICAgICAgICBvcy5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7Ci0KLSAgICAgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBzdG9yZS5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICBv
cy5hZGQoc3RvcmVbaV0udmFsdWUsIHN0b3JlW2ldLmtleSk7Ci0gICAgICAgIH07Ci0gICAgfSwK
LSAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7Ci0KLQotICAgIG9wZW4ub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
IGNvbnRpbnVlcyIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0g
MDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3Rv
cmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGNvdW50LCA1LCAnY291bnQnKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCBzdG9yZVtjb3VudF0udmFsdWUpOwotICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIHN0b3JlW2NvdW50XS5r
ZXkpOwotCi0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0KLSAgICAgICAgICAg
ICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9yID0g
ZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0pOwotCi0KLSAgICAgICAg
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoIGdpdmVuIGtleSIpLnN0ZXAoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5k
ZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3Vs
dCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAnY291bnQn
KTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewotICAg
ICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgY3Vyc29yLmNvbnRpbnVlKCJwaWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgidGFjbyIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBj
b3VudCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhw
ZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1l
bnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQotICAgICAgICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRh
cmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwg
MSwgJ2NvdW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBzd2l0Y2goY291
bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50
OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGNvdW50
Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKFtdKTsgLy8gQXJyYXlzIGFyZSBh
bHdheXMgYmlnZ2VyIHRoYW4gc3RyaW5ncwotCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMiIpCi0gICAgICAgIH0p
OwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gcmFu
Z2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAg
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0
IikuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoSURC
S2V5UmFuZ2UubG93ZXJCb3VuZCgiY3VwY2FrZSIsIHRydWUpKTsKLQotICAgICAgICAgICAgcnEu
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
IGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAgICAg
c3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoInBpZSIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUi
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlL
ZXksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCJ6enoiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVj
dGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIGNvdW50Kys7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBm
YWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMSIpCi0gICAgICAgIH0pOwotCi0KLSAgICAgICAg
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSIp
LnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAg
ICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5p
bmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigicGFuY2Fr
ZSIpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7Ci0gICAgICAgICAg
ICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0KLSAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
dmFsdWUsICJwYW5jYWtlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci5wcmltYXJ5S2V5LCAzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5j
b250aW51ZSgicGllIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKLSAgICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjEiKQotICAgICAgICB9
KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHNp
bmdsZSBrZXkgcmFuZ2UsIHdpdGggc2V2ZXJhbCByZXN1bHRzIikuc3RlcChmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCi0gICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCJwaWUiKTsKLQotICAgICAgICAgICAgcnEu
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
IGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAgICAg
c3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiAr
IGNvdW50KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5l
eHBlY3RlZCBlcnJvcjEiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIC8vIFN0b3AgYmxvY2tp
bmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCi0gICAgICAgIGRvbmUoKTsKLSAgICB9
Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUuaHRtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYWMxMjg1ODliN2FjYmRlZDE2NzM1NzEwMzVk
YjVlYjI3YjVjMWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVl
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0
aXRsZT5JREJDdXJzb3IuY29udGludWUoKTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgot
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1r
ZXkiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIG5leHQga2V5IHRvIHBvc2l0aW9uIHRo
aXMgY3Vyc29yIGF0Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsIG9wZW47Ci0gICAgdmFyIHN0b3JlID0gWyB7
IHZhbHVlOiAiY3VwY2FrZSIsIGtleTogNSB9LAotICAgICAgICAgICAgICAgICAgeyB2YWx1ZTog
InBhbmNha2UiLCBrZXk6IDMgfSwKLSAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJwaWUiLCAg
ICAga2V5OiAxIH0sCi0gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAicGllIiwgICAgIGtleTog
NCB9LAotICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogInRhY28iLCAgICBrZXk6IDIgfSBdOwot
Ci0gICAgc2V0dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIG9wZW4gPSBpbmRleGVkREIub3Blbign
dGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7Ci0gICAgICAgIG9wZW4ub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIG9zLCBpOwotICAgICAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBvcyA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJ0ZXN0Iik7Ci0gICAgICAgICAgICBvcy5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7
Ci0KLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzdG9yZS5sZW5ndGg7IGkrKykKLSAgICAg
ICAgICAgICAgICBvcy5hZGQoc3RvcmVbaV0udmFsdWUsIHN0b3JlW2ldLmtleSk7Ci0gICAgICAg
IH07Ci0gICAgfSwKLSAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7Ci0KLQotICAgIG9wZW4u
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0KLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlICsgIiAtIGNvbnRpbnVlcyIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
dmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0
Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAg
ICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGNvdW50LCA1LCAnY291bnQnKTsKLSAgICAgICAgICAgICAgICAgICAg
dGhpcy5kb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCBzdG9yZVtjb3VudF0udmFs
dWUpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIHN0
b3JlW2NvdW50XS5rZXkpOwotCi0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0K
LSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBy
cS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCi0gICAgICAgIH0pOwot
Ci0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoIGdpdmVuIGtl
eSIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3Qi
KS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAzLCAnY291bnQnKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIHN3aXRjaChj
b3VudCkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCJwaWUiKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgidGFjbyIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNv
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5
S2V5LCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQg
Y291bnQ6ICIgKyBjb3VudCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
Y291bnQrKzsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwo
dGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBycSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgi
KQotICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAg
ICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4
cGVjdGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKFtdKTsgLy8g
QXJyYXlzIGFyZSBhbHdheXMgYmlnZ2VyIHRoYW4gc3RyaW5ncwotCi0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMiIp
Ci0gICAgICAgIH0pOwotCi0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSB3aXRoaW4gcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjb3Vu
dCA9IDA7Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVj
dFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgiY3VwY2FrZSIsIHRydWUpKTsKLQotICAg
ICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgICAgICB0
aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
ICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFu
Y2FrZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJp
bWFyeUtleSwgMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoInBp
ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
dmFsdWUsICJwaWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnByaW1hcnlLZXksIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCJ6enoiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFj
aGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJx
Lm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMSIpCi0gICAgICAgIH0pOwot
Ci0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gc2luZ2xl
IGtleSByYW5nZSIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0g
MDsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3Rv
cmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1
cnNvcigicGFuY2FrZSIpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3IudmFsdWUsICJwYW5jYWtlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAzKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnNvci5jb250aW51ZSgicGllIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKLQotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjEi
KQotICAgICAgICB9KTsKLQotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAi
IC0gd2l0aGluIHNpbmdsZSBrZXkgcmFuZ2UsIHdpdGggc2V2ZXJhbCByZXN1bHRzIikuc3RlcChm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFy
IHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJp
bmRleCIpCi0gICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCJwaWUiKTsKLQotICAg
ICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgICAgICB0
aGlzLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
ICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGll
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5
S2V5LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSAx
OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJw
aWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1h
cnlLZXksIDQpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3Rl
ZCBjb3VudDogIiArIGNvdW50KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBjb3VudCsrOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVycm9yID0gZmFp
bCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjEiKQotICAgICAgICB9KTsKLQotCi0gICAgICAgIC8v
IFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCi0gICAgICAgIGRv
bmUoKTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGFjYTg0ODk3YzMzZGFjNzU2MjIyOGEwNGJkODI3YjI5YTA1ODhjNmYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDcgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSB1bmRlZmlu
ZWQgCi1QQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBuZXh0IAotUEFTUyBJREJDdXJzb3IuZGly
ZWN0aW9uIC0gcHJldiAKLVBBU1MgSURCQ3Vyc29yLmRpcmVjdGlvbiAtIG5leHR1bmlxdWUgCi1Q
QVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBwcmV2dW5pcXVlIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItZGlyZWN0aW9uLWluZGV4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjNiYzljOTYyN2EwMWUwZDNiYjA0Y2UyN2U5N2NjYmJlMWNjM2VjZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAt
IGluZGV4IC0gbmV4dCAKLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IC0gcHJldiAK
LVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IC0gbmV4dHVuaXF1ZSAKLVBBU1MgSURC
Q3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IC0gcHJldnVuaXF1ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4
LWtleXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3OGFmMzIyNTU4YjgxMzJiNzQ1YTg1ZTBlZDE2OWZm
OTVkYzIzY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWlu
ZGV4LWtleXJhbmdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAot
Ci1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0gbmV4dCAK
LVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2UgLSBwcmV2IAot
UEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZSAtIG5leHR1bmlx
dWUgCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0gcHJl
dnVuaXF1ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9u
LWluZGV4LWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiNzhhZjMyMjU1OGI4MTMyYjc0NWE4NWUwZWQxNjlmZjk1ZGMyM2NhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNT
IElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0gbmV4dCAKLVBBU1Mg
SURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2UgLSBwcmV2IAotUEFTUyBJ
REJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZSAtIG5leHR1bmlxdWUgCi1Q
QVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0gcHJldnVuaXF1
ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5n
ZS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiOTE2YzdkODg5
OTQxYjgyY2JkN2RkY2I2ZWE2MjdjNTBmZTlkN2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDgyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvciBk
aXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4K
LTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dCIsIGxldCBmb3Vu
ZCByZWNvcmQgYmUgdGhlIGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxs
IG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gaW5kZXgsIHRoZSByZWNv
cmQncyBrZXkgaXMgZXF1YWwgdG8gcG9zaXRpb24gYW5kIHRoZSByZWNvcmQncyB2YWx1ZSBpcyBn
cmVhdGVyIHRoYW4gb2JqZWN0IHN0b3JlIHBvc2l0aW9uIG9yIHRoZSByZWNvcmQncyBrZXkgaXMg
Z3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJl
Y3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiBy
ZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4K
LTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3Vy
Y2UgaXMgYW4gaW5kZXgsIHRoZSByZWNvcmQncyBrZXkgaXMgZXF1YWwgdG8gcG9zaXRpb24gYW5k
IHRoZSByZWNvcmQncyB2YWx1ZSBpcyBsZXNzIHRoYW4gb2JqZWN0IHN0b3JlIHBvc2l0aW9uIG9y
IHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFuIHBvc2l0aW9uLiI+Ci08bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJJZiByYW5nZSBpcyBkZWZpbmVkLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGluIHJh
bmdlLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiB0ZW1wIHJlY29yZCBpcyBkZWZpbmVk
LCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aG9zZSBr
ZXkgaXMgZXF1YWwgdG8gdGVtcCByZWNvcmQncyBrZXkuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9InJlY29yZHMgaXMgYWx3YXlzIHNvcnRlZCBpbiBhc2NlbmRpbmcga2V5IG9yZGVyLiBJbiB0
aGUgY2FzZSBvZiBzb3VyY2UgYmVpbmcgYW4gaW5kZXgsIHJlY29yZHMgaXMgc2Vjb25kYXJpbHkg
c29ydGVkIGluIGFzY2VuZGluZyB2YWx1ZSBvcmRlci4iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgcmVjb3JkcyA9IFsg
MTMzNywgIkFsaWNlIiwgIkJvYiIsICJCb2IiLCAiR3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsK
LSAgICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJl
dnVuaXF1ZSJdOwotICAgIHZhciB0ZXN0cyA9IHt9OwotCi0gICAgZGlyZWN0aW9ucy5mb3JFYWNo
KGZ1bmN0aW9uKGRpcikgewotICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSArICcgLSAnICsgZGlyKTsKLSAgICB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gaW5k
ZXhlZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRv
bSgpKTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiKTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJuYW1lIik7Ci0KLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHsgbmFtZTogcmVjb3Jkc1tpXSB9LCBpKTsKLSAgICB9OwotCi0gICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgZGIub25lcnJvciA9IGZhaWxfaGVscGVyKCJkYi5vbmVycm9y
Iik7Ci0KLQotICAgICAgICAvLyBUaGUgdGVzdHMKLSAgICAgICAgdGVzdGRpcignbmV4dCcsICAg
ICAgIFsnQWxpY2U6MScsICdCb2I6MicsICdCb2I6MycsICdHcmVnOjQnXSk7Ci0gICAgICAgIHRl
c3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWc6NCcsICAnQm9iOjMnLCAnQm9iOjInLCAnQWxpY2U6
MSddKTsKLSAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsnQWxpY2U6MScsICdCb2I6Mics
ICdHcmVnOjQnXSk7Ci0gICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWc6NCcsICAn
Qm9iOjInLCAnQWxpY2U6MSddKTsKLQotCi0gICAgICAgIC8vIFRlc3QgZnVuY3Rpb24KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdGRpcihkaXIsIGV4cGVjdCkgewotICAgICAgICAgICAgdmFyIGNvdW50
ID0gMDsKLSAgICAgICAgICAgIHZhciB0ID0gdGVzdHNbZGlyXTsKLSAgICAgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaWR4
Iikub3BlbkN1cnNvcihJREJLZXlSYW5nZS5ib3VuZCgiQUEiLCAiWloiKSwgZGlyKTsKLSAgICAg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgICAgIGlm
ICghY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIGV4
cGVjdC5sZW5ndGgsICJjdXJzb3IgcnVucyIpOwotICAgICAgICAgICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IudmFsdWUubmFtZSArICI6IiArIGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RbY291bnRdLCAi
Y3Vyc29yLnZhbHVlIik7Ci0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgICAg
ICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcnEub25l
cnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBlLnByZXZl
bnREZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJycS5vbmVycm9yIC0gIiArIGUubWVzc2FnZSk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICAvLyBGYWlsIGhhbmRs
aW5nCi0gICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFtZSkgewotICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBkaXJlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5zdGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5y
ZWFjaGVkKG5hbWUpOyB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9OwotICAgIH0KLSAg
ICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uYmxvY2tlZCcpOwot
ICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uZXJyb3InKTsKLTwv
c2NyaXB0PgotCi08ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2Uu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLWluZGV4LWtleXJhbmdlLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI5
MTZjN2Q4ODk5NDFiODJjYmQ3ZGRjYjZlYTYyN2M1MGZlOWQ3Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UuaHRtCisrKyAvZGV2L251
bGwKQEAgLTEsODIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yIGRp
cmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2U8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgot
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0IiwgbGV0IGZvdW5k
IHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwg
b2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0i
SWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBpbmRleCwgdGhlIHJlY29y
ZCdzIGtleSBpcyBlcXVhbCB0byBwb3NpdGlvbiBhbmQgdGhlIHJlY29yZCdzIHZhbHVlIGlzIGdy
ZWF0ZXIgdGhhbiBvYmplY3Qgc3RvcmUgcG9zaXRpb24gb3IgdGhlIHJlY29yZCdzIGtleSBpcyBn
cmVhdGVyIHRoYW4gcG9zaXRpb24uIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVj
dGlvbiBpcyAicHJldiIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJl
Y29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgot
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJj
ZSBpcyBhbiBpbmRleCwgdGhlIHJlY29yZCdzIGtleSBpcyBlcXVhbCB0byBwb3NpdGlvbiBhbmQg
dGhlIHJlY29yZCdzIHZhbHVlIGlzIGxlc3MgdGhhbiBvYmplY3Qgc3RvcmUgcG9zaXRpb24gb3Ig
dGhlIHJlY29yZCdzIGtleSBpcyBsZXNzIHRoYW4gcG9zaXRpb24uIj4KLTxsaW5rIHJlbD1hc3Nl
cnQgdGl0bGU9IklmIHJhbmdlIGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBrZXkgaXMgaW4gcmFu
Z2UuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRlbXAgcmVjb3JkIGlzIGRlZmluZWQs
IGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdob3NlIGtl
eSBpcyBlcXVhbCB0byB0ZW1wIHJlY29yZCdzIGtleS4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0icmVjb3JkcyBpcyBhbHdheXMgc29ydGVkIGluIGFzY2VuZGluZyBrZXkgb3JkZXIuIEluIHRo
ZSBjYXNlIG9mIHNvdXJjZSBiZWluZyBhbiBpbmRleCwgcmVjb3JkcyBpcyBzZWNvbmRhcmlseSBz
b3J0ZWQgaW4gYXNjZW5kaW5nIHZhbHVlIG9yZGVyLiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciByZWNvcmRzID0gWyAx
MzM3LCAiQWxpY2UiLCAiQm9iIiwgIkJvYiIsICJHcmVnIiwgIsOFa2UiLCBbIkFubmUiXSBdOwot
ICAgIHZhciBkaXJlY3Rpb25zID0gWyJuZXh0IiwgInByZXYiLCAibmV4dHVuaXF1ZSIsICJwcmV2
dW5pcXVlIl07Ci0gICAgdmFyIHRlc3RzID0ge307Ci0KLSAgICBkaXJlY3Rpb25zLmZvckVhY2go
ZnVuY3Rpb24oZGlyKSB7Ci0gICAgICAgIHRlc3RzW2Rpcl0gPSBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlICsgJyAtICcgKyBkaXIpOwotICAgIH0pOwotCi0gICAgdmFyIG9wZW5fcnEgPSBpbmRl
eGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1hdGgucmFuZG9t
KCkpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIHZhciBvYmpTdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIpOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4IiwgIm5hbWUiKTsKLQotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAg
ICBvYmpTdG9yZS5hZGQoeyBuYW1lOiByZWNvcmRzW2ldIH0sIGkpOwotICAgIH07Ci0KLSAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRiID0gZS50YXJn
ZXQucmVzdWx0OwotICAgICAgICBkYi5vbmVycm9yID0gZmFpbF9oZWxwZXIoImRiLm9uZXJyb3Ii
KTsKLQotCi0gICAgICAgIC8vIFRoZSB0ZXN0cwotICAgICAgICB0ZXN0ZGlyKCduZXh0JywgICAg
ICAgWydBbGljZToxJywgJ0JvYjoyJywgJ0JvYjozJywgJ0dyZWc6NCddKTsKLSAgICAgICAgdGVz
dGRpcigncHJldicsICAgICAgIFsnR3JlZzo0JywgICdCb2I6MycsICdCb2I6MicsICdBbGljZTox
J10pOwotICAgICAgICB0ZXN0ZGlyKCduZXh0dW5pcXVlJywgWydBbGljZToxJywgJ0JvYjoyJywg
J0dyZWc6NCddKTsKLSAgICAgICAgdGVzdGRpcigncHJldnVuaXF1ZScsIFsnR3JlZzo0JywgICdC
b2I6MicsICdBbGljZToxJ10pOwotCi0KLSAgICAgICAgLy8gVGVzdCBmdW5jdGlvbgotICAgICAg
ICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7Ci0gICAgICAgICAgICB2YXIgY291bnQg
PSAwOwotICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJdOwotICAgICAgICAgICAgdmFyIHJx
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpZHgi
KS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5kKCJBQSIsICJaWiIpLCBkaXIpOwotICAgICAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICAgICAgaWYg
KCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhw
ZWN0Lmxlbmd0aCwgImN1cnNvciBydW5zIik7Ci0gICAgICAgICAgICAgICAgICAgIHQuZG9uZSgp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci52YWx1ZS5uYW1lICsgIjoiICsgY3Vyc29yLnByaW1hcnlLZXksIGV4cGVjdFtjb3VudF0sICJj
dXJzb3IudmFsdWUiKTsKLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBycS5vbmVy
cm9yID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIGUucHJldmVu
dERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAg
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoInJxLm9uZXJyb3IgLSAiICsgZS5tZXNzYWdlKTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIC8vIEZhaWwgaGFuZGxp
bmcKLSAgICBmdW5jdGlvbiBmYWlsX2hlbHBlcihuYW1lKSB7Ci0gICAgICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0c1tkaXJdLnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJl
YWNoZWQobmFtZSk7IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH07Ci0gICAgfQotICAg
IG9wZW5fcnEub25ibG9ja2VkID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25ibG9ja2VkJyk7Ci0g
ICAgb3Blbl9ycS5vbmVycm9yID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25lcnJvcicpOwotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjNiYzljOTYyN2EwMWUwZDNiYjA0Y2UyN2U5N2NjYmJlMWNjM2VjZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotUEFTUyBJREJDdXJz
b3IgZGlyZWN0aW9uIC0gaW5kZXggLSBuZXh0IAotUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0g
aW5kZXggLSBwcmV2IAotUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBuZXh0dW5p
cXVlIAotUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBwcmV2dW5pcXVlIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1k
aXJlY3Rpb24taW5kZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LXByaXZhdGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwMjhmZGU3ZTdlZmMxNjIzNmUxZjkyMjc1MzA4N2Q2YWM5
OGFhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgt
cHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08dGl0bGU+SURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4PC90aXRsZT4KLTxsaW5rIHJl
bD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4
cnRoZSBPbWRhbCI+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3Bl
cmF0aW9uIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dCIs
IGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNh
dGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KLTxsaW5rIHJlbD1hc3Nl
cnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0
IHN0b3JlLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgotPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJwcmV2IiwgbGV0IGZvdW5kIHJl
Y29yZCBiZSB0aGUgbGFzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0
aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyc+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBw
b3NpdGlvbiBpcyBkZWZpbmVkLCBhbmQgc291cmNlIGlzIGFuIG9iamVjdCBzdG9yZSwgdGhlIHJl
Y29yZCdzIGtleSBpcyBsZXNzIHRoYW4gcG9zaXRpb24uIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IlNldCBjdXJzb3IncyBwb3NpdGlvbiB0byBmb3VuZCByZWNvcmQncyBrZXkuIElmIHNvdXJj
ZSBpcyBhbiBpbmRleCwgc2V0IGN1cnNvcidzIG9iamVjdCBzdG9yZSBwb3NpdGlvbiB0byBmb3Vu
ZCByZWNvcmQncyB2YWx1ZS4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidz
IGtleSB0byBmb3VuZCByZWNvcmQncyBrZXkuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIHJlY29yZHMgPSBbICJBbGlj
ZSIsICJCb2IiLCAiQm9iIiwgIkdyZWciIF07Ci0gICAgdmFyIGRpcmVjdGlvbnMgPSBbIm5leHQi
LCAicHJldiIsICJuZXh0dW5pcXVlIiwgInByZXZ1bmlxdWUiXTsKLSAgICB2YXIgdGVzdHMgPSB7
fTsKLQotICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsKLSAgICAgICAgdGVz
dHNbZGlyXSA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAnIC0gJyArIGRpcik7Ci0gICAg
fSk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGluZGV4ZWREQi5vcGVuKCJ0ZXN0ZGItIiArIG5ldyBE
YXRlKCkuZ2V0VGltZSgpICsgTWF0aC5yYW5kb20oKSk7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQu
cmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpZHgiLCAibmFtZSIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IG5hbWU6IHJlY29y
ZHNbaV0gfSwgaSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLm9uZXJy
b3IgPSBmYWlsX2hlbHBlcigiZGIub25lcnJvciIpOwotCi0KLSAgICAgICAgLy8gVGhlIHRlc3Rz
Ci0gICAgICAgIHRlc3RkaXIoJ25leHQnLCAgICAgICBbJ0FsaWNlOjAnLCAnQm9iOjEnLCAnQm9i
OjInLCAnR3JlZzozJ10pOwotICAgICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydHcmVnOjMn
LCAgJ0JvYjoyJywgJ0JvYjoxJywgJ0FsaWNlOjAnXSk7Ci0gICAgICAgIHRlc3RkaXIoJ25leHR1
bmlxdWUnLCBbJ0FsaWNlOjAnLCAnQm9iOjEnLCAnR3JlZzozJ10pOwotICAgICAgICB0ZXN0ZGly
KCdwcmV2dW5pcXVlJywgWydHcmVnOjMnLCAgJ0JvYjoxJywgJ0FsaWNlOjAnXSk7Ci0KLQotICAg
ICAgICAvLyBUZXN0IGZ1bmN0aW9uCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RkaXIoZGlyLCBleHBl
Y3QpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgdCA9IHRl
c3RzW2Rpcl07Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9i
amVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImlkeCIpLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIp
OwotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgZXhwZWN0Lmxlbmd0aCwgImN1cnNvciBydW5zIik7Ci0gICAgICAgICAgICAgICAgICAg
IHQuZG9uZSgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci52YWx1ZS5uYW1lICsgIjoiICsgY3Vyc29yLnByaW1hcnlLZXksIGV4cGVjdFtj
b3VudF0sICJjdXJzb3IudmFsdWUiKTsKLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBycS5vbmVycm9yID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
IGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigp
OwotICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoInJxLm9uZXJyb3IgLSAiICsgZS5t
ZXNzYWdlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIC8vIEZh
aWwgaGFuZGxpbmcKLSAgICBmdW5jdGlvbiBmYWlsX2hlbHBlcihuYW1lKSB7Ci0gICAgICAgIHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlv
bihkaXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0c1tkaXJdLnN0ZXAoZnVuY3Rpb24oKSB7IGFz
c2VydF91bnJlYWNoZWQobmFtZSk7IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH07Ci0g
ICAgfQotICAgIG9wZW5fcnEub25ibG9ja2VkID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25ibG9j
a2VkJyk7Ci0gICAgb3Blbl9ycS5vbmVycm9yID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25lcnJv
cicpOwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rp
b24taW5kZXguaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTAyOGZkZTdlN2Vm
YzE2MjM2ZTFmOTIyNzUzMDg3ZDZhYzk4YWEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1pbmRleC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXg8L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0
aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vyc29y
LWl0ZXJhdGlvbi1vcGVyYXRpb24iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0
aW9uIGlzICJuZXh0IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJl
Y29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgot
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJj
ZSBpcyBhbiBvYmplY3Qgc3RvcmUsIHRoZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBv
c2l0aW9uLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXYi
LCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNh
dGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KLTxsaW5rIHJlbD1hc3Nl
cnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0
IHN0b3JlLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGxlc3MgdGhhbiBwb3NpdGlvbi4iPgotPGxpbmsg
cmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidzIHBvc2l0aW9uIHRvIGZvdW5kIHJlY29yZCdz
IGtleS4gSWYgc291cmNlIGlzIGFuIGluZGV4LCBzZXQgY3Vyc29yJ3Mgb2JqZWN0IHN0b3JlIHBv
c2l0aW9uIHRvIGZvdW5kIHJlY29yZCdzIHZhbHVlLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxl
PSJTZXQgY3Vyc29yJ3Mga2V5IHRvIGZvdW5kIHJlY29yZCdzIGtleS4iPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgcmVj
b3JkcyA9IFsgIkFsaWNlIiwgIkJvYiIsICJCb2IiLCAiR3JlZyIgXTsKLSAgICB2YXIgZGlyZWN0
aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOwotICAg
IHZhciB0ZXN0cyA9IHt9OwotCi0gICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikg
ewotICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAn
ICsgZGlyKTsKLSAgICB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRl
c3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKLQotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKLSAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJuYW1lIik7Ci0KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHsgbmFtZTogcmVjb3Jkc1tpXSB9LCBpKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgZGIub25lcnJvciA9IGZhaWxfaGVscGVyKCJkYi5vbmVycm9yIik7Ci0KLQotICAgICAg
ICAvLyBUaGUgdGVzdHMKLSAgICAgICAgdGVzdGRpcignbmV4dCcsICAgICAgIFsnQWxpY2U6MCcs
ICdCb2I6MScsICdCb2I6MicsICdHcmVnOjMnXSk7Ci0gICAgICAgIHRlc3RkaXIoJ3ByZXYnLCAg
ICAgICBbJ0dyZWc6MycsICAnQm9iOjInLCAnQm9iOjEnLCAnQWxpY2U6MCddKTsKLSAgICAgICAg
dGVzdGRpcignbmV4dHVuaXF1ZScsIFsnQWxpY2U6MCcsICdCb2I6MScsICdHcmVnOjMnXSk7Ci0g
ICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWc6MycsICAnQm9iOjEnLCAnQWxpY2U6
MCddKTsKLQotCi0gICAgICAgIC8vIFRlc3QgZnVuY3Rpb24KLSAgICAgICAgZnVuY3Rpb24gdGVz
dGRpcihkaXIsIGV4cGVjdCkgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAg
ICAgIHZhciB0ID0gdGVzdHNbZGlyXTsKLSAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaWR4Iikub3BlbkN1cnNvcih1
bmRlZmluZWQsIGRpcik7Ci0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikgewotICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3QubGVuZ3RoLCAiY3Vyc29yIHJ1bnMiKTsKLSAgICAg
ICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLm5hbWUgKyAiOiIgKyBjdXJzb3IucHJpbWFy
eUtleSwgZXhwZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIpOwotICAgICAgICAgICAgICAgIGNv
dW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgICAgIGUuc3Rv
cFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgicnEub25l
cnJvciAtICIgKyBlLm1lc3NhZ2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9
OwotCi0gICAgLy8gRmFpbCBoYW5kbGluZwotICAgIGZ1bmN0aW9uIGZhaWxfaGVscGVyKG5hbWUp
IHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZGlyZWN0aW9ucy5m
b3JFYWNoKGZ1bmN0aW9uKGRpcikgewotICAgICAgICAgICAgICAgIHRlc3RzW2Rpcl0uc3RlcChm
dW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfTsKLSAgICB9Ci0gICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hlbHBlcign
b3Blbl9ycS5vbmJsb2NrZWQnKTsKLSAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hlbHBlcign
b3Blbl9ycS5vbmVycm9yJyk7Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGly
ZWN0aW9uLW9iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1NjAyOGNlZjk1NjdhODgwNzQ3MTk0ZDc0
ZGZkNGMzMTA0OGQ3NDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLW9iamVjdHN0b3JlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBA
QAotCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgLSBuZXh0IAotUEFT
UyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gcHJldiAKLVBBU1MgSURCQ3Vy
c29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAtIG5leHR1bmlxdWUgCi1QQVNTIElEQkN1cnNv
ciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgLSBwcmV2dW5pcXVlIAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2Jq
ZWN0c3RvcmUta2V5cmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQzODgxYWYwNWJiMzNiYTA4
OGNlYjMzMzczZGI3NGE5NDdjYzMwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
ci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBz
dG9yZSB3aXRoIGtleXJhbmdlIC0gbmV4dCAKLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9i
amVjdCBzdG9yZSB3aXRoIGtleXJhbmdlIC0gcHJldiAKLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlv
biAtIG9iamVjdCBzdG9yZSB3aXRoIGtleXJhbmdlIC0gbmV4dHVuaXF1ZSAKLVBBU1MgSURCQ3Vy
c29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSB3aXRoIGtleXJhbmdlIC0gcHJldnVuaXF1ZSAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9i
amVjdHN0b3JlLWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNDM4ODFhZjA1YmIzM2JhMDg4Y2ViMzMzNzNkYjc0YTk0N2NjMzAxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1r
ZXlyYW5nZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBA
QAotCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5n
ZSAtIG5leHQgCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0aCBr
ZXlyYW5nZSAtIHByZXYgCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUg
d2l0aCBrZXlyYW5nZSAtIG5leHR1bmlxdWUgCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBv
YmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIHByZXZ1bmlxdWUgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmpl
Y3RzdG9yZS1rZXlyYW5nZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YWU3ZWY1MmNjYzViZDU0ZWFm
NGMwMGRjYWQxY2FiODEyY2UwZDBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw3NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IgZGly
ZWN0aW9uIC0gb2JqZWN0IHN0b3JlIHdpdGgga2V5cmFuZ2U8L3RpdGxlPgotPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhl
IE9tZGFsIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRp
b24iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0IiwgbGV0
IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNm
eSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgotPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJwcmV2IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgbGFz
dCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJl
cXVpcmVtZW50cyc+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiByYW5nZSBpcyBkZWZpbmVk
LCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGluIHJhbmdlLiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciByZWNvcmRzID0gWyAx
MzM3LCAiQWxpY2UiLCAiQm9iIiwgIkdyZWciLCAiw4VrZSIsIFsiQW5uZSJdIF07Ci0gICAgdmFy
IGRpcmVjdGlvbnMgPSBbIm5leHQiLCAicHJldiIsICJuZXh0dW5pcXVlIiwgInByZXZ1bmlxdWUi
XTsKLSAgICB2YXIgdGVzdHMgPSB7fTsKLQotICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlv
bihkaXIpIHsKLSAgICAgICAgdGVzdHNbZGlyXSA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAnIC0gJyArIGRpcik7Ci0gICAgfSk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGluZGV4ZWREQi5v
cGVuKCJ0ZXN0ZGItIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTWF0aC5yYW5kb20oKSk7Ci0K
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFy
IG9ialN0b3JlID0gZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0K
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0sIHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRiID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5vbmVycm9yID0gZmFpbF9oZWxwZXIoImRiLm9uZXJy
b3IiKTsKLQotCi0gICAgICAgIC8vIFRoZSB0ZXN0cwotICAgICAgICB0ZXN0ZGlyKCduZXh0Jywg
ICAgICAgWydBbGljZScsICdCb2InLCAnR3JlZyddKTsKLSAgICAgICAgdGVzdGRpcigncHJldics
ICAgICAgIFsnR3JlZycsICdCb2InLCAnQWxpY2UnXSk7Ci0gICAgICAgIHRlc3RkaXIoJ25leHR1
bmlxdWUnLCBbJ0FsaWNlJywgJ0JvYicsICdHcmVnJ10pOwotICAgICAgICB0ZXN0ZGlyKCdwcmV2
dW5pcXVlJywgWydHcmVnJywgJ0JvYicsICdBbGljZSddKTsKLQotCi0gICAgICAgIC8vIFRlc3Qg
ZnVuY3Rpb24KLSAgICAgICAgZnVuY3Rpb24gdGVzdGRpcihkaXIsIGV4cGVjdCkgewotICAgICAg
ICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciB0ID0gdGVzdHNbZGlyXTsKLSAg
ICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRl
c3QiKS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5kKCJBQSIsICJaWiIpLCBkaXIpOwotICAg
ICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICAgICAg
aWYgKCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwg
ZXhwZWN0Lmxlbmd0aCwgImN1cnNvciBydW5zIik7Ci0gICAgICAgICAgICAgICAgICAgIHQuZG9u
ZSgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgZXhwZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIpOwotICAgICAgICAgICAg
ICAgIGNvdW50Kys7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgICAg
IGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgi
cnEub25lcnJvciAtICIgKyBlLm1lc3NhZ2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0K
LSAgICB9OwotCi0gICAgLy8gRmFpbCBoYW5kbGluZwotICAgIGZ1bmN0aW9uIGZhaWxfaGVscGVy
KG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZGlyZWN0
aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgewotICAgICAgICAgICAgICAgIHRlc3RzW2Rpcl0u
c3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgfTsKLSAgICB9Ci0gICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hl
bHBlcignb3Blbl9ycS5vbmJsb2NrZWQnKTsKLSAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hl
bHBlcignb3Blbl9ycS5vbmVycm9yJyk7Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+IDwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5n
ZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhZTdlZjUyY2NjNWJkNTRlYWY0
YzAwZGNhZDFjYWI4MTJjZTBkMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3It
ZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDc3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBv
YmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgot
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Ci08bGlu
ayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgIm5leHQiLCBsZXQgZm91bmQgcmVj
b3JkIGJlIHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0
aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyc+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBk
aXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBp
biByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRz
Jz4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHJhbmdlIGlzIGRlZmluZWQsIHRoZSByZWNv
cmQncyBrZXkgaXMgaW4gcmFuZ2UuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIHJlY29yZHMgPSBbIDEzMzcsICJBbGlj
ZSIsICJCb2IiLCAiR3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsKLSAgICB2YXIgZGlyZWN0aW9u
cyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOwotICAgIHZh
ciB0ZXN0cyA9IHt9OwotCi0gICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgewot
ICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAnICsg
ZGlyKTsKLSAgICB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRlc3Rk
Yi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKLQotICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgb2JqU3RvcmUg
PSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSwgcmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0gICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIub25lcnJvciIpOwotCi0K
LSAgICAgICAgLy8gVGhlIHRlc3RzCi0gICAgICAgIHRlc3RkaXIoJ25leHQnLCAgICAgICBbJ0Fs
aWNlJywgJ0JvYicsICdHcmVnJ10pOwotICAgICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydH
cmVnJywgJ0JvYicsICdBbGljZSddKTsKLSAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsn
QWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7Ci0gICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBb
J0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOwotCi0KLSAgICAgICAgLy8gVGVzdCBmdW5jdGlvbgot
ICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7Ci0gICAgICAgICAgICB2YXIg
Y291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJdOwotICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5D
dXJzb3IoSURCS2V5UmFuZ2UuYm91bmQoIkFBIiwgIlpaIiksIGRpcik7Ci0gICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICBpZiAoIWN1cnNv
cikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3QubGVu
Z3RoLCAiY3Vyc29yIHJ1bnMiKTsKLSAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7Ci0gICAgICAgICAgICAgICAgY291bnQr
KzsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgZS5zdG9wUHJv
cGFnYXRpb24oKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJycS5vbmVycm9y
IC0gIiArIGUubWVzc2FnZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH07Ci0K
LSAgICAvLyBGYWlsIGhhbmRsaW5nCi0gICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFtZSkgewot
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBkaXJlY3Rpb25zLmZvckVh
Y2goZnVuY3Rpb24oZGlyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5zdGVwKGZ1bmN0
aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9OwotICAgIH0KLSAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVyKCdvcGVu
X3JxLm9uYmxvY2tlZCcpOwotICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVyKCdvcGVu
X3JxLm9uZXJyb3InKTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rp
b24tb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1NjAyOGNlZjk1Njdh
ODgwNzQ3MTk0ZDc0ZGZkNGMzMTA0OGQ3NDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVj
dCBzdG9yZSAtIG5leHQgCi1QQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUg
LSBwcmV2IAotUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gbmV4dHVu
aXF1ZSAKLVBBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAtIHByZXZ1bmlx
dWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUtcHJp
dmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWY5ODE1ZDBhODU5YmM2
MzVkZTAwNGU4YWRmM2IzZmQ0YzIxZDE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IgZGlyZWN0aW9u
IC0gb2JqZWN0IHN0b3JlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86
b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08bGluayByZWw9
aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KLTxsaW5rIHJlbD1hc3Nl
cnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dCIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhl
IGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dp
bmcgcmVxdWlyZW1lbnRzJz4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlz
IGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0aGUgcmVjb3JkJ3Mga2V5
IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYg
ZGlyZWN0aW9uIGlzICJwcmV2IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgbGFzdCByZWNvcmQg
aW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50
cyc+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZpbmVkLCBhbmQg
c291cmNlIGlzIGFuIG9iamVjdCBzdG9yZSwgdGhlIHJlY29yZCdzIGtleSBpcyBsZXNzIHRoYW4g
cG9zaXRpb24uIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlNldCBjdXJzb3IncyBwb3NpdGlv
biB0byBmb3VuZCByZWNvcmQncyBrZXkuIElmIHNvdXJjZSBpcyBhbiBpbmRleCwgc2V0IGN1cnNv
cidzIG9iamVjdCBzdG9yZSBwb3NpdGlvbiB0byBmb3VuZCByZWNvcmQncyB2YWx1ZS4iPgotPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidzIGtleSB0byBmb3VuZCByZWNvcmQncyBr
ZXkuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci0gICAgdmFyIHJlY29yZHMgPSBbICJBbGljZSIsICJCb2IiLCAiR3JlZyIgXTsKLSAg
ICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVu
aXF1ZSJdOwotICAgIHZhciB0ZXN0cyA9IHt9OwotCi0gICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1
bmN0aW9uKGRpcikgewotICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSArICcgLSAnICsgZGlyKTsKLSAgICB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gaW5kZXhl
ZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgp
KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSwgcmVjb3Jkc1tpXSk7Ci0gICAgfTsK
LQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIu
b25lcnJvciIpOwotCi0KLSAgICAgICAgLy8gVGhlIHRlc3RzCi0gICAgICAgIHRlc3RkaXIoJ25l
eHQnLCAgICAgICBbJ0FsaWNlJywgJ0JvYicsICdHcmVnJ10pOwotICAgICAgICB0ZXN0ZGlyKCdw
cmV2JywgICAgICAgWydHcmVnJywgJ0JvYicsICdBbGljZSddKTsKLSAgICAgICAgdGVzdGRpcign
bmV4dHVuaXF1ZScsIFsnQWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7Ci0gICAgICAgIHRlc3RkaXIo
J3ByZXZ1bmlxdWUnLCBbJ0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOwotCi0KLSAgICAgICAgLy8g
VGVzdCBmdW5jdGlvbgotICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7Ci0g
ICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJd
OwotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9y
ZSgidGVzdCIpLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIpOwotICAgICAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0Lmxlbmd0aCwg
ImN1cnNvciBydW5zIik7Ci0gICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgZXhw
ZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIpOwotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0g
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0
aW9uKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgicnEub25lcnJvciAtICIg
KyBlLm1lc3NhZ2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAg
Ly8gRmFpbCBoYW5kbGluZwotICAgIGZ1bmN0aW9uIGZhaWxfaGVscGVyKG5hbWUpIHsKLSAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1
bmN0aW9uKGRpcikgewotICAgICAgICAgICAgICAgIHRlc3RzW2Rpcl0uc3RlcChmdW5jdGlvbigp
IHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fTsKLSAgICB9Ci0gICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hlbHBlcignb3Blbl9ycS5v
bmJsb2NrZWQnKTsKLSAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hlbHBlcignb3Blbl9ycS5v
bmVycm9yJyk7Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9i
amVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE5Zjk4MTVkMGE4NTliYzYzNWRlMDA0ZThhZGYzYjNmZDRjMjFkMTQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLmh0bQorKysgL2Rl
di9udWxsCkBAIC0xLDgwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNv
ciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmU8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhy
ZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4K
LTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3
LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgotPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0IiwgbGV0IGZvdW5kIHJl
Y29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2Yg
dGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYg
cG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBvYmplY3Qgc3RvcmUsIHRoZSBy
ZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Ci08bGluayByZWw9YXNzZXJ0
IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBs
YXN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcg
cmVxdWlyZW1lbnRzJz4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRl
ZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0aGUgcmVjb3JkJ3Mga2V5IGlz
IGxlc3MgdGhhbiBwb3NpdGlvbi4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNv
cidzIHBvc2l0aW9uIHRvIGZvdW5kIHJlY29yZCdzIGtleS4gSWYgc291cmNlIGlzIGFuIGluZGV4
LCBzZXQgY3Vyc29yJ3Mgb2JqZWN0IHN0b3JlIHBvc2l0aW9uIHRvIGZvdW5kIHJlY29yZCdzIHZh
bHVlLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJTZXQgY3Vyc29yJ3Mga2V5IHRvIGZvdW5k
IHJlY29yZCdzIGtleS4iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgcmVjb3JkcyA9IFsgIkFsaWNlIiwgIkJvYiIsICJH
cmVnIiBdOwotICAgIHZhciBkaXJlY3Rpb25zID0gWyJuZXh0IiwgInByZXYiLCAibmV4dHVuaXF1
ZSIsICJwcmV2dW5pcXVlIl07Ci0gICAgdmFyIHRlc3RzID0ge307Ci0KLSAgICBkaXJlY3Rpb25z
LmZvckVhY2goZnVuY3Rpb24oZGlyKSB7Ci0gICAgICAgIHRlc3RzW2Rpcl0gPSBhc3luY190ZXN0
KGRvY3VtZW50LnRpdGxlICsgJyAtICcgKyBkaXIpOwotICAgIH0pOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1h
dGgucmFuZG9tKCkpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5n
dGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldLCByZWNvcmRzW2ld
KTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgZGIub25lcnJvciA9IGZhaWxf
aGVscGVyKCJkYi5vbmVycm9yIik7Ci0KLQotICAgICAgICAvLyBUaGUgdGVzdHMKLSAgICAgICAg
dGVzdGRpcignbmV4dCcsICAgICAgIFsnQWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7Ci0gICAgICAg
IHRlc3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOwotICAgICAg
ICB0ZXN0ZGlyKCduZXh0dW5pcXVlJywgWydBbGljZScsICdCb2InLCAnR3JlZyddKTsKLSAgICAg
ICAgdGVzdGRpcigncHJldnVuaXF1ZScsIFsnR3JlZycsICdCb2InLCAnQWxpY2UnXSk7Ci0KLQot
ICAgICAgICAvLyBUZXN0IGZ1bmN0aW9uCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RkaXIoZGlyLCBl
eHBlY3QpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB2YXIgdCA9
IHRlc3RzW2Rpcl07Ci0gICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
Lm9iamVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcih1bmRlZmluZWQsIGRpcik7Ci0gICAgICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICBpZiAo
IWN1cnNvcikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBl
Y3QubGVuZ3RoLCAiY3Vyc29yIHJ1bnMiKTsKLSAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnZhbHVlLCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7Ci0gICAgICAgICAgICAgICAg
Y291bnQrKzsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgZS5z
dG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJycS5v
bmVycm9yIC0gIiArIGUubWVzc2FnZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAg
IH07Ci0KLSAgICAvLyBGYWlsIGhhbmRsaW5nCi0gICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFt
ZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBkaXJlY3Rpb25z
LmZvckVhY2goZnVuY3Rpb24oZGlyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5zdGVw
KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9OwotICAgIH0KLSAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVy
KCdvcGVuX3JxLm9uYmxvY2tlZCcpOwotICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVy
KCdvcGVuX3JxLm9uZXJyb3InKTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz4gPC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1k
aXJlY3Rpb24tcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjYTg0ODk3YzMzZGFjNzU2MjIyOGEwNGJkODI3YjI5
YTA1ODhjNmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0KLVBBU1Mg
SURCQ3Vyc29yLmRpcmVjdGlvbiAtIHVuZGVmaW5lZCAKLVBBU1MgSURCQ3Vyc29yLmRpcmVjdGlv
biAtIG5leHQgCi1QQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBwcmV2IAotUEFTUyBJREJDdXJz
b3IuZGlyZWN0aW9uIC0gbmV4dHVuaXF1ZSAKLVBBU1MgSURCQ3Vyc29yLmRpcmVjdGlvbiAtIHBy
ZXZ1bmlxdWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTg5ZDU2ZjU0Yzc5YzJhODI4YzQ3NjQ4NDg3MGM5MWZh
NjMzYjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1wcml2
YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTx0aXRsZT5JREJDdXJzb3IuZGlyZWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotCi0gICAgZnVuY3Rpb24gY3Vyc29yX2RpcmVjdGlvbihjb25zdGFudCwgZGlyKQotICAgIHsK
LSAgICAgICAgdmFyIGRiLAotICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtICIgKyBkaXIpLAotICAgICAgICAgIGV4cGVjdGVkID0gZGlyID8gZGlyIDogIm5leHQi
OwotCi0gICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0KLSAgICAgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0Iik7Ci0KLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICJrZXkiKTsK
LSAgICAgICAgfTsKLQotICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3JfcnEsIGNvdW50ID0gMDsKLSAgICAg
ICAgICAgIHZhciBvcyA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0gICAgICAgICAgICBpZiAoZGlyKQotICAgICAg
ICAgICAgICAgIGN1cnNvcl9ycSA9IG9zLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGN1cnNvcl9ycSA9IG9zLm9wZW5DdXJzb3Io
KTsKLQotICAgICAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owot
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuZGlyZWN0aW9uLCBjb25zdGFu
dCwgJ2RpcmVjdGlvbiBjb25zdGFudCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLmRpcmVjdGlvbiwgZXhwZWN0ZWQsICdkaXJlY3Rpb24nKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAnZGlyZWN0aW9uJyk7Ci0KLSAgICAgICAgICAgICAg
ICBjb3VudCsrOwotICAgICAgICAgICAgICAgIGlmIChjb3VudCA+PSAyKQotICAgICAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB2YXIgY3Vy
c29yX3JxMiA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcih1bmRlZmluZWQsIGNvbnN0YW50KTsKLQotICAgICAgICAgICAgY3Vyc29y
X3JxMi5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLmRpcmVjdGlvbiwgY29uc3RhbnQsICdkaXJlY3Rpb24gY29uc3RhbnQg
KHNlY29uZCB0cnkpJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuZGly
ZWN0aW9uLCBleHBlY3RlZCwgJ2RpcmVjdGlvbiAoc2Vjb25kIHRyeSknKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAnZGlyZWN0aW9uJyk7Ci0KLSAgICAgICAgICAg
ICAgICBjb3VudCsrOwotICAgICAgICAgICAgICAgIGlmIChjb3VudCA+PSAyKQotICAgICAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIH0pOwotICAg
IH0KLQotICAgIGN1cnNvcl9kaXJlY3Rpb24oIm5leHQiKTsKLSAgICBjdXJzb3JfZGlyZWN0aW9u
KCJuZXh0IiwgICAgICAgIm5leHQiKTsKLSAgICBjdXJzb3JfZGlyZWN0aW9uKCJwcmV2IiwgICAg
ICAgInByZXYiKTsKLSAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0dW5pcXVlIiwgIm5leHR1bmlx
dWUiKTsKLSAgICBjdXJzb3JfZGlyZWN0aW9uKCJwcmV2dW5pcXVlIiwgInByZXZ1bmlxdWUiKTsK
LQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24uaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE4OWQ1NmY1NGM3OWMyYTgyOGM0NzY0ODQ4
NzBjOTFmYTYzM2I4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rp
b24uaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
dGl0bGU+SURCQ3Vyc29yLmRpcmVjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LQotICAgIGZ1bmN0aW9uIGN1cnNvcl9kaXJlY3Rpb24oY29uc3RhbnQsIGRpcikKLSAgICB7Ci0g
ICAgICAgIHZhciBkYiwKLSAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSAr
ICIgLSAiICsgZGlyKSwKLSAgICAgICAgICBleHBlY3RlZCA9IGRpciA/IGRpciA6ICJuZXh0IjsK
LQotICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgidGVzdCIpOwotCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAia2V5Iik7Ci0g
ICAgICAgIH07Ci0KLSAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yX3JxLCBjb3VudCA9IDA7Ci0gICAgICAg
ICAgICB2YXIgb3MgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOwotICAgICAgICAgICAgaWYgKGRpcikKLSAgICAgICAg
ICAgICAgICBjdXJzb3JfcnEgPSBvcy5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgZGlyKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjdXJzb3JfcnEgPSBvcy5vcGVuQ3Vyc29yKCk7
Ci0KLSAgICAgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQot
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRpcmVjdGlvbiwgY29uc3RhbnQs
ICdkaXJlY3Rpb24gY29uc3RhbnQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci5kaXJlY3Rpb24sIGV4cGVjdGVkLCAnZGlyZWN0aW9uJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2RpcmVjdGlvbicpOwotCi0gICAgICAgICAgICAgICAg
Y291bnQrKzsKLSAgICAgICAgICAgICAgICBpZiAoY291bnQgPj0gMikKLSAgICAgICAgICAgICAg
ICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgdmFyIGN1cnNv
cl9ycTIgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9wZW5DdXJzb3IodW5kZWZpbmVkLCBjb25zdGFudCk7Ci0KLSAgICAgICAgICAgIGN1cnNvcl9y
cTIub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci5kaXJlY3Rpb24sIGNvbnN0YW50LCAnZGlyZWN0aW9uIGNvbnN0YW50IChz
ZWNvbmQgdHJ5KScpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRpcmVj
dGlvbiwgZXhwZWN0ZWQsICdkaXJlY3Rpb24gKHNlY29uZCB0cnkpJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2RpcmVjdGlvbicpOwotCi0gICAgICAgICAgICAg
ICAgY291bnQrKzsKLSAgICAgICAgICAgICAgICBpZiAoY291bnQgPj0gMikKLSAgICAgICAgICAg
ICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICB9KTsKLSAgICB9
Ci0KLSAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0Iik7Ci0gICAgY3Vyc29yX2RpcmVjdGlvbigi
bmV4dCIsICAgICAgICJuZXh0Iik7Ci0gICAgY3Vyc29yX2RpcmVjdGlvbigicHJldiIsICAgICAg
ICJwcmV2Iik7Ci0gICAgY3Vyc29yX2RpcmVjdGlvbigibmV4dHVuaXF1ZSIsICJuZXh0dW5pcXVl
Iik7Ci0gICAgY3Vyc29yX2RpcmVjdGlvbigicHJldnVuaXF1ZSIsICJwcmV2dW5pcXVlIik7Ci0K
LTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Ita2V5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlMTNjMTNkNzA2MzlkNmM5NWFiYTAz
ZTdhOWE4ZjYzYmE4YThiMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Ita2V5
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1QQVNTIElEQkN1
cnNvci5rZXkgLSAxIAotUEFTUyBJREJDdXJzb3Iua2V5IC0ga2V5IAotUEFTUyBJREJDdXJzb3Iu
a2V5IC0gbXksa2V5IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlMTNjMTNkNzA2MzlkNmM5NWFiYTAzZTdh
OWE4ZjYzYmE4YThiMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Ita2V5LXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBBU1Mg
SURCQ3Vyc29yLmtleSAtIDEgCi1QQVNTIElEQkN1cnNvci5rZXkgLSBrZXkgCi1QQVNTIElEQkN1
cnNvci5rZXkgLSBteSxrZXkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlY2IyODI3NTgyMTRkOGE0ZWM4ZGNjNDMzNDhjMTcxMDg2Mjhh
MDIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS1wcml2YXRlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5J
REJDdXJzb3Iua2V5PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgZnVuY3Rp
b24gY3Vyc29yX2tleShrZXkpCi0gICAgewotICAgICAgICB2YXIgZGIsCi0gICAgICAgICAgdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGtleSk7Ci0KLSAgICAgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0KLSAg
ICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsIGtleSk7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIGN1cnNvcl9ycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgImRhdGEiLCAicHJlcXVpc2l0ZSBjdXJzb3IudmFsdWUiKTsKLQotICAgICAg
ICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGN1cnNvci5rZXksIGtleSwgJ2tleScpOwotICAg
ICAgICAgICAgICAgIGFzc2VydF9yZWFkb25seShjdXJzb3IsICdrZXknKTsKLQotICAgICAgICAg
ICAgICAgIGlmIChrZXkgaW5zdGFuY2VvZiBBcnJheSkgewotICAgICAgICAgICAgICAgICAgICBj
dXJzb3Iua2V5LnB1c2goIm5ldyIpOwotICAgICAgICAgICAgICAgICAgICBrZXkucHVzaCgibmV3
Iik7Ci0KLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLmtleSwg
a2V5LCAna2V5IGFmdGVyIGFycmF5IHB1c2gnKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBC
dXQgd2UgY2FuIG5vdCBjaGFuZ2Uga2V5IChsaWtlIHJlYWRvbmx5LCBqdXN0IGEgYml0IGRpZmZl
cmVudCkKLSAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmtleSA9IDEwOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhjdXJzb3Iua2V5LCBrZXksICdrZXkgYWZ0ZXIgYXNz
aWdubWVudCcpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHQuZG9uZSgp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGN1cnNvcl9rZXko
MSk7Ci0gICAgY3Vyc29yX2tleSgia2V5Iik7Ci0gICAgY3Vyc29yX2tleShbIm15IiwgImtleSJd
KTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXkuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Ita2V5Lmh0bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWNiMjgyNzU4MjE0ZDhhNGVjOGRjYzQzMzQ4YzE3MTA4NjI4
YTAyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXkuaHRtCisrKyAvZGV2
L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29y
LmtleTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIGZ1bmN0aW9uIGN1cnNv
cl9rZXkoa2V5KQotICAgIHsKLSAgICAgICAgdmFyIGRiLAotICAgICAgICAgIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBrZXkpOwotCi0gICAgICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOwotCi0gICAgICAgICAg
ICBvYmpTdG9yZS5hZGQoImRhdGEiLCBrZXkpOwotICAgICAgICB9OwotCi0gICAgICAgIG9wZW5f
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFy
IGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFs
dWUsICJkYXRhIiwgInByZXF1aXNpdGUgY3Vyc29yLnZhbHVlIik7Ci0KLSAgICAgICAgICAgICAg
ICBhc3NlcnRfa2V5X2VxdWFscyhjdXJzb3Iua2V5LCBrZXksICdrZXknKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAna2V5Jyk7Ci0KLSAgICAgICAgICAgICAgICBp
ZiAoa2V5IGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmtl
eS5wdXNoKCJuZXciKTsKLSAgICAgICAgICAgICAgICAgICAga2V5LnB1c2goIm5ldyIpOwotCi0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGN1cnNvci5rZXksIGtleSwgJ2tl
eSBhZnRlciBhcnJheSBwdXNoJyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gQnV0IHdlIGNh
biBub3QgY2hhbmdlIGtleSAobGlrZSByZWFkb25seSwganVzdCBhIGJpdCBkaWZmZXJlbnQpCi0g
ICAgICAgICAgICAgICAgICAgIGN1cnNvci5rZXkgPSAxMDsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLmtleSwga2V5LCAna2V5IGFmdGVyIGFzc2lnbm1lbnQn
KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBjdXJzb3Jfa2V5KDEpOwotICAg
IGN1cnNvcl9rZXkoImtleSIpOwotICAgIGN1cnNvcl9rZXkoWyJteSIsICJrZXkiXSk7Ci0KLTwv
c2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1wcmltYXJ5a2V5
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIwNWI2ZmI4NmE5
ODQyMmRjMTFkMzBkMGZkZmFhNzE0MWY2YzBmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvci1wcmltYXJ5a2V5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAs
MCBAQAotCi1QQVNTIElEQkN1cnNvci5wcmltYXJ5S2V5IC0gMSAKLVBBU1MgSURCQ3Vyc29yLnBy
aW1hcnlLZXkgLSBrZXkgCi1QQVNTIElEQkN1cnNvci5wcmltYXJ5S2V5IC0gbXksa2V5IAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1w
cmltYXJ5a2V5LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIwNWI2ZmI4NmE5ODQyMmRjMTFkMzBkMGZkZmFh
NzE0MWY2YzBmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1wcmltYXJ5a2V5
LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBB
U1MgSURCQ3Vyc29yLnByaW1hcnlLZXkgLSAxIAotUEFTUyBJREJDdXJzb3IucHJpbWFyeUtleSAt
IGtleSAKLVBBU1MgSURCQ3Vyc29yLnByaW1hcnlLZXkgLSBteSxrZXkgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXByaW1hcnlrZXkt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItcHJpbWFyeWtleS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMwNzI4MzlhMDk2OTJmYTkzZmExNDcwZDY5MTA5YTdlNGRhNjIxNGEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IucHJp
bWFyeUtleTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0Bv
cGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIGZ1bmN0aW9uIGN1
cnNvcl9wcmltYXJ5a2V5KGtleSkKLSAgICB7Ci0gICAgICAgIHZhciBkYiwKLSAgICAgICAgICB0
ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsga2V5KTsKLQotICAgICAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAg
ICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKLSAg
ICAgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKTsKLQotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKCJkYXRhIiwga2V5KTsKLSAgICAgICAgfTsKLQotICAgICAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3Bl
bkN1cnNvcigpOwotCi0gICAgICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRh
dGEiLCAicHJlcXVpc2l0ZSBjdXJzb3IudmFsdWUiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci5rZXksICJkYXRhIiwgInByZXF1aXNpdGUgY3Vyc29yLmtleSIpOwotCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIGtleSwg
J3ByaW1hcnlLZXknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAn
cHJpbWFyeUtleScpOwotCi0gICAgICAgICAgICAgICAgaWYgKGtleSBpbnN0YW5jZW9mIEFycmF5
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnNvci5wcmltYXJ5S2V5LnB1c2goIm5ldyIpOwot
ICAgICAgICAgICAgICAgICAgICBrZXkucHVzaCgibmV3Iik7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIGtleSwgJ3ByaW1hcnlLZXkg
YWZ0ZXIgYXJyYXkgcHVzaCcpOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBjYW4g
bm90IGNoYW5nZSBrZXkgKGxpa2UgcmVhZG9ubHksIGp1c3QgYSBiaXQgZGlmZmVyZW50KQotICAg
ICAgICAgICAgICAgICAgICBjdXJzb3Iua2V5ID0gMTA7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9rZXlfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBrZXksICdrZXkgYWZ0ZXIgYXNzaWdu
bWVudCcpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGN1cnNvcl9wcmltYXJ5
a2V5KDEpOwotICAgIGN1cnNvcl9wcmltYXJ5a2V5KCJrZXkiKTsKLSAgICBjdXJzb3JfcHJpbWFy
eWtleShbIm15IiwgImtleSJdKTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
ci1wcmltYXJ5a2V5Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLXByaW1hcnlrZXkuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDcy
ODM5YTA5NjkyZmE5M2ZhMTQ3MGQ2OTEwOWE3ZTRkYTYyMTRhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yLXByaW1hcnlrZXkuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnByaW1hcnlLZXk8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICBmdW5jdGlvbiBjdXJzb3JfcHJpbWFyeWtl
eShrZXkpCi0gICAgewotICAgICAgICB2YXIgZGIsCi0gICAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGtleSk7Ci0KLSAgICAgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKLSAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0gICAgICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7Ci0KLSAgICAgICAgICAgIG9ialN0b3JlLmFk
ZCgiZGF0YSIsIGtleSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgi
aW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQot
ICAgICAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIiwgInByZXF1aXNp
dGUgY3Vyc29yLnZhbHVlIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
a2V5LCAiZGF0YSIsICJwcmVxdWlzaXRlIGN1cnNvci5rZXkiKTsKLQotICAgICAgICAgICAgICAg
IGFzc2VydF9rZXlfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBrZXksICdwcmltYXJ5S2V5Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ3ByaW1hcnlLZXknKTsK
LQotICAgICAgICAgICAgICAgIGlmIChrZXkgaW5zdGFuY2VvZiBBcnJheSkgewotICAgICAgICAg
ICAgICAgICAgICBjdXJzb3IucHJpbWFyeUtleS5wdXNoKCJuZXciKTsKLSAgICAgICAgICAgICAg
ICAgICAga2V5LnB1c2goIm5ldyIpOwotCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlf
ZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBrZXksICdwcmltYXJ5S2V5IGFmdGVyIGFycmF5IHB1
c2gnKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBCdXQgd2UgY2FuIG5vdCBjaGFuZ2Uga2V5
IChsaWtlIHJlYWRvbmx5LCBqdXN0IGEgYml0IGRpZmZlcmVudCkKLSAgICAgICAgICAgICAgICAg
ICAgY3Vyc29yLmtleSA9IDEwOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFs
cyhjdXJzb3IucHJpbWFyeUtleSwga2V5LCAna2V5IGFmdGVyIGFzc2lnbm1lbnQnKTsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBjdXJzb3JfcHJpbWFyeWtleSgxKTsKLSAgICBj
dXJzb3JfcHJpbWFyeWtleSgia2V5Iik7Ci0gICAgY3Vyc29yX3ByaW1hcnlrZXkoWyJteSIsICJr
ZXkiXSk7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItcmV1c2VkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJl
dXNlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1ODMzZWM2
ZWMxZDAxZWZmZTI5ZGU5MWNmM2Q5MjJlNGUxYzFkZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItcmV1c2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1QQVNTIElEQkN1cnNvciBpcyByZXVzZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJldXNlZC1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJl
dXNlZC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzU4MzNlYzZlYzFkMDFlZmZlMjlkZTkxY2YzZDkyMmU0ZTFjMWRlNC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IgaXMgcmV1c2VkIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1yZXVz
ZWQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3ItcmV1c2VkLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2Y5YzhiZjRlNDdlMzk5ZjBhYjJlODhmMWNkMzdjNzg4M2MxNDU5MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yIGlzIHJldXNl
ZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPG1ldGEgcmVsPWhlbHAgaHJlZj0iaHR0
cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgotPG1ldGEgcmVsPWFzc2VydCB0
aXRsZT0iT3RoZXJ3aXNlIHRoaXMgbWV0aG9kIHJ1bnMgdGhlIHN0ZXBzIGZvciBhc3luY2hyb25v
dXNseSBleGVjdXRpbmcgYSByZXF1ZXN0LiBIb3dldmVyLCB0aGUgc3RlcHMgYXJlIHNsaWdodGx5
IG1vZGlmaWVkIHN1Y2ggdGhhdCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IElEQlJlcXVlc3Qs
IGl0IHJldXNlcyB0aGUgcmVxdWVzdCBvcmlnaW5hbGx5IGNyZWF0ZWQgd2hlbiB0aGlzIGN1cnNv
ciB3YXMgY3JlYXRlZC4gVGhlIGRvbmUgZmxhZyBvbiB0aGUgcmVxdWVzdCBpcyBzZXQgdG8gZmFs
c2UgYmVmb3JlIHRoZSByZXF1ZXN0IGlzIHJldHVybmVkLiBUaGUgc3RlcHMgYXJlIHJ1biB3aXRo
IHRoZSBjdXJzb3IncyBzb3VyY2UgYXMgc291cmNlIGFuZCB0aGUgc3RlcHMgZm9yIGl0ZXJhdGlu
ZyBhIGN1cnNvciBhcyBvcGVyYXRpb24sIHVzaW5nIHRoaXMgY3Vyc29yIGFzIGN1cnNvciBhbmQg
dGhlIGtleSBwYXJhbWV0ZXIgYXMga2V5LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgICAgIHZhciBkYgotICAgICAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKLQotICAgICAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0Ci0gICAgICAgICAgICB2YXIgb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIp
Ci0KLSAgICAgICAgICAgIG9zLmFkZCgiZGF0YSIsICAiayIpCi0gICAgICAgICAgICBvcy5hZGQo
ImRhdGEyIiwgImsyIikKLSAgICAgICAgfQotCi0gICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvcgotICAgICAgICAgICAgdmFyIGNv
dW50ID0gMAotICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmpl
Y3RTdG9yZSgidGVzdCIpLm9wZW5DdXJzb3IoKQotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHN3aXRjaChjb3VudCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IGNhc2UgMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dAotCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwg
ImRhdGEiLCAicHJlcXVpc2l0ZSBjdXJzb3IudmFsdWUiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY3Vyc29yLmN1c3RvbV9jdXJzb3JfdmFsdWUgPSAxCi0gICAgICAgICAgICAgICAgICAgICAg
ICBlLnRhcmdldC5jdXN0b21fcmVxdWVzdF92YWx1ZSA9IDIKLQotICAgICAgICAgICAgICAgICAg
ICAgICAgY3Vyc29yLmNvbnRpbnVlKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0K
LSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhMiIsICJwcmVxdWlzaXRlIGN1cnNvci52YWx1
ZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5jdXN0b21f
Y3Vyc29yX3ZhbHVlLCAxLCAiY3VzdG9tIGN1cnNvciB2YWx1ZSIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmN1c3RvbV9yZXF1ZXN0X3ZhbHVlLCAyLCAi
Y3VzdG9tIHJlcXVlc3QgdmFsdWUiKQotCi0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3Iu
YWR2YW5jZSgxKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAg
ICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoISFl
LnRhcmdldC5yZXN1bHQsICJnb3QgY3Vyc29yIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLmN1c3RvbV9jdXJzb3JfdmFsdWUsIDEsICJjdXN0b20gY3Vyc29y
IHZhbHVlIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
Y3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJjdXN0b20gcmVxdWVzdCB2YWx1ZSIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBjb3VudCsrCi0gICAgICAgICAgICB9KQotCi0gICAgICAgICAgICBycS50cmFuc2FjdGlvbi5v
bmNvbXBsZXRlID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudCwgMywgImN1cnNvciBjYWxsYmFjayBydW5zIikKLSAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLmN1c3RvbV9yZXF1ZXN0X3ZhbHVlLCAyLCAidmFyaWFi
bGUgcGxhY2VkIG9uIG9sZCBJREJSZXF1ZXN0IikKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5jdXN0b21fY3Vyc29yX3ZhbHVlLCAxLCAiY3VzdG9tIGN1cnNvciB2YWx1ZSAo
dHJhbnNhY3Rpb24uY29tcGxldGUpIikKLSAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKQotICAg
ICAgICAgICAgfSkKLSAgICAgICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yLXJldXNlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1yZXVzZWQuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjljOGJmNGU0
N2UzOTlmMGFiMmU4OGYxY2QzN2M3ODgzYzE0NTkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLXJldXNlZC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IgaXMgcmV1c2VkPC90aXRsZT4KLTxsaW5rIHJl
bD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4
cnRoZSBPbWRhbCI+Ci08bWV0YSByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRp
bnVlLXZvaWQtYW55LWtleSI+Ci08bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJPdGhlcndpc2UgdGhp
cyBtZXRob2QgcnVucyB0aGUgc3RlcHMgZm9yIGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBhIHJl
cXVlc3QuIEhvd2V2ZXIsIHRoZSBzdGVwcyBhcmUgc2xpZ2h0bHkgbW9kaWZpZWQgc3VjaCB0aGF0
IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgSURCUmVxdWVzdCwgaXQgcmV1c2VzIHRoZSByZXF1
ZXN0IG9yaWdpbmFsbHkgY3JlYXRlZCB3aGVuIHRoaXMgY3Vyc29yIHdhcyBjcmVhdGVkLiBUaGUg
ZG9uZSBmbGFnIG9uIHRoZSByZXF1ZXN0IGlzIHNldCB0byBmYWxzZSBiZWZvcmUgdGhlIHJlcXVl
c3QgaXMgcmV0dXJuZWQuIFRoZSBzdGVwcyBhcmUgcnVuIHdpdGggdGhlIGN1cnNvcidzIHNvdXJj
ZSBhcyBzb3VyY2UgYW5kIHRoZSBzdGVwcyBmb3IgaXRlcmF0aW5nIGEgY3Vyc29yIGFzIG9wZXJh
dGlvbiwgdXNpbmcgdGhpcyBjdXJzb3IgYXMgY3Vyc29yIGFuZCB0aGUga2V5IHBhcmFtZXRlciBh
cyBrZXkuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0KLSAgICAgICAgdmFyIGRiCi0gICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIoYXN5bmNfdGVzdCgpKQotCi0gICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgICAg
IHZhciBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IikKLQotICAgICAgICAgICAgb3Mu
YWRkKCJkYXRhIiwgICJrIikKLSAgICAgICAgICAgIG9zLmFkZCgiZGF0YTIiLCAiazIiKQotICAg
ICAgICB9Ci0KLSAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICB2YXIgY3Vyc29yCi0gICAgICAgICAgICB2YXIgY291bnQgPSAwCi0gICAgICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iikub3Bl
bkN1cnNvcigpCi0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAg
ICAgICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Ci0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIsICJwcmVxdWlzaXRl
IGN1cnNvci52YWx1ZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY3VzdG9tX2N1
cnNvcl92YWx1ZSA9IDEKLSAgICAgICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmN1c3RvbV9y
ZXF1ZXN0X3ZhbHVlID0gMgotCi0gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgICAgICAg
ICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZSwgImRhdGEyIiwgInByZXF1aXNpdGUgY3Vyc29yLnZhbHVlIikKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmN1c3RvbV9jdXJzb3JfdmFsdWUsIDEsICJj
dXN0b20gY3Vyc29yIHZhbHVlIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQuY3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJjdXN0b20gcmVxdWVzdCB2YWx1
ZSIpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSghIWUudGFyZ2V0LnJlc3VsdCwgImdv
dCBjdXJzb3IiKQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
Y3VzdG9tX2N1cnNvcl92YWx1ZSwgMSwgImN1c3RvbSBjdXJzb3IgdmFsdWUiKQotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5jdXN0b21fcmVxdWVzdF92YWx1
ZSwgMiwgImN1c3RvbSByZXF1ZXN0IHZhbHVlIikKLSAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvdW50KysKLSAgICAgICAg
ICAgIH0pCi0KLSAgICAgICAgICAgIHJxLnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAzLCAiY3Vyc29yIGNhbGxiYWNrIHJ1bnMiKQotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocnEuY3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJ2YXJpYWJsZSBwbGFjZWQgb24gb2xkIElE
QlJlcXVlc3QiKQotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmN1c3RvbV9j
dXJzb3JfdmFsdWUsIDEsICJjdXN0b20gY3Vyc29yIHZhbHVlICh0cmFuc2FjdGlvbi5jb21wbGV0
ZSkiKQotICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpCi0gICAgICAgICAgICB9KQotICAgICAg
ICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Itc291cmNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJj
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4MzFiM2EwMGU3
MjE5NmNkNjc0ZWFhYmJjNDEzYzY0ZGY0MjhiZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3Itc291cmNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotCi1QQVNTIElEQkN1cnNvci5zb3VyY2UgLSBJREJPYmplY3RTdG9yZSAKLVBBU1MgSURCQ3Vy
c29yLnNvdXJjZSAtIElEQkluZGV4IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UtcHJpdmF0
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4MzFiM2EwMGU3
MjE5NmNkNjc0ZWFhYmJjNDEzYzY0ZGY0MjhiZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3Itc291cmNlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLnNvdXJjZSAtIElEQk9iamVjdFN0b3JlIAotUEFT
UyBJREJDdXJzb3Iuc291cmNlIC0gSURCSW5kZXggCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UtcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGRlMWMzNTA3OGE0ZmRhYTgw
OGIyNjhhMzU3ZmRjOTUwNWU4YTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LXNvdXJjZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3Iuc291cmNlPC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKLQotICAgIHZh
ciBkYjsKLSAgICB2YXIgb3Blbl9ycSA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBE
YXRlKCkuZ2V0VGltZSgpKTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJteV9vYmplY3RzdG9yZSIpOwotICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgibXlfaW5kZXgiLCAiIik7Ci0KLSAgICAgICAgb2JqU3RvcmUuYWRk
KCJkYXRhIiwgIDEpOwotICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7Ci0gICAgfTsK
LQotICAgIGZ1bmN0aW9uIGN1cnNvcl9zb3VyY2UobmFtZSwgc3RyaW5naWZpZWRfb2JqZWN0LCBj
dXJzb3JfcnEpIHsKLSAgICAgICAgdmFyIGN1cnNvcjsKLQotICAgICAgICBjdXJzb3JfcnEub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgaWYgKCFl
LnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3Nl
cnRfcmVhZG9ubHkoY3Vyc29yLCAnc291cmNlJyk7Ci0KLSAgICAgICAgICAgIC8vIERpcmVjdCB0
cnkKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvci5zb3VyY2UgaW5zdGFuY2VvZiBPYmpl
Y3QsICJzb3VyY2UgaXNvYmplY3QiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnNvdXJjZSArICIiLCBzdHJpbmdpZmllZF9vYmplY3QsICJzb3VyY2UiKTsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnNvdXJjZS5uYW1lLCBuYW1lLCAibmFtZSIpOwotCi0gICAg
ICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgY3Vyc29y
X3JxLnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgIH0pOwotCi0gICAgICAgIGN1cnNv
cl9ycS50cmFuc2FjdGlvbi5vbmVycm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVHJhbnNhY3Rpb24gZ290IGVycm9yLiAiICsg
KGUudGFyZ2V0LmVycm9yID8gZS50YXJnZXQuZXJyb3IubmFtZSA6ICJ1bmtub3duIikpOwotICAg
ICAgICB9KTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgJyAtIElEQk9iamVjdFN0b3JlJyku
c3RlcChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGN1cnNvcl9zb3VyY2UuY2FsbCh0aGlzLCAi
bXlfb2JqZWN0c3RvcmUiLCAiW29iamVjdCBJREJPYmplY3RTdG9yZV0iLCBkYi50cmFuc2FjdGlv
bigibXlfb2JqZWN0c3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgibXlfb2JqZWN0c3RvcmUiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKCkpOwotICAgICAgICB9KTsKLQotICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgJyAtIElEQkluZGV4Jykuc3RlcChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGN1cnNvcl9z
b3VyY2UuY2FsbCh0aGlzLCAibXlfaW5kZXgiLCAiW29iamVjdCBJREJJbmRleF0iLCBkYi50cmFu
c2FjdGlvbigibXlfb2JqZWN0c3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgibXlfb2JqZWN0c3RvcmUiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgibXlfaW5k
ZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5v
cGVuQ3Vyc29yKCkpOwotICAgICAgICB9KTsKLQotICAgICAgICBkb25lKCk7Ci0gICAgfTsKLQot
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Itc291cmNlLmh0bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODBkZTFjMzUwNzhhNGZkYWE4MDhiMjY4YTM1N2ZkYzk1MDVl
OGEyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UuaHRtCisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vy
c29yLnNvdXJjZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICBzZXR1cCh7IGV4
cGxpY2l0X2RvbmU6IHRydWUgfSk7Ci0KLSAgICB2YXIgZGI7Ci0gICAgdmFyIG9wZW5fcnEgPSBp
bmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7Ci0gICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
bXlfb2JqZWN0c3RvcmUiKTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoIm15X2luZGV4
IiwgIiIpOwotCi0gICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICAxKTsKLSAgICAgICAgb2Jq
U3RvcmUuYWRkKCJkYXRhMiIsIDIpOwotICAgIH07Ci0KLSAgICBmdW5jdGlvbiBjdXJzb3Jfc291
cmNlKG5hbWUsIHN0cmluZ2lmaWVkX29iamVjdCwgY3Vyc29yX3JxKSB7Ci0gICAgICAgIHZhciBj
dXJzb3I7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ3NvdXJj
ZScpOwotCi0gICAgICAgICAgICAvLyBEaXJlY3QgdHJ5Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1
ZShjdXJzb3Iuc291cmNlIGluc3RhbmNlb2YgT2JqZWN0LCAic291cmNlIGlzb2JqZWN0Iik7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5zb3VyY2UgKyAiIiwgc3RyaW5naWZpZWRf
b2JqZWN0LCAic291cmNlIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5zb3Vy
Y2UubmFtZSwgbmFtZSwgIm5hbWUiKTsKLQotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGN1cnNvcl9ycS50cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdGhpcy5kb25lKCk7
Ci0gICAgICAgICB9KTsKLQotICAgICAgICBjdXJzb3JfcnEudHJhbnNhY3Rpb24ub25lcnJvciA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF91bnJlYWNo
ZWQoIlRyYW5zYWN0aW9uIGdvdCBlcnJvci4gIiArIChlLnRhcmdldC5lcnJvciA/IGUudGFyZ2V0
LmVycm9yLm5hbWUgOiAidW5rbm93biIpKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSArICcgLSBJREJPYmplY3RTdG9yZScpLnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBjdXJzb3Jfc291cmNlLmNhbGwodGhpcywgIm15X29iamVjdHN0b3JlIiwgIltvYmplY3Qg
SURCT2JqZWN0U3RvcmVdIiwgZGIudHJhbnNhY3Rpb24oIm15X29iamVjdHN0b3JlIikKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoIm15X29iamVjdHN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSBJREJJbmRleCcpLnN0ZXAoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBjdXJzb3Jfc291cmNlLmNhbGwodGhpcywgIm15X2luZGV4
IiwgIltvYmplY3QgSURCSW5kZXhdIiwgZGIudHJhbnNhY3Rpb24oIm15X29iamVjdHN0b3JlIikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoIm15X29iamVjdHN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAuaW5kZXgoIm15X2luZGV4IikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpKTsKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgZG9uZSgpOwotICAgIH07Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZkN2Q5Mzk4YjA5ZDhiNDY5NTI1MTY0ZDNhZjNm
MWQ0YWJlN2I3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
QkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGl0ZXJhdGUgY3Vyc29yIG51bWJlciBvZiB0aW1l
cyBzcGVjaWZpZWQgYnkgY291bnQgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzZkN2Q5Mzk4YjA5ZDhiNDY5NTI1MTY0ZDNhZjNmMWQ0YWJlN2I3OS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2Uo
KSAtIGluZGV4IC0gaXRlcmF0ZSBjdXJzb3IgbnVtYmVyIG9mIHRpbWVzIHNwZWNpZmllZCBieSBj
b3VudCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1wcml2YXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjMWYyNDZhMjliMGI1Y2JlM2FiMzNkZDY5MmQw
MjRmMTQ5MGViY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBpdGVyYXRlIGN1
cnNvciBudW1iZXIgb2YgdGltZXMgc3BlY2lmaWVkIGJ5IGNvdW50IDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAgIHQgPSBhc3luY190ZXN0
KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5k
ZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8yIiwgaUtleTogImluZGV4S2V5XzIiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzMiLCBpS2V5OiAiaW5kZXhLZXlfMyIgfV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKLSAgICAgICAgc3Rv
cmUuY3JlYXRlSW5kZXgoImlkeCIsICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHN0b3JlLmFkZChyZWNvcmRz
W2ldKTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uIChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaWR4IikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNv
cik7Ci0KLSAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewotICAgICAgICAgICAgICAgIGNhc2Ug
MDoKLSAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMzsKLSAgICAgICAgICAgICAgICAgICAg
Y3Vyc29yLmFkdmFuY2UoMyk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52
YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVj
b3Jkc1tjb3VudF0ucEtleSwgInJlY29yZC5wS2V5Iik7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbY291bnRdLmlLZXksICJyZWNvcmQuaUtl
eSIpOwotICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X3VucmVhY2hlZCgidW5leHBlY3RlZCBjb3VudCIpOwotICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Lmh0bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmMxZjI0NmEyOWIwYjVjYmUzYWIzM2RkNjkyZDAyNGYxNDkwZWJj
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Lmh0bQor
KysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklE
QkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGl0ZXJhdGUgY3Vyc29yIG51bWJlciBvZiB0aW1l
cyBzcGVjaWZpZWQgYnkgY291bnQgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAot
ICAgICAgY291bnQgPSAwLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0s
Ci0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBpS2V5OiAiaW5kZXhL
ZXlfMiIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMyIsIGlLZXk6
ICJpbmRleEtleV8zIiB9XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
dGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaWR4
IiwgImlLZXkiKTsKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgc3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0g
ICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAgICAgICAg
dmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
LmluZGV4KCJpZHgiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwot
Ci0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAg
YXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAgICAgICAgICAg
c3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAg
ICAgICBjb3VudCArPSAzOwotICAgICAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgzKTsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSAzOgotICAg
ICAgICAgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzW2NvdW50XS5wS2V5LCAi
cmVjb3JkLnBLZXkiKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQu
aUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgInJlY29yZC5pS2V5Iik7Ci0gICAgICAgICAgICAg
ICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJ1bmV4
cGVjdGVkIGNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9h
ZHZhbmNlX2luZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDExZGUxN2M1MDZhYjQ4ZDMxYjQyODFhM2ZmMDg0YmQzZDQ0ZDcw
MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29y
LmFkdmFuY2UoKSAtIGF0dGVtcHQgdG8gcGFzcyBhIGNvdW50IHBhcmFtZXRlciB0aGF0IGlzIG5v
dCBhIG51bWJlciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1w
cml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFkZTE3
YzUwNmFiNDhkMzFiNDI4MWEzZmYwODRiZDNkNDRkNzAyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBhdHRl
bXB0IHRvIHBhc3MgYSBjb3VudCBwYXJhbWV0ZXIgdGhhdCBpcyBub3QgYSBudW1iZXIgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXgyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDhmYjA1ZDM2MjdjMzhjMGUxYzlkODgxNzcyNWVmMThmMjZmMjZh
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1wcml2
YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gYXR0ZW1wdCB0byBwYXNzIGEgY291bnQgcGFy
YW1ldGVyIHRoYXQgaXMgbm90IGEgbnVtYmVyPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+
Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNp
Z25lZC1sb25nLWNvdW50Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBwYXNz
ZWQgaW50byB0aGUgY291bnQgcGFyYW1ldGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVy
LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAgICAg
ICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3Io
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNv
ciBleGlzdCIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCi0g
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKGRvY3VtZW50KTsgfSk7
Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotCi08L3Njcmlw
dD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhmYjA1ZDM2MjdjMzhjMGUxYzlkODgxNzcy
NWVmMThmMjZmMjZhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNl
X2luZGV4Mi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gYXR0ZW1wdCB0byBwYXNzIGEgY291bnQg
cGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgbnVtYmVyPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11
bnNpZ25lZC1sb25nLWNvdW50Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBw
YXNzZWQgaW50byB0aGUgY291bnQgcGFyYW1ldGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVt
YmVyLiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFy
eUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBm
b3IodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1
cnNvciBleGlzdCIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCks
Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKGRvY3VtZW50KTsg
fSk7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotCi08L3Nj
cmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXgzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE2YWYz
MTUwY2ZlMTA4Y2NjYWNkZTBlNWYzNDYwMGJjZjI5MGRlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4My1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBhdHRl
bXB0IHRvIGFkdmFuY2UgYmFja3dhcmRzIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4My1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMTZhZjMxNTBjZmUxMDhjY2NhY2RlMGU1ZjM0NjAwYmNmMjkwZGUzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmFk
dmFuY2UoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBhZHZhbmNlIGJhY2t3YXJkcyAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmOGExYWVmMDcwN2EzMDUyYTgxY2I0MWYxYTlmOGJlNjcyOTNhMjAxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLXByaXZhdGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRp
dGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gYWR2YW5jZSBiYWNr
d2FyZHM8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgotPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIHZhbHVlIHBhc3NlZCBpbnRvIHRoZSBjb3VudCBwYXJh
bWV0ZXIgd2FzIHplcm8gb3IgYSBuZWdhdGl2ZSBudW1iZXIuIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
LCB7dGltZW91dDogMTAwMDB9KSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlL
ZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDoicEtleSIgfSk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAibmV4dCIpOwotCi0gICAgICAgIGN1cnNv
cl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShj
dXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC0xKTsgfSk7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAg
ICB9OwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgz
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXgzLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhhMWFlZjA3MDdh
MzA1MmE4MWNiNDFmMWE5ZjhiZTY3MjkzYTIwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4My5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBh
dHRlbXB0IHRvIGFkdmFuY2UgYmFja3dhcmRzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+
Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNp
Z25lZC1sb25nLWNvdW50Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBwYXNz
ZWQgaW50byB0aGUgY291bnQgcGFyYW1ldGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVy
LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICByZWNvcmRz
ID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9
IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
LSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtl
eVBhdGg6InBLZXkiIH0pOwotCi0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRl
eCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5l
eHQiKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKLSAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAg
IGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgtMSk7IH0pOwotCi0gICAgICAgICAgICB0LmRv
bmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MWU0NWUxMWI4NDMyYjI0Mzk4ZDlmMThhZTlh
ZjQ2ZDg2ZmYxNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleDUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1Mg
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MWU0NWUxMWI4NDMyYjI0
Mzk4ZDlmMThhZTlhZjQ2ZDg2ZmYxNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBpdGVyYXRl
IHRvIHRoZSBuZXh0IHJlY29yZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUt
cHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDY4OGYzMzFhNDU1
NmJhNDdhMDQ2ZWU3YWU3YWYwNDU2MjlmYjRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXg1LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBp
bmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9p
ZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBvcGVy
YXRpb24gcnVucyB0aGUgc3RlcHMgZm9yIGl0ZXJhdGluZyBhIGN1cnNvciBjb3VudCBudW1iZXIg
b2YgdGltZXMgd2l0aCBudWxsIGFzIGtleSBhbmQgdGhpcyBjdXJzb3IgYXMgY3Vyc29yLiI+Ci08
bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgbnVtYmVyIG9mIGFkdmFuY2VzIGZvcndhcmQgdGhl
IGN1cnNvciBzaG91bGQgbWFrZS4iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0g
ICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0g
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtl
eV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5
OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MS0yIiwgaUtleTogImluZGV4S2V5XzEiIH0gXSwKLSAgICAgIGV4cGVjdGVkID0gWyB7IHBLZXk6
ICJwcmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAg
ICAgIHsgcEtleTogInByaW1hcnlLZXlfMS0yIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiJw
S2V5IiB9KQotCi0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5IikK
LQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAg
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSkKLSAgICB9OwotCi0gICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
dGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICJjdXJzb3Ig
cnVuIGNvdW50IikKLSAgICAgICAgICAgICAgICB0LmRvbmUoKQotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWNvcmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJwcmltYXJ5IGtleSIp
OwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRd
LmlLZXksICJpbmRleCBrZXkiKTsKLQotICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMik7Ci0g
ICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNjg4ZjMzMWE0NTU2YmE0N2EwNDZlZTdhZTdhZjA0NTYy
OWZiNGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUu
aHRtCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0
bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNv
cmQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgotPGxpbmsg
cmVsPWFzc2VydCB0aXRsZT0iVGhlIG9wZXJhdGlvbiBydW5zIHRoZSBzdGVwcyBmb3IgaXRlcmF0
aW5nIGEgY3Vyc29yIGNvdW50IG51bWJlciBvZiB0aW1lcyB3aXRoIG51bGwgYXMga2V5IGFuZCB0
aGlzIGN1cnNvciBhcyBjdXJzb3IuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBudW1i
ZXIgb2YgYWR2YW5jZXMgZm9yd2FyZCB0aGUgY3Vyc29yIHNob3VsZCBtYWtlLiI+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZh
ciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlLCB7dGltZW91dDogMTAwMDB9KSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAotICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdLAot
ICAgICAgZXhwZWN0ZWQgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4
S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBp
S2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6InBLZXkiIH0pCi0KLSAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImlLZXkiKQotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KQotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAg
ICAgICBpZiAoIWN1cnNvcikgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQs
IGV4cGVjdGVkLmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKQotICAgICAgICAgICAgICAgIHQu
ZG9uZSgpCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3Iu
dmFsdWU7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZFtj
b3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZC5pS2V5LCBleHBlY3RlZFtjb3VudF0uaUtleSwgImluZGV4IGtleSIpOwotCi0gICAgICAg
ICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0p
OwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5k
ZXg2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXg2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDc1MjExZmUzNDhlYThiZjY3NjIwYjQ3ZDViODhhZTMxODE5ZGU0My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgp
IC0gaW5kZXggLSB0aHJvdyBUeXBlRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2LXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
YWR2YW5jZV9pbmRleDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA3NTIxMWZlMzQ4ZWE4YmY2NzYyMGI0N2Q1Yjg4YWUzMTgxOWRlNDMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3Iu
YWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUeXBlRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2LXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg2LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzRkNjUzYzA5OTUxNDYzODA2YzNkMTIzM2M3MGEzY2M4OGQ1YjJiZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1wcml2YXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUeXBl
RXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1
cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgICByZWNv
cmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8x
IiB9XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaUtleSIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAg
ICAgICAgfQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vy
c29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgwKTsKLSAgICAgICAgICAgIH0sICJDYWxsaW5nIGFk
dmFuY2UoKSB3aXRoIGNvdW50IGFyZ3VtZW50IDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4iKTsK
LQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0Pgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9hZHZhbmNlX2luZGV4Ni5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc0ZDY1M2MwOTk1MTQ2MzgwNmMzZDEyMzNjNzBhM2NjODhkNWIyYmQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYuaHRtCisrKyAvZGV2L251bGwK
QEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgVHlwZUVycm9yPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2
YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAg
IHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9IFt7
IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAg
ICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfV07Ci0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
e2tleVBhdGggOiAicEtleSJ9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgICAgIH0K
LSAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOwot
ICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgY3Vyc29yLmFkdmFuY2UoMCk7Ci0gICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkg
d2l0aCBjb3VudCBhcmd1bWVudCAwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIik7Ci0KLSAgICAg
ICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlMmE0NDdiYjI2OTljZjBhYjgzYjBmNTVjZDYzYjYyOTI3OTFkMzc0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5hZHZh
bmNlKCkgLSBpbmRleCAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1wcml2YXRlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJhNDQ3YmIyNjk5Y2YwYWI4M2IwZjU1Y2Q2
M2I2MjkyNzkxZDM3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNl
X2luZGV4Ny1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IFRyYW5zYWN0aW9u
SW5hY3RpdmVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDctcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDctcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTdjZGEwN2FmNmJjOTM4YzU0
NjYyYzRjZTU2M2ZkZDVhNjMzODQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg3LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1
cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3
LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcv
aGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFk
dmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAg
ICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBb
eyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH1dOwot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHtrZXlQYXRoIDogInBLZXkifSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICJpS2V5Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsK
LSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAg
YXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAgICAgICAgICAg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7Ci0gICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKLSAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2Uo
KSBzaG91bGQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hl
biB0aGUgdHJhbnNhY3Rpb24gaXMgbm90IGFjdGl2ZS4iKTsKLQotICAgICAgICAgICAgdC5kb25l
KCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXg3Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjE3Y2RhMDdhZjZiYzkz
OGM1NDY2MmM0Y2U1NjNmZGQ1YTYzMzg0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9hZHZhbmNlX2luZGV4Ny5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJDdXJzb3Iu
YWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNl
LXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFy
IGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRzID0gW3sgcEtl
eTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAg
ICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsKLQotICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5
UGF0aCA6ICJwS2V5In0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aUtleSIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICAgICAgfQotICAg
ICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0gICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAgICAgICAgICAgIGV2ZW50
LnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygi
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
Y3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgc2hv
dWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIHdoZW4gdGhl
IHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwot
ICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZh
bmNlX2luZGV4OC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4
MmIxNGU2OWM0N2FiYjE4ZTUyNGE0MTFjMDQ0MDkzMDVhNTM5OWYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0g
dGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4LXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9pbmRleDgtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ4MmIxNGU2OWM0N2FiYjE4ZTUyNGE0MTFjMDQ0MDkzMDVhNTM5OWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuYWR2
YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRl
eDgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDgtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxY2RlOWFmMWE3YTcxZTBiMzZhODMzOWY1NTc0NmMzYWQ3YmQwYTYyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4LXByaXZhdGUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93
IEludmFsaWRTdGF0ZUVycm9yPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50
ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
LSAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhL
ZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5
OiAiaW5kZXhLZXlfMSIgfV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKLSAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImlu
ZGV4Iikub3BlbkN1cnNvcigpOwotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJz
b3IpOwotCi0gICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKLSAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkg
c2hvdWxkIHRocm93IERPTUV4Y2VwdGlvbiB3aGVuIHRoZSBjdXJzb3IgaXMgY3VycmVudGx5IGJl
aW5nIGl0ZXJhdGVkLiIpOwotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4Lmh0bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWNkZTlhZjFhN2E3MWUwYjM2YTgzMzlmNTU3NDZjM2FkN2Jk
MGE2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC5o
dG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0
aHJvdyBJbnZhbGlkU3RhdGVFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJs
b2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0
KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImlu
ZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwg
aUtleTogImluZGV4S2V5XzEiIH1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7Ci0gICAgICAgIG9i
alN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4
KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJn
ZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURC
Q3Vyc29yKTsKLQotICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOwotICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2YW5j
ZSgpIHNob3VsZCB0aHJvdyBET01FeGNlcHRpb24gd2hlbiB0aGUgY3Vyc29yIGlzIGN1cnJlbnRs
eSBiZWluZyBpdGVyYXRlZC4iKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0p
OwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1NDBhNzFlNjdiOWM4
ODhmZGI5N2Y5ZjljZjllMTgyN2I5NzAyMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxp
ZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXg5LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDktcHJpdmF0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1NDBhNzFlNjdiOWM4ODhmZGI5N2Y5Zjlj
ZjllMTgyN2I5NzAyMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDktcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3Rh
dGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleDktcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9pbmRleDktcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwOTFjMWJjYmM5YjVjMGM0MzVlMzdhMmVjZWE2ZmYzN2ZlZThjMTAxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LXByaXZhdGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRo
cm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVk
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93
d3cuaW50ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAg
IHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH1dOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChl
dmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXki
fSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciBycSA9
IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29y
IGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Ci0KLSAgICAgICAgICAgIGRi
LmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygi
SW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3Iu
YWR2YW5jZSgxKTsKLSAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVm
ZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9u
IE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOwot
Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXg5Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDkxYzFiY2JjOWI1YzBjNDM1ZTM3YTJlY2VhNmZmMzdmZWU4YzEwMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS5odG0KKysrIC9kZXYvbnVsbApA
QCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAotICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRl
eEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0g
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOwotICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgi
aW5kZXgiKS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1
cnNvciwgImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9y
ZSgic3RvcmUiKTsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9y
IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAg
ICAgICAgICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0
b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9N
RXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKLQotICAgICAgICAgICAgdC5k
b25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiMTAzNTg0NzI3ZTYxMzgzYTVhZmM5NWJmYzMzNGYzM2Q1Y2VhYzBjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgIElEQkN1cnNv
ci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSBpdGVyYXRlIGN1cnNvciBudW1iZXIgb2YgdGlt
ZXMgc3BlY2lmaWVkIGJ5IGNvdW50ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2Vfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGIxMDM1ODQ3MjdlNjEzODNhNWFmYzk1YmZjMzM0ZjMzZDVjZWFjMGMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
ICBJREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0ZSBjdXJzb3IgbnVt
YmVyIG9mIHRpbWVzIHNwZWNpZmllZCBieSBjb3VudCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIwNjNjMmIxY2JjNDZmMzNhNWI4NGUwMDg4ZTgwNmE3NDhiNjlhOTYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS1wcml2YXRl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0
aXRsZT4gSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIGl0ZXJhdGUgY3Vyc29y
IG51bWJlciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291bnQgPC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgY291bnQgPSAwLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
LSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMiIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMyIgfV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
a2V5UGF0aDoicEtleSJ9KTsKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgc3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAg
ICB9Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1
cnNvcik7Ci0KLSAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewotICAgICAgICAgICAgICAgIGNh
c2UgMDoKLSAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMzsKLSAgICAgICAgICAgICAgICAg
ICAgY3Vyc29yLmFkdmFuY2UoMyk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IudmFsdWUucEtleSwgcmVjb3Jkc1tjb3VudF0ucEtleSwgImN1cnNvci52YWx1ZS5wS2V5Iik7
Ci0gICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCJ1bmV4cGVjdGVkIGNvdW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUuaHRtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDYzYzJiMWNiYzQ2ZjMzYTViODRlMDA4OGU4
MDZhNzQ4YjY5YTk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vf
b2JqZWN0c3RvcmUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08dGl0bGU+IElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSBpdGVy
YXRlIGN1cnNvciBudW1iZXIgb2YgdGltZXMgc3BlY2lmaWVkIGJ5IGNvdW50IDwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCi0g
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0sCi0gICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzMiIH1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
IChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFu
Y2VvZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAg
ICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDM7Ci0gICAgICAg
ICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDMpOwotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbY291bnRdLnBLZXksICJjdXJzb3IudmFs
dWUucEtleSIpOwotICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3VucmVhY2hlZCgidW5leHBlY3RlZCBjb3VudCIpOwotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi08L3Njcmlw
dD4KLQotPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmNmE3MDg3YzBkNjc4YWYxYmFmNWZiZGJhNGY5NmVjNTE1NzY5MGRhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5hZHZhbmNlKCkg
LSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUeXBlRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUy
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2YTcwODdjMGQ2NzhhZjFiYWY1ZmJkYmE0Zjk2
ZWM1MTU3NjkwZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9v
YmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cg
VHlwZUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
Mi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhY2Y3ZmY4MDNh
MGM2NTFjNTUwNmNhNDc0OTM1N2RkMzQ3YjdiMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFR5cGVF
cnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRw
Oi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vy
c29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlw
dD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29y
ZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIn1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiLCAicmVhZHdyaXRlIik7Ci0gICAgICAgIHZhciBycSA9IHR4bi5vYmplY3RTdG9y
ZSgic3RvcmUiKS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElE
QkN1cnNvcik7Ci0KLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgwKTsKLSAgICAgICAg
ICAgIH0sICJDYWxsaW5nIGFkdmFuY2UoKSB3aXRoIGNvdW50IGFyZ3VtZW50IDAgc2hvdWxkIHRo
cm93IFR5cGVFcnJvci4iKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi5o
dG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhY2Y3ZmY4MDNhMGM2NTFjNTUwNmNh
NDc0OTM1N2RkMzQ3YjdiMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZTIuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmFk
dmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFR5cGVFcnJvcjwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNp
Z25lZC1sb25nLWNvdW50Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAg
ICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFy
eUtleV8wIn0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOwot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50
KSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRl
Iik7Ci0gICAgICAgIHZhciBycSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKS5vcGVuQ3Vyc29y
KCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICBjdXJzb3IuYWR2YW5jZSgwKTsKLSAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFu
Y2UoKSB3aXRoIGNvdW50IGFyZ3VtZW50IDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4iKTsKLQot
ICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9h
ZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjYjBkZWIzNWIwNWE5MWZmODBhYzNiMDJh
MTQ4ZWRhMWVlMjlmZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9h
ZHZhbmNlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmNiMGRlYjM1YjA1YTkxZmY4MGFjM2IwMmExNDhlZGExZWUyOWZkOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUcmFuc2FjdGlvbklu
YWN0aXZlRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3Rv
cmUzLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThiNTc3NTI0
N2Y0ZWU0YmRmM2RiYmI1ZDI1N2JmNGIwYmE1NzExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KSwKLSAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKLSAgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2
ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4
biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKTsKLSAgICAgICAgdmFyIHJx
ID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLmFib3J0KCk7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuYWR2
YW5jZSgxKTsKLSAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2UoKSBzaG91bGQgdGhyb3dz
IGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNhY3Rp
b24gaXMgbm90IGFjdGl2ZSIpOwotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7
Ci0gICAgfQotCi08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTMuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9y
ZTMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGI1Nzc1MjQ3ZjRlZTRiZGYz
ZGJiYjVkMjU3YmY0YjBiYTU3MTE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2Vfb2JqZWN0c3RvcmUzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1cnNv
ci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJy
b3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNv
ci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRz
ID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAotICAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSJ9XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIg
PSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24o
InN0b3JlIiwgInJlYWR3cml0ZSIpOwotICAgICAgICB2YXIgcnEgPSB0eG4ub2JqZWN0U3RvcmUo
InN0b3JlIikub3BlbkN1cnNvcigpOwotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJD
dXJzb3IpOwotCi0gICAgICAgICAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsK
LSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOwotICAgICAgICAg
ICAgfSwgIkNhbGxpbmcgYWR2YW5jZSgpIHNob3VsZCB0aHJvd3MgYW4gZXhjZXB0aW9uIFRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBub3QgYWN0aXZlIik7
Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3YWQ3OWNjZDQ5MzMzNTY4N2Ni
MWJjYjUwNGI5ZjBkNmNiYjQ0NzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
YWR2YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93
IEludmFsaWRTdGF0ZUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2Vfb2JqZWN0c3RvcmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyN2FkNzljY2Q0OTMzMzU2ODdjYjFiY2I1MDRiOWYwZDZjYmI0NDczLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0LXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1Mg
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVy
cm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhYmY4ZTg2OTczNzYxYThl
ZGE3MGFhZGI5NjRmNTZhMmI5YmNkYTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0
ZUVycm9yPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0
dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJD
dXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVj
b3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKLSAgICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKTsKLSAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0
b3JlKCJzdG9yZSIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50
YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2Yg
SURCQ3Vyc29yKTsKLQotICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOwotICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2
YW5jZSgpIHNob3VsZCB0aHJvdyBET01FeGNlcHRpb24gd2hlbiB0aGUgY3Vyc29yIGlzIGN1cnJl
bnRseSBiZWluZyBpdGVyYXRlZC4iKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAg
IH0pOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlNC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhYmY4ZTg2OTczNzYxYThl
ZGE3MGFhZGI5NjRmNTZhMmI5YmNkYTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9vYmplY3RzdG9yZTQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vy
c29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2
YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAg
IHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9IFt7
IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKLSAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEifV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9y
ZSIsICJyZWFkd3JpdGUiKTsKLSAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0b3JlKCJzdG9y
ZSIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
KTsKLQotICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
IGN1cnNvci5hZHZhbmNlKDEpOwotICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2YW5jZSgpIHNo
b3VsZCB0aHJvdyBET01FeGNlcHRpb24gd2hlbiB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBiZWlu
ZyBpdGVyYXRlZC4iKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAg
IH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyN2YzY2I3
YjM3OWRlYjY0ZTIwOTQxNDI3YTUzMWNkM2Y4ZTc1ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBz
dG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVl
biBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2Jq
ZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxMjdmM2NiN2IzNzlkZWI2NGUyMDk0MTQyN2E1MzFjZDNmOGU3NTg2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU1LXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29y
LmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNl
ZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9hZHZhbmNlX29iamVjdHN0b3JlNS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZmNjFmNmYzNjZhMzY4N2VjMzg5MmYyMTU4NzU3NzA3MGEyYTFlMTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVj
dCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUg
YmVlbiBkZWxldGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhy
ZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5
OiAicHJpbWFyeUtleV8wIn0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIn1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRz
W2ldKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7
Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAg
IGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIp
OwotCi0gICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAgICB9LCAiSWYgdGhlIGN1
cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQs
IHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52
YWxpZFN0YXRlRXJyb3IiKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5o
dG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNjFmNmYzNjZhMzY4N2VjMzg5MmYy
MTU4NzU3NzA3MGEyYTFlMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZTUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmFk
dmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBi
eSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNj
cmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJl
Y29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCi0gICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIn1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9y
ZS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwg
ImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3Rv
cmUiKTsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7Ci0gICAgICAgICAg
ICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhh
cyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7
Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0
YTAwNWVlMGUyYjUxN2JhMjRmZjlhN2UxYWNhZWY0Y2VjZGUxNWQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAt
IGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhNGEwMDVlZTBlMmI1MTdiYTI0ZmY5YTdlMWFjYWVmNGNlY2RlMTVkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4LXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29y
LmNvbnRpbnVlKCkgLSBpbmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBhODJlMjdkOWYxM2QyYjhhNWUyZGQ4ZDEzMzk1Y2E1YTM1ODU3ZGMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgtcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQg
cmVjb3JkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iT3RoZXJ3aXNlIHRoaXMgbWV0aG9kIHJ1bnMgdGhlIHN0ZXBzIGZvciBhc3luY2hyb25vdXNs
eSBleGVjdXRpbmcgYSByZXF1ZXN0LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwK
LSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMS0yIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0
aDoicEtleSIgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlL
ZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJz
b3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGlmICghY3Vyc29yKSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgcmVjb3Jkcy5sZW5ndGgsICJj
dXJzb3IgcnVuIGNvdW50Iik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzW2NvdW50XS5wS2V5LCAicHJpbWFy
eSBrZXkiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNb
Y291bnRdLmlLZXksICJpbmRleCBrZXkiKTsKLQotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
KCk7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC5odG0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhODJlMjdkOWYxM2QyYjhhNWUyZGQ4ZDEzMzk1
Y2E1YTM1ODU3ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXguaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5l
eHQgcmVjb3JkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0
cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgotPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0iT3RoZXJ3aXNlIHRoaXMgbWV0aG9kIHJ1bnMgdGhlIHN0ZXBzIGZvciBhc3luY2hyb25v
dXNseSBleGVjdXRpbmcgYSByZXF1ZXN0LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0g
MCwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJw
cmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMS0yIiwgaUtleTogImluZGV4S2V5XzEiIH0g
XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5
UGF0aDoicEtleSIgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImlLZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBp
KyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3Jx
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4
IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGlmICghY3Vyc29y
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgcmVjb3Jkcy5sZW5ndGgs
ICJjdXJzb3IgcnVuIGNvdW50Iik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzW2NvdW50XS5wS2V5LCAicHJp
bWFyeSBrZXkiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29y
ZHNbY291bnRdLmlLZXksICJpbmRleCBrZXkiKTsKLQotICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXgyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWUxNzMx
MGUxYmMxYTc4MGM1MDMyNTFjNTE4YWFkMGJlYjc4YzBlMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGF0
dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0ZXIgdGhhdCBpcyBub3QgYSB2YWxpZCBrZXkgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWUxNzMxMGUxYmMxYTc4MGM1
MDMyNTFjNTE4YWFkMGJlYjc4YzBlMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1w
dCB0byBwYXNzIGEga2V5IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhIHZhbGlkIGtleSAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXgyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNhODg5OGNkNmY3NTMyNWI1ZmY1NDM4NDNjZDExOWIyNWE4OTE4
NTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLXBy
aXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHBhc3Mg
YSBrZXkgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgdmFsaWQga2V5PC90aXRsZT4KLTxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20iPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWRE
Qi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lk
LWFueS1rZXkiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgdGhlIGtleSBwYXJhbWV0ZXIg
aXMgc3BlY2lmaWVkIGFuZCBmdWxmaWxscyBhbnkgb2YgdGhlc2UgY29uZGl0aW9ucyB0aGlzIG1l
dGhvZCBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yIj4KLTxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5LiI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBb
IHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRo
OiJwS2V5In0pOwotCi0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5
Iik7Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwKLSAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVl
KGRvY3VtZW50KTsgfSk7Ci0KLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5j
ZW9mIElEQkN1cnNvcldpdGhWYWx1ZSwgImN1cnNvciIpOwotCi0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2E4ODk4Y2Q2Zjc1MzI1YjVmZjU0Mzg0M2NkMTE5YjI1YTg5MTg1Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDIuaHRtCisrKyAvZGV2
L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29y
LmNvbnRpbnVlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0ZXIgdGhh
dCBpcyBub3QgYSB2YWxpZCBrZXk8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08bGluayByZWw9aGVs
cCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVy
dmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQtYW55LWtleSI+Ci08bGluayBy
ZWw9YXNzZXJ0IHRpdGxlPSJJZiB0aGUga2V5IHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgYW5kIGZ1
bGZpbGxzIGFueSBvZiB0aGVzZSBjb25kaXRpb25zIHRoaXMgbWV0aG9kIG11c3QgdGhyb3cgYSBE
T01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0i
VGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAgICAg
ICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3Io
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUoZG9jdW1lbnQpOyB9KTsKLQot
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yV2l0aFZh
bHVlLCAiY3Vyc29yIik7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAg
ICB9OwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkNTBkOWYyNDY5NWY2ODA5ZDQ2N2U2OTRhZjhjNTdiMzQ3NzZjYjQ1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuY29udGludWUo
KSAtIGluZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBwcmV2aW91cyByZWNvcmQgd2hl
biB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIG5leHQgcmVjb3JkICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTBkOWYyNDY5NWY2ODA5ZDQ2N2U2OTRhZjhj
NTdiMzQ3NzZjYjQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIGl0ZXJh
dGUgdG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0
aGUgbmV4dCByZWNvcmQgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgzLXBy
aXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVlZWZhMzcyMWY0NTE0
MmRlMjc3Zjc4ZDUyOGE5OTI5NzgyYjBhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDMtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTQg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBp
bmRleCAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3JkIHdoZW4gdGhl
IGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBuZXh0IHJlY29yZCA8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQt
YW55LWtleSI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgcGFyYW1ldGVyIGlzIGxlc3Mg
dGhhbiBvciBlcXVhbCB0byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidz
IGRpcmVjdGlvbiBpcyAnbmV4dCcgb3IgJ25leHR1bmlxdWUnLiI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRiLAot
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOwotCi0g
ICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgdmFyIGN1cnNv
cl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJp
bmRleCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwg
Im5leHQiKTsgLy8gWFhYOiBGeCBoYXMgaXNzdWUgd2l0aCAidW5kZWZpbmVkIgotCi0gICAgICAg
IGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgaWYgKCFjdXJz
b3IpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAicmFuIG51bWJl
ciBvZiB0aW1lcyIpOwotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAvLyBGaXJzdCB0aW1lIGNoZWNrcyBrZXkgZXF1YWwsIHNlY29uZCB0aW1l
IGNoZWNrcyBrZXkgbGVzcyB0aGFuCi0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJy
b3IiLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUocmVjb3Jk
c1swXS5pS2V5KTsgfSk7Ci0KLSAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotCi0gICAg
ICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotCi08L3NjcmlwdD4KLQotPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMuaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWVlZmEzNzIxZjQ1MTQyZGUyNzdmNzhkNTI4YTk5Mjk3
ODJiMGE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
My5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0
aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRv
IHRoZSBwcmV2aW91cyByZWNvcmQgd2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIG5l
eHQgcmVjb3JkIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KLTxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IlRoZSBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vyc29y
J3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzICduZXh0JyBvciAnbmV4
dHVuaXF1ZScuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMu
bGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAg
fTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIg
Y291bnQgPSAwOwotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3Qi
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAibmV4dCIpOyAvLyBYWFg6IEZ4IGhhcyBpc3N1
ZSB3aXRoICJ1bmRlZmluZWQiCi0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQ7Ci0gICAgICAgICAgICBpZiAoIWN1cnNvcikgewotICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY291bnQsIDIsICJyYW4gbnVtYmVyIG9mIHRpbWVzIik7Ci0gICAgICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIEZpcnN0IHRpbWUg
Y2hlY2tzIGtleSBlcXVhbCwgc2Vjb25kIHRpbWUgY2hlY2tzIGtleSBsZXNzIHRoYW4KLSAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24oKSB7IGN1cnNvci5jb250aW51ZShyZWNvcmRzWzBdLmlLZXkpOyB9KTsKLQotICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0KLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0p
OwotICAgIH07Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXg0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDcxNDA2OWFjYTMyZjNjNzA2MmE3OTQ0ZTVhMTJhZjE5ZDRmZjZiM2QuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250
aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdo
ZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE0MDY5YWNhMzJmM2M3MDYyYTc5NDRl
NWExMmFmMTlkNGZmNmIzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBp
dGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0
aGUgcHJldmlvdXMgcmVjb3JkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQxNmM5ZjU4ZWRk
ZDBkNDE1ZWY0MWU5MzAxMWEwNzFlOGFjZGEwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkg
LSBpbmRleCAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQgd2hlbiB0aGUg
ZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIHByZXZpb3VzIHJlY29yZDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVk
REIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItY29udGludWUtdm9p
ZC1hbnkta2V5Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBwYXJhbWV0ZXIgaXMgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vyc29yJ3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vy
c29yJ3MgZGlyZWN0aW9uIGlzICdwcmV2JyBvciAncHJldnVuaXF1ZScuIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIg
ZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7
IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsIGlLZXk6ICJpbmRleEtleV8yIiB9IF07Ci0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6
ICJwS2V5IiB9KTsKLQotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtl
eSIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykK
LSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjb3VudCA9IDAsCi0g
ICAgICAgICAgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAg
IC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5k
ZWZpbmVkLCAicHJldiIpOyAvLyBYWFggRnggaXNzdWVzIHcgdW5kZWZpbmVkCi0KLSAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCi0gICAgICAgICAgICAgIHJlY29yZCA9
IGN1cnNvci52YWx1ZTsKLQotICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Ci0gICAgICAgICAg
ICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVj
b3Jkc1syXS5wS2V5LCAiZmlyc3QgcEtleSIpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVjb3JkLmlLZXksIHJlY29yZHNbMl0uaUtleSwgImZpcnN0IGlLZXkiKTsKLSAgICAgICAg
ICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBL
ZXksIHJlY29yZHNbMV0ucEtleSwgInNlY29uZCBwS2V5Iik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgcmVjb3Jkc1sxXS5pS2V5LCAic2Vjb25kIGlLZXkiKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKCJpbmRleEtleV8yIik7IH0pOwot
ICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhw
ZWN0ZWQgY291bnQgdmFsdWU6ICIgKyBjb3VudCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC5odG0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ0MTZjOWY1OGVkZGQwZDQxNWVmNDFlOTMwMTFhMDcxZThhY2Rh
MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0Lmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxl
PklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhl
IG5leHQgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyBy
ZWNvcmQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwt
SURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQtYW55LWtleSI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxl
PSJUaGUgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGlzIGN1cnNvcidz
IHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidzIGRpcmVjdGlvbiBpcyAncHJldicgb3IgJ3ByZXZ1
bmlxdWUnLiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAg
IHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9
LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4
S2V5XzEiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBpS2V5
OiAiaW5kZXhLZXlfMiIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tp
XSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICB2YXIgY291bnQgPSAwLAotICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgInByZXYiKTsgLy8gWFhYIEZ4IGlzc3VlcyB3
IHVuZGVmaW5lZAotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAot
ICAgICAgICAgICAgICByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0KLSAgICAgICAgICAgIHN3aXRj
aChjb3VudCkgewotICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNbMl0ucEtleSwgImZpcnN0IHBLZXkiKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5pS2V5LCByZWNvcmRzWzJdLmlLZXksICJm
aXJzdCBpS2V5Iik7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzWzFdLnBLZXksICJzZWNvbmQgcEtleSIp
OwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbMV0u
aUtleSwgInNlY29uZCBpS2V5Iik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0
YUVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51
ZSgiaW5kZXhLZXlfMiIpOyB9KTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50IHZhbHVlOiAiICsgY291bnQpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9Owot
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9j
b250aW51ZV9pbmRleDUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZjQ0ZGU3ZjA0MjJlN2U5M2M0ZTZjM2NiYTY2MzU4M2VmODNjMmExLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGlu
ZGV4IC0gaXRlcmF0ZSB1c2luZyAncHJldnVuaXF1ZScgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1wcml2
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZWY0NGRlN2YwNDIyZTdlOTNjNGU2YzNjYmE2NjM1ODNlZjgzYzJh
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUtcHJp
dmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJ
REJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1c2luZyAncHJldnVuaXF1ZScg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4NS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUtcHJpdmF0ZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjcyYWMxNDZlYmFjOTQzMTZhODQxYWJjNjY1NmVh
ZDVjNDQzMDJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
ZGV4NS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1
c2luZyAncHJldnVuaXF1ZSc8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJl
bD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgotPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJwcmV2dW5pcXVlIiwgbGV0IHRlbXAgcmVjb3Jk
IGJlIHRoZSBsYXN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBm
b2xsb3dpbmcgcmVxdWlyZW1lbnRzOic+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3Np
dGlvbiBpcyBkZWZpbmVkLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGxlc3MgdGhhbiBwb3NpdGlvbi4i
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlw
dD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7
dGltZW91dDogMTAwMDB9KSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlf
MCIsICAgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAotICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsICAgaUtleTogImluZGV4S2V5XzIiIH0g
XSwKLQotICAgICAgZXhwZWN0ZWQgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMiIsICAgaUtleTog
ImluZGV4S2V5XzIiIH0sCi0gICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIs
ICAgaUtleTogImluZGV4S2V5XzEiIH0sCi0gICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5XzAiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotCi0gICAg
ICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGNvdW50ID0gMCwKLSAgICAgICAgICBjdXJzb3JfcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICdwcmV2dW5pcXVl
Jyk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0ZWQubGVuZ3RoLCAnY291bnQnKTsKLSAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAotICAgICAgICAg
ICAgICByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVjb3JkLnBLZXksIGV4cGVjdGVkW2NvdW50XS5wS2V5LCAicEtleSAjIiArIGNvdW50KTsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIGV4cGVjdGVkW2NvdW50XS5pS2V5
LCAiaUtleSAjIiArIGNvdW50KTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
a2V5LCAgZXhwZWN0ZWRbY291bnRdLmlLZXksICJjdXJzb3Iua2V5ICMiICsgY291bnQpOwotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0ZWRbY291bnRd
LnBLZXksICJjdXJzb3IucHJpbWFyeUtleSAjIiArIGNvdW50KTsKLQotICAgICAgICAgICAgY291
bnQrKzsKLSAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShleHBlY3RlZFtjb3VudF0gPyBleHBl
Y3RlZFtjb3VudF0uaUtleSA6IHVuZGVmaW5lZCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLTwv
c2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
NS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NzJhYzE0NmViYWM5NDMxNmE4
NDFhYmM2NjU2ZWFkNWM0NDMwMmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXg1Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRl
IHVzaW5nICdwcmV2dW5pcXVlJzwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsg
cmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90
aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Ci08bGluayByZWw9
YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXZ1bmlxdWUiLCBsZXQgdGVtcCByZWNv
cmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhl
IGZvbGxvd2luZyByZXF1aXJlbWVudHM6Jz4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBv
c2l0aW9uIGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFuIHBvc2l0aW9u
LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsICAgaUtleTogImluZGV4S2V5XzEiIH0sCi0gICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAotICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIg
fSBdLAotCi0gICAgICBleHBlY3RlZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5
OiAiaW5kZXhLZXlfMiIgfSwKLSAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJp
bWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY291bnQgPSAwLAotICAgICAgICAgIGN1cnNvcl9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikK
LSAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgJ3ByZXZ1bmlx
dWUnKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICdjb3VudCcpOwotICAg
ICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCi0gICAgICAg
ICAgICAgIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWNvcmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJwS2V5ICMiICsgY291bnQpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRdLmlL
ZXksICJpS2V5ICMiICsgY291bnQpOwotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci5rZXksICBleHBlY3RlZFtjb3VudF0uaUtleSwgImN1cnNvci5rZXkgIyIgKyBjb3VudCk7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RlZFtjb3Vu
dF0ucEtleSwgImN1cnNvci5wcmltYXJ5S2V5ICMiICsgY291bnQpOwotCi0gICAgICAgICAgICBj
b3VudCsrOwotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKGV4cGVjdGVkW2NvdW50XSA/IGV4
cGVjdGVkW2NvdW50XS5pS2V5IDogdW5kZWZpbmVkKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQot
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjkzYmVlZmUwNDMwZjBhNDJlOGNkZjBjMjRmNThkNTM4MWM1YzRjNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRl
eCAtIGl0ZXJhdGUgdXNpbmcgbmV4dHVuaXF1ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2LXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfaW5kZXg2LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyOTNiZWVmZTA0MzBmMGE0MmU4Y2RmMGMyNGY1OGQ1MzgxYzVjNGM2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ni1wcml2YXRl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1
cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVzaW5nIG5leHR1bmlxdWUgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Nv
bnRpbnVlX2luZGV4Ni1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0ODllNTRiMGY4OWZkMTJkYWYxN2ZhZmRjNTcyYmNkZWI3NGEw
OTMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ni1w
cml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1c2luZyBu
ZXh0dW5pcXVlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08bGluayByZWw9aGVscCBo
cmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dHVuaXF1ZSIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhl
IGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dp
bmcgcmVxdWlyZW1lbnRzOic+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBp
cyBkZWZpbmVkLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGlt
ZW91dDogMTAwMDB9KSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
ICAgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAotICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsICAgaUtleTogImluZGV4S2V5XzIiIH0gXSwK
LQotICAgICAgZXhwZWN0ZWQgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImlu
ZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsICAg
aUtleTogImluZGV4S2V5XzEiIH0sCi0gICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMiIsICAgaUtleTogImluZGV4S2V5XzIiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotCi0gICAgICAg
IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUu
YWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgdmFyIGNvdW50ID0gMCwKLSAgICAgICAgICBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJuZXh0dW5pcXVlIik7
Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0ZWQubGVuZ3RoLCAnY291bnQnKTsKLSAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAotICAgICAgICAgICAg
ICByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVj
b3JkLnBLZXksIGV4cGVjdGVkW2NvdW50XS5wS2V5LCAicEtleSAjIiArIGNvdW50KTsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIGV4cGVjdGVkW2NvdW50XS5pS2V5LCAi
aUtleSAjIiArIGNvdW50KTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5
LCAgZXhwZWN0ZWRbY291bnRdLmlLZXksICJjdXJzb3Iua2V5ICMiICsgY291bnQpOwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0ZWRbY291bnRdLnBL
ZXksICJjdXJzb3IucHJpbWFyeUtleSAjIiArIGNvdW50KTsKLQotICAgICAgICAgICAgY291bnQr
KzsKLSAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShleHBlY3RlZFtjb3VudF0gPyBleHBlY3Rl
ZFtjb3VudF0uaUtleSA6IHVuZGVmaW5lZCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLTwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2Lmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ni5o
dG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4OWU1NGIwZjg5ZmQxMmRhZjE3ZmFm
ZGM1NzJiY2RlYjc0YTA5MzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg2Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVz
aW5nIG5leHR1bmlxdWU8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJlbD1o
ZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgotPGxpbmsgcmVsPWFzc2Vy
dCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0dW5pcXVlIiwgbGV0IGZvdW5kIHJlY29yZCBi
ZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZv
bGxvd2luZyByZXF1aXJlbWVudHM6Jz4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0
aW9uIGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9u
LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsICAgaUtleTogImluZGV4S2V5XzEiIH0sCi0gICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAotICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIg
fSBdLAotCi0gICAgICBleHBlY3RlZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5
OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKLSAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJp
bWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY291bnQgPSAwLAotICAgICAgICAgIGN1cnNvcl9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikK
LSAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHR1bmlx
dWUiKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICdjb3VudCcpOwotICAg
ICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCi0gICAgICAg
ICAgICAgIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWNvcmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJwS2V5ICMiICsgY291bnQpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRdLmlL
ZXksICJpS2V5ICMiICsgY291bnQpOwotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci5rZXksICBleHBlY3RlZFtjb3VudF0uaUtleSwgImN1cnNvci5rZXkgIyIgKyBjb3VudCk7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RlZFtjb3Vu
dF0ucEtleSwgImN1cnNvci5wcmltYXJ5S2V5ICMiICsgY291bnQpOwotCi0gICAgICAgICAgICBj
b3VudCsrOwotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKGV4cGVjdGVkW2NvdW50XSA/IGV4
cGVjdGVkW2NvdW50XS5pS2V5IDogdW5kZWZpbmVkKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQot
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDMwMDI5OWUwOTIwZWU2MDQxODY4NThiOTZmZjgxODFiMWQ4YmVlYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRl
eCAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3LXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfaW5kZXg3LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMzAwMjk5ZTA5MjBlZTYwNDE4Njg1OGI5NmZmODE4MWIxZDhi
ZWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZl
RXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctcHJpdmF0ZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWU2MDk4YWYwZGExOGJiN2M2MTNkMjMx
OGU4YWExMzNkNTA5ZGY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX2luZGV4Ny1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJDdXJzb3Iu
Y29udGludWUoKSAtIGluZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50
ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBh
c3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBp
S2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7
Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKLSAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHJxID0gb2JqU3Rv
cmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOwotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFu
Y2VvZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24u
YWJvcnQoKTsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVF
cnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwot
ICAgICAgICAgICAgfSwgIkNhbGxpbmcgY29udGludWUoKSBzaG91bGQgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgbm90
IGFjdGl2ZS4iKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3Lmh0bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNWFlNjA5OGFmMGRhMThiYjdjNjEzZDIzMThlOGFhMTMzZDUwOWRm
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDcuaHRt
CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIHRo
cm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxz
Y3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0g
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlf
MSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwot
ICAgICAgICB9Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5D
dXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAg
ICAgICAgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7Ci0gICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIH0sICJDYWxsaW5n
IGNvbnRpbnVlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7Ci0KLSAgICAgICAg
ICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXg4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNmZDdmMzU2YTExZmUwMmU5M2IzZWQyNDNjMGNlMTY5ODNmM2Q4N2QuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250
aW51ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0
IHN0b3JlIGJlZW4gZGVsZXRlZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfaW5kZXg4LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzZmQ3ZjM1NmExMWZlMDJlOTNiM2VkMjQzYzBjZTE2OTgzZjNkODdkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1wcml2YXRlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250
aW51ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0
IHN0b3JlIGJlZW4gZGVsZXRlZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4LXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
OC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZTU3ZjViZDI0
ZDJmNzM0NzQ0ZmFlYzkyMDliOWQ2ZmNiMTYzMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfaW5kZXg4LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
ciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5
XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAi
aW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7Ci0gICAgICAgIG9ialN0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRl
eCIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
KTsKLQotICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfSwgIklmIHRoZSBj
dXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVk
LCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIElu
dmFsaWRTdGF0ZUVycm9yIik7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsK
LSAgICB9Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4Lmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC5odG0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZTU3ZjViZDI0ZDJmNzM0NzQ0ZmFlYzkyMDliOWQ2
ZmNiMTYzMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXg4Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5k
ZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4g
ZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJo
dHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIs
Ci0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJp
bWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDog
InBLZXkifSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgICAgIHZh
ciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAgICAgICAgICAgZGIuZGVsZXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3Rh
dGVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
OwotICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9i
amVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJv
dyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7Ci0KLSAgICAgICAg
ICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDkxYTA4YjJlZjUzM2Y3ODY5YWM0YmU0N2JkNDkxZDllZWY2MWU1NS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5j
b250aW51ZSgpIC0gYXR0ZW1wdCB0byBjYWxsIGNvbnRpbnVlIHR3byB0aW1lcyAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfaW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MWEwOGIyZWY1MzNmNzg2OWFjNGJl
NDdiZDQ5MWQ5ZWVmNjFlNTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gYXR0ZW1wdCB0byBjYWxsIGNv
bnRpbnVlIHR3byB0aW1lcyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW52YWxpZC1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlk
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU3YTZhMDJjMDZl
MzU4MGZkMjQ1YmYxMjY2N2IyYjhmM2U1ZTIwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgp
IC0gYXR0ZW1wdCB0byBjYWxsIGNvbnRpbnVlIHR3byB0aW1lczwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIpOwotCi0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICIiKTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7Ci0gICAgICAgIG9i
alN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgIHZhciBjdXJz
b3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgi
aW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAg
ICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDIsICdjb3VudCcpOwotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSh1bmRl
ZmluZWQpOwotCi0gICAgICAgICAgICAvLyBTZWNvbmQgdHJ5Ci0gICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IGN1cnNvci5jb250aW51ZSgpOyB9LCAnc2Vjb25kIGNvbnRpbnVlJyk7Ci0KLSAgICAgICAgICAg
IGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKLSAgICAgICAgICAgICAgICBmdW5j
dGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKDMpOyB9LCAndGhpcmQgY29udGludWUnKTsKLQotICAg
ICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQuaHRtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTdhNmEwMmMwNmUzNTgwZmQyNDViZjEyNjY3YjJi
OGYzZTVlMjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
dmFsaWQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBhdHRlbXB0IHRvIGNhbGwgY29udGludWUg
dHdvIHRpbWVzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRiLAot
ICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pOwot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0KLSAgICAg
ICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOwotCi0gICAgICAgIG9ialN0b3Jl
LmFkZCgiZGF0YSIsICAxKTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhMiIsIDIpOwotICAg
IH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFy
IGNvdW50ID0gMDsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0
IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgJ2NvdW50Jyk7Ci0g
ICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKHVuZGVmaW5lZCk7Ci0KLSAgICAgICAgICAgIC8vIFNl
Y29uZCB0cnkKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywK
LSAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKCk7IH0sICdzZWNv
bmQgY29udGludWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRl
RXJyb3InLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUoMyk7
IH0sICd0aGlyZCBjb250aW51ZScpOwotCi0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9
KTsKLSAgICB9OwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRjNmE2OTQxZmRlMmE2OTE3YmY5NThhNGQ3ZDY5MjBm
ZTI2NjMwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGl0ZXJhdGUgdG8gdGhlIG5l
eHQgcmVjb3JkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29i
amVjdHN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlNGM2YTY5NDFmZGUyYTY5MTdiZjk1OGE0ZDdkNjkyMGZlMjY2MzA5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29y
LmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2U3ODE2ZjliYTdlNmI5OTBhZWVj
YzU3NmZjOWI2ZTM2MTYyYWUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Nv
bnRpbnVlX29iamVjdHN0b3JlLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2Jq
ZWN0IHN0b3JlIC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlw
dD4KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgp
LAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7YXV0b0luY3JlbWVudDp0cnVlLCBrZXlQYXRo
OiJwS2V5In0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBzdG9yZSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKTsKLQotICAgICAgICBjdXJzb3JfcnEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7Ci0g
ICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgaWYg
KCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCByZWNvcmRz
Lmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsK
LSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNbY291bnRdLnBL
ZXksICJwcmltYXJ5IGtleSIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtl
eSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgImluZGV4IGtleSIpOwotCi0gICAgICAgICAgICBjdXJz
b3IuY29udGludWUoKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2U3ODE2
ZjliYTdlNmI5OTBhZWVjYzU3NmZjOWI2ZTM2MTYyYWUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlLmh0bQorKysgL2Rldi9udWxsCkBAIC0x
LDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgp
IC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0gICAgICB0ID0gYXN5bmNf
dGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAg
ICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7YXV0b0luY3JlbWVudDp0cnVlLCBr
ZXlQYXRoOiJwS2V5In0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9
OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBz
dG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKTsKLQotICAgICAgICBjdXJzb3JfcnEgPSBzdG9yZS5vcGVuQ3Vyc29y
KCk7Ci0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAg
ICAgaWYgKCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBy
ZWNvcmRzLmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKTsKLSAgICAgICAgICAgICAgICB0LmRv
bmUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52
YWx1ZTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNbY291
bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNv
cmQuaUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgImluZGV4IGtleSIpOwotCi0gICAgICAgICAg
ICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwot
ICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0
c3RvcmUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRhOWM2YjVhMTQ0ZTM0YzRmMDFlMzY4MmE2MDUxZWY5YTVhN2Vk
YTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3Rv
cmUyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
QkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBwYXNzIGEga2V5
IHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTIt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOWM2YjVhMTQ0ZTM0YzRmMDFlMzY4MmE2MDUx
ZWY5YTVhN2VkYTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
b2JqZWN0c3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRl
bXB0IHRvIHBhc3MgYSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSAgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGU0MzhmZTk3ODg1MmQzNTE0MWZhMzk2ZmRh
MDk5ZjMxYzliMGQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBz
dG9yZSAtIGF0dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5
IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0
IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0cyIpOwotICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAgICAgICAgICAgICBmdW5jdGlv
bigpIHsgY3Vyc29yLmNvbnRpbnVlKGRvY3VtZW50KTsgfSk7Ci0KLSAgICAgICAgICAgIHQuZG9u
ZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+IDwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0ZTQzOGZlOTc4ODUyZDM1MTQxZmEzOTZmZGEwOTlmMzFj
OWIwZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0
c3RvcmUyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0
byBwYXNzIGEga2V5IHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkgPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKLQotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQo
cmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFu
Y2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3RzIik7Ci0gICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29u
dGludWUoZG9jdW1lbnQpOyB9KTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0p
OwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9v
YmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY4MDgwM2Y0NjA4YzMwNjk0OGU2NWY0NWU4OWY2YmEw
NTI5NDYzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIGl0ZXJh
dGUgdG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0
aGUgbmV4dCByZWNvcmQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjY4MDgwM2Y0NjA4YzMwNjk0OGU2NWY0NWU4OWY2YmEwNTI5NDYzZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMtcHJp
dmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJ
REJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0
byB0aGUgcHJldmlvdXMgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBu
ZXh0IHJlY29yZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlMy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4MDQyZTRh
NGRmZjMwMDJiZjkxMmVlMzUwY2YxZTY2YTgyZTYwYTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5j
b250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBwcmV2
aW91cyByZWNvcmQgd2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIG5leHQgcmVjb3Jk
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVz
dCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKLQotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJuZXh0
Iik7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAg
ICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBl
eGlzdCIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKHJlY29yZHNbMF0ucEtleSk7IH0p
OwotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0
PgotCi08ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODA0MmU0YTRkZmYz
MDAyYmY5MTJlZTM1MGNmMWU2NmE4MmU2MGE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0MCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIG9i
amVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3JkIHdo
ZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBuZXh0IHJlY29yZDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJl
Y29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsg
cEtleTogInByaW1hcnlLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAibmV4dCIpOwotCi0gICAgICAg
IGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRf
dHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKLSAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24oKSB7IGN1cnNvci5jb250aW51ZShyZWNvcmRzWzBdLnBLZXkpOyB9KTsKLQotICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0i
bG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3Rv
cmU0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTVmMzFiNTI0
YmM0ZTVkYTQzZTFhNWQ5ZDJmNjdhZjQ3OWNkMWQ3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qg
c3RvcmUgLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRp
cmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgIAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1ZjMxYjUyNGJjNGU1ZGE0M2Ux
YTVkOWQyZjY3YWY0NzljZDFkNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfb2JqZWN0c3RvcmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3Rv
cmUgLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRpcmVj
dGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3Rz
dG9yZTQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjBkOTFkOWIxMjI2MmYxNDNmYmFlYzMzMmRiNjI3MzEyODViM2Yw
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9y
ZTQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRl
bXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBz
ZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2
YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9IF07Ci0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6
ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQot
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY291bnQg
PSAwLAotICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcihudWxsLCAicHJldiIpOwotCi0gICAgICAgIGN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Ig
IT0gbnVsbCwgImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAgICBzd2l0Y2goY291bnQpIHsK
LSAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci52YWx1ZS5wS2V5LCByZWNvcmRzWzJdLnBLZXksICJmaXJzdCBjdXJzb3IgcGtleSIpOwotICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShyZWNvcmRzWzFdLnBLZXkpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwgcmVjb3Jkc1sxXS5wS2V5LCAic2Vjb25kIGN1
cnNvciBwa2V5Iik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwK
LSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51ZShyZWNvcmRz
WzJdLnBLZXkpOyB9KTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50IHZhbHVlOiAiICsgY291bnQpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2Jq
ZWN0c3RvcmU0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjBkOTFkOWIxMjI2
MmYxNDNmYmFlYzMzMmRiNjI3MzEyODViM2YwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNTcg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBv
YmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4g
dGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAg
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJp
bWFyeUtleV8yIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICB2YXIgY291bnQgPSAwLAotICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcihudWxsLCAicHJldiIpOwotCi0g
ICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAg
ICBzd2l0Y2goY291bnQpIHsKLSAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5LCByZWNvcmRzWzJdLnBLZXksICJmaXJzdCBj
dXJzb3IgcGtleSIpOwotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShyZWNvcmRzWzFd
LnBLZXkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDE6Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwgcmVjb3Jkc1sx
XS5wS2V5LCAic2Vjb25kIGN1cnNvciBwa2V5Iik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Ro
cm93cygiRGF0YUVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNv
ci5jb250aW51ZShyZWNvcmRzWzJdLnBLZXkpOyB9KTsKLSAgICAgICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50IHZhbHVlOiAiICsg
Y291bnQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9
KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9v
YmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlhMWE4NzUxNGVjM2VmZDFmN2U0ZmVmNTA2ODY0YzUz
NzExZmY4Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTlhMWE4NzUxNGVjM2VmZDFmN2U0ZmVmNTA2ODY0YzUzNzExZmY4Mi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUtcHJp
dmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJ
REJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5h
Y3RpdmVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlNS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyNjMxNWNi
ZDAzNTc2YWMyYzI1ZDI4YjVhOTk5ZmU3YTExNTcyYzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cg
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElE
QkN1cnNvciwgImN1cnNvciBleGlzdHMiKTsKLQotICAgICAgICAgICAgZS50YXJnZXQudHJhbnNh
Y3Rpb24uYWJvcnQoKTsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0aW9uSW5h
Y3RpdmVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOwotICAgICAgICAgICAgfSwgIkNhbGxpbmcgY29udGludWUoKSBzaG91bGQgdGhyb3dzIGFu
IGV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNhY3Rpb24g
aXMgbm90IGFjdGl2ZS4iKTsKLQotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7
Ci0gICAgfTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3Jl
NS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyNjMxNWNiZDAzNTc2YWMyYzI1
ZDI4YjVhOTk5ZmU3YTExNTcyYzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfb2JqZWN0c3RvcmU1Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1cnNv
ci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6
Ly93d3cuaW50ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlL
ZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOwot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6
InBLZXkifSk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlz
dHMiKTsKLQotICAgICAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKLSAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfSwg
IkNhbGxpbmcgY29udGludWUoKSBzaG91bGQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgbm90IGFjdGl2ZS4iKTsKLQot
Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZTBmMTMwOWFkZTE2M2UzYzE5YmFj
YzY3ZmQ3MWJjNWZmNTQ3YzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cg
SW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi1w
cml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmVlMGYx
MzA5YWRlMTYzZTNjMTliYWNjNjdmZDcxYmM1ZmY1NDdjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuY29udGludWUo
KSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmpl
Y3Qgc3RvcmUgYmVlbiBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmU2LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjU2OTU1OWY4ZTk2OGVlMjkyZGE4ZmNjNDE4Yjg3MGFhYTJhM2IyZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3Rv
cmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4g
ZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJo
dHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj4gPC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwK
LSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0g
XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQ
YXRoOiJwS2V5In0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5n
dGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLQotICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNv
cl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0cyIpOwotCi0gICAgICAgICAg
ICBkYi5kZWxldGVPYmplY3RTdG9yZSgidGVzdCIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJz
b3IuY29udGludWUoKTsKLSAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9y
IGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0
aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIp
OwotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9vYmplY3RzdG9yZTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU2Lmh0bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjU2OTU1OWY4ZTk2OGVlMjkyZGE4ZmNjNDE4Yjg3MGFhYTJhM2Iy
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9y
ZTYuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmpl
Y3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3Jl
IGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj4gPC9kaXY+Ci08c2NyaXB0PgotICAgIHZh
ciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6
ICJwcmltYXJ5S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5
XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHtrZXlQYXRoOiJwS2V5In0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLQot
ICAgICAgICB2YXIgY3Vyc29yX3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOwotCi0gICAgICAg
IGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0cyIpOwotCi0gICAg
ICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgidGVzdCIpOwotICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291
cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxl
bWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVF
cnJvciIpOwotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk4NWY5YzdkZWVkY2IwYWRlN2JiMWQxYjFmMGViYzZl
YTY3M2ViYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vy
c29yLmRlbGV0ZSgpIC0gaW5kZXggLSByZW1vdmUgYSByZWNvcmQgZnJvbSB0aGUgb2JqZWN0IHN0
b3JlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ODVmOWM3ZGVlZGNiMGFk
ZTdiYjFkMWIxZjBlYmM2ZWE2NzNlYmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfZGVsZXRlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSByZW1vdmUgYSBy
ZWNvcmQgZnJvbSB0aGUgb2JqZWN0IHN0b3JlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUzMGFjZmQ1
ZTdmMTFhMDI0NjZmNjNlZTdhNThhODMwMjgxNDczMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0g
aW5kZXggLSByZW1vdmUgYSByZWNvcmQgZnJvbSB0aGUgb2JqZWN0IHN0b3JlPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAgIHQgPSBh
c3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBp
S2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotICAgICAgICBv
YmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhDdXJzb3JEZWxldGVSZWNvcmQpOwotCi0KLSAgICBmdW5jdGlvbiBDdXJzb3JEZWxldGVS
ZWNvcmQoZSkgewotICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVh
ZHdyaXRlIiksCi0gICAgICAgICAgY3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0IikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2Vv
ZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKLSAgICAgICAgICAgIGN1cnNvci5kZWxldGUo
KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhW
ZXJpZnlSZWNvcmRXYXNEZWxldGVkKTsKLSAgICB9Ci0KLQotICAgIGZ1bmN0aW9uIFZlcmlmeVJl
Y29yZFdhc0RlbGV0ZWQoZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBpZiAoIWN1cnNv
cikgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICdjb3VudCcpOwot
ICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5LCByZWNvcmRzWzFdLnBLZXkpOwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUuaUtleSwgcmVjb3Jkc1sxXS5pS2V5KTsK
LSAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgY291bnQrKzsKLSAg
ICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfaW5kZXguaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTMw
YWNmZDVlN2YxMWEwMjQ2NmY2M2VlN2E1OGE4MzAyODE0NzMwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw2OSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRl
eCAtIHJlbW92ZSBhIHJlY29yZCBmcm9tIHRoZSBvYmplY3Qgc3RvcmU8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgY291bnQgPSAwLAotICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6
ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0gICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KEN1cnNvckRlbGV0ZVJlY29yZCk7Ci0KLQotICAgIGZ1bmN0aW9uIEN1cnNvckRlbGV0ZVJlY29y
ZChlKSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3Jp
dGUiKSwKLSAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRlc3QiKQotICAg
ICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElE
QkN1cnNvciwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOwot
ICAgICAgICB9KTsKLQotICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlm
eVJlY29yZFdhc0RlbGV0ZWQpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3Jk
V2FzRGVsZXRlZChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGlmICghY3Vyc29yKSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7Ci0gICAg
ICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbMV0ucEtleSk7Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5pS2V5LCByZWNvcmRzWzFdLmlLZXkpOwotICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRl
X2luZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmZiYWNlNjdlYzEwODc1NGRhOGM2MWYyODc4NWEwZWI0NWFhMGJlNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5kZWxldGUo
KSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJh
bnNhY3Rpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLXByaXZh
dGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmJhY2U2N2Vj
MTA4NzU0ZGE4YzYxZjI4Nzg1YTBlYjQ1YWEwYmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0
dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9k
ZWxldGVfaW5kZXgyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMzNmOTEyNDQ4ODhmNGIwOTZmNDYzYTA0ODQzM2M1NDg3NTMxMThj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJl
Y29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0g
ICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsg
cEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
ICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRo
OiAicEtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5
Iik7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQot
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1
cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IuZGVsZXRl
KCk7IH0pOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDIuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzNmOTEyNDQ4ODhmNGIwOTZmNDYzYTA0
ODQzM2M1NDg3NTMxMThjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9pbmRleDIuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92
ZSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0g
XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBr
ZXlQYXRoOiAicEtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRl
eCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2VydF90
cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOwotICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
ZGVsZXRlKCk7IH0pOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NmJmMTcyYjljZjE2YjJkOTA3NWM5ZTdlZjNmMDcxMDBmNjczOTkwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBh
dHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2YmYxNzJiOWNmMTZiMmQ5MDc1Yzll
N2VmM2YwNzEwMGY2NzM5OTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1QQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1v
dmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb24gCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfZGVsZXRlX2luZGV4My1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMxYzMwNDRiM2Y1YzBiZmNmNTVmY2MxYjA1YzExNDkyYWFlYTRhZGYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My1wcml2YXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJz
b3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGFuIGlu
YWN0aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwK
LSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsK
LSAgICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXki
KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0KLSAgICAgICAgdmFyIGN1cnNv
cl9ycSA9IGluZGV4Lm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9m
IElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAgd2luZG93LmN1cnNvciA9
IGN1cnNvcjsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25j
b21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cuY3Vy
c29yLmRlbGV0ZSgpOyB9KQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAg
IH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9p
bmRleDMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWMzMDQ0YjNmNWMwYmZj
ZjU1ZmNjMWIwNWMxMTQ5MmFhZWE0YWRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2RlbGV0ZV9pbmRleDMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0
IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0gICAgICAgIHZhciBpbmRleCA9IG9ialN0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOwotCi0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBpbmRleC5vcGVuQ3Vyc29yKCk7Ci0K
LSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsK
LSAgICAgICAgICAgIHdpbmRvdy5jdXJzb3IgPSBjdXJzb3I7Ci0gICAgICAgIH0pOwotCi0gICAg
ICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJy
b3InLCBmdW5jdGlvbigpIHsgd2luZG93LmN1cnNvci5kZWxldGUoKTsgfSkKLSAgICAgICAgICAg
IHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzczNjBhOGFiNDlhYmVmZjRlOTMxMDM4N2Jh
MDQ2ZTZjZWZmZTgxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
aW5kZXg0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1
c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfaW5kZXg0LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzNzM2MGE4YWI0OWFiZWZmNGU5MzEwMzg3YmEwNDZlNmNlZmZlODE5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJz
b3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBv
YmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0LXByaXZhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRl
eDQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjZlNTc2NzQw
OWQ3ZDZmY2Y3YmE4YjhmN2VjMzk1MjM2NGI0ODg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBj
YXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0g
ICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5
XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTog
ImluZGV4S2V5XzEiIH1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7Ci0gICAgICAgIG9ialN0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRl
eCIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
LCAiY3Vyc29yIGV4aXN0Iik7Ci0KLSAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJz
dG9yZSIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7Ci0gICAgICAgICAg
ICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhh
cyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7
Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQu
aHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjZlNTc2NzQwOWQ3ZDZmY2Y3YmE4
YjhmN2VjMzk1MjM2NGI0ODg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgp
IC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3Jl
IGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0KLSAgICB2
YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH1dOwotCi0g
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtr
ZXlQYXRoIDogInBLZXkifSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpS2V5Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0g
ICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKLSAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Ci0K
LSAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICBjdXJzb3IuZGVsZXRlKCk7Ci0gICAgICAgICAgICB9LCAiSWYgdGhlIGN1cnNvcidz
IHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBp
bXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0
YXRlRXJyb3IiKTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjlhYWFmMjJkNzFmNDJlZWQ2NjU1NTNl
Yzg1ODRhMTBiMThhNWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9pbmRleDUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHRoZSBjdXJzb3IgaXMgYmVpbmcgaXRlcmF0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkNjlhYWFmMjJkNzFmNDJlZWQ2NjU1NTNlYzg1ODRhMTBiMThhNWViLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJz
b3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGN1
cnNvciBpcyBiZWluZyBpdGVyYXRlZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZjMGUyOTY3ZDYy
YzM3MGRjYjY0ZGMwNzVkYTkxZGFkNWFmYjEzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXg1LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PklEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hl
biB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItZGVsZXRlLUlEQlJlcXVlc3QiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAg
ICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKLSAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAi
aW5kZXhLZXlfMSIgfV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKLSAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5k
ZXgiKS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNv
ciwgImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOwotICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfaW5kZXg1Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZj
MGUyOTY3ZDYyYzM3MGRjYjY0ZGMwNzVkYTkxZGFkNWFmYjEzYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM5
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PklEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hl
biB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItZGVsZXRlLUlEQlJlcXVlc3QiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAg
ICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKLSAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAi
aW5kZXhLZXlfMSIgfV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKLSAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5k
ZXgiKS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNv
ciwgImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOwotICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjNjYwZmExNDBhZmIzODY2NDY1MDgzMWZlZGM1NDA3
ZTdkNDFmYzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIHJlbW92ZSBhIHJlY29yZCBmcm9t
IHRoZSBvYmplY3Qgc3RvcmUgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVjNjYwZmExNDBhZmIzODY2NDY1MDgzMWZlZGM1NDA3ZTdkNDFmYzYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vy
c29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gcmVtb3ZlIGEgcmVjb3JkIGZyb20gdGhlIG9i
amVjdCBzdG9yZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUt
cHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzJhZDQ3NjVlY2I4
ZmFmYmExNTM2MTZiZTI3ZWZmNWQyZjIwZDI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkg
LSBvYmplY3Qgc3RvcmUgLSByZW1vdmUgYSByZWNvcmQgZnJvbSB0aGUgb2JqZWN0IHN0b3JlIDwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0g
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFy
eUtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07
Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQot
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5
UGF0aDogInBLZXkiIH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9
OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhDdXJzb3JEZWxldGVSZWNv
cmQpOwotCi0KLSAgICBmdW5jdGlvbiBDdXJzb3JEZWxldGVSZWNvcmQoZSkgewotICAgICAgICB2
YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIiksCi0gICAgICAgICAg
Y3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcigpOwotCi0gICAg
ICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAgY3Vy
c29yLmRlbGV0ZSgpOwotICAgICAgICB9KTsKLQotICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQu
c3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc0RlbGV0ZWQpOwotICAgIH0KLQotCi0gICAgZnVuY3Rp
b24gVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0K
LSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAg
IGlmICghY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwg
J2NvdW50Jyk7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbMV0ucEtl
eSk7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7
Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWMyYWQ0NzY1ZWNiOGZhZmJhMTUzNjE2YmUyN2VmZjVkMmYyMGQyOC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUuaHRtCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURC
Q3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gcmVtb3ZlIGEgcmVjb3JkIGZyb20gdGhl
IG9iamVjdCBzdG9yZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAg
ICAgY291bnQgPSAwLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBb
IHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInBy
aW1hcnlLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
Q3Vyc29yRGVsZXRlUmVjb3JkKTsKLQotCi0gICAgZnVuY3Rpb24gQ3Vyc29yRGVsZXRlUmVjb3Jk
KGUpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0
ZSIpLAotICAgICAgICAgIGN1cnNvcl9ycSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5D
dXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQot
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsK
LSAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgdHhu
Lm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRXYXNEZWxldGVkKTsKLSAgICB9
Ci0KLQotICAgIGZ1bmN0aW9uIFZlcmlmeVJlY29yZFdhc0RlbGV0ZWQoZSkgewotICAgICAgICB2
YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAu
b3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OwotCi0gICAgICAgICAgICBpZiAoIWN1cnNvcikgewotICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDEsICdjb3VudCcpOwotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5
LCByZWNvcmRzWzFdLnBLZXkpOwotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3Rv
cmUyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRjYjZiNzI3
MGY5YjViZDg4MDMxYmIzMDhkYzY2ZTkxMGUyOTg0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9y
ZSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9u
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMi1w
cml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRjYjZi
NzI3MGY5YjViZDg4MDMxYmIzMDhkYzY2ZTkxMGUyOTg0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0g
b2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkg
dHJhbnNhY3Rpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3Jl
Mi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjNTdlOTlmNjk1
ZDY5ZjY5YTQ0MjgyN2M2YzY1NzhhNmMyNTMzM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuZGVsZXRl
KCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJlYWQt
b25seSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlL
ZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0K
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5z
YWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAg
ICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgYXNzZXJ0
X3RydWUoY3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKLSAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoJ1JlYWRPbmx5RXJyb3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLmRlbGV0ZSgpOyB9
KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0
PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMi5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3Rv
cmUyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M1N2U5OWY2OTVkNjlmNjlh
NDQyODI3YzZjNjU3OGE2YzI1MzMzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmUyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9y
ZSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9u
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVz
dCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImlu
ZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBp
S2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0g
bnVsbCwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnUmVhZE9u
bHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IuZGVsZXRlKCk7IH0pOwotICAgICAgICAgICAg
dC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmJmMTcyYjljZjE2YjJk
OTA3NWM5ZTdlZjNmMDcxMDBmNjczOTkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRv
IHJlbW92ZSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2YmYxNzJiOWNmMTZiMmQ5MDc1
YzllN2VmM2YwNzEwMGY2NzM5OTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1w
dCB0byByZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb24gCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMy1wcml2YXRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyZmQ4MjAxYWRjMzAyODlmODYwODU2Y2U5ZWE1MzM4
YjcyY2QyZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlMy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQg
dG8gcmVtb3ZlIGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAg
ICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIg
fSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRl
eEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tp
XSk7Ci0KLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsKLQot
ICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFz
c2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOwot
ICAgICAgICAgICAgd2luZG93LmN1cnNvciA9IGN1cnNvcjsKLSAgICAgICAgfSk7Ci0KLSAgICAg
ICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJv
cicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cuY3Vyc29yLmRlbGV0ZSgpOyB9KQotICAgICAgICAgICAg
dC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMuaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmZkODIwMWFkYzMwMjg5Zjg2MDg1NmNlOWVhNTMzOGI3
MmNkMmY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3Rz
dG9yZTMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBh
IHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9
IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBd
OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0g
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQ
YXRoOiAicEtleSIgfSk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxl
bmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotCi0gICAg
ICAgIHZhciBjdXJzb3JfcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vy
c29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShj
dXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKLSAgICAgICAgICAg
IHdpbmRvdy5jdXJzb3IgPSBjdXJzb3I7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGUudGFyZ2V0
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InLCBmdW5jdGlv
bigpIHsgd2luZG93LmN1cnNvci5kZWxldGUoKTsgfSkKLSAgICAgICAgICAgIHQuZG9uZSgpOwot
ICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc2Y2U5MDc4ODk3OWI2MzcxZjRjOWVhYzlk
MDFlMTI5MjAyZGNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRT
dGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc2Y2U5MDc4ODk3OWI2Mzcx
ZjRjOWVhYzlkMDFlMTI5MjAyZGNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3Jl
IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRl
bGV0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5Nzc1YzhmMTY2MzJhM2Mz
NmFhYjI2YTE5YmE5N2RkNzYyMzQ3OWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfZGVsZXRlX29iamVjdHN0b3JlNC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0
KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCi0gICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChl
dmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0p
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICAgICAgfQotICAgICAgICB2
YXIgcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5j
ZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOwotCi0gICAgICAgICAgICBkYi5kZWxldGVP
YmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRT
dGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgp
OwotICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9i
amVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJv
dyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7Ci0KLSAgICAgICAg
ICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjk3NzVjOGYxNjYzMmEzYzM2YWFiMjZhMTliYTk3ZGQ3NjIzNDc5YS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0Lmh0bQorKysgL2Rldi9u
dWxsCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPklEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IElu
dmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50
ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
fSwKLSAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBh
dGg6InBLZXkifSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Ci0KLSAgICAgICAgICAg
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJz
b3IuZGVsZXRlKCk7Ci0gICAgICAgICAgICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBl
ZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlv
biBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsK
LQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGY5ZWQ1YmUyZmIyZjlkMDY5NWVmMjFk
NTM5YTE0OTE3NmI3M2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBmOWVkNWJlMmZiMmY5ZDA2
OTVlZjIxZDUzOWExNDkxNzZiNzNiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3Jl
IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJh
dGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2ZhNWYyMzNjZWVmYmVkNDRh
OGMxMGVjZWZlOGIwMDVlMjExODlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
SURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJy
b3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkPC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItZGVsZXRlLUlEQlJlcXVlc3QiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KSwKLSAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKLSAgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2
ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4
biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKTsKLSAgICAgICAgdmFyIHJx
ID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Ci0KLSAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0
YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7
Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2ZhNWYyMzNjZWVmYmVkNDRhOGMxMGVj
ZWZlOGIwMDVlMjExODlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZTUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCQ3Vyc29yLmRlbGV0
ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vy
c29yIGlzIGJlaW5nIGl0ZXJhdGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjd2lkbC1JREJDdXJzb3ItZGVsZXRlLUlEQlJlcXVlc3QiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVj
b3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKLSAgICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKTsKLSAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0
b3JlKCJzdG9yZSIpLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50
YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2Yg
SURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Ci0KLSAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7Ci0gICAgICAgICAgICB9
KTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9pdGVyYXRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzgzZWQ5ZDIyNTJiMmQ5YmQ5NzM3YzhmOTQ4YjI3ODY4ZmQ1YTcwNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVl
KCkgLSBvYmplY3RzdG9yZSAtIGRlbGV0ZSBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9pdGVyYXRpbmctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctcHJpdmF0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4M2VkOWQyMjUyYjJkOWJkOTczN2M4Zjk0
OGIyNzg2OGZkNWE3MDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0
aW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGRlbGV0ZSBuZXh0IGVs
ZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLXByaXZh
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjUzNGJjYzNiNGY2M2ZiZTY5
ODJiYWFmZjA4NjBmMGJlMzQyY2Q5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9pdGVyYXRpbmctcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3Rv
cmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0gICAgICB0
ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSk7Ci0KLSAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXki
IH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTAwOyBpKyspCi0gICAgICAgICAg
ICBvYmpTdG9yZS5hZGQoeyBrZXk6IGksIHZhbDogInZhbF8iK2kgfSk7Ci0KLSAgICAgICAgdmFy
IHJxID0gb2JqU3RvcmUuYWRkKHsga2V5OiA1MDAsIHZhbDogInZhbF81MDAiIH0pOwotCi0gICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDk5OTsgaSA+IDUwMDsgaS0tKQotICAgICAgICAgICAgICAgIG9ialN0b3Jl
LmFkZCh7IGtleTogaSwgdmFsOiAidmFsXyIraSB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgWydrZXknLCAndmFsJ10pOwotICAgIH07Ci0K
LSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNv
cl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQsCi0gICAgICAgICAgICAgIHN0b3JlID0gZS50YXJnZXQuc291cmNlOwotICAgICAgICAg
ICAgaWYgKCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCA5
OTcsICJjdXJzb3IgcnVuIGNvdW50Iik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgcnEgPSBlLnRh
cmdldC5zb3VyY2UuY291bnQoKTsKLSAgICAgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LCA5OTUsICJvYmplY3QgY291bnQiKTsKLSAgICAgICAgICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzd2l0Y2ggKGN1cnNvci5rZXkpIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIDEwOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvdW50LCBjdXJzb3Iua2V5LCAiY291bnQiKTsKLSAgICAgICAgICAgICAgICAgICAgc3RvcmUu
ZGVsZXRlKDExKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAg
ICBjYXNlIDEyOgotICAgICAgICAgICAgICAgIGNhc2UgNDk5OgotICAgICAgICAgICAgICAgIGNh
c2UgNTAwOgotICAgICAgICAgICAgICAgIGNhc2UgNTAxOgotICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5IC0gMSwgImNvdW50Iik7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBuZXh0IGtl
eQotICAgICAgICAgICAgICAgIGNhc2UgNTEwOgotICAgICAgICAgICAgICAgICAgICBzdG9yZS5k
ZWxldGUoNTExKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAg
ICAvLyBEZWxldGUgcmFuZG9tbHkKLSAgICAgICAgICAgICAgICBjYXNlIDUxMjoKLSAgICAgICAg
ICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDYxMSk7Ci0gICAgICAgICAgICAgICAgICAgIHN0b3Jl
LmRlbGV0ZSg0OTkpOwotICAgICAgICAgICAgICAgICAgICBzdG9yZS5kZWxldGUoNTAwKTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAvLyBEZWxldGUgYW5k
IGFkZCBhIG5ldyBrZXkKLSAgICAgICAgICAgICAgICBjYXNlIDUyMDoKLSAgICAgICAgICAgICAg
ICAgICAgc3RvcmUuZGVsZXRlKDUyMSk7Ci0gICAgICAgICAgICAgICAgICAgIHN0b3JlLmFkZCh7
IGtleTogNTIxLCB2YWw6ICJuZXcifSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0g
ICAgICAgICAgICAgICAgY2FzZSA1MjE6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY3Vyc29yLnZhbHVlLnZhbCwgIm5ldyIpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LQotICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IGJlIGhlcmUgb25jZSBhbHRob3Vn
aCB3ZSdyZSBiYXNpY2FsbHkgbWFraW5nIHRoZSBpbmRleAotICAgICAgICAgICAgICAgIC8vICJo
ZWF2aWVyIiB3aXRoIGl0cyBuZXcga2V5LgotICAgICAgICAgICAgICAgIGNhc2UgNTMwOgotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS52YWwsICJ2YWxfNTMw
Iik7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUoeyBrZXk6IDUzMCwgdmFsOiAi
dmFsXzUzMSIgfSkKLQotICAgICAgICAgICAgICAgICAgICBzdG9yZS5nZXQoNTMwKS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52YWwsICJ2YWxfNTMxIik7Ci0gICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAg
ICAgIC8vIFNob3VsZG4ndCBoYXBwZW4uCi0gICAgICAgICAgICAgICAgY2FzZSAxMToKLSAgICAg
ICAgICAgICAgICBjYXNlIDUxMToKLSAgICAgICAgICAgICAgICBjYXNlIDYxMToKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChjdXJzb3Iua2V5ICsgIiBzaG91bGQgYmUgZGVs
ZXRlZCBhbmQgbmV2ZXIgcnVuIik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIGNv
dW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj4g
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9pdGVyYXRpbmcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfaXRlcmF0aW5nLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjUzNGJjYzNiNGY2M2ZiZTY5ODJiYWFmZjA4NjBmMGJlMzQyY2Q5MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmcuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMTEw
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0g
b2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRp
dGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAs
Ci0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSk7
Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBh
dGg6ICJrZXkiIH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTAwOyBpKyspCi0g
ICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6IGksIHZhbDogInZhbF8iK2kgfSk7Ci0KLSAg
ICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHsga2V5OiA1MDAsIHZhbDogInZhbF81MDAiIH0p
OwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDk5OTsgaSA+IDUwMDsgaS0tKQotICAgICAgICAgICAgICAg
IG9ialN0b3JlLmFkZCh7IGtleTogaSwgdmFsOiAidmFsXyIraSB9KTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgWydrZXknLCAndmFsJ10pOwot
ICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
dmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQsCi0gICAgICAgICAgICAgIHN0b3JlID0gZS50YXJnZXQuc291cmNlOwot
ICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvdW50LCA5OTcsICJjdXJzb3IgcnVuIGNvdW50Iik7Ci0KLSAgICAgICAgICAgICAgICB2YXIg
cnEgPSBlLnRhcmdldC5zb3VyY2UuY291bnQoKTsKLSAgICAgICAgICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA5OTUsICJvYmplY3QgY291bnQiKTsKLSAgICAgICAg
ICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzd2l0Y2ggKGN1cnNvci5r
ZXkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIDEwOgotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5LCAiY291bnQiKTsKLSAgICAgICAgICAgICAgICAg
ICAgc3RvcmUuZGVsZXRlKDExKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgICAgICAgICBjYXNlIDEyOgotICAgICAgICAgICAgICAgIGNhc2UgNDk5OgotICAgICAgICAg
ICAgICAgIGNhc2UgNTAwOgotICAgICAgICAgICAgICAgIGNhc2UgNTAxOgotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5IC0gMSwgImNvdW50Iik7Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgLy8gRGVsZXRlIHRo
ZSBuZXh0IGtleQotICAgICAgICAgICAgICAgIGNhc2UgNTEwOgotICAgICAgICAgICAgICAgICAg
ICBzdG9yZS5kZWxldGUoNTExKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgICAgICAgICAvLyBEZWxldGUgcmFuZG9tbHkKLSAgICAgICAgICAgICAgICBjYXNlIDUxMjoK
LSAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDYxMSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHN0b3JlLmRlbGV0ZSg0OTkpOwotICAgICAgICAgICAgICAgICAgICBzdG9yZS5kZWxldGUo
NTAwKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAvLyBE
ZWxldGUgYW5kIGFkZCBhIG5ldyBrZXkKLSAgICAgICAgICAgICAgICBjYXNlIDUyMDoKLSAgICAg
ICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDUyMSk7Ci0gICAgICAgICAgICAgICAgICAgIHN0
b3JlLmFkZCh7IGtleTogNTIxLCB2YWw6ICJuZXcifSk7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgICAgICAgICAgY2FzZSA1MjE6Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnZhbCwgIm5ldyIpOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IGJlIGhlcmUgb25j
ZSBhbHRob3VnaCB3ZSdyZSBiYXNpY2FsbHkgbWFraW5nIHRoZSBpbmRleAotICAgICAgICAgICAg
ICAgIC8vICJoZWF2aWVyIiB3aXRoIGl0cyBuZXcga2V5LgotICAgICAgICAgICAgICAgIGNhc2Ug
NTMwOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS52YWws
ICJ2YWxfNTMwIik7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUoeyBrZXk6IDUz
MCwgdmFsOiAidmFsXzUzMSIgfSkKLQotICAgICAgICAgICAgICAgICAgICBzdG9yZS5nZXQoNTMw
KS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52YWwsICJ2YWxfNTMxIik7Ci0g
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICAgICAgICAgIC8vIFNob3VsZG4ndCBoYXBwZW4uCi0gICAgICAgICAgICAgICAgY2FzZSAx
MToKLSAgICAgICAgICAgICAgICBjYXNlIDUxMToKLSAgICAgICAgICAgICAgICBjYXNlIDYxMToK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChjdXJzb3Iua2V5ICsgIiBzaG91
bGQgYmUgZGVsZXRlZCBhbmQgbmV2ZXIgcnVuIik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAg
ICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBp
ZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwZjYzZGZhOWYyYzg0NTMw
OGNiZGQxNGRhYzI3Mzk5MjUwMDRjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9pdGVyYXRpbmdfaW5kZXgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGRlbGV0ZSBuZXh0IGVs
ZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9p
dGVyYXRpbmdfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVhMGY2M2RmYTlmMmM4NDUzMDhjYmRkMTRkYWMyNzM5OTI1MDA0YzcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29y
LmNvbnRpbnVlKCkgLSBpbmRleCAtIGRlbGV0ZSBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRv
IGl0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LXByaXZhdGUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYzMDNjYzE4ZjQ5NzgwNzU4M2YyNzVhMjI1
N2VlODU4ZTE4ZDBlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRp
bmdfaW5kZXgtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGRlbGV0
ZSBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAgIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKLSAgICAgIHJlY29yZHMgPSBb
IHsgcEtleTogInByaW1hcnlLZXlfMCIsIG9iajogeyBpS2V5OiAiaUtleV8wIiB9fSwKLSAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIG9iajogeyBpS2V5OiAiaUtleV8x
IiB9fSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsIG9iajogeyBp
S2V5OiAiaUtleV8yIiB9fSBdLAotCi0gICAgICBleHBlY3RlZCA9IFsgWyAicHJpbWFyeUtleV8y
IiwgImlLZXlfMiIgXSwKLSAgICAgICAgICAgICAgICAgICBbICJwcmltYXJ5S2V5XzAiLCAiaUtl
eV8wIiBdIF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
LCB7a2V5UGF0aDpbInBLZXkiLCAib2JqLmlLZXkiXX0pOwotICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCBbICJwS2V5IiwgIm9iai5pS2V5IiBdKTsKLQotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3Qi
LCAicmVhZHdyaXRlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7Ci0KLSAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBpZiAoIWN1cnNv
cikgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjdXJzb3IgcnVu
IGNvdW50Iik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkgewotICAgICAgICAgICAgICAgIGUudGFyZ2V0LnNv
dXJjZS5vYmplY3RTdG9yZS5kZWxldGUoWyJwcmltYXJ5S2V5XzEiLCAiaUtleV8xIl0pOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjdXJzb3Iua2V5LCBl
eHBlY3RlZFtjb3VudF0sICJwcmltYXJ5IGtleSIpOwotCi0gICAgICAgICAgICBjdXJzb3IuY29u
dGludWUoKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3Nj
cmlwdD4KLQotPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXguaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4
Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYzMDNjYzE4ZjQ5NzgwNzU4M2Yy
NzVhMjI1N2VlODU4ZTE4ZDBlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9p
dGVyYXRpbmdfaW5kZXguaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGRlbGV0ZSBu
ZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAgIHQgPSBhc3luY190ZXN0
KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKLSAgICAgIHJlY29yZHMgPSBbIHsg
cEtleTogInByaW1hcnlLZXlfMCIsIG9iajogeyBpS2V5OiAiaUtleV8wIiB9fSwKLSAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIG9iajogeyBpS2V5OiAiaUtleV8xIiB9
fSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsIG9iajogeyBpS2V5
OiAiaUtleV8yIiB9fSBdLAotCi0gICAgICBleHBlY3RlZCA9IFsgWyAicHJpbWFyeUtleV8yIiwg
ImlLZXlfMiIgXSwKLSAgICAgICAgICAgICAgICAgICBbICJwcmltYXJ5S2V5XzAiLCAiaUtleV8w
IiBdIF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
a2V5UGF0aDpbInBLZXkiLCAib2JqLmlLZXkiXX0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCBbICJwS2V5IiwgIm9iai5pS2V5IiBdKTsKLQotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAi
cmVhZHdyaXRlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0
IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7Ci0KLSAgICAgICAgY3Vy
c29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBpZiAoIWN1cnNvcikg
ewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjdXJzb3IgcnVuIGNv
dW50Iik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGlmIChjb3VudCA9PT0gMCkgewotICAgICAgICAgICAgICAgIGUudGFyZ2V0LnNvdXJj
ZS5vYmplY3RTdG9yZS5kZWxldGUoWyJwcmltYXJ5S2V5XzEiLCAiaUtleV8xIl0pOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjdXJzb3Iua2V5LCBleHBl
Y3RlZFtjb3VudF0sICJwcmltYXJ5IGtleSIpOwotCi0gICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3Njcmlw
dD4KLQotPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGlu
Z19pbmRleDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDc4
MGIyZTA1YzE3NGM5MDAzNDQ0N2FlMzJjYzEzMjM1ODI5NDU2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAt
IGFkZCBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgy
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ3ODBiMmUwNWMxNzRjOTAwMzQ0NDdhZTMyY2MxMzIz
NTgyOTQ1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5k
ZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGFkZCBuZXh0IGVsZW1lbnQsIGFu
ZCBpdGVyYXRlIHRvIGl0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDIt
cHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzU0YzdjY2FmZmRk
NDkzMjU0NGU2ZjA1YThhNzQ3YTE1MTdhMjZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2l0ZXJhdGluZ19pbmRleDItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkg
LSBpbmRleCAtIGFkZCBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50ID0gMCwKLSAgICAg
IHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKLSAgICAg
IHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIG9iajogeyBpS2V5OiAiaUtleV8w
IiB9fSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsIG9iajogeyBp
S2V5OiAiaUtleV8yIiB9fSBdLAotCi0gICAgICBleHBlY3RlZCA9IFsgWyAicHJpbWFyeUtleV8y
IiwgImlLZXlfMiIgXSwKLSAgICAgICAgICAgICAgICAgICBbICJwcmltYXJ5S2V5XzEiLCAiaUtl
eV8xIiBdLAotICAgICAgICAgICAgICAgICAgIFsgInByaW1hcnlLZXlfMCIsICJpS2V5XzAiIF0g
XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQ
YXRoOiJwS2V5In0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCBbICJw
S2V5IiwgIm9iai5pS2V5IiBdKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0g
ICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2
YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5v
cGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBpZiAoIWN1cnNvcikgewotICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY291bnQsIDMsICJjdXJzb3IgcnVuIGNvdW50Iik7Ci0gICAgICAgICAg
ICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChjb3VudCA9
PT0gMCkgewotICAgICAgICAgICAgICAgIGUudGFyZ2V0LnNvdXJjZS5vYmplY3RTdG9yZS5hZGQo
eyBwS2V5OiAicHJpbWFyeUtleV8xIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzEiIH0gfSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGN1cnNvci5rZXksIGV4
cGVjdGVkW2NvdW50XSwgInByaW1hcnkga2V5Iik7Ci0KLSAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOwotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDIuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4
Mi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NTRjN2NjYWZmZGQ0OTMyNTQ0
ZTZmMDVhOGE3NDdhMTUxN2EyNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
aXRlcmF0aW5nX2luZGV4Mi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYWRkIG5l
eHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGRiLAotICAgICAgY291bnQgPSAwLAotICAgICAgdCA9IGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgcmVjb3JkcyA9IFsgeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzAiIH19LAotICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzIiIH19
IF0sCi0KLSAgICAgIGV4cGVjdGVkID0gWyBbICJwcmltYXJ5S2V5XzIiLCAiaUtleV8yIiBdLAot
ICAgICAgICAgICAgICAgICAgIFsgInByaW1hcnlLZXlfMSIsICJpS2V5XzEiIF0sCi0gICAgICAg
ICAgICAgICAgICAgWyAicHJpbWFyeUtleV8wIiwgImlLZXlfMCIgXSBdOwotCi0gICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0g
ICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsIFsgInBLZXkiLCAib2JqLmlLZXki
IF0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykK
LSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5k
ZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IobnVsbCwg
InByZXYiKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgICAgIGlmICghY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMywgImN1cnNvciBydW4gY291bnQiKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGNvdW50ID09PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgZS50YXJnZXQuc291cmNlLm9iamVjdFN0b3JlLmFkZCh7IHBLZXk6ICJwcmltYXJ5
S2V5XzEiLCBvYmo6IHsgaUtleTogImlLZXlfMSIgfSB9KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY3Vyc29yLmtleSwgZXhwZWN0ZWRbY291bnRdLCAi
cHJpbWFyeSBrZXkiKTsKLQotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAg
ICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3Rz
dG9yZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4M2VkOWQy
MjUyYjJkOWJkOTczN2M4Zjk0OGIyNzg2OGZkNWE3MDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0
c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdCAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0
aW5nX29iamVjdHN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODNlZDlkMjI1MmIy
ZDliZDk3MzdjOGY5NDhiMjc4NjhmZDVhNzA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2Jq
ZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdCAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRl
cmF0aW5nX29iamVjdHN0b3JlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiZDNjNjMwN2VjODk4NWVlNjg0OWI3MzUz
MDBjOGU5MDJhOTM5OWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0
aW5nX29iamVjdHN0b3JlLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0
c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0gICAg
ICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAg
ICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzIiIH0gXSwKLSAgICAgIGV4cGVjdGVkX3JlY29yZHMgPSBbIHsgcEtleTogInBy
aW1hcnlLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMiIgfV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
Y29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7
Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGlmICghY3Vyc29yKSB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgImN1cnNvciBydW4gY291bnQiKTsKLSAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHJl
Y29yZCA9IGN1cnNvci52YWx1ZTsKLSAgICAgICAgICAgIGlmIChyZWNvcmQucEtleSA9PSAicHJp
bWFyeUtleV8wIikgewotICAgICAgICAgICAgICAgZS50YXJnZXQuc291cmNlLmRlbGV0ZSgicHJp
bWFyeUtleV8xIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZC5wS2V5LCBleHBlY3RlZF9yZWNvcmRzW2NvdW50XS5wS2V5LCAicHJpbWFyeSBrZXkiKTsK
LQotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICBjb3VudCsrOwot
ICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+IDwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
aXRlcmF0aW5nX29iamVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS5odG0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGRiZDNjNjMwN2VjODk4NWVlNjg0OWI3MzUzMDBjOGU5MDJhOTM5OWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3Jl
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRp
dGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVt
ZW50LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAg
ICB2YXIgZGIsCi0gICAgICBjb3VudCA9IDAsCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJw
cmltYXJ5S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEi
IH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0gXSwKLSAgICAg
IGV4cGVjdGVkX3JlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfV07Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsK
LQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAg
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJz
b3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgICAgIGlmICghY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3Vu
dCwgMiwgImN1cnNvciBydW4gY291bnQiKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKLSAg
ICAgICAgICAgIGlmIChyZWNvcmQucEtleSA9PSAicHJpbWFyeUtleV8wIikgewotICAgICAgICAg
ICAgICAgZS50YXJnZXQuc291cmNlLmRlbGV0ZSgicHJpbWFyeUtleV8xIik7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZF9yZWNv
cmRzW2NvdW50XS5wS2V5LCAicHJpbWFyeSBrZXkiKTsKLQotICAgICAgICAgICAgY3Vyc29yLmNv
bnRpbnVlKCk7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9KTsKLSAgICB9OwotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjI4Yjc5NGE4YWM0ZDdiZTI2ZTFjNWU3MzE4NWFiNzI1MzhlNGQ2Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNv
ci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0
ZSB0byBpdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19v
YmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYyOGI3OTRhOGFjNGQ3YmUyNmUxYzVlNzMxODVhYjcyNTM4ZTRkNmIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi1wcml2YXRl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1
cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQgaXRl
cmF0ZSB0byBpdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0
c3RvcmUyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYxZDlm
M2RjY2FiNmFkZTBjNjcyZDQzZDkwMjM1NTFkYTZkMWEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNv
ci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0
ZSB0byBpdDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0Bv
cGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAg
ICBjb3VudCA9IDAsCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVv
dXQ6IDEwMDAwfSksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0s
Ci0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0gXSwKLSAgICAgIGV4
cGVjdGVkX3JlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfSBdOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7Ci0KLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7
Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAg
ICBpZiAoIWN1cnNvcikgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDMs
ICJjdXJzb3IgcnVuIGNvdW50Iik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0gICAgICAg
ICAgICBpZiAocmVjb3JkLnBLZXkgPT0gInByaW1hcnlLZXlfMCIpIHsKLSAgICAgICAgICAgICAg
IGUudGFyZ2V0LnNvdXJjZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIGV4cGVjdGVkX3Jl
Y29yZHNbY291bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOwotCi0gICAgICAgICAgICBjdXJzb3Iu
Y29udGludWUoKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotICAgIH07Ci08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUy
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjFk
OWYzZGNjYWI2YWRlMGM2NzJkNDNkOTAyMzU1MWRhNmQxYTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTIuaHRtCisrKyAvZGV2L251bGwK
QEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLmNvbnRp
bnVlKCkgLSBvYmplY3RzdG9yZSAtIGFkZCBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNv
bSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGNvdW50
ID0gMCwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAw
MDB9KSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKLSAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfSBdLAotICAgICAgZXhwZWN0ZWRf
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiLCAicmVhZHdyaXRlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAg
ICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGlmICgh
Y3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMywgImN1cnNv
ciBydW4gY291bnQiKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKLSAgICAgICAgICAgIGlm
IChyZWNvcmQucEtleSA9PSAicHJpbWFyeUtleV8wIikgewotICAgICAgICAgICAgICAgZS50YXJn
ZXQuc291cmNlLmFkZCh7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0pOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgZXhwZWN0ZWRfcmVjb3Jkc1tj
b3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7Ci0KLSAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOwotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0
PgotCi08ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmJhZjM0NTE1ZDE3
NGRkYzZjMGMxOWYwZmFkMWVjYzQzMWZmNDYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9pbmRleC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBhIHJlY29y
ZCBpbiB0aGUgb2JqZWN0IHN0b3JlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3YmJhZjM0NTE1ZDE3NGRkYzZjMGMxOWYwZmFkMWVjYzQzMWZmNDYzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAt
IGluZGV4IC0gbW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
aW5kZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjEzZmY4NTdhM2QwODczZjk5MzgyYjk0YjcyOWZhNmRiMjFiZjkzYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgtcHJpdmF0ZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURC
Q3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBz
dG9yZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgY291bnQg
PSAwLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTog
InByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtl
eSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0K
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotCi0gICAgICAgIC8vIFhYWDogR2Vja28g
ZG9lc24ndCBsaWtlIHRoaXMKLSAgICAgICAgLy9lLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBs
ZXRlID0gdC5zdGVwX2Z1bmMoQ3Vyc29yVXBkYXRlUmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBDdXJzb3JVcGRhdGVSZWNvcmQ7Ci0KLQotICAgIGZ1bmN0aW9uIEN1
cnNvclVwZGF0ZVJlY29yZChlKSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIsICJyZWFkd3JpdGUiKSwKLSAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3Rv
cmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIGN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBjdXJzb3IudmFsdWUuaUtleSAr
PSAiX3VwZGF0ZWQiOwotICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOwot
ICAgICAgICB9KTsKLQotICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlm
eVJlY29yZFdhc1VwZGF0ZWQpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3Jk
V2FzVXBkYXRlZChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLmlLZXksIHJlY29yZHNbMF0uaUtleSArICJfdXBkYXRlZCIpOwotICAgICAg
ICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Lmh0bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjEzZmY4NTdhM2QwODczZjk5MzgyYjk0YjcyOWZhNmRiMjFiZjkzYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtCisrKyAv
ZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vy
c29yLnVwZGF0ZSgpIC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBzdG9y
ZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgY291bnQgPSAw
LAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInBy
aW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIg
fSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotCi0gICAgICAgIC8vIFhYWDogR2Vja28gZG9l
c24ndCBsaWtlIHRoaXMKLSAgICAgICAgLy9lLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdC5zdGVwX2Z1bmMoQ3Vyc29yVXBkYXRlUmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBDdXJzb3JVcGRhdGVSZWNvcmQ7Ci0KLQotICAgIGZ1bmN0aW9uIEN1cnNv
clVwZGF0ZVJlY29yZChlKSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVz
dCIsICJyZWFkd3JpdGUiKSwKLSAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUo
InRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIGN1cnNvcl9ycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBjdXJzb3IudmFsdWUuaUtleSArPSAi
X3VwZGF0ZWQiOwotICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOwotICAg
ICAgICB9KTsKLQotICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJl
Y29yZFdhc1VwZGF0ZWQpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkV2Fz
VXBkYXRlZChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVz
dCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnZhbHVlLmlLZXksIHJlY29yZHNbMF0uaUtleSArICJfdXBkYXRlZCIpOwotICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzNjN2UwZGZhNmVmZTI5MGE1MmFjZjgy
YzA4ZjE5MGU1NzZkYzZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29y
ZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDkzM2M3ZTBkZmE2ZWZlMjkwYTUyYWNmODJjMDhmMTkwZTU3NmRjNmYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51
cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9u
bHkgdHJhbnNhY3Rpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMDAwMWNiYjkxODk3YjQ2MWZh
NDBjNGZmYzlmOWE5ZjUzNjIyNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4Mi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIGF0
dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5
XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAi
aW5kZXhLZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
Y29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7
Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoJ1JlYWRPbmx5RXJyb3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVw
ZGF0ZShjdXJzb3IudmFsdWUpOyB9KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9
KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfaW5kZXgyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2QwMDAxY2Ji
OTE4OTdiNDYxZmE0MGM0ZmZjOWY5YTlmNTM2MjI2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0g
YXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb248L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCks
Ci0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhL
ZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6
ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNv
cigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
dXBkYXRlKGN1cnNvci52YWx1ZSk7IH0pOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAg
IH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
aW5kZXgzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyOTkzMzI3NTNhOGNjOGMzNDZiZWRmYjZhOTZmM2IxMjhjNmQzMDk5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLnVwZGF0ZSgp
IC0gaW5kZXggLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFu
c2FjdGlvbiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtcHJpdmF0
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5OTMzMjc1M2E4
Y2M4YzM0NmJlZGZiNmE5NmYzYjEyOGM2ZDMwOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4My1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0
ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb24gCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBkZTY2Y2JjNmMzMDdkZjNmNzFkODdlMzM0YjBlNDI2MGRhMDcxNzgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1wcml2YXRl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0
aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVj
b3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQot
ICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7
IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6
ICJwS2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVu
Z3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0KLSAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOwotICAgICAgICAgICAgd2lu
ZG93LmN1cnNvciA9IGN1cnNvcjsKLSAgICAgICAgICAgIHdpbmRvdy5yZWNvcmQgPSBjdXJzb3Iu
dmFsdWU7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InLCBmdW5jdGlvbigpIHsgd2luZG93LmN1cnNv
ci51cGRhdGUod2luZG93LnJlY29yZCk7IH0pCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAg
ICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4My5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZTY2
Y2JjNmMzMDdkZjNmNzFkODdlMzM0YjBlNDI2MGRhMDcxNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0MSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRl
eCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9u
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190
ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAi
aW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIs
IGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4
ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLQotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3Jkc1tpXSk7Ci0KLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5D
dXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNv
ciBleGlzdCIpOwotICAgICAgICAgICAgd2luZG93LmN1cnNvciA9IGN1cnNvcjsKLSAgICAgICAg
ICAgIHdpbmRvdy5yZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3In
LCBmdW5jdGlvbigpIHsgd2luZG93LmN1cnNvci51cGRhdGUod2luZG93LnJlY29yZCk7IH0pCi0g
ICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQot
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDg5MmEwZjU2MGI4MjFm
OTFiODIwNWFlYjY3YjM2ODVmNGI3NzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4NC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gbW9kaWZ5
IGEgcmVjb3JkIHdoZW4gb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4
NC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDg5MmEwZjU2MGI4MjFmOTFiODIwNWFlYjY3YjM2ODVm
NGI3NzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQg
d2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0LXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWQy
OTQ1OGNkNzg5N2ZkNGFkZDhjYzViNDNkZmJjOTdiNzg3ZWRmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIG1vZGlmeSBh
IHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
LSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtl
eV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTog
ImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIg
PSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOwotICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNv
cmRzW2ldKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5k
ZXgiKS5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNv
cik7Ci0KLSAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAg
ICAgICAgY3Vyc29yLnZhbHVlLmlLZXkgKz0gIl91cGRhdGVkIjsKLSAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOwotICAgICAgICAgICAgfSwgIklmIHRoZSBj
dXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVk
LCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIElu
dmFsaWRTdGF0ZUVycm9yIik7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsK
LSAgICB9Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0Lmh0bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmFkMjk0NThjZDc4OTdmZDRhZGQ4Y2M1YjQzZGZiYzk3Yjc4
N2VkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0Lmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0
ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgd2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQg
PSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
LCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50
KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsK
LSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBv
YmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHJxID0gb2Jq
U3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOwotICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5z
dGFuY2VvZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgi
c3RvcmUiKTsKLSAgICAgICAgICAgIGN1cnNvci52YWx1ZS5pS2V5ICs9ICJfdXBkYXRlZCI7Ci0g
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUoY3Vyc29yLnZhbHVlKTsKLSAgICAgICAg
ICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUg
aGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOwotCi0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4NS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUy
MDlhNTYwM2RlOGE4Zjk5OTA1ZDNlNDIyZjhiMjk5YjIzMDAyNmIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIHRo
cm93IERhdGFDbG9uZUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTIwOWE1NjAzZGU4YThmOTk5MDVkM2U0MjJmOGIyOTliMjMwMDI2Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0g
aW5kZXggLSB0aHJvdyBEYXRhQ2xvbmVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
aW5kZXg1LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgyNTNl
NTRiMTEwNzVmNzI1NDYxMTc0NWRkYTdkNGUyNmFlMDk2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci51cGRhdGUo
KSAtIGluZGV4IC0gdGhyb3cgRGF0YUNsb25lRXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90
aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFs
dWUiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYg
aWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtl
eTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotICAgICAgICBv
YmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJy
ZWFkd3JpdGUiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5j
ZW9mIElEQkN1cnNvcik7Ci0KLSAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7
Ci0gICAgICAgICAgICByZWNvcmQuZGF0YSA9IGRvY3VtZW50OwotICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygnRGF0YUNsb25lRXJyb3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBj
dXJzb3IudXBkYXRlKHJlY29yZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHQuZG9u
ZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5k
ZXg1Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgyNTNlNTRiMTEwNzVmNzI1
NDYxMTc0NWRkYTdkNGUyNmFlMDk2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfaW5kZXg1Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gdGhyb3cgRGF0
YUNsb25lRXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtl
eV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgi
aW5kZXgiLCAiaUtleSIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9
OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBj
dXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5D
dXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAg
ICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7Ci0gICAgICAgICAgICByZWNvcmQu
ZGF0YSA9IGRvY3VtZW50OwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUNsb25lRXJy
b3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IudXBkYXRlKHJlY29yZCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAg
ICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQwMTVhMTgwNWZhMGM0YTk4OWFl
MjEyMjNhNjdjOTQzMjgzY2ZkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfaW5kZXg2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gbm8gYXJndW1lbnQgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDYtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDAxNWExODA1ZmEwYzRhOTg5YWUyMTIyM2E2
N2M5NDMyODNjZmRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9p
bmRleDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG5vIGFyZ3VtZW50IAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRh
dGVfaW5kZXg2LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlMjI4ZDc5YjNmNTlkOWY2ZTQ0OWE2ODg1NmU3ZGMzMTE4ZWQwZTE1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYtcHJpdmF0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0
bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBubyBhcmd1bWVudDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+
Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1
ZXN0LWFueS12YWx1ZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7
Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2Vv
ZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSwgZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUoKTsgfSk7Ci0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4
Ni5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMjhkNzliM2Y1OWQ5ZjZlNDQ5
YTY4ODU2ZTdkYzMxMThlZDBlMTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4Ni5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG5vIGFyZ3VtZW50
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93
d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3It
dXBkYXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2
YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbIHsg
cEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAg
ICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBh
dGg6ICJwS2V5IiB9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlL
ZXkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
Ci0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJz
b3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1
cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZSgpOyB9KTsKLSAgICAg
ICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X2luZGV4Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWE2YmRhYTcyMDEyODJmMTliNTQ1NGRjZWM4NmY4MWVlNjNhOTc0Ny4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUo
KSAtIGluZGV4IC0gdGhyb3cgRGF0YUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4Ny1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWE2YmRhYTcyMDEyODJmMTliNTQ1NGRjZWM4NmY4MWVlNjNhOTc0Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLnVw
ZGF0ZSgpIC0gaW5kZXggLSB0aHJvdyBEYXRhRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4Ny1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcy
NzBlYmVlYzg3ZjkyMmM4NTQxMjc1ODIwM2QxMzQ3OWNlYWQ4NTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ny1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBk
YXRlKCkgLSBpbmRleCAtIHRocm93IERhdGFFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3Rp
cC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1
ZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNf
dGVzdCgpLAotICAgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5
OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0gICAgICAgIG9i
alN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7Ci0KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJl
YWR3cml0ZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNl
b2YgSURCQ3Vyc29yKTsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUVycm9yJywg
ZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUobnVsbCk7IH0pOwotICAgICAgICAgICAgdC5kb25l
KCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3Lmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRl
eDcuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjcwZWJlZWM4N2Y5MjJjODU0
MTI3NTgyMDNkMTM0NzljZWFkODU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleDcuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSB0aHJvdyBEYXRh
RXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1
cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0Pgot
ICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9
IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9
IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
LQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsg
a2V5UGF0aDogInBLZXkiIH0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaUtleSIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3Jf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRl
KG51bGwpOyB9KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08
L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNGIwNjc1ZjZiMGFiMmFi
MzczNWRjZTI2ZDYxMGFkYjM0NmMwYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdHN0b3JlIC0gbW9kaWZ5
IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNGIwNjc1ZjZiMGFiMmFiMzczNWRjZTI2ZDYxMGFkYjM0
NmMwYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0c3RvcmUgLSBtb2RpZnkgYSByZWNvcmQg
aW4gdGhlIG9iamVjdCBzdG9yZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGIx
MzdjZTYwMWRkY2I2MWQ3MDBkZmFhMjEwMjA4NjVkMTQ4ZjM4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw2MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3Iu
dXBkYXRlKCkgLSBvYmplY3RzdG9yZSAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0
b3JlIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5
bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAot
ICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9
KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0KLSAgICAgICAgLy8gWFhYOiBH
ZWNrbyBkb2Vzbid0IGxpa2UgdGhpcwotICAgICAgICAvL2UudGFyZ2V0LnRyYW5zYWN0aW9uLm9u
Y29tcGxldGUgPSB0LnN0ZXBfZnVuYyhDdXJzb3JVcGRhdGVSZWNvcmQpOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IEN1cnNvclVwZGF0ZVJlY29yZDsKLQotCi0gICAgZnVuY3Rp
b24gQ3Vyc29yVXBkYXRlUmVjb3JkKGUpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAotICAgICAgICAgIGN1cnNvcl9ycSA9IHR4bi5vYmpl
Y3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsK
LSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAg
IGN1cnNvci52YWx1ZS5kYXRhID0gIk5ldyBpbmZvcm1hdGlvbiEiOwotICAgICAgICAgICAgY3Vy
c29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOwotICAgICAgICB9KTsKLQotICAgICAgICB0eG4ub25j
b21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc1VwZGF0ZWQpOwotICAgIH0KLQot
Ci0gICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkV2FzVXBkYXRlZChlKSB7Ci0gICAgICAgIHZhciBj
dXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0K
LSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLmRhdGEsICJOZXcgaW5mb3Jt
YXRpb24hIik7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGIxMzdjZTYwMWRk
Y2I2MWQ3MDBkZmFhMjEwMjA4NjVkMTQ4ZjM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Rz
dG9yZSAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAg
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3Jkc1tpXSk7Ci0KLSAgICAgICAgLy8gWFhYOiBHZWNrbyBkb2Vzbid0IGxpa2Ug
dGhpcwotICAgICAgICAvL2UudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBf
ZnVuYyhDdXJzb3JVcGRhdGVSZWNvcmQpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IEN1cnNvclVwZGF0ZVJlY29yZDsKLQotCi0gICAgZnVuY3Rpb24gQ3Vyc29yVXBkYXRlUmVj
b3JkKGUpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3
cml0ZSIpLAotICAgICAgICAgIGN1cnNvcl9ycSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLSAgICAgICAgY3Vyc29yX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGN1cnNvci52YWx1ZS5kYXRh
ID0gIk5ldyBpbmZvcm1hdGlvbiEiOwotICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3Iu
dmFsdWUpOwotICAgICAgICB9KTsKLQotICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9m
dW5jKFZlcmlmeVJlY29yZFdhc1VwZGF0ZWQpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gVmVy
aWZ5UmVjb3JkV2FzVXBkYXRlZChlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
dGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAg
ICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLmRhdGEsICJOZXcgaW5mb3JtYXRpb24hIik7Ci0gICAgICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
Mi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MzdhNTU3YjVk
NTNkMDgxZmJkNjZjYWQwMWQ5NjYwNTg4ZDRjNTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUg
LSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItcHJp
dmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MzdhNTU3
YjVkNTNkMDgxZmJkNjZjYWQwMWQ5NjYwNTg4ZDRjNTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9i
amVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRy
YW5zYWN0aW9uIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTIt
cHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWE5MzU4YTc1OTY2
NGUyNjg2Yzk1ZDEyODk2NTMxNWFlMjNkNTAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgp
IC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9u
bHkgdHJhbnNhY3Rpb248L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAg
IHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5
XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgcEtleTogInBy
aW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotCi0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVz
dCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCdSZWFkT25seUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUoY3Vyc29yLnZh
bHVlKTsgfSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTIuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29i
amVjdHN0b3JlMi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlYTkzNThhNzU5
NjY0ZTI2ODZjOTVkMTI4OTY1MzE1YWUyM2Q1MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmpl
Y3Qgc3RvcmUgLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFu
c2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlL
ZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1Jl
YWRPbmx5RXJyb3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOyB9
KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLTwvc2NyaXB0
PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
b2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjM2YjFmOWIxOTVlY2MyODI2YmYyZDQ4MmNkNmE1MTg3ZjgzMWE2Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9i
amVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRy
YW5zYWN0aW9uIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjM2YjFmOWIxOTVlY2MyODI2YmYyZDQ4MmNkNmE1MTg3ZjgzMWE2Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLnVw
ZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYW4g
aW5hY3RpdmUgdHJhbnNhY3Rpb24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29i
amVjdHN0b3JlMy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
ODVkNzQ0MDEzZjIzYzQwMzk2YTVhMDVmODQ5OGRiOWQwMDE4ZGQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy1wcml2YXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJz
b3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBp
biBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2
YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwotCi0gICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtl
eSIgfSk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsr
KQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotCi0gICAgICAgIHZhciBj
dXJzb3JfcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5z
dGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKLSAgICAgICAgICAgIHdpbmRvdy5j
dXJzb3IgPSBjdXJzb3I7Ci0gICAgICAgICAgICB3aW5kb3cucmVjb3JkID0gY3Vyc29yLnZhbHVl
OwotICAgICAgICB9KTsKLQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygn
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJywgZnVuY3Rpb24oKSB7IHdpbmRvdy5jdXJzb3IudXBk
YXRlKHdpbmRvdy5yZWNvcmQpOyB9KQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0p
OwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmUzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMjg1ZDc0NDAxM2YyM2M0MDM5NmE1YTA1Zjg0OThkYjlkMDAxOGRkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtCisrKyAvZGV2L251
bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnVw
ZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYW4g
aW5hY3RpdmUgdHJhbnNhY3Rpb248L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRi
LAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInBy
aW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAotICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0p
OwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAg
ICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLQotICAgICAgICB2YXIgY3Vyc29y
X3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNl
b2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Ci0gICAgICAgICAgICB3aW5kb3cuY3Vyc29y
ID0gY3Vyc29yOwotICAgICAgICAgICAgd2luZG93LnJlY29yZCA9IGN1cnNvci52YWx1ZTsKLSAg
ICAgICAgfSk7Ci0KLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1RyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cuY3Vyc29yLnVwZGF0ZSh3
aW5kb3cucmVjb3JkKTsgfSkKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAg
ICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzM4M2IyZTdlYzQ0YmJiODVmYWNjOGVjMjVhYjFlMjVmOTdlOGExMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNv
ci51cGRhdGUoKSAtIGluZGV4IC0gbW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0LXBy
aXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzgzYjJl
N2VjNDRiYmI4NWZhY2M4ZWMyNWFiMWUyNWY5N2U4YTEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBp
bmRleCAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0b3JlIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmU0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNTU3MThhZWVkZWQwNjhjMjg3YTBhOGRiOGQ4ZjU5NzFkZjA0
YWNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9y
ZTQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBtb2RpZnkgYSByZWNv
cmQgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0K
LSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVv
dXQ6IDEwMDAwfSkKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIpOwotCi0gICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICJrZXkiKTsKLSAgICB9OwotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKSwKLSAgICAgICAg
ICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGN1cnNvci52YWx1ZSA9ICJuZXcgZGF0YSEiOwotICAg
ICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdCwgImtleSIpOwotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNC5odG0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ1NTcxOGFlZWRlZDA2OGMyODdhMGE4ZGI4ZDhmNTk3MWRmMDRh
Y2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
NC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0
aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUg
b2JqZWN0IHN0b3JlIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIHZhciBk
YiwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9
KQotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0g
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhIiwgImtleSIpOwotICAgIH07Ci0KLSAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHR4biA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAotICAgICAgICAgIGN1cnNvcl9y
cSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
LQotICAgICAgICAgICAgY3Vyc29yLnZhbHVlID0gIm5ldyBkYXRhISI7Ci0gICAgICAgICAgICBj
dXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAi
a2V5Iik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmZlZGIzM2M5ZmYyYTAxMmY3ZmI1YjA2MDRlZGY1
OGM2Y2NkNzU4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmU1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gIG1vZGlm
eSBhIHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmpl
Y3RzdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmVkYjMzYzlmZjJhMDEyZjdmYjVi
MDYwNGVkZjU4YzZjY2Q3NTgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBh
dHRlbXB0IHRvICBtb2RpZnkgYSByZWNvcmQgd2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVk
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTY0ZGI5NzgwOTJkYzdmZWNjOThj
NzlmYjkwYTY5OThiZjllNDQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURC
Q3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byAgbW9kaWZ5IGEgcmVj
b3JkIHdoZW4gb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAotICAgICAgICAgICAgICAg
ICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKLQotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3Jkc1tpXSk7Ci0KLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IG9ialN0b3JlLm9w
ZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
LSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1
cnNvciBleGlzdHMiKTsKLQotICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInRlc3Qi
KTsKLSAgICAgICAgICAgIGN1cnNvci52YWx1ZSArPSAiX3VwZGF0ZWQiOwotICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7Ci0gICAgICAgICAgICB9LCAiSWYg
dGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRl
bGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5
cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKLQotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAg
ICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5NjRkYjk3ODA5MmRjN2Zl
Y2M5OGM3OWZiOTBhNjk5OGJmOWU0NDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJDdXJz
b3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvICBtb2RpZnkgYSByZWNvcmQg
d2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2Pgot
PHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICBy
ZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICB7
IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOwotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmRzW2ldKTsKLQotICAgICAgICB2YXIgY3Vyc29yX3JxID0gb2JqU3RvcmUub3BlbkN1
cnNvcigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29y
IGV4aXN0cyIpOwotCi0gICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgidGVzdCIpOwot
ICAgICAgICAgICAgY3Vyc29yLnZhbHVlICs9ICJfdXBkYXRlZCI7Ci0gICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgIGN1cnNvci51cGRhdGUoY3Vyc29yLnZhbHVlKTsKLSAgICAgICAgICAgIH0sICJJZiB0aGUg
Y3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRl
ZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJ
bnZhbGlkU3RhdGVFcnJvciIpOwotCi0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9
KTsKLSAgICB9Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmU2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI2
NzIxYmI5N2Q4MTM4OGRlZjM1NzNlZDQ3MTkzMGZjYjlkMmY5OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVj
dCBzdG9yZSAtIHRocm93IERhdGFDbG9uZUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2LXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI2NzIxYmI5N2Q4MTM4OGRlZjM1NzNlZDQ3MTkzMGZj
YjlkMmY5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmU2LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUNs
b25lRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi1w
cml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0ODIzNGMyODg2Njhj
NTI1NzBkY2JmOTI0NGZjNzI2ODBjNjI4YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkg
LSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBEYXRhQ2xvbmVFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1m
aWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFu
eS12YWx1ZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
PGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0g
YXN5bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
LCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJp
bWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7
Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAg
ICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOwotICAgICAgICAgICAgcmVjb3JkLmRhdGEgPSBk
b2N1bWVudDsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0RhdGFDbG9uZUVycm9yJywgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShyZWNvcmQpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9z
Y3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0ODIzNGMyODg2NjhjNTI1NzBkY2JmOTI0NGZjNzI2ODBj
NjI4YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBEYXRhQ2xv
bmVFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJo
dHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZj
cy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURC
Q3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1ZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRz
ID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAg
ICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEi
IH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OwotCi0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwg
eyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNv
cmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwot
ICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
dmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2Vv
ZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOwot
ICAgICAgICAgICAgcmVjb3JkLmRhdGEgPSBkb2N1bWVudDsKLSAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoJ0RhdGFDbG9uZUVycm9yJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY3Vy
c29yLnVwZGF0ZShyZWNvcmQpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDhiZThkZTE0ZjQ3ZGFlMjg0NGYzYjRmZGJkMzhhZjExNzhkMTk2YmIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJDdXJzb3IudXBk
YXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBubyBhcmd1bWVudCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
Ny1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZThkZTE0ZjQ3ZGFlMjg0NGYzYjRmZGJkMzhh
ZjExNzhkMTk2YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29i
amVjdHN0b3JlNy1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1QQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIG5vIGFyZ3Vt
ZW50IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjk4MDYzZTA5OTdiNGMyMzY3
YjIzZDRiYzJkYWU5Y2YxMjU1N2M4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2Jq
ZWN0IHN0b3JlIC0gbm8gYXJndW1lbnQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
LSAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4
S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJy
ZWFkd3JpdGUiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRlKCk7IH0pOwotICAg
ICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRh
dGVfb2JqZWN0c3RvcmU3Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkYjk4MDYzZTA5OTdiNGMyMzY3YjIzZDRiYzJkYWU5Y2YxMjU1N2M4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtCisrKyAv
ZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vy
c29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gbm8gYXJndW1lbnQ8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVz
dC1hbnktdmFsdWUiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAg
dCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOwot
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNv
cigpOwotCi0gICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKLQotICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
dXBkYXRlKCk7IH0pOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0K
LTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTgt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzQ2ODU3ZjAxMzY4
ZDZjYzA4MWU2Y2M1MjlmM2E4OTk2YmU4NGU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0g
dGhyb3cgRGF0YUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlOC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGM0Njg1N2YwMTM2OGQ2Y2MwODFlNmNjNTI5ZjNhODk5NmJlODRlOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LXByaXZhdGUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCQ3Vy
c29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUVycm9yIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
b2JqZWN0c3RvcmU4LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTgtcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDhjNTQ5MTY5YjA1MjgyNWU4ZWU2YzY2MzE2OWY5OTQ5
MGVjZjAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZTgtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhy
b3cgRGF0YUVycm9yPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhy
ZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lk
bC1JREJDdXJzb3ItdXBkYXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNj
cmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJl
Y29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhL
ZXlfMSIgfSBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tp
XSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBjdXJzb3JfcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0
YW5jZW9mIElEQkN1cnNvcik7Ci0KLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0RhdGFFcnJv
cicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRlKG51bGwpOyB9KTsKLSAgICAgICAgICAgIHQu
ZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlOC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfb2JqZWN0c3RvcmU4Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQ4
YzU0OTE2OWIwNTI4MjVlOGVlNmM2NjMxNjlmOTk0OTBlY2YwMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4Lmh0bQorKysgL2Rldi9udWxsCkBA
IC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkN1cnNvci51cGRhdGUo
KSAtIG9iamVjdCBzdG9yZSAtIHRocm93IERhdGFFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12
YWx1ZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRp
diBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5
bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBp
S2V5OiAiaW5kZXhLZXlfMCIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7Ci0KLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0K
LSAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOwotCi0gICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCdEYXRhRXJyb3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZShudWxs
KTsgfSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3Jp
cHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY2xvc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDljZTE5YjNhZjZhNWQyYTU4YjU3ODhjNTFlNmZlNTAxMDgxYmYyOGYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jbG9zZSgpIC0g
dW5ibG9jayB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gY3JlYXRlZCBieSBhbiBvcGVu
IGRhdGFiYXNlIHJlcXVlc3QgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xvc2UtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2UxOWIzYWY2YTVk
MmE1OGI1Nzg4YzUxZTZmZTUwMTA4MWJmMjhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY2xvc2UtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jbG9zZSgpIC0gdW5ibG9jayB0aGUgdmVyc2lv
biBjaGFuZ2UgdHJhbnNhY3Rpb24gY3JlYXRlZCBieSBhbiBvcGVuIGRhdGFiYXNlIHJlcXVlc3Qg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY2xvc2UtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNiZWViN2QzNDg2MzZiZDdjZjNiNGMzODVlNDc3ZDg0YTkxZWU1MTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS1wcml2YXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRh
YmFzZS5jbG9zZSgpIC0gdW5ibG9jayB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gY3Jl
YXRlZCBieSBhbiBvcGVuIGRhdGFiYXNlIHJlcXVlc3Q8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
dmFyIGRiOwotdmFyIHZlcnNpb25jaGFuZ2VfZmlyZWQ7Ci12YXIgYmxvY2tlZF9maXJlZDsKLXZh
ciB1cGdyYWRlbmVlZGVkX2ZpcmVkOwotdmFyIHQgPSBhc3luY190ZXN0KCk7Ci12YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotdmFyIGNvdW50ZXIgPSAwOwotCi1vcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKCkge30KLW9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmVyc2lvbmNoYW5nZV9maXJlZCA9IGNvdW50
ZXIrKzsKLSAgICB9KTsKLSAgICB2YXIgcnEgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFt
ZSwgZGIudmVyc2lvbiArIDEpOwotICAgIHJxLm9uYmxvY2tlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uIChlKSB7Ci0gICAgICAgIGJsb2NrZWRfZmlyZWQgPSBjb3VudGVyKys7Ci0gICAgICAgIGRi
LmNsb3NlKCk7Ci0gICAgfSk7Ci0gICAgcnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgdXBncmFkZW5lZWRlZF9maXJlZCA9IGNvdW50ZXIrKzsK
LSAgICB9KTsKLSAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgewot
ICAgICAgICBhc3NlcnRfZXF1YWxzKHZlcnNpb25jaGFuZ2VfZmlyZWQsIDAsICd2ZXJzaW9uY2hh
bmdlIGV2ZW50IGZpcmVkICMnKQotICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2NrZWRfZmlyZWQs
IDEsICdibG9jayBldmVudCBmaXJlZCAjJykKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh1cGdyYWRl
bmVlZGVkX2ZpcmVkLCAyLCAnc2Vjb25kIHVwZ3JhZGVuZWVkZWQgZXZlbnQgZmlyZWQgIycpCi0K
LSAgICAgICAgdC5kb25lKCk7Ci0gICAgfSk7Ci0gICAgcnEub25lcnJvciA9IGZhaWwodCwgJ1Vu
ZXhwZWN0ZWQgZGF0YWJhc2UgZGVsZXRpb24gZXJyb3InKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2JlZWI3ZDM0ODYzNmJkN2NmM2I0YzM4NWU0NzdkODRhOTFlZTUxNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLmh0bQorKysgL2Rldi9udWxsCkBA
IC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLmNsb3Nl
KCkgLSB1bmJsb2NrIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBjcmVhdGVkIGJ5IGFu
IG9wZW4gZGF0YWJhc2UgcmVxdWVzdDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci12YXIgZGI7Ci12
YXIgdmVyc2lvbmNoYW5nZV9maXJlZDsKLXZhciBibG9ja2VkX2ZpcmVkOwotdmFyIHVwZ3JhZGVu
ZWVkZWRfZmlyZWQ7Ci12YXIgdCA9IGFzeW5jX3Rlc3QoKTsKLXZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci12YXIgY291bnRlciA9IDA7Ci0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oKSB7fQotb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICB2ZXJzaW9uY2hhbmdlX2ZpcmVkID0gY291bnRlcisrOwotICAg
IH0pOwotICAgIHZhciBycSA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lLCBkYi52ZXJz
aW9uICsgMSk7Ci0gICAgcnEub25ibG9ja2VkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsK
LSAgICAgICAgYmxvY2tlZF9maXJlZCA9IGNvdW50ZXIrKzsKLSAgICAgICAgZGIuY2xvc2UoKTsK
LSAgICB9KTsKLSAgICBycS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAo
ZSkgewotICAgICAgICB1cGdyYWRlbmVlZGVkX2ZpcmVkID0gY291bnRlcisrOwotICAgIH0pOwot
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHModmVyc2lvbmNoYW5nZV9maXJlZCwgMCwgJ3ZlcnNpb25jaGFuZ2UgZXZlbnQg
ZmlyZWQgIycpCi0gICAgICAgIGFzc2VydF9lcXVhbHMoYmxvY2tlZF9maXJlZCwgMSwgJ2Jsb2Nr
IGV2ZW50IGZpcmVkICMnKQotICAgICAgICBhc3NlcnRfZXF1YWxzKHVwZ3JhZGVuZWVkZWRfZmly
ZWQsIDIsICdzZWNvbmQgdXBncmFkZW5lZWRlZCBldmVudCBmaXJlZCAjJykKLQotICAgICAgICB0
LmRvbmUoKTsKLSAgICB9KTsKLSAgICBycS5vbmVycm9yID0gZmFpbCh0LCAnVW5leHBlY3RlZCBk
YXRhYmFzZSBkZWxldGlvbiBlcnJvcicpOwotfTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2Nsb3NlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDlmNmNlZTljMTM1ZDlhZjNjMTY5MDU1M2FmYTAwMzRiY2NlZjdk
NzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY2xv
c2UoKSAtIHVuYmxvY2sgdGhlIGRlbGV0ZSBkYXRhYmFzZSByZXF1ZXN0IAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfY2xvc2UyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5ZjZjZWU5YzEzNWQ5YWYzYzE2OTA1NTNhZmEwMDM0YmNjZWY3ZDc1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xvc2UyLXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2Uu
Y2xvc2UoKSAtIHVuYmxvY2sgdGhlIGRlbGV0ZSBkYXRhYmFzZSByZXF1ZXN0IAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3Nl
Mi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2Nsb3NlMi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZlY2E3NWMwNDQwZTg1ZWRmNTJiZGJkNmQ5YmMxYTJlMTJhNDczN2QuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRGF0YWJhc2UuY2xv
c2UoKSAtIHVuYmxvY2sgdGhlIGRlbGV0ZSBkYXRhYmFzZSByZXF1ZXN0PC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLQotdmFyIGRiOwotdmFyIGJsb2NrZWRfZmlyZWQgPSBmYWxzZTsKLXZhciB2ZXJz
aW9uY2hhbmdlX2ZpcmVkID0gZmFsc2U7Ci12YXIgdCA9IGFzeW5jX3Rlc3QoKTsKLXZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oKSB7fSk7Ci1vcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgIGRiLm9udmVyc2lvbmNo
YW5nZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7Ci0gICAgICB2ZXJzaW9uY2hhbmdlX2Zp
cmVkID0gdHJ1ZTsKLSAgICB9KTsKLQotICAgIHZhciBycSA9IHdpbmRvdy5pbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGIubmFtZSk7Ci0gICAgcnEub25ibG9ja2VkID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24gKGUpIHsKLSAgICAgICAgYmxvY2tlZF9maXJlZCA9IHRydWU7Ci0gICAgICAgIGRiLmNs
b3NlKCk7Ci0gICAgfSk7Ci0gICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24g
KGUpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUodmVyc2lvbmNoYW5nZV9maXJlZCwgInZlcnNpb25j
aGFuZ2UgZXZlbnQgZmlyZWQiKQotICAgICAgICBhc3NlcnRfdHJ1ZShibG9ja2VkX2ZpcmVkLCAi
YmxvY2sgZXZlbnQgZmlyZWQiKQotICAgICAgICB0LmRvbmUoKTsKLSAgICB9KTsKLSAgICBycS5v
bmVycm9yID0gZmFpbCh0LCAnVW5leHBlY3RlZCBkYXRhYmFzZSBkZWxldGlvbiBlcnJvcicpOwot
fSk7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTIuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTIuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWNhNzVjMDQ0MGU4NWVkZjUyYmRiZDZk
OWJjMWEyZTEyYTQ3MzdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xv
c2UyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PHRpdGxlPklEQkRhdGFiYXNlLmNsb3NlKCkgLSB1bmJsb2NrIHRoZSBkZWxldGUgZGF0YWJhc2Ug
cmVxdWVzdDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciBkYjsKLXZhciBibG9ja2VkX2Zp
cmVkID0gZmFsc2U7Ci12YXIgdmVyc2lvbmNoYW5nZV9maXJlZCA9IGZhbHNlOwotdmFyIHQgPSBh
c3luY190ZXN0KCk7Ci12YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi1vcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkge30pOwotb3Blbl9ycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
Ci0KLSAgICBkYi5vbnZlcnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgewot
ICAgICAgdmVyc2lvbmNoYW5nZV9maXJlZCA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICB2YXIgcnEg
PSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpOwotICAgIHJxLm9uYmxv
Y2tlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIGJsb2NrZWRfZmlyZWQg
PSB0cnVlOwotICAgICAgICBkYi5jbG9zZSgpOwotICAgIH0pOwotICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKHZlcnNpb25j
aGFuZ2VfZmlyZWQsICJ2ZXJzaW9uY2hhbmdlIGV2ZW50IGZpcmVkIikKLSAgICAgICAgYXNzZXJ0
X3RydWUoYmxvY2tlZF9maXJlZCwgImJsb2NrIGV2ZW50IGZpcmVkIikKLSAgICAgICAgdC5kb25l
KCk7Ci0gICAgfSk7Ci0gICAgcnEub25lcnJvciA9IGZhaWwodCwgJ1VuZXhwZWN0ZWQgZGF0YWJh
c2UgZGVsZXRpb24gZXJyb3InKTsKLX0pOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhjYjYwMDcwYzU2MzU0NzI5Y2UyYjE2M2JhM2NmNjQz
NjE2MDBhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIGFu
ZCBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gYm90aCB3aXRoIGVtcHR5IG5hbWUgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4Y2I2MDA3MGM1NjM1NDcyOWNlMmIx
NjNiYTNjZjY0MzYxNjAwYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVh
dGVPYmplY3RTdG9yZSgpIGFuZCBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gYm90aCB3
aXRoIGVtcHR5IG5hbWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHlu
YW1lLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLXByaXZhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU5N2MyZWIyMzQ5MTY5Zjk0NDky
ZmI1OTc2YTZhNjIwZWNmYTNkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1wcml2YXRlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Ci08dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSBhbmQgSURC
T2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGJvdGggd2l0aCBlbXB0eSBuYW1lPC90aXRsZT4K
LTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIKLQotICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIoYXN5bmNfdGVzdCgpKQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAotICAgICAgICB2YXIgc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiIikKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDU7IGkrKykKLSAgICAgICAgICAgIHN0b3JlLmFkZCh7IGlkeDogIm9iamVjdF8iICsgaSB9LCBp
KQotCi0gICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCIiLCAiaWR4IikKLQotICAgICAgICBzdG9y
ZS5nZXQoNCkKLSAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaWR4LCAn
b2JqZWN0XzQnLCAncmVzdWx0JykKLSAgICAgICAgfSkKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhz
dG9yZS5pbmRleE5hbWVzWzBdLCAiIiwgImluZGV4TmFtZXNbMF0iKQotICAgICAgICBhc3NlcnRf
ZXF1YWxzKHN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1lcy5sZW5ndGgiKQot
ICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh
ciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCIiKS5vYmplY3RTdG9yZSgiIikKLQotICAgICAgICBh
c3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCi0g
ICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5h
bWVzLmxlbmd0aCIpCi0KLSAgICAgICAgc3RvcmUuaW5kZXgoIiIpCi0gICAgICAgICAgICAgLmdl
dCgnb2JqZWN0XzQnKQotICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5p
ZHgsICdvYmplY3RfNCcsICdyZXN1bHQnKQotICAgICAgICAgICAgdGhpcy5kb25lKCkKLSAgICAg
ICAgfSkKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4
LWVtcHR5bmFtZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OTdjMmViMjM0
OTE2OWY5NDQ5MmZiNTk3NmE2YTYyMGVjZmEzZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0eW5hbWUuaHRtCisr
KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PXV0Zi04PgotPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgYW5kIElE
Qk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBib3RoIHdpdGggZW1wdHkgbmFtZTwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiCi0KLSAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgdmFyIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoIiIpCi0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCA1OyBpKyspCi0gICAgICAgICAgICBzdG9yZS5hZGQoeyBpZHg6ICJvYmplY3RfIiArIGkgfSwg
aSkKLQotICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiIiwgImlkeCIpCi0KLSAgICAgICAgc3Rv
cmUuZ2V0KDQpCi0gICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmlkeCwg
J29iamVjdF80JywgJ3Jlc3VsdCcpCi0gICAgICAgIH0pCi0gICAgICAgIGFzc2VydF9lcXVhbHMo
c3RvcmUuaW5kZXhOYW1lc1swXSwgIiIsICJpbmRleE5hbWVzWzBdIikKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3RoIikK
LSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2
YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlvbigiIikub2JqZWN0U3RvcmUoIiIpCi0KLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzWzBdLCAiIiwgImluZGV4TmFtZXNbMF0iKQot
ICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhO
YW1lcy5sZW5ndGgiKQotCi0gICAgICAgIHN0b3JlLmluZGV4KCIiKQotICAgICAgICAgICAgIC5n
ZXQoJ29iamVjdF80JykKLSAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQu
aWR4LCAnb2JqZWN0XzQnLCAncmVzdWx0JykKLSAgICAgICAgICAgIHRoaXMuZG9uZSgpCi0gICAg
ICAgIH0pCi0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGNjNGNkZDFkNWQxMmVkMTEyZjJiNTQ0ZjhhY2UxYTRhMzZj
MDM2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
QkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSByZXR1cm5zIGFuIGluc3RhbmNlIG9mIElE
Qk9iamVjdFN0b3JlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGNjNGNkZDFkNWQxMmVkMTEyZjJiNTQ0ZjhhY2UxYTRhMzZjMDM2Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJh
c2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgSURCT2JqZWN0
U3RvcmUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwYTdmNmYxZDQ4NWM2YWU5
OTAyZGY5Mzg3Njg1NzZiOTc5YzNlNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmpl
Y3RTdG9yZSgpIC0gcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBJREJPYmplY3RTdG9yZTwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVuX3JxID0gY3Jl
YXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
dmFyIGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2luc3RhbmNldGVzdCcpCi0KLSAgICBhc3NlcnRfdHJ1ZShvYmpTdG9yZSBpbnN0
YW5jZW9mIElEQk9iamVjdFN0b3JlLCAnaW5zdGFuY2VvZiBJREJPYmplY3RTdG9yZScpCi19Ci0K
LW9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdAotICAgIHZhciBvYmpTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCdpbnN0YW5jZXRlc3Qn
KS5vYmplY3RTdG9yZSgnaW5zdGFuY2V0ZXN0JykKLQotICAgIGFzc2VydF90cnVlKG9ialN0b3Jl
IGluc3RhbmNlb2YgSURCT2JqZWN0U3RvcmUsICdpbnN0YW5jZW9mIElEQk9iamVjdFN0b3JlJykK
LSAgICB0LmRvbmUoKQotfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjBhN2Y2ZjFkNDg1YzZhZTk5MDJkZjkzODc2ODU3NmI5NzljM2U3NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLmh0bQorKysgL2Rl
di9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFi
YXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSByZXR1cm5zIGFuIGluc3RhbmNlIG9mIElEQk9iamVj
dFN0b3JlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBv
cnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAotICAg
IG9wZW5fcnEgPSBjcmVhdGVkYih0KQotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnaW5zdGFuY2V0ZXN0JykKLQotICAgIGFzc2VydF90cnVl
KG9ialN0b3JlIGluc3RhbmNlb2YgSURCT2JqZWN0U3RvcmUsICdpbnN0YW5jZW9mIElEQk9iamVj
dFN0b3JlJykKLX0KLQotb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgdmFy
IGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgdmFyIG9ialN0b3JlID0gZGIudHJhbnNhY3Rpb24o
J2luc3RhbmNldGVzdCcpLm9iamVjdFN0b3JlKCdpbnN0YW5jZXRlc3QnKQotCi0gICAgYXNzZXJ0
X3RydWUob2JqU3RvcmUgaW5zdGFuY2VvZiBJREJPYmplY3RTdG9yZSwgJ2luc3RhbmNlb2YgSURC
T2JqZWN0U3RvcmUnKQotICAgIHQuZG9uZSgpCi19Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTEwLTEwMDBlbmRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmNmYjk1YWJmYTM1MjRmMjFiZDkzN2NiNjYxZjFmZGZkYzdhZGYxNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJh
c2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVjdCBzdG9yZXMsIGFkZCBv
bmUgaXRlbSBhbmQgZGVsZXRlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZmI5NWFiZmEzNTI0ZjIxYmQ5Mzdj
YjY2MWYxZmRmZGM3YWRmMTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVjdCBzdG9yZXMsIGFkZCBvbmUgaXRlbSBhbmQgZGVsZXRl
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTEwLTEwMDBlbmRzLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmFlNzY2MWM4NDc0NWY5NTQ4YWQxZjU0N2FlYzkwMzM3MDZkNWMwMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVj
dCBzdG9yZXMsIGFkZCBvbmUgaXRlbSBhbmQgZGVsZXRlPC90aXRsZT4KLTxtZXRhIG5hbWU9dGlt
ZW91dCBjb250ZW50PWxvbmc+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotdmFyIGRiLAotICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlLCB7dGltZW91dDogNjAwMDAwfSksCi0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCi0K
LW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0Ci0gICAgdmFyIHN0LCBpOwotICAgIGZvciAoaSA9IDA7IGkgPCAxMDAwOyBpKysp
Ci0gICAgewotICAgICAgICBzdCA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJvYmplY3Rfc3RvcmVf
IiArIGkpCi0gICAgICAgIHN0LmFkZCgidGVzdCIsIDEpOwotICAgIH0KLQotICAgIHN0LmdldCgx
KS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LCAidGVzdCIpCi0gICAgfSkKLX0KLW9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgIGRiLmNsb3NlKCkKLSAgICB3aW5kb3cuaW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgdC5kb25lKCkKLSAgICB9Ci19Ci08L3NjcmlwdD4KLQotCi08ZGl2IGlkPSJsb2ciPjwvZGl2
PgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAw
MGVuZHMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWU3NjYxYzg0NzQ1Zjk1
NDhhZDFmNTQ3YWVjOTAzMzcwNmQ1YzAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG0KKysrIC9kZXYvbnVsbApAQCAt
MSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVP
YmplY3RTdG9yZSgpIC0gY3JlYXRlIDEwMDAgb2JqZWN0IHN0b3JlcywgYWRkIG9uZSBpdGVtIGFu
ZCBkZWxldGU8L3RpdGxlPgotPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci12YXIg
ZGIsCi0gICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiA2MDAwMDB9
KSwKLSAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICB2YXIgc3QsIGk7
Ci0gICAgZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICB7Ci0gICAgICAgIHN0ID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoIm9iamVjdF9zdG9yZV8iICsgaSkKLSAgICAgICAgc3QuYWRkKCJ0
ZXN0IiwgMSk7Ci0gICAgfQotCi0gICAgc3QuZ2V0KDEpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsICJ0
ZXN0IikKLSAgICB9KQotfQotb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ZGIuY2xvc2UoKQotICAgIHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGIubmFtZSku
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB0LmRvbmUoKQotICAgIH0KLX0KLTwv
c2NyaXB0PgotCi0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTEwLWVtcHR5bmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBiN2E1N2M5NmRlYTJhMmU0OWU2
ZjQ3OGE3OTBlNDRkZjk0NmJjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkg
LSBlbXB0eSBuYW1lIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBiN2E1N2M5NmRlYTJhMmU0OWU2ZjQ3OGE3
OTBlNDRkZjk0NmJjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUo
KSAtIGVtcHR5IG5hbWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE5NDE0ZDI5YjJlYWMyMzYyMTcxODI2OWY4ODUyMjQ1ZTZhYTY3Zjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEw
LWVtcHR5bmFtZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+SURCRGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoKSAtIGVtcHR5IG5hbWU8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotICAgIHZhciBkYgotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0
KCkpCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCIiKQotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQotICAgICAg
ICAgICAgc3RvcmUuYWRkKCJvYmplY3RfIiArIGksIGkpCi0KLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0b3JlTmFtZXNbMF0iKQot
ICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAxLCAib2Jq
ZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCIiKS5vYmpl
Y3RTdG9yZSgiIikKLQotICAgICAgICBzdG9yZS5nZXQoMikub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQsICJvYmplY3RfMiIpCi0gICAgICAgIH0pCi0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhk
Yi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0b3JlTmFtZXNbMF0iKQotICAg
ICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAxLCAib2JqZWN0
U3RvcmVOYW1lcy5sZW5ndGgiKQotCi0gICAgICAgIHRoaXMuZG9uZSgpCi0gICAgfQotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFt
ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTk0MTRkMjliMmVhYzIzNjIxNzE4MjY5Zjg4NTIyNDVlNmFhNjdmOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1l
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgp
IC0gZW1wdHkgbmFtZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiCi0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoIiIpCi0KLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1OyBpKyspCi0gICAgICAgICAgICBzdG9yZS5hZGQoIm9i
amVjdF8iICsgaSwgaSkKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFt
ZXNbMF0sICIiLCAiZGIub2JqZWN0U3RvcmVOYW1lc1swXSIpCi0gICAgICAgIGFzc2VydF9lcXVh
bHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIDEsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0
aCIpCi0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAg
ICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rpb24oIiIpLm9iamVjdFN0b3JlKCIiKQotCi0gICAg
ICAgIHN0b3JlLmdldCgyKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgIm9iamVjdF8yIikK
LSAgICAgICAgfSkKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNb
MF0sICIiLCAiZGIub2JqZWN0U3RvcmVOYW1lc1swXSIpCi0gICAgICAgIGFzc2VydF9lcXVhbHMo
ZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIDEsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIp
Ci0KLSAgICAgICAgdGhpcy5kb25lKCkKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY3ZWViMTY1OTgwNWQz
OTkyYzEyZmRkNGVkMGM0OWI1NTgyM2E1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0
dGVtcHRpbmcgdG8gY3JlYXRlIGFuIGV4aXN0aW5nIG9iamVjdCBzdG9yZSB3aXRoIGEgZGlmZmVy
ZW50IGtleVBhdGggdGhyb3cgQ29uc3RyYWludEVycm9yICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTExLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLXByaXZhdGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjdlZWIxNjU5ODA1ZDM5OTJjMTJmZGQ0
ZWQwYzQ5YjU1ODIzYTVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUxMS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBhdHRl
bXB0aW5nIHRvIGNyZWF0ZSBhbiBleGlzdGluZyBvYmplY3Qgc3RvcmUgd2l0aCBhIGRpZmZlcmVu
dCBrZXlQYXRoIHRocm93IENvbnN0cmFpbnRFcnJvciAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUx
MS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiMmUyMzNhNmU2NmUxNzgwMTU5ODZiMzZkMjk1N2UxMzBlNTFjZjU1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS1w
cml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmpl
Y3RTdG9yZSgpIC0gYXR0ZW1wdGluZyB0byBjcmVhdGUgYW4gZXhpc3Rpbmcgb2JqZWN0IHN0b3Jl
IHdpdGggYSBkaWZmZXJlbnQga2V5UGF0aCB0aHJvdyBDb25zdHJhaW50RXJyb3IgPC90aXRsZT4K
LTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwu
Y29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1jcmVhdGVP
YmplY3RTdG9yZS1JREJPYmplY3RTdG9yZS1ET01TdHJpbmctbmFtZS1JREJPYmplY3RTdG9yZVBh
cmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0ZXJzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLXZhciB0
ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQotb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICBhc3NlcnRfdGhy
b3dzKCJDb25zdHJhaW50RXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiLCB7Ci0gICAgICAgICAgICBrZXlQYXRoOiAia2V5MSIsCi0gICAgICAg
IH0pOwotICAgIH0pOwotICAgIHQuZG9uZSgpOwotfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmUxMS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMmUyMzNhNmU2NmUxNzgwMTU5ODZiMzZkMjk1N2UxMzBlNTFjZjU1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS5odG0KKysrIC9k
ZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1w
dGluZyB0byBjcmVhdGUgYW4gZXhpc3Rpbmcgb2JqZWN0IHN0b3JlIHdpdGggYSBkaWZmZXJlbnQg
a2V5UGF0aCB0aHJvdyBDb25zdHJhaW50RXJyb3IgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1jcmVhdGVPYmplY3RTdG9yZS1JREJPYmpl
Y3RTdG9yZS1ET01TdHJpbmctbmFtZS1JREJPYmplY3RTdG9yZVBhcmFtZXRlcnMtb3B0aW9uYWxQ
YXJhbWV0ZXJzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbiAoZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICBhc3NlcnRfdGhyb3dzKCJDb25zdHJhaW50RXJy
b3IiLCBmdW5jdGlvbigpewotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
Ci0gICAgICAgICAgICBrZXlQYXRoOiAia2V5MSIsCi0gICAgICAgIH0pOwotICAgIH0pOwotICAg
IHQuZG9uZSgpOwotfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmNkNzE1N2VlODEwOWZkMzY0YTE2ODUwOGUzOWNiNDE3ZTllNTZhYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVP
YmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlICduYW1lJyBhbmQgJ2tleVBhdGgnIHByb3BlcnRp
ZXMgYXJlIGNvcnJlY3RseSBzZXQgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2Y2Q3MTU3ZWU4MTA5ZmQzNjRhMTY4NTA4ZTM5Y2I0MTdlOWU1NmFj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUy
LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSAnbmFtZScg
YW5kICdrZXlQYXRoJyBwcm9wZXJ0aWVzIGFyZSBjb3JyZWN0bHkgc2V0ICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTItcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTZkNWM1NjNhYjQ5ZDE4Y2MyNmM1ZDc1NTQyYzRjYjkz
NGM5NjY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUyLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBvYmpl
Y3Qgc3RvcmUgJ25hbWUnIGFuZCAna2V5UGF0aCcgcHJvcGVydGllcyBhcmUgY29ycmVjdGx5IHNl
dCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBv
cGVuX3JxID0gY3JlYXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0LAotICAgICAgICBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJwcm9wIiwgeyBrZXlQYXRoOiAibXlrZXlwYXRoIiB9KQot
Ci0gICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5uYW1lLCAicHJvcCIsICJvYmplY3Qgc3RvcmUg
bmFtZSIpCi0gICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5rZXlQYXRoLCAibXlrZXlwYXRoIiwg
ImtleSBwYXRoIikKLSAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmF1dG9JbmNyZW1lbnQsIGZh
bHNlLCAiYXV0byBpbmNyZW1lbnQiKQotfQotCi1vcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICB2YXIgb2JqU3RvcmUgPSBk
Yi50cmFuc2FjdGlvbigncHJvcCcpLm9iamVjdFN0b3JlKCdwcm9wJykKLQotICAgIGFzc2VydF9l
cXVhbHMob2JqU3RvcmUubmFtZSwgInByb3AiLCAib2JqZWN0IHN0b3JlIG5hbWUiKQotICAgIGFz
c2VydF9lcXVhbHMob2JqU3RvcmUua2V5UGF0aCwgIm15a2V5cGF0aCIsICJrZXkgcGF0aCIpCi0g
ICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5hdXRvSW5jcmVtZW50LCBmYWxzZSwgImF1dG8gaW5j
cmVtZW50IikKLSAgICB0LmRvbmUoKQotfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi5odG0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNlNmQ1YzU2M2FiNDlkMThjYzI2YzVkNzU1NDJjNGNiOTM0Yzk2
NjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTIuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSAnbmFt
ZScgYW5kICdrZXlQYXRoJyBwcm9wZXJ0aWVzIGFyZSBjb3JyZWN0bHkgc2V0IDwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5fcnEgPSBjcmVh
dGVkYih0KQotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICB2
YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQsCi0gICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInByb3AiLCB7IGtleVBhdGg6ICJteWtleXBhdGgiIH0pCi0KLSAgICBhc3NlcnRf
ZXF1YWxzKG9ialN0b3JlLm5hbWUsICJwcm9wIiwgIm9iamVjdCBzdG9yZSBuYW1lIikKLSAgICBh
c3NlcnRfZXF1YWxzKG9ialN0b3JlLmtleVBhdGgsICJteWtleXBhdGgiLCAia2V5IHBhdGgiKQot
ICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuYXV0b0luY3JlbWVudCwgZmFsc2UsICJhdXRvIGlu
Y3JlbWVudCIpCi19Ci0KLW9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgIHZh
ciBkYiA9IGUudGFyZ2V0LnJlc3VsdAotICAgIHZhciBvYmpTdG9yZSA9IGRiLnRyYW5zYWN0aW9u
KCdwcm9wJykub2JqZWN0U3RvcmUoJ3Byb3AnKQotCi0gICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9y
ZS5uYW1lLCAicHJvcCIsICJvYmplY3Qgc3RvcmUgbmFtZSIpCi0gICAgYXNzZXJ0X2VxdWFscyhv
YmpTdG9yZS5rZXlQYXRoLCAibXlrZXlwYXRoIiwgImtleSBwYXRoIikKLSAgICBhc3NlcnRfZXF1
YWxzKG9ialN0b3JlLmF1dG9JbmNyZW1lbnQsIGZhbHNlLCAiYXV0byBpbmNyZW1lbnQiKQotICAg
IHQuZG9uZSgpCi19Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRl
T2JqZWN0U3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJhY2Y5YzI1ODZhNmIwYTUzYThkOWNlNGVkZjBjNWEy
ZWEyM2Y3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4g
b2JqZWN0IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiAgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTMtcHJp
dmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyYWNmOWMy
NTg2YTZiMGE1M2E4ZDljZTRlZGYwYzVhMmVhMjNmNzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmpl
Y3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIG91dHNpZGUgb2Yg
YSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUzLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWQxMGU5MGQ4YjllYjkyNGUwNDU1NjMwNzU3ZDNkMWQwOTI3ZDIyZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1wcml2YXRl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0
aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUg
YW4gb2JqZWN0IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiA8
L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVu
X3JxID0gY3JlYXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigp
IHt9Ci1vcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0gICAgdmFyIGRiID0gZS50
YXJnZXQucmVzdWx0Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgICAgJ0ludmFsaWRTdGF0ZUVy
cm9yJywKLSAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmYWlscycp
IH0pCi0gICAgdC5kb25lKCk7Ci19Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTMuaHRtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZDEwZTkwZDhiOWViOTI0ZTA0NTU2MzA3NTdkM2QxZDA5MjdkMjJk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUz
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRp
dGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBh
biBvYmplY3Qgc3RvcmUgb3V0c2lkZSBvZiBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIDwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5f
cnEgPSBjcmVhdGVkYih0KQotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkg
e30KLW9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRh
cmdldC5yZXN1bHQKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgICAnSW52YWxpZFN0YXRlRXJy
b3InLAotICAgICAgICBmdW5jdGlvbigpIHsgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZhaWxzJykg
fSkKLSAgICB0LmRvbmUoKTsKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MjNlOWViODViZGNiZWYzZGJkMTAx
YTA4MDFkZGRkODM1NWEzMDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8g
Y3JlYXRlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgyM2U5ZWI4NWJkY2JlZjNk
YmQxMDFhMDgwMWRkZGQ4MzU1YTMwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkg
LSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgdGhhdCBhbHJlYWR5IGV4aXN0cyAg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU0LXByaXZhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJjN2ZmZWY1YzAyZDYyZTkxZmM3
MDVkNGExZTliMWE1ZDUzN2YxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RT
dG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIHRoYXQgYWxyZWFkeSBl
eGlzdHMgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHQgPSBhc3luY190ZXN0KCksCi0g
ICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCi0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAotICAgIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJkdXBlIikKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgICAnQ29uc3RyYWlu
dEVycm9yJywKLSAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkdXBl
IikgfSkKLQotICAgIC8vIEJvbnVzIHRlc3QgY3JlYXRpbmcgYSBuZXcgb2JqZWN0c3RvcmUgYWZ0
ZXIgdGhlIGV4Y2VwdGlvbgotICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkdXBlICIpCi0gICAg
dC5kb25lKCkKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJiYzdmZmVmNWMwMmQ2MmU5MWZjNzA1ZDRhMWU5YjFhNWQ1MzdmMWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTQuaHRtCisrKyAv
ZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRGF0
YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBz
dG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0
ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQotCi1vcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1
bHQKLSAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZHVwZSIpCi0gICAgYXNzZXJ0X3Rocm93cygK
LSAgICAgICAgJ0NvbnN0cmFpbnRFcnJvcicsCi0gICAgICAgIGZ1bmN0aW9uKCkgeyBkYi5jcmVh
dGVPYmplY3RTdG9yZSgiZHVwZSIpIH0pCi0KLSAgICAvLyBCb251cyB0ZXN0IGNyZWF0aW5nIGEg
bmV3IG9iamVjdHN0b3JlIGFmdGVyIHRoZSBleGNlcHRpb24KLSAgICBkYi5jcmVhdGVPYmplY3RT
dG9yZSgiZHVwZSAiKQotICAgIHQuZG9uZSgpCi19Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDY2MmI4M2QzMTJj
MmU3MzI0MTgxM2Y5YmZhY2FiZTVjZGE5ZTM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBv
YmplY3Qgc3RvcmUncyBuYW1lIGFwcGVhcnMgaW4gZGF0YWJhc2UncyBsaXN0ICAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS1wcml2YXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ2NjJiODNkMzEyYzJl
NzMyNDE4MTNmOWJmYWNhYmU1Y2RhOWUzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KCkgLSBvYmplY3Qgc3RvcmUncyBuYW1lIGFwcGVhcnMgaW4gZGF0YWJhc2UncyBsaXN0ICAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUtcHJpdmF0ZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDdhOTM4OTAzMmQ0OWI4ZjEwZDc5ZDhk
NWI5MDY4MzY0ZWU0MTYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU1LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KCkgLSBvYmplY3Qgc3RvcmUncyBuYW1lIGFwcGVhcnMgaW4gZGF0YWJhc2UncyBsaXN0IDwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5fcnEg
PSBjcmVhdGVkYih0KQotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
LSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKLQotICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJNeSBjb29sIG9iamVjdCBzdG9yZSBuYW1lIikKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgICAg
ZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygiTXkgY29vbCBvYmplY3Qgc3RvcmUgbmFtZSIp
LAotICAgICAgICAnb2JqZWN0U3RvcmVOYW1lcy5jb250YWlucycpCi19Ci0KLW9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAotCi0g
ICAgYXNzZXJ0X3RydWUoCi0gICAgICAgIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoIk15
IGNvb2wgb2JqZWN0IHN0b3JlIG5hbWUiKSwKLSAgICAgICAgJ29iamVjdFN0b3JlTmFtZXMuY29u
dGFpbnMgKGluIHN1Y2Nlc3MpJykKLSAgICB0LmRvbmUoKQotfQotCi08L3NjcmlwdD4KLQotPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1Lmh0
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q3YTkzODkwMzJkNDliOGYxMGQ3OWQ4
ZDViOTA2ODM2NGVlNDE2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlNS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2Jq
ZWN0IHN0b3JlJ3MgbmFtZSBhcHBlYXJzIGluIGRhdGFiYXNlJ3MgbGlzdCA8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVuX3JxID0gY3JlYXRl
ZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgdmFy
IGRiID0gZS50YXJnZXQucmVzdWx0Ci0KLSAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiTXkgY29v
bCBvYmplY3Qgc3RvcmUgbmFtZSIpCi0gICAgYXNzZXJ0X3RydWUoCi0gICAgICAgIGRiLm9iamVj
dFN0b3JlTmFtZXMuY29udGFpbnMoIk15IGNvb2wgb2JqZWN0IHN0b3JlIG5hbWUiKSwKLSAgICAg
ICAgJ29iamVjdFN0b3JlTmFtZXMuY29udGFpbnMnKQotfQotCi1vcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKLQotICAgIGFzc2Vy
dF90cnVlKAotICAgICAgICBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJNeSBjb29sIG9i
amVjdCBzdG9yZSBuYW1lIiksCi0gICAgICAgICdvYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zIChp
biBzdWNjZXNzKScpCi0gICAgdC5kb25lKCkKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkZGZjNGU3MTkzNDBl
YjNjOWUyNWNiOGZmYjFiYjk1YzJkYzU3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0
dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB3aXRoIGFuIGludmFsaWQga2V5IHBhdGgg
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2
LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGRm
YzRlNzE5MzQwZWIzYzllMjVjYjhmZmIxYmI5NWMyZGM1N2M4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2LXByaXZhdGUtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRl
T2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB3aXRoIGFu
IGludmFsaWQga2V5IHBhdGggIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlNi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFl
M2Y0MDA4OTgxOTNmMmQ0NTU3YzQ3ZjlkNTBkZGI4OTRlNDhlZmQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtcHJpdmF0ZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRGF0
YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBz
dG9yZSB3aXRoIGFuIGludmFsaWQga2V5IHBhdGggPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQot
dmFyIHQgPSBhc3luY190ZXN0KCksCi0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCi0KLW9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdAotCi0gICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJpbnZhbGlka2V5cGF0aCIsIHsga2V5
UGF0aDogIkludmFsaWQgS2V5cGF0aCIgfSkKLSAgICAgICAgfSkKLQotICAgIGFzc2VydF90aHJv
d3MoJ1N5bnRheEVycm9yJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgiaW52YWxpZGtleXBhdGgiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVBhdGg6ICJJ
bnZhbGlkIEtleXBhdGgiIH0pCi0gICAgICAgIH0pCi0KLSAgICB0LmRvbmUoKQotfQotCi08L3Nj
cmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2Lmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU2Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUzZjQwMDg5ODE5
M2YyZDQ1NTdjNDdmOWQ1MGRkYjg5NGU0OGVmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RT
dG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIHdpdGggYW4gaW52YWxp
ZCBrZXkgcGF0aCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3Qo
KSwKLSAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0Ci0KLSAgICBhc3Nl
cnRfdGhyb3dzKCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoImludmFsaWRrZXlwYXRoIiwgeyBrZXlQYXRoOiAiSW52YWxpZCBLZXlw
YXRoIiB9KQotICAgICAgICB9KQotCi0gICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJpbnZhbGlka2V5
cGF0aCIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5UGF0aDogIkludmFsaWQgS2V5cGF0aCIgfSkK
LSAgICAgICAgfSkKLQotICAgIHQuZG9uZSgpCi19Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTct
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzM5ZjhjNzk2NDlk
ZDVkZmIwOWI2MDUwZWQ2ZWEwOTAxMGJjYTEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBj
cmVhdGUgYW4gb2JqZWN0IHN0b3JlIHdpdGggYW4gdW5rbm93biBvcHRpb25hbCBwYXJhbWV0ZXIg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTct
cHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3Mzlm
OGM3OTY0OWRkNWRmYjA5YjYwNTBlZDZlYTA5MDEwYmNhMTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctcHJpdmF0ZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVP
YmplY3RTdG9yZSgpIC0gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB3aXRoIGFuIHVua25vd24gb3B0
aW9uYWwgcGFyYW1ldGVyIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlNy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNmEz
MDk5MGRjM2VlNmYxMzc2N2JkZDY1M2QwYWI0MzYyMDU5ZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctcHJpdmF0ZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRGF0YWJh
c2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgd2l0aCBhbiB1
bmtub3duIG9wdGlvbmFsIHBhcmFtZXRlciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhy
ZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0KLXZhciB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSks
Ci0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCi0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgewotICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAotICAgIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJ3aXRoIHVua25vd24gcGFyYW0iLCB7IHBhcmFtZXRlcjogMCB9KTsKLQot
ICAgIHQuZG9uZSgpCi19Ci0KLTwvc2NyaXB0PgotCi0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTcuaHRtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMjZhMzA5OTBkYzNlZTZmMTM3NjdiZGQ2NTNkMGFiNDM2MjA1OWVk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRp
dGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBjcmVhdGUgYW4gb2JqZWN0IHN0
b3JlIHdpdGggYW4gdW5rbm93biBvcHRpb25hbCBwYXJhbWV0ZXIgPC90aXRsZT4KLTxsaW5rIHJl
bD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4
cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1l
b3V0OiAxMDAwMH0pLAotICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQotCi1vcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQK
LSAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgid2l0aCB1bmtub3duIHBhcmFtIiwgeyBwYXJhbWV0
ZXI6IDAgfSk7Ci0KLSAgICB0LmRvbmUoKQotfQotCi08L3NjcmlwdD4KLQotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTgtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJlYzI2Yzk0ZmYyYTUxODFhNGQ4OTA2MTVlN2I2OTQyN2I2ODEyOWUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFy
YW1ldGVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0KLVBB
U1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlIAotUEFTUyBJREJPYmpl
Y3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRvSW5jIHRydWUsIGtleVBhdGggbnVsbCAKLVBBU1MgSURC
T2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIHVuZGVmaW5lZCAK
LVBBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIHN0
cmluZyAKLVBBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5
UGF0aCBlbXB0eSAKLVBBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxz
ZSwga2V5UGF0aCBhcnJheSAKLVBBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0lu
YyBmYWxzZSwga2V5UGF0aCBzdHJpbmcgCi1QQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAt
IGtleVBhdGggZW1wdHkgCi1QQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGgg
YXJyYXkgCi1QQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggc3RyaW5nIAot
UEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBrZXlQYXRoIG51bGwgCi1QQVNTIElEQk9i
amVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggdW5kZWZpbmVkIAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1l
dGVycy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmVjMjZjOTRmZjJhNTE4MWE0ZDg5MDYxNWU3YjY5NDI3YjY4MTI5ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZh
dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotCi1QQVNTIElE
Qk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgdHJ1ZSAKLVBBU1MgSURCT2JqZWN0U3Rv
cmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIG51bGwgCi1QQVNTIElEQk9iamVj
dFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgdHJ1ZSwga2V5UGF0aCB1bmRlZmluZWQgCi1QQVNT
IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgdHJ1ZSwga2V5UGF0aCBzdHJpbmcg
Ci1QQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgZmFsc2UsIGtleVBhdGgg
ZW1wdHkgCi1QQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgZmFsc2UsIGtl
eVBhdGggYXJyYXkgCi1QQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgZmFs
c2UsIGtleVBhdGggc3RyaW5nIAotUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBrZXlQ
YXRoIGVtcHR5IAotUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBrZXlQYXRoIGFycmF5
IAotUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBrZXlQYXRoIHN0cmluZyAKLVBBU1Mg
SURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0ga2V5UGF0aCBudWxsIAotUEFTUyBJREJPYmplY3RT
dG9yZVBhcmFtZXRlcnMgLSBrZXlQYXRoIHVuZGVmaW5lZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTgtcGFyYW1ldGVycy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM4YzUyYzQ0OGRkNzE2ZGNlYTRh
NGE2YmY5YjM5NDZkOWEzZjQyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPklEQk9iamVjdFN0b3JlUGFyYW1ldGVyczwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgotPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
b3B0aW9uYWxQYXJhbWV0ZXJzKGRlc2MsIHBhcmFtcykgewotICAgICAgICB2YXIgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOwotCi0gICAgICAgIGNyZWF0ZWRi
KHQpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGUudGFyZ2V0
LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCBwYXJhbXMpOwotCi0gICAgICAgICAg
ICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9Ci0KLQotICAgIG9wdGlvbmFsUGFyYW1l
dGVycygiYXV0b0luYyB0cnVlIiwgICAgICAgICAgICAgICAgICAgIHthdXRvSW5jcmVtZW50OiB0
cnVlfSk7Ci0gICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUsIGtleVBhdGggbnVs
bCIsICAgICAge2F1dG9JbmNyZW1lbnQ6IHRydWUsICBrZXlQYXRoOiBudWxsfSk7Ci0gICAgb3B0
aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUsIGtleVBhdGggdW5kZWZpbmVkIiwge2F1dG9J
bmNyZW1lbnQ6IHRydWUsICBrZXlQYXRoOiB1bmRlZmluZWR9KTsKLSAgICBvcHRpb25hbFBhcmFt
ZXRlcnMoImF1dG9JbmMgdHJ1ZSwga2V5UGF0aCBzdHJpbmciLCAgICB7YXV0b0luY3JlbWVudDog
dHJ1ZSwgIGtleVBhdGg6ICJhIn0pOwotCi0gICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5j
IGZhbHNlLCBrZXlQYXRoIGVtcHR5IiwgIHthdXRvSW5jcmVtZW50OiBmYWxzZSwga2V5UGF0aDog
IiJ9KTsKLSAgICBvcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgZmFsc2UsIGtleVBhdGggYXJy
YXkiLCAge2F1dG9JbmNyZW1lbnQ6IGZhbHNlLCBrZXlQYXRoOiBbImgiLCAiaiJdfSk7Ci0gICAg
b3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGZhbHNlLCBrZXlQYXRoIHN0cmluZyIsIHthdXRv
SW5jcmVtZW50OiBmYWxzZSwga2V5UGF0aDogImFiYyJ9KTsKLQotICAgIG9wdGlvbmFsUGFyYW1l
dGVycygia2V5UGF0aCBlbXB0eSIsICAgICB7a2V5UGF0aDogIiJ9KTsKLSAgICBvcHRpb25hbFBh
cmFtZXRlcnMoImtleVBhdGggYXJyYXkiLCAgICAge2tleVBhdGg6IFsiYSIsImIiXX0pOwotICAg
IG9wdGlvbmFsUGFyYW1ldGVycygia2V5UGF0aCBzdHJpbmciLCAgICB7a2V5UGF0aDogImFiYyJ9
KTsKLSAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggbnVsbCIsICAgICAge2tleVBhdGg6
IG51bGx9KTsKLSAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggdW5kZWZpbmVkIiwge2tl
eVBhdGg6IHVuZGVmaW5lZH0pOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVy
cy5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzOGM1MmM0NDhkZDcxNmRjZWE0
YTRhNmJmOWIzOTQ2ZDlhM2Y0MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVycy5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwz
OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5JREJPYmplY3RTdG9yZVBhcmFtZXRlcnM8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhy
ZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4K
LTxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9uIG9wdGlvbmFs
UGFyYW1ldGVycyhkZXNjLCBwYXJhbXMpIHsKLSAgICAgICAgdmFyIHQgPSBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKLQotICAgICAgICBjcmVhdGVkYih0KS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgcGFyYW1zKTsKLQotICAgICAgICAgICAgdGhpcy5k
b25lKCk7Ci0gICAgICAgIH07Ci0gICAgfQotCi0KLSAgICBvcHRpb25hbFBhcmFtZXRlcnMoImF1
dG9JbmMgdHJ1ZSIsICAgICAgICAgICAgICAgICAgICB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOwot
ICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyB0cnVlLCBrZXlQYXRoIG51bGwiLCAgICAg
IHthdXRvSW5jcmVtZW50OiB0cnVlLCAga2V5UGF0aDogbnVsbH0pOwotICAgIG9wdGlvbmFsUGFy
YW1ldGVycygiYXV0b0luYyB0cnVlLCBrZXlQYXRoIHVuZGVmaW5lZCIsIHthdXRvSW5jcmVtZW50
OiB0cnVlLCAga2V5UGF0aDogdW5kZWZpbmVkfSk7Ci0gICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJh
dXRvSW5jIHRydWUsIGtleVBhdGggc3RyaW5nIiwgICAge2F1dG9JbmNyZW1lbnQ6IHRydWUsICBr
ZXlQYXRoOiAiYSJ9KTsKLQotICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBmYWxzZSwg
a2V5UGF0aCBlbXB0eSIsICB7YXV0b0luY3JlbWVudDogZmFsc2UsIGtleVBhdGg6ICIifSk7Ci0g
ICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGZhbHNlLCBrZXlQYXRoIGFycmF5IiwgIHth
dXRvSW5jcmVtZW50OiBmYWxzZSwga2V5UGF0aDogWyJoIiwgImoiXX0pOwotICAgIG9wdGlvbmFs
UGFyYW1ldGVycygiYXV0b0luYyBmYWxzZSwga2V5UGF0aCBzdHJpbmciLCB7YXV0b0luY3JlbWVu
dDogZmFsc2UsIGtleVBhdGg6ICJhYmMifSk7Ci0KLSAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtl
eVBhdGggZW1wdHkiLCAgICAge2tleVBhdGg6ICIifSk7Ci0gICAgb3B0aW9uYWxQYXJhbWV0ZXJz
KCJrZXlQYXRoIGFycmF5IiwgICAgIHtrZXlQYXRoOiBbImEiLCJiIl19KTsKLSAgICBvcHRpb25h
bFBhcmFtZXRlcnMoImtleVBhdGggc3RyaW5nIiwgICAge2tleVBhdGg6ICJhYmMifSk7Ci0gICAg
b3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIG51bGwiLCAgICAgIHtrZXlQYXRoOiBudWxsfSk7
Ci0gICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIHVuZGVmaW5lZCIsIHtrZXlQYXRoOiB1
bmRlZmluZWR9KTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlOS1pbnZhbGlkcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1p
bnZhbGlkcGFyYW1ldGVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRjZDViYmI3ZWMwNGRhY2ZjODA5ZDU0OWIxOTk2N2RkZDU2YzQ3YWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFt
ZXRlcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1Mg
Y3JlYXRlT2JqZWN0U3RvcmU6IEludmFsaWQgb3B0aW9uYWxQYXJhbWV0ZXJzIC0gYXV0b0luYyBh
bmQgZW1wdHkga2V5UGF0aCAKLVBBU1MgY3JlYXRlT2JqZWN0U3RvcmU6IEludmFsaWQgb3B0aW9u
YWxQYXJhbWV0ZXJzIC0gYXV0b0luYyBhbmQga2V5UGF0aCBhcnJheSAKLVBBU1MgY3JlYXRlT2Jq
ZWN0U3RvcmU6IEludmFsaWQgb3B0aW9uYWxQYXJhbWV0ZXJzIC0gYXV0b0luYyBhbmQga2V5UGF0
aCBhcnJheSAyIAotUEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25hbFBhcmFt
ZXRlcnMgLSBhdXRvSW5jIGFuZCBrZXlQYXRoIG9iamVjdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTktaW52YWxpZHBhcmFtZXRlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1pbnZh
bGlkcGFyYW1ldGVycy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGNkNWJiYjdlYzA0ZGFjZmM4MDlkNTQ5YjE5OTY3ZGRkNTZjNDdhYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1pbnZhbGlk
cGFyYW1ldGVycy1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAs
MCBAQAotCi1QQVNTIGNyZWF0ZU9iamVjdFN0b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVy
cyAtIGF1dG9JbmMgYW5kIGVtcHR5IGtleVBhdGggCi1QQVNTIGNyZWF0ZU9iamVjdFN0b3JlOiBJ
bnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVycyAtIGF1dG9JbmMgYW5kIGtleVBhdGggYXJyYXkgCi1Q
QVNTIGNyZWF0ZU9iamVjdFN0b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVycyAtIGF1dG9J
bmMgYW5kIGtleVBhdGggYXJyYXkgMiAKLVBBU1MgY3JlYXRlT2JqZWN0U3RvcmU6IEludmFsaWQg
b3B0aW9uYWxQYXJhbWV0ZXJzIC0gYXV0b0luYyBhbmQga2V5UGF0aCBvYmplY3QgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5
LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTU2MjVlMjQ4NDkzMWFjMjAwODBkMzA5NjRhZThlZjAwNWU0ODAyMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1pbnZhbGlkcGFy
YW1ldGVycy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+Y3JlYXRlT2JqZWN0U3Rv
cmU6IEludmFsaWQgb3B0aW9uYWxQYXJhbWV0ZXJzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlw
dD4KLSAgICBmdW5jdGlvbiBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycyhkZXNjLCBwYXJhbXMp
IHsKLSAgICAgICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBk
ZXNjKTsKLQotICAgICAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCBwYXJh
bXMpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAg
ICB9OwotICAgIH0KLQotICAgIGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGFu
ZCBlbXB0eSBrZXlQYXRoIiwge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6ICIifSk7Ci0g
ICAgaW52YWxpZF9vcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgYW5kIGtleVBhdGggYXJyYXki
LCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogW119KTsKLSAgICBpbnZhbGlkX29wdGlv
bmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQga2V5UGF0aCBhcnJheSAyIiwge2F1dG9JbmNyZW1l
bnQ6IHRydWUsIGtleVBhdGg6IFsiaGV5Il19KTsKLSAgICBpbnZhbGlkX29wdGlvbmFsUGFyYW1l
dGVycygiYXV0b0luYyBhbmQga2V5UGF0aCBvYmplY3QiLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwg
a2V5UGF0aDoge2E6ImhleSIsIGI6Mn19KTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTktaW52YWxpZHBhcmFtZXRlcnMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
NTYyNWUyNDg0OTMxYWMyMDA4MGQzMDk2NGFlOGVmMDA1ZTQ4MDIzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJz
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5jcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRp
b25hbFBhcmFtZXRlcnM8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9u
IGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKGRlc2MsIHBhcmFtcykgewotICAgICAgICB2YXIg
dCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOwotCi0gICAgICAg
IGNyZWF0ZWRiKHQpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZS50YXJn
ZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHBhcmFtcyk7Ci0gICAgICAgICAg
ICB9KTsKLQotICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfQotCi0g
ICAgaW52YWxpZF9vcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgYW5kIGVtcHR5IGtleVBhdGgi
LCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogIiJ9KTsKLSAgICBpbnZhbGlkX29wdGlv
bmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQga2V5UGF0aCBhcnJheSIsIHthdXRvSW5jcmVtZW50
OiB0cnVlLCBrZXlQYXRoOiBbXX0pOwotICAgIGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKCJh
dXRvSW5jIGFuZCBrZXlQYXRoIGFycmF5IDIiLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0
aDogWyJoZXkiXX0pOwotICAgIGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGFu
ZCBrZXlQYXRoIG9iamVjdCIsIHthdXRvSW5jcmVtZW50OiB0cnVlLCBrZXlQYXRoOiB7YToiaGV5
IiwgYjoyfX0pOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9i
amVjdFN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhZTU2YTA5OTY3NGMzMTBmMTVhNjcyZjUzNmQwNjUxZjQ5YmNi
YzA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3Rv
cmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURC
RGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSdzIG5hbWUgaXMgcmVt
b3ZlZCBmcm9tIGRhdGFiYXNlJ3MgbGlzdCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUtcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhZTU2YTA5OTY3NGMzMTBmMTVhNjcyZjUzNmQwNjUxZjQ5YmNi
YzA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3Rv
cmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlJ3MgbmFt
ZSBpcyByZW1vdmVkIGZyb20gZGF0YWJhc2UncyBsaXN0ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9y
ZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjY3ZmMwZTY1NWVjYWM1MjdiM2VhYzMzOTczNDAzMzU1OTIyNmE2MC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLXByaXZh
dGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PHRpdGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBvYmplY3Qgc3RvcmUncyBu
YW1lIGlzIHJlbW92ZWQgZnJvbSBkYXRhYmFzZSdzIGxpc3QgPC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlw
dD4KLQotdmFyIHQgPSBhc3luY190ZXN0KCksCi0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCi0K
LW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgIHZhciBkYiA9IGUu
dGFyZ2V0LnJlc3VsdAotCi0gICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoImRlbGV0ZWQiKTsKLSAg
ICBkYi5kZWxldGVPYmplY3RTdG9yZSgiZGVsZXRlZCIpOwotICAgIGFzc2VydF9mYWxzZShkYi5v
YmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJkZWxldGVkIikpCi0KLSAgICB0LmRvbmUoKQotfQot
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxl
dGVPYmplY3RTdG9yZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2ZjMGU2
NTVlY2FjNTI3YjNlYWMzMzk3MzQwMzM1NTkyMjZhNjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwy
NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS5kZWxldGVPYmpl
Y3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlJ3MgbmFtZSBpcyByZW1vdmVkIGZyb20gZGF0YWJhc2Un
cyBsaXN0IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKLQotICAgIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJkZWxldGVkIik7Ci0gICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoImRlbGV0
ZWQiKTsKLSAgICBhc3NlcnRfZmFsc2UoZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygiZGVs
ZXRlZCIpKQotCi0gICAgdC5kb25lKCkKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkYzdkNjIzMzVkMTJhNzIy
NjIwOWNmOGUyMGUyMjk1MDgyZGRhZTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRh
YmFzZV9kZWxldGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVt
cHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2Ug
dHJhbnNhY3Rpb24gIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRl
T2JqZWN0U3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2ZGM3ZDYyMzM1ZDEyYTcyMjYyMDljZjhlMjBlMjI5NTA4MmRkYWUwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0
YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBz
dG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1wcml2YXRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0YTg3ZWNiOWQwZTkxYjYzNWI0ZTZjMDY4MzllMDUx
OWJmZTBhYzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmpl
Y3RTdG9yZTItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0
dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFu
Z2UgdHJhbnNhY3Rpb24gPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHQgPSBhc3luY190
ZXN0KCksCi0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi1vcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpCi17Ci0gICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0LAotICAg
ICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIpOwot
Ci0gICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uIChlKQotICAgIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3In
LAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJkZWxldGVf
b3V0c2lkZSIpOyB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0
PgotCi0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTIuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVP
YmplY3RTdG9yZTIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGE4N2VjYjlk
MGU5MWI2MzViNGU2YzA2ODM5ZTA1MTliZmUwYWM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDMx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVj
dFN0b3JlKCkgLSBhdHRlbXB0IHRvIHJlbW92ZSBhbiBvYmplY3Qgc3RvcmUgb3V0c2lkZSBvZiBh
IHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZh
ciB0ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQotb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKQotewotICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdCwKLSAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZGVsZXRl
X291dHNpZGUiKTsKLQotICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbiAoZSkKLSAgICB7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFs
aWRTdGF0ZUVycm9yJywKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBkYi5kZWxldGVPYmplY3RT
dG9yZSgiZGVsZXRlX291dHNpZGUiKTsgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0pOwot
fQotCi08L3NjcmlwdD4KLQotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2Jq
ZWN0U3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGM0ZTZlNjRjMjkyMzM1N2E5ZWQ4NTMyMmMzN2VjOGEyOWIx
YjdiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0
b3JlMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJ
REJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byByZW1vdmUgYW4gb2Jq
ZWN0IHN0b3JlIHRoYXQgZG9lcyBub3QgZXhpc3QgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzRlNmU2NGMyOTIzMzU3YTllZDg1MzIyYzM3ZWM4
YTI5YjFiN2JlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2Jq
ZWN0U3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8g
cmVtb3ZlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGRvZXMgbm90IGV4aXN0ICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVP
YmplY3RTdG9yZTMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMtcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDk3YzE2OWU1OWFmMTMyMTRhNzA2OWVjZGZmNjkwNWJi
OTMyOTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0
U3RvcmUzLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBhdHRl
bXB0IHRvIHJlbW92ZSBhbiBvYmplY3Qgc3RvcmUgdGhhdCBkb2VzIG5vdCBleGlzdCA8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkKLXsK
LSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgYXNzZXJ0X3Rocm93cygnTm90Rm91
bmRFcnJvcicsCi0gICAgICAgIGZ1bmN0aW9uKCkgeyBkYi5kZWxldGVPYmplY3RTdG9yZSgnd2hh
dGV2ZXInKTsgfSk7Ci0gICAgdC5kb25lKCk7Ci19Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMuaHRtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDk3YzE2OWU1OWFmMTMyMTRhNzA2OWVjZGZmNjkw
NWJiOTMyOTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2Jq
ZWN0U3RvcmUzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBhdHRlbXB0IHRv
IHJlbW92ZSBhbiBvYmplY3Qgc3RvcmUgdGhhdCBkb2VzIG5vdCBleGlzdCA8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkKLXsKLSAgICB2
YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgYXNzZXJ0X3Rocm93cygnTm90Rm91bmRFcnJv
cicsCi0gICAgICAgIGZ1bmN0aW9uKCkgeyBkYi5kZWxldGVPYmplY3RTdG9yZSgnd2hhdGV2ZXIn
KTsgfSk7Ci0gICAgdC5kb25lKCk7Ci19Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJk
YXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0
b3JlNC1ub3RfcmV1c2VkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmFjZDE2MjdlMWRiMjExMWU4MmNiNzYwNGFiZjk1ZjU5MGQ2ZmI2ZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFi
YXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSB0aGUgb2JqZWN0IHN0b3JlIGlzIG5vdCByZXVzZWQg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9i
amVjdFN0b3JlNC1ub3RfcmV1c2VkLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiYWNkMTYyN2UxZGIyMTExZTgyY2I3NjA0YWJmOTVmNTkwZDZmYjZk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0
LW5vdF9yZXVzZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gdGhlIG9iamVj
dCBzdG9yZSBpcyBub3QgcmV1c2VkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2Vk
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGE3ODlhNjRmYTYzMDEwYTQ0NWYwMTNmNmZiZjUxZTE2
MmE3NTRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0
U3RvcmU0LW5vdF9yZXVzZWQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPklEQkRh
dGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSB0aGUgb2JqZWN0IHN0b3JlIGlzIG5vdCByZXVz
ZWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAotICAgIGtleXMgPSBbXSwKLSAgICBvcGVu
X3JxID0gY3JlYXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0Ci0KLSAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUs
IGtleVBhdGg6ICJrIiB9KTsKLSAgICBvYmpTdG9yZS5hZGQoe2s6NX0pLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCk7IH0KLSAgICBvYmpTdG9yZS5h
ZGQoe30pLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3Vs
dCk7IH0KLSAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4IiwgImkiKTsKLSAgICBhc3NlcnRf
dHJ1ZShvYmpTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJpZHgiKSk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhvYmpTdG9yZS5rZXlQYXRoLCAiayIsICJrZXlQYXRoIik7Ci0KLSAgICBkYi5kZWxldGVP
YmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiKTsKLQotICAgIHZhciBvYmpTdG9yZTIgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0g
ICAgb2JqU3RvcmUyLmFkZCgiVW5pY29ybnMnUid1cyIpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCk7IH07Ci0gICAgYXNzZXJ0X2ZhbHNlKG9ialN0
b3JlMi5pbmRleE5hbWVzLmNvbnRhaW5zKCJpZHgiKSwgImluZGV4IGV4aXN0IG9uIG5ldyBvYmpz
dG9yZSIpOwotICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUyLmtleVBhdGgsIG51bGwsICJrZXlQ
YXRoIik7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKCJOb3RGb3VuZEVycm9yIiwgZnVuY3Rpb24oKSB7
IG9ialN0b3JlMi5pbmRleCgiaWR4Iik7IH0pOwotfQotCi1vcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGtleXMsIFs1LCA2LCAxXSwgImtl
eXMiKTsKLSAgICB0LmRvbmUoKTsKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9y
ZXVzZWQuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGE3ODlhNjRmYTYzMDEw
YTQ0NWYwMTNmNmZiZjUxZTE2MmE3NTRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQuaHRtCisrKyAvZGV2L251bGwKQEAg
LTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRp
dGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSB0aGUgb2JqZWN0IHN0b3JlIGlz
IG5vdCByZXVzZWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGlu
aG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi12YXIgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAotICAgIGtleXMgPSBbXSwK
LSAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0Ci0KLSAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiLCB7IGF1dG9JbmNyZW1l
bnQ6IHRydWUsIGtleVBhdGg6ICJrIiB9KTsKLSAgICBvYmpTdG9yZS5hZGQoe2s6NX0pLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCk7IH0KLSAgICBv
YmpTdG9yZS5hZGQoe30pLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFy
Z2V0LnJlc3VsdCk7IH0KLSAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4IiwgImkiKTsKLSAg
ICBhc3NlcnRfdHJ1ZShvYmpTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJpZHgiKSk7Ci0gICAg
YXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5rZXlQYXRoLCAiayIsICJrZXlQYXRoIik7Ci0KLSAgICBk
Yi5kZWxldGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiKTsKLQotICAgIHZhciBvYmpTdG9yZTIg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiLCB7IGF1dG9JbmNyZW1lbnQ6IHRy
dWUgfSk7Ci0gICAgb2JqU3RvcmUyLmFkZCgiVW5pY29ybnMnUid1cyIpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCk7IH07Ci0gICAgYXNzZXJ0X2Zh
bHNlKG9ialN0b3JlMi5pbmRleE5hbWVzLmNvbnRhaW5zKCJpZHgiKSwgImluZGV4IGV4aXN0IG9u
IG5ldyBvYmpzdG9yZSIpOwotICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUyLmtleVBhdGgsIG51
bGwsICJrZXlQYXRoIik7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKCJOb3RGb3VuZEVycm9yIiwgZnVu
Y3Rpb24oKSB7IG9ialN0b3JlMi5pbmRleCgiaWR4Iik7IH0pOwotfQotCi1vcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGtleXMsIFs1LCA2
LCAxXSwgImtleXMiKTsKLSAgICB0LmRvbmUoKTsKLX0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjUwNmE3YTRlNTYxY2VkYjg0ODUwMWM5
OWRlMmNhMDIwMTIwMmIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJh
bnNhY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBhIHRyYW5zYWN0
aW9uIHdpdGggaW52YWxpZCBzY29wZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJh
bnNhY3Rpb24tcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGFmNTA2YTdhNGU1NjFjZWRiODQ4NTAxYzk5ZGUyY2EwMjAxMjAyYjIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLnRyYW5z
YWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgc2Nv
cGUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb24tcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1wcml2YXRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YzJjOWY1OTRiNDMyNGQ2MWVmNDEyMGI0NjM0OTU3
NTQwMzQ0YjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlv
bi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTx0aXRsZT5JREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVu
IGEgdHJhbnNhY3Rpb24gd2l0aCBpbnZhbGlkIHNjb3BlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LQotdmFyIGRiLAotICB0ID0gYXN5bmNfdGVzdCgpLAotICBvcGVuX3JxID0gY3JlYXRlZGIodCk7
Ci0KLW9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKLW9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
YXNzZXJ0X3Rocm93cygnTm90Rm91bmRFcnJvcicsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlv
bignbm9uLWV4aXN0aW5nJyk7IH0pOwotICAgIHQuZG9uZSgpOwotfTsKLQotPC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24uaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGMyYzlmNTk0YjQzMjRkNjFlZjQxMjBiNDYzNDk1NzU0
MDM0NGIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24u
aHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0
bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBhIHRyYW5zYWN0
aW9uIHdpdGggaW52YWxpZCBzY29wZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciBkYiwK
LSAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi1vcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307Ci1vcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKLSAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgIGFzc2VydF90aHJv
d3MoJ05vdEZvdW5kRXJyb3InLCBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rpb24oJ25vbi1leGlz
dGluZycpOyB9KTsKLSAgICB0LmRvbmUoKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjUxNzcyYmU2MzhjMzNhMmMzYjhhNmE4
ZTVlNzc5MzBkOWNlZTllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJh
bnNhY3Rpb24yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBvcGVuaW5nIGEgdHJhbnNhY3Rpb24gZGVm
YXVsdHMgdG8gYSByZWFkLW9ubHkgbW9kZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24yLXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV90cmFuc2FjdGlvbjItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE2NTE3NzJiZTYzOGMzM2EyYzNiOGE2YThlNWU3NzkzMGQ5Y2VlOWUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItcHJpdmF0ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFz
ZS50cmFuc2FjdGlvbigpIC0gb3BlbmluZyBhIHRyYW5zYWN0aW9uIGRlZmF1bHRzIHRvIGEgcmVh
ZC1vbmx5IG1vZGUgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMi1wcml2YXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MmU0MjdiMDI3MTA2YTNkYzg4
YmVkZTQ5ZTE0YjQ2MzAzNTVlZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV90cmFuc2FjdGlvbjItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIG9w
ZW5pbmcgYSB0cmFuc2FjdGlvbiBkZWZhdWx0cyB0byBhIHJlYWQtb25seSBtb2RlIDwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciBkYiwKLSAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
cmVhZG9ubHknKTsKLX07Ci1vcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICB2
YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oJ3JlYWRvbmx5Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyh0
eG4ubW9kZSwgInJlYWRvbmx5IiwgJ3R4bi5tb2RlJyk7Ci0KLSAgICB0LmRvbmUoKTsKLX07Ci0K
LTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlv
bjIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTJlNDI3YjAyNzEwNmEzZGM4
OGJlZGU0OWUxNGI0NjMwMzU1ZWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfdHJhbnNhY3Rpb24yLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBvcGVuaW5nIGEg
dHJhbnNhY3Rpb24gZGVmYXVsdHMgdG8gYSByZWFkLW9ubHkgbW9kZSA8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotCi12YXIgZGIsCi0gIHQgPSBhc3luY190ZXN0KCksCi0gIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3JlYWRvbmx5
Jyk7Ci19Owotb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgdmFyIHR4biA9
IGRiLnRyYW5zYWN0aW9uKCdyZWFkb25seScpOwotICAgIGFzc2VydF9lcXVhbHModHhuLm1vZGUs
ICJyZWFkb25seSIsICd0eG4ubW9kZScpOwotCi0gICAgdC5kb25lKCk7Ci19OwotCi08L3Njcmlw
dD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rp
b24zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVhZTQzYjEw
OWQ2NjE2NmNkMjAwZmYxY2Q0ZWM5YzNiNTIzMjJmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0
byBvcGVuIGEgdHJhbnNhY3Rpb24gZnJvbSBjbG9zZWQgZGF0YWJhc2UgY29ubmVjdGlvbiAgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfdHJhbnNhY3Rpb24zLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1YWU0M2IxMDlkNjYxNjZjZDIw
MGZmMWNkNGVjOWMzYjUyMzIyZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV90cmFuc2FjdGlvbjMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBv
cGVuIGEgdHJhbnNhY3Rpb24gZnJvbSBjbG9zZWQgZGF0YWJhc2UgY29ubmVjdGlvbiAgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb24zLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTA4N2FlY2M4ZGVlYTA4ZjI3ZjNhYzU5YjZlNGQ1NGUwMGNmMDMw
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1wcml2
YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTx0aXRsZT5JREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVuIGEgdHJh
bnNhY3Rpb24gZnJvbSBjbG9zZWQgZGF0YWJhc2UgY29ubmVjdGlvbiA8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCd0ZXN0Jyk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICBkYi5jbG9zZSgpOwotCi0gICAgICAgIGFzc2VydF90aHJv
d3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBkYi50cmFu
c2FjdGlvbigndGVzdCcpOyB9KTsKLQotICAgICAgICB0LmRvbmUoKTsKLSAgICB9OwotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy5odG0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwODdhZWNjOGRlZWEwOGYyN2YzYWM1OWI2
ZTRkNTRlMDBjZjAzMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFu
c2FjdGlvbjMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBh
IHRyYW5zYWN0aW9uIGZyb20gY2xvc2VkIGRhdGFiYXNlIGNvbm5lY3Rpb24gPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5j
cmVhdGVPYmplY3RTdG9yZSgndGVzdCcpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIuY2xvc2UoKTsKLQotICAgICAgICBhc3NlcnRf
dGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCi0gICAgICAgICAgICBmdW5jdGlvbigpIHsgZGIu
dHJhbnNhY3Rpb24oJ3Rlc3QnKTsgfSk7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwv
c2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFu
c2FjdGlvbjQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGQx
YmU2Y2QyZjExZWRlZTkxY2IxZDMzZDU2YjNkODllZjhlNTBkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRl
bXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgbW9kZSAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2Fj
dGlvbjQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhkMWJlNmNkMmYxMWVkZWU5MWNiMWQzM2Q1NmIz
ZDg5ZWY4ZTUwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0
aW9uNC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0cmFu
c2FjdGlvbiB3aXRoIGludmFsaWQgbW9kZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2Fj
dGlvbjQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTIwZjA3
OWRiZjBjZDQyN2Q5N2MwMTcyZWI3YzRkZWFlNzRkMzY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5z
YWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgbW9k
ZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgndGVzdCcpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICdUeXBlRXJyb3In
IH0sCi0gICAgICAgICAgICBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rpb24oJ3Rlc3QnLCAnd2hh
dGV2ZXInKTsgfSk7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQuaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQuaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTIwZjA3OWRiZjBjZDQyN2Q5N2MwMTcyZWI3YzRkZWFl
NzRkMzY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240
Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRp
dGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0cmFuc2Fj
dGlvbiB3aXRoIGludmFsaWQgbW9kZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0g
ICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pLAotICAgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93
cyh7IG5hbWU6ICdUeXBlRXJyb3InIH0sCi0gICAgICAgICAgICBmdW5jdGlvbigpIHsgZGIudHJh
bnNhY3Rpb24oJ3Rlc3QnLCAnd2hhdGV2ZXInKTsgfSk7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0g
ICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRh
YmFzZV90cmFuc2FjdGlvbjUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0MWM3MjgzY2U2ZGNlMTIyOWU3NjMxMGI2MzVmZmY1NWNhYjY2YTgxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9u
KCkgLSBJZiBzdG9yZU5hbWVzIGlzIGFuIGVtcHR5IGxpc3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBt
dXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZEFjY2Vzc0Vycm9yIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X3RyYW5zYWN0aW9uNS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWM3MjgzY2U2ZGNlMTIyOWU3NjMx
MGI2MzVmZmY1NWNhYjY2YTgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb241LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIElmIHN0b3JlTmFtZXMg
aXMgYW4gZW1wdHkgbGlzdCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBJbnZhbGlkQWNjZXNzRXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LXByaXZh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb241LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2VmNmQyYTQwZTdhODQ5ZTlhNjE4ODk4NTQ3ZTIwZjRjZjk2ZmIwMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNS1wcml2YXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gSWYgc3RvcmVOYW1lcyBp
cyBhbiBlbXB0eSBsaXN0LCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2Vw
dGlvbiBvZiB0eXBlIEludmFsaWRBY2Nlc3NFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3Rp
cC9PdmVydmlldy5odG1sI3dpZGwtSURCRGF0YWJhc2UtdHJhbnNhY3Rpb24tSURCVHJhbnNhY3Rp
b24tRE9NU3RyaW5nLXNlcXVlbmNlLURPTVN0cmluZy0tc3RvcmVOYW1lcy1JREJUcmFuc2FjdGlv
bk1vZGUtbW9kZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgZGIsCi0gICAgdCA9IGFzeW5j
X3Rlc3QoKSwKLSAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0KLW9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKLW9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
ewotICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRB
Y2Nlc3NFcnJvcicsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbihbXSk7IH0pOwotICAgIHQu
ZG9uZSgpOwotfTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNS5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNS5odG0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZjZkMmE0MGU3YTg0OWU5YTYxODg5ODU0N2Uy
MGY0Y2Y5NmZiMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2Fj
dGlvbjUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24o
KSAtIElmIHN0b3JlTmFtZXMgaXMgYW4gZW1wdHkgbGlzdCwgdGhlIGltcGxlbWVudGF0aW9uIG11
c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkQWNjZXNzRXJyb3I8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkRhdGFiYXNlLXRyYW5z
YWN0aW9uLUlEQlRyYW5zYWN0aW9uLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLXN0b3Jl
TmFtZXMtSURCVHJhbnNhY3Rpb25Nb2RlLW1vZGUiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotdmFy
IGRiLAotICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
Ci1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307Ci1vcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICBhc3Nl
cnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rp
b24oW10pOyB9KTsKLSAgICB0LmRvbmUoKTsKLX07Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21w
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNkMDRhYjI1Yjll
ZDc4ZDY3MmE4ZjM5ZTkwNDQ1MWI4YzQ4OWE2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3RvcnlfY21wLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQkZhY3RvcnkuY21wKCkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2QwNGFiMjViOWVk
NzhkNjcyYThmMzllOTA0NDUxYjhjNDg5YTYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9jbXAtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJGYWN0b3J5LmNtcCgpIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAtcHJpdmF0ZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTBhOWMxYmNlMjVkOGI2ODQ2ZjUw
MDA5NGM4YzA3NzAxYzVjNDllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9j
bXAtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPklEQkZhY3RvcnkuY21wKCkgLSBj
b21wYXJlZCBrZXlzIHJldHVybiBjb3JyZWN0IHZhbHVlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0g
ICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGdyZWF0ZXIgPSB3aW5kb3cuaW5kZXhl
ZERCLmNtcCgyLCAxKTsKLSAgICAgICAgdmFyIGVxdWFsID0gd2luZG93LmluZGV4ZWREQi5jbXAo
MiwgMik7Ci0gICAgICAgIHZhciBsZXNzID0gd2luZG93LmluZGV4ZWREQi5jbXAoMSwgMik7Ci0K
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhncmVhdGVyLCAxLCAiZ3JlYXRlciIpOwotICAgICAgICBh
c3NlcnRfZXF1YWxzKGVxdWFsLCAwLCAiZXF1YWwiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhs
ZXNzLCAtMSwgImxlc3MiKTsKLSAgICB9LCAiSURCRmFjdG9yeS5jbXAoKSIpOwotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTUwYTljMWJjZTI1ZDhiNjg0NmY1MDAwOTRjOGMwNzcwMWM1YzQ5ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5J
REJGYWN0b3J5LmNtcCgpIC0gY29tcGFyZWQga2V5cyByZXR1cm4gY29ycmVjdCB2YWx1ZTwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2Ny
aXB0PgotCi08c2NyaXB0PgotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBncmVh
dGVyID0gd2luZG93LmluZGV4ZWREQi5jbXAoMiwgMSk7Ci0gICAgICAgIHZhciBlcXVhbCA9IHdp
bmRvdy5pbmRleGVkREIuY21wKDIsIDIpOwotICAgICAgICB2YXIgbGVzcyA9IHdpbmRvdy5pbmRl
eGVkREIuY21wKDEsIDIpOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoZ3JlYXRlciwgMSwgImdy
ZWF0ZXIiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlcXVhbCwgMCwgImVxdWFsIik7Ci0gICAg
ICAgIGFzc2VydF9lcXVhbHMobGVzcywgLTEsICJsZXNzIik7Ci0gICAgfSwgIklEQkZhY3Rvcnku
Y21wKCkiKTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMzMDc3MjM4YmJi
Y2VmMzVhOTk5NjJiYjNkNjhhMjA0MmU1NDg1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3RvcnlfY21wMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAK
LQotUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gbm8gYXJndW1lbnQgCi1QQVNTIElEQkZhY3Rvcnku
Y21wKCkgLSBudWxsIAotUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gTmFOIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wMi1wcml2
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9jbXAyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMzMwNzcyMzhiYmJjZWYzNWE5OTk2MmJiM2Q2OGEyMDQyZTU0ODVhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBBU1MgSURCRmFjdG9yeS5jbXAoKSAtIG5v
IGFyZ3VtZW50IAotUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gbnVsbCAKLVBBU1MgSURCRmFjdG9y
eS5jbXAoKSAtIE5hTiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4OTM5ZGQyZDMxNDM4ZDAyOWVmMzZiZjVlOTRlMjcyNjNjMDc5
OWVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLXByaXZhdGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkZhY3RvcnkuY21wKCkgLSBpbnZhbGlkIGtleTwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3
LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcv
aGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRmFjdG9yeS1j
bXAtc2hvcnQtYW55LWZpcnN0LWFueS1zZWNvbmQiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1
cHBvcnQuanM+PC9zY3JpcHQ+Ci08ZGl2IGlkPWxvZz48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdGVz
dCggZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgIGluZGV4ZWREQi5jbXAoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwgIklEQkZhY3RvcnkuY21wKCkgLSBubyBhcmd1bWVudCIpOwotCi0gICAgdGVzdCggZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgaW5kZXhlZERCLmNtcChudWxsLCBudWxsKTsKLSAgICAgICAgfSk7Ci0g
ICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgaW5kZXhlZERCLmNtcCgxLCBudWxsKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF90
aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaW5kZXhlZERCLmNt
cChudWxsLCAxKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIklEQkZhY3RvcnkuY21wKCkgLSBudWxs
Iik7Ci0KLSAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0
YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpbmRleGVkREIuY21wKE5hTiwgTmFO
KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgaW5kZXhlZERCLmNtcCgxLCBOYU4pOwotICAgICAgICB9KTsK
LSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBpbmRleGVkREIuY21wKE5hTiwgMSk7Ci0gICAgICAgIH0pOwotICAgIH0sICJJREJGYWN0
b3J5LmNtcCgpIC0gTmFOIik7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDIuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDIuaHRtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4OTM5ZGQyZDMxNDM4ZDAyOWVmMzZiZjVlOTRlMjcyNjNjMDc5OWVm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLmh0bQorKysgL2Rldi9u
dWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPklEQkZhY3RvcnkuY21wKCkgLSBpbnZhbGlkIGtleTwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+
Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRmFjdG9yeS1jbXAtc2hvcnQtYW55
LWZpcnN0LWFueS1zZWNvbmQiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9z
Y3JpcHQ+Ci08ZGl2IGlkPWxvZz48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdGVzdCggZnVuY3Rpb24o
KSB7Ci0gICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIGluZGV4ZWREQi5jbXAoKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIklEQkZh
Y3RvcnkuY21wKCkgLSBubyBhcmd1bWVudCIpOwotCi0gICAgdGVzdCggZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgaW5kZXhlZERCLmNtcChudWxsLCBudWxsKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2Vy
dF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaW5kZXhlZERC
LmNtcCgxLCBudWxsKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFF
cnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaW5kZXhlZERCLmNtcChudWxsLCAxKTsK
LSAgICAgICAgfSk7Ci0gICAgfSwgIklEQkZhY3RvcnkuY21wKCkgLSBudWxsIik7Ci0KLSAgICB0
ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBpbmRleGVkREIuY21wKE5hTiwgTmFOKTsKLSAgICAgICAg
fSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgaW5kZXhlZERCLmNtcCgxLCBOYU4pOwotICAgICAgICB9KTsKLSAgICAgICAgYXNz
ZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpbmRleGVk
REIuY21wKE5hTiwgMSk7Ci0gICAgICAgIH0pOwotICAgIH0sICJJREJGYWN0b3J5LmNtcCgpIC0g
TmFOIik7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1NGJlZTViNGIxNDVm
ZjJhM2I3NjdmNDFlN2NiZDk5YjIwZjRhNDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X2RlbGV0ZURhdGFiYXNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJlcXVlc3QgaGFz
IG5vIHNvdXJjZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFz
ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU0
YmVlNWI0YjE0NWZmMmEzYjc2N2Y0MWU3Y2JkOTliMjBmNGE0OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJGYWN0b3J5LmRlbGV0ZURhdGFi
YXNlKCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2UgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2Rl
bGV0ZURhdGFiYXNlLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTAyOGExMWJhMjRhZjhmZWI5OWJmMTQ1NGYwYThkODA0YjdjYWZiYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtcHJpdmF0ZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9y
eS5kZWxldGVEYXRhYmFzZSgpIC0gcmVxdWVzdCBoYXMgbm8gc291cmNlIDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmlu
ZWQsIDkpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7fTsK
LSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRiID0g
ZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jbG9zZSgpOwotCi0gICAgICAgIHZhciBkZWxl
dGVfcnEgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpOwotICAgICAg
ICBkZWxldGVfcnEub25lcnJvciA9IGZhaWwodGhpcywgIlVuZXhwZWN0ZWQgZGVsZXRlX3JxLmVy
cm9yIGV2ZW50Iik7Ci0gICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVu
YyggZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuc291
cmNlLCBudWxsLCAiZXZlbnQudGFyZ2V0LnNvdXJjZSIpCi0gICAgICAgICAgICB0aGlzLmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X2RlbGV0ZURhdGFiYXNlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGEwMjhhMTFiYTI0YWY4ZmViOTliZjE0NTRmMGE4ZDgwNGI3Y2FmYmIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLmh0bQorKysgL2Rldi9udWxs
CkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3RvcnkuZGVs
ZXRlRGF0YWJhc2UoKSAtIHJlcXVlc3QgaGFzIG5vIHNvdXJjZSA8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlw
dD4KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCA5
KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307Ci0gICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgZGIuY2xvc2UoKTsKLQotICAgICAgICB2YXIgZGVsZXRlX3Jx
ID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYi5uYW1lKTsKLSAgICAgICAgZGVs
ZXRlX3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4cGVjdGVkIGRlbGV0ZV9ycS5lcnJvciBl
dmVudCIpOwotICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoIGZ1
bmN0aW9uIChlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnNvdXJjZSwg
bnVsbCwgImV2ZW50LnRhcmdldC5zb3VyY2UiKQotICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0g
ICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxl
dGVEYXRhYmFzZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI3NzU0MTBlZWU3YjJiOTdmMzQwMjRjNjA3Y2UwZmRhNzYyYTgw
OGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJGYWN0
b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSByZXN1bHQgb2YgdGhlIHJlcXVlc3QgaXMgc2V0IHRvIHVu
ZGVmaW5lZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIt
cHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzU0
MTBlZWU3YjJiOTdmMzQwMjRjNjA3Y2UwZmRhNzYyYTgwOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkZhY3RvcnkuZGVsZXRlRGF0YWJh
c2UoKSAtIHJlc3VsdCBvZiB0aGUgcmVxdWVzdCBpcyBzZXQgdG8gdW5kZWZpbmVkIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVs
ZXRlRGF0YWJhc2UyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkYjhhNDRhZDNkMGRiYTNjYTkxNzgwMjdmNmU3OTU3MmVmNTVi
NGEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIt
cHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIC0gcmVzdWx0IG9mIHRoZSBy
ZXF1ZXN0IGlzIHNldCB0byB1bmRlZmluZWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08bGluayBy
ZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3Rp
cC9PdmVydmlldy5odG1sI3dpZGwtSURCRmFjdG9yeS1kZWxldGVEYXRhYmFzZS1JREJPcGVuREJS
ZXF1ZXN0LURPTVN0cmluZy1uYW1lIj4KLTxtZXRhIG5hbWU9YXNzZXJ0IHRpdGxlPSJJZiB0aGUg
c3RlcHMgYWJvdmUgYXJlIHN1Y2Nlc3NmdWwsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHNldCB0
aGUgcmVzdWx0IG9mIHRoZSByZXF1ZXN0IHRvIHVuZGVmaW5lZCBhbmQgZmlyZSBhIHN1Y2Nlc3Mg
ZXZlbnQgYXQgdGhlIHJlcXVlc3QuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3lu
Y190ZXN0KCksIHVuZGVmaW5lZCwgOSk7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHt9OwotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNsb3NlKCk7Ci0K
LSAgICAgICAgdmFyIGRlbGV0ZV9ycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGIubmFtZSk7Ci0gICAgICAgIGRlbGV0ZV9ycS5vbmVycm9yID0gZmFpbCh0aGlzLCAiVW5leHBl
Y3RlZCBkZWxldGVfcnEuZXJyb3IgZXZlbnQiKTsKLSAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKCBmdW5jdGlvbiAoZSkgewotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCwgInJlc3VsdCIpOwotICAgICAgICAgICAg
dGhpcy5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLmh0bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGI4YTQ0YWQzZDBkYmEzY2E5MTc4MDI3ZjZlNzk1NzJlZjU1YjRh
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxl
PklEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJlc3VsdCBvZiB0aGUgcmVxdWVzdCBpcyBz
ZXQgdG8gdW5kZWZpbmVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPGxpbmsgcmVsPWhlbHAgaHJl
Zj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQkZhY3RvcnktZGVsZXRlRGF0YWJhc2UtSURCT3BlbkRCUmVxdWVzdC1ET01T
dHJpbmctbmFtZSI+Ci08bWV0YSBuYW1lPWFzc2VydCB0aXRsZT0iSWYgdGhlIHN0ZXBzIGFib3Zl
IGFyZSBzdWNjZXNzZnVsLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgdGhlIHJlc3VsdCBv
ZiB0aGUgcmVxdWVzdCB0byB1bmRlZmluZWQgYW5kIGZpcmUgYSBzdWNjZXNzIGV2ZW50IGF0IHRo
ZSByZXF1ZXN0LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1
bmRlZmluZWQsIDkpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7fTsKLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFy
IGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jbG9zZSgpOwotCi0gICAgICAgIHZh
ciBkZWxldGVfcnEgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpOwot
ICAgICAgICBkZWxldGVfcnEub25lcnJvciA9IGZhaWwodGhpcywgIlVuZXhwZWN0ZWQgZGVsZXRl
X3JxLmVycm9yIGV2ZW50Iik7Ci0gICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0
ZXBfZnVuYyggZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCB1bmRlZmluZWQsICJyZXN1bHQiKTsKLSAgICAgICAgICAgIHRoaXMuZG9uZSgp
OwotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9kZWxldGVEYXRhYmFzZTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyNjhkZGFkNzNhYzNlMTBjOGVhNTc3MTE1M2Y1NTMx
ODZmNTZjM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFi
YXNlMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJ
REJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSBzdWNjZXNzIGV2ZW50IAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0
YWJhc2UzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1wcml2YXRlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI2OGRkYWQ3M2FjM2UxMGM4ZWE1NzcxMTUz
ZjU1MzE4NmY1NmMzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRl
RGF0YWJhc2UzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgSURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIC0gc3VjY2VzcyBldmVudCAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0
b3J5X2RlbGV0ZURhdGFiYXNlMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLXByaXZhdGUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIzZWFjZDIwZjYwMDIyZDE1MDQ5NGVkMWI5ZDJi
NDVmNzk4NDZlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0
YWJhc2UzLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHN1Y2Nlc3Mg
ZXZlbnQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJGYWN0b3J5LWRlbGV0ZURhdGFiYXNlLUlEQk9wZW5EQlJlcXVlc3QtRE9NU3Ry
aW5nLW5hbWUiPgotPG1ldGEgbmFtZT1hc3NlcnQgdGl0bGU9IklmIHRoZSBzdGVwcyBhYm92ZSBh
cmUgc3VjY2Vzc2Z1bCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3Qgc2V0IHRoZSByZXN1bHQgb2Yg
dGhlIHJlcXVlc3QgdG8gdW5kZWZpbmVkIGFuZCBmaXJlIGEgc3VjY2VzcyBldmVudCBhdCB0aGUg
cmVxdWVzdC4gVGhlIGV2ZW50IG11c3QgaW1wbGVtZW50IHRoZSBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQgaW50ZXJmYWNlIGFuZCBoYXZlIG9sZFZlcnNpb24gc2V0IHRvIGRhdGFiYXNlIHZlcnNpb24g
YW5kIGhhdmUgdGhlIG5ld1ZlcnNpb24gcHJvcGVydHkgc2V0IHRvIG51bGwuIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBk
YgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwg
e3RpbWVvdXQ6IDEwMDAwfSksIHVuZGVmaW5lZCwgOSkKLQotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAotICAg
ICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQotICAgIH0KLSAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIuY2xvc2UoKQotCi0gICAgICAgIHZhciBk
ZWxldGVfcnEgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpCi0gICAg
ICAgIGRlbGV0ZV9ycS5vbmVycm9yID0gZmFpbCh0aGlzLCAiVW5leHBlY3RlZCBkZWxldGVfcnEu
ZXJyb3IgZXZlbnQiKQotICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMoIGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lv
biwgOSwgIm9sZFZlcnNpb24iKQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNp
b24sIG51bGwsICJuZXdWZXJzaW9uIikKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCB1bmRlZmluZWQsICJyZXN1bHQiKQotICAgICAgICAgICAgYXNzZXJ0X3RydWUo
ZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJz
aW9uQ2hhbmdlRXZlbnQiKQotICAgICAgICAgICAgdGhpcy5kb25lKCkKLSAgICAgICAgfSkKLSAg
ICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVE
YXRhYmFzZTMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjNlYWNkMjBmNjAw
MjJkMTUwNDk0ZWQxYjlkMmI0NWY3OTg0NmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9kZWxldGVEYXRhYmFzZTMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIC0g
c3VjY2VzcyBldmVudDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkZhY3RvcnktZGVsZXRlRGF0YWJhc2UtSURCT3BlbkRCUmVxdWVz
dC1ET01TdHJpbmctbmFtZSI+Ci08bWV0YSBuYW1lPWFzc2VydCB0aXRsZT0iSWYgdGhlIHN0ZXBz
IGFib3ZlIGFyZSBzdWNjZXNzZnVsLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgdGhlIHJl
c3VsdCBvZiB0aGUgcmVxdWVzdCB0byB1bmRlZmluZWQgYW5kIGZpcmUgYSBzdWNjZXNzIGV2ZW50
IGF0IHRoZSByZXF1ZXN0LiBUaGUgZXZlbnQgbXVzdCBpbXBsZW1lbnQgdGhlIElEQlZlcnNpb25D
aGFuZ2VFdmVudCBpbnRlcmZhY2UgYW5kIGhhdmUgb2xkVmVyc2lvbiBzZXQgdG8gZGF0YWJhc2Ug
dmVyc2lvbiBhbmQgaGF2ZSB0aGUgbmV3VmVyc2lvbiBwcm9wZXJ0eSBzZXQgdG8gbnVsbC4iPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0g
ICAgdmFyIGRiCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVkLCA5KQotCi0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0Ci0gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpCi0gICAgfQotICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYi5jbG9zZSgpCi0KLSAgICAg
ICAgdmFyIGRlbGV0ZV9ycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGIubmFt
ZSkKLSAgICAgICAgZGVsZXRlX3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4cGVjdGVkIGRl
bGV0ZV9ycS5lcnJvciBldmVudCIpCi0gICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0aGlz
LnN0ZXBfZnVuYyggZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5v
bGRWZXJzaW9uLCA5LCAib2xkVmVyc2lvbiIpCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
bmV3VmVyc2lvbiwgbnVsbCwgIm5ld1ZlcnNpb24iKQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCwgInJlc3VsdCIpCi0gICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAiZSBpbnN0YW5jZW9m
IElEQlZlcnNpb25DaGFuZ2VFdmVudCIpCi0gICAgICAgICAgICB0aGlzLmRvbmUoKQotICAgICAg
ICB9KQotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRh
YmFzZTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRhNzlhM2I5MzM5NGM2MGI3ZTgxOTkxMmFlMTZiM2I1NDkyNzY4ZDMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBEZWxldGUgYW4gZXhp
c3RpbmcgZGF0YWJhc2UgCi1QQVNTIERlbGV0ZSBhIG5vbmV4aXN0YW50IGRhdGFiYXNlIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
ZGVsZXRlRGF0YWJhc2U0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE3OWEzYjkzMzk0YzYwYjdl
ODE5OTEyYWUxNmIzYjU0OTI3NjhkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfZGVsZXRlRGF0YWJhc2U0LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi0KLVBBU1MgRGVsZXRlIGFuIGV4aXN0aW5nIGRhdGFiYXNlIAotUEFTUyBE
ZWxldGUgYSBub25leGlzdGFudCBkYXRhYmFzZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1wcml2YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVs
ZXRlRGF0YWJhc2U0LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTQ4NGVlN2VjNjFmMmRiOTI2YjNjNWMzMmQ4ZTFhNmNjYjI4YTU1Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0LXByaXZhdGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPlRlc3QgZXZl
bnRzIG9wZW5pbmcgYSBzZWNvbmQgZGF0YWJhc2Ugd2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVu
IGFscmVhZHk8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9A
b3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci0KLSAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoIkRlbGV0ZSBhbiBleGlzdGluZyBkYXRh
YmFzZSIpOwotCi0gICAgdC5zdGVwKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgb3BlbnJxID0g
aW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7Ci0KLSAgICAgICAgb3BlbnJxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmUnKTsKLSAgICAgICAgfTsKLSAgICAgICAgb3BlbnJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotCi0gICAgICAgICAgICAvLyBFcnJvcnMKLSAgICAgICAgICAgIGRiLm9udmVyc2lvbmNo
YW5nZSA9IGZhaWwodCwgImRiLnZlcnNpb25jaGFuZ2UiKTsKLSAgICAgICAgICAgIGRiLm9uZXJy
b3IgPSBmYWlsKHQsICJkYi5lcnJvciIpOwotICAgICAgICAgICAgZGIuYWJvcnQgPSBmYWlsKHQs
ICJkYi5hYm9ydCIpOwotCi0gICAgICAgICAgICBzZXRUaW1lb3V0KHQuc3RlcF9mdW5jKFNlY29u
ZCksIDQpOwotICAgICAgICAgICAgZGIuY2xvc2UoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAg
Ly8gRXJyb3JzCi0gICAgICAgIG9wZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJvciIp
OwotICAgICAgICBvcGVucnEub25ibG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7Ci0g
ICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBTZWNvbmQoZSkgewotICAgICAgICB2YXIgZGVsZXRlcnEg
PSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RiJyk7Ci0KLSAgICAgICAgZGVsZXRlcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeyB0LmRvbmUoKTsgfQotCi0gICAgICAgIGRlbGV0ZXJxLm9u
ZXJyb3IgPSBmYWlsKHQsICJkZWxldGUuZXJyb3IiKTsKLSAgICAgICAgZGVsZXRlcnEub25ibG9j
a2VkID0gZmFpbCh0LCAiZGVsZXRlLmJsb2NrZWQiKTsKLSAgICAgICAgZGVsZXRlcnEub251cGdy
YWRlbmVlZGVkID0gZmFpbCh0LCAiZGVsZXRlLnVwZ3JhZGVuZWVkZWQiKTsKLSAgICB9Ci0KLSAg
ICBhc3luY190ZXN0KCJEZWxldGUgYSBub25leGlzdGFudCBkYXRhYmFzZSIpLnN0ZXAoZnVuY3Rp
b24oZSkgewotICAgICAgICB2YXIgZGVsZXRlcnEgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
J25vbmV4aXN0YW50Jyk7Ci0KLSAgICAgICAgZGVsZXRlcnEub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeyB0aGlzLmRvbmUoKTsgfSk7Ci0KLSAgICAgICAgZGVsZXRlcnEu
b25lcnJvciA9IGZhaWwodGhpcywgImRlbGV0ZS5lcnJvciIpOwotICAgICAgICBkZWxldGVycS5v
bmJsb2NrZWQgPSBmYWlsKHRoaXMsICJkZWxldGUuYmxvY2tlZCIpOwotICAgICAgICBkZWxldGVy
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICJkZWxldGUudXBncmFkZW5lZWRlZCIpOwot
ICAgIH0pOwotCi08L3NjcmlwdD4KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJh
c2U0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQ4NGVlN2VjNjFmMmRiOTI2
YjNjNWMzMmQ4ZTFhNmNjYjI4YTU1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfZGVsZXRlRGF0YWJhc2U0Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHRpdGxlPlRlc3QgZXZlbnRzIG9wZW5pbmcgYSBzZWNvbmQgZGF0YWJh
c2Ugd2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVuIGFscmVhZHk8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hy
dGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgdCA9IGFzeW5j
X3Rlc3QoIkRlbGV0ZSBhbiBleGlzdGluZyBkYXRhYmFzZSIpOwotCi0gICAgdC5zdGVwKGZ1bmN0
aW9uKCkgewotICAgICAgICB2YXIgb3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7Ci0K
LSAgICAgICAgb3BlbnJxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKLSAgICAgICAg
fTsKLSAgICAgICAgb3BlbnJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAvLyBFcnJv
cnMKLSAgICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IGZhaWwodCwgImRiLnZlcnNpb25j
aGFuZ2UiKTsKLSAgICAgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsKHQsICJkYi5lcnJvciIpOwot
ICAgICAgICAgICAgZGIuYWJvcnQgPSBmYWlsKHQsICJkYi5hYm9ydCIpOwotCi0gICAgICAgICAg
ICBzZXRUaW1lb3V0KHQuc3RlcF9mdW5jKFNlY29uZCksIDQpOwotICAgICAgICAgICAgZGIuY2xv
c2UoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gRXJyb3JzCi0gICAgICAgIG9wZW5ycS5v
bmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJvciIpOwotICAgICAgICBvcGVucnEub25ibG9ja2Vk
ID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7Ci0gICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBTZWNv
bmQoZSkgewotICAgICAgICB2YXIgZGVsZXRlcnEgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
J2RiJyk7Ci0KLSAgICAgICAgZGVsZXRlcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeyB0LmRv
bmUoKTsgfQotCi0gICAgICAgIGRlbGV0ZXJxLm9uZXJyb3IgPSBmYWlsKHQsICJkZWxldGUuZXJy
b3IiKTsKLSAgICAgICAgZGVsZXRlcnEub25ibG9ja2VkID0gZmFpbCh0LCAiZGVsZXRlLmJsb2Nr
ZWQiKTsKLSAgICAgICAgZGVsZXRlcnEub251cGdyYWRlbmVlZGVkID0gZmFpbCh0LCAiZGVsZXRl
LnVwZ3JhZGVuZWVkZWQiKTsKLSAgICB9Ci0KLSAgICBhc3luY190ZXN0KCJEZWxldGUgYSBub25l
eGlzdGFudCBkYXRhYmFzZSIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgZGVsZXRl
cnEgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ25vbmV4aXN0YW50Jyk7Ci0KLSAgICAgICAg
ZGVsZXRlcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeyB0aGlzLmRv
bmUoKTsgfSk7Ci0KLSAgICAgICAgZGVsZXRlcnEub25lcnJvciA9IGZhaWwodGhpcywgImRlbGV0
ZS5lcnJvciIpOwotICAgICAgICBkZWxldGVycS5vbmJsb2NrZWQgPSBmYWlsKHRoaXMsICJkZWxl
dGUuYmxvY2tlZCIpOwotICAgICAgICBkZWxldGVycS5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRo
aXMsICJkZWxldGUudXBncmFkZW5lZWRlZCIpOwotICAgIH0pOwotCi08L3NjcmlwdD4KLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X29wZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlOWU5NTY1ZGUzYTBlNTYzMjk0NDg4YTkwZjkwOTQ0ZjI4MzFmNDc3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gcmVxdWVzdCBo
YXMgbm8gc291cmNlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuLXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWU5NTY1ZGUzYTBlNTYzMjk0NDg4
YTkwZjkwOTQ0ZjI4MzFmNDc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2UgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFj
dG9yeV9vcGVuLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M5
NWUwZWEwMTEwNDViMjQ2MmQ4NWFkZjk4M2Q2ZjVmOTAyZThlYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIHJl
cXVlc3QgaGFzIG5vIHNvdXJjZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDkpOwotCi0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7fTsKLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5zb3VyY2UsIG51
bGwsICJzb3VyY2UiKQotICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQot
PGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGNjOTVlMGVhMDExMDQ1YjI0NjJkODVhZGY5ODNkNmY1ZjkwMmU4ZWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4uaHRtCisrKyAvZGV2L251bGwKQEAgLTEs
MTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBy
ZXF1ZXN0IGhhcyBubyBzb3VyY2U8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCA5KTsKLQotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuc291cmNlLCBu
dWxsLCAic291cmNlIikKLSAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc3NTZjNDIxYjRkMDI0Y2YwMjY1YzBhYjIy
ZjVmMmViMTA5YjU5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEw
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkZh
Y3Rvcnkub3BlbigpIC0gZXJyb3IgaW4gdXBncmFkZW5lZWRlZCByZXNldHMgZGIgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
MTAtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjNzc1NmM0MjFiNGQwMjRjZjAyNjVjMGFiMjJmNWYyZWIxMDliNTky
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTAtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJGYWN0b3J5
Lm9wZW4oKSAtIGVycm9yIGluIHVwZ3JhZGVuZWVkZWQgcmVzZXRzIGRiIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuMTAtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDlj
YjJiNjZhM2FkMTZkMTlmZGU5ZTkwMDBiODYyZWIyNzRhOTg3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuMTAtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
OTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBl
cnJvciBpbiB1cGdyYWRlbmVlZGVkIHJlc2V0cyBkYjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGRiLCBkYjI7Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVkLCA5KTsKLQot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgc3QgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiKTsKLSAgICAgICAgc3QuY3JlYXRlSW5kZXgoImluZGV4IiwgImkiKTsKLQotICAg
ICAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDksICJmaXJzdCBkYi52ZXJzaW9uIik7Ci0g
ICAgICAgIGFzc2VydF90cnVlKGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiks
ICJvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7Ci0gICAgICAgIGFzc2VydF90cnVl
KHN0LmluZGV4TmFtZXMuY29udGFpbnMoImluZGV4IiksICJpbmRleE5hbWVzIGNvbnRhaW5zIGlu
ZGV4Iik7Ci0KLSAgICAgICAgc3QuYWRkKHtpOiAiSm9zaHVhIn0sIDEpOwotICAgICAgICBzdC5h
ZGQoe2k6ICJKb25hcyJ9LCAyKTsKLSAgICB9OwotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICBkYi5jbG9zZSgpOwotICAgICAgICB2YXIgb3Blbl9ycTIgPSB3
aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTApOwotICAgICAgICBvcGVuX3JxMi5vbnVw
Z3JhZGVuZWVkZWQgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBk
YjIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGRiMi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUyIik7Ci0KLSAgICAgICAgICAgIHZhciBzdG9yZSA9IG9wZW5fcnEyLnRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgi
aW5kZXgyIiwgImkiKTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwg
MTAsICJkYjIudmVyc2lvbiIpOwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0
U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgInNlY29uZCBvYmplY3RTdG9yZU5hbWVzIGNv
bnRhaW5zIHN0b3JlIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVO
YW1lcy5jb250YWlucygic3RvcmUyIiksICJzZWNvbmQgb2JqZWN0U3RvcmVOYW1lcyBjb250YWlu
cyBzdG9yZTIiKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKHN0b3JlLmluZGV4TmFtZXMuY29u
dGFpbnMoImluZGV4IiksICJzZWNvbmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRleCIpOwotICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgyIiks
ICJzZWNvbmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRleDIiKTsKLQotICAgICAgICAgICAgc3Rv
cmUuYWRkKHtpOiAiT2RpbiJ9LCAzKTsKLSAgICAgICAgICAgIHN0b3JlLnB1dCh7aTogIlNpY2tp
bmcifSwgMik7Ci0KLSAgICAgICAgICAgIG9wZW5fcnEyLnRyYW5zYWN0aW9uLmFib3J0KCk7Ci0g
ICAgICAgIH0pOwotICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgOSwgImRi
Mi52ZXJzaW9uIGFmdGVyIGVycm9yIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2Jq
ZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFtZXMgY29udGFp
bnMgc3RvcmUgYWZ0ZXIgZXJyb3IiKTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShkYjIub2Jq
ZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUyIiksICJvYmplY3RTdG9yZU5hbWVzIG5vdCBj
b250YWlucyBzdG9yZTIgYWZ0ZXIgZXJyb3IiKTsKLQotICAgICAgICAgICAgdmFyIG9wZW5fcnEz
ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiLm5hbWUpOwotICAgICAgICAgICAgb3Blbl9ycTMu
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
IHZhciBkYjMgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShkYjMub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgInRoaXJkIG9iamVjdFN0
b3JlTmFtZXMgY29udGFpbnMgc3RvcmUiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
ZGIzLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlMiIpLCAidGhpcmQgb2JqZWN0U3Rv
cmVOYW1lcyBjb250YWlucyBzdG9yZTIiKTsKLQotICAgICAgICAgICAgICAgIHZhciBzdCA9IGRi
My50cmFuc2FjdGlvbigic3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGIzLnZlcnNpb24sIDksICJkYjMudmVyc2lvbiIpOwotCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3QuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgi
KSwgInRoaXJkIGluZGV4TmFtZXMgY29udGFpbnMgaW5kZXgiKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfZmFsc2Uoc3QuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgyIiksICJ0aGlyZCBpbmRl
eE5hbWVzIGNvbnRhaW5zIGluZGV4MiIpOwotCi0gICAgICAgICAgICAgICAgc3Qub3BlbkN1cnNv
cihudWxsLCAicHJldiIpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAy
LCAib3BlbmN1cnNvcihwcmV2KSBrZXkiKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQudmFsdWUuaSwgIkpvbmFzIiwgIm9wZW5jdXJzb3IocHJldikg
dmFsdWUiKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBzdC5nZXQoMyku
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0KDMpIik7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgaWR4ID0gc3QuaW5k
ZXgoImluZGV4Iik7Ci0gICAgICAgICAgICAgICAgaWR4LmdldEtleSgiSm9uYXMiKS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAyLCAiZ2V0S2V5KEpvbmFzKSIpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGlkeC5nZXRLZXkoIk9kaW4iKS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQsICJnZXRLZXkoT2RpbikiKTsK
LSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBpZHguZ2V0S2V5KCJTaWNraW5n
Iikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0S2V5
KFNpY2tpbmcpIik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3Njcmlw
dD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTAuaHRtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5MDljYjJiNjZhM2FkMTZkMTlmZGU5ZTkwMDBiODYyZWIyNzRhOTg3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTAuaHRtCisrKyAvZGV2L251
bGwKQEAgLTEsOTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5v
cGVuKCkgLSBlcnJvciBpbiB1cGdyYWRlbmVlZGVkIHJlc2V0cyBkYjwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjD
uHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCBkYjI7Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVk
LCA5KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgc3QgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgc3QuY3JlYXRlSW5kZXgoImluZGV4IiwgImki
KTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDksICJmaXJzdCBkYi52ZXJz
aW9uIik7Ci0gICAgICAgIGFzc2VydF90cnVlKGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMo
InN0b3JlIiksICJvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7Ci0gICAgICAgIGFz
c2VydF90cnVlKHN0LmluZGV4TmFtZXMuY29udGFpbnMoImluZGV4IiksICJpbmRleE5hbWVzIGNv
bnRhaW5zIGluZGV4Iik7Ci0KLSAgICAgICAgc3QuYWRkKHtpOiAiSm9zaHVhIn0sIDEpOwotICAg
ICAgICBzdC5hZGQoe2k6ICJKb25hcyJ9LCAyKTsKLSAgICB9OwotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYi5jbG9zZSgpOwotICAgICAgICB2YXIgb3Bl
bl9ycTIgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTApOwotICAgICAgICBvcGVu
X3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGRiMi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUyIik7Ci0KLSAgICAgICAgICAgIHZhciBzdG9yZSA9IG9wZW5fcnEy
LnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICBzdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgyIiwgImkiKTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIu
dmVyc2lvbiwgMTAsICJkYjIudmVyc2lvbiIpOwotCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShk
YjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgInNlY29uZCBvYmplY3RTdG9y
ZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2Jq
ZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUyIiksICJzZWNvbmQgb2JqZWN0U3RvcmVOYW1l
cyBjb250YWlucyBzdG9yZTIiKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKHN0b3JlLmluZGV4
TmFtZXMuY29udGFpbnMoImluZGV4IiksICJzZWNvbmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRl
eCIpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygi
aW5kZXgyIiksICJzZWNvbmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRleDIiKTsKLQotICAgICAg
ICAgICAgc3RvcmUuYWRkKHtpOiAiT2RpbiJ9LCAzKTsKLSAgICAgICAgICAgIHN0b3JlLnB1dCh7
aTogIlNpY2tpbmcifSwgMik7Ci0KLSAgICAgICAgICAgIG9wZW5fcnEyLnRyYW5zYWN0aW9uLmFi
b3J0KCk7Ci0gICAgICAgIH0pOwotICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lv
biwgOSwgImRiMi52ZXJzaW9uIGFmdGVyIGVycm9yIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1
ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFt
ZXMgY29udGFpbnMgc3RvcmUgYWZ0ZXIgZXJyb3IiKTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxz
ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUyIiksICJvYmplY3RTdG9yZU5h
bWVzIG5vdCBjb250YWlucyBzdG9yZTIgYWZ0ZXIgZXJyb3IiKTsKLQotICAgICAgICAgICAgdmFy
IG9wZW5fcnEzID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiLm5hbWUpOwotICAgICAgICAgICAg
b3Blbl9ycTMub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgICAgIHZhciBkYjMgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShkYjMub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgInRoaXJk
IG9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUiKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2UoZGIzLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlMiIpLCAidGhpcmQg
b2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9yZTIiKTsKLQotICAgICAgICAgICAgICAgIHZh
ciBzdCA9IGRiMy50cmFuc2FjdGlvbigic3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKTsKLQot
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIzLnZlcnNpb24sIDksICJkYjMudmVyc2lv
biIpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3QuaW5kZXhOYW1lcy5jb250YWlu
cygiaW5kZXgiKSwgInRoaXJkIGluZGV4TmFtZXMgY29udGFpbnMgaW5kZXgiKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2Uoc3QuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgyIiksICJ0
aGlyZCBpbmRleE5hbWVzIGNvbnRhaW5zIGluZGV4MiIpOwotCi0gICAgICAgICAgICAgICAgc3Qu
b3BlbkN1cnNvcihudWxsLCAicHJldiIpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQua2V5LCAyLCAib3BlbmN1cnNvcihwcmV2KSBrZXkiKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmFsdWUuaSwgIkpvbmFzIiwgIm9wZW5jdXJz
b3IocHJldikgdmFsdWUiKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBz
dC5nZXQoMykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAi
Z2V0KDMpIik7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgaWR4
ID0gc3QuaW5kZXgoImluZGV4Iik7Ci0gICAgICAgICAgICAgICAgaWR4LmdldEtleSgiSm9uYXMi
KS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAyLCAiZ2V0S2V5KEpvbmFzKSIp
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGlkeC5nZXRLZXkoIk9kaW4i
KS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQsICJnZXRLZXko
T2RpbikiKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBpZHguZ2V0S2V5
KCJTaWNraW5nIikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVk
LCAiZ2V0S2V5KFNpY2tpbmcpIik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH07
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTEtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjVhY2I3YWNmOTZkY2E4
MzhjNWY4MTg4ZThkOTIwOWQ3NWI1ZDUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFj
dG9yeV9vcGVuMTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBzZWNvbmQgb3BlbidzIHRyYW5zYWN0aW9uIGlzIGF2
YWlsYWJsZSB0byBnZXQgb2JqZWN0U3RvcmVzIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4x
MS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY1
YWNiN2FjZjk2ZGNhODM4YzVmODE4OGU4ZDkyMDlkNzViNWQ1MC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBzZWNvbmQgb3Bl
bidzIHRyYW5zYWN0aW9uIGlzIGF2YWlsYWJsZSB0byBnZXQgb2JqZWN0U3RvcmVzIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjExLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuMTEtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2ZDQ2NWJiNTIzM2Q4Mzg4NzE5Zjk2M2QyMjk5MTU4NWQyYjVkN2JiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTEtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVu
KCkgLSBzZWNvbmQgb3BlbidzIHRyYW5zYWN0aW9uIGlzIGF2YWlsYWJsZSB0byBnZXQgb2JqZWN0
U3RvcmVzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGI7Ci0gICAgdmFy
IGNvdW50X2RvbmUgPSAwOwotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
Ci0gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICBhc3NlcnRf
dHJ1ZShkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJzdG9yZSIpLCAib2JqZWN0U3RvcmVO
YW1lcyBjb250YWlucyBzdG9yZSIpOwotCi0gICAgICAgIHZhciBzdG9yZSA9IGUudGFyZ2V0LnRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHN0
b3JlLm5hbWUsICJzdG9yZSIsICJzdG9yZS5uYW1lIik7Ci0KLSAgICAgICAgc3RvcmUuYWRkKCJk
YXRhIiwgMSk7Ci0KLSAgICAgICAgc3RvcmUuY291bnQoKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJl
c3VsdCwgMSwgImNvdW50KCkiKTsKLSAgICAgICAgICAgIGNvdW50X2RvbmUrKzsKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgc3RvcmUuYWRkKCJkYXRhMiIsIDIpOwotICAgIH07Ci0gICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpLm9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKHN0b3JlLm5hbWUsICJzdG9yZSIsICJzdG9yZS5uYW1lIik7Ci0gICAgICAgIHN0b3JlLmNv
dW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDIsICJjb3VudCgpIik7Ci0gICAgICAg
ICAgICBjb3VudF9kb25lKys7Ci0gICAgICAgIH0pOwotICAgICAgICBkYi5jbG9zZSgpOwotCi0g
ICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lLCAxMCk7
Ci0gICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwg
Im9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUiKTsKLSAgICAgICAgICAgIHZhciBzdG9y
ZSA9IG9wZW5fcnEyLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5uYW1lLCAic3RvcmUiLCAic3RvcmUubmFtZSIpOwotCi0g
ICAgICAgICAgICBzdG9yZS5hZGQoImRhdGEzIiwgMyk7Ci0KLSAgICAgICAgICAgIHN0b3JlLmNv
dW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAzLCAiY291bnQoKSIpOwotICAg
ICAgICAgICAgICAgIGNvdW50X2RvbmUrKzsKLQotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY291bnRfZG9uZSwgMywgImNvdW50X2RvbmUiKTsKLSAgICAgICAgICAgICAgICB0aGlzLmRv
bmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmQ0NjViYjUyMzNkODM4ODcxOWY5NjNkMjI5OTE1ODVkMmI1ZDdiYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bQorKysgL2Rldi9udWxsCkBA
IC0xLDYwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3Blbigp
IC0gc2Vjb25kIG9wZW4ncyB0cmFuc2FjdGlvbiBpcyBhdmFpbGFibGUgdG8gZ2V0IG9iamVjdFN0
b3JlczwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiOwotICAgIHZhciBj
b3VudF9kb25lID0gMDsKLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKTsKLQotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQot
ICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgYXNzZXJ0X3Ry
dWUoZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFt
ZXMgY29udGFpbnMgc3RvcmUiKTsKLQotICAgICAgICB2YXIgc3RvcmUgPSBlLnRhcmdldC50cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9y
ZS5uYW1lLCAic3RvcmUiLCAic3RvcmUubmFtZSIpOwotCi0gICAgICAgIHN0b3JlLmFkZCgiZGF0
YSIsIDEpOwotCi0gICAgICAgIHN0b3JlLmNvdW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQsIDEsICJjb3VudCgpIik7Ci0gICAgICAgICAgICBjb3VudF9kb25lKys7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIHN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKLSAgICB9OwotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgc3RvcmUgPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzdG9yZS5uYW1lLCAic3RvcmUiLCAic3RvcmUubmFtZSIpOwotICAgICAgICBzdG9yZS5jb3Vu
dCgpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAyLCAiY291bnQoKSIpOwotICAgICAgICAg
ICAgY291bnRfZG9uZSsrOwotICAgICAgICB9KTsKLSAgICAgICAgZGIuY2xvc2UoKTsKLQotICAg
ICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTApOwot
ICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICB2YXIgZGIyID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoZGIyLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJv
YmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7Ci0gICAgICAgICAgICB2YXIgc3RvcmUg
PSBvcGVuX3JxMi50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc3RvcmUubmFtZSwgInN0b3JlIiwgInN0b3JlLm5hbWUiKTsKLQotICAg
ICAgICAgICAgc3RvcmUuYWRkKCJkYXRhMyIsIDMpOwotCi0gICAgICAgICAgICBzdG9yZS5jb3Vu
dCgpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMywgImNvdW50KCkiKTsKLSAgICAg
ICAgICAgICAgICBjb3VudF9kb25lKys7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvdW50X2RvbmUsIDMsICJjb3VudF9kb25lIik7Ci0gICAgICAgICAgICAgICAgdGhpcy5kb25l
KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MWJiMjdmNWFmYTg2N2FhYjEwMDc1MzdjM2M3YTJj
ZmUyYzVkNmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBJREJGYWN0b3J5
Lm9wZW4oKSAtIHVwZ3JhZGVuZWVkZWQgZ2V0cyBWZXJzaW9uQ2hhbmdlRXZlbnQgCi1QQVNTIElE
QkZhY3Rvcnkub3BlbigpIC0gdXBncmFkZW5lZWRlZCBnZXRzIFZlcnNpb25DaGFuZ2VFdmVudCAt
IHNlY29uZCB1cGdyYWRlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1wcml2YXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDkxYmIyN2Y1YWZhODY3
YWFiMTAwNzUzN2MzYzdhMmNmZTJjNWQ2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjEyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi0KLVBBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSB1cGdyYWRlbmVlZGVkIGdldHMgVmVy
c2lvbkNoYW5nZUV2ZW50IAotUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIHVwZ3JhZGVuZWVkZWQg
Z2V0cyBWZXJzaW9uQ2hhbmdlRXZlbnQgLSBzZWNvbmQgdXBncmFkZSAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjEyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTUwN2Q0
MDBhOGM2N2UzYmI5NTRiZmRiMjgxNzFlZjIzODdjNGUyZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUw
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gdXBn
cmFkZW5lZWRlZCBnZXRzIFZlcnNpb25DaGFuZ2VFdmVudDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci0gICAgdmFyIGRiOwotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVz
dChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksIHVuZGVmaW5lZCwgOSk7Ci0gICAg
dmFyIG9wZW4yX3QgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHNlY29uZCB1cGdy
YWRlIik7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0
YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDAsICJvbGRW
ZXJzaW9uIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA5LCAibmV3VmVy
c2lvbiIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgInVwZ3JhZGVuZWVkZWQiLCAi
ZXZlbnQgdHlwZSIpOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgOSwgImRi
LnZlcnNpb24iKTsKLSAgICB9OwotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgRXZlbnQsICJlIGluc3RhbmNlb2Yg
RXZlbnQiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQsICJlIG5vdCBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCIpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgInN1Y2Nlc3MiLCAiZXZlbnQgdHlwZSIpOwotICAg
ICAgICB0aGlzLmRvbmUoKTsKLQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBTZWNvbmQgdGVz
dAotICAgICAgICAgKi8KLSAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oKSB7
IGRiLmNsb3NlKCk7IH07Ci0KLSAgICAgICAgdmFyIG9wZW5fcnEyID0gY3JlYXRlZGIob3BlbjJf
dCwgZGIubmFtZSwgMTApOwotICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgZGIyID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUg
aW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS5vbGRWZXJzaW9uLCA5LCAib2xkVmVyc2lvbiIpOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLm5ld1ZlcnNpb24sIDEwLCAibmV3VmVyc2lvbiIpOwotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnR5cGUsICJ1cGdyYWRlbmVlZGVkIiwgImV2ZW50IHR5cGUiKTsKLQotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgMTAsICJuZXcgZGIudmVyc2lvbiIp
OwotCi0gICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9OwotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTUwN2Q0MDBhOGM2N2UzYmI5NTRiZmRiMjgxNzFlZjIzODdjNGUyZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bQorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnku
b3BlbigpIC0gdXBncmFkZW5lZWRlZCBnZXRzIFZlcnNpb25DaGFuZ2VFdmVudDwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiOwotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksIHVuZGVmaW5l
ZCwgOSk7Ci0gICAgdmFyIG9wZW4yX3QgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
IHNlY29uZCB1cGdyYWRlIik7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgYXNzZXJ0
X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUgaW5zdGFuY2VvZiBJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNp
b24sIDAsICJvbGRWZXJzaW9uIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9u
LCA5LCAibmV3VmVyc2lvbiIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgInVwZ3Jh
ZGVuZWVkZWQiLCAiZXZlbnQgdHlwZSIpOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIudmVy
c2lvbiwgOSwgImRiLnZlcnNpb24iKTsKLSAgICB9OwotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgRXZlbnQsICJl
IGluc3RhbmNlb2YgRXZlbnQiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGUgaW5zdGFuY2VvZiBJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQsICJlIG5vdCBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VF
dmVudCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgInN1Y2Nlc3MiLCAiZXZlbnQg
dHlwZSIpOwotICAgICAgICB0aGlzLmRvbmUoKTsKLQotCi0gICAgICAgIC8qKgotICAgICAgICAg
KiBTZWNvbmQgdGVzdAotICAgICAgICAgKi8KLSAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0g
ZnVuY3Rpb24oKSB7IGRiLmNsb3NlKCk7IH07Ci0KLSAgICAgICAgdmFyIG9wZW5fcnEyID0gY3Jl
YXRlZGIob3BlbjJfdCwgZGIubmFtZSwgMTApOwotICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgZGIyID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFu
Z2VFdmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCA5LCAib2xkVmVyc2lvbiIpOwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIDEwLCAibmV3VmVyc2lvbiIpOwotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJ1cGdyYWRlbmVlZGVkIiwgImV2ZW50IHR5
cGUiKTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgMTAsICJuZXcg
ZGIudmVyc2lvbiIpOwotCi0gICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfTsKLSAg
ICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiYzAxMWYyOGU3YzA3
MTg0N2E3MTc5ZjcwNzI2ZjAwMDNlZjg2N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW4yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gZGF0YWJhc2UgJ25hbWUnIGFuZCAndmVyc2lvbicg
YXJlIGNvcnJlY3RseSBzZXQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMi1wcml2YXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJjMDExZjI4ZTdjMDcx
ODQ3YTcxNzlmNzA3MjZmMDAwM2VmODY3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIGRhdGFiYXNlICduYW1lJyBhbmQgJ3Zl
cnNpb24nIGFyZSBjb3JyZWN0bHkgc2V0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4yLXByaXZhdGUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc4MjNjMDQyZmM3MGM5ZmYwZGI0Y2Zk
MDU4YzJiY2NjNmQ4ZjkxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBkYXRhYmFzZSAnbmFtZScgYW5kICd2
ZXJzaW9uJyBhcmUgY29ycmVjdGx5IHNldDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCAnZGF0YWJhc2VfbmFtZScsIDEzKTsKLQot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307Ci0gICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi5uYW1lLCAnZGF0YWJhc2VfbmFtZScsICdk
Yi5uYW1lJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgMTMsICdkYi52ZXJz
aW9uJyk7Ci0gICAgICAgIHRoaXMuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlk
PWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZmFjdG9yeV9vcGVuMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NzgyM2MwNDJmYzcwYzlmZjBkYjRjZmQwNThjMmJjY2M2ZDhmOTE1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIGRhdGFiYXNl
ICduYW1lJyBhbmQgJ3ZlcnNpb24nIGFyZSBjb3JyZWN0bHkgc2V0PC90aXRsZT4KLTxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksICdkYXRhYmFzZV9u
YW1lJywgMTMpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
fTsKLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRi
ID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm5hbWUsICdkYXRh
YmFzZV9uYW1lJywgJ2RiLm5hbWUnKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9u
LCAxMywgJ2RiLnZlcnNpb24nKTsKLSAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgfQotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyN2JiNTMyNzUzNGQxYWI2MDc0OWM5M2Rh
YzFmMTVlZjY2Yjg5OGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4z
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkZh
Y3Rvcnkub3BlbigpIC0gbm8gdmVyc2lvbiBvcGVucyBjdXJyZW50IGRhdGFiYXNlIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjMtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgyN2JiNTMyNzUzNGQxYWI2MDc0OWM5M2RhYzFmMTVlZjY2Yjg5OGMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4zLXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRmFjdG9yeS5v
cGVuKCkgLSBubyB2ZXJzaW9uIG9wZW5zIGN1cnJlbnQgZGF0YWJhc2UgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMy1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjMtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTdhZDVm
NmM3N2FjM2QwYTEyMDAzN2E1YzcwMDMwNGM2ZjU0NTIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZmFjdG9yeV9vcGVuMy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIG5vIHZl
cnNpb24gb3BlbnMgY3VycmVudCBkYXRhYmFzZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDEzKTsKLSAgICB2
YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oKSB7fTsKLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jbG9zZSgpOwotCi0g
ICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lKTsKLSAg
ICAgICAgb3Blbl9ycTIub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lvbiwgMTMsICJk
Yi52ZXJzaW9uIikKLSAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICAg
ICAgb3Blbl9ycTIub251cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCB1cGdy
YWRlbmVlZGVkJykKLSAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhw
ZWN0ZWQgZXJyb3InKQotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuMy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTdhZDVmNmM3N2FjM2Qw
YTEyMDAzN2E1YzcwMDMwNGM2ZjU0NTIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFj
dG9yeV9vcGVuMy5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIG5vIHZlcnNpb24gb3BlbnMgY3VycmVu
dCBkYXRhYmFzZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDEzKTsKLSAgICB2YXIgZGlkX3VwZ3JhZGUgPSBm
YWxzZTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRiID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jbG9zZSgpOwotCi0gICAgICAgIHZhciBvcGVuX3Jx
MiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lKTsKLSAgICAgICAgb3Blbl9ycTIub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lvbiwgMTMsICJkYi52ZXJzaW9uIikKLSAgICAg
ICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICAgICAgb3Blbl9ycTIub251cGdy
YWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCB1cGdyYWRlbmVlZGVkJykKLSAgICAg
ICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgZXJyb3InKQotICAg
IH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjYwNDBlMzU1NDlhNmE2
ZTI0NGZjZDdlMjc0M2JkZmU5YWNhOTlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFj
dG9yeV9vcGVuNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG5ldyBkYXRhYmFzZSBoYXMgZGVmYXVsdCB2ZXJzaW9u
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjQtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNjA0MGUzNTU0OWE2YTZlMjQ0ZmNkN2UyNzQzYmRm
ZTlhY2E5OWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LXByaXZh
dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURC
RmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0YWJhc2UgaGFzIGRlZmF1bHQgdmVyc2lvbiAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW40LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuNC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE0NzRiNGY3Y2VlNjFhYmE0Y2I1NDQ4ZWE0YzNlMTRkYWUxNzBhNjguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3Blbigp
IC0gbmV3IGRhdGFiYXNlIGhhcyBkZWZhdWx0IHZlcnNpb248L3RpdGxlPgotPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgJ2RhdGFiYXNlX25hbWUn
KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52ZXJzaW9uLCAxLCAiZGIudmVyc2lvbiIp
OwotICAgIH07Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnZlcnNpb24sIDEsICJkYi52ZXJzaW9uIik7
Ci0gICAgICAgIHRoaXMuZG9uZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X29wZW40Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ3NGI0
ZjdjZWU2MWFiYTRjYjU0NDhlYTRjM2UxNGRhZTE3MGE2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0YWJhc2Ug
aGFzIGRlZmF1bHQgdmVyc2lvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCAnZGF0YWJhc2VfbmFtZScpOwotCi0gICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LnZlcnNpb24sIDEsICJkYi52ZXJzaW9uIik7Ci0gICAgfTsKLSAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQudmVyc2lvbiwgMSwgImRiLnZlcnNpb24iKTsKLSAgICAgICAgdGhpcy5k
b25lKCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTU5
MDliODFlMDg2OTczNjMyNDAzODYyZGI1MmNjNTRhNTliN2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG5ldyBkYXRhYmFzZSBpcyBlbXB0
eSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW41LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTU5MDliODFlMDg2OTczNjMyNDAzODYyZGI1MmNj
NTRhNTliN2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNS1wcml2
YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
QkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNlIGlzIGVtcHR5IAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjUtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW41LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdiM2ExMTBl
ZjgwY2M4M2NjZWY5NTgzMmNjY2ZiNDFmNGI1Yzg1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmZhY3Rvcnlfb3BlbjUtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0
YWJhc2UgaXMgZW1wdHk8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgJ2RhdGFiYXNlX25hbWUnKTsKLQotICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQub2JqZWN0
U3RvcmVOYW1lcy5sZW5ndGgsIDAsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIpOwotICAgICAg
ICB0aGlzLmRvbmUoKTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW41Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuNS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3YjNhMTEwZWY4MGNj
ODNjY2VmOTU4MzJjY2NmYjQxZjRiNWM4NWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW41Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNlIGlzIGVtcHR5
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KCksICdkYXRhYmFzZV9uYW1lJyk7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKCkge307Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoLCAwLCAib2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiKTsKLSAgICAgICAgdGhpcy5kb25lKCk7
Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWYxYmZjYzJi
MTQyMWQ4OGNjNjc2MGJmYjFlN2Q1MjE3ODc0N2UyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZmFjdG9yeV9vcGVuNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG9wZW4gZGF0YWJhc2Ugd2l0aCBhIGxvd2Vy
IHZlcnNpb24gdGhhbiBjdXJyZW50IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYtcHJpdmF0
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxZjFiZmNjMmIx
NDIxZDg4Y2M2NzYwYmZiMWU3ZDUyMTc4NzQ3ZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X29wZW42LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBvcGVuIGRhdGFiYXNlIHdpdGgg
YSBsb3dlciB2ZXJzaW9uIHRoYW4gY3VycmVudCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW42LXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNi1wcml2YXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4OWI1ZWEwZTY1N2E4ZmUxOWUz
YmZmYTZiYTM4Mzk2NGNkMzhjNDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW42LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gb3BlbiBkYXRhYmFzZSB3aXRo
IGEgbG93ZXIgdmVyc2lvbiB0aGFuIGN1cnJlbnQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCAxMyk7Ci0gICAg
dmFyIGRpZF91cGdyYWRlID0gZmFsc2U7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKCkge307Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgZGIuY2xvc2UoKTsKLQot
ICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTQp
OwotICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9OwotICAg
ICAgICBvcGVuX3JxMi5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhvcGVuX3ByZXZpb3VzX2Ri
KTsKLSAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgZXJy
b3InKQotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9wZW5fcHJldmlvdXNfZGIoZSkgewotICAgICAg
ICB2YXIgb3Blbl9ycTMgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZS50YXJnZXQucmVzdWx0Lm5h
bWUsIDEzKTsKLSAgICAgICAgb3Blbl9ycTMub25lcnJvciA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwg
J1ZlcnNpb25FcnJvcicsICdlLnRhcmdldC5lcnJvci5uYW1lJykKLSAgICAgICAgICAgIHRoaXMu
ZG9uZSgpOwotICAgICAgICB9KTsKLSAgICAgICAgb3Blbl9ycTMub251cGdyYWRlbmVlZGVkID0g
ZmFpbCh0aGlzLCAnVW5leHBlY3RlZCB1cGdyYWRlbmVlZGVkJykKLSAgICAgICAgb3Blbl9ycTMu
b25zdWNjZXNzID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBzdWNjZXNzJykKLSAgICB9Ci08L3Nj
cmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYuaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW42Lmh0bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjg5YjVlYTBlNjU3YThmZTE5ZTNiZmZhNmJhMzgzOTY0Y2QzOGM0Ny4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYuaHRtCisrKyAvZGV2L251
bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5v
cGVuKCkgLSBvcGVuIGRhdGFiYXNlIHdpdGggYSBsb3dlciB2ZXJzaW9uIHRoYW4gY3VycmVudDwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVz
dCgpLCB1bmRlZmluZWQsIDEzKTsKLSAgICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKLQotICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKLSAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0
OwotICAgICAgICBkYi5jbG9zZSgpOwotCi0gICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5p
bmRleGVkREIub3BlbihkYi5uYW1lLCAxNCk7Ci0gICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKCkge307Ci0gICAgICAgIG9wZW5fcnEyLm9uc3VjY2VzcyA9IHRoaXMu
c3RlcF9mdW5jKG9wZW5fcHJldmlvdXNfZGIpOwotICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0g
ZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBlcnJvcicpCi0gICAgfQotCi0gICAgZnVuY3Rpb24gb3Bl
bl9wcmV2aW91c19kYihlKSB7Ci0gICAgICAgIHZhciBvcGVuX3JxMyA9IHdpbmRvdy5pbmRleGVk
REIub3BlbihlLnRhcmdldC5yZXN1bHQubmFtZSwgMTMpOwotICAgICAgICBvcGVuX3JxMy5vbmVy
cm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAnVmVyc2lvbkVycm9yJywgJ2UudGFyZ2V0LmVycm9y
Lm5hbWUnKQotICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgICAgICBv
cGVuX3JxMy5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHVwZ3JhZGVu
ZWVkZWQnKQotICAgICAgICBvcGVuX3JxMy5vbnN1Y2Nlc3MgPSBmYWlsKHRoaXMsICdVbmV4cGVj
dGVkIHN1Y2Nlc3MnKQotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1OWQ0OTkzZmM1ZDhlMzI3MmNiODE4NDJhNWQzY2Q1N2U2OGI5NGE2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG9wZW4gZGF0YWJhc2Ug
d2l0aCBhIGhpZ2hlciB2ZXJzaW9uIHRoYW4gY3VycmVudCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43LXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW43LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1OWQ0OTkzZmM1ZDhlMzI3MmNiODE4NDJhNWQzY2Q1N2U2OGI5NGE2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gb3BlbiBk
YXRhYmFzZSB3aXRoIGEgaGlnaGVyIHZlcnNpb24gdGhhbiBjdXJyZW50IAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjctcHJp
dmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW43LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU1NmJl
MDdmNWU5NGM0YzZjYjFjMWUzZDk0MjRmNTY5NzIxNDFjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjctcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBvcGVu
IGRhdGFiYXNlIHdpdGggYSBoaWdoZXIgdmVyc2lvbiB0aGFuIGN1cnJlbnQ8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZp
bmVkLCAxMyk7Ci0gICAgdmFyIGRpZF91cGdyYWRlID0gZmFsc2U7Ci0KLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAg
ZGIuY2xvc2UoKTsKLQotICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERCLm9w
ZW4oZGIubmFtZSwgMTQpOwotICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGRpZF91cGdyYWRlID0gdHJ1ZTsKLSAgICAgICAgfTsKLSAg
ICAgICAgb3Blbl9ycTIub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMob3Blbl9jdXJyZW50X2Ri
KTsKLSAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgZXJy
b3InKQotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9wZW5fY3VycmVudF9kYihlKSB7Ci0gICAgICAg
IHZhciBvcGVuX3JxMyA9IHdpbmRvdy5pbmRleGVkREIub3BlbihlLnRhcmdldC5yZXN1bHQubmFt
ZSk7Ci0gICAgICAgIG9wZW5fcnEzLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnZlcnNpb24s
IDE0LCAiZGIudmVyc2lvbiIpCi0gICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIG9wZW5fcnEzLm9udXBncmFkZW5lZWRlZCA9IGZhaWwodGhpcywgJ1VuZXhwZWN0
ZWQgdXBncmFkZW5lZWRlZCcpCi0gICAgICAgIG9wZW5fcnEzLm9uZXJyb3IgPSBmYWlsKHRoaXMs
ICdVbmV4cGVjdGVkIGVycm9yJykKLQotICAgICAgICBhc3NlcnRfdHJ1ZShkaWRfdXBncmFkZSwg
J2RpZCB1cGdyYWRlJyk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW43Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuNy5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlNTZiZTA3ZjVlOTRj
NGM2Y2IxYzFlM2Q5NDI0ZjU2OTcyMTQxYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW43Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gb3BlbiBkYXRhYmFzZSB3aXRoIGEg
aGlnaGVyIHZlcnNpb24gdGhhbiBjdXJyZW50PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVuZGVmaW5lZCwgMTMpOwotICAgIHZh
ciBkaWRfdXBncmFkZSA9IGZhbHNlOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbigpIHt9OwotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNsb3NlKCk7Ci0KLSAg
ICAgICAgdmFyIG9wZW5fcnEyID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiLm5hbWUsIDE0KTsK
LSAgICAgICAgb3Blbl9ycTIub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBkaWRfdXBncmFkZSA9IHRydWU7Ci0gICAgICAgIH07Ci0gICAgICAgIG9wZW5fcnEyLm9u
c3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKG9wZW5fY3VycmVudF9kYik7Ci0gICAgICAgIG9wZW5f
cnEyLm9uZXJyb3IgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIGVycm9yJykKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBvcGVuX2N1cnJlbnRfZGIoZSkgewotICAgICAgICB2YXIgb3Blbl9ycTMgPSB3
aW5kb3cuaW5kZXhlZERCLm9wZW4oZS50YXJnZXQucmVzdWx0Lm5hbWUpOwotICAgICAgICBvcGVu
X3JxMy5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52ZXJzaW9uLCAxNCwgImRiLnZlcnNpb24i
KQotICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgICAgICBvcGVuX3Jx
My5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHVwZ3JhZGVuZWVkZWQn
KQotICAgICAgICBvcGVuX3JxMy5vbmVycm9yID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBlcnJv
cicpCi0KLSAgICAgICAgYXNzZXJ0X3RydWUoZGlkX3VwZ3JhZGUsICdkaWQgdXBncmFkZScpOwot
ICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbjgt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjQ3YjFkNTQxMTE5
ODAxZjc5N2U1Y2I3MzAwMTBkN2ZmNTEwNGQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIGVycm9yIGluIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uIGFib3J0cyBvcGVuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjgtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2NDdiMWQ1NDExMTk4
MDFmNzk3ZTVjYjczMDAxMGQ3ZmY1MTA0ZDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW44LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvciBpbiB2ZXJzaW9uIGNoYW5n
ZSB0cmFuc2FjdGlvbiBhYm9ydHMgb3BlbiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW44LXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1wcml2YXRlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyOGEyN2QyNDFhMjBkNzdhNzAxNmFl
MWRhMTIyY2Q1YzRkOGUzZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW44LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gZXJyb3IgaW4gdmVyc2lvbiBjaGFu
Z2UgdHJhbnNhY3Rpb24gYWJvcnRzIG9wZW48L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCAxMyk7Ci0gICAgdmFy
IGRpZF91cGdyYWRlID0gZmFsc2U7Ci0gICAgdmFyIGRpZF9kYl9hYm9ydCA9IGZhbHNlOwotCi0g
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRpZF91
cGdyYWRlID0gdHJ1ZTsKLSAgICAgICAgZS50YXJnZXQucmVzdWx0Lm9uYWJvcnQgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIGRpZF9kYl9hYm9ydCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAg
ICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKLSAgICB9OwotICAgIG9wZW5fcnEub25l
cnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGlkX3VwZ3JhZGUpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICdBYm9ydEVycm9yJywg
J3RhcmdldC5lcnJvcicpOwotICAgICAgICB0aGlzLmRvbmUoKQotICAgIH07Ci08L3NjcmlwdD4K
LQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW44Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTI4YTI3ZDI0MWEyMGQ3N2E3MDE2YWUxZGExMjJjZDVjNGQ4ZTNkYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjguaHRtCisrKyAvZGV2L251bGwKQEAg
LTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkg
LSBlcnJvciBpbiB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydHMgb3BlbjwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1
bmRlZmluZWQsIDEzKTsKLSAgICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKLSAgICB2YXIgZGlk
X2RiX2Fib3J0ID0gZmFsc2U7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZGlkX3VwZ3JhZGUgPSB0cnVlOwotICAgICAgICBlLnRhcmdldC5y
ZXN1bHQub25hYm9ydCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZGlkX2RiX2Fib3J0ID0g
dHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOwot
ICAgIH07Ci0gICAgb3Blbl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICBhc3Nl
cnRfdHJ1ZShkaWRfdXBncmFkZSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJy
b3IubmFtZSwgJ0Fib3J0RXJyb3InLCAndGFyZ2V0LmVycm9yJyk7Ci0gICAgICAgIHRoaXMuZG9u
ZSgpCi0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmZjODgz
MjA1MDRhZGM4Y2ExZDQ1MmU5YjU1YzM1NTQ2ZTAxMDNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZmFjdG9yeV9vcGVuOS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi0KLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IC0xIHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24g
YXJndW1lbnQgLTAuNSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVu
KCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNT
IENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAwLjUgc2hvdWxkIHRocm93IFR5
cGVFcnJvci4gCi1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAwLjgg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lv
biBhcmd1bWVudCA5MDA3MTk5MjU0NzQwOTkyIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAotUEFT
UyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgTmFOIHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgSW5m
aW5pdHkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGgg
dmVyc2lvbiBhcmd1bWVudCAtSW5maW5pdHkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNT
IENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAiZm9vIiBzaG91bGQgdGhyb3cg
VHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IHVu
ZGVmaW5lZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0
aCB2ZXJzaW9uIGFyZ3VtZW50IG51bGwgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNTIENh
bGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBmYWxzZSBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IG9iamVj
dCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJz
aW9uIGFyZ3VtZW50IG9iamVjdCAoc2Vjb25kKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBB
U1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IG9iamVjdCAodGhpcmQpIHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24g
YXJndW1lbnQgMS41IHNob3VsZCBub3QgdGhyb3cuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRo
IHZlcnNpb24gYXJndW1lbnQgOTAwNzE5OTI1NDc0MDk5MSBzaG91bGQgbm90IHRocm93LiAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW45LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW45LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0ZmZjODgzMjA1MDRhZGM4Y2ExZDQ1MmU5YjU1YzM1NTQ2ZTAx
MDNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS1wcml2YXRlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLQotUEFTUyBDYWxsaW5n
IG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgLTEgc2hvdWxkIHRocm93IFR5cGVFcnJvci4g
Ci1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAtMC41IHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1l
bnQgMCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2
ZXJzaW9uIGFyZ3VtZW50IDAuNSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGlu
ZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDAuOCBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDkwMDcxOTkyNTQ3
NDA5OTIgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGgg
dmVyc2lvbiBhcmd1bWVudCBOYU4gc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCi1QQVNTIENhbGxp
bmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBJbmZpbml0eSBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IC1JbmZp
bml0eSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2
ZXJzaW9uIGFyZ3VtZW50ICJmb28iIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAotUEFTUyBDYWxs
aW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgdW5kZWZpbmVkIHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgbnVs
bCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKLVBBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJz
aW9uIGFyZ3VtZW50IGZhbHNlIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAotUEFTUyBDYWxsaW5n
IG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgb2JqZWN0IHNob3VsZCB0aHJvdyBUeXBlRXJy
b3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgb2JqZWN0IChz
ZWNvbmQpIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAotUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRo
IHZlcnNpb24gYXJndW1lbnQgb2JqZWN0ICh0aGlyZCkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4g
Ci1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAxLjUgc2hvdWxkIG5v
dCB0aHJvdy4gCi1QQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCA5MDA3
MTk5MjU0NzQwOTkxIHNob3VsZCBub3QgdGhyb3cuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjktcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW45LXByaXZh
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGI5NjFiMTkwYjJjOTg1OWJm
MjgxZGI2NDE1N2VlNDRlM2FmZmI4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjktcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvcnMgaW4gdmVyc2lv
biBhcmd1bWVudDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIHNob3VsZF90aHJvdyh2YWwsIG5hbWUpIHsKLSAg
ICBpZiAoIW5hbWUpIHsKLSAgICAgICAgbmFtZSA9ICgodHlwZW9mIHZhbCA9PSAib2JqZWN0IiAm
JiB2YWwpID8gIm9iamVjdCIgOiBmb3JtYXRfdmFsdWUodmFsKSkKLSAgICB9Ci0gICAgdGVzdChm
dW5jdGlvbigpIHsKLSAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgd2luZG93LmluZGV4ZWREQi5vcGVuKCd0ZXN0JywgdmFsKTsKLSAgICAg
IH0pOwotICAgIH0sICJDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgIiArIG5h
bWUgKyAiIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIikKLX0KLQotc2hvdWxkX3Rocm93KC0xKQot
c2hvdWxkX3Rocm93KC0wLjUpCi1zaG91bGRfdGhyb3coMCkKLXNob3VsZF90aHJvdygwLjUpCi1z
aG91bGRfdGhyb3coMC44KQotc2hvdWxkX3Rocm93KDB4MjAwMDAwMDAwMDAwMDApICAvLyBOdW1i
ZXIuTUFYX1NBRkVfSU5URUdFUiArIDEKLXNob3VsZF90aHJvdyhOYU4pCi1zaG91bGRfdGhyb3co
SW5maW5pdHkpCi1zaG91bGRfdGhyb3coLUluZmluaXR5KQotc2hvdWxkX3Rocm93KCJmb28iKQot
c2hvdWxkX3Rocm93KHVuZGVmaW5lZCkKLXNob3VsZF90aHJvdyhudWxsKQotc2hvdWxkX3Rocm93
KGZhbHNlKQotCi1zaG91bGRfdGhyb3coewotICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgYXNz
ZXJ0X3VucmVhY2hlZCgidG9TdHJpbmcgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIFRvUHJpbWl0
aXZlIFtOdW1iZXJdIik7IH0sCi0gICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9
Ci19KQotc2hvdWxkX3Rocm93KHsKLSAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiAw
OyB9LAotICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0KLX0sICdvYmplY3Qg
KHNlY29uZCknKQotc2hvdWxkX3Rocm93KHsKLSAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJl
dHVybiB7fTsgfSwKLSAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt9OyB9LAotfSwg
J29iamVjdCAodGhpcmQpJykKLQotCi0vKiBWYWxpZCAqLwotCi1mdW5jdGlvbiBzaG91bGRfd29y
ayh2YWwpIHsKLSAgICB2YXIgbmFtZSA9IGZvcm1hdF92YWx1ZSh2YWwpOwotICAgIHZhciB0ID0g
YXN5bmNfdGVzdCgiQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50ICIgKyBuYW1l
ICsgIiBzaG91bGQgbm90IHRocm93LiIpCi0gICAgdmFyIHJxID0gY3JlYXRlZGIodCwgdmFsKQot
ICAgIHJxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB0LmRvbmUoKQot
ICAgIH0KLX0KLQotc2hvdWxkX3dvcmsoMS41KQotc2hvdWxkX3dvcmsoTnVtYmVyLk1BWF9TQUZF
X0lOVEVHRVIpICAvLyAweDIwMDAwMDAwMDAwMDAwIC0gMQotCi08L3NjcmlwdD4KLQotPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjkuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X29wZW45Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTUxMjcxNTMxZWI4OWYxZGEzYWMwYjkyMzQ5ODg2MjU0Njg3OTQ3Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjkuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvcnMg
aW4gdmVyc2lvbiBhcmd1bWVudDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9y
dC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLXZhciBkYXRlID0gRGF0ZSgpOwotZnVuY3Rpb24g
c2hvdWxkX3Rocm93KHZhbCwgbmFtZSkgewotICAgIGlmICghbmFtZSkgewotICAgICAgICBuYW1l
ID0gKCh0eXBlb2YgdmFsID09ICJvYmplY3QiICYmIHZhbCkgPyAib2JqZWN0IiA6IGZvcm1hdF92
YWx1ZSh2YWwpKQotICAgIH0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgewotICAgICAgICB3aW5kb3cuaW5kZXhl
ZERCLm9wZW4oJ3Rlc3QnICsgZGF0ZSwgdmFsKTsKLSAgICAgIH0pOwotICAgIH0sICJDYWxsaW5n
IG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgIiArIG5hbWUgKyAiIHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IuIikKLX0KLQotc2hvdWxkX3Rocm93KC0xKQotc2hvdWxkX3Rocm93KC0wLjUpCi1z
aG91bGRfdGhyb3coMCkKLXNob3VsZF90aHJvdygwLjUpCi1zaG91bGRfdGhyb3coMC44KQotc2hv
dWxkX3Rocm93KDB4MjAwMDAwMDAwMDAwMDApICAvLyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiAr
IDEKLXNob3VsZF90aHJvdyhOYU4pCi1zaG91bGRfdGhyb3coSW5maW5pdHkpCi1zaG91bGRfdGhy
b3coLUluZmluaXR5KQotc2hvdWxkX3Rocm93KCJmb28iKQotc2hvdWxkX3Rocm93KHVuZGVmaW5l
ZCkKLXNob3VsZF90aHJvdyhudWxsKQotc2hvdWxkX3Rocm93KGZhbHNlKQotCi1zaG91bGRfdGhy
b3coewotICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgidG9TdHJp
bmcgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIFRvUHJpbWl0aXZlIFtOdW1iZXJdIik7IH0sCi0g
ICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9Ci19KQotc2hvdWxkX3Rocm93KHsK
LSAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAotICAgIHZhbHVlT2Y6IGZ1
bmN0aW9uKCkgeyByZXR1cm4ge307IH0KLX0sICdvYmplY3QgKHNlY29uZCknKQotc2hvdWxkX3Ro
cm93KHsKLSAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiB7fTsgfSwKLSAgICB2YWx1
ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt9OyB9LAotfSwgJ29iamVjdCAodGhpcmQpJykKLQot
Ci0vKiBWYWxpZCAqLwotCi1mdW5jdGlvbiBzaG91bGRfd29yayh2YWwpIHsKLSAgICAKLSAgICB2
YXIgbmFtZSA9IGZvcm1hdF92YWx1ZSh2YWwpOwotICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiQ2Fs
bGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50ICIgKyBuYW1lICsgIiBzaG91bGQgbm90
IHRocm93LiIpCi0gICAgdmFyIHJxID0gY3JlYXRlZGIodCwgdmFsICsgZGF0ZSkKLSAgICBycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdC5kb25lKCkKLSAgICB9Ci19
Ci0KLXNob3VsZF93b3JrKDEuNSkKLXNob3VsZF93b3JrKE51bWJlci5NQVhfU0FGRV9JTlRFR0VS
KSAgLy8gMHgyMDAwMDAwMDAwMDAwMCAtIDEKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgyNDA5ODcxMTJhOWRi
Yjg4YmQzODYwN2IwN2I5ODNlZDI3ZTcwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4Lm11bHRpRW50cnk6IGFycmF5IGtleVBhdGgg
d2l0aCBtdWx0aUVudHJ5IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0
aWVudHJ5LWFycmF5a2V5cGF0aC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDgyNDA5ODcxMTJhOWRiYjg4YmQzODYwN2IwN2I5ODNlZDI3ZTcwZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRo
LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCSW5kZXgubXVsdGlFbnRyeTogYXJyYXkga2V5UGF0aCB3aXRoIG11bHRpRW50cnkgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgt
bXVsdGllbnRyeS1hcnJheWtleXBhdGgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC1wcml2YXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZWRmYmY5YTgzYTU5NmU4Nzc3
YTJiMDJlODU3YWNkMDdlMzgzYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1t
dWx0aWVudHJ5LWFycmF5a2V5cGF0aC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5JREJJbmRleC5tdWx0aUVudHJ5OiBhcnJheSBrZXlQYXRoIHdpdGggbXVsdGlFbnRyeTwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRp
dGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29u
c3RydWN0Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGNyZWF0ZWRiKGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBzdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZh
bGlkQWNjZXNzRXJyb3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHN0b3JlLmNyZWF0ZUlu
ZGV4KCdhY3RvcnMnLCBbJ25hbWUnXSwgeyBtdWx0aUVudHJ5OiB0cnVlIH0pCi0gICAgICAgIH0p
OwotCi0gICAgICAgIHRoaXMuZG9uZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGguaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC5odG0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZWRmYmY5YTgzYTU5NmU4Nzc3YTJiMDJl
ODU3YWNkMDdlMzgzYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVu
dHJ5LWFycmF5a2V5cGF0aC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5tdWx0
aUVudHJ5OiBhcnJheSBrZXlQYXRoIHdpdGggbXVsdGlFbnRyeTwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KLTxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1l
bnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIHZhciBzdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiKTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3In
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCdhY3RvcnMnLCBb
J25hbWUnXSwgeyBtdWx0aUVudHJ5OiB0cnVlIH0pCi0gICAgICAgIH0pOwotCi0gICAgICAgIHRo
aXMuZG9uZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVs
dGllbnRyeS1iaWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZkYzRkM2QwYjM4NWE5YzNmODNiNzg1OTk5NWUxMGQxZjZjNzY4NDMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBBZGRpbmcgb25lIGl0
ZW0gd2l0aCAxMDAwIG11bHRpRW50cnkga2V5cyAKLVBBU1MgR2V0dGluZyB0aGUgb25lIGl0ZW0g
YnkgMTAwMCBpbmRlY2VkIGtleXMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVu
dHJ5LWJpZy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmRjNGQzZDBiMzg1YTljM2Y4M2I3ODU5OTk1ZTEwZDFmNmM3Njg0My4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLXByaXZhdGUtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgQWRkaW5nIG9uZSBpdGVtIHdp
dGggMTAwMCBtdWx0aUVudHJ5IGtleXMgCi1QQVNTIEdldHRpbmcgdGhlIG9uZSBpdGVtIGJ5IDEw
MDAgaW5kZWNlZCBrZXlzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLXByaXZh
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjkxMDI0ODBlY2MwYzg0ZDJj
NThlNzk5ZWFmNDE3YjkwMDJkZmJjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
LW11bHRpZW50cnktYmlnLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQklu
ZGV4Lm11bHRpRW50cnkgLSBhIDEwMDAgZW50cnkgbXVsdGlFbnRyeSBhcnJheTwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0
Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAg
dF9hZGQgPSBhc3luY190ZXN0KCJBZGRpbmcgb25lIGl0ZW0gd2l0aCAxMDAwIG11bHRpRW50cnkg
a2V5cyIsIHsgdGltZW91dDogMTAwMDAgfSksCi0gICAgICAgIHRfZ2V0ID0gYXN5bmNfdGVzdCgi
R2V0dGluZyB0aGUgb25lIGl0ZW0gYnkgMTAwMCBpbmRlY2VkIGtleXMgIiwgeyB0aW1lb3V0OiAx
MDAwMCB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodF9hZGQpOwotICAgIHZhciBv
YmogPSB7IHRlc3Q6ICd5bycsIGlkeGtleXM6IFtdIH07Ci0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDA7IGkrKykKLSAgICAgICAgb2JqLmlkeGtleXMucHVzaCgnaW5kZXhfbm9fJyArIGkp
OwotCi0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykKLSAgICAgICAgICAuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ2lkeGtleXMnLCB7IG11
bHRpRW50cnk6IHRydWUgfSk7Ci0gICAgfTsKLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgdmFyIHR4ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3
cml0ZScpOwotICAgICAgICB0eC5vYmplY3RTdG9yZSgnc3RvcmUnKQotICAgICAgICAgIC5wdXQo
b2JqLCAxKQotICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0X2FkZC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQs
IDEsICJwdXQnZCBrZXkiKTsKLSAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9KTsK
LQotICAgICAgICB0eC5vbmNvbXBsZXRlID0gdF9nZXQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgdmFyIGlkeCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3Jl
KCdzdG9yZScpLmluZGV4KCdpbmRleCcpCi0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgaSsrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlkeC5nZXQoJ2lu
ZGV4X25vXycgKyBpKS5vbnN1Y2Nlc3MgPSB0X2dldC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC50ZXN0LCAi
eW8iKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
aWR4LmdldCgnaW5kZXhfbm9fOTk5Jykub25zdWNjZXNzID0gdF9nZXQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC50
ZXN0LCAieW8iKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dC5pZHhrZXlzLmxlbmd0aCwgMTAwMCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjkxMDI0ODBlY2MwYzg0ZDJjNThlNzk5ZWFmNDE3YjkwMDJkZmJjMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bQorKysg
L2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4Lm11bHRpRW50cnkgLSBhIDEwMDAgZW50cnkgbXVs
dGlFbnRyeSBhcnJheTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotICAgIHZhciBkYiwKLSAgICAgICAgdF9hZGQgPSBhc3luY190ZXN0KCJBZGRpbmcgb25lIGl0
ZW0gd2l0aCAxMDAwIG11bHRpRW50cnkga2V5cyIsIHsgdGltZW91dDogMTAwMDAgfSksCi0gICAg
ICAgIHRfZ2V0ID0gYXN5bmNfdGVzdCgiR2V0dGluZyB0aGUgb25lIGl0ZW0gYnkgMTAwMCBpbmRl
Y2VkIGtleXMgIiwgeyB0aW1lb3V0OiAxMDAwMCB9KTsKLQotICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodF9hZGQpOwotICAgIHZhciBvYmogPSB7IHRlc3Q6ICd5bycsIGlkeGtleXM6IFtdIH07
Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICAgICAgb2JqLmlkeGtl
eXMucHVzaCgnaW5kZXhfbm9fJyArIGkpOwotCi0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAg
ICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKLSAgICAgICAgICAuY3JlYXRlSW5kZXgo
J2luZGV4JywgJ2lkeGtleXMnLCB7IG11bHRpRW50cnk6IHRydWUgfSk7Ci0gICAgfTsKLSAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHR4ID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3cml0ZScpOwotICAgICAgICB0eC5vYmplY3RTdG9yZSgn
c3RvcmUnKQotICAgICAgICAgIC5wdXQob2JqLCAxKQotICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0
X2FkZC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKLSAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEsICJwdXQnZCBrZXkiKTsKLSAgICAgICAgICAgIHRo
aXMuZG9uZSgpOwotICAgICAgICB9KTsKLQotICAgICAgICB0eC5vbmNvbXBsZXRlID0gdF9nZXQu
c3RlcF9mdW5jKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGlkeCA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLmluZGV4KCdpbmRleCcpCi0KLSAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGlkeC5nZXQoJ2luZGV4X25vXycgKyBpKS5vbnN1Y2Nlc3MgPSB0X2dldC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdC50ZXN0LCAieW8iKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgaWR4LmdldCgnaW5kZXhfbm9fOTk5Jykub25zdWNjZXNz
ID0gdF9nZXQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC50ZXN0LCAieW8iKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pZHhrZXlzLmxlbmd0aCwgMTAwMCk7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGll
bnRyeS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkYTQ2M2M3
YjA2YjU4ZjdkZjMzZDM0MjEwMjdkZDlmYmQ2M2M1YWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQkluZGV4Lm11bHRpRW50cnkgLSBhZGRpbmcga2V5cyAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0
aWVudHJ5LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZGE0NjNjN2IwNmI1OGY3ZGYzM2QzNDIxMDI3ZGQ5ZmJk
NjNjNWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1wcml2
YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
QkluZGV4Lm11bHRpRW50cnkgLSBhZGRpbmcga2V5cyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRy
eS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MGRhODQwOGQ4
NGUxYjAxMWE5YWU0MjgwYzE3ZDExNzkwZGFiMDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleC1tdWx0aWVudHJ5LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklE
QkluZGV4Lm11bHRpRW50cnkgLSBhZGRpbmcga2V5czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWRE
Qi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KLTxsaW5rIHJlbD1h
c3NlcnQgdGl0bGU9IlhYWCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgZXhwZWN0ZWRfa2V5cyA9
IFsxLCAyLCAyLCAzLCAzXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVz
dChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkpCi0KLSAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
Ci0KLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKLQot
ICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgnYWN0b3JzJywgJ25hbWUnLCB7IG11bHRpRW50cnk6
IHRydWUgfSkKLQotICAgICAgICBzdG9yZS5hZGQoe25hbWU6ICdPZGluJ30sIDEpOwotICAgICAg
ICBzdG9yZS5hZGQoe25hbWU6IFsnUml0YScsICdTY2hlZXRhJywge0JvYmJ5OidCb2JieSd9XX0s
IDIpOwotICAgICAgICBzdG9yZS5hZGQoe25hbWU6IFsge3M6ICdSb2JlcnQnfSwgJ05laWwnLCAn
Qm9iYnknXX0sIDMpOwotICAgIH07Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIHZhciBnb3R0ZW5fa2V5cyA9IFtdOwotICAgICAgICB2YXIgaWR4ID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2FjdG9ycycp
OwotCi0gICAgICAgIGlkeC5nZXRLZXkoJ09kaW4nKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJl
c3VsdCkKLSAgICAgICAgfSk7Ci0gICAgICAgIGlkeC5nZXRLZXkoJ1JpdGEnKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBnb3R0ZW5fa2V5cy5w
dXNoKGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgfSk7Ci0gICAgICAgIGlkeC5nZXRLZXkoJ1Nj
aGVldGEnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgfSk7Ci0gICAg
ICAgIGlkeC5nZXRLZXkoJ05laWwnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKLSAg
ICAgICAgfSk7Ci0gICAgICAgIGlkeC5nZXRLZXkoJ0JvYmJ5Jykub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRh
cmdldC5yZXN1bHQpCi0KLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZ290dGVuX2tl
eXMsIGV4cGVjdGVkX2tleXMpOwotICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgIH0p
OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRy
eS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MGRhODQwOGQ4NGUxYjAxMWE5
YWU0MjgwYzE3ZDExNzkwZGFiMDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1t
dWx0aWVudHJ5Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4Lm11bHRpRW50cnkg
LSBhZGRpbmcga2V5czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotICAgIHZhciBkYiwKLSAgICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsxLCAyLCAyLCAzLCAzXTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwg
e3RpbWVvdXQ6IDEwMDAwfSkpCi0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKLQotICAgICAgICBzdG9yZS5jcmVh
dGVJbmRleCgnYWN0b3JzJywgJ25hbWUnLCB7IG11bHRpRW50cnk6IHRydWUgfSkKLQotICAgICAg
ICBzdG9yZS5hZGQoe25hbWU6ICdPZGluJ30sIDEpOwotICAgICAgICBzdG9yZS5hZGQoe25hbWU6
IFsnUml0YScsICdTY2hlZXRhJywge0JvYmJ5OidCb2JieSd9XX0sIDIpOwotICAgICAgICBzdG9y
ZS5hZGQoe25hbWU6IFsge3M6ICdSb2JlcnQnfSwgJ05laWwnLCAnQm9iYnknXX0sIDMpOwotICAg
IH07Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBn
b3R0ZW5fa2V5cyA9IFtdOwotICAgICAgICB2YXIgaWR4ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3Jl
Jykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2FjdG9ycycpOwotCi0gICAgICAgIGlkeC5n
ZXRLZXkoJ09kaW4nKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgfSk7
Ci0gICAgICAgIGlkeC5nZXRLZXkoJ1JpdGEnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3Vs
dCkKLSAgICAgICAgfSk7Ci0gICAgICAgIGlkeC5nZXRLZXkoJ1NjaGVldGEnKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBnb3R0ZW5fa2V5cy5w
dXNoKGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgfSk7Ci0gICAgICAgIGlkeC5nZXRLZXkoJ05l
aWwnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgfSk7Ci0gICAgICAg
IGlkeC5nZXRLZXkoJ0JvYmJ5Jykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCi0KLSAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZ290dGVuX2tleXMsIGV4cGVjdGVkX2tleXMp
OwotICAgICAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0
PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTYwYTlkZDhlMmQ1MGFiZGM1MmUwNmIxMDA3ZTQ4
NTFiZjZjNGRiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4LmNv
dW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgaW5kZXggIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2Nv
dW50LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9jb3VudC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTYwYTlkZDhlMmQ1MGFiZGM1MmUwNmIxMDA3ZTQ4NTFiZjZjNGRiMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCSW5kZXguY291bnQo
KSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBpbmRleCAgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9jb3VudC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MmU0
N2Q0NmIwY2I3MTVlZmZkNDY5OTM5ZmNhOGRmZmNiODk0MGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9jb3VudC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+SURC
SW5kZXguY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBpbmRl
eCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5q
cz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7Ci0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNy
ZW1lbnQ6IHRydWUgfSk7Ci0gICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRl
eGVkUHJvcGVydHkiKTsKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewot
ICAgICAgICAgICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLmluZGV4KCJp
bmRleCIpCi0gICAgICAgICAgICAgICAgICAgLmNvdW50KCk7Ci0KLSAgICAgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQsIDEwKTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9
KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQuaHRtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTJlNDdkNDZiMGNiNzE1ZWZmZDQ2OTkzOWZjYThk
ZmZjYjg5NDBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQuaHRtCisr
KyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PXV0Zi04PgotPHRpdGxlPklEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIg
b2YgcmVjb3JkcyBpbiB0aGUgaW5kZXggPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRi
LCB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwotICAgICAgICBzdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgZm9yKHZhciBp
ID0gMDsgaSA8IDEwOyBpKyspIHsKLSAgICAgICAgICAgIHN0b3JlLmFkZCh7IGluZGV4ZWRQcm9w
ZXJ0eTogImRhdGEiICsgaSB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigi
c3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAg
ICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgIC5jb3VudCgp
OwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAxMCk7Ci0gICAgICAgICAg
ICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9jb3VudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2YTMxODRiODNlZDViYjQ4YzhhYTM0MDY2YjgxMDcwMjEzMzE0NzYzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQyLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4LmNvdW50KCkgLSByZXR1cm5z
IHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlICAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9jb3VudDItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2NvdW50Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmEzMTg0YjgzZWQ1YmI0OGM4YWEzNDA2NmI4MTA3MDIxMzMx
NDc2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50Mi1wcml2YXRlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4
LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3
aXRoaW4gdGhlIHJhbmdlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzExYzkxNjczNzM4MjI2YjZiNmY3OGUzMjljMTRhNzc5
MjRlMTQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQyLXByaXZhdGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUg
bnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIg
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRy
dWUgfSk7Ci0gICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVy
dHkiKTsKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgICAgICAg
ICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0g
ICAgICAgICAgICAgICAgICAgLmNvdW50KElEQktleVJhbmdlLmJvdW5kKCdkYXRhMCcsICdkYXRh
NCcpKTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNSk7Ci0gICAgICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9jb3VudDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9jb3VudDIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzEx
YzkxNjczNzM4MjI2YjZiNmY3OGUzMjljMTRhNzc5MjRlMTQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfY291bnQyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJJbmRleC5j
b3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0
aGluIHRoZSByYW5nZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3lu
Y190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0gICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJp
bmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwg
MTA7IGkrKykgewotICAgICAgICAgICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0
YSIgKyBpIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0g
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAgLmNvdW50KElEQktleVJhbmdl
LmJvdW5kKCdkYXRhMCcsICdkYXRhNCcpKTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdCwgNSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQot
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTM4YWIyMjI0NzcyZTgyNzdjOWU2
OTdlZDMwMjgyMmYzNDczOTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291
bnQzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
QkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUg
a2V5cyB3aXRoIHRoZSBrZXkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDMtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MzhhYjIyMjQ3NzJlODI3
N2M5ZTY5N2VkMzAyODIyZjM0NzM5MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9jb3VudDMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29y
ZHMgdGhhdCBoYXZlIGtleXMgd2l0aCB0aGUga2V5IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My1wcml2YXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0N2EyZmI3OTZiNWE1NTg3ZmFj
ZTgzNzNkZjE0ZDIwNzVjMGU1MjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9j
b3VudDMtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPklEQkluZGV4LmNvdW50KCkg
LSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRoIHRoZSBr
ZXk8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYgotCi0gICAgY3JlYXRl
ZGIoYXN5bmNfdGVzdCgpKS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0Ci0KLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pCi0gICAgICAgIHN0b3Jl
LmNyZWF0ZUluZGV4KCJteWluZGV4IiwgImlkeCIpCi0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDsgaSsrKQotICAgICAgICAgICAgc3RvcmUuYWRkKHsgaWR4OiAiZGF0YV8iICsgKGkl
MikgfSk7Ci0KLSAgICAgICAgc3RvcmUuaW5kZXgoIm15aW5kZXgiKS5jb3VudCgiZGF0YV8wIiku
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDUsICJjb3VudChkYXRhXzApIikKLSAgICAgICAg
ICAgIHRoaXMuZG9uZSgpCi0gICAgICAgIH0pCi0gICAgfQotCi08L3NjcmlwdD4KLTxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9jb3VudDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9jb3VudDMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDdh
MmZiNzk2YjVhNTU4N2ZhY2U4MzczZGYxNGQyMDc1YzBlNTI1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfY291bnQzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJJbmRleC5j
b3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0
aCB0aGUga2V5PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIKLQotICAg
IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAotCi0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KQotICAgICAg
ICBzdG9yZS5jcmVhdGVJbmRleCgibXlpbmRleCIsICJpZHgiKQotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTA7IGkrKykKLSAgICAgICAgICAgIHN0b3JlLmFkZCh7IGlkeDogImRhdGFf
IiArIChpJTIpIH0pOwotCi0gICAgICAgIHN0b3JlLmluZGV4KCJteWluZGV4IikuY291bnQoImRh
dGFfMCIpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA1LCAiY291bnQoZGF0YV8wKSIpCi0g
ICAgICAgICAgICB0aGlzLmRvbmUoKQotICAgICAgICB9KQotICAgIH0KLQotPC9zY3JpcHQ+Ci08
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWEzNDEzZDNmZDU0ODEwZTM1N2IwOTFmZDMzZjY4OGI4Zjdh
ZTQxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50NC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5jb3VudCgp
IC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9jb3VudDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFhMzQxM2QzZmQ1NDgxMGUzNTdiMDkxZmQzM2Y2ODhiOGY3YWU0MTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5jb3VudCgpIC0gdGhy
b3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LXBy
aXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU5NDhlYzVkZWYwM2Y0
N2E0MDUzMmI1MDVkYjk2ZTFjYTFmOWVmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2NvdW50NC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5j
b3VudCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXk8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWNvdW50LUlEQlJl
cXVlc3QtYW55LWtleSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCB0ID0gYXN5
bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQotICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
IiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwotICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgi
aW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8
IDEwOyBpKyspIHsKLSAgICAgICAgICAgIHN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogImRh
dGEiICsgaSB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgaW5kZXggPSBkYi50cmFuc2FjdGlvbigic3RvcmUi
KQotICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAg
ICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJE
YXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGluZGV4LmNvdW50KE5hTik7Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50
NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50
NC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1OTQ4ZWM1ZGVmMDNmNDdhNDA1
MzJiNTA1ZGI5NmUxY2ExZjllZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9j
b3VudDQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXguY291bnQoKSAtIHRocm93
IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUv
dGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1jb3VudC1JREJSZXF1ZXN0LWFueS1rZXki
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9
ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoKTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3Jl
bWVudDogdHJ1ZSB9KTsKLSAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4
ZWRQcm9wZXJ0eSIpOwotCi0gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0g
ICAgICAgICAgICBzdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiArIGkgfSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgdmFyIGluZGV4ID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAgICAu
aW5kZXgoImluZGV4Iik7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBpbmRleC5jb3VudChOYU4pOwotICAgICAgICB9KTsKLQot
ICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjAxYzc4ZGExYTE4OTQyMzhmMzA2
ODBmODI0YWIwN2FmYzQ5NThmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQklu
ZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldC1wcml2
YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYwMWM3OGRh
MWExODk0MjM4ZjMwNjgwZjgyNGFiMDdhZmM0OTU4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkICAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9n
ZXQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9nZXQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTQ2
ZTE4NThiNzk1Mjc0MzFkODM0ZjYyNTRkZjQwZjhkY2M5MWY5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfZ2V0LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklE
QkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsg
a2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAg
IGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
OwotCi0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgIH0KLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAg
ICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAgIC5nZXQo
cmVjb3JkLmluZGV4ZWRQcm9wZXJ0eSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQua2V5LCByZWNvcmQua2V5KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9
KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Lmh0bQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U0NmUxODU4Yjc5NTI3NDMxZDgzNGY2MjU0ZGY0MGY4
ZGNjOTFmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldC5odG0KKysrIC9k
ZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29yZCA8L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCks
Ci0gICAgICByZWNvcmQgPSB7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOwotICAgICAgICBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAg
ICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFy
IHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAg
ICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5pbmRleGVkUHJvcGVydHkpOwotCi0gICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3JkLmtleSk7Ci0gICAgICAgICAgICB0
LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9nZXQyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjAyMmI1MzUyNzlhMjVkNTMzNjBiNmNmNGFmMjU5Yzc5NDU2YTcwZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCSW5kZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNv
cmQgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDItcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldDItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGIwMjJiNTM1Mjc5YTI1ZDUzMzYwYjZjZjRhZjI1OWM3OTQ1NmE3MGQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCSW5kZXguZ2V0KCkgLSByZXR1cm5z
IHRoZSByZWNvcmQgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgIAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X2dldDItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXQyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDY3NTljYmFlMzc0NDY2NzM0ZDhiZTA1MzAwYjJlMzAwZTkxOTk4My4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldDItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+SURCSW5kZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2hlcmUgdGhlIGluZGV4IGNv
bnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBrZXk6MSwg
aW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAotICAgICAgICAgICAgICAgICAgeyBrZXk6MiwgaW5k
ZXhlZFByb3BlcnR5OiJkYXRhIiB9LAotICAgICAgICAgICAgICAgICAgeyBrZXk6MywgaW5kZXhl
ZFByb3BlcnR5OiJkYXRhIiB9IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwotICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLmluZGV4
KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAgLmdldCgiZGF0YSIpOwotCi0gICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3Jkc1swXS5rZXkpOwotICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldDIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjc1OWNi
YWUzNzQ0NjY3MzRkOGJlMDUzMDBiMmUzMDBlOTE5OTgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0Mi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXQo
KSAtIHJldHVybnMgdGhlIHJlY29yZCB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRl
IHZhbHVlcyA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBh
c3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6
ImRhdGEiIH0sCi0gICAgICAgICAgICAgICAgICB7IGtleToyLCBpbmRleGVkUHJvcGVydHk6ImRh
dGEiIH0sCi0gICAgICAgICAgICAgICAgICB7IGtleTozLCBpbmRleGVkUHJvcGVydHk6ImRhdGEi
IH0gXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsg
a2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0g
ICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAg
ICAgICAgICAgICAgICAuZ2V0KCJkYXRhIik7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQua2V5LCByZWNvcmRzWzBdLmtleSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAg
ICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfZ2V0My1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiZmY1
OWIyNWE5NzRjNTEwYTVlYWRmYjIwYzg5OGNhZTg5OGYzNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9nZXQzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1QQVNTIElEQkluZGV4LmdldCgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJlY29y
ZCB0aGF0IGRvZXNuJ3QgZXhpc3QgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDMtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiZmY1OWIyNWE5NzRjNTEw
YTVlYWRmYjIwYzg5OGNhZTg5OGYzNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCSW5kZXguZ2V0KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3JkIHRo
YXQgZG9lc24ndCBleGlzdCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0My1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDMtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmYzBiOTUxNzM4MTZiZTJjNjA3YTQzODA4YjA3MGRhMDhiNDRk
OWQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0My1wcml2YXRlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0cmll
dmUgYSByZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0g
ICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgcnEgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSkKLSAgICAgICAgICAgICAg
ICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCi0gICAgICAgICAg
ICAgICAgICAgLmdldCgxKTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwg
dW5kZWZpbmVkKTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9Owot
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDMuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQzLmh0bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmMwYjk1MTczODE2YmUyYzYwN2E0MzgwOGIwNzBkYTA4YjQ0ZDlkOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDMuaHRtCisrKyAvZGV2L251bGwK
QEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCSW5kZXguZ2V0KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3JkIHRo
YXQgZG9lc24ndCBleGlzdCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAg
ICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAgICAgICAgICAgICAgICAgLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKQotICAgICAgICAgICAgICAgICAgIC5nZXQo
MSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0g
ICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFhNDQ4OGFiZDFlMWJhMWE5NzJhNGNkMjkxMmJhMDlkOTRiYjg5
ZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4LmdldCgpIC0gcmV0
dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2UgIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDQt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGFhNDQ4OGFiZDFlMWJhMWE5NzJhNGNkMjkxMmJhMDlkOTRiYjg5ZmIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ0LXByaXZhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCSW5kZXguZ2V0KCkgLSByZXR1
cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5IGluIHRoZSByYW5nZSAgCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NC1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X2dldDQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzRlOWNl
ZWY1ZmEwMGRkNjkxMWE3Y2ZkOWUzNTVkOTM5MzkyZTc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0NC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+SURCSW5k
ZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5IGluIHRoZSBy
YW5nZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9y
dC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7
Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBh
dGg6ICJrZXkiIH0pOwotICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhl
ZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKLSAg
ICAgICAgICAgIHN0b3JlLmFkZCh7IGtleTogaSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBp
IH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLmlu
ZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAgICAgLmdldChJREJLZXlSYW5nZS5ib3VuZCgn
ZGF0YTQnLCAnZGF0YTcnKSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQu
a2V5LCA0KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmluZGV4
ZWRQcm9wZXJ0eSwgJ2RhdGE0Jyk7Ci0KLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IHQuZG9uZSgpOyB9LCA0KQotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRp
diBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldDQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9nZXQ0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM0
ZTljZWVmNWZhMDBkZDY5MTFhN2NmZDllMzU1ZDkzOTM5MmU3OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldDQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPklEQkluZGV4Lmdl
dCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2Ug
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOwotCi0g
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KTsKLSAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9w
ZXJ0eSIpOwotCi0gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICAg
ICAgICBzdG9yZS5hZGQoeyBrZXk6IGksIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiICsgaSB9KTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5pbmRleCgi
aW5kZXgiKQotICAgICAgICAgICAgICAgICAgIC5nZXQoSURCS2V5UmFuZ2UuYm91bmQoJ2RhdGE0
JywgJ2RhdGE3JykpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwg
NCk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pbmRleGVkUHJv
cGVydHksICdkYXRhNCcpOwotCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0
LmRvbmUoKTsgfSwgNCkKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9nZXQ1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM2MzhjMDk4YWEyYzQwZmI0YjkzY2RjNGQ5MjliNDliMjdkYmVjNGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4LmdldCgpIC0gdGhyb3cgRGF0YUVy
cm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJpdmF0
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MzhjMDk4YWEy
YzQwZmI0YjkzY2RjNGQ5MjliNDliMjdkYmVjNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCSW5kZXguZ2V0KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2lu
ZyBpbnZhbGlkIGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMTUyNDkyNjIyNGEwNjkzMmFlZjYxOGFkNTMxMzhlZjcyZjhmOWI0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1wcml2YXRlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHRocm93IERhdGFFcnJvciB3aGVu
IHVzaW5nIGludmFsaWQga2V5IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCSW5kZXgtZ2V0LUlEQlJlcXVlc3QtYW55LWtleSI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxz
Y3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFy
IGluZGV4ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0p
Ci0gICAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJv
cGVydHkiKTsKLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIixmdW5jdGlvbigpewot
ICAgICAgICAgICAgaW5kZXguZ2V0KE5hTik7Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUo
KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMTUyNDkyNjIyNGEwNjkzMmFlZjYxOGFkNTMxMzhlZjcyZjhmOWI0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyNiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5J
REJJbmRleC5nZXQoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5IDwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3
LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcv
aGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtZ2V0
LUlEQlJlcXVlc3QtYW55LWtleSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAot
ICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIGluZGV4ID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAgICAgICAgICAgICAgICAg
ICAgLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLSAgICAgICAgYXNz
ZXJ0X3Rocm93cygiRGF0YUVycm9yIixmdW5jdGlvbigpewotICAgICAgICAgICAgaW5kZXguZ2V0
KE5hTik7Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9OwotPC9zY3JpcHQ+
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfZ2V0Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjMDYxNmE2ODVjZTkxMzRmZDQ4ODdlMmM2ZTBhMDFhMDM3YTEyNjk4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5nZXQoKSAtIHRocm93IEludmFsaWRTdGF0ZUVy
cm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1wcml2
YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA2MTZhNjg1
Y2U5MTM0ZmQ0ODg3ZTJjNmUwYTAxYTAzN2ExMjY5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5nZXQoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9y
IHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDYtcHJpdmF0ZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWI3NjNlZDVlM2RiMzc2Njk0NDkwMGMzNjZk
ZjFmMGE1NGMzNTFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1wcml2
YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHRocm93IElu
dmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFu
eS1rZXkiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci08ZGl2
IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3lu
Y190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
eyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotCi0gICAgICAgIHN0b3JlLmFkZCh7IGtl
eTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7Ci0gICAgICAgIHN0b3JlLmRlbGV0ZUlu
ZGV4KCJpbmRleCIpOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9y
IiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGluZGV4LmdldCgiZGF0YSIpOwotICAgICAgICB9
KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDYuaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWI3NjNlZDVlM2RiMzc2Njk0NDkwMGMzNjZkZjFmMGE1
NGMzNTFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni5odG0KKysrIC9k
ZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9y
IHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2
PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAg
dmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5
IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlu
ZGV4ZWRQcm9wZXJ0eSIpOwotCi0gICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFBy
b3BlcnR5OiAiZGF0YSIgfSk7Ci0gICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOwot
Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsK
LSAgICAgICAgICAgIGluZGV4LmdldCgiZGF0YSIpOwotICAgICAgICB9KTsKLSAgICAgICAgdC5k
b25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDQ3ZWE2ZGY5MjRhMzc1YzZlZmYzZWZlNmY1NWVl
ZmZkN2FiYjdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotRkFJTCBJREJJbmRleC5nZXQo
KSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9u
IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKXsKLSAgICAgICAgICAgIGluZGV4
LmdldCgiZGF0YSIpOwotICAgICAgICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gMCIgdGhhdCBpcyBub3Qg
YSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVh
bCB0byAwLCBleHBlY3RlZCAxMQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDctcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmMDZlMWI0MGE4OWNhOThlYzA4
YjhiMGE1MTBmZTU0NWI5OTViNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9n
ZXQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0K
LUZBSUwgSURCSW5kZXguZ2V0KCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24g
YWJvcnRlZCB0cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7
Ci0gICAgICAgICAgICBpbmRleC5nZXQoImRhdGEiKTsKLSAgICAgICAgfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgJ2dldCcgb24gJ0lEQkluZGV4JzogVGhlIHRyYW5z
YWMuLi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9w
ZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ3LXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NzM1ZWFkODRkZjVmNDE1
OWM0YTIzZTY3M2E1MjI1YzEwY2RlZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQ3LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4LmdldCgp
IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248
L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdl
dC1JREJSZXF1ZXN0LWFueS1rZXkiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0g
ICAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0g
c3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotICAgICAgICBz
dG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOwotCi0gICAgICAg
IGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygi
SW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICAgICAgaW5kZXguZ2V0KCJk
YXRhIik7Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQ3Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0Ny5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NzM1ZWFkODRkZjVmNDE1
OWM0YTIzZTY3M2E1MjI1YzEwY2RlZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQ3Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cg
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1
ZXN0LWFueS1rZXkiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQg
PSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotICAgICAgICBzdG9yZS5hZGQo
eyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOwotCi0gICAgICAgIGUudGFyZ2V0
LnRyYW5zYWN0aW9uLmFib3J0KCk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0
YXRlRXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7Ci0g
ICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXRLZXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzgz
ZTg1MzRjOGFiY2RjYzY4NDY4ZDJhMWQ1MWE5MjFmODJjZWRkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3Mg
cHJpbWFyeSBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldEtleS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzgzZTg1MzRjOGFiY2RjYzY4NDY4
ZDJhMWQ1MWE5MjFmODJjZWRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
S2V5LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtl
eSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfZ2V0S2V5LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjcwMWJhMzFkNzQ4NTk5MjQyZmI0YWU2Mjg5MDlkOWViYTU2MWI2Yy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleS1wcml2YXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMgdGhlIHJlY29yZCdzIHBy
aW1hcnkga2V5IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsga2V5OjEsIGluZGV4ZWRQcm9wZXJ0eToi
ZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHsga2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsK
LSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKTsKLQotICAgICAgICBycSA9IHJxLmluZGV4KCJpbmRleCIpOwotCi0g
ICAgICAgIHJxID0gcnEuZ2V0S2V5KCJkYXRhIik7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQsIHJlY29yZC5rZXkpOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAg
IH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Lmh0
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcwMWJhMzFkNzQ4NTk5MjQyZmI0YWU2
Mjg5MDlkOWViYTU2MWI2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtl
eS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMg
dGhlIHJlY29yZCdzIHByaW1hcnkga2V5IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFy
IGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsga2V5OjEsIGlu
ZGV4ZWRQcm9wZXJ0eToiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKTsKLQotICAgICAgICBycSA9IHJxLmluZGV4
KCJpbmRleCIpOwotCi0gICAgICAgIHJxID0gcnEuZ2V0S2V5KCJkYXRhIik7Ci0KLSAgICAgICAg
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHJlY29yZC5rZXkpOwotICAgICAgICAgICAgdC5k
b25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldEtleTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhODAzM2YwNjk4ZmZmYzZiMTA2OTUxNmVhMGIzNmMwZmRhYWY3MzliLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHJldHVy
bnMgdGhlIHJlY29yZCdzIHByaW1hcnkga2V5IHdoZXJlIHRoZSBpbmRleCBjb250YWlucyBkdXBs
aWNhdGUgdmFsdWVzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkyLXByaXZhdGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODAzM2YwNjk4ZmZmYzZiMTA2
OTUxNmVhMGIzNmMwZmRhYWY3MzliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0S2V5Mi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFy
eSBrZXkgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtl
eTItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9nZXRLZXkyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjQyZTgxZDBiN2RjODM0ZTQ1ZWYwYmRlZjJmOWNhYTEwZjgzNDBmNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtl
eSB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcyA8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICBy
ZWNvcmRzID0gWyB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCi0gICAgICAgICAg
ICAgICAgICB7IGtleToyLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCi0gICAgICAgICAgICAg
ICAgICB7IGtleTozLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0gXTsKLQotICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0g
ICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsK
LQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCi0gICAg
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlv
bigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAg
ICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAgICAuZ2V0S2V5
KCJkYXRhIik7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHJlY29yZHNb
MF0ua2V5KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTIuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkyLmh0bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjQyZTgxZDBiN2RjODM0ZTQ1ZWYwYmRlZjJmOWNhYTEwZjgzNDBm
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTIuaHRtCisrKyAvZGV2
L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBw
cmltYXJ5IGtleSB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcyA8L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCks
Ci0gICAgICByZWNvcmRzID0gWyB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCi0g
ICAgICAgICAgICAgICAgICB7IGtleToyLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0sCi0gICAg
ICAgICAgICAgICAgICB7IGtleTozLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0gXTsKLQotICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtl
eSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJv
cGVydHkiKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBp
KyspCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7Ci0gICAgfTsKLQotICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0
IikKLSAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKLSAgICAgICAgICAgICAgICAg
ICAuZ2V0S2V5KCJkYXRhIik7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQs
IHJlY29yZHNbMF0ua2V5KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAg
ICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgyMzc3MzhlYmE3
N2RhNjVkZjQwMzIwNTQwZDk0OTIwMTUxMzViOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBwcmlt
YXJ5IGtleSBvZiBhIHJlY29yZCB0aGF0IGRvZXNuJ3QgZXhpc3QgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5My1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfZ2V0S2V5My1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjgyMzc3MzhlYmE3N2RhNjVkZjQwMzIwNTQwZDk0OTIwMTUxMzViOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIGF0
dGVtcHQgdG8gcmV0cmlldmUgdGhlIHByaW1hcnkga2V5IG9mIGEgcmVjb3JkIHRoYXQgZG9lc24n
dCBleGlzdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9nZXRLZXkzLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5My1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZkNjg0YmZjZjZhZWU3MGZmZjc2NDU5NTIxNmQ0MGQ4YzBiMzc5YzIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkzLXByaXZhdGUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gYXR0ZW1wdCB0byByZXRy
aWV2ZSB0aGUgcHJpbWFyeSBrZXkgb2YgYSByZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0PC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpOwot
Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJr
ZXkiIH0pCi0gICAgICAgICAgICAgICAgICAgLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVk
UHJvcGVydHkiKQotICAgICAgICAgICAgICAgICAgIC5nZXRLZXkoMSk7Ci0KLSAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXRLZXkzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfZ2V0S2V5My5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkNjg0YmZjZjZh
ZWU3MGZmZjc2NDU5NTIxNmQ0MGQ4YzBiMzc5YzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXRLZXkzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4LmdldEtl
eSgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgcHJpbWFyeSBrZXkgb2YgYSByZWNvcmQgdGhh
dCBkb2Vzbid0IGV4aXN0PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAg
ICB0ID0gYXN5bmNfdGVzdCgpOwotCi0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAgICAgICAgICAgICAgICAgLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKQotICAgICAgICAgICAgICAgICAgIC5nZXRL
ZXkoMSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
ewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7
Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0Pgot
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzNzI2NzZjNjIxNDAxMmUyYTM3Y2JkNjI2Mzlm
NmE3ODIxZDY3N2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4
LmdldEtleSgpIC0gcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdCByZWNvcmQgd2l0aGluIHRo
ZSByYW5nZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0S2V5NC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1wcml2YXRlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM3MjY3NmM2MjE0MDEyZTJhMzdjYmQ2
MjYzOWY2YTc4MjFkNjc3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtl
eTQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMgdGhlIGtleSBvZiB0aGUgZmlyc3QgcmVj
b3JkIHdpdGhpbiB0aGUgcmFuZ2UgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0LXByaXZhdGUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDcxZWQ2NTkyMmY2ZTZiOWNhODIwNWY4OGQx
Y2VkNmM1MzQwZjE4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTQt
cHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0
dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdCByZWNvcmQgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIg
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0p
OwotICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7
Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKLSAgICAgICAgICAgIHN0
b3JlLmFkZCh7IGtleTogaSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIp
Ci0gICAgICAgICAgICAgICAgICAgLmdldEtleShJREJLZXlSYW5nZS5ib3VuZCgnZGF0YTQnLCAn
ZGF0YTcnKSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDQpOwotCi0g
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgNCkKLSAgICAg
ICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC5o
dG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3MWVkNjU5MjJmNmU2YjljYTgyMDVm
ODhkMWNlZDZjNTM0MGYxOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRL
ZXk0Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMg
dGhlIGtleSBvZiB0aGUgZmlyc3QgcmVjb3JkIHdpdGhpbiB0aGUgcmFuZ2UgPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAg
ICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotCi0g
ICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICAgICAgICBzdG9yZS5h
ZGQoeyBrZXk6IGksIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiICsgaSB9KTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAg
ICAgICAgICAgICAgICAgIC5nZXRLZXkoSURCS2V5UmFuZ2UuYm91bmQoJ2RhdGE0JywgJ2RhdGE3
JykpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA0KTsKLQotICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDQpCi0gICAgICAgIH0p
OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtl
eTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmE2ZjU1MDFj
Zjg5MmU5MzhjOWEzN2NkYjI1NTJjYmEyODBiMDlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0S2V5NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5n
IGludmFsaWQga2V5ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmE2ZjU1MDFjZjg5MmU5Mzhj
OWEzN2NkYjI1NTJjYmEyODBiMDlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0S2V5NS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcg
aW52YWxpZCBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldEtleTUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODEyYzNjZDQ4ZGQ2YTYyMzcyMmI2ZmNkYjljN2Y1YjE0MmJm
OWM5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUtcHJpdmF0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBEYXRh
RXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
Ci0gICAgICAgIHZhciBpbmRleCA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQ
YXRoOiAia2V5IiB9KQotICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIs
ZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGluZGV4LmdldEtleShOYU4pOwotICAgICAgICB9KTsK
LSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1Lmh0bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEyYzNjZDQ4ZGQ2YTYyMzcyMmI2ZmNkYjljN2Y1
YjE0MmJmOWM5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUuaHRt
CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBEYXRhRXJy
b3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0g
ICAgICAgIHZhciBpbmRleCA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRo
OiAia2V5IiB9KQotICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aW5kZXhlZFByb3BlcnR5Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsZnVu
Y3Rpb24oKXsKLSAgICAgICAgICAgIGluZGV4LmdldEtleShOYU4pOwotICAgICAgICB9KTsKLSAg
ICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk5MTIyZThiZDVjNmYw
NjJmNjMyNWZjMGUyYjZiYjNlYTgwNzk3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRo
ZSBpbmRleCBpcyBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5OTEyMmU4YmQ1YzZm
MDYyZjYzMjVmYzBlMmI2YmIzZWE4MDc5NzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9nZXRLZXk2LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
ciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LXByaXZhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBjOGU4ODA1ZTZlNmVjYWZlMjdh
YmNiNWJiZWVmNjZjZmI1Y2Q2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dl
dEtleTYtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXguZ2V0S2V5
KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1nZXRL
ZXktSURCUmVxdWVzdC1hbnkta2V5Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAot
ICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAgIHZhciBpbmRleCA9
IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAg
ICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOwotICAgICAg
ICBzdG9yZS5kZWxldGVJbmRleCgiaW5kZXgiKTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJJ
bnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBpbmRleC5nZXRLZXko
ImRhdGEiKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9nZXRLZXk2Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBjOGU4ODA1
ZTZlNmVjYWZlMjdhYmNiNWJiZWVmNjZjZmI1Y2Q2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldEtleTYuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXguZ2V0
S2V5KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVk
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93
d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1n
ZXRLZXktSURCUmVxdWVzdC1hbnkta2V5Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0
LmpzPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRi
LAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAgIHZhciBpbmRl
eCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAg
ICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOwotICAg
ICAgICBzdG9yZS5kZWxldGVJbmRleCgiaW5kZXgiKTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dz
KCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBpbmRleC5nZXRL
ZXkoImRhdGEiKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2Ny
aXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjU2MDllNjdkZWE5NmNjYzJmNjVlZWExNjc4Y2Q5YWY1YmQ1YmU3OS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUZBSUwgSURCSW5kZXguZ2V0S2V5KCkgLSB0aHJv
dyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7Ci0gICAgICAgICAgICBpbmRleC5nZXRLZXko
ImRhdGEiKTsKLSAgICAgICAgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yOiBET00gSURCRGF0YWJhc2UgRXhjZXB0aW9uIDAiIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8g
MCwgZXhwZWN0ZWQgMTEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk3LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk3LXByaXZhdGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzY2VkY2M2MDM3MDc5ZDhkZDdh
ZTNjYzVkNWYyNTg2Nzk2YzQ4ODE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0S2V5Ny1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBA
QAotCi1GQUlMIElEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0
aW9uICgpewotICAgICAgICAgICAgaW5kZXguZ2V0S2V5KCJkYXRhIik7Ci0gICAgICAgIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdnZXRLZXknIG9uICdJREJJbmRl
eCc6IFRoZSB0cmFuLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVF
cnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5
Ny1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTctcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
ZGUwODA3OTk3Yjc1MTJjZjRlOTYyMDYzNTI5NTA2NTBjNzU4OTE5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0
aXRsZT5JREJJbmRleC5nZXRLZXkoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBv
biBhYm9ydGVkIHRyYW5zYWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjd2lkbC1JREJJbmRleC1nZXRLZXktSURCUmVxdWVzdC1hbnkta2V5Ij4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZh
ciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIg
fSk7Ci0gICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRl
eGVkUHJvcGVydHkiKTsKLSAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJvcGVy
dHk6ICJkYXRhIiB9KTsKLQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOwot
Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsK
LSAgICAgICAgICAgIGluZGV4LmdldEtleSgiZGF0YSIpOwotICAgICAgICB9KTsKLSAgICAgICAg
dC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTcuaHRtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyZGUwODA3OTk3Yjc1MTJjZjRlOTYyMDYzNTI5NTA2NTBjNzU4OTE5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny5odG0KKysrIC9kZXYv
bnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5nZXRLZXkoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1nZXRLZXktSURCUmVxdWVzdC1hbnkta2V5Ij4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgp
OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0g
ICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0
aDogImtleSIgfSk7Ci0gICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICJpbmRleGVkUHJvcGVydHkiKTsKLSAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRl
eGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKLQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5h
Ym9ydCgpOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVu
Y3Rpb24oKXsKLSAgICAgICAgICAgIGluZGV4LmdldEtleSgiZGF0YSIpOwotICAgICAgICB9KTsK
LSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2luZGV4
TmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODg2MDQ0
MTljY2M3NjUzMGVlYmY1ZDg3NjNjNmM3ODAyNWJlMDhlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5nZXRLZXkoKSAtIHJldHVybnMgdGhlIHJlY29yZCdz
IHByaW1hcnkga2V5IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2luZGV4TmFtZXMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2luZGV4TmFtZXMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ODYwNDQxOWNjYzc2
NTMwZWViZjVkODc2M2M2Yzc4MDI1YmUwOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9pbmRleE5hbWVzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQn
cyBwcmltYXJ5IGtleSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1wcml2YXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZTQwZTY2ZmE2YjM2ZjY5YTJiMWY4MGVhN2Jk
OWNmODdmNWYzMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVz
LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0g
cmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFyeSBrZXk8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImRhdGEiKTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3Jl
LmluZGV4TmFtZXNbMF0sICJpbmRleCIsICJpbmRleE5hbWVzIik7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMob2JqU3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIp
OwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMob2JqU3Rv
cmUuaW5kZXhOYW1lc1swXSwgImluZGV4IiwgImluZGV4TmFtZXMgKHNlY29uZCkiKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFt
ZXMubGVuZ3RoIChzZWNvbmQpIik7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZTQwZTY2ZmE2YjM2ZjY5YTJiMWY4MGVhN2JkOWNmODdm
NWYzMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLmh0bQor
KysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVj
b3JkJ3MgcHJpbWFyeSBrZXk8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFy
IGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAw
MH0pOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBr
ZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImRhdGEiKTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXNbMF0s
ICJpbmRleCIsICJpbmRleE5hbWVzIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUu
aW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgidGVzdCIpOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuaW5kZXhOYW1lc1sw
XSwgImluZGV4IiwgImluZGV4TmFtZXMgKHNlY29uZCkiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3RoIChzZWNv
bmQpIik7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3OGNjYWVmMmI3OWU5MjZiYmE3N2U4YmMyYTYzMjJh
MDQ4OTkyZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4
Lm9wZW5DdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlz
IGRlbGV0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfb3BlbkN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvci1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc4Y2NhZWYyYjc5ZTkyNmJi
YTc3ZThiYzJhNjMyMmEwNDg5OTJlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X29wZW5DdXJzb3ItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3ItcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29y
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlmYjY4YTUxODNj
ZDNmZDdmZWE1M2JkNjQxZmQ0NDc4YjY4MDU4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X29wZW5DdXJzb3ItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURC
SW5kZXgub3BlbkN1cnNvcigpIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgaW5k
ZXggaXMgZGVsZXRlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCSW5kZXgtb3BlbkN1cnNvci1JREJSZXF1ZXN0LWFueS1yYW5nZS1JREJDdXJzb3JEaXJl
Y3Rpb24tZGlyZWN0aW9uIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2Ny
aXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0gICAgICAgIHZhciBpbmRleCA9IHN0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLQotICAgICAgICBzdG9y
ZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOwotICAgICAgICBzdG9y
ZS5kZWxldGVJbmRleCgiaW5kZXgiKTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlk
U3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBpbmRleC5vcGVuQ3Vyc29yKCk7
Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVu
Q3Vyc29yLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
b3BlbkN1cnNvci5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZmI2OGE1MTgz
Y2QzZmQ3ZmVhNTNiZDY0MWZkNDQ3OGI2ODA1ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9vcGVuQ3Vyc29yLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4Lm9w
ZW5DdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRl
bGV0ZWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQklu
ZGV4LW9wZW5DdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRp
cmVjdGlvbiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLTxk
aXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGtleVBhdGg6ICJrZXkiIH0pOwotICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgc3RvcmUuYWRkKHsg
a2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKLSAgICAgICAgc3RvcmUuZGVsZXRl
SW5kZXgoImluZGV4Iik7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJy
b3IiLCBmdW5jdGlvbigpewotICAgICAgICAgICAgaW5kZXgub3BlbkN1cnNvcigpOwotICAgICAg
ICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9vcGVuQ3Vyc29yMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY3ODRiM2QxNjk5NGZiMTc1Mjk3NmY2ZWJhZDUxNWE5MTYyM2YyMzYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLQotRkFJTCBJREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBU
cmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7Ci0gICAgICAgICAgICBpbmRleC5vcGVuQ3Vyc29y
KCk7Ci0gICAgICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IFRyYW5zYWN0aW9uSW5hY3RpdmVF
cnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2Vw
dGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4
cGVjdGVkIDExCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLXByaXZhdGUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTIzMTEyNzEyZWYzY2U4
NjM5MTI5MjkxOTcwMGFlOTliNjU4ZTEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfb3BlbkN1cnNvcjItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLQotRkFJTCBJREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCl7Ci0gICAgICAgICAgICBpbmRleC5vcGVuQ3Vyc29yKCk7Ci0gICAg
ICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdvcGVuQ3Vyc29y
JyBvbiAnSURCSW5kZXgnOiBUaGUgLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZh
bGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDEx
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfb3BlbkN1cnNvcjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAxMzhhY2I1ZWZlNjlkNDI4OTQzZmU3MDA4YjBiZDBhNTM0ODcwYjEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1wcml2YXRlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBU
cmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNv
bSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtb3BlbkN1cnNvci1J
REJSZXF1ZXN0LWFueS1yYW5nZS1JREJDdXJzb3JEaXJlY3Rpb24tZGlyZWN0aW9uIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0g
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAg
IHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtl
eSIgfSk7Ci0gICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
bmRleGVkUHJvcGVydHkiKTsKLSAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJv
cGVydHk6ICJkYXRhIiB9KTsKLQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgp
OwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24o
KXsKLSAgICAgICAgICAgIGluZGV4Lm9wZW5DdXJzb3IoKTsKLSAgICAgICAgfSk7Ci0gICAgICAg
IHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjIuaHRtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTM4YWNiNWVmZTY5ZDQyODk0M2ZlNzAwOGIwYmQw
YTUzNDg3MGIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjIu
aHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXgub3BlbkN1cnNvcigpIC0gdGhyb3cg
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5DdXJzb3It
SURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJr
ZXkiIH0pOwotICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aW5kZXhlZFByb3BlcnR5Iik7Ci0gICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFBy
b3BlcnR5OiAiZGF0YSIgfSk7Ci0KLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQo
KTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9u
KCl7Ci0gICAgICAgICAgICBpbmRleC5vcGVuQ3Vyc29yKCk7Ci0gICAgICAgIH0pOwotICAgICAg
ICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1
cnNvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxMmJjYWI5
Y2E1MDE3YmMwZWJmM2U3ZjdjMTI4ZDcxNGYxNTFkYmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IERhdGFF
cnJvciB3aGVuIHVzaW5nIGEgaW52YWxpZCBrZXkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvci1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
b3BlbktleUN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTEyYmNhYjljYTUwMTdiYzBlYmYzZTdmN2MxMjhkNzE0ZjE1MWRiZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRleC5vcGVu
S2V5Q3Vyc29yKCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBhIGludmFsaWQga2V5IAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
X29wZW5LZXlDdXJzb3ItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzU1NWUwNjRmYjJhMWEyMmMxN2E5NWY4NGIxNDFiZDU2OWY5NDRl
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0g
dGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgYSBpbnZhbGlkIGtleTwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtb3BlbktleUN1cnNvci1JREJS
ZXF1ZXN0LWFueS1yYW5nZS1JREJDdXJzb3JEaXJlY3Rpb24tZGlyZWN0aW9uIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZh
ciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIg
fSk7Ci0gICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRl
eGVkUHJvcGVydHkiKTsKLQotICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9w
ZXJ0eTogImRhdGEiIH0pOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1
bmN0aW9uKCl7Ci0gICAgICAgICAgICBpbmRleC5vcGVuS2V5Q3Vyc29yKE5hTik7Ci0gICAgICAg
IH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29y
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3Blbktl
eUN1cnNvci5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1NTVlMDY0ZmIyYTFh
MjJjMTdhOTVmODRiMTQxYmQ1NjlmOTQ0ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9vcGVuS2V5Q3Vyc29yLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4Lm9w
ZW5LZXlDdXJzb3IoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGEgaW52YWxpZCBrZXk8
L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9w
ZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVj
dGlvbiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLTxkaXYg
aWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5j
X3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
IGtleVBhdGg6ICJrZXkiIH0pOwotICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgc3RvcmUuYWRkKHsga2V5
OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNv
cihOYU4pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfb3BlbktleUN1cnNvcjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0YTQ0YTQwNGNkMTg5NDdiNTJhYTIyNjg1NjRmZDIyMWFj
NmM5ZTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJJbmRl
eC5vcGVuS2V5Q3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRl
eCBpcyBkZWxldGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1w
cml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRhNDRh
NDA0Y2QxODk0N2I1MmFhMjI2ODU2NGZkMjIxYWM2YzllMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCSW5kZXgub3BlbktleUN1cnNvcigpIC0g
dGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgaW5kZXggaXMgZGVsZXRlZCAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVu
S2V5Q3Vyc29yMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDYzMmQxOTFjMDg1MDBiNTMwMmQ3NWQ2MTFjYjFkNWQwODdlYzFmYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLXByaXZhdGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRo
cm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5LZXlDdXJz
b3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOwotICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRl
eGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKLSAgICAgICAgc3RvcmUuZGVsZXRlSW5kZXgoImluZGV4
Iik7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlv
bigpewotICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNvcigpOwotICAgICAgICB9KTsKLSAg
ICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjIuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29y
Mi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2MzJkMTkxYzA4NTAwYjUzMDJk
NzVkNjExY2IxZDVkMDg3ZWMxZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9v
cGVuS2V5Q3Vyc29yMi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJJbmRleC5vcGVuS2V5
Q3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxl
dGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6
Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLncz
Lm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRl
eC1vcGVuS2V5Q3Vyc29yLUlEQlJlcXVlc3QtYW55LXJhbmdlLUlEQkN1cnNvckRpcmVjdGlvbi1k
aXJlY3Rpb24iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci08
ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBh
c3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotCi0gICAgICAgIHN0b3JlLmFkZCh7
IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7Ci0gICAgICAgIHN0b3JlLmRlbGV0
ZUluZGV4KCJpbmRleCIpOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVy
cm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGluZGV4Lm9wZW5LZXlDdXJzb3IoKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlD
dXJzb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfb3BlbktleUN1cnNvcjMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5NWNhMmJmNGQ3ZDc3NjE3YjAxYjdmOTcyNjFhZjg4YTFkMTIwNzg0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUZBSUwgSURCSW5kZXgub3BlbktleUN1
cnNvcigpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNh
Y3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpewotICAgICAgICAgICAg
aW5kZXgub3BlbktleUN1cnNvcigpOwotICAgICAgICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBU
cmFuc2FjdGlvbkluYWN0aXZlRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gMCIgdGhh
dCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2Rl
IiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAxMQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9v
cGVuS2V5Q3Vyc29yMy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTg1ZWQwYjA3NWQ5MjM3YTlkODM5MDUwNjlmY2ExNzY0OGEwMzQyOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUZBSUwgSURCSW5kZXgub3Bl
bktleUN1cnNvcigpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQg
dHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpewotICAgICAg
ICAgICAgaW5kZXgub3BlbktleUN1cnNvcigpOwotICAgICAgICB9IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSAnb3BlbktleUN1cnNvcicgb24gJ0lEQkluZGV4JzogVC4u
LiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5
ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAxMQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLXByaXZh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3Bl
bktleUN1cnNvcjMtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
YTJiMmYxYWJlMWZkY2NmZmIwNDlmMDNlNDhhY2RkM2U1YTIxNmQxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjMtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgVHJhbnNhY3Rpb25J
bmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgotPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmls
ZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVz
dC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwot
ICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFBy
b3BlcnR5Iik7Ci0gICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAi
ZGF0YSIgfSk7Ci0KLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKLQotICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAg
ICAgICAgICBpbmRleC5vcGVuS2V5Q3Vyc29yKCk7Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRv
bmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLmh0bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGEyYjJmMWFiZTFmZGNjZmZiMDQ5ZjAzZTQ4YWNk
ZDNlNWEyMTZkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJz
b3IzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAt
IHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVu
S2V5Q3Vyc29yLUlEQlJlcXVlc3QtYW55LXJhbmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rp
b24iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci08ZGl2IGlk
PSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190
ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBr
ZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEs
IGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOwotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLmFib3J0KCk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3Ii
LCBmdW5jdGlvbigpewotICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNvcigpOwotICAgICAg
ICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0Mjc2NzJiZDI5NmE5OGJi
MmVjNmU4OTdlMDZlOTBkYzAwMDZhY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXly
YW5nZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLQotUEFTUyBJ
REJLZXlSYW5nZS5vbmx5KCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVy
dGllcyBhcmUgc2V0IGNvcnJlY3RseSAKLVBBU1MgSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgpIC0g
cmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0
bHkgCi1QQVNTIElEQktleVJhbmdlLmxvd2VyQm91bmQoKSAtICdvcGVuJyBwYXJhbWV0ZXIgaGFz
IGNvcnJlY3QgZGVmYXVsdCBzZXQgCi1QQVNTIElEQktleVJhbmdlLnVwcGVyQm91bmQoKSAtIHJl
dHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5
IAotUEFTUyBJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBj
b3JyZWN0IGRlZmF1bHQgc2V0IAotUEFTUyBJREJLZXlSYW5nZS5ib3VuZCgpIC0gcmV0dXJucyBh
biBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCi1QQVNT
IElEQktleVJhbmdlLmJvdW5kKCkgLSAnbG93ZXJPcGVuJyBhbmQgJ3VwcGVyT3BlbicgcGFyYW1l
dGVycyBoYXZlIGNvcnJlY3QgZGVmYXVsdHMgc2V0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1wcml2YXRl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQyNzY3MmJkMjk2
YTk4YmIyZWM2ZTg5N2UwNmU5MGRjMDAwNmFjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCww
IEBACi0KLVBBU1MgSURCS2V5UmFuZ2Uub25seSgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBh
bmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCi1QQVNTIElEQktleVJhbmdlLmxv
d2VyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFy
ZSBzZXQgY29ycmVjdGx5IAotUEFTUyBJREJLZXlSYW5nZS5sb3dlckJvdW5kKCkgLSAnb3Blbicg
cGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0IAotUEFTUyBJREJLZXlSYW5nZS51cHBl
ckJvdW5kKCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUg
c2V0IGNvcnJlY3RseSAKLVBBU1MgSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgpIC0gJ29wZW4nIHBh
cmFtZXRlciBoYXMgY29ycmVjdCBkZWZhdWx0IHNldCAKLVBBU1MgSURCS2V5UmFuZ2UuYm91bmQo
KSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29y
cmVjdGx5IAotUEFTUyBJREJLZXlSYW5nZS5ib3VuZCgpIC0gJ2xvd2VyT3BlbicgYW5kICd1cHBl
ck9wZW4nIHBhcmFtZXRlcnMgaGF2ZSBjb3JyZWN0IGRlZmF1bHRzIHNldCAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1wcml2YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlLXBy
aXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYyYTk0MzAyNWEwZmE3
NzA3OWU5NjBlNDVlMzMxN2YyZGUwYjFmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtl
eXJhbmdlLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJLZXlSYW5nZSBUZXN0
czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIC8vIG9ubHkKLSAgICB0ZXN0KCBmdW5jdGlvbigp
IHsKLSAgICAgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2Uub25seSgxKTsKLSAgICAgICAg
YXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtleVJhbmdlIGlu
c3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5nZS5s
b3dlciwgMSwgImtleVJhbmdlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UudXBw
ZXIsIDEsICJrZXlSYW5nZSIpOwotICAgICAgICBhc3NlcnRfZmFsc2Uoa2V5UmFuZ2UubG93ZXJP
cGVuLCAia2V5UmFuZ2UubG93ZXJPcGVuIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShrZXlSYW5n
ZS51cHBlck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsKLSAgICB9LCAiSURCS2V5UmFuZ2Uu
b25seSgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNl
dCBjb3JyZWN0bHkiKTsKLQotICAgIC8vIGxvd2VyQm91bmQKLSAgICB0ZXN0KCBmdW5jdGlvbigp
IHsKLSAgICAgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgxLCB0cnVl
KQotICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdlLCAi
a2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxz
KGtleVJhbmdlLmxvd2VyLCAxLCAia2V5UmFuZ2UubG93ZXIiKTsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhrZXlSYW5nZS51cHBlciwgdW5kZWZpbmVkLCAia2V5UmFuZ2UudXBwZXIiKTsKLSAgICAg
ICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UubG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJPcGVuIik7
Ci0gICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVy
T3BlbiIpOwotICAgIH0sICJJREJLZXlSYW5nZS5sb3dlckJvdW5kKCkgLSByZXR1cm5zIGFuIElE
QktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOwotCi0gICAg
dGVzdCggZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBrZXlSYW5nZSA9IElEQktleVJhbmdlLmxv
d2VyQm91bmQoMSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShrZXlSYW5nZS5sb3dlck9wZW4sICJr
ZXlSYW5nZS5sb3dlck9wZW4iKTsKLSAgICB9LCAiSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgpIC0g
J29wZW4nIHBhcmFtZXRlciBoYXMgY29ycmVjdCBkZWZhdWx0IHNldCIpOwotCi0gICAgLy8gdXBw
ZXJCb3VuZAotICAgIHRlc3QoIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGtleVJhbmdl
ID0gSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgxLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydF90
cnVlKGtleVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5jZW9m
IElEQktleVJhbmdlIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLmxvd2Vy
LCB1bmRlZmluZWQsICJrZXlSYW5nZS5sb3dlciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhrZXlSYW5nZS51cHBlciwgMSwgImtleVJhbmdlLnVwcGVyIik7Ci0gICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKLSAgICAg
ICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3Bl
biIpOwotICAgIH0sICJJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSByZXR1cm5zIGFuIElEQktl
eVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOwotCi0gICAgdGVz
dCggZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBrZXlSYW5nZSA9IElEQktleVJhbmdlLnVwcGVy
Qm91bmQoMSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShrZXlSYW5nZS51cHBlck9wZW4sICJrZXlS
YW5nZS51cHBlck9wZW4iKTsKLSAgICB9LCAiSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgpIC0gJ29w
ZW4nIHBhcmFtZXRlciBoYXMgY29ycmVjdCBkZWZhdWx0IHNldCIpOwotCi0gICAgLy8gYm91bmQK
LSAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFu
Z2UuYm91bmQoMSwgMiwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdl
IGluc3RhbmNlb2YgSURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdl
Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIDEsICJrZXlSYW5nZSIp
OwotICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCAyLCAia2V5UmFuZ2UiKTsK
LSAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UubG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJP
cGVuIik7Ci0gICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdl
LnVwcGVyT3BlbiIpOwotICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZCgpIC0gcmV0dXJucyBhbiBJ
REJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkiKTsKLQotICAg
IHRlc3QoIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5i
b3VuZCgxLCAyKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdlLmxvd2VyT3BlbiwgImtl
eVJhbmdlLmxvd2VyT3BlbiIpOwotICAgICAgICBhc3NlcnRfZmFsc2Uoa2V5UmFuZ2UudXBwZXJP
cGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7Ci0gICAgfSwgIklEQktleVJhbmdlLmJvdW5kKCkg
LSAnbG93ZXJPcGVuJyBhbmQgJ3VwcGVyT3BlbicgcGFyYW1ldGVycyBoYXZlIGNvcnJlY3QgZGVm
YXVsdHMgc2V0Iik7Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlLmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UuaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjJhOTQzMDI1YTBmYTc3MDc5ZTk2MGU0NWUzMzE3ZjJk
ZTBiMWZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UuaHRtCisrKyAvZGV2
L251bGwKQEAgLTEsNjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0
Zi04PgotPHRpdGxlPklEQktleVJhbmdlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAg
Ly8gb25seQotICAgIHRlc3QoIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIga2V5UmFuZ2UgPSBJ
REJLZXlSYW5nZS5vbmx5KDEpOwotICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZSBpbnN0YW5j
ZW9mIElEQktleVJhbmdlLCAia2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSIpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLmxvd2VyLCAxLCAia2V5UmFuZ2UiKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5nZS51cHBlciwgMSwgImtleVJhbmdlIik7Ci0gICAgICAg
IGFzc2VydF9mYWxzZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsK
LSAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVy
T3BlbiIpOwotICAgIH0sICJJREJLZXlSYW5nZS5vbmx5KCkgLSByZXR1cm5zIGFuIElEQktleVJh
bmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOwotCi0gICAgLy8gbG93
ZXJCb3VuZAotICAgIHRlc3QoIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIga2V5UmFuZ2UgPSBJ
REJLZXlSYW5nZS5sb3dlckJvdW5kKDEsIHRydWUpCi0gICAgICAgIGFzc2VydF90cnVlKGtleVJh
bmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJh
bmdlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIDEsICJrZXlSYW5n
ZS5sb3dlciIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCB1bmRlZmlu
ZWQsICJrZXlSYW5nZS51cHBlciIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS5sb3dl
ck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFu
Z2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7Ci0gICAgfSwgIklEQktleVJhbmdl
Lmxvd2VyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVz
IGFyZSBzZXQgY29ycmVjdGx5Iik7Ci0KLSAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAg
dmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgxKTsKLSAgICAgICAgYXNzZXJ0
X2ZhbHNlKGtleVJhbmdlLmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3BlbiIpOwotICAgIH0s
ICJJREJLZXlSYW5nZS5sb3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0
IGRlZmF1bHQgc2V0Iik7Ci0KLSAgICAvLyB1cHBlckJvdW5kCi0gICAgdGVzdCggZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS51cHBlckJvdW5kKDEs
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJL
ZXlSYW5nZSwgImtleVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIHVuZGVmaW5lZCwgImtleVJhbmdlLmxvd2Vy
Iik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCAxLCAia2V5UmFu
Z2UudXBwZXIiKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLmxvd2VyT3Blbiwg
ImtleVJhbmdlLmxvd2VyT3BlbiIpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2Uu
dXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7Ci0gICAgfSwgIklEQktleVJhbmdlLnVw
cGVyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFy
ZSBzZXQgY29ycmVjdGx5Iik7Ci0KLSAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFy
IGtleVJhbmdlID0gSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgxKTsKLSAgICAgICAgYXNzZXJ0X2Zh
bHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIpOwotICAgIH0sICJJ
REJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRl
ZmF1bHQgc2V0Iik7Ci0KLSAgICAvLyBib3VuZAotICAgIHRlc3QoIGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5ib3VuZCgxLCAyLCB0cnVlLCB0cnVlKTsK
LSAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtl
eVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhr
ZXlSYW5nZS5sb3dlciwgMSwgImtleVJhbmdlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoa2V5
UmFuZ2UudXBwZXIsIDIsICJrZXlSYW5nZSIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5n
ZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKLSAgICAgICAgYXNzZXJ0X3RydWUo
a2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7Ci0gICAgfSwgIklEQktl
eVJhbmdlLmJvdW5kKCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGll
cyBhcmUgc2V0IGNvcnJlY3RseSIpOwotCi0gICAgdGVzdCggZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBrZXlSYW5nZSA9IElEQktleVJhbmdlLmJvdW5kKDEsIDIpOwotICAgICAgICBhc3NlcnRf
ZmFsc2Uoa2V5UmFuZ2UubG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJPcGVuIik7Ci0gICAgICAg
IGFzc2VydF9mYWxzZShrZXlSYW5nZS51cHBlck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsK
LSAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQoKSAtICdsb3dlck9wZW4nIGFuZCAndXBwZXJPcGVu
JyBwYXJhbWV0ZXJzIGhhdmUgY29ycmVjdCBkZWZhdWx0cyBzZXQiKTsKLTwvc2NyaXB0PgotCi08
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ5YmZmMWM2MGNmYzQwMGE4MDI5Yjk3
M2FhMmZiNjUwYzgwZWJkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2lu
Y29ycmVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLQotUEFT
UyBJREJLZXlSYW5nZS5ib3VuZCgpIC0gYm91bmQgcmVxdWlyZXMgbW9yZSB0aGFuIDAgYXJndW1l
bnRzLiAKLVBBU1MgSURCS2V5UmFuZ2UuYm91bmQobnVsbCwgbnVsbCkgLSBudWxsIHBhcmFtZXRl
cnMgYXJlIGluY29ycmVjdC4gCi1QQVNTIElEQktleVJhbmdlLmJvdW5kKDEsIG51bGwgLyBudWxs
LCAxKSAtIG51bGwgcGFyYW1ldGVyIGlzIGluY29ycmVjdC4gCi1QQVNTIElEQktleVJhbmdlLmJv
dW5kKGxvd2VyLCB1cHBlciAvIGxvd2VyID4gdXBwZXIpIC0gICdsb3dlcicgaXMgZ3JlYXRlciB0
aGFuICd1cHBlcicuIAotUEFTUyBJREJLZXlSYW5nZS5ib3VuZChET01TdHJpbmcvRGF0ZS9BcnJh
eSwgMSkgLSBBIERPTVN0cmluZywgRGF0ZSBhbmQgQXJyYXkgYXJlIGdyZWF0ZXIgdGhhbiBhIGZs
b2F0LiAKLVBBU1MgSURCS2V5UmFuZ2UuYm91bmQobm9FeGlzdGluZ1ZhcmlhYmxlLCAxIC8gZ29v
ZFZhcmlhYmxlLCBub0V4aXN0aW5nVmFyaWFibGUpIC0gbm9FeGlzdGluZ1ZhcmlhYmxlIGlzIG5v
dCBkZWZpbmVkLiAKLVBBU1MgSURCS2V5UmFuZ2UuYm91bmQodHJ1ZSwgMSkgLSBib29sZWFuIGlz
IG5vdCBhIHZhbGlkIGtleSB0eXBlLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZV9pbmNvcnJlY3QtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29y
cmVjdC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDQ5YmZmMWM2MGNmYzQwMGE4MDI5Yjk3M2FhMmZiNjUwYzgwZWJkYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotCi1QQVNTIElEQktleVJhbmdlLmJvdW5kKCkgLSBi
b3VuZCByZXF1aXJlcyBtb3JlIHRoYW4gMCBhcmd1bWVudHMuIAotUEFTUyBJREJLZXlSYW5nZS5i
b3VuZChudWxsLCBudWxsKSAtIG51bGwgcGFyYW1ldGVycyBhcmUgaW5jb3JyZWN0LiAKLVBBU1Mg
SURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCAvIG51bGwsIDEpIC0gbnVsbCBwYXJhbWV0ZXIgaXMg
aW5jb3JyZWN0LiAKLVBBU1MgSURCS2V5UmFuZ2UuYm91bmQobG93ZXIsIHVwcGVyIC8gbG93ZXIg
PiB1cHBlcikgLSAgJ2xvd2VyJyBpcyBncmVhdGVyIHRoYW4gJ3VwcGVyJy4gCi1QQVNTIElEQktl
eVJhbmdlLmJvdW5kKERPTVN0cmluZy9EYXRlL0FycmF5LCAxKSAtIEEgRE9NU3RyaW5nLCBEYXRl
IGFuZCBBcnJheSBhcmUgZ3JlYXRlciB0aGFuIGEgZmxvYXQuIAotUEFTUyBJREJLZXlSYW5nZS5i
b3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEgLyBnb29kVmFyaWFibGUsIG5vRXhpc3RpbmdWYXJp
YWJsZSkgLSBub0V4aXN0aW5nVmFyaWFibGUgaXMgbm90IGRlZmluZWQuIAotUEFTUyBJREJLZXlS
YW5nZS5ib3VuZCh0cnVlLCAxKSAtIGJvb2xlYW4gaXMgbm90IGEgdmFsaWQga2V5IHR5cGUuIAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJh
bmdlX2luY29ycmVjdC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFlMTk3OTE0MmVmZDY4MmUwNmQyZTE3Mjc1NWZkNDBiY2RjMmI2NzIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZV9pbmNvcnJlY3QtcHJpdmF0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0t
IFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAg
ICAgICAgPG1ldGEgY2hhcnNldD11dGYtOD4KLSAgICAgICAgPHRpdGxlIGlkPSdkZXNjJz5JREJL
ZXlSYW5nZSBUZXN0cyAtIEluY29ycmVjdDwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD1oZWxw
IGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2
aWV3Lmh0bWwjcmFuZ2UtY29uY2VwdCI+Ci0gICAgICAgIDxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IklmIHRoZSBsb3dlciBrZXkgaXMgZ3JlYXRlciB0aGFuIHRoZSB1cHBlciBrZXksIHRoZW4gYSBE
T01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IgbXVzdCBiZSB0aHJvd24uIj4KLSAgICAgICAg
PGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86Y2hyY2hhcmxlczY3QGdtYWlsLmNvbSIgdGl0
bGU9IkNocmlzdG9waGUgQ0hBUkxFUyI+Ci0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAg
ICAgICA8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLSAgICAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi0gICAgICAgICAgICAvLyBUeXBlRXJyb3I6IGJv
dW5kIHJlcXVpcmVzIG1vcmUgdGhhbiAwIGFyZ3VtZW50cwotICAgICAgICAgICAgdGVzdCggZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCks
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgpOwot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKCkg
LSBib3VuZCByZXF1aXJlcyBtb3JlIHRoYW4gMCBhcmd1bWVudHMuIik7Ci0KLSAgICAgICAgICAg
IC8vIE51bGwgcGFyYW1ldGVycwotICAgICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG51bGwsIG51bGwpOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKG51bGwsIG51bGwp
IC0gbnVsbCBwYXJhbWV0ZXJzIGFyZSBpbmNvcnJlY3QuIik7Ci0KLSAgICAgICAgICAgIC8vIC8v
IE51bGwgcGFyYW1ldGVyCi0gICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG51bGwsIDEpOwotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKDEsIG51
bGwgLyBudWxsLCAxKSAtIG51bGwgcGFyYW1ldGVyIGlzIGluY29ycmVjdC4iKTsKLQotICAgICAg
ICAgICAgLy8gYm91bmQgaW5jb3JyZWN0Ci0gICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICB2YXIgbG93ZXJCYWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkq
MzEpICsgNTsKLSAgICAgICAgICAgICAgICB2YXIgdXBwZXIgPSBsb3dlckJhZCAtIDE7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKGxvd2VyQmFkLCB1cHBlcik7Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9y
IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKCdi
JywgJ2EnKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0sICJJREJLZXlSYW5n
ZS5ib3VuZChsb3dlciwgdXBwZXIgLyBsb3dlciA+IHVwcGVyKSAtICAnbG93ZXInIGlzIGdyZWF0
ZXIgdGhhbiAndXBwZXInLiIKLSAgICAgICAgICAgICk7Ci0KLSAgICAgICAgICAgIHRlc3QoIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgnYScsIDEp
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRh
dGFFcnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5i
b3VuZChuZXcgRGF0ZSgpLCAxKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICAgICAgSURCS2V5UmFuZ2UuYm91bmQoWzEsIDJdLCAxKTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZChET01TdHJpbmcvRGF0ZS9BcnJheSwg
MSkgLSBBIERPTVN0cmluZywgRGF0ZSBhbmQgQXJyYXkgYXJlIGdyZWF0ZXIgdGhhbiBhIGZsb2F0
LiIpOwotCi0KLSAgICAgICAgICAgIC8vIFJlZmVyZW5jZUVycm9yOiB0aGUgdmFyaWFibGUgaXMg
bm90IGRlZmluZWQKLSAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgIHZhciBnb29kVmFyaWFibGUgPSAxOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
bmV3IFJlZmVyZW5jZUVycm9yKCksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJ
REJLZXlSYW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEpOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFJlZmVyZW5jZUVycm9yKCks
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZChnb29k
VmFyaWFibGUsIG5vRXhpc3RpbmdWYXJpYWJsZSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQobm9FeGlzdGluZ1ZhcmlhYmxlLCAxIC8gZ29v
ZFZhcmlhYmxlLCBub0V4aXN0aW5nVmFyaWFibGUpIC0gbm9FeGlzdGluZ1ZhcmlhYmxlIGlzIG5v
dCBkZWZpbmVkLiIpOwotCi0gICAgICAgICAgICAvLyBWYWxpZCB0eXBlIGtleSBlcnJvcgotICAg
ICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIElEQktleVJh
bmdlLmJvdW5kKHRydWUsIDEpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwg
IklEQktleVJhbmdlLmJvdW5kKHRydWUsIDEpIC0gYm9vbGVhbiBpcyBub3QgYSB2YWxpZCBrZXkg
dHlwZS4iKTsKLQotCi0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5
PgotICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlMTk3OTE0MmVmZDY4MmUwNmQyZTE3Mjc1NWZkNDBiY2Rj
MmI2NzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZV9pbmNvcnJlY3QuaHRt
CisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tIFN1
Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAg
ICAgPG1ldGEgY2hhcnNldD11dGYtOD4KLSAgICAgICAgPHRpdGxlIGlkPSdkZXNjJz5JREJLZXlS
YW5nZSBUZXN0cyAtIEluY29ycmVjdDwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD1oZWxwIGhy
ZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjcmFuZ2UtY29uY2VwdCI+Ci0gICAgICAgIDxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9Iklm
IHRoZSBsb3dlciBrZXkgaXMgZ3JlYXRlciB0aGFuIHRoZSB1cHBlciBrZXksIHRoZW4gYSBET01F
eGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IgbXVzdCBiZSB0aHJvd24uIj4KLSAgICAgICAgPGxp
bmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86Y2hyY2hhcmxlczY3QGdtYWlsLmNvbSIgdGl0bGU9
IkNocmlzdG9waGUgQ0hBUkxFUyI+Ci0KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgICAg
ICA8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLSAgICAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi0gICAgICAgICAgICAvLyBUeXBlRXJyb3I6IGJvdW5k
IHJlcXVpcmVzIG1vcmUgdGhhbiAwIGFyZ3VtZW50cwotICAgICAgICAgICAgdGVzdCggZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgpOwotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKCkgLSBi
b3VuZCByZXF1aXJlcyBtb3JlIHRoYW4gMCBhcmd1bWVudHMuIik7Ci0KLSAgICAgICAgICAgIC8v
IE51bGwgcGFyYW1ldGVycwotICAgICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG51bGwsIG51bGwpOwotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKG51bGwsIG51bGwpIC0g
bnVsbCBwYXJhbWV0ZXJzIGFyZSBpbmNvcnJlY3QuIik7Ci0KLSAgICAgICAgICAgIC8vIC8vIE51
bGwgcGFyYW1ldGVyCi0gICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG51bGwsIDEpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKDEsIG51bGwg
LyBudWxsLCAxKSAtIG51bGwgcGFyYW1ldGVyIGlzIGluY29ycmVjdC4iKTsKLQotICAgICAgICAg
ICAgLy8gYm91bmQgaW5jb3JyZWN0Ci0gICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICB2YXIgbG93ZXJCYWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMzEp
ICsgNTsKLSAgICAgICAgICAgICAgICB2YXIgdXBwZXIgPSBsb3dlckJhZCAtIDE7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKGxvd2VyQmFkLCB1cHBlcik7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwg
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKCdiJywg
J2EnKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5i
b3VuZChsb3dlciwgdXBwZXIgLyBsb3dlciA+IHVwcGVyKSAtICAnbG93ZXInIGlzIGdyZWF0ZXIg
dGhhbiAndXBwZXInLiIKLSAgICAgICAgICAgICk7Ci0KLSAgICAgICAgICAgIHRlc3QoIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgnYScsIDEpOwot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFF
cnJvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3Vu
ZChuZXcgRGF0ZSgpLCAxKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAg
ICAgSURCS2V5UmFuZ2UuYm91bmQoWzEsIDJdLCAxKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZChET01TdHJpbmcvRGF0ZS9BcnJheSwgMSkg
LSBBIERPTVN0cmluZywgRGF0ZSBhbmQgQXJyYXkgYXJlIGdyZWF0ZXIgdGhhbiBhIGZsb2F0LiIp
OwotCi0KLSAgICAgICAgICAgIC8vIFJlZmVyZW5jZUVycm9yOiB0aGUgdmFyaWFibGUgaXMgbm90
IGRlZmluZWQKLSAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
IHZhciBnb29kVmFyaWFibGUgPSAxOwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3
IFJlZmVyZW5jZUVycm9yKCksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJL
ZXlSYW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEpOwotICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFJlZmVyZW5jZUVycm9yKCksIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZChnb29kVmFy
aWFibGUsIG5vRXhpc3RpbmdWYXJpYWJsZSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQobm9FeGlzdGluZ1ZhcmlhYmxlLCAxIC8gZ29vZFZh
cmlhYmxlLCBub0V4aXN0aW5nVmFyaWFibGUpIC0gbm9FeGlzdGluZ1ZhcmlhYmxlIGlzIG5vdCBk
ZWZpbmVkLiIpOwotCi0gICAgICAgICAgICAvLyBWYWxpZCB0eXBlIGtleSBlcnJvcgotICAgICAg
ICAgICAgdGVzdCggZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdl
LmJvdW5kKHRydWUsIDEpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgIklE
QktleVJhbmdlLmJvdW5kKHRydWUsIDEpIC0gYm9vbGVhbiBpcyBub3QgYSB2YWxpZCBrZXkgdHlw
ZS4iKTsKLQotCi0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5Pgot
ICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmN2NiYmQzZDNkN2M5ZGUwYWUyMmE3N2E2
NTM5ZGMzZWIwYzlmOTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURC
T2JqZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2l0aCBhbiBpbmxpbmUga2V5ICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2Y3Y2JiZDNkM2Q3YzlkZTBhZTIyYTc3YTY1MzlkYzNlYjBjOWY5Ni4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZC1wcml2YXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0
b3JlLmFkZCgpIC0gYWRkIHdpdGggYW4gaW5saW5lIGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThkZjU4NGQ4
YzI5YmMyMjI5OWUzNjdjNzgwZTk2YWIxZTNiMTA4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5J
REJPYmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3aXRoIGFuIGlubGluZSBrZXkgPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAg
cmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwotCi0g
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0
b3JlIikKLSAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAg
ICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQua2V5KTsKLSAgICAgICAgICAgIHQu
ZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4
ZGY1ODRkOGMyOWJjMjIyOTllMzY3Yzc4MGU5NmFiMWUzYjEwOGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURC
T2JqZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2l0aCBhbiBpbmxpbmUga2V5IDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJl
Y29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLQotICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9y
ZSIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAg
ICAgICAgICAgLmdldChyZWNvcmQua2V5KTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3JkLmtleSk7Ci0gICAgICAgICAgICB0LmRv
bmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTU1MmEzOTdjNWI2NDEwMTY5YjE3ZGU5MjdmYjY1ZjJjNWUyNzc1
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3Jl
LmFkZCgpIC0gQXR0ZW1wdCB0byBjYWxsICdhZGQnIHdpdGhvdXQgYW4ga2V5IHBhcmFtZXRlciB3
aGVuIHRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
MC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTAtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU1NTJhMzk3YzViNjQxMDE2OWIxN2RlOTI3ZmI2NWYyYzVlMjc3
NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMC1wcml2YXRl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9i
amVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBjYWxsICdhZGQnIHdpdGhvdXQgYW4ga2V5IHBh
cmFtZXRlciB3aGVuIHRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzICAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQxMC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDhmNzE2ZDMxZGJmYmQ5ZGRjN2Y4YTk0YTk4NjExNzYwYzQ3ZjdmYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLXByaXZhdGUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBj
YWxsICdhZGQnIHdpdGhvdXQgYW4ga2V5IHBhcmFtZXRlciB3aGVuIHRoZSBvYmplY3Qgc3RvcmUg
dXNlcyBvdXQtb2YtbGluZSBrZXlzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRi
LAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJk
YXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0KLSAgICAgICAgdmFyIHJxLAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIik7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwK
LSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOyB9KTsK
LQotICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRvbmUo
KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEw
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTAuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGY3MTZkMzFkYmZiZDlk
ZGM3ZjhhOTRhOTg2MTE3NjBjNDdmN2ZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMTAuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUu
YWRkKCkgLSBBdHRlbXB0IHRvIGNhbGwgJ2FkZCcgd2l0aG91dCBhbiBrZXkgcGFyYW1ldGVyIHdo
ZW4gdGhlIG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMgPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVj
b3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgcnEsCi0gICAgICAgICAgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICBhc3NlcnRf
dGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3Rv
cmUuYWRkKHJlY29yZCk7IH0pOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5l
ZCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NzI4YTE0NDQwMDQ2MjQ3ODU5MjIwM2FlZTVlZGI0N2Mx
NmI1OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RT
dG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBr
ZXkgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDExLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY3MjhhMTQ0NDAwNDYyNDc4NTkyMjAzYWVlNWVkYjQ3
YzE2YjU5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1Mg
SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB3aGVyZSB0aGUg
cmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5
ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxMS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZWU2YTRlNDBiYTIxZTU5MGM3YThmMGIzNGY0MTJmYzg1NWIzYzcw
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLXByaXZhdGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1w
dCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtleSBkb2VzIG5vdCBtZWV0IHRo
ZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAg
IHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtleTog
eyB2YWx1ZTogMSB9LCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgcnEsCi0gICAgICAg
ICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJr
ZXkiIH0pOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAg
ICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkKTsgfSk7Ci0KLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsK
LTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU2YTRlNDBiYTIxZTU5MGM3YThmMGIzNGY0
MTJmYzg1NWIzYzcwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDExLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0
ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtleSBkb2VzIG5vdCBtZWV0
IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
ICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtl
eTogeyB2YWx1ZTogMSB9LCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgcnEsCi0gICAg
ICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAg
ICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkKTsgfSk7Ci0KLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAg
fTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDEyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBmOGVl
MTlhMjlkZDE5Y2E2OTJkMWMyMjQ3ZTAzNzFiMmQzNWUzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQg
YSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkICAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQxMi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTItcHJpdmF0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZjhlZTE5YTI5ZGQxOWNhNjkyZDFjMjI0
N2UwMzcxYjJkMzVlMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQxMi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hl
cmUgdGhlIHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
Mi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2FkZDEyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTE0Y2RhN2I1NTgyYzBlYTViZDc5ZWZlYjE2NjEyZGU2OTI0YjEyMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEyLXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNv
cmQgd2hlcmUgdGhlIHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkIDwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAg
ICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIHJxLAotICAgICAg
ICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAg
ICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7IH0pOwotCi0gICAgICAg
IGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH07
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTIuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMi5odG0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxNGNkYTdiNTU4MmMwZWE1YmQ3OWVmZWIx
NjYxMmRlNjkyNGIxMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQxMi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0
dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBpbi1saW5lIGtleSBpcyBu
b3QgZGVmaW5lZCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQg
PSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
ICAgIHZhciBycSwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0
YUVycm9yIiwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLmFkZChyZWNv
cmQpOyB9KTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAg
ICB0LmRvbmUoKTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2FkZDEzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1MDcxNDE3ZWIzZmUwYTY1YTAwYjNlOTg1YzhiZmJkM2EwN2Y4YTY5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkg
LSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB3aGVyZSB0aGUgb3V0IG9mIGxpbmUga2V5IHByb3Zp
ZGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQxMy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNzE0MTdlYjNmZTBhNjVhMDBiM2U5ODVjOGJmYmQz
YTA3ZjhhNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhl
IG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBv
ZiBhIHZhbGlkIGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy1wcml2YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmNGIzMGQzYWZjMTgyN2ExMTI1MTgwODcw
Nzg5NTg5YWI4MjY2NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQxMy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5h
ZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRoZSBvdXQgb2YgbGluZSBrZXkg
cHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgp
LAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgcnEsCi0g
ICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCwgeyB2YWx1ZTogMSB9KTsgfSk7Ci0KLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsK
LTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEzLmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y0YjMwZDNhZmMxODI3YTExMjUxODA4NzA3
ODk1ODlhYjgyNjY1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDEzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0
ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBk
b2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICBy
ZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBycSwKLSAgICAgICAgICBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotCi0gICAgICAgIGFzc2Vy
dF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpT
dG9yZS5hZGQocmVjb3JkLCB7IHZhbHVlOiAxIH0pOyB9KTsKLQotICAgICAgICBhc3NlcnRfZXF1
YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9OwotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTQtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOWFiMzc2YzAyZjZkOTNhZDY2
NTNiZTUzZGM0NjM1NGI0NTM5N2ZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkMTQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBZGQgYSByZWNvcmQgd2hlcmUgYSB2YWx1ZSBi
ZWluZyBpbmRleGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5
ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxNC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTQtcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YWIzNzZjMDJmNmQ5M2FkNjY1M2Jl
NTNkYzQ2MzU0YjQ1Mzk3ZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQxNC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gQWRkIGEgcmVjb3JkIHdoZXJlIGEgdmFs
dWUgYmVpbmcgaW5kZXhlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlk
IGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNC1wcml2YXRlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YTFjNzQxMjI2YmVmZWZhYjg3MmQ1MmE0MDMwODQ2NjE3
MTkxYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNC1wcml2
YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIEFk
ZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVldCB0aGUg
Y29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2
YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBrZXk6IDEs
IGluZGV4ZWRQcm9wZXJ0eTogeyBwcm9wZXJ0eTogImRhdGEiIH0gfTsKLQotICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBycSwK
LSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5
UGF0aDogImtleSIgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImluZGV4ZWRQcm9wZXJ0eSIpOwotCi0gICAgICAgIHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7
Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUocnEgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KTsKLSAgICAg
ICAgcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAg
ICAgICAgfQotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQxNC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YTFjNzQxMjI2
YmVmZWZhYjg3MmQ1MmE0MDMwODQ2NjE3MTkxYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQxNC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RT
dG9yZS5hZGQoKSAtIEFkZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9l
cyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVj
b3JkID0geyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogeyBwcm9wZXJ0eTogImRhdGEiIH0gfTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0g
ICAgICAgIHZhciBycSwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwotCi0gICAgICAgIHJxID0gb2JqU3Rv
cmUuYWRkKHJlY29yZCk7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUocnEgaW5zdGFuY2VvZiBJREJS
ZXF1ZXN0KTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICB0LmRvbmUoKTsKLSAgICAgICAgfQotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1MTA0Mjk3MzE4MWUwZTRiYTAxYmQzZTFlMDA5ZDI1YTU3
ZjIxMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RT
dG9yZS5hZGQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9u
Z3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvciAg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMTUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE1LXByaXZhdGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTEwNDI5NzMxODFlMGU0YmEwMWJkM2Ux
ZTAwOWQyNWE1N2YyMTAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElE
Qk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhy
b3cgUmVhZE9ubHlFcnJvciAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNS1wcml2YXRlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMjJjYTdkYTBiMThjZjZjMDU0YTE3
YmU3N2EzMjNkZGIyZmQ2MWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQxNS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9y
ZS5hZGQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3Mg
dG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvciA8L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3Jl
LWFkZC1JREJSZXF1ZXN0LWFueS12YWx1ZS1hbnkta2V5Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4K
LSAgICB2YXIgZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24g
KGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgfQotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4
biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpOwotICAgICAgICB2YXIgb3N0b3JlID0gdHhuLm9i
amVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKLSAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICAg
ICAgICAgIG9zdG9yZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8wIn0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQxNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2FkZDE1Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMyMmNh
N2RhMGIxOGNmNmMwNTRhMTdiZTc3YTMyM2RkYjJmZDYxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE1Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9i
amVjdFN0b3JlLmFkZCgpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUg
YmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVy
cm9yIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRw
Oi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2Jq
ZWN0U3RvcmUtYWRkLUlEQlJlcXVlc3QtYW55LXZhbHVlLWFueS1rZXkiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08
c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAg
ICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKLSAg
ICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAg
ICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIik7Ci0gICAgICAgIHZhciBvc3RvcmUg
PSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgIHQuc3RlcChmdW5jdGlvbigpewot
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9ubHlFcnJvciIsIGZ1bmN0aW9uKCl7Ci0g
ICAgICAgICAgICAgICAgb3N0b3JlLmFkZCh7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2Ny
aXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmZTE1OWQxMmQ4MDk5ZGQzNTc4NWYzYjNmYzIzMDU4NGQxYjNi
YTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3Rv
cmUuYWRkKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBs
ZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRl
RXJyb3IgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDE2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNi1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUxNTlkMTJkODA5OWRkMzU3
ODVmM2IzZmMyMzA1ODRkMWIzYmEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2FkZDE2LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3Jl
IGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE2LXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTYtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDEyZTA0
M2Y3MmE3ZmRkMzJjMGY2Y2I4YjQ2OTU2YzAxZWYwMjE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRl
bGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5
cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVzdC1hbnktdmFsdWUtYW55LWtl
eSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICBvc3RvcmUsCi0g
ICAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAg
ICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgb3N0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgICAgIGRiLmRlbGV0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHQuc3RlcChmdW5jdGlvbigpewotICAgICAgICAg
ICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpewotICAgICAg
ICAgICAgICAgIG9zdG9yZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8wIn0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQxNi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDE2Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQx
MmUwNDNmNzJhN2ZkZDMyYzBmNmNiOGI0Njk1NmMwMWVmMDIxNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE2Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDMxICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmFkZCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVk
LCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIElu
dmFsaWRTdGF0ZUVycm9yIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVs
IiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I3dpZGwtSURCT2JqZWN0U3RvcmUtYWRkLUlEQlJlcXVlc3QtYW55LXZhbHVlLWFueS1rZXkiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgb3N0b3JlLAotICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBkYi5kZWxldGVPYmpl
Y3RTdG9yZSgic3RvcmUiKTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uIChldmVudCkgewotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAg
ICAgICBvc3RvcmUuYWRkKHsgcEtleTogInByaW1hcnlLZXlfMCJ9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1OGVlM2I2Yzg3NDE4YzI5NGQwODZlNjM5YTU2NGM4MTljOWIxNDgwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIGFk
ZCB3aXRoIGFuIG91dC1vZi1saW5lIGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMi1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NThlZTNiNmM4NzQxOGMyOTRkMDg2ZTYzOWE1NjRjODE5YzliMTQ4MC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIGFk
ZCB3aXRoIGFuIG91dC1vZi1saW5lIGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMi1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDItcHJp
dmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTBhMDlkNThkN2UyZDEz
OWE0N2NmY2U4NGNlNzRkMGJjMDNlMzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5hZGQoKSAtIGFkZCB3aXRoIGFuIG91dC1vZi1saW5lIGtleSA8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICBr
ZXkgPSAxLAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0KLSAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZCwga2V5KTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0g
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAg
ICAgLmdldChrZXkpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3Bl
cnR5LCByZWNvcmQucHJvcGVydHkpOwotCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAg
fSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQy
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMGEwOWQ1OGQ3ZTJkMTM5
YTQ3Y2ZjZTg0Y2U3NGQwYmMwM2UzNzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFk
ZCgpIC0gYWRkIHdpdGggYW4gb3V0LW9mLWxpbmUga2V5IDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIGtleSA9IDEsCi0g
ICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3JkLCBrZXkpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAuZ2V0KGtl
eSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29y
ZC5wcm9wZXJ0eSk7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9
OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODlmNDc4ZTE2
MWE4NzQxMGJkZmE0NTRhNmFiYjA4MTVkNWJmZGRhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSByZWNvcmQgd2l0aCBzYW1lIGtl
eSBhbHJlYWR5IGV4aXN0cyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1wcml2
YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODlmNDc4ZTE2
MWE4NzQxMGJkZmE0NTRhNmFiYjA4MTVkNWJmZGRhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIHJlY29yZCB3aXRo
IHNhbWUga2V5IGFscmVhZHkgZXhpc3RzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQzLXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlMGQ0MGEyZThkOWJiMWNm
MGY4NTZjMDMzMmFhZWFhMDA3NzY0ODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQzLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVj
dFN0b3JlLmFkZCgpIC0gcmVjb3JkIHdpdGggc2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0p
OwotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLQotICAgICAgICB2YXIgcnEgPSBvYmpT
dG9yZS5hZGQocmVjb3JkKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gZmFpbCh0LCAic3VjY2Vz
cyBvbiBhZGRpbmcgZHVwbGljYXRlIHJlY29yZCIpCi0KLSAgICAgICAgcnEub25lcnJvciA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOwotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhycS5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIik7Ci0gICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudHlwZSwgImVycm9yIik7Ci0KLSAgICAgICAgICAgIGUucHJldmVudERlZmF1
bHQoKTsKLSAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIH0pOwotICAg
IH07Ci0KLSAgICAvLyBEZWZlciBkb25lLCBnaXZpbmcgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRv
IHJ1bgotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB0LmRv
bmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
My5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTBkNDBhMmU4ZDliYjFj
ZjBmODU2YzAzMzJhYWVhYTAwNzc2NDgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMy5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5h
ZGQoKSAtIHJlY29yZCB3aXRoIHNhbWUga2V5IGFscmVhZHkgZXhpc3RzIDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJl
Y29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0KLSAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRk
KHJlY29yZCk7Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9IGZhaWwodCwgInN1Y2Nlc3Mgb24gYWRk
aW5nIGR1cGxpY2F0ZSByZWNvcmQiKQotCi0gICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9y
Lm5hbWUsICJDb25zdHJhaW50RXJyb3IiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocnEu
ZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnR5cGUsICJlcnJvciIpOwotCi0gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0g
ICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICB9KTsKLSAgICB9OwotCi0g
ICAgLy8gRGVmZXIgZG9uZSwgZ2l2aW5nIHJxLm9uc3VjY2VzcyBhIGNoYW5jZSB0byBydW4KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdC5kb25lKCk7Ci0g
ICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQ0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjMyYTA5
YTMwODI0ZWE0OGI3OTY5Yzk4YjU1NmQ0MmQyMTE2MjcxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2hlcmUgYW4gaW5k
ZXggaGFzIHVuaXF1ZTp0cnVlIHNwZWNpZmllZCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNC1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkNC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjMyYTA5YTMwODI0ZWE0OGI3OTY5Yzk4YjU1NmQ0MmQyMTE2MjcxMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAt
IGFkZCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRydWUgc3BlY2lmaWVkICAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQ0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkNC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDgyMzRlYjcxMGQ2ZDNhYjY5MzE0ZTk2MTYwZDIxYzBhOTY5OWQwYzQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdoZXJlIGFuIGluZGV4IGhh
cyB1bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHBy
b3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpMSIsICJwcm9wZXJ0eSIsIHsgdW5pcXVlOiB0cnVlIH0pOwotICAgICAgICBv
YmpTdG9yZS5hZGQocmVjb3JkKTsKLQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5hZGQocmVj
b3JkKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gZmFpbCh0LCAic3VjY2VzcyBvbiBhZGRpbmcg
ZHVwbGljYXRlIGluZGV4ZWQgcmVjb3JkIikKLQotICAgICAgICBycS5vbmVycm9yID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhycS5lcnJvci5u
YW1lLCAiQ29uc3RyYWludEVycm9yIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3IiKTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50eXBlLCAiZXJyb3IiKTsKLQotICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgp
OwotICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgfSk7Ci0gICAgfTsK
LQotICAgIC8vIERlZmVyIGRvbmUsIGdpdmluZyBhIHNwdXJpb3VzIHJxLm9uc3VjY2VzcyBhIGNo
YW5jZSB0byBydW4KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2FkZDQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQ0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIzNGViNzEw
ZDZkM2FiNjkzMTRlOTYxNjBkMjFjMGE5Njk5ZDBjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0
U3RvcmUuYWRkKCkgLSBhZGQgd2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1ZTp0cnVlIHNwZWNpZmll
ZCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190
ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OwotCi0g
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3Jl
bWVudDogdHJ1ZSB9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImkxIiwgInByb3Bl
cnR5IiwgeyB1bmlxdWU6IHRydWUgfSk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwot
Ci0gICAgICAgIHZhciBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgICAgICBycS5vbnN1
Y2Nlc3MgPSBmYWlsKHQsICJzdWNjZXNzIG9uIGFkZGluZyBkdXBsaWNhdGUgaW5kZXhlZCByZWNv
cmQiKQotCi0gICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3Ii
KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgIkNvbnN0
cmFpbnRFcnJvciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJlcnJvciIp
OwotCi0gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICBlLnN0b3BQ
cm9wYWdhdGlvbigpOwotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgLy8gRGVmZXIgZG9uZSwg
Z2l2aW5nIGEgc3B1cmlvdXMgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRvIHJ1bgotICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjQ3Nzg3M2M3Zjli
ODVjM2E0MTIwMGI3OWJjMjRjNWM2OWE4ZGU3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRo
IGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdm
NDc3ODczYzdmOWI4NWMzYTQxMjAwYjc5YmMyNGM1YzY5YThkZTcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBvYmpl
Y3Qgc3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkNS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA1NWUyMTU4Y2NhMjRkZDEzNjlmOGE1YzA4NDcwZWFjMTg4M2Y1ZDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGgg
aXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBk
YiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IHRlc3Q6IHsgb2Jq
OiB7IGtleTogMSB9IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiIH0p
OwotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9u
KCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAg
ICAgICAgICAgICAgICAgLmdldChyZWNvcmQudGVzdC5vYmoua2V5KTsKLQotICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKLQotICAg
ICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwNTVlMjE1OGNjYTI0ZGQxMzY5ZjhhNWMwODQ3MGVhYzE4ODNmNWQ3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS5odG0KKysrIC9kZXYvbnVs
bApAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRo
IGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyB0ZXN0OiB7IG9i
ajogeyBrZXk6IDEgfSB9LCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiB9
KTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAg
ICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLnRlc3Qub2JqLmtleSk7Ci0KLSAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7Ci0KLSAg
ICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ2LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2QwNTY0M2ZlOTJjODA1ZmY3MTgzMzM3MmRl
M2YyNzkxMDFjODQ1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURC
T2JqZWN0U3RvcmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBpbmxpbmUga2V5cyAgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkNi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2QwNTY0M2ZlOTJjODA1ZmY3MTgzMzM3MmRlM2YyNzkx
MDFjODQ1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYtcHJp
dmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJ
REJPYmplY3RTdG9yZS5hZGQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzICAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQ2LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkNi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYxMjNmZjU1YTNmYjVkNDcwMDg2MGM2Mzg3ZjNhYzg3NmVmOGEwOWIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ2LXByaXZhdGUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBh
bmQgaW5saW5lIGtleXMgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0s
Ci0gICAgICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07Ci0KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiwgYXV0b0lu
Y3JlbWVudDogdHJ1ZSB9KTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwot
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAg
ICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgaWYgKGN1cnNv
cikgewotICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLmtleSk7
Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVh
bF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQ2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkNi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGYxMjNmZjU1YTNmYjVkNDcwMDg2MGM2Mzg3ZjNhYzg3NmVmOGEwOWIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ2Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQ3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgp
LAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCi0gICAgICBleHBlY3RlZF9r
ZXlzID0gWyAxLCAyLCAzLCA0IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiwgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsK
LQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZCk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAgICAgICAgIHJxID0gZGIudHJh
bnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIp
Ci0gICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAgICAg
ICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLmtleSk7Ci0gICAgICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9r
ZXlzKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg3MzQ1MTVkYjFjZDQ0ZDBkZTU3OWNlYjExMTg1NDZmM2NlNjIxYWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3Jl
bWVudCBhbmQgb3V0LW9mLWxpbmUga2V5cyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNy1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkNy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODczNDUxNWRiMWNkNDRkMGRlNTc5Y2ViMTExODU0NmYzY2U2MjFhZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDctcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIGF1
dG9JbmNyZW1lbnQgYW5kIG91dC1vZi1saW5lIGtleXMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDctcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQ3LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWUxNDU1YzFl
YjRkNzBiY2ZkNWIzNmM1ZDI3Mzk2ZTRhZjI3ZWNkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDctcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQtb2YtbGluZSBrZXlz
IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKLSAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAotICAgICAgZXhwZWN0
ZWRfa2V5cyA9IFsgMSwgMiwgMywgNCBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKLQotICAgICAgICBv
YmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsK
LSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0
b3JlIikKLSAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKLQotICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAgICAgICAgIGFjdHVhbF9r
ZXlzLnB1c2goY3Vyc29yLmtleSk7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKLSAgICAgICAgICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNy5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlMTQ1NWMxZWI0ZDcwYmNmZDViMzZjNWQyNzM5NmU0YWYy
N2VjZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3Lmh0bQor
KysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVu
dCBhbmQgb3V0LW9mLWxpbmUga2V5cyA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBk
YiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAi
ZGF0YSIgfSwKLSAgICAgIGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6
IHRydWUgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQpOwotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKLSAgICAgICAgICBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAg
ICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkpOwotICAgICAgICAgICAg
ICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0
ZWRfa2V5cyk7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5MzM5ZjQ2OGZlMWFlMzY2NTljMGE4NThkZmUyYmZjZWRiMDg3Zjc0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVj
dCBzdG9yZSBoYXMgYXV0b0luY3JlbWVudDp0cnVlIGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2Jq
ZWN0IGF0dHJpYnV0ZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC1wcml2YXRl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMzOWY0NjhmZTFh
ZTM2NjU5YzBhODU4ZGZlMmJmY2VkYjA4N2Y3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDgtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVjdCBzdG9yZSBo
YXMgYXV0b0luY3JlbWVudDp0cnVlIGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJp
YnV0ZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkOC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDgtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlYzQ2N2I5NWRjNjRhODE5Y2NjZTdiMWQxODA2M2Q3ZjQ2YjRm
OTBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC1wcml2YXRl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVj
dCBzdG9yZSBoYXMgYXV0b0luY3JlbWVudDp0cnVlIGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2Jq
ZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAg
IHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwK
LSAgICAgIGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKLQotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXki
LCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwotCi0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQp
OwotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZCk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgIH07Ci0KLSAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0g
W10sCi0gICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBp
ZiAoY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3IudmFs
dWUudGVzdC5vYmoua2V5KTsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMpOwotICAgICAgICAgICAgICAg
IHQuZG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDguaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4Lmh0bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZWM0NjdiOTVkYzY0YTgxOWNjY2U3YjFkMTgwNjNkN2Y0NmI0Zjkw
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDguaHRtCisrKyAv
ZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBvYmplY3Qgc3RvcmUgaGFz
IGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1
dGUgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNf
dGVzdCgpLAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCi0gICAgICBleHBl
Y3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiwgYXV0b0luY3Jl
bWVudDogdHJ1ZSB9KTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAgICAg
ICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgaWYgKGN1cnNvcikg
ewotICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLnRlc3Qub2Jq
LmtleSk7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxZWVlYjRjM2U5OWMxY2QxYmNkMjA5ZGU5ZjljMWM3
ZGQ2MTU0M2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVj
dFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgdGhhdCBkb2VzIG5vdCBtZWV0
IHRoZSBjb25zdHJhaW50cyBvZiBhbiBvYmplY3Qgc3RvcmUncyBpbmxpbmUga2V5IHJlcXVpcmVt
ZW50cyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkOS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS1wcml2YXRlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjFlZWViNGMzZTk5YzFjZDFiY2Qy
MDlkZTlmOWMxYzdkZDYxNTQzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2FkZDktcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3Jk
IHRoYXQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3Mg
aW5saW5lIGtleSByZXF1aXJlbWVudHMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDktcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5LXByaXZh
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzkzMDRhMDMxMGE3MDk3MWVj
YmY1NjY4YzA5ZThlM2ExY2ZiZDBiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2FkZDktcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0
U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQg
dGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1l
bnRzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIHQgPSBhc3luY190ZXN0KCksCi0g
ICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgdmFyIHJxLAotICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
LAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBr
ZXlQYXRoOiAia2V5IiB9KTsKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAot
ICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCwgMSk7IH0p
OwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7Ci0gICAgICAgIHQuZG9u
ZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
OS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDkuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTMwNGEwMzEwYTcwOTcx
ZWNiZjU2NjhjMDllOGUzYTFjZmJkMGIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkOS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5h
ZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHRoYXQgZG9lcyBub3QgbWVldCB0aGUgY29u
c3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3MgaW5saW5lIGtleSByZXF1aXJlbWVudHMgPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJl
Y29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICB2YXIgcnEsCi0gICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQsCi0gICAg
ICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAg
ICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsgfSk7Ci0KLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKLSAgICAgICAgdC5kb25lKCk7Ci0g
ICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NsZWFyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk0
ZTg3NzkyYTI4YmE5MGY4NzJmNjQ0NTFhZGM4ZTQ3MjVkYWUyNS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBWZXJpZnkgY2xl
YXIgcmVtb3ZlcyBhbGwgcmVjb3JkcyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ns
ZWFyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
OTRlODc3OTJhMjhiYTkwZjg3MmY2NDQ1MWFkYzhlNDcyNWRhZTI1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5jbGVhcigpIC0g
VmVyaWZ5IGNsZWFyIHJlbW92ZXMgYWxsIHJlY29yZHMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyLXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y2xlYXItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTkxODBh
ODBlZDYwNzFjOTMwZTkzMjM1Yjg1ZGQyZTc3MmI3ZTVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIFZlcmlmeSBjbGVhciByZW1vdmVzIGFsbCByZWNv
cmRzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5j
X3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUuYWRkKHsgcHJv
cGVydHk6ICJkYXRhIiB9KTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHsgc29tZXRoaW5nX2RpZmZl
cmVudDogIll1cCwgdG90YWxseSBkaWZmZXJlbnQiIH0pOwotICAgICAgICBvYmpTdG9yZS5hZGQo
MTIzNCk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChbMSwgMiwgMTIzNF0pOwotCi0gICAgICAgIG9i
alN0b3JlLmNsZWFyKCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0gICAg
ICAgIH0pOwotICAgIH07Ci0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
ewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIG51bGwsICdjdXJz
b3InKTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9OwotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIuaHRtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTkxODBhODBlZDYwNzFjOTMwZTkzMjM1Yjg1ZGQyZTc3
MmI3ZTVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIuaHRt
CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIFZlcmlmeSBj
bGVhciByZW1vdmVzIGFsbCByZWNvcmRzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFy
IGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0KLSAgICAg
ICAgb2JqU3RvcmUuYWRkKHsgcHJvcGVydHk6ICJkYXRhIiB9KTsKLSAgICAgICAgb2JqU3RvcmUu
YWRkKHsgc29tZXRoaW5nX2RpZmZlcmVudDogIll1cCwgdG90YWxseSBkaWZmZXJlbnQiIH0pOwot
ICAgICAgICBvYmpTdG9yZS5hZGQoMTIzNCk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChbMSwgMiwg
MTIzNF0pOwotCi0gICAgICAgIG9ialN0b3JlLmNsZWFyKCkub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQsIHVuZGVmaW5lZCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLQotICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigi
c3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQsIG51bGwsICdjdXJzb3InKTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAg
ICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ns
ZWFyMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NsZWFyMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI4OGMwMjhjMjRjNWIyYTY2NTU0Yzg0MGZjMGQxMjgxMTJkNmUwNDkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY2xlYXIoKSAt
IGNsZWFyIHJlbW92ZXMgYWxsIHJlY29yZHMgZnJvbSBhbiBpbmRleCAgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIy
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jbGVhcjItcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI4OGMwMjhjMjRjNWIyYTY2NTU0Yzg0MGZjMGQxMjgxMTJkNmUw
NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjItcHJpdmF0
ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJP
YmplY3RTdG9yZS5jbGVhcigpIC0gY2xlYXIgcmVtb3ZlcyBhbGwgcmVjb3JkcyBmcm9tIGFuIGlu
ZGV4ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhcjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjItcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTEwY2JkMWI1YzM5YjFmN2ViMWNlNWFmZGJhOWFlNGM0
N2JkNTQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLXBy
aXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmNsZWFyKCkg
LSBjbGVhciByZW1vdmVzIGFsbCByZWNvcmRzIGZyb20gYW4gaW5kZXggPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDog
dHJ1ZSB9KTsKLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQ
cm9wZXJ0eSIpOwotCi0gICAgICAgIG9ialN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogImRh
dGEiIH0pOwotICAgICAgICBvYmpTdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVydHk6ICJ5bywgbWFu
Iiwgc29tZXRoaW5nX2RpZmZlcmVudDogIll1cCwgdG90YWxseSBkaWZmZXJlbnQiIH0pOwotICAg
ICAgICBvYmpTdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVydHk6IDEyMzQgfSk7Ci0gICAgICAgIG9i
alN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogWzEsIDIsIDEyMzRdIH0pOwotICAgICAgICBv
YmpTdG9yZS5hZGQoMTIzNCk7Ci0KLSAgICAgICAgb2JqU3RvcmUuY2xlYXIoKS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFu
c2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUi
KQotICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAgICAgICAgICAg
IC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIG51
bGwsICdjdXJzb3InKTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9
OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi5o
dG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlMTBjYmQxYjVjMzliMWY3ZWIxY2U1
YWZkYmE5YWU0YzQ3YmQ1NDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jbGVhcjIuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIo
KSAtIGNsZWFyIHJlbW92ZXMgYWxsIHJlY29yZHMgZnJvbSBhbiBpbmRleCA8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50
OiB0cnVlIH0pOwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhl
ZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgb2JqU3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAi
ZGF0YSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogInlvLCBt
YW4iLCBzb21ldGhpbmdfZGlmZmVyZW50OiAiWXVwLCB0b3RhbGx5IGRpZmZlcmVudCIgfSk7Ci0g
ICAgICAgIG9ialN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogMTIzNCB9KTsKLSAgICAgICAg
b2JqU3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiBbMSwgMiwgMTIzNF0gfSk7Ci0gICAgICAg
IG9ialN0b3JlLmFkZCgxMjM0KTsKLQotICAgICAgICBvYmpTdG9yZS5jbGVhcigpLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCi0gICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwg
bnVsbCwgJ2N1cnNvcicpOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAg
IH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY2xlYXIzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlk
MzBmODNkZDc0NDgzZjQ2NjFiYzAxNjFjYzk4MWNkZGZiOWI5ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5jbGVhcigpIC0gSWYgdGhlIHRy
YW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0
IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjMtcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTlkMzBmODNkZDc0NDgzZjQ2NjFiYzAxNjFjYzk4MWNkZGZiOWI5ZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0
b3JlLmNsZWFyKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxv
bmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3Ig
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ1NTA5YWM5NjE2YjFiMzRmMWE3ZjNhYTU3YmIwMmFkZWMwODhl
ZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjMtcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIElm
IHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBt
b2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvciA8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNsZWFyLUlEQlJl
cXVlc3QiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxk
aXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKLSAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwK
LSAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6
InBLZXkifSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAg
ICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpOwotICAgICAgICB2YXIgb3N0b3Jl
ID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsK
LSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5jdGlvbigpewot
ICAgICAgICAgICAgICAgIG9zdG9yZS5jbGVhcigpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjMu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
bGVhcjMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTUwOWFjOTYxNmIxYjM0
ZjFhN2YzYWE1N2JiMDJhZGVjMDg4ZWRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY2xlYXIzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmNsZWFyKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdz
IHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3IgPC90
aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9y
ZS1jbGVhci1JREJSZXF1ZXN0Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0g
ICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJp
bWFyeUtleV8wIn0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1d
OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2
ZW50KSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKTsKLSAgICAg
ICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgdC5zdGVw
KGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJSZWFkT25seUVycm9yIiwg
ZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAgICBvc3RvcmUuY2xlYXIoKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWU1NmZmOGVlMDFjNzVhNDMyNDk4ZTBhM2QxNDYwMDg5YTA3MTBhYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5j
bGVhcigpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhcjQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU1NmZmOGVlMDFjNzVhNDMy
NDk4ZTBhM2QxNDYwMDg5YTA3MTBhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NsZWFyNC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBJZiB0aGUgb2JqZWN0IHN0
b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9N
RXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NsZWFyNC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3
NTI1MmIwNGM5MzI2MzgwZjc2MTRlYTZiOGQ1M2NiYWFkNmUwMjUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFz
IGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRp
b24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNsZWFyLUlEQlJlcXVlc3QiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgb3N0b3JlLAotICAgICAgICB0
ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBkYi5kZWxldGVPYmplY3RT
dG9yZSgic3RvcmUiKTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
IChldmVudCkgewotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAg
ICBvc3RvcmUuY2xlYXIoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAg
dC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0Lmh0bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc1MjUyYjA0YzkzMjYzODBmNzYxNGVhNmI4ZDUz
Y2JhYWQ2ZTAyNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFy
NC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5jbGVhcigpIC0gSWYg
dGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVz
dCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIDwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVs
LmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5k
ZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY2xl
YXItSURCUmVxdWVzdCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAg
ICBvc3RvcmUsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2
ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgb3N0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAg
ICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgIH0KLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHQuc3RlcChmdW5jdGlvbigp
ewotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlv
bigpewotICAgICAgICAgICAgICAgIG9zdG9yZS5jbGVhcigpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
b3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NvdW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTQzNDRjOTVmYWI0NjNhOTJlOTEyZWMwYjRmMjc0NmRmY2U3NzUwZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmNvdW50KCkgLSBy
ZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgb2JqZWN0IHN0b3JlICAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jb3VudC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MzQ0Yzk1ZmFiNDYzYTkyZTkxMmVjMGI0ZjI3NDZk
ZmNlNzc1MGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBp
biB0aGUgb2JqZWN0IHN0b3JlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50LXByaXZhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxZjA2YWQ5NDI3NDM3NjhjYzk4
ODY5MDBiMDEwNzk4ZWE0NTYyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NvdW50LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJPYmplY3RTdG9y
ZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIG9iamVjdCBz
dG9yZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9y
dC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7
Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAg
ICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgICAgICAgICAgc3RvcmUuYWRk
KHsgZGF0YTogImRhdGEiICsgaSB9LCBpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQot
ICAgICAgICAgICAgICAgICAgIC5jb3VudCgpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCAxMCk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAg
fQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Lmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxZjA2YWQ5NDI3NDM3NjhjYzk4ODY5MDBi
MDEwNzk4ZWE0NTYyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Nv
dW50Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0
dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICBmb3IodmFyIGkg
PSAwOyBpIDwgMTA7IGkrKykgewotICAgICAgICAgICAgc3RvcmUuYWRkKHsgZGF0YTogImRhdGEi
ICsgaSB9LCBpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQot
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAg
ICAgIC5jb3VudCgpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAxMCk7
Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmZhMzI2YTkyMjYyNzdhNjUzOWQx
MDkwOTk2YWJkOWU2NTgwZDE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY291bnQyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3Jk
cyB0aGF0IGhhdmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NvdW50Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2JmYTMyNmE5MjI2Mjc3YTY1MzlkMTA5MDk5NmFiZDllNjU4MGQxOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Mi1wcml2YXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0
b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5
cyB3aXRoaW4gdGhlIHJhbmdlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzYyY2IzMDE3YWI2NzI2OGY1
ODc3OTFjZWMzYjQ4ZWRlMTJmNDBkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY291bnQyLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJPYmplY3RT
dG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtl
eXMgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHQg
PSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi0gICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiKTsKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgICAg
ICAgICAgc3RvcmUuYWRkKHsgZGF0YTogImRhdGEiICsgaSB9LCBpKTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIg
cnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5jb3VudChJREJLZXlSYW5nZS5ib3Vu
ZCg1LDIwKSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDUpOwotICAg
ICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWM2MmNiMzAxN2FiNjcyNjhmNTg3NzkxY2VjM2I0OGVkZTEyZjQwZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Mi5odG0KKysrIC9kZXYv
bnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRm
LTg+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBv
ZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGhpbiB0aGUgcmFuZ2UgPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci0gICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0KLSAgICAgICAgZm9yKHZhciBpID0gMDsg
aSA8IDEwOyBpKyspIHsKLSAgICAgICAgICAgIHN0b3JlLmFkZCh7IGRhdGE6ICJkYXRhIiArIGkg
fSwgaSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAu
Y291bnQoSURCS2V5UmFuZ2UuYm91bmQoNSwyMCkpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCA1KTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9KTsKLSAg
ICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50My1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NvdW50My1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MmE0
NTkxMDdlYTUwMjMwNzUxY2VhMzEyNDZjOTkzNDk4NzhlYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhl
IG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGggdGhlIGtleSAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
b3VudDMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50My1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjQyYTQ1OTEwN2VhNTAyMzA3NTFjZWEzMTI0NmM5OTM0
OTg3OGVhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50My1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0
aGF0IGhhdmUga2V5cyB3aXRoIHRoZSBrZXkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQzLXByaXZhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQz
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM5MTJiNmM3MjUw
MTE2MzNiMDUzMDYxYjQxZWVhMzU1MGE5MDhlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NvdW50My1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+SURC
T2JqZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQg
aGF2ZSBrZXlzIHdpdGggdGhlIGtleTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAg
dmFyIGRiCi0KLSAgICBjcmVhdGVkYihhc3luY190ZXN0KCkpLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLQotICAgICAgICB2YXIg
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrIiB9KQot
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQotICAgICAgICAgICAgc3RvcmUu
YWRkKHsgazogImtleV8iICsgaSB9KTsKLQotICAgICAgICBzdG9yZS5jb3VudCgia2V5XzIiKS5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMSwgImNvdW50KGtleV8yKSIpCi0KLSAgICAgICAg
ICAgIHN0b3JlLmNvdW50KCJrZXlfIikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAw
LCAiY291bnQoa2V5XykiKQotICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpCi0gICAgICAgICAg
ICB9KQotICAgICAgICB9KQotICAgIH0KLQotPC9zY3JpcHQ+Ci08ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY291bnQzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY291bnQzLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM5
MTJiNmM3MjUwMTE2MzNiMDUzMDYxYjQxZWVhMzU1MGE5MDhlYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50My5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+SURC
T2JqZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQg
aGF2ZSBrZXlzIHdpdGggdGhlIGtleTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAg
dmFyIGRiCi0KLSAgICBjcmVhdGVkYihhc3luY190ZXN0KCkpLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLQotICAgICAgICB2YXIg
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrIiB9KQot
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQotICAgICAgICAgICAgc3RvcmUu
YWRkKHsgazogImtleV8iICsgaSB9KTsKLQotICAgICAgICBzdG9yZS5jb3VudCgia2V5XzIiKS5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMSwgImNvdW50KGtleV8yKSIpCi0KLSAgICAgICAg
ICAgIHN0b3JlLmNvdW50KCJrZXlfIikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAw
LCAiY291bnQoa2V5XykiKQotICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpCi0gICAgICAgICAg
ICB9KQotICAgICAgICB9KQotICAgIH0KLQotPC9zY3JpcHQ+Ci08ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY291bnQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQ0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2E0NDg1MGI3NDNhMWNkYzQ5YWVlOWY4OTQ0NzlmNzljZTM3YzQzZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5j
b3VudCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jb3VudDQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1wcml2YXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E0NDg1MGI3NDNhMWNkYzQ5
YWVlOWY4OTQ0NzlmNzljZTM3YzQzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NvdW50NC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmNvdW50KCkgLSBJZiB0aGUgb2JqZWN0IHN0
b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9N
RXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NvdW50NC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkx
ZGE4YWM4ZTUyMjlmMzFkZmExY2FjNjdlYjIwNDc0MDUwNmIyMzYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY291bnQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFz
IGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRp
b24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNvdW50LUlEQlJlcXVlc3QtYW55LWtl
eSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgICBvc3RvcmUsCi0g
ICAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAg
ICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgb3N0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgICAgIGRiLmRlbGV0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHQuc3RlcChmdW5jdGlvbigpewotICAgICAgICAg
ICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpewotICAgICAg
ICAgICAgICAgIG9zdG9yZS5jb3VudCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwot
ICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDQuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDQu
aHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWRhOGFjOGU1MjI5ZjMxZGZhMWNh
YzY3ZWIyMDQ3NDA1MDZiMjM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY291bnQ0Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmNvdW50
KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRh
dGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3Ig
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93
d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RT
dG9yZS1jb3VudC1JREJSZXF1ZXN0LWFueS1rZXkiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAg
IHZhciBkYiwKLSAgICAgICAgb3N0b3JlLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0g
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
Ci0gICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRo
OiJwS2V5In0pOwotICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICB9
Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICB0
LnN0ZXAoZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0
ZUVycm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAgICBvc3RvcmUuY291bnQoKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9z
Y3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmYmU0MjBhMDNlOWI4NWRlNDhjM2Qx
Nzk2YjAwMjdkNGFiM2RjNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gcmV0dXJucyBhbiBJREJJbmRl
eCBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmJlNDIwYTAzZTliODVkZTQ4YzNkMTc5NmIwMDI3
ZDRhYjNkYzU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gcmV0dXJucyBhbiBJREJJbmRl
eCBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxMDExOTU1M2QyNDZhYWE4MDYzNDY4NjQxMWM3YWE1NTc0NDBmMDAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1wcml2YXRlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0g
cmV0dXJucyBhbiBJREJJbmRleCBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHk8
L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0
KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
LSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0g
ICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVk
UHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKLQotICAgICAgICBhc3NlcnRfdHJ1ZShpbmRl
eCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhpbmRleC5uYW1lLCAiaW5kZXgiLCAibmFtZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGlu
ZGV4Lm9iamVjdFN0b3JlLCBvYmpTdG9yZSwgIm9iamVjdFN0b3JlIik7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMoaW5kZXgua2V5UGF0aCwgImluZGV4ZWRQcm9wZXJ0eSIsICJrZXlQYXRoIik7Ci0g
ICAgICAgIGFzc2VydF90cnVlKGluZGV4LnVuaXF1ZSwgInVuaXF1ZSIpOwotICAgICAgICBhc3Nl
cnRfZmFsc2UoaW5kZXgubXVsdGlFbnRyeSwgIm11bHRpRW50cnkiKTsKLQotICAgICAgICB0LmRv
bmUoKTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXguaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
MTAxMTk1NTNkMjQ2YWFhODA2MzQ2ODY0MTFjN2FhNTU3NDQwZjAwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXguaHRtCisrKyAvZGV2L251bGwKQEAg
LTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIHJldHVybnMgYW4gSURCSW5kZXgg
YW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5PC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlw
dD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICB2YXIgaW5kZXggPSBv
YmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5IiwgeyB1bmlxdWU6
IHRydWUgfSk7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5zdGFuY2VvZiBJREJJbmRl
eCwgIklEQkluZGV4Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgubmFtZSwgImluZGV4
IiwgIm5hbWUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmRleC5vYmplY3RTdG9yZSwgb2Jq
U3RvcmUsICJvYmplY3RTdG9yZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGluZGV4LmtleVBh
dGgsICJpbmRleGVkUHJvcGVydHkiLCAia2V5UGF0aCIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShp
bmRleC51bmlxdWUsICJ1bmlxdWUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGluZGV4Lm11bHRp
RW50cnksICJtdWx0aUVudHJ5Iik7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgxMC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGFhMWFjNTMyOGMzOGEwNjk4NTcxOGNhM2QyN2E4MTZiMDQxNDc5ZTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4
KCkgLSBJZiBhbiBpbmRleCB3aXRoIHRoZSBuYW1lIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhp
cyBvYmplY3Qgc3RvcmUsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgQ29uc3RyYWludEVycm9yICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhYTFhYzUzMjhjMzhhMDY5ODU3MThjYTNkMjdhODE2YjA0MTQ3
OWUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgx
MC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiBhbiBpbmRleCB3aXRoIHRoZSBuYW1l
IG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhpcyBvYmplY3Qgc3RvcmUsIHRoZSBpbXBsZW1lbnRh
dGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgQ29uc3RyYWludEVycm9yICAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDEwLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1wcml2YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MGUxMTk3OWI5MmZmMTUzOWM2OTUxYjRh
YTkxYTc5MGQ2NTQyOGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDEwLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQkRhdGFi
YXNlLmNyZWF0ZUluZGV4KCkgLSBJZiBhbiBpbmRleCB3aXRoIHRoZSBuYW1lIG5hbWUgYWxyZWFk
eSBleGlzdHMgaW4gdGhpcyBvYmplY3Qgc3RvcmUsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRo
cm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgQ29uc3RyYWludEVycm9yIDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+
Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5k
ZXgtSURCSW5kZXgtRE9NU3RyaW5nLW5hbWUtRE9NU3RyaW5nLXNlcXVlbmNlLURPTVN0cmluZy0t
a2V5UGF0aC1JREJJbmRleFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0ZXJzIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2
PgotPHNjcmlwdD4KLXZhciB0ID0gYXN5bmNfdGVzdCgpLAotICAgIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZSkgewotICAgIHZh
ciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICB2YXIgb3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIik7Ci0gICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJhIiwgImEiKTsKLSAgICBh
c3NlcnRfdGhyb3dzKCJDb25zdHJhaW50RXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICBvc3Rv
cmUuY3JlYXRlSW5kZXgoImEiLCAiYSIpOwotICAgIH0pOwotICAgIHQuZG9uZSgpOwotfQotPC9z
Y3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAuaHRtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNjBlMTE5NzliOTJmZjE1MzljNjk1MWI0YWE5MWE3OTBkNjU0
MjhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgx
MC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0g
SWYgYW4gaW5kZXggd2l0aCB0aGUgbmFtZSBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoaXMgb2Jq
ZWN0IHN0b3JlLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBv
ZiB0eXBlIENvbnN0cmFpbnRFcnJvciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURPTVN0cmlu
Zy1uYW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5kZXhQYXJh
bWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgdCA9
IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0KLW9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0gICAgdmFyIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAg
IG9zdG9yZS5jcmVhdGVJbmRleCgiYSIsICJhIik7Ci0gICAgYXNzZXJ0X3Rocm93cygiQ29uc3Ry
YWludEVycm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJhIiwg
ImEiKTsKLSAgICB9KTsKLSAgICB0LmRvbmUoKTsKLX0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4MTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDZhZjFlMmIxYWU5ODJmMThkMGFiMDBkNzg4NzYxYTZmMDZhYTBk
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0
YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBhdGgs
IHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgU3lu
dGF4RXJyb3IgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQ2YWYxZTJiMWFlOTgyZjE4ZDBhYjAwZDc4ODc2MWE2ZjA2YWEwZGEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLXByaXZhdGUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3Jl
YXRlSW5kZXgoKSAtIElmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBhdGgsIHRoZSBpbXBs
ZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgU3ludGF4RXJyb3Ig
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLXByaXZhdGUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ0ZDI0NTA2ZmJkNmQ5NGFlNzQyMTA2
NmM1MzEzYjMxNDFkNTE1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NyZWF0ZUluZGV4MTEtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCRGF0
YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBhdGgs
IHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgU3lu
dGF4RXJyb3IgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9
Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1J
REJPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1JREJJbmRleC1ET01TdHJpbmctbmFtZS1ET01TdHJp
bmctc2VxdWVuY2UtRE9NU3RyaW5nLS1rZXlQYXRoLUlEQkluZGV4UGFyYW1ldGVycy1vcHRpb25h
bFBhcmFtZXRlcnMiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCks
Ci0gICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotCi1vcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uIChlKSB7Ci0gICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgIHZhciBv
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICBhc3NlcnRfdGhyb3dz
KCJTeW50YXhFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgIG9zdG9yZS5jcmVhdGVJbmRleCgi
YWIiLCAiLiIpOwotICAgIH0pOwotICAgIHQuZG9uZSgpOwotfQotPC9zY3JpcHQ+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgxMS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkNDRkMjQ1MDZmYmQ2ZDk0YWU3NDIxMDY2YzUzMTNiMzE0MWQ1MTUyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS5odG0KKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gSWYga2V5UGF0aCBpcyBu
b3QgYSB2YWxpZCBrZXkgcGF0aCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01F
eGNlcHRpb24gb2YgdHlwZSBTeW50YXhFcnJvciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURP
TVN0cmluZy1uYW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5k
ZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci12
YXIgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0KLW9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKLSAgICB2YXIgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgdmFyIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIp
OwotICAgIGFzc2VydF90aHJvd3MoIlN5bnRheEVycm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAg
b3N0b3JlLmNyZWF0ZUluZGV4KCJhYiIsICIuIik7Ci0gICAgfSk7Ci0gICAgdC5kb25lKCk7Ci19
Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMzI5Zjk3MGE2NDY2
ZjlmM2NiZjM4ZjVlMDJmMmYxZDdhN2IxZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiB0aGUgb2Jq
ZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93
IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4MTItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTItcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMzI5Zjk3MGE2NDY2ZjlmM2NiZjM4
ZjVlMDJmMmYxZDdhN2IxZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCRGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIHRoZSBvYmpl
Y3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXgxMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0OGE2ZDZhNzc5MGNkY2I4YTI2MjdjZTBhNmQ5MTY3YWVlZDQyOGQ4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1w
cml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRl
eCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50
YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9y
IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8v
d3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5v
cmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0
U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5kZXgtRE9NU3RyaW5nLW5hbWUtRE9NU3RyaW5nLXNlcXVl
bmNlLURPTVN0cmluZy0ta2V5UGF0aC1JREJJbmRleFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0
ZXJzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2
IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIG9zdG9yZSwK
LSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICBvc3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0
b3JlIik7Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKLSAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgb3N0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXgxMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0OGE2ZDZhNzc5MGNkY2I4YTI2MjdjZTBhNmQ5MTY3YWVlZDQyOGQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi5odG0KKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gSWYgdGhlIG9iamVj
dCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBh
IERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgt
SURCSW5kZXgtRE9NU3RyaW5nLW5hbWUtRE9NU3RyaW5nLXNlcXVlbmNlLURPTVN0cmluZy0ta2V5
UGF0aC1JREJJbmRleFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0ZXJzIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2Pgot
PHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIG9zdG9yZSwKLSAgICAgICAgdCA9IGFzeW5j
X3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50
YXJnZXQucmVzdWx0OwotICAgICAgICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiKTsKLSAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgfQotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdC5zdGVw
KGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJv
ciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICJpbmRleGVkUHJvcGVydHkiKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0N2ZiZTUyNjI5MTAzM2ZlYmFkYTY4MzI0ZjU5MjE5MTE4MzRhY2MwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVh
dGVJbmRleCgpIC0gT3BlcmF0ZSBvdXQgdmVyc2lvbmNoYW5nZSB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvciAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgx
My1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdm
YmU1MjYyOTEwMzNmZWJhZGE2ODMyNGY1OTIxOTExODM0YWNjMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMtcHJpdmF0ZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVJ
bmRleCgpIC0gT3BlcmF0ZSBvdXQgdmVyc2lvbmNoYW5nZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
ciAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMtcHJpdmF0ZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTEyMzFjNTI1NzgzZTk2YzIwZDJl
NGVjMzcxYzU2Y2FmYWMwZWQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXgxMy1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJE
YXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gT3BlcmF0ZSBvdXQgdmVyc2lvbmNoYW5nZSB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRl
bCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURPTVN0cmluZy1uYW1l
LURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJz
LW9wdGlvbmFsUGFyYW1ldGVycyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAot
ICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAg
ICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24g
KGV2ZW50KSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVh
ZHdyaXRlIik7Ci0gICAgICAgIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKLSAg
ICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgb3N0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXgxMy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4MTMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmNTEyMzFjNTI1NzgzZTk2YzIwZDJlNGVjMzcxYzU2Y2FmYWMwZWQ5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy5odG0KKysrIC9kZXYvbnVs
bApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gT3BlcmF0ZSBvdXQgdmVyc2lv
bmNoYW5nZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90
aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4
LURPTVN0cmluZy1uYW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURC
SW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
IChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiLCAicmVhZHdyaXRlIik7Ci0gICAgICAgIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9y
ZSgic3RvcmUiKTsKLSAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAg
ICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3Jp
cHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDkyZDJhNGRlNTBmZWJhNzJiNjZmYWE2
YTAzZmYxYzBlMGUzYjZjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NyZWF0ZUluZGV4Mi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gYXR0ZW1wdCB0byBjcmVhdGUg
YW4gaW5kZXggdGhhdCByZXF1aXJlcyB1bmlxdWUgdmFsdWVzIG9uIGFuIG9iamVjdCBzdG9yZSBh
bHJlYWR5IGNvbnRhaW5zIGR1cGxpY2F0ZXMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkOTJkMmE0ZGU1MGZlYmE3MmI2NmZhYTZhMDNmZjFjMGUwZTNiNmMy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1Mg
SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIGluZGV4
IHRoYXQgcmVxdWlyZXMgdW5pcXVlIHZhbHVlcyBvbiBhbiBvYmplY3Qgc3RvcmUgYWxyZWFkeSBj
b250YWlucyBkdXBsaWNhdGVzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDItcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OGJlYjQ5
ZjM3MWIyYWM2NjIwY2QxYzNmZjgwYzUxZjA0ZGI4OWZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBhdHRlbXB0IHRvIGNyZWF0
ZSBhbiBpbmRleCB0aGF0IHJlcXVpcmVzIHVuaXF1ZSB2YWx1ZXMgb24gYW4gb2JqZWN0IHN0b3Jl
IGFscmVhZHkgY29udGFpbnMgZHVwbGljYXRlcyA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAg
IHZhciBkYiwgYWJvcnRlZCwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQg
PSB7IGluZGV4ZWRQcm9wZXJ0eTogImJhciIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJh
bnNhY3Rpb24sCi0gICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiKTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsKLSAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZCwgMik7Ci0gICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKLQotICAg
ICAgICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsK
LQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgYWJvcnRlZCA9IHRydWU7Ci0gICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudHlwZSwgImFib3J0IiwgImV2ZW50IHR5cGUiKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgZGIub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF90
cnVlKGFib3J0ZWQsICJ0cmFuc2FjdGlvbi5hYm9ydCBldmVudCBoYXMgZmlyZWQiKTsKLSAgICAg
ICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9OwotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBmYWlsKHQsICJnb3QgY29tcGxldGUsIGV4cGVjdGVkIGFib3J0Iik7
Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4Mi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4
YmViNDlmMzcxYjJhYzY2MjBjZDFjM2ZmODBjNTFmMDRkYjg5ZmMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDIuaHRtCisrKyAvZGV2L251bGwKQEAg
LTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFu
IGluZGV4IHRoYXQgcmVxdWlyZXMgdW5pcXVlIHZhbHVlcyBvbiBhbiBvYmplY3Qgc3RvcmUgYWxy
ZWFkeSBjb250YWlucyBkdXBsaWNhdGVzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFy
IGRiLCBhYm9ydGVkLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsg
aW5kZXhlZFByb3BlcnR5OiAiYmFyIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2Fj
dGlvbiwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIp
OwotCi0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQsIDEpOwotICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3JkLCAyKTsKLSAgICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIsIHsgdW5pcXVlOiB0cnVlIH0pOwotCi0gICAgICAg
IGFzc2VydF90cnVlKGluZGV4IGluc3RhbmNlb2YgSURCSW5kZXgsICJJREJJbmRleCIpOwotCi0g
ICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBhYm9ydGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50eXBlLCAiYWJvcnQiLCAiZXZlbnQgdHlwZSIpOwotICAgICAgICB9KTsKLQotICAg
ICAgICBkYi5vbmFib3J0ID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X3RydWUo
YWJvcnRlZCwgInRyYW5zYWN0aW9uLmFib3J0IGV2ZW50IGhhcyBmaXJlZCIpOwotICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGZhaWwodCwgImdvdCBjb21wbGV0ZSwgZXhwZWN0ZWQgYWJvcnQiKTsKLSAg
ICB9OwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgzLXVzYWJsZS1yaWdodC1hd2F5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1h
d2F5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRmZmJlOTAz
ZTFmNGYwZDhhMWQxN2I4YTU3MmZkNWVkZWQ4NDU5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5j
cmVhdGVJbmRleCgpIC0gdGhlIGluZGV4IGlzIHVzYWJsZSByaWdodCBhZnRlciBiZWluZyBtYWRl
IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGZmYmU5MDNlMWY0ZjBkOGExZDE3YjhhNTcyZmQ1
ZWRlZDg0NTkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAt
IHRoZSBpbmRleCBpcyB1c2FibGUgcmlnaHQgYWZ0ZXIgYmVpbmcgbWFkZSAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXktcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJp
Z2h0LWF3YXktcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTlm
ZGIwOGU0YjRiMjE2Zjk0N2ZkMjhiNzc3NjMwODM2NGQxNDFiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5LXByaXZh
dGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4
KCkgLSB0aGUgaW5kZXggaXMgdXNhYmxlIHJpZ2h0IGFmdGVyIGJlaW5nIG1hZGU8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KLTxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
ICAgIHZhciBkYiwgYWJvcnRlZCwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
LCB7dGltZW91dDoxOTAwMH0pCi0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAot
ICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQ
YXRoOiAna2V5JyB9KTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKQot
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiAia2V5XyIgKyBpLCBpbmRleGVkUHJvcGVy
dHk6ICJpbmRleGVkXyIgKyBpIH0pOwotCi0gICAgICAgIHZhciBpZHggPSBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5IikKLQotICAgICAgICBpZHguZ2V0KCdp
bmRleGVkXzk5Jykub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAna2V5Xzk5JywgJ2tleScp
OwotICAgICAgICB9KTsKLSAgICAgICAgaWR4LmdldCgnaW5kZXhlZF85Jykub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQua2V5LCAna2V5XzknLCAna2V5Jyk7Ci0gICAgICAgIH0pOwotICAgIH0KLQot
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHQuZG9uZSgpOwot
ICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDMtdXNhYmxlLXJpZ2h0LWF3YXkuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXkuaHRtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTlmZGIwOGU0YjRiMjE2Zjk0N2ZkMjhiNzc3
NjMwODM2NGQxNDFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSB0aGUgaW5kZXggaXMgdXNhYmxlIHJpZ2h0IGFm
dGVyIGJlaW5nIG1hZGU8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxtZXRhIG5hbWU9
dGltZW91dCBjb250ZW50PWxvbmc+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwgYWJvcnRlZCwKLSAgICAgIHQgPSBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDoxOTAwMH0pCi0KLSAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHR4biA9
IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAna2V5JyB9KTsKLQotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDsgaSsrKQotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiAi
a2V5XyIgKyBpLCBpbmRleGVkUHJvcGVydHk6ICJpbmRleGVkXyIgKyBpIH0pOwotCi0gICAgICAg
IHZhciBpZHggPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5
IikKLQotICAgICAgICBpZHguZ2V0KCdpbmRleGVkXzk5Jykub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQua2V5LCAna2V5Xzk5JywgJ2tleScpOwotICAgICAgICB9KTsKLSAgICAgICAgaWR4LmdldCgn
aW5kZXhlZF85Jykub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAna2V5XzknLCAna2V5Jyk7
Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTI3MmNkNjQzN2E1ZWRlMGU3M2M1NzU3ZTcwMGJj
NzdmZGVjZmQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBF
dmVudCBvcmRlcmluZyBmb3IgYSBsYXRlciBkZWxldGVkIGluZGV4IAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0
LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZTI3MmNkNjQzN2E1ZWRlMGU3M2M1NzU3ZTcwMGJjNzdmZGVj
ZmQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0
LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAt
IEV2ZW50IG9yZGVyaW5nIGZvciBhIGxhdGVyIGRlbGV0ZWQgaW5kZXggCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0
ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNGJmMDEzOWY2ZWFhMDY4OWEwNGM0YmYyODAyOTEwOTc3YTU3NTdmYi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRleC1l
dmVudF9vcmRlci1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RT
dG9yZS5jcmVhdGVJbmRleCgpIC0gRXZlbnQgb3JkZXJpbmcgZm9yIGEgbGF0ZXIgZGVsZXRlZCBp
bmRleDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBl
dmVudHMgPSBbXSwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91
dDogMTAwMDB9KQotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7Ci0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBsb2coInRy
YW5zYWN0aW9uLmNvbXBsZXRlIik7Ci0KLSAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5z
YWN0aW9uLAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
Iik7Ci0KLSAgICAgICAgdmFyIHJxX2FkZDEgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmlj
b3JuIiB9LCAxKTsKLSAgICAgICAgcnFfYWRkMS5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDEuc3Vj
Y2VzcyIpOwotICAgICAgICBycV9hZGQxLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMS5lcnJvciIp
OwotCi0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJhbmltYWwiLCB7IHVu
aXF1ZTogdHJ1ZSB9KTsKLQotICAgICAgICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7IGFu
aW1hbDogIlVuaWNvcm4iIH0sIDIpOwotICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxvZygi
cnFfYWRkMi5zdWNjZXNzIik7Ci0gICAgICAgIHJxX2FkZDIub25lcnJvciAgID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgbG9nKCJycV9hZGQyLmVycm9yIikoZSk7Ci0gICAgICAgICAgICBl
LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgb2JqU3RvcmUuZGVsZXRlSW5kZXgoImluZGV4Iik7Ci0KLSAgICAg
ICAgdmFyIHJxX2FkZDMgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAzKTsK
LSAgICAgICAgcnFfYWRkMy5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDMuc3VjY2VzcyIpOwotICAg
ICAgICBycV9hZGQzLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMy5lcnJvciIpOwotICAgIH0KLQot
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICBsb2coIm9wZW5f
cnEuc3VjY2VzcyIpKGUpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWyAi
cnFfYWRkMS5zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJxX2FkZDIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJycV9hZGQzLnN1Y2Nlc3MiLAotCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5jb21wbGV0ZSIsCi0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuc3VjY2VzcyIgXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXZlbnRzIik7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCi0gICAgICAg
ICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7Ci0gICAg
ICAgIH07Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRl
eC1ldmVudF9vcmRlci5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZjAxMzlm
NmVhYTA2ODlhMDRjNGJmMjgwMjkxMDk3N2E1NzU3ZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXIuaHRt
CisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIEV2
ZW50IG9yZGVyaW5nIGZvciBhIGxhdGVyIGRlbGV0ZWQgaW5kZXg8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hy
dGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgZXZlbnRzID0gW10sCi0gICAgICB0ID0g
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBlLnRhcmdl
dC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gbG9nKCJ0cmFuc2FjdGlvbi5jb21wbGV0ZSIpOwot
Ci0gICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbiwKLSAgICAgICAgICBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotCi0gICAgICAgIHZhciBycV9h
ZGQxID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMSk7Ci0gICAgICAgIHJx
X2FkZDEub25zdWNjZXNzID0gbG9nKCJycV9hZGQxLnN1Y2Nlc3MiKTsKLSAgICAgICAgcnFfYWRk
MS5vbmVycm9yICAgPSBsb2coInJxX2FkZDEuZXJyb3IiKTsKLQotICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCAiYW5pbWFsIiwgeyB1bmlxdWU6IHRydWUgfSk7Ci0KLSAgICAg
ICAgdmFyIHJxX2FkZDIgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAyKTsK
LSAgICAgICAgcnFfYWRkMi5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDIuc3VjY2VzcyIpOwotICAg
ICAgICBycV9hZGQyLm9uZXJyb3IgICA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGxvZygi
cnFfYWRkMi5lcnJvciIpKGUpOwotICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAg
ICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgfQotCi0gICAgICAgIG9ialN0
b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOwotCi0gICAgICAgIHZhciBycV9hZGQzID0gb2JqU3Rv
cmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMyk7Ci0gICAgICAgIHJxX2FkZDMub25zdWNj
ZXNzID0gbG9nKCJycV9hZGQzLnN1Y2Nlc3MiKTsKLSAgICAgICAgcnFfYWRkMy5vbmVycm9yICAg
PSBsb2coInJxX2FkZDMuZXJyb3IiKTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgbG9nKCJvcGVuX3JxLnN1Y2Nlc3MiKShlKTsKLSAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsgInJxX2FkZDEuc3VjY2VzcyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQyLmVycm9yOiBDb25zdHJh
aW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRk
My5zdWNjZXNzIiwKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJh
bnNhY3Rpb24uY29tcGxldGUiLAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJvcGVuX3JxLnN1Y2Nlc3MiIF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2
ZW50cyIpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2cobXNn
KSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBpZihlICYmIGUu
dGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQotICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1z
ZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBldmVudHMucHVzaChtc2cpOwotICAgICAgICB9OwotICAgIH0KLTwvc2NyaXB0
PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlrZXlwYXRo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiMTYzMDUyNGUzNjdiNjQxZWQxMmYzYWJhZTMwMjMyNmQ4
ZGMyOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDUtZW1wdHlrZXlwYXRoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBlbXB0eSBrZXlQYXRoIAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4NS1lbXB0eWtleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNiMTYzMDUyNGUzNjdiNjQxZWQxMmYzYWJhZTMwMjMyNmQ4ZGMyOTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlr
ZXlwYXRoLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5IGtleVBhdGggCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0
eWtleXBhdGgtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2Jl
OGVmZjVhOGU1ODc0MTBhMzgxMzJhMjUxNDViODMzMWQ0ZmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1wcml2YXRlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0g
ZW1wdHkga2V5UGF0aDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIs
IGFib3J0ZWQsCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6
IDEwMDAwfSkKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OwotICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCi0gICAgICAgICAg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDU7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZCgib2JqZWN0
XyIgKyBpLCBpKTsKLQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5k
ZXgiLCAiIikKLSAgICAgICAgcnEub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFj
aGVkKCJlcnJvcjogIiArIHJxLmVycm9yLm5hbWUpOyB9Ci0gICAgICAgIHJxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkgeyB9Ci0KLSAgICAgICAgb2JqU3RvcmUuaW5kZXgoImluZGV4IikKLSAgICAg
ICAgICAgICAgICAuZ2V0KCdvYmplY3RfNCcpCi0gICAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCAnb2JqZWN0XzQnLCAncmVzdWx0Jyk7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHQuZG9uZSgp
OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDUtZW1wdHlrZXlwYXRoLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYmU4ZWZmNWE4ZTU4NzQxMGEzODEzMmEyNTE0NWI4MzMx
ZDRmZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDUtZW1wdHlrZXlwYXRoLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmNyZWF0ZUluZGV4KCkgLSBlbXB0eSBrZXlQYXRoPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotICAgIHZhciBkYiwgYWJvcnRlZCwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KQotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2Fj
dGlvbiwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIp
OwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQotICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKCJvYmplY3RfIiArIGksIGkpOwotCi0gICAgICAgIHZhciBycSA9IG9ialN0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKQotICAgICAgICBycS5vbmVycm9yID0gZnVuY3Rpb24o
KSB7IGFzc2VydF91bnJlYWNoZWQoImVycm9yOiAiICsgcnEuZXJyb3IubmFtZSk7IH0KLSAgICAg
ICAgcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7IH0KLQotICAgICAgICBvYmpTdG9yZS5pbmRl
eCgiaW5kZXgiKQotICAgICAgICAgICAgICAgIC5nZXQoJ29iamVjdF80JykKLSAgICAgICAgICAg
ICAgICAub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsICdvYmplY3RfNCcsICdyZXN1bHQnKTsKLSAg
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1l
dmVudF9vcmRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEx
ZTUzNTVmZjYwYzcyMWY3MmRjMzU1ZDM2OGZmMzI2Y2FhNmE0MDEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUu
Y3JlYXRlSW5kZXgoKSAtIGV2ZW50IG9yZGVyIHdoZW4gdW5pcXVlIGNvbnN0cmFpbnQgaXMgdHJp
Z2dlcmVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMWU1MzU1ZmY2MGM3MjFmNzJkYzM1NWQzNjhmZjMyNmNhYTZh
NDAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg2
LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGV2ZW50IG9yZGVy
IHdoZW4gdW5pcXVlIGNvbnN0cmFpbnQgaXMgdHJpZ2dlcmVkIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
Ni1ldmVudF9vcmRlci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1wcml2YXRlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhMDFjYTBhZmMyZGNkOTgyNzFhZmJk
MmZlOTk5ZDkwOTk5N2Y5ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRp
dGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBldmVudCBvcmRlciB3aGVuIHVuaXF1
ZSBjb25zdHJhaW50IGlzIHRyaWdnZXJlZDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgot
PG1ldGEgcmVsPWhlbHAgaHJlZj1odHRwOi8vb2RpbmhvLmh0bWw1Lm9yZy9JbmRleGVkREIvc3Bl
Yy9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5kZXgt
RE9NU3RyaW5nLW5hbWUtYW55LWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFy
YW1ldGVycz4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBpbmRleCB0aGF0IGlzIHJlcXVl
c3RlZCB0byBiZSBjcmVhdGVkIGNhbiBjb250YWluIGNvbnN0cmFpbnRzIG9uIHRoZSBkYXRhIGFs
bG93ZWQgaW4gdGhlIGluZGV4J3MgcmVmZXJlbmNlZCBvYmplY3Qgc3RvcmUsIHN1Y2ggYXMgcmVx
dWlyaW5nIHVuaXF1ZW5lc3Mgb2YgdGhlIHZhbHVlcyByZWZlcmVuY2VkIGJ5IHRoZSBpbmRleCdz
IGtleVBhdGguIElmIHRoZSByZWZlcmVuY2VkIG9iamVjdCBzdG9yZSBhbHJlYWR5IGNvbnRhaW5z
IGRhdGEgd2hpY2ggdmlvbGF0ZXMgdGhlc2UgY29uc3RyYWludHMsIHRoaXMgbXVzdCBub3QgY2F1
c2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNyZWF0ZUluZGV4IHRvIHRocm93IGFuIGV4Y2VwdGlv
biBvciBhZmZlY3Qgd2hhdCBpdCByZXR1cm5zLiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCBzdGls
bCBjcmVhdGUgYW5kIHJldHVybiBhbiBJREJJbmRleCBvYmplY3QuIEluc3RlYWQgdGhlIGltcGxl
bWVudGF0aW9uIG11c3QgcXVldWUgdXAgYW4gb3BlcmF0aW9uIHRvIGFib3J0IHRoZSAndmVyc2lv
bmNoYW5nZScgdHJhbnNhY3Rpb24gd2hpY2ggd2FzIHVzZWQgZm9yIHRoZSBjcmVhdGVJbmRleCBj
YWxsLiI+Ci08bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJJbiBzb21lIGltcGxlbWVudGF0aW9ucyBp
dCdzIHBvc3NpYmxlIGZvciB0aGUgaW1wbGVtZW50YXRpb24gdG8gYXN5bmNocm9ub3VzbHkgcnVu
IGludG8gcHJvYmxlbXMgY3JlYXRpbmcgdGhlIGluZGV4IGFmdGVyIHRoZSBjcmVhdGVJbmRleCBm
dW5jdGlvbiBoYXMgcmV0dXJuZWQuIEZvciBleGFtcGxlIGluIGltcGxlbWVudGF0aW9ucyB3aGVy
ZSBtZXRhZGF0YSBhYm91dCB0aGUgbmV3bHkgY3JlYXRlZCBpbmRleCBpcyBxdWV1ZWQgdXAgdG8g
YmUgaW5zZXJ0ZWQgaW50byB0aGUgZGF0YWJhc2UgYXN5bmNocm9ub3VzbHksIG9yIHdoZXJlIHRo
ZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBuZWVkIHRvIGFzayB0aGUgdXNlciBmb3IgcGVybWlzc2lv
biBmb3IgcXVvdGEgcmVhc29ucy4gU3VjaCBpbXBsZW1lbnRhdGlvbnMgbXVzdCBzdGlsbCBjcmVh
dGUgYW5kIHJldHVybiBhbiBJREJJbmRleCBvYmplY3QuIEluc3RlYWQsIG9uY2UgdGhlIGltcGxl
bWVudGF0aW9uIHJlYWxpemVzIHRoYXQgY3JlYXRpbmcgdGhlIGluZGV4IGhhcyBmYWlsZWQsIGl0
IG11c3QgYWJvcnQgdGhlIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBzdGVwcyBmb3IgYWJvcnRpbmcg
YSB0cmFuc2FjdGlvbiB1c2luZyB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgYXMgZXJyb3IgcGFyYW1l
dGVyLiI+Ci08bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJpZiB0aGUgaW5kZXggY2FuJ3QgYmUgY3Jl
YXRlZCBkdWUgdG8gdW5pcXVlIGNvbnN0cmFpbnRzLCBDb25zdHJhaW50RXJyb3IgbXVzdCBiZSB1
c2VkIGFzIGVycm9yIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotICAgIC8vIFRyYW5zYWN0aW9uIG1heSBmaXJlIHdpbmRvdy5vbmVycm9y
IGluIHNvbWUgaW1wbGVtZW50YXRpb25zLgotICAgIHNldHVwKHthbGxvd191bmNhdWdodF9leGNl
cHRpb246dHJ1ZX0pOwotCi0gICAgdmFyIGRiLAotICAgICAgZXZlbnRzID0gW10sCi0gICAgICB0
ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5v
bmVycm9yID0gbG9nKCJkYi5lcnJvciIpOwotICAgICAgICBkYi5vbmFib3J0ID0gbG9nKCJkYi5h
Ym9ydCIpOwotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gbG9nKCJ0cmFu
c2FjdGlvbi5hYm9ydCIpCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBs
b2coInRyYW5zYWN0aW9uLmVycm9yIikKLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25j
b21wbGV0ZSA9IGxvZygidHJhbnNhY3Rpb24uY29tcGxldGUiKQotCi0gICAgICAgIHZhciB0eG4g
PSBlLnRhcmdldC50cmFuc2FjdGlvbiwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIpOwotCi0gICAgICAgIHZhciBycV9hZGQxID0gb2JqU3RvcmUuYWRk
KHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMSk7Ci0gICAgICAgIHJxX2FkZDEub25zdWNjZXNzID0g
bG9nKCJycV9hZGQxLnN1Y2Nlc3MiKTsKLSAgICAgICAgcnFfYWRkMS5vbmVycm9yICAgPSBsb2co
InJxX2FkZDEuZXJyb3IiKTsKLQotICAgICAgICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7
IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOwotICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxv
ZygicnFfYWRkMi5zdWNjZXNzIik7Ci0gICAgICAgIHJxX2FkZDIub25lcnJvciAgID0gbG9nKCJy
cV9hZGQyLmVycm9yIik7Ci0KLSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImFuaW1hbCIsIHsgdW5pcXVlOiB0cnVlIH0pCi0KLSAgICAgICAgdmFyIHJxX2FkZDMgPSBvYmpT
dG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAzKTsKLSAgICAgICAgcnFfYWRkMy5vbnN1
Y2Nlc3MgPSBsb2coInJxX2FkZDMuc3VjY2VzcyIpOwotICAgICAgICBycV9hZGQzLm9uZXJyb3Ig
ICA9IGxvZygicnFfYWRkMy5lcnJvciIpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25lcnJvciA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgbG9nKCJvcGVuX3JxLmVycm9yIikoZSk7Ci0gICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzLCBbICJycV9hZGQxLnN1Y2Nlc3MiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRkMi5zdWNjZXNzIiwKLQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRkMy5lcnJvcjogQWJvcnRF
cnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlv
bi5lcnJvcjogQWJvcnRFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkYi5lcnJvcjogQWJvcnRFcnJvciIsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRyYW5zYWN0aW9uLmFib3J0OiBDb25zdHJhaW50RXJyb3IiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGIuYWJvcnQ6IENvbnN0cmFpbnRFcnJv
ciIsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuZXJy
b3I6IEFib3J0RXJyb3IiIF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIp
OwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2cobXNnKSB7Ci0g
ICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBpZihlICYmIGUudGFyZ2V0
ICYmIGUudGFyZ2V0LmVycm9yKQotICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6
ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBldmVudHMucHVzaChtc2cpOwotICAgICAgICB9OwotICAgIH0KLTwvc2NyaXB0PgotCi08
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXg2LWV2ZW50X29yZGVyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmEwMWNh
MGFmYzJkY2Q5ODI3MWFmYmQyZmU5OTlkOTA5OTk3ZjllMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci5odG0KKysrIC9kZXYv
bnVsbApAQCAtMSw3NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRm
LTg+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGV2ZW50IG9yZGVyIHdo
ZW4gdW5pcXVlIGNvbnN0cmFpbnQgaXMgdHJpZ2dlcmVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Ci08bWV0YSByZWw9aGVscCBocmVmPWh0dHA6Ly9vZGluaG8uaHRtbDUub3JnL0luZGV4
ZWREQi9zcGVjL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1J
REJJbmRleC1ET01TdHJpbmctbmFtZS1hbnkta2V5UGF0aC1JREJJbmRleFBhcmFtZXRlcnMtb3B0
aW9uYWxQYXJhbWV0ZXJzPgotPG1ldGEgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGluZGV4IHRoYXQg
aXMgcmVxdWVzdGVkIHRvIGJlIGNyZWF0ZWQgY2FuIGNvbnRhaW4gY29uc3RyYWludHMgb24gdGhl
IGRhdGEgYWxsb3dlZCBpbiB0aGUgaW5kZXgncyByZWZlcmVuY2VkIG9iamVjdCBzdG9yZSwgc3Vj
aCBhcyByZXF1aXJpbmcgdW5pcXVlbmVzcyBvZiB0aGUgdmFsdWVzIHJlZmVyZW5jZWQgYnkgdGhl
IGluZGV4J3Mga2V5UGF0aC4gSWYgdGhlIHJlZmVyZW5jZWQgb2JqZWN0IHN0b3JlIGFscmVhZHkg
Y29udGFpbnMgZGF0YSB3aGljaCB2aW9sYXRlcyB0aGVzZSBjb25zdHJhaW50cywgdGhpcyBtdXN0
IG5vdCBjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgY3JlYXRlSW5kZXggdG8gdGhyb3cgYW4g
ZXhjZXB0aW9uIG9yIGFmZmVjdCB3aGF0IGl0IHJldHVybnMuIFRoZSBpbXBsZW1lbnRhdGlvbiBt
dXN0IHN0aWxsIGNyZWF0ZSBhbmQgcmV0dXJuIGFuIElEQkluZGV4IG9iamVjdC4gSW5zdGVhZCB0
aGUgaW1wbGVtZW50YXRpb24gbXVzdCBxdWV1ZSB1cCBhbiBvcGVyYXRpb24gdG8gYWJvcnQgdGhl
ICd2ZXJzaW9uY2hhbmdlJyB0cmFuc2FjdGlvbiB3aGljaCB3YXMgdXNlZCBmb3IgdGhlIGNyZWF0
ZUluZGV4IGNhbGwuIj4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IkluIHNvbWUgaW1wbGVtZW50
YXRpb25zIGl0J3MgcG9zc2libGUgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBhc3luY2hyb25v
dXNseSBydW4gaW50byBwcm9ibGVtcyBjcmVhdGluZyB0aGUgaW5kZXggYWZ0ZXIgdGhlIGNyZWF0
ZUluZGV4IGZ1bmN0aW9uIGhhcyByZXR1cm5lZC4gRm9yIGV4YW1wbGUgaW4gaW1wbGVtZW50YXRp
b25zIHdoZXJlIG1ldGFkYXRhIGFib3V0IHRoZSBuZXdseSBjcmVhdGVkIGluZGV4IGlzIHF1ZXVl
ZCB1cCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBkYXRhYmFzZSBhc3luY2hyb25vdXNseSwgb3Ig
d2hlcmUgdGhlIGltcGxlbWVudGF0aW9uIG1pZ2h0IG5lZWQgdG8gYXNrIHRoZSB1c2VyIGZvciBw
ZXJtaXNzaW9uIGZvciBxdW90YSByZWFzb25zLiBTdWNoIGltcGxlbWVudGF0aW9ucyBtdXN0IHN0
aWxsIGNyZWF0ZSBhbmQgcmV0dXJuIGFuIElEQkluZGV4IG9iamVjdC4gSW5zdGVhZCwgb25jZSB0
aGUgaW1wbGVtZW50YXRpb24gcmVhbGl6ZXMgdGhhdCBjcmVhdGluZyB0aGUgaW5kZXggaGFzIGZh
aWxlZCwgaXQgbXVzdCBhYm9ydCB0aGUgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIHN0ZXBzIGZvciBh
Ym9ydGluZyBhIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBhcyBlcnJv
ciBwYXJhbWV0ZXIuIj4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9ImlmIHRoZSBpbmRleCBjYW4n
dCBiZSBjcmVhdGVkIGR1ZSB0byB1bmlxdWUgY29uc3RyYWludHMsIENvbnN0cmFpbnRFcnJvciBt
dXN0IGJlIHVzZWQgYXMgZXJyb3IiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgLy8gVHJhbnNhY3Rpb24gbWF5IGZpcmUgd2luZG93
Lm9uZXJyb3IgaW4gc29tZSBpbXBsZW1lbnRhdGlvbnMuCi0gICAgc2V0dXAoe2FsbG93X3VuY2F1
Z2h0X2V4Y2VwdGlvbjp0cnVlfSk7Ci0KLSAgICB2YXIgZGIsCi0gICAgICBldmVudHMgPSBbXSwK
LSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KQot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgIGRiLm9uZXJyb3IgPSBsb2coImRiLmVycm9yIik7Ci0gICAgICAgIGRiLm9uYWJvcnQgPSBs
b2coImRiLmFib3J0Iik7Ci0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSBs
b2coInRyYW5zYWN0aW9uLmFib3J0IikKLSAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25l
cnJvciA9IGxvZygidHJhbnNhY3Rpb24uZXJyb3IiKQotICAgICAgICBlLnRhcmdldC50cmFuc2Fj
dGlvbi5vbmNvbXBsZXRlID0gbG9nKCJ0cmFuc2FjdGlvbi5jb21wbGV0ZSIpCi0KLSAgICAgICAg
dmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAotICAgICAgICAgIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0KLSAgICAgICAgdmFyIHJxX2FkZDEgPSBvYmpT
dG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAxKTsKLSAgICAgICAgcnFfYWRkMS5vbnN1
Y2Nlc3MgPSBsb2coInJxX2FkZDEuc3VjY2VzcyIpOwotICAgICAgICBycV9hZGQxLm9uZXJyb3Ig
ICA9IGxvZygicnFfYWRkMS5lcnJvciIpOwotCi0gICAgICAgIHZhciBycV9hZGQyID0gb2JqU3Rv
cmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMik7Ci0gICAgICAgIHJxX2FkZDIub25zdWNj
ZXNzID0gbG9nKCJycV9hZGQyLnN1Y2Nlc3MiKTsKLSAgICAgICAgcnFfYWRkMi5vbmVycm9yICAg
PSBsb2coInJxX2FkZDIuZXJyb3IiKTsKLQotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgi
aW5kZXgiLCAiYW5pbWFsIiwgeyB1bmlxdWU6IHRydWUgfSkKLQotICAgICAgICB2YXIgcnFfYWRk
MyA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDMpOwotICAgICAgICBycV9h
ZGQzLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMy5zdWNjZXNzIik7Ci0gICAgICAgIHJxX2FkZDMu
b25lcnJvciAgID0gbG9nKCJycV9hZGQzLmVycm9yIik7Ci0gICAgfQotCi0gICAgb3Blbl9ycS5v
bmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICBsb2coIm9wZW5fcnEuZXJyb3IiKShlKTsK
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsgInJxX2FkZDEuc3VjY2VzcyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQyLnN1Y2Nlc3Mi
LAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQzLmVycm9y
OiBBYm9ydEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRy
YW5zYWN0aW9uLmVycm9yOiBBYm9ydEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImRiLmVycm9yOiBBYm9ydEVycm9yIiwKLQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidHJhbnNhY3Rpb24uYWJvcnQ6IENvbnN0cmFpbnRFcnJvciIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYi5hYm9ydDogQ29uc3Ry
YWludEVycm9yIiwKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Bl
bl9ycS5lcnJvcjogQWJvcnRFcnJvciIgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXZlbnRzIik7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvZyht
c2cpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmKGUgJiYg
ZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCi0gICAgICAgICAgICAgICAgZXZlbnRzLnB1c2go
bXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7Ci0gICAgICAgIH07Ci0gICAgfQotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4NTNlZDFlM2VhYTFiNWMyNmM5OGNkYTg2ZDQ4NTA1MDI3OTMw
OTNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3
LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBvcmRlcmluZyBmb3Ig
Q29uc3RyYWludEVycm9yIG9uIHJlcXVlc3QgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29y
ZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1M2VkMWUzZWFhMWI1YzI2
Yzk4Y2RhODZkNDg1MDUwMjc5MzA5M2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJ
bmRleCgpIC0gRXZlbnQgb3JkZXJpbmcgZm9yIENvbnN0cmFpbnRFcnJvciBvbiByZXF1ZXN0IAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVu
dF9vcmRlci1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlNzcz
ZDNkM2JlNDUwMTJhMGEwZDZkYjM5MzMyYjEzNjA3ODk1ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItcHJpdmF0ZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIEV2
ZW50IG9yZGVyaW5nIGZvciBDb25zdHJhaW50RXJyb3Igb24gcmVxdWVzdDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgotPG1ldGEgcmVsPWhlbHAgaHJlZj1odHRwOi8vb2RpbmhvLmh0bWw1
Lm9yZy9JbmRleGVkREIvc3BlYy9PdmVydmlldy5odG1sI2Rmbi1zdGVwcy1mb3ItYWJvcnRpbmct
YS10cmFuc2FjdGlvbj4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IlVubGVzcyBlcnJvciB3YXMg
c2V0IHRvIG51bGwsIGNyZWF0ZSBhIERPTUVycm9yIG9iamVjdCBhbmQgc2V0IGl0cyBuYW1lIHRv
IGVycm9yLiBTZXQgdHJhbnNhY3Rpb24ncyBlcnJvciBwcm9wZXJ0eSB0byB0aGlzIG5ld2x5IGNy
ZWF0ZWQgRE9NRXJyb3IuIj4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSB0cmFuc2Fj
dGlvbidzIHJlcXVlc3QgbGlzdCBjb250YWluIGFueSByZXF1ZXN0cyB3aG9zZSBkb25lIGZsYWcg
aXMgc3RpbGwgZmFsc2UsIGFib3J0IHRoZSBzdGVwcyBmb3IgYXN5bmNocm9ub3VzbHkgZXhlY3V0
aW5nIGEgcmVxdWVzdCBmb3IgZWFjaCBzdWNoIHJlcXVlc3QgYW5kIHF1ZXVlIGEgdGFzayB0byBw
ZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ij4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9InNl
dCB0aGUgcmVxdWVzdCdzIGVycm9yIGF0dHJpYnV0ZSB0byBhIERPTUVycm9yIHdpdGggYSB0eXBl
IG9mIEFib3J0RXJyb3IuIj4KLTxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9IkRpc3BhdGNoIGFuIGV2
ZW50IGF0IHJlcXVlc3QuIFRoZSBldmVudCBtdXN0IHVzZSB0aGUgRXZlbnQgaW50ZXJmYWNlIGFu
ZCBoYXZlIGl0cyB0eXBlIHNldCB0byAnZXJyb3InLiBUaGUgZXZlbnQgYnViYmxlcyBhbmQgaXMg
Y2FuY2VsYWJsZS4gVGhlIHByb3BhZ2F0aW9uIHBhdGggZm9yIHRoZSBldmVudCBpcyB0cmFuc2Fj
dGlvbidzIGNvbm5lY3Rpb24sIHRoZW4gdHJhbnNhY3Rpb24gYW5kIGZpbmFsbHkgdGhlIHJlcXVl
c3QuIFRoZXJlIGlzIG5vIGRlZmF1bHQgYWN0aW9uIGZvciB0aGUgZXZlbnQuIj4KLTxtZXRhIHJl
bD1hc3NlcnQgdGl0bGU9IlF1ZXVlIHVwIGFuIG9wZXJhdGlvbiB0byBkaXNwYXRjaCBhbiBldmVu
dCBhdCB0cmFuc2FjdGlvbi4gVGhlIGV2ZW50IG11c3QgdXNlIHRoZSBFdmVudCBpbnRlcmZhY2Ug
YW5kIGhhdmUgaXRzIHR5cGUgc2V0IHRvICdhYm9ydCcuIFRoZSBldmVudCBkb2VzIGJ1YmJsZSBi
dXQgaXMgbm90IGNhbmNlbGFibGUuIFRoZSBwcm9wYWdhdGlvbiBwYXRoIGZvciB0aGUgZXZlbnQg
aXMgdHJhbnNhY3Rpb24ncyBjb25uZWN0aW9uIGFuZCB0aGVuIHRyYW5zYWN0aW9uLiI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAg
IC8vIFRyYW5zYWN0aW9uIG1heSBmaXJlIHdpbmRvdy5vbmVycm9yIGluIHNvbWUgaW1wbGVtZW50
YXRpb25zLgotICAgIHNldHVwKHthbGxvd191bmNhdWdodF9leGNlcHRpb246dHJ1ZX0pOwotCi0g
ICAgdmFyIGRiLAotICAgICAgZXZlbnRzID0gW10sCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJh
bnNhY3Rpb247Ci0gICAgICAgIGRiLm9uZXJyb3IgPSBsb2coImRiLmVycm9yIik7Ci0gICAgICAg
IGRiLm9uYWJvcnQgPSBsb2coImRiLmFib3J0Iik7Ci0gICAgICAgIHR4bi5vbmFib3J0ID0gbG9n
KCJ0cmFuc2FjdGlvbi5hYm9ydCIpCi0gICAgICAgIHR4bi5vbmVycm9yID0gbG9nKCJ0cmFuc2Fj
dGlvbi5lcnJvciIpCi0gICAgICAgIHR4bi5vbmNvbXBsZXRlID0gbG9nKCJ0cmFuc2FjdGlvbi5j
b21wbGV0ZSIpCi0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIik7Ci0KLSAgICAgICAgdmFyIHJxX2FkZDEgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6
ICJVbmljb3JuIiB9LCAxKTsKLSAgICAgICAgcnFfYWRkMS5vbnN1Y2Nlc3MgPSBsb2coInJxX2Fk
ZDEuc3VjY2VzcyIpOwotICAgICAgICBycV9hZGQxLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMS5l
cnJvciIpOwotCi0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJhbmltYWwi
LCB7IHVuaXF1ZTogdHJ1ZSB9KQotCi0gICAgICAgIHZhciBycV9hZGQyID0gb2JqU3RvcmUuYWRk
KHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMik7Ci0gICAgICAgIHJxX2FkZDIub25zdWNjZXNzID0g
bG9nKCJycV9hZGQyLnN1Y2Nlc3MiKTsKLSAgICAgICAgcnFfYWRkMi5vbmVycm9yICAgPSBsb2co
InJxX2FkZDIuZXJyb3IiKTsKLQotICAgICAgICB2YXIgcnFfYWRkMyA9IG9ialN0b3JlLmFkZCh7
IGFuaW1hbDogIkhvcnNlIiB9LCAzKTsKLSAgICAgICAgcnFfYWRkMy5vbnN1Y2Nlc3MgPSBsb2co
InJxX2FkZDMuc3VjY2VzcyIpOwotICAgICAgICBycV9hZGQzLm9uZXJyb3IgICA9IGxvZygicnFf
YWRkMy5lcnJvciIpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgbG9nKCJvcGVuX3JxLmVycm9yIikoZSk7Ci0gICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZXZlbnRzLCBbICJycV9hZGQxLnN1Y2Nlc3MiLAotCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQyLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNhY3Rpb24uZXJyb3I6
IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJkYi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKLQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicnFfYWRkMy5lcnJvcjogQWJvcnRFcnJvciIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5lcnJvcjogQWJvcnRFcnJvciIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYi5lcnJvcjogQWJvcnRF
cnJvciIsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zYWN0
aW9uLmFib3J0OiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGIuYWJvcnQ6IENvbnN0cmFpbnRFcnJvciIsCi0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuZXJyb3I6IEFib3J0RXJyb3IiIF0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIpOwotICAgICAgICB0LmRvbmUoKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2cobXNnKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQot
ICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5u
YW1lKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cp
OwotICAgICAgICB9OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTc3M2QzZDNiZTQ1MDEyYTBhMGQ2ZGIz
OTMzMmIxMzYwNzg5NWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBvcmRlcmluZyBmb3IgQ29uc3RyYWludEVy
cm9yIG9uIHJlcXVlc3Q8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxtZXRhIHJlbD1o
ZWxwIGhyZWY9aHR0cDovL29kaW5oby5odG1sNS5vcmcvSW5kZXhlZERCL3NwZWMvT3ZlcnZpZXcu
aHRtbCNkZm4tc3RlcHMtZm9yLWFib3J0aW5nLWEtdHJhbnNhY3Rpb24+Ci08bWV0YSByZWw9YXNz
ZXJ0IHRpdGxlPSJVbmxlc3MgZXJyb3Igd2FzIHNldCB0byBudWxsLCBjcmVhdGUgYSBET01FcnJv
ciBvYmplY3QgYW5kIHNldCBpdHMgbmFtZSB0byBlcnJvci4gU2V0IHRyYW5zYWN0aW9uJ3MgZXJy
b3IgcHJvcGVydHkgdG8gdGhpcyBuZXdseSBjcmVhdGVkIERPTUVycm9yLiI+Ci08bWV0YSByZWw9
YXNzZXJ0IHRpdGxlPSJJZiB0aGUgdHJhbnNhY3Rpb24ncyByZXF1ZXN0IGxpc3QgY29udGFpbiBh
bnkgcmVxdWVzdHMgd2hvc2UgZG9uZSBmbGFnIGlzIHN0aWxsIGZhbHNlLCBhYm9ydCB0aGUgc3Rl
cHMgZm9yIGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBhIHJlcXVlc3QgZm9yIGVhY2ggc3VjaCBy
ZXF1ZXN0IGFuZCBxdWV1ZSBhIHRhc2sgdG8gcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOiI+
Ci08bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJzZXQgdGhlIHJlcXVlc3QncyBlcnJvciBhdHRyaWJ1
dGUgdG8gYSBET01FcnJvciB3aXRoIGEgdHlwZSBvZiBBYm9ydEVycm9yLiI+Ci08bWV0YSByZWw9
YXNzZXJ0IHRpdGxlPSJEaXNwYXRjaCBhbiBldmVudCBhdCByZXF1ZXN0LiBUaGUgZXZlbnQgbXVz
dCB1c2UgdGhlIEV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSBpdHMgdHlwZSBzZXQgdG8gJ2Vycm9y
Jy4gVGhlIGV2ZW50IGJ1YmJsZXMgYW5kIGlzIGNhbmNlbGFibGUuIFRoZSBwcm9wYWdhdGlvbiBw
YXRoIGZvciB0aGUgZXZlbnQgaXMgdHJhbnNhY3Rpb24ncyBjb25uZWN0aW9uLCB0aGVuIHRyYW5z
YWN0aW9uIGFuZCBmaW5hbGx5IHRoZSByZXF1ZXN0LiBUaGVyZSBpcyBubyBkZWZhdWx0IGFjdGlv
biBmb3IgdGhlIGV2ZW50LiI+Ci08bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJRdWV1ZSB1cCBhbiBv
cGVyYXRpb24gdG8gZGlzcGF0Y2ggYW4gZXZlbnQgYXQgdHJhbnNhY3Rpb24uIFRoZSBldmVudCBt
dXN0IHVzZSB0aGUgRXZlbnQgaW50ZXJmYWNlIGFuZCBoYXZlIGl0cyB0eXBlIHNldCB0byAnYWJv
cnQnLiBUaGUgZXZlbnQgZG9lcyBidWJibGUgYnV0IGlzIG5vdCBjYW5jZWxhYmxlLiBUaGUgcHJv
cGFnYXRpb24gcGF0aCBmb3IgdGhlIGV2ZW50IGlzIHRyYW5zYWN0aW9uJ3MgY29ubmVjdGlvbiBh
bmQgdGhlbiB0cmFuc2FjdGlvbi4iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICAvLyBUcmFuc2FjdGlvbiBtYXkgZmlyZSB3aW5k
b3cub25lcnJvciBpbiBzb21lIGltcGxlbWVudGF0aW9ucy4KLSAgICBzZXR1cCh7YWxsb3dfdW5j
YXVnaHRfZXhjZXB0aW9uOnRydWV9KTsKLQotICAgIHZhciBkYiwKLSAgICAgIGV2ZW50cyA9IFtd
LAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0p
Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAg
ICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOwotICAgICAgICBkYi5vbmVycm9y
ID0gbG9nKCJkYi5lcnJvciIpOwotICAgICAgICBkYi5vbmFib3J0ID0gbG9nKCJkYi5hYm9ydCIp
OwotICAgICAgICB0eG4ub25hYm9ydCA9IGxvZygidHJhbnNhY3Rpb24uYWJvcnQiKQotICAgICAg
ICB0eG4ub25lcnJvciA9IGxvZygidHJhbnNhY3Rpb24uZXJyb3IiKQotICAgICAgICB0eG4ub25j
b21wbGV0ZSA9IGxvZygidHJhbnNhY3Rpb24uY29tcGxldGUiKQotCi0gICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotCi0gICAgICAgIHZhciBycV9h
ZGQxID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMSk7Ci0gICAgICAgIHJx
X2FkZDEub25zdWNjZXNzID0gbG9nKCJycV9hZGQxLnN1Y2Nlc3MiKTsKLSAgICAgICAgcnFfYWRk
MS5vbmVycm9yICAgPSBsb2coInJxX2FkZDEuZXJyb3IiKTsKLQotICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCAiYW5pbWFsIiwgeyB1bmlxdWU6IHRydWUgfSkKLQotICAgICAg
ICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOwot
ICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNjZXNzIik7Ci0gICAg
ICAgIHJxX2FkZDIub25lcnJvciAgID0gbG9nKCJycV9hZGQyLmVycm9yIik7Ci0KLSAgICAgICAg
dmFyIHJxX2FkZDMgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJIb3JzZSIgfSwgMyk7Ci0gICAg
ICAgIHJxX2FkZDMub25zdWNjZXNzID0gbG9nKCJycV9hZGQzLnN1Y2Nlc3MiKTsKLSAgICAgICAg
cnFfYWRkMy5vbmVycm9yICAgPSBsb2coInJxX2FkZDMuZXJyb3IiKTsKLSAgICB9Ci0KLSAgICBv
cGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGxvZygib3Blbl9ycS5lcnJv
ciIpKGUpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWyAicnFfYWRkMS5z
dWNjZXNzIiwKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRk
Mi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRyYW5zYWN0aW9uLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIs
Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDMuZXJyb3I6
IEFib3J0RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJh
bnNhY3Rpb24uZXJyb3I6IEFib3J0RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGIuZXJyb3I6IEFib3J0RXJyb3IiLAotCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5hYm9ydDogQ29uc3RyYWludEVycm9yIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiLmFib3J0OiBDb25zdHJh
aW50RXJyb3IiLAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVu
X3JxLmVycm9yOiBBYm9ydEVycm9yIiBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
dmVudHMiKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9nKG1z
ZykgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgaWYoZSAmJiBl
LnRhcmdldCAmJiBlLnRhcmdldC5lcnJvcikKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaCht
c2cgKyAiOiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnKTsKLSAgICAgICAgfTsKLSAgICB9Ci08L3Njcmlw
dD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk3NmVmZDIyZWM1YzZmZGJhMzBjZjc1OWVkYjc5ODk2ODE1ZTNk
ZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgt
dmFsaWRfa2V5cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gaW5kZXggY2FuIGJlIHZhbGlkIGtl
eXMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4OC12YWxpZF9rZXlzLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5NzZlZmQyMmVjNWM2ZmRiYTMwY2Y3NTllZGI3OTg5NjgxNWUzZGU4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlk
X2tleXMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gaW5kZXggY2FuIGJlIHZhbGlk
IGtleXMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDgtdmFsaWRfa2V5cy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE3MmZlYjJmMDljODY3Mzc2MjFjNDYyMDFjN2JhZDNiOGI3NTdhM2IuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1wcml2YXRl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgp
IC0gaW5kZXggY2FuIGJlIHZhbGlkIGtleXM8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhy
ZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4K
LTxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQg
PSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDoxOTAwMH0pLAotICAgICAgbm93
ID0gbmV3IERhdGUoKSwKLSAgICAgIG1hcjE4ID0gbmV3IERhdGUoMTExMTExMTExMTExMSksCi0g
ICAgICBhciA9IFsiWWF5IiwgMiwgLUluZmluaXR5XSwKLSAgICAgIG51bSA9IDEzMzcKLQotICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2
YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCi0gICAgICAgICAgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICdrZXknIH0pOwotCi0gICAgICAg
IG9ialN0b3JlLmFkZCh7IGtleTogIm5vdyIsICAgIGk6IG5vdyAgIH0pOwotICAgICAgICBvYmpT
dG9yZS5hZGQoeyBrZXk6ICJtYXIxOCIsICBpOiBtYXIxOCB9KTsKLSAgICAgICAgb2JqU3RvcmUu
YWRkKHsga2V5OiAiYXJyYXkiLCAgaTogYXIgICAgfSk7Ci0gICAgICAgIG9ialN0b3JlLmFkZCh7
IGtleTogIm51bWJlciIsIGk6IG51bSAgIH0pOwotCi0gICAgICAgIHZhciBpZHggPSBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaSIpCi0KLSAgICAgICAgaWR4LmdldChub3cpLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ25vdycsICdrZXknKTsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmkuZ2V0VGltZSgpLCBub3cuZ2V0VGltZSgpLCAnZ2V0
VGltZScpOwotICAgICAgICB9KTsKLSAgICAgICAgaWR4LmdldChtYXIxOCkub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQua2V5LCAnbWFyMTgnLCAna2V5Jyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdC5pLmdldFRpbWUoKSwgbWFyMTguZ2V0VGltZSgpLCAnZ2V0VGlt
ZScpOwotICAgICAgICB9KTsKLSAgICAgICAgaWR4LmdldChhcikub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQua2V5LCAnYXJyYXknLCAna2V5Jyk7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdC5pLCBhciwgJ2FycmF5IGlzIHRoZSBzYW1lJyk7Ci0gICAgICAg
IH0pOwotICAgICAgICBpZHguZ2V0KG51bSkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAn
bnVtYmVyJywgJ2tleScpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQuaSwgbnVtLCAnbnVtYmVyIGlzIHRoZSBzYW1lJyk7Ci0gICAgICAgIH0pOwotICAgIH0KLQot
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHQuZG9uZSgpOwot
ICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDgtdmFsaWRfa2V5cy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLmh0bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTcyZmViMmYwOWM4NjczNzYyMWM0NjIwMWM3YmFkM2I4Yjc1N2EzYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxp
ZF9rZXlzLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCkgLSBpbmRleCBjYW4gYmUgdmFsaWQga2V5czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgotPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAg
ICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OjE5MDAwfSksCi0gICAg
ICBub3cgPSBuZXcgRGF0ZSgpLAotICAgICAgbWFyMTggPSBuZXcgRGF0ZSgxMTExMTExMTExMTEx
KSwKLSAgICAgIGFyID0gWyJZYXkiLCAyLCAtSW5maW5pdHldLAotICAgICAgbnVtID0gMTMzNwot
Ci0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbiwKLSAgICAgICAgICBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogJ2tleScgfSk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiAibm93IiwgICAgaTogbm93ICAgfSk7Ci0gICAgICAg
IG9ialN0b3JlLmFkZCh7IGtleTogIm1hcjE4IiwgIGk6IG1hcjE4IH0pOwotICAgICAgICBvYmpT
dG9yZS5hZGQoeyBrZXk6ICJhcnJheSIsICBpOiBhciAgICB9KTsKLSAgICAgICAgb2JqU3RvcmUu
YWRkKHsga2V5OiAibnVtYmVyIiwgaTogbnVtICAgfSk7Ci0KLSAgICAgICAgdmFyIGlkeCA9IG9i
alN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpIikKLQotICAgICAgICBpZHguZ2V0KG5vdyku
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAnbm93JywgJ2tleScpOwotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaS5nZXRUaW1lKCksIG5vdy5nZXRUaW1lKCks
ICdnZXRUaW1lJyk7Ci0gICAgICAgIH0pOwotICAgICAgICBpZHguZ2V0KG1hcjE4KS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdC5rZXksICdtYXIxOCcsICdrZXknKTsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmkuZ2V0VGltZSgpLCBtYXIxOC5nZXRUaW1lKCksICdn
ZXRUaW1lJyk7Ci0gICAgICAgIH0pOwotICAgICAgICBpZHguZ2V0KGFyKS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LnJlc3VsdC5rZXksICdhcnJheScsICdrZXknKTsKLSAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmksIGFyLCAnYXJyYXkgaXMgdGhlIHNhbWUnKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIGlkeC5nZXQobnVtKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5r
ZXksICdudW1iZXInLCAna2V5Jyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdC5pLCBudW0sICdudW1iZXIgaXMgdGhlIHNhbWUnKTsKLSAgICAgICAgfSk7Ci0gICAg
fQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdC5kb25l
KCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4OS1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FlZTliZTMzMWVmYTZkNjJkYzI0
YWNkZGI2YjUwMjZjMWNlYTZiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5
IG5hbWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXg5LWVtcHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2FlZTliZTMzMWVmYTZkNjJkYzI0YWNkZGI2YjUwMjZjMWNlYTZiMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0
eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZW1wdHkgbmFtZSAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1w
cml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ODkxZjRmMjVlNGMy
OTBjMDNjNWNjMTMxMDNmMWNkZjM1Y2M1NDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYt
OD4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZW1wdHkgbmFtZTwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRp
dGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQu
anM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiCi0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgdmFyIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKLQotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDU7IGkrKykKLSAgICAgICAgICAgIHN0b3JlLmFkZCh7IGlkeDogIm9iamVjdF8i
ICsgaSB9LCBpKQotCi0gICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCIiLCAiaWR4IikKLQotICAg
ICAgICBzdG9yZS5pbmRleCgiIikKLSAgICAgICAgICAgICAuZ2V0KCdvYmplY3RfNCcpCi0gICAg
ICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmlkeCwgJ29iamVjdF80JywgJ3Jl
c3VsdCcpCi0gICAgICAgIH0pCi0gICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1l
c1swXSwgIiIsICJpbmRleE5hbWVzWzBdIikKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5p
bmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3RoIikKLSAgICB9Ci0KLSAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc3RvcmUgPSBkYi50
cmFuc2FjdGlvbigic3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKQotCi0gICAgICAgIGFzc2Vy
dF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lc1swXSwgIiIsICJpbmRleE5hbWVzWzBdIikKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMu
bGVuZ3RoIikKLQotICAgICAgICB0aGlzLmRvbmUoKQotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1l
bXB0eW5hbWUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODg5MWY0ZjI1ZTRj
MjkwYzAzYzVjYzEzMTAzZjFjZGYzNWNjNTQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS5odG0KKysrIC9kZXYvbnVsbApAQCAt
MSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0
bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5IG5hbWU8L3RpdGxlPgotPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2Ny
aXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYgotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yihhc3luY190ZXN0KCkpCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgICAgIHZhciBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCi0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCA1OyBpKyspCi0gICAgICAgICAgICBzdG9yZS5hZGQoeyBpZHg6ICJvYmplY3RfIiArIGkgfSwg
aSkKLQotICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiIiwgImlkeCIpCi0KLSAgICAgICAgc3Rv
cmUuaW5kZXgoIiIpCi0gICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQotICAgICAgICAgICAg
IC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pZHgsICdvYmplY3RfNCcsICdyZXN1bHQnKQot
ICAgICAgICB9KQotICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNbMF0sICIi
LCAiaW5kZXhOYW1lc1swXSIpCi0gICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1l
cy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpCi0gICAgfQotCi0gICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rp
b24oInN0b3JlIikub2JqZWN0U3RvcmUoInN0b3JlIikKLQotICAgICAgICBhc3NlcnRfZXF1YWxz
KHN0b3JlLmluZGV4TmFtZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCi0gICAgICAgIGFzc2Vy
dF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIp
Ci0KLSAgICAgICAgdGhpcy5kb25lKCkKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyOTg2NzQ2M2QzNTNhZTlkYTU4ODczMWUyOGZiNTVjMTUx
ZmRiZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0
U3RvcmUuZGVsZXRlKCkgLSBkZWxldGUgcmVtb3ZlcyByZWNvcmQgKGlubGluZSBrZXlzKSAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDI5ODY3NDYzZDM1M2FlOWRhNTg4NzMxZTI4
ZmI1NWMxNTFmZGJkNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1QQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gZGVsZXRlIHJlbW92ZXMgcmVjb3JkIChp
bmxpbmUga2V5cykgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLXByaXZhdGUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIzYzIwMjFkMzEzYTc3YzVjNmZkMjRlYzQw
MTUzZDljOTYyYjBjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5k
ZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAoaW5saW5lIGtleXMpPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAg
cmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgZGVsZXRlX3JxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiLCAicmVhZHdyaXRlIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlbGV0ZShyZWNvcmQu
a2V5KTsKLQotICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVm
aW5lZCk7Ci0KLSAgICAgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0
LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRSZW1vdmVkKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQot
ICAgIGZ1bmN0aW9uIFZlcmlmeVJlY29yZFJlbW92ZWQoKSB7Ci0gICAgICAgIHZhciBycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRl
c3QiKQotICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7Ci0KLSAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2RlbGV0ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcy
M2MyMDIxZDMxM2E3N2M1YzZmZDI0ZWM0MDE1M2Q5Yzk2MmIwYzcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDYg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBkZWxldGUgcmVtb3ZlcyByZWNvcmQgKGlubGluZSBr
ZXlzKTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07Ci0K
LSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0
aDogImtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOwotICAgIH07Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGRlbGV0ZV9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IC5kZWxldGUocmVjb3JkLmtleSk7Ci0KLSAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCB1bmRlZmluZWQpOwotCi0gICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlv
bi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7Ci0gICAgICAg
IH0pOwotICAgIH07Ci0KLSAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgewotICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkp
OwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwotICAg
ICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlOWFmYTYxZDRjMDRjMzhjN2JmMWMw
YTBhMWEyYjg4MTA5YmQ4MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9kZWxldGUyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0ga2V5IGRvZXNuJ3QgbWF0Y2ggYW55IHJlY29y
ZHMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTItcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlOWFmYTYxZDRjMDRjMzhj
N2JmMWMwYTBhMWEyYjg4MTA5YmQ4MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGUyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBrZXkgZG9lc24ndCBt
YXRjaCBhbnkgcmVjb3JkcyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTItcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTBjMTVlYjQxYmIwY2JhMWMx
OWQyNWU0Mzc0YzVhNTczYzEzNzZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlMi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5kZWxldGUoKSAtIGtleSBkb2Vzbid0IG1hdGNoIGFueSByZWNvcmRzIDwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAg
ICAgIHZhciBkZWxldGVfcnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIC5kZWxldGUoMSk7Ci0KLSAgICAgICAgZGVsZXRlX3JxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0g
ICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTIuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTBj
MTVlYjQxYmIwY2JhMWMxOWQyNWU0Mzc0YzVhNTczYzEzNzZhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwyNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5J
REJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGtleSBkb2Vzbid0IG1hdGNoIGFueSByZWNvcmRzIDwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
Ci0gICAgICAgIHZhciBkZWxldGVfcnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGUoMSk7Ci0KLSAgICAgICAgZGVsZXRlX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwotICAgICAgICAgICAgdC5kb25l
KCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2MjZkOWEwMDAzMTE5M2EwZWMxNWQ4NmE1ODE2ZTY4M2RiZTAy
NmRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RT
dG9yZS5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRy
aWJ1dGUgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyNmQ5YTAwMDMxMTkz
YTBlYzE1ZDg2YTU4MTZlNjgzZGJlMDI2ZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGUzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBvYmplY3Qgc3Rv
cmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlMy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZiOWU0ZmY4ODNkYTk4YzM2OGY2YzM1MmVmMWIyZDAyNDAxZDRjZDUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5
IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAg
IHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IHRlc3Q6
IHsgb2JqOiB7IGtleTogMSB9IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAidGVzdC5vYmou
a2V5IiB9KTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgZGVsZXRlX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmRl
bGV0ZShyZWNvcmQudGVzdC5vYmoua2V5KTsKLQotICAgICAgICBkZWxldGVfcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0KLSAgICAgICAgICAgIGUudGFyZ2V0LnRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRSZW1vdmVkKTsKLSAg
ICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIFZlcmlmeVJlY29yZFJlbW92ZWQoKSB7
Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3Jk
LnRlc3Qub2JqLmtleSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVu
ZGVmaW5lZCk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjllNGZmODgzZGE5OGMzNjhmNmMzNTJl
ZjFiMmQwMjQwMWQ0Y2Q1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlMy5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGUo
KSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgICAgcmVjb3JkID0geyB0ZXN0OiB7IG9iajogeyBrZXk6IDEgfSB9LCBwcm9wZXJ0eTogImRh
dGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHsga2V5UGF0aDogInRlc3Qub2JqLmtleSIgfSk7Ci0gICAgICAgIG9ialN0b3JlLmFkZChyZWNv
cmQpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgdmFyIGRlbGV0ZV9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIC5kZWxldGUocmVjb3JkLnRlc3Qub2JqLmtleSk7Ci0KLSAgICAg
ICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwotCi0gICAg
ICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVy
aWZ5UmVjb3JkUmVtb3ZlZCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLSAgICBmdW5jdGlvbiBW
ZXJpZnlSZWNvcmRSZW1vdmVkKCkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKLSAgICAgICAg
ICAgICAgICAgICAuZ2V0KHJlY29yZC50ZXN0Lm9iai5rZXkpOwotCi0gICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0g
ICAgICAgIH0pOwotICAgIH0KLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDcwYTc4NmM0MWRiMjIzMzE4MGI3NWQ2YjBjMWY4MjgyZjU4ZjM4YS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTQtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUu
ZGVsZXRlKCkgLSBkZWxldGUgcmVtb3ZlcyByZWNvcmQgKG91dC1vZi1saW5lIGtleXMpICAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGU0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0LXByaXZhdGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzBhNzg2YzQxZGIyMjMzMTgwYjc1ZDZi
MGMxZjgyODJmNThmMzhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlNC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gZGVsZXRlIHJlbW92ZXMgcmVjb3Jk
IChvdXQtb2YtbGluZSBrZXlzKSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTQtcHJp
dmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZmE0NTBjOTlhZmM1MDM5
YzMxOTU2NWM2MTg4MWY5ZGQyNTBkYTAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlNC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJP
YmplY3RTdG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAob3V0LW9mLWxpbmUg
a2V5cykgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5
bmNfdGVzdCgpLAotICAgICAga2V5ID0gMSwKLSAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJk
YXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
KTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwga2V5KTsKLSAgICB9OwotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkZWxldGVfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVs
ZXRlKGtleSk7Ci0KLSAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1
bmRlZmluZWQpOwotCi0gICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7Ci0gICAgICAgIH0pOwotICAgIH07
Ci0KLSAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgewotICAgICAgICB2YXIgcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAuZ2V0KGtleSk7Ci0KLSAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsK
LSAgICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTQuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
ZmE0NTBjOTlhZmM1MDM5YzMxOTU2NWM2MTg4MWY5ZGQyNTBkYTAxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0
OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5JREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAob3V0LW9m
LWxpbmUga2V5cykgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0
ID0gYXN5bmNfdGVzdCgpLAotICAgICAga2V5ID0gMSwKLSAgICAgIHJlY29yZCA9IHsgcHJvcGVy
dHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiKTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwga2V5KTsKLSAgICB9OwotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkZWxldGVf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAuZGVsZXRlKGtleSk7Ci0KLSAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LCB1bmRlZmluZWQpOwotCi0gICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNv
bXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7Ci0gICAgICAgIH0pOwot
ICAgIH07Ci0KLSAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgewotICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAuZ2V0KGtleSk7Ci0KLSAgICAgICAg
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0gICAgICAgICAgICB0LmRv
bmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGRhOTZiZGE1YjRmYWFhZDZjZTU0MjE2ZTYyOTliNmEy
Y2U0MTlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmpl
Y3RTdG9yZS5kZWxldGUoKSAtIHJlbW92ZXMgYWxsIG9mIHRoZSByZWNvcmRzIGluIHRoZSByYW5n
ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGU1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU1LXByaXZhdGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGRhOTZiZGE1YjRmYWFhZDZj
ZTU0MjE2ZTYyOTliNmEyY2U0MTlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlNS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gcmVtb3ZlcyBhbGwgb2Yg
dGhlIHJlY29yZHMgaW4gdGhlIHJhbmdlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU1
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ3OWI3YzNiNDU4
YjZkYjVkOTc2OTY3MTVkYTI5YTJiYjlkZWY3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTUtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkg
LSByZW1vdmVzIGFsbCBvZiB0aGUgcmVjb3JkcyBpbiB0aGUgcmFuZ2U8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGRiCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCkp
Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgdmFyIG9zID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIikKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykKLSAgICAg
ICAgICAgIG9zLmFkZCgiZGF0YSIgKyBpLCBpKQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgdmFyIG9zID0gZGIudHJhbnNhY3Rpb24oInN0
b3JlIiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCi0KLSAgICAgICAgb3MuZGVsZXRlKCBJREJLZXlSYW5nZS5ib3VuZCgzLCA2KSApCi0gICAg
ICAgIG9zLmNvdW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDYsICJD
b3VudCBhZnRlciBkZWxldGluZyAzLTYgZnJvbSAxMCIpOwotICAgICAgICAgICAgdGhpcy5kb25l
KCk7Ci0gICAgICAgIH0pCi0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGU1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBk
NzliN2MzYjQ1OGI2ZGI1ZDk3Njk2NzE1ZGEyOWEyYmI5ZGVmN2UuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU1Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDMy
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmRlbGV0ZSgp
IC0gcmVtb3ZlcyBhbGwgb2YgdGhlIHJlY29yZHMgaW4gdGhlIHJhbmdlPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotICAgIHZhciBkYgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgp
KQotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgICAgIHZhciBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIpCi0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCi0gICAg
ICAgICAgICBvcy5hZGQoImRhdGEiICsgaSwgaSkKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIHZhciBvcyA9IGRiLnRyYW5zYWN0aW9uKCJz
dG9yZSIsICJyZWFkd3JpdGUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3Rv
cmUiKQotCi0gICAgICAgIG9zLmRlbGV0ZSggSURCS2V5UmFuZ2UuYm91bmQoMywgNikgKQotICAg
ICAgICBvcy5jb3VudCgpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA2LCAi
Q291bnQgYWZ0ZXIgZGVsZXRpbmcgMy02IGZyb20gMTAiKTsKLSAgICAgICAgICAgIHRoaXMuZG9u
ZSgpOwotICAgICAgICB9KQotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZWMxZjBiM2YwODBiYzU0MDFkYTVlZjVlZTMxZDI0ZDBjYmZiOWJl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9y
ZS5kZWxldGUoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9u
Z3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvciAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGU2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWMxZjBiM2YwODBiYzU0MDFkYTVl
ZjVlZTMxZDI0ZDBjYmZiOWJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlNi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gSWYgdGhlIHRyYW5zYWN0aW9u
IHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRv
bmx5LCB0aHJvdyBSZWFkT25seUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI1NGUwNDMyNWY5
M2E0ZjRmN2U2NmNlYmYwZTkwYTg1MTFiYjA1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTYtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmpl
Y3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93IFJl
YWRPbmx5RXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQk9iamVjdFN0b3JlLWRlbGV0ZS1JREJSZXF1ZXN0LWFueS1rZXkiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08
c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgICAg
cmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKLSAgICAgICAgICAgICAgICAgICB7
IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAg
ICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Ci0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpOwotICAgICAgICB2YXIgb3N0b3JlID0gdHhuLm9iamVjdFN0b3JlKCJz
dG9yZSIpOwotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5jdGlvbigpewotICAgICAgICAgICAgICAgIG9zdG9y
ZS5kZWxldGUoInByaW1hcnlLZXlfMCIpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwot
ICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2Lmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
Ni5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNTRlMDQzMjVmOTNhNGY0Zjdl
NjZjZWJmMGU5MGE4NTExYmIwNWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGU2Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmRl
bGV0ZSgpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0
byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50
ZWwuY29tIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9J
bmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1k
ZWxldGUtSURCUmVxdWVzdC1hbnkta2V5Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICAgIHJlY29yZHMgPSBbeyBwS2V5
OiAicHJpbWFyeUtleV8wIn0sCi0gICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8xIn1dOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRz
W2ldKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24gKGV2ZW50KSB7Ci0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKTsK
LSAgICAgICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAg
dC5zdGVwKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJSZWFkT25seUVy
cm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAgICBvc3RvcmUuZGVsZXRlKCJwcmltYXJ5
S2V5XzAiKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7
Ci0gICAgfQotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmQ1YThmZGZlZjhjMjZlN2I5
ODZlYWFlYmZkNWQxYjc0YmU1YzNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBJREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFz
IGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRp
b24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGU3LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3NmQ1YThmZGZlZjhjMjZlN2I5ODZlYWFlYmZkNWQxYjc0YmU1YzNiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1wcml2YXRlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3Jl
LmRlbGV0ZSgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1w
bGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0
ZUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LXByaXZhdGUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmYxNTdiOTc0MTRhYTMwNzk3ODI2MDEzOTFmOWVj
YmI3YzE0MWY5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0
ZTctcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVs
ZXRlKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1l
bnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJy
b3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVj
dFN0b3JlLWRlbGV0ZS1JREJSZXF1ZXN0LWFueS1rZXkiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0Pgot
ICAgIHZhciBkYiwKLSAgICAgICAgb3N0b3JlLAotICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAotICAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICBvc3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKLSAgICAgICAg
ZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7Ci0g
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7
Ci0gICAgICAgICAgICAgICAgb3N0b3JlLmRlbGV0ZSgicHJpbWFyeUtleV8wIik7Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9kZWxldGU3Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmYxNTdiOTc0MTRhYTMwNzk3ODI2MDEzOTFmOWVjYmI3YzE0MWY5NC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTcuaHRtCisrKyAvZGV2L251bGwKQEAg
LTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBi
ZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9u
IG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWRlbGV0ZS1JREJSZXF1ZXN0LWFueS1rZXki
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9
ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgb3N0b3JlLAotICAg
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1h
cnlLZXlfMCJ9LAotICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsK
LQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OwotICAgICAgICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5
UGF0aDoicEtleSJ9KTsKLSAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0g
ICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAg
ICAgdC5zdGVwKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlk
U3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgb3N0b3JlLmRlbGV0ZSgi
cHJpbWFyeUtleV8wIik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHQu
ZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlSW5kZXgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODg5
NGM2MjE4OTgzNGZiM2MzYWU3YmFiYTY3YmYwZGRhOTI5MTcwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKSAt
IHJlbW92ZXMgdGhlIGluZGV4ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlSW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGM4ODk0YzYyMTg5ODM0ZmIzYzNhZTdiYWJhNjdiZjBkZGE5MjkxNzAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC1wcml2YXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0
b3JlLmRlbGV0ZUluZGV4KCkgLSByZW1vdmVzIHRoZSBpbmRleCAgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5k
ZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGVJbmRleC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRmMmY3ZmFkYzk2N2M1ODg0M2IwNWU2YTAxYTdkNThjMjU1ZDhmZjEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC1wcml2YXRlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGVJbmRleCgpIC0g
cmVtb3ZlcyB0aGUgaW5kZXggPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0g
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAga2V5ID0gMSwKLSAgICAgIHJlY29yZCA9IHsg
cHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IikKLSAg
ICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCi0gICAgfTsK
LQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYi5jbG9z
ZSgpOwotICAgICAgICB2YXIgbmV3X3ZlcnNpb24gPSBjcmVhdGVkYih0LCBkYi5uYW1lLCAyKTsK
LSAgICAgICAgbmV3X3ZlcnNpb24ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUg
PSBlLnRhcmdldC50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgICBv
YmpTdG9yZS5kZWxldGVJbmRleCgiaW5kZXgiKTsKLSAgICAgICAgfQotICAgICAgICBuZXdfdmVy
c2lvbi5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgaW5kZXgsCi0g
ICAgICAgICAgICAgIG9ialN0b3JlID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7Ci0KLSAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoJ05vdEZvdW5kRXJyb3InLAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkg
eyBpbmRleCA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpIH0pOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhpbmRleCwgdW5kZWZpbmVkKTsKLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAg
ICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0
ZUluZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlSW5kZXguaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjJm
N2ZhZGM5NjdjNTg4NDNiMDVlNmEwMWE3ZDU4YzI1NWQ4ZmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXguaHRtCisrKyAvZGV2L251bGwKQEAgLTEs
NDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKSAtIHJlbW92ZXMgdGhlIGluZGV4IDwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
LSAgICAgIGtleSA9IDEsCi0gICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpCi0gICAgICAgICAgLmNyZWF0ZUluZGV4KCJp
bmRleCIsICJpbmRleGVkUHJvcGVydHkiKQotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIuY2xvc2UoKTsKLSAgICAgICAgdmFyIG5ld192
ZXJzaW9uID0gY3JlYXRlZGIodCwgZGIubmFtZSwgMik7Ci0gICAgICAgIG5ld192ZXJzaW9uLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OwotICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQudHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoInRlc3QiKQotICAgICAgICAgICAgb2JqU3RvcmUuZGVsZXRlSW5kZXgoImlu
ZGV4Iik7Ci0gICAgICAgIH0KLSAgICAgICAgbmV3X3ZlcnNpb24ub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgdmFyIGluZGV4LAotICAgICAgICAgICAgICBvYmpTdG9yZSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpOwotCi0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdOb3RGb3VuZEVy
cm9yJywKLSAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgaW5kZXggPSBvYmpTdG9yZS5pbmRl
eCgiaW5kZXgiKSB9KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgsIHVuZGVmaW5l
ZCk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0Pgot
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4Y2U4ZGFjMTJhMzUwNDY4
M2RlODA0ZTgwOWM2MDU3OGQxMzBkZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIEF0dGVtcHRpbmcgdG8gdXNlIGRlbGV0ZWQgSURCT2JqZWN0U3RvcmUgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1wcml2YXRlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThjZThkYWMxMmEzNTA0NjgzZGU4MDRlODA5
YzYwNTc4ZDEzMGRkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBBdHRlbXB0aW5nIHRvIHVzZSBkZWxldGVkIElEQk9iamVjdFN0b3JlIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZWQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOGI4Zjc0MGI2NTZhNTFkMjY2MzhiYzUyYWY0OWQyMWEzNTYxY2Q0Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQtcHJpdmF0ZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PXV0Zi04PgotPHRpdGxlPkF0dGVtcHRpbmcgdG8gdXNlIGRlbGV0ZWQgSURCT2JqZWN0
U3RvcmU8L3RpdGxlPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNvYmplY3Qtc3RvcmUiPgotPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iSW52YWxpZFN0YXRlRXJyb3IgT2NjdXJzIGlmIGEgcmVxdWVz
dCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVt
b3ZlZC4iPgotPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIg
dGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9y
dC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBhZGRfc3VjY2Vz
cyA9IGZhbHNlLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pCi0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLQotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIu
b2JqZWN0U3RvcmVOYW1lc1swXSwgInN0b3JlIiwgIm9iamVjdFN0b3JlTmFtZXMiKTsKLQotICAg
ICAgICB2YXIgcnFfYWRkID0gb2JqU3RvcmUuYWRkKDEpOwotICAgICAgICBycV9hZGQub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7IGFkZF9zdWNjZXNzID0gdHJ1ZTsgfTsKLSAgICAgICAgcnFfYWRk
Lm9uZXJyb3IgPSBmYWlsKHQsICdycV9hZGQuZXJyb3InKTsKLQotICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaWR4IiwgImEiKTsKLSAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0
b3JlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgs
IDAsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBhZnRlciBkZWxldGUiKTsKLQotICAgICAgICBh
c3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5hZGQoMik7IH0pOwotICAg
ICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5wdXQoMyk7IH0p
OwotICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5nZXQo
MSk7IH0pOwotICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9y
ZS5jbGVhcigpOyB9KTsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsg
b2JqU3RvcmUuY291bnQoKTsgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rp
b24oKSB7IG9ialN0b3JlLmRlbGV0ZSgxKTsgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MobnVs
bCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsgfSk7Ci0gICAgICAgIGFzc2Vy
dF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmluZGV4KCJpZHgiKTsgfSk7Ci0g
ICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmRlbGV0ZUlu
ZGV4KCJpZHgiKTsgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7
IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpZHgyIiwgImEiKTsgfSk7Ci0gICAgfQotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoYWRkX3N1
Y2Nlc3MsICJGaXJzdCBhZGQgd2FzIHN1Y2Nlc3NmdWwiKTsKLSAgICAgICAgdC5kb25lKCk7Ci0g
ICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
ZC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiOGY3NDBiNjU2YTUxZDI2NjM4
YmM1MmFmNDlkMjFhMzU2MWNkNDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGVkLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5BdHRlbXB0aW5nIHRvIHVzZSBk
ZWxldGVkIElEQk9iamVjdFN0b3JlPC90aXRsZT4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjb2Jq
ZWN0LXN0b3JlIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkludmFsaWRTdGF0ZUVycm9yIE9j
Y3VycyBpZiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIHNvdXJjZSBvYmplY3QgdGhhdCBoYXMgYmVl
biBkZWxldGVkIG9yIHJlbW92ZWQuIj4KLTxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAot
ICAgICAgYWRkX3N1Y2Nlc3MgPSBmYWxzZSwKLSAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KQotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwotICAgICAgICBh
c3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbMF0sICJzdG9yZSIsICJvYmplY3RTdG9y
ZU5hbWVzIik7Ci0KLSAgICAgICAgdmFyIHJxX2FkZCA9IG9ialN0b3JlLmFkZCgxKTsKLSAgICAg
ICAgcnFfYWRkLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeyBhZGRfc3VjY2VzcyA9IHRydWU7IH07
Ci0gICAgICAgIHJxX2FkZC5vbmVycm9yID0gZmFpbCh0LCAncnFfYWRkLmVycm9yJyk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJhIik7Ci0gICAgICAgIGRiLmRlbGV0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0
b3JlTmFtZXMubGVuZ3RoLCAwLCAib2JqZWN0U3RvcmVOYW1lcy5sZW5ndGggYWZ0ZXIgZGVsZXRl
Iik7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUu
YWRkKDIpOyB9KTsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2Jq
U3RvcmUucHV0KDMpOyB9KTsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigp
IHsgb2JqU3RvcmUuZ2V0KDEpOyB9KTsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5j
dGlvbigpIHsgb2JqU3RvcmUuY2xlYXIoKTsgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MobnVs
bCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmNvdW50KCk7IH0pOwotICAgICAgICBhc3NlcnRfdGhy
b3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5kZWxldGUoMSk7IH0pOwotICAgICAgICBh
c3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7IH0p
OwotICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5pbmRl
eCgiaWR4Iik7IH0pOwotICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBv
YmpTdG9yZS5kZWxldGVJbmRleCgiaWR4Iik7IH0pOwotICAgICAgICBhc3NlcnRfdGhyb3dzKG51
bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4MiIsICJhIik7IH0pOwot
ICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFz
c2VydF90cnVlKGFkZF9zdWNjZXNzLCAiRmlyc3QgYWRkIHdhcyBzdWNjZXNzZnVsIik7Ci0gICAg
ICAgIHQuZG9uZSgpOwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjM0ZTJhZTI1YzRkMjg3OWRhYjlkMjYwODA0OTgxZmEwMTU4NzcyOC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBp
cyBhIG51bWJlciAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzNGUyYWUyNWM0ZDI4Nzlk
YWI5ZDI2MDgwNDk4MWZhMDE1ODc3MjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9nZXQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIG51bWJlciAgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfZ2V0LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzU4M2VhZDNlZWQ3MDE3ZTFmNGJiOWJmYTMwNzUxZjgwMTAzMTE3YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldC1wcml2YXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIG51bWJlciA8
L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0
KCksCi0gICAgICByZWNvcmQgPSB7IGtleTogMy4xNDE1OTI2NSwgcHJvcGVydHk6ICJkYXRhIiB9
OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0g
ICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkK
LSAgICAgICAgICAuYWRkKHJlY29yZCk7Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
Ci0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAg
ICAgICAgLmdldChyZWNvcmQua2V5KTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJl
c3VsdC5rZXksIHJlY29yZC5rZXkpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7Ci0gICAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfZ2V0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZ2V0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU4M2Vh
ZDNlZWQ3MDE3ZTFmNGJiOWJmYTMwNzUxZjgwMTAzMTE3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2dldC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIG51bWJlciA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
ICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtl
eTogMy4xNDE1OTI2NSwgcHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkKLSAgICAgICAgICAuYWRkKHJlY29yZCk7
Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsK
LQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIHJlY29yZC5rZXkpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29y
ZC5wcm9wZXJ0eSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfQot
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dl
dDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTFjMzZmNWFi
ZGU5ZjA1MTAxMTRkNmZiZTgzYWVlYjExNDA0ZmUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZ2V0Mi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIHN0cmluZyAgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWUxYzM2ZjVhYmRlOWYwNTEwMTE0ZDZmYmU4M2Fl
ZWIxMTQwNGZlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDIt
cHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIHN0cmluZyAgCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MzE0ZGIwZDY0YzBjMWRlNmIzZjAwYTllZTkyYWU0MzVlNjEzNTE1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIHN0cmluZyA8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAg
ICByZWNvcmQgPSB7IGtleTogInRoaXMgaXMgYSBrZXkgdGhhdCdzIGEgc3RyaW5nIiwgcHJvcGVy
dHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0
aDogImtleSIgfSkKLSAgICAgICAgICAuYWRkKHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQot
ICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7Ci0KLSAgICAgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQua2V5KTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOwotICAgICAg
ICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGMzMTRkYjBkNjRjMGMxZGU2YjNmMDBhOWVlOTJhZTQzNWU2MTM1MTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQyLmh0bQorKysgL2Rldi9udWxs
CkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0ga2V5IGlzIGEgc3RyaW5nIDwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAg
ICAgIHJlY29yZCA9IHsga2V5OiAidGhpcyBpcyBhIGtleSB0aGF0J3MgYSBzdHJpbmciLCBwcm9w
ZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQ
YXRoOiAia2V5IiB9KQotICAgICAgICAgIC5hZGQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIp
Ci0gICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsKLQotICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIHJlY29yZC5rZXkpOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7Ci0gICAg
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdmMWJlODhjNjMyM2I3ZTcwZDUwN2EwMDg2
Y2QwM2E2ZjEzOTIwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dl
dDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURC
T2JqZWN0U3RvcmUuZ2V0KCkgLSBrZXkgaXMgYSBEYXRlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQzLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9nZXQzLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2N2YxYmU4OGM2MzIzYjdlNzBkNTA3YTAwODZjZDAzYTZmMTM5MjA1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0My1wcml2YXRlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmdl
dCgpIC0ga2V5IGlzIGEgRGF0ZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0My1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtcHJpdmF0ZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZThmYWQwYzhmOTNmNmJhZTM0ZTQ2
YzJjNzZmY2Y0MWRiZDdmOGM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZ2V0My1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9y
ZS5nZXQoKSAtIGtleSBpcyBhIERhdGUgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBrZXk6IG5ldyBE
YXRlKCksIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAgICAgICAgLmFkZChyZWNvcmQpOwotICAgIH0K
LQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcnEg
PSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7Ci0KLSAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LnZhbHVlT2YoKSwgcmVjb3JkLmtleS52
YWx1ZU9mKCkpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJv
cGVydHksIHJlY29yZC5wcm9wZXJ0eSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAg
fSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9n
ZXQzLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU4ZmFkMGM4ZjkzZjZiYWUz
NGU0NmMyYzc2ZmNmNDFkYmQ3ZjhjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0
KCkgLSBrZXkgaXMgYSBEYXRlIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAot
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsga2V5OiBuZXcgRGF0ZSgp
LCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwot
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
eyBrZXlQYXRoOiAia2V5IiB9KQotICAgICAgICAgIC5hZGQocmVjb3JkKTsKLSAgICB9Ci0KLSAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0
b3JlIikKLSAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOwotCi0gICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleS52YWx1ZU9mKCksIHJlY29yZC5rZXkudmFsdWVP
ZigpKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5
LCByZWNvcmQucHJvcGVydHkpOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZ2V0NC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiY2Vh
YmQzNmM2NzJkYjJmMTQxMjI0YzlmYTJiNzA5ZjI2YTk5ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0gYXR0ZW1wdCB0byByZXRy
aWV2ZSBhIHJlY29yZCB0aGF0IGRvZXNuJ3QgZXhpc3QgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRiY2VhYmQzNmM2NzJkYjJmMTQxMjI0YzlmYTJiNzA5ZjI2YTk5ZjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0LXByaXZhdGUtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUuZ2V0
KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3JkIHRoYXQgZG9lc24ndCBleGlzdCAgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0NC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2dldDQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlZDc5ZGEyYjNkMGE1ZDBmYzJlY2I3MDA3MmU2M2ZlMDk4YjA4ODk2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1wcml2YXRlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0
cmlldmUgYSByZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0IDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgcnEgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAgICAgICAg
ICAgICAgICAgLmdldCgxKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHRzLCB1
bmRlZmluZWQpOwotICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7
IH0sIDEwKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7fTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9n
ZXQ0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZ2V0NC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNzlkYTJiM2QwYTVk
MGZjMmVjYjcwMDcyZTYzZmUwOThiMDg4OTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9nZXQ0Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmdldCgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJlY29yZCB0aGF0IGRvZXNuJ3QgZXhpc3Qg
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVz
dCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
Ci0gICAgICAgIHZhciBycSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0
aDogImtleSIgfSkKLSAgICAgICAgICAgICAgICAgICAuZ2V0KDEpOwotICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdHMsIHVuZGVmaW5lZCk7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgMTApOwotICAgICAgICB9KTsKLSAgICB9OwotCi0g
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHt9OwotPC9zY3JpcHQ+Ci0KLTxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMyMTA3ZjIzZjQ5NTNkNmJlZDI5ZmJiNTcyMDc0
YTFjZDFkYzRjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2Jq
ZWN0U3RvcmUuZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5IGlu
IHRoZSByYW5nZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1wcml2YXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMyMTA3ZjIzZjQ5NTNk
NmJlZDI5ZmJiNTcyMDc0YTFjZDFkYzRjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2dldDUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29y
ZCB3aXRoIHRoZSBmaXJzdCBrZXkgaW4gdGhlIHJhbmdlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ1LXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Z2V0NS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3YWI1OThj
MDM5OWIxNGQyYTlkZmVmZTNkODM2NDZjODZjNzdhMjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9nZXQ1LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0g
cmV0dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2UgPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotICAgIHZhciBkYgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5
bmNfdGVzdCgpKQotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgICAgIHZhciBvcyA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpCi0KLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBp
KyspCi0gICAgICAgICAgICBvcy5hZGQoImRhdGEiICsgaSwgaSkKLSAgICB9Ci0KLSAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIGRiLnRyYW5zYWN0aW9uKCJz
dG9yZSIpCi0gICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgLmdldCgg
SURCS2V5UmFuZ2UuYm91bmQoMywgNikgKQotICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbihlKQotICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdCwgImRhdGEzIiwgImdldCgzLTYpIik7Ci0gICAgICAgICAgICB0aGlz
LmRvbmUoKTsKLSAgICAgICAgfSkKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD1sb2c+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2dldDUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9nZXQ1Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdh
YjU5OGMwMzk5YjE0ZDJhOWRmZWZlM2Q4MzY0NmM4NmM3N2EyMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSByZXR1
cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5IGluIHRoZSByYW5nZSA8L3RpdGxlPgot
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KCkpCi0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgdmFyIG9zID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIikKLQotICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykK
LSAgICAgICAgICAgIG9zLmFkZCgiZGF0YSIgKyBpLCBpKQotICAgIH0KLQotICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgZGIudHJhbnNhY3Rpb24oInN0b3Jl
IikKLSAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAuZ2V0KCBJREJL
ZXlSYW5nZS5ib3VuZCgzLCA2KSApCi0gICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCAiZGF0YTMiLCAiZ2V0KDMtNikiKTsKLSAgICAgICAgICAgIHRoaXMuZG9u
ZSgpOwotICAgICAgICB9KQotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2dldDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDI0ZTRiZjYyMDdiNDQ4Y2FhMzA2NzkyMjEyNjc3MDIxOWM4NzM2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ni1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAt
IHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uICAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9nZXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDI0ZTRiZjYyMDdiNDQ4Y2FhMzA2NzkyMjEy
Njc3MDIxOWM4NzM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0
Ni1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9y
IG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDYtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2LXByaXZh
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE3YjU0NzdiOGE1NThjMDJl
ZDdiMmIxMmMzMDhlNzQ1NjIwNzFjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDYtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAot
77u/PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuZ2V0KCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRl
ZCB0cmFuc2FjdGlvbiA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJZdWljaGlO
dWtpeWFtYSIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1l1aWNoaU51a2l5YW1hIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAg
dmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgewotICAgICAgICB2YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKTsK
LSAgICAgICAgc3RvcmUudHJhbnNhY3Rpb24uYWJvcnQoKTsKLSAgICAgICAgYXNzZXJ0X3Rocm93
cygiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
c3RvcmUuZ2V0KDEpOwotICAgICAgICB9LCAidGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9y
IG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24uIik7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0KLTwv
c2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ni5odG0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhN2I1NDc3YjhhNTU4YzAyZWQ3YjJiMTJjMzA4ZTc0
NTYyMDcxYzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2Lmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLe+7vzwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cg
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gPC90aXRsZT4K
LTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iWXVpY2hpTnVraXlhbWEiIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS9ZdWljaGlOdWtpeWFtYSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3lu
Y190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsK
LSAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgIHN0b3JlLnRyYW5zYWN0
aW9uLmFib3J0KCk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVF
cnJvciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHN0b3JlLmdldCgxKTsKLSAgICAgICAg
fSwgInRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9u
LiIpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzYWNkNjU2MTVmMDRjZjA0Mzk5ZThiNGNiMTNhMGYwNTVlZGFi
YTUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9y
ZS5nZXQoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5ICAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9nZXQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWNkNjU2MTVmMDRjZjA0Mzk5ZThiNGNiMTNhMGYwNTVl
ZGFiYTUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1wcml2
YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElE
Qk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBr
ZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2dldDctcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ3LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzk1NjEwYzllZWEyZmI4ZDNhNzczNWRlMTI5YTBhZTYxZWU3MmEx
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDctcHJpdmF0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAot77u/PCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0aHJv
dyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJZdWljaGlOdWtpeWFtYSIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1l1
aWNoaU51a2l5YW1hIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCi0gICAg
fQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBz
dG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHN0b3JlLmdldChudWxsKQotICAgICAgICB9LCAidGhy
b3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkuIik7Ci0gICAgICAgIHQuZG9uZSgp
OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ3Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0
Ny5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NTYxMGM5ZWVhMmZiOGQzYTc3
MzVkZTEyOWEwYWU2MWVlNzJhMTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9nZXQ3Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLe+7vzwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLmdl
dCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iWXVpY2hpTnVraXlhbWEiIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS9ZdWljaGlOdWtpeWFtYSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190
ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5
IiB9KQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICB2YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRh
RXJyb3IiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBzdG9yZS5nZXQobnVsbCkKLSAgICAg
ICAgfSwgInRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5LiIpOwotICAgICAg
ICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfaW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9pbmRleC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDcwODU2NjE1OWI2ODYxMDdlNDdhMzY2Y2E4NjBjYTcyNTkyNjY0MzIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9pbmRleC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5pbmRleCgp
IC0gcmV0dXJucyBhbiBpbmRleCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2luZGV4
LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDg1
NjYxNTliNjg2MTA3ZTQ3YTM2NmNhODYwY2E3MjU5MjY2NDMyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5pbmRleCgpIC0gcmV0
dXJucyBhbiBpbmRleCAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9pbmRleC1wcml2YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzMzgzYjJkMDk2N2NmZGU2YzNhOWU2MDU0
NGE1YjYzZjFhNDA2OWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9p
bmRleC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5p
bmRleCgpIC0gcmV0dXJucyBhbiBpbmRleCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZh
ciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCk7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiKQotICAgICAgICAgIC5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3Bl
cnR5Iik7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICB2YXIgaW5kZXggPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAgIC5p
bmRleCgiaW5kZXgiKTsKLQotICAgICAgICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElE
QkluZGV4LCAnaW5zdGFuY2VvZiBJREJJbmRleCcpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9
OwotCi08L3NjcmlwdD4KLQotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2luZGV4Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5k
ZXguaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzM4M2IyZDA5NjdjZmRlNmMz
YTllNjA1NDRhNWI2M2YxYTQwNjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfaW5kZXguaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUuaW5k
ZXgoKSAtIHJldHVybnMgYW4gaW5kZXggPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIg
ZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIikKLSAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgdmFyIGluZGV4ID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAgICAuaW5k
ZXgoImluZGV4Iik7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5zdGFuY2VvZiBJREJJ
bmRleCwgJ2luc3RhbmNlb2YgSURCSW5kZXgnKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsK
LQotPC9zY3JpcHQ+Ci0KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfb3BlbkN1cnNvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAxMTZmZjlmMzAyYTA2NDgwYzY0NmFiNzc1YjMxNmI4MTA5NDMxMDMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLm9wZW5D
dXJzb3IoKSAtIGl0ZXJhdGUgdGhyb3VnaCAxMDAgb2JqZWN0cyAKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29y
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTE2ZmY5ZjMwMmEwNjQ4MGM2NDZhYjc3NWIzMTZiODEw
OTQzMTAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNv
ci1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1Q
QVNTIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSAtIGl0ZXJhdGUgdGhyb3VnaCAxMDAgb2Jq
ZWN0cyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1wcml2YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1YWQ4ODkwMjczOGU1OTZmM2Q0ZWZjYmRm
NDQzYzdlOTRjY2MyOWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9v
cGVuQ3Vyc29yLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSAtIGl0ZXJh
dGUgdGhyb3VnaCAxMDAgb2JqZWN0czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQot
ICAgIHZhciBkYgotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQotCi0g
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiKTsKLQotICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCAxMDA7IGkrKykKLSAgICAg
ICAgICAgIHN0b3JlLmFkZCgicmVjb3JkXyIgKyBpLCBpKTsKLSAgICB9OwotCi0gICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBjb3VudCA9IDAKLSAgICAg
ICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0KLSAgICAgICAgdHhuLm9iamVj
dFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgIC5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGUudGFy
Z2V0LnJlc3VsdCkgewotICAgICAgICAgICAgICAgIGNvdW50ICs9IDE7Ci0gICAgICAgICAgICAg
ICAgZS50YXJnZXQucmVzdWx0LmNvbnRpbnVlKCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSkK
LQotICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMTAwKTsKLSAgICAgICAgICAgIHRoaXMu
ZG9uZSgpCi0gICAgICAgIH0pCi0gICAgfQotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfb3BlbkN1cnNvci5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3IuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5NWFkODg5MDI3MzhlNTk2ZjNkNGVmY2JkZjQ0M2M3ZTk0Y2NjMjllLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci5odG0KKysrIC9k
ZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5vcGVuQ3Vyc29yKCkgLSBpdGVyYXRlIHRocm91Z2ggMTAwIG9iamVjdHM8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIKLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFy
IHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0KLSAgICAgICAgZm9yICh2
YXIgaT0wOyBpIDwgMTAwOyBpKyspCi0gICAgICAgICAgICBzdG9yZS5hZGQoInJlY29yZF8iICsg
aSwgaSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICB2YXIgY291bnQgPSAwCi0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigi
c3RvcmUiKQotCi0gICAgICAgIHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAu
b3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlLnRhcmdldC5yZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICBjb3VudCArPSAxOwotICAgICAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgp
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pCi0KLSAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291
bnQsIDEwMCk7Ci0gICAgICAgICAgICB0aGlzLmRvbmUoKQotICAgICAgICB9KQotICAgIH0KLQot
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxp
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGRhYjU4YTFjNzAzMjhkMWZlMGFjMjRlM2MyZTFjZmJhYWYzNjgyMzku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFs
aWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURC
T2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaW52YWxpZCAtIHBhc3Mgc29tZXRoaW5nIG90aGVy
IHRoYW4gbnVtYmVyIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
b3BlbkN1cnNvcl9pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYWI1OGExYzcwMzI4ZDFmZTBhYzI0ZTNjMmUxY2ZiYWFmMzY4MjM5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlk
LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaW52YWxpZCAtIHBhc3Mgc29tZXRoaW5n
IG90aGVyIHRoYW4gbnVtYmVyIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29w
ZW5DdXJzb3JfaW52YWxpZC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNmYjMzMzMwOTI0NGQ4MjUwZTY5NWUxYjkyMTdhYTBiYTdkMzY1YmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFsaWQtcHJpdmF0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0
bGU+SURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaW52YWxpZDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjD
uHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwgb3BlbjsKLQotICAgIHNldHVwKGZ1bmN0aW9u
KCkgewotICAgICAgICBvcGVuID0gaW5kZXhlZERCLm9wZW4oJ3Rlc3RkYi0nICsgbmV3IERhdGUo
KS5nZXRUaW1lKCkpOwotICAgICAgICBvcGVuLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKLSAgICAgICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKTsKLQotICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KCJkYXRhIiwgIDEpOwotICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhMiIsIDIpOwotICAg
ICAgICB9OwotICAgIH0sCi0gICAgeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOwotCi0KLSAgICBv
cGVuLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotCi0gICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1l
bnQudGl0bGUgKyAiIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhhbiBudW1iZXIiKS5zdGVwKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBpZHggPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
Lm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iik7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGlkeC5v
cGVuQ3Vyc29yKHsgbG93ZXI6ICJhIiB9KTsgfSk7Ci0KLSAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGlkeC5vcGVuQ3Vy
c29yKHsgbG93ZXI6ICJhIiwgbG93ZXJPcGVuOiBmYWxzZSB9KTsgfSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IGlkeC5vcGVuQ3Vyc29yKHsgbG93ZXI6ICJhIiwgbG93ZXJPcGVuOiBmYWxzZSwgdXBwZXI6IG51
bGwsIHVwcGVyT3BlbjogZmFsc2UgfSk7IH0pOwotCi0gICAgICAgICAgICB0aGlzLmRvbmUoKTsK
LSAgICAgICAgfSk7Ci0KLQotICAgICAgICAvLyBTdG9wIGJsb2NraW5nIHRoZSB0ZXN0aW5nIHN5
c3RlbSBmcm9tIGhlcmVvbgotICAgICAgICBkb25lKCk7Ci0gICAgfQotCi08L3NjcmlwdD4KLQot
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9p
bnZhbGlkLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZiMzMzMzA5MjQ0ZDgy
NTBlNjk1ZTFiOTIxN2FhMGJhN2QzNjViYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw1MCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29y
KCkgLSBpbnZhbGlkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRi
LCBvcGVuOwotCi0gICAgc2V0dXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIG9wZW4gPSBpbmRleGVk
REIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7Ci0gICAgICAgIG9wZW4u
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgidGVzdCIpOwotICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIp
OwotCi0gICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7Ci0gICAgICAgICAgICBv
YmpTdG9yZS5hZGQoImRhdGEyIiwgMik7Ci0gICAgICAgIH07Ci0gICAgfSwKLSAgICB7IGV4cGxp
Y2l0X2RvbmU6IHRydWUgfSk7Ci0KLQotICAgIG9wZW4ub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
Ci0KLSAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBwYXNzIHNvbWV0aGlu
ZyBvdGhlciB0aGFuIG51bWJlciIpLnN0ZXAoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFy
IGlkeCA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgi
aW5kZXgiKTsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAg
ICAgICAgICAgICBmdW5jdGlvbigpIHsgaWR4Lm9wZW5DdXJzb3IoeyBsb3dlcjogImEiIH0pOyB9
KTsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAgICAgICAg
ICAgICBmdW5jdGlvbigpIHsgaWR4Lm9wZW5DdXJzb3IoeyBsb3dlcjogImEiLCBsb3dlck9wZW46
IGZhbHNlIH0pOyB9KTsKLQotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwK
LSAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgaWR4Lm9wZW5DdXJzb3IoeyBsb3dlcjogImEi
LCBsb3dlck9wZW46IGZhbHNlLCB1cHBlcjogbnVsbCwgdXBwZXJPcGVuOiBmYWxzZSB9KTsgfSk7
Ci0KLSAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9KTsKLQotCi0gICAgICAgIC8v
IFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCi0gICAgICAgIGRv
bmUoKTsKLSAgICB9Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9w
dXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwOWYwNjJkNDJlNDc4NDJhYjViMGY1YWVhYTIyZTYxZmFiZGM2ZGVjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdpdGgg
YW4gaW5saW5lIGtleSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZjA2MmQ0MmU0Nzg0
MmFiNWIwZjVhZWFhMjJlNjFmYWJkYzZkZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aXRoIGFuIGlubGlu
ZSBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIxOGIzNDY4NGU4YzlmZWJmZTgyODU3ZDgzNmZlOWE4MmRiMDlm
YjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQtcHJpdmF0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBwdXQgd2l0
aCBhbiBpbmxpbmUga2V5IDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTog
ImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLQotICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsK
LSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsK
LQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnBy
b3BlcnR5KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwg
cmVjb3JkLmtleSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsK
LTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQuaHRtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMThiMzQ2ODRlOGM5ZmViZmU4Mjg1N2Q4MzZmZTlh
ODJkYjA5ZmIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Lmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdpdGgg
YW4gaW5saW5lIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAg
IHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJk
YXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsga2V5UGF0aDogImtleSIgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7Ci0g
ICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7Ci0K
LSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9w
ZXJ0eSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIHJl
Y29yZC5rZXkpOwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQx
MC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxMmM3ODQ1MmVj
MWE0NjQ4YzI2OWY5YTdkODQ2MjQ1NTIyY2VmY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQxMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gY2FsbCAncHV0
JyB3aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0
LW9mLWxpbmUga2V5cyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLXByaXZh
dGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTJjNzg0NTJl
YzFhNDY0OGMyNjlmOWE3ZDg0NjI0NTUyMmNlZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0MTAtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8g
Y2FsbCAncHV0JyB3aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3Jl
IHVzZXMgb3V0LW9mLWxpbmUga2V5cyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMC1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMjliYTM5Zjc0ZmExMjBl
MjI0YmZiYzhmMmQzMmY1NWVmZWVkNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQxMC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gY2FsbCAncHV0JyB3aXRob3V0IGFuIGtleSBwYXJh
bWV0ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyA8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0g
ICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBycSwKLSAgICAg
ICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDog
ImtleSIgfSk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOyB9KTsKLQotICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9
OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDI5YmEzOWY3NGZhMTIwZTIyNGJmYmM4
ZjJkMzJmNTVlZmVlZDQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0MTAuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBB
dHRlbXB0IHRvIGNhbGwgJ3B1dCcgd2l0aG91dCBhbiBrZXkgcGFyYW1ldGVyIHdoZW4gdGhlIG9i
amVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBw
cm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIgcnEsCi0gICAgICAgICAgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwotCi0gICAg
ICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICBmdW5jdGlvbigpIHsg
cnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsgfSk7Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhy
cSwgdW5kZWZpbmVkKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUzZmRiZmI0YjQxNjRmNzQ0NzkwNDE1
Y2Q0MWI5NjAzZTNiOTZiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgd2hlcmUgdGhl
IHJlY29yZCdzIGtleSBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtl
eSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfcHV0MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTNmZGJmYjRiNDE2NGY3NDQ3OTA0
MTVjZDQxYjk2MDNlM2I5NmJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3Jk
IHdoZXJlIHRoZSByZWNvcmQncyBrZXkgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2Yg
YSB2YWxpZCBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTEtcHJpdmF0ZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZmVkNDMzOWM2M2FlNTA1OGFlMDUzMGU1YmRj
M2VkMzFmNDYzMTMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
MTEtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0
KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMg
bm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5IDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29y
ZCA9IHsga2V5OiB7IHZhbHVlOiAxIH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZhciBy
cSwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsg
a2V5UGF0aDogImtleSIgfSk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwK
LSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOyB9KTsK
LQotICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRvbmUo
KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEx
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0MTEuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZmVkNDMzOWM2M2FlNTA1
OGFlMDUzMGU1YmRjM2VkMzFmNDYzMTMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0MTEuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUu
cHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRv
ZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5IDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJl
Y29yZCA9IHsga2V5OiB7IHZhbHVlOiAxIH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIHZh
ciBycSwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsga2V5UGF0aDogImtleSIgfSk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9y
IiwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOyB9
KTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRv
bmUoKTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfcHV0MTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4Zjc4ZDc4ODc1MDBhODk4MDE2Y2JhMzNlZjM4NWI3ODlhYTVhNGNkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRl
bXB0IHRvIHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90
IGRlZmluZWQgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMi1wcml2YXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY3OGQ3ODg3NTAwYTg5
ODAxNmNiYTMzZWYzODViNzg5YWE1YTRjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBh
IHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90IGRlZmluZWQgIAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX3B1dDEyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTItcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkZDVlYWZlOGNiODU5MjAwZDRjN2U1MWQyNjQ2MmE4NTU3YTI0ZWUyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTItcHJpdmF0ZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRv
IHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90IGRlZmlu
ZWQgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNf
dGVzdCgpLAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICB2YXIg
cnEsCi0gICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
IGtleVBhdGg6ICJrZXkiIH0pOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIs
Ci0gICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsgfSk7
Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKLSAgICAgICAgdC5kb25l
KCk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQx
Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDEyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ1ZWFmZThjYjg1OTIw
MGQ0YzdlNTFkMjY0NjJhODU1N2EyNGVlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDEyLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3Jl
LnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGluLWxp
bmUga2V5IGlzIG5vdCBkZWZpbmVkIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRi
LAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJk
YXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0KLSAgICAgICAgdmFyIHJxLAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLQotICAgICAgICBhc3NlcnRf
dGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3Rv
cmUucHV0KHJlY29yZCk7IH0pOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5l
ZCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0MTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NmE5ODU4MDdiMDM5Y2MzZDliZmM1NzMzNWNiOGJmOTU1
MjE3ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RT
dG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRoZSBvdXQgb2YgbGlu
ZSBrZXkgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBr
ZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDEzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1wcml2YXRlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjg2YTk4NTgwN2IwMzljYzNkOWJm
YzU3MzM1Y2I4YmY5NTUyMTdkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDEzLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29y
ZCB3aGVyZSB0aGUgb3V0IG9mIGxpbmUga2V5IHByb3ZpZGVkIGRvZXMgbm90IG1lZXQgdGhlIGNv
bnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLXBy
aXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdiOTAzYWYxYzAxNTI4
YWVlZGY3NWQwNTU5N2VjNjM5ZTBjNzUwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDEzLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9i
amVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgd2hlcmUgdGhlIG91dCBv
ZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZh
bGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBh
c3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAg
IHZhciBycSwKLSAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIpOwotCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCi0gICAgICAgICAgICBm
dW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkLCB7IHZhbHVlOiAxIH0pOyB9KTsK
LQotICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRvbmUo
KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEz
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0MTMuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2I5MDNhZjFjMDE1Mjhh
ZWVkZjc1ZDA1NTk3ZWM2MzllMGM3NTBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0MTMuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUu
cHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgb3V0IG9mIGxpbmUga2V5
IHByb3ZpZGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5IDwv
dGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KSwKLSAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgdmFyIHJxLAot
ICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0KLSAg
ICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkg
eyBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQsIHsgdmFsdWU6IDEgfSk7IH0pOwotCi0gICAgICAg
IGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH07
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9w
dXQxNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5OTE3YWE0
YzFhMWI1Y2E1YjI5YjBiYzljMDY4YmI1MGZkYjZlNTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9wdXQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIFB1dCBhIHJlY29yZCB3aGVy
ZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2Yg
YSB2YWxpZCBrZXkgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNC1wcml2YXRl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk5MTdhYTRjMWEx
YjVjYTViMjliMGJjOWMwNjhiYjUwZmRiNmU1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDE0LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBQdXQgYSByZWNvcmQg
d2hlcmUgYSB2YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRz
IG9mIGEgdmFsaWQga2V5ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0LXByaXZhdGUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjhjOGMxNDY0ODk3NjM3YTAxYzFmOTBi
YzkzNzRmZDgxYmE5NDQ0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDE0LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3Jl
LnB1dCgpIC0gUHV0IGEgcmVjb3JkIHdoZXJlIGEgdmFsdWUgYmVpbmcgaW5kZXhlZCBkb2VzIG5v
dCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQg
PSB7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiB7IHByb3BlcnR5OiAiZGF0YSIgfSB9OwotCi0g
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAg
ICAgdmFyIHJxLAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLQotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAgcnEgPSBvYmpTdG9yZS5w
dXQocmVjb3JkKTsKLQotICAgICAgICBhc3NlcnRfdHJ1ZShycSBpbnN0YW5jZW9mIElEQlJlcXVl
c3QpOwotICAgICAgICBycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHQu
ZG9uZSgpOwotICAgICAgICB9Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDE0Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjhjOGMxNDY0ODk3NjM3YTAxYzFmOTBiYzkzNzRmZDgxYmE5NDQ0ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDMy
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PklEQk9iamVjdFN0b3JlLnB1dCgpIC0gUHV0IGEgcmVjb3JkIHdoZXJlIGEgdmFsdWUgYmVpbmcg
aW5kZXhlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCks
Ci0gICAgICByZWNvcmQgPSB7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiB7IHByb3BlcnR5OiAi
ZGF0YSIgfSB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7Ci0KLSAgICAgICAgdmFyIHJxLAotICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLQotICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7Ci0KLSAgICAgICAg
cnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLQotICAgICAgICBhc3NlcnRfdHJ1ZShycSBpbnN0
YW5jZW9mIElEQlJlcXVlc3QpOwotICAgICAgICBycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNiNWE5YmRhNDUzNTQwOTUzNzU0NGIz
YTc0NjU3ZWEzMTMzMTAzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDE1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQk9iamVjdFN0b3JlLnB1dCgpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0
U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFk
T25seUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS1wcml2YXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNiNWE5YmRhNDUzNTQw
OTUzNzU0NGIzYTc0NjU3ZWEzMTMzMTAzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDE1LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgdHJhbnNhY3Rp
b24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVh
ZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3IgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTUtcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS1w
cml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1ZmQ3MTY2ZTgwMzNh
NWQ5ODdhNDlkY2E0MWEwOWUxODZiYWM5NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxNS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJP
YmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3Jl
IGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlF
cnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRw
Oi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2Jq
ZWN0U3RvcmUtcHV0LUlEQlJlcXVlc3QtYW55LXZhbHVlLWFueS1rZXkiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08
c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAg
ICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKLSAg
ICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAg
ICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIik7Ci0gICAgICAgIHZhciBvc3RvcmUg
PSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgIHQuc3RlcChmdW5jdGlvbigpewot
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9ubHlFcnJvciIsIGZ1bmN0aW9uKCl7Ci0g
ICAgICAgICAgICAgICAgb3N0b3JlLnB1dCh7cEtleTogInByaW1hcnlLZXlfMCJ9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3Jp
cHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfcHV0MTUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9wdXQxNS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY1ZmQ3MTY2ZTgwMzNhNWQ5ODdhNDlkY2E0MWEwOWUxODZiYWM5NjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwz
MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVj
dFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVh
ZE9ubHlFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVm
PSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwt
SURCT2JqZWN0U3RvcmUtcHV0LUlEQlJlcXVlc3QtYW55LXZhbHVlLWFueS1rZXkiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQot
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OwotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9
KTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgewot
ICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIik7Ci0gICAgICAgIHZhciBv
c3RvcmUgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgIHQuc3RlcChmdW5jdGlv
bigpewotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9ubHlFcnJvciIsIGZ1bmN0aW9u
KCl7Ci0gICAgICAgICAgICAgICAgb3N0b3JlLnB1dCh7cEtleTogInByaW1hcnlLZXlfMCJ9KTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQot
PC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiZDA2NGEwMWJlYzVkZGFkMzU4YWUxZGU1NDA3NWY5
NDZhMWE5ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmpl
Y3RTdG9yZS5wdXQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhl
IGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlk
U3RhdGVFcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiZDA2NGEwMWJlYzVk
ZGFkMzU4YWUxZGU1NDA3NWY5NDZhMWE5ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxNi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gSWYgdGhlIG9iamVjdCBz
dG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE2LXByaXZh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTYtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGRj
ODY4MWNkMzI2NzdhNzViZjU2YmQyNGI4NWM5MmVjMjM5M2M4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVu
IGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9m
IHR5cGUgSW52YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgotPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLXB1dC1JREJSZXF1ZXN0LWFueS12YWx1ZS1hbnkt
a2V5Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2
IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICAgIG9zdG9yZSwK
LSAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICBvc3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKLSAgICAgICAgZGIuZGVs
ZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgfQotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7Ci0gICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Ci0gICAg
ICAgICAgICAgICAgb3N0b3JlLnB1dCh7cEtleTogInByaW1hcnlLZXlfMCJ9KTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0MTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQxNi5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0
ZGM4NjgxY2QzMjY3N2E3NWJmNTZiZDI0Yjg1YzkyZWMyMzkzYzguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwzMSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5J
REJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRl
ZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJ
bnZhbGlkU3RhdGVFcnJvcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVs
IiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I3dpZGwtSURCT2JqZWN0U3RvcmUtcHV0LUlEQlJlcXVlc3QtYW55LXZhbHVlLWFueS1rZXkiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgICAgb3N0b3JlLAotICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwotICAgICAgICBkYi5kZWxldGVPYmpl
Y3RTdG9yZSgic3RvcmUiKTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uIChldmVudCkgewotICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKLSAgICAgICAgICAg
ICAgICBvc3RvcmUucHV0KHtwS2V5OiAicHJpbWFyeUtleV8wIn0pOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9wdXQyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0Mi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGVjZDM5YmQ1ZmE3NTY3YzMwMTYyODc0NmI3NTQzMDJkMTE0MzM5MzguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQyLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0
IHdpdGggYW4gb3V0LW9mLWxpbmUga2V5ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQyLXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9w
dXQyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
Y2QzOWJkNWZhNzU2N2MzMDE2Mjg3NDZiNzU0MzAyZDExNDMzOTM4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0
IHdpdGggYW4gb3V0LW9mLWxpbmUga2V5ICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQyLXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi1wcml2
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkNWVhNDcwNTY3NGFmZDEy
NjIwNTVjYzQzNmQwYjRiOGIxODFiODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQyLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVj
dFN0b3JlLnB1dCgpIC0gcHV0IHdpdGggYW4gb3V0LW9mLWxpbmUga2V5IDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIGtl
eSA9IDEsCi0gICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAgICBvYmpTdG9y
ZS5wdXQocmVjb3JkLCBrZXkpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAg
ICAuZ2V0KGtleSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVy
dHksIHJlY29yZC5wcm9wZXJ0eSk7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9
KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDIu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9w
dXQyLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ1ZWE0NzA1Njc0YWZkMTI2
MjA1NWNjNDM2ZDBiNGI4YjE4MWI4Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX3B1dDIuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0
KCkgLSBwdXQgd2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAga2V5ID0gMSwKLSAg
ICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotCi0gICAgICAgIG9ialN0b3JlLnB1dChyZWNv
cmQsIGtleSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5nZXQoa2V5
KTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3Jk
LnByb3BlcnR5KTsKLQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0My1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTVjYjEzOGUw
OWJkMDY1ZWNlZjEwMWMzY2U5NGM1NDQ1Yzc1ZTI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0My1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIHJlY29yZCB3aXRoIHNhbWUga2V5
IGFscmVhZHkgZXhpc3RzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLXByaXZh
dGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTVjYjEzOGUw
OWJkMDY1ZWNlZjEwMWMzY2U5NGM1NDQ1Yzc1ZTI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0My1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcmVjb3JkIHdpdGgg
c2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDMtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLXByaXZh
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZmZjhiY2NjYTRlOGNiMjFk
NDk3NWVmYjllY2ViNDA5ZTkxNGJiNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX3B1dDMtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0
U3RvcmUucHV0KCkgLSByZWNvcmQgd2l0aCBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cyA8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwgc3VjY2Vzc19ldmVudCwKLSAgICAgIHQgPSBh
c3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9
LAotICAgICAgcmVjb3JkX3B1dCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImNoYW5nZWQiLCBtb3Jl
OiBbInN0dWZmIiwgMl0gfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwotICAgICAgICBvYmpTdG9yZS5wdXQocmVj
b3JkKTsKLQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkX3B1dCk7Ci0gICAg
ICAgIHJxLm9uZXJyb3IgPSBmYWlsKHQsICJlcnJvciBvbiBwdXQiKTsKLQotICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBzdWNjZXNz
X2V2ZW50ID0gdHJ1ZTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICBhc3NlcnRfdHJ1ZShzdWNjZXNzX2V2ZW50KTsK
LQotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5nZXQoMSk7
Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgdmFyIHJlYyA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWMua2V5LCByZWNvcmRfcHV0LmtleSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlYy5wcm9wZXJ0eSwgcmVjb3JkX3B1dC5wcm9wZXJ0eSk7Ci0gICAgICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKHJlYy5tb3JlLCByZWNvcmRfcHV0Lm1vcmUpOwotCi0gICAgICAgICAg
ICB0LmRvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9wdXQzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0My5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk2ZmY4YmNjY2E0ZThjYjIxZDQ5NzVlZmI5ZWNlYjQwOWU5MTRiYjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLmh0bQorKysgL2Rldi9udWxsCkBAIC0x
LDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gcmVjb3JkIHdpdGggc2FtZSBrZXkgYWxyZWFkeSBl
eGlzdHMgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIHN1Y2Nlc3NfZXZlbnQs
Ci0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3Bl
cnR5OiAiZGF0YSIgfSwKLSAgICAgIHJlY29yZF9wdXQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJj
aGFuZ2VkIiwgbW9yZTogWyJzdHVmZiIsIDJdIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLSAgICAgICAgb2Jq
U3RvcmUucHV0KHJlY29yZCk7Ci0KLSAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUucHV0KHJlY29y
ZF9wdXQpOwotICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0LCAiZXJyb3Igb24gcHV0Iik7Ci0K
LSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgc3VjY2Vzc19ldmVudCA9IHRydWU7Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLSAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoc3Vj
Y2Vzc19ldmVudCk7Ci0KLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikK
LSAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAg
ICAgICAuZ2V0KDEpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciByZWMgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVjLmtleSwgcmVjb3JkX3B1dC5rZXkpOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWMucHJvcGVydHksIHJlY29yZF9wdXQucHJvcGVydHkpOwotICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhyZWMubW9yZSwgcmVjb3JkX3B1dC5tb3JlKTsK
LQotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4K
LQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWViYThiN2M1MjA1N2I2YzIxZTI1
ZTc5ZjBjZTU1MjU4OWUwY2U2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0NC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRy
dWUgc3BlY2lmaWVkICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0LXByaXZhdGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWViYThiN2M1MjA1
N2I2YzIxZTI1ZTc5ZjBjZTU1MjU4OWUwY2U2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfcHV0NC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdoZXJlIGFuIGlu
ZGV4IGhhcyB1bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBiODQwZGY3Njg2
Njc2OTBmODRlMjgxYTlhYjdiNmE0Mzc4ZjQzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDQtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURC
T2JqZWN0U3RvcmUucHV0KCkgLSBwdXQgd2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1ZTp0cnVlIHNw
ZWNpZmllZCA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHJlY29y
ZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKGFzeW5jX3Rlc3QoKSk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRy
dWUgfSk7Ci0gICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpMSIsICJwcm9wZXJ0eSIsIHsg
dW5pcXVlOiB0cnVlIH0pOwotICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLQotICAgICAg
ICB2YXIgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0g
ZmFpbCh0aGlzLCAic3VjY2VzcyBvbiBwdXR0aW5nIGR1cGxpY2F0ZSBpbmRleGVkIHJlY29yZCIp
Ci0KLSAgICAgICAgcnEub25lcnJvciA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocnEuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIp
OwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3Ry
YWludEVycm9yIik7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAiZXJyb3Ii
KTsKLQotICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgZS5zdG9w
UHJvcGFnYXRpb24oKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIC8vIERlZmVyIGRvbmUs
IGdpdmluZyBhIHNwdXJpb3VzIHJxLm9uc3VjY2VzcyBhIGNoYW5jZSB0byBydW4KLSAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAg
fQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0Lmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBiODQwZGY3Njg2Njc2OTBmODRlMjgxYTlh
YjdiNmE0Mzc4ZjQzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDQuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBwdXQg
d2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1ZTp0cnVlIHNwZWNpZmllZCA8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTog
ImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSk7Ci0g
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0gICAgICAgIG9ialN0b3Jl
LmNyZWF0ZUluZGV4KCJpMSIsICJwcm9wZXJ0eSIsIHsgdW5pcXVlOiB0cnVlIH0pOwotICAgICAg
ICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLQotICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5wdXQo
cmVjb3JkKTsKLSAgICAgICAgcnEub25zdWNjZXNzID0gZmFpbCh0aGlzLCAic3VjY2VzcyBvbiBw
dXR0aW5nIGR1cGxpY2F0ZSBpbmRleGVkIHJlY29yZCIpCi0KLSAgICAgICAgcnEub25lcnJvciA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cnEuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOwotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIik7Ci0KLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAiZXJyb3IiKTsKLQotICAgICAgICAgICAgZS5wcmV2
ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAg
fSk7Ci0gICAgfTsKLQotICAgIC8vIERlZmVyIGRvbmUsIGdpdmluZyBhIHNwdXJpb3VzIHJxLm9u
c3VjY2VzcyBhIGNoYW5jZSB0byBydW4KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ1LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUxMGZjZjk1OWRmOTJmMWY0ZjMxOTVlNjFhNzEzYWYx
NTQ3NGZjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0
U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmli
dXRlICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ1LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTEwZmNmOTU5ZGY5MmYxZjRmMzE5
NWU2MWE3MTNhZjE1NDc0ZmNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0NS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGgg
aXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NS1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUtcHJpdmF0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYmQ5MGM2OGY1Zjk1YmEzOTVj
MTBmODczMmQ5YjQxNGMyNWNjMTRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0NS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RT
dG9yZS5wdXQoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1
dGUgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNf
dGVzdCgpLAotICAgICAgcmVjb3JkID0geyB0ZXN0OiB7IG9iajogeyBrZXk6IDEgfSB9LCBwcm9w
ZXJ0eTogImRhdGEiIH07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiB9KTsKLSAgICAgICAgb2JqU3RvcmUu
cHV0KHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgIC5nZXQo
cmVjb3JkLnRlc3Qub2JqLmtleSk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwot
ICAgICAgICB9KTsKLSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ1Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJkOTBjNjhm
NWY5NWJhMzk1YzEwZjg3MzJkOWI0MTRjMjVjYzE0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDUuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0
U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmli
dXRlIDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsgdGVzdDogeyBvYmo6IHsga2V5OiAxIH0gfSwgcHJv
cGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsga2V5UGF0aDogInRlc3Qub2JqLmtleSIgfSk7Ci0gICAgICAgIG9ialN0b3Jl
LnB1dChyZWNvcmQpOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAuZ2V0
KHJlY29yZC50ZXN0Lm9iai5rZXkpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOwotCi0gICAgICAgICAgICB0LmRvbmUoKTsK
LSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQ2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDEzYWUwNjJjYTk5YWQxNzkwMjE5NmQ3ZjVmNzg5ODQ1YjZmMjhkNmEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0g
YXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDEzYWUwNjJjYTk5YWQxNzkwMjE5NmQ3ZjVmNzg5ODQ1YjZmMjhkNmEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkg
LSBhdXRvSW5jcmVtZW50IGFuZCBpbmxpbmUga2V5cyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDYtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzQ4MGFlNTRi
Yjk0MDEzNTlkZTAwODNiNzE4NmRkNzY4NGFiOGI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0Ni1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5J
REJPYmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzIDwvdGl0
bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
LSAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAotICAgICAgZXhwZWN0ZWRfa2V5
cyA9IFsgMSwgMiwgMywgNCBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0K
LSAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLnB1dChyZWNv
cmQpOwotICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUucHV0
KHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKLSAgICAgICAgICBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQot
ICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAg
ICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci52YWx1ZS5rZXkpOwotICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5
cyk7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0p
OwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDYuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzQ4MGFlNTRiYjk0MDEzNTlk
ZTAwODNiNzE4NmRkNzY4NGFiOGI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0Ni5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQo
KSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZCA9IHsg
cHJvcGVydHk6ICJkYXRhIiB9LAotICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwgMywgNCBd
OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0g
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5
UGF0aDogImtleSIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUu
cHV0KHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOwotICAgICAgICBvYmpT
dG9yZS5wdXQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7Ci0gICAgfTsK
LQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgYWN0
dWFsX2tleXMgPSBbXSwKLSAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0g
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAu
b3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAg
ICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNo
KGN1cnNvci52YWx1ZS5rZXkpOwotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7Ci0gICAgICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3Njcmlw
dD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2U0ZWFmMmM2MzMxZjVhOGQ5
NWZlYzRiODcxZTNmYWY0MjkzODg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0Ny1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIG91dC1vZi1saW5l
IGtleXMgIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjZTRlYWYyYzYzMzFmNWE4ZDk1
ZmVjNGI4NzFlM2ZhZjQyOTM4ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQt
b2YtbGluZSBrZXlzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny1wcml2YXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1ZmY4OTkxNzFjZGYzMzhjYjU0M2M5ODdiYTU1
ZTU1N2I2MmExYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ3
LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgp
IC0gYXV0b0luY3JlbWVudCBhbmQgb3V0LW9mLWxpbmUga2V5cyA8L3RpdGxlPgotPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotICAgIHZhciBkYiwKLSAgICAgIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQg
PSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKLSAgICAgIGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMs
IDQgXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0KLSAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7
Ci0gICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOwotICAgICAgICBvYmpTdG9yZS5wdXQocmVj
b3JkKTsKLSAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBb
XSwKLSAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigp
OwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGlm
IChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkp
OwotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1
YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0Ny5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDcuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0NWZmODk5MTcxY2RmMzM4Y2I1NDNjOTg3YmE1NWU1NTdiNjJhMWE1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIG91dC1vZi1saW5lIGtl
eXMgPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNf
dGVzdCgpLAotICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCi0gICAgICBleHBl
Y3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwotCi0gICAgICAg
IG9ialN0b3JlLnB1dChyZWNvcmQpOwotICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLSAg
ICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQp
OwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCi0gICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigi
c3RvcmUiKQotICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAg
ICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OwotCi0gICAgICAgICAgICBpZiAoY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgYWN0dWFs
X2tleXMucHVzaChjdXJzb3Iua2V5KTsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMpOwotICAgICAgICAg
ICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9OwotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDgtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEyMzdhNThlYTI1YmU4
ODBkOGI0MDY5ZDE2ZmI3ODUxNmUxYjZhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNy
ZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDgtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMjM3YTU4ZWEyNWJlODgwZDhiNDA2OWQxNmZiNzg1
MTZlMWI2YTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4LXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1Mg
SURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1
ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDgt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ4LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTVlNzhjYmM5YWZkODcxNmJlZTgyNTVkYjBmNjIyZWZiMmUxY2I2MC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDgtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNy
ZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdCgpLAot
ICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCi0gICAgICBleHBlY3RlZF9rZXlz
ID0gWyAxLCAyLCAzLCA0IF07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiwgYXV0b0luY3JlbWVudDogdHJ1
ZSB9KTsKLQotICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUu
cHV0KHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOwotICAgICAgICBvYmpT
dG9yZS5wdXQocmVjb3JkKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAgICAgICAgIHJxID0g
ZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJz
dG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAg
ICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLnRlc3Qub2JqLmtleSk7Ci0g
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9r
ZXlzLCBleHBlY3RlZF9rZXlzKTsKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQ4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0OC5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1
ZTc4Y2JjOWFmZDg3MTZiZWU4MjU1ZGIwZjYyMmVmYjJlMWNiNjAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4Lmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklE
Qk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0b3JlIGhhcyBhdXRvSW5jcmVtZW50OnRydWUg
YW5kIHRoZSBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlIDwvdGl0bGU+Ci08bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29y
ZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAotICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwg
MywgNCBdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsga2V5UGF0aDogInRlc3Qub2JqLmtleSIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0KLSAg
ICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7Ci0gICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQp
OwotICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKLSAgICAgICAgb2JqU3RvcmUucHV0KHJl
Y29yZCk7Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKLSAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBh
Y3R1YWxfa2V5cy5wdXNoKGN1cnNvci52YWx1ZS50ZXN0Lm9iai5rZXkpOwotICAgICAgICAgICAg
ICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0
ZWRfa2V5cyk7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0OS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5OTRmN2Q4YTYyMmNlNGVjMDRmYzZhYTU4ZGRhODk2NTM1NTQyMGM5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0OS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVt
cHQgdG8gcHV0IGEgcmVjb3JkIHRoYXQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2Yg
YW4gb2JqZWN0IHN0b3JlJ3MgaW5saW5lIGtleSByZXF1aXJlbWVudHMgIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDkt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDktcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk5NGY3ZDhhNjIyY2U0ZWMwNGZjNmFhNThkZGE4OTY1MzU1NDIwYzku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ5LXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCT2JqZWN0
U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQg
dGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1l
bnRzICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQ5LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0OS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDc3OWFlZDdmMTY3NmVhMjk0NzQwNTk5YTVhYTQ4YzE2MmYxZTVl
YmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ5LXByaXZhdGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1w
dCB0byBwdXQgYSByZWNvcmQgdGhhdCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBh
biBvYmplY3Qgc3RvcmUncyBpbmxpbmUga2V5IHJlcXVpcmVtZW50cyA8L3RpdGxlPgotPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotICAgIHZhciB0ID0gYXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkID0geyBrZXk6
IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZh
ciBycSwKLSAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdCwKLSAgICAgICAgICBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7Ci0K
LSAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKLSAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQsIDEpOyB9KTsKLQotICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJxLCB1bmRlZmluZWQpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9OwotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDkuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ5Lmh0bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzc5YWVkN2YxNjc2ZWEyOTQ3NDA1OTlhNWFhNDhjMTYyZjFl
NWViYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDkuaHRtCisr
KyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1
dCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVj
dCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1lbnRzIDwvdGl0bGU+Ci08bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIHQgPSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJv
cGVydHk6ICJkYXRhIiB9OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHJxLAot
ICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0LAotICAgICAgICAgIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKLQotICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJx
ID0gb2JqU3RvcmUucHV0KHJlY29yZCwgMSk7IH0pOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMo
cnEsIHVuZGVmaW5lZCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH07Ci08L3NjcmlwdD4KLQot
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlN2FkMTZhYjQ0MGJjY2Y4ODBhN2M0M2VhNDc5NDU5NmM2
YzQyNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBJREJUcmFuc2FjdGlvbiAt
IHJlcXVlc3QgZ290dGVuIGJ5IHRoZSBoYW5kbGVyIAotUEFTUyBJREJUcmFuc2FjdGlvbiAtIHJl
cXVlc3QgcmV0dXJuZWQgYnkgb3BlbigpIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNv
bXBsZXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFmM2Yz
MjRkYTEzNTJkNDJjNTQ1YzhhZDdkNzNjMDRmYmRjM2ExOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgSURCVHJhbnNhY3Rpb24gLSBjb21wbGV0ZSBldmVudCAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFu
c2FjdGlvbi1vbmNvbXBsZXRlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWYzZjMyNGRhMTM1MmQ0
MmM1NDVjOGFkN2Q3M2MwNGZiZGMzYTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJh
bnNhY3Rpb24tb25jb21wbGV0ZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQlRyYW5zYWN0aW9uIC0gY29tcGxldGUgZXZlbnQgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNh
Y3Rpb24tb25jb21wbGV0ZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Y2ZDQ0MzlmYzhkY2NkZmM0M2EzNTEzZTM4MGQ0MzA2
Yzk3NzdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0
ZS1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTx0aXRsZT5JREJUcmFuc2FjdGlvbiAtIGNvbXBsZXRlIGV2ZW50PC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwgc3RvcmUsCi0gICAgICB0ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICBvcGVuX3JxID0g
Y3JlYXRlZGIodCksCi0gICAgICBzdGFnZXMgPSBbXTsKLQotICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBzdGFnZXMucHVzaCgidXBncmFkZW5lZWRl
ZCIpOwotCi0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOwotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHN0YWdlcy5wdXNoKCJj
b21wbGV0ZSIpOwotICAgICAgICB9OwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgc3RhZ2VzLnB1c2goInN1Y2Nlc3MiKTsKLQotICAgICAg
ICAvLyBNYWtpbmcgYSB0b3RhbGx5IG5ldyB0cmFuc2FjdGlvbiB0byBjaGVjawotICAgICAgICBk
Yi50cmFuc2FjdGlvbignc3RvcmUnKS5vYmplY3RTdG9yZSgnc3RvcmUnKS5jb3VudCgpLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoc3RhZ2VzLCBbICJ1cGdyYWRlbmVlZGVkIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb21wbGV0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3VjY2VzcyIgXSk7Ci0gICAgICAgICAgICB0LmRvbmUoKTsK
LSAgICAgICAgfSk7Ci0gICAgICAgIC8vIFhYWDogTWFrZSBvbmUgd2l0aCByZWFsIHRyYW5zYWN0
aW9ucywgbm90IG9ubHkgb3BlbigpIHZlcnNpb25jaGFuZ2Ugb25lCi0KLSAgICAgICAgLypkYi50
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgc3RhZ2VzLnB1c2goIm9wZW5jdXJzb3IxIik7Ci0g
ICAgICAgIH0KLQotICAgICAgICBzdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgc3RhZ2VzLnB1c2goIm9wZW5jdXJzb3IyIik7Ci0gICAgICAg
IH0KLQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5v
cGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgc3RhZ2Vz
LnB1c2goIm9wZW5jdXJzb3IzIik7Ci0gICAgICAgIH0KLSAgICAgICAgKi8KLSAgICB9Ci0KLTwv
c2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0
ZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZjZkNDQzOWZjOGRjY2RmYzQz
YTM1MTNlMzgwZDQzMDZjOTc3N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2Fj
dGlvbi1vbmNvbXBsZXRlLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHRpdGxlPklEQlRyYW5zYWN0aW9uIC0gY29tcGxldGUgZXZlbnQ8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCBzdG9yZSwKLSAgICAgIHQgPSBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKLSAgICAgIG9wZW5f
cnEgPSBjcmVhdGVkYih0KSwKLSAgICAgIHN0YWdlcyA9IFtdOwotCi0gICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHN0YWdlcy5wdXNoKCJ1cGdyYWRl
bmVlZGVkIik7Ci0KLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7Ci0KLSAgICAgICAgZS50YXJnZXQudHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc3RhZ2VzLnB1
c2goImNvbXBsZXRlIik7Ci0gICAgICAgIH07Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICBzdGFnZXMucHVzaCgic3VjY2VzcyIpOwotCi0g
ICAgICAgIC8vIE1ha2luZyBhIHRvdGFsbHkgbmV3IHRyYW5zYWN0aW9uIHRvIGNoZWNrCi0gICAg
ICAgIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLmNvdW50KCku
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzdGFnZXMsIFsgInVwZ3JhZGVuZWVkZWQiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBsZXRlIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdWNjZXNzIiBdKTsKLSAgICAgICAgICAgIHQuZG9u
ZSgpOwotICAgICAgICB9KTsKLSAgICAgICAgLy8gWFhYOiBNYWtlIG9uZSB3aXRoIHJlYWwgdHJh
bnNhY3Rpb25zLCBub3Qgb25seSBvcGVuKCkgdmVyc2lvbmNoYW5nZSBvbmUKLQotICAgICAgICAv
KmRiLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBzdGFnZXMucHVzaCgib3BlbmN1cnNvcjEi
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBzdGFnZXMucHVzaCgib3BlbmN1cnNvcjIiKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZScpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBz
dGFnZXMucHVzaCgib3BlbmN1cnNvcjMiKTsKLSAgICAgICAgfQotICAgICAgICAqLwotICAgIH0K
LQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlv
bi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U3
YWQxNmFiNDQwYmNjZjg4MGE3YzQzZWE0Nzk0NTk2YzZjNDI0YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYnRyYW5zYWN0aW9uLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi0KLVBBU1MgSURCVHJhbnNhY3Rpb24gLSByZXF1ZXN0IGdvdHRlbiBi
eSB0aGUgaGFuZGxlciAKLVBBU1MgSURCVHJhbnNhY3Rpb24gLSByZXF1ZXN0IHJldHVybmVkIGJ5
IG9wZW4oKSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJ0cmFuc2FjdGlvbi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzU3ZTY1ZmZlNjhmZDdlYzVkNTU1ZWM2ZjIyMWRjYzYyMmRlZGEzMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLXByaXZhdGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQlRyYW5z
YWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAg
IHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHJlcXVlc3QgZ290dGVuIGJ5IHRo
ZSBoYW5kbGVyIiksCi0gICAgICBvcGVuX3QgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
IiAtIHJlcXVlc3QgcmV0dXJuZWQgYnkgb3BlbigpIiksCi0KLSAgICBvcGVuX3JxID0gaW5kZXhl
ZERCLm9wZW4oImlkYnRyYW5zYWN0aW9uLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1hdGgu
cmFuZG9tKCkpOwotCi0gICAgb3Blbl90LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMob3Blbl9ycS50cmFuc2FjdGlvbiwgbnVsbCwgIklEQk9wZW5EQlJlcXVlc3QudHJh
bnNhY3Rpb24iKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhvcGVuX3JxLnNvdXJjZSwgbnVsbCwg
IklEQk9wZW5EQlJlcXVlc3Quc291cmNlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMob3Blbl9y
cS5yZWFkeVN0YXRlLCAicGVuZGluZyIsICJJREJPcGVuREJSZXF1ZXN0LnJlYWR5U3RhdGUiKTsK
LQotICAgICAgICBhc3NlcnRfdHJ1ZShvcGVuX3JxIGluc3RhbmNlb2YgSURCT3BlbkRCUmVxdWVz
dCwgIm9wZW5fcnEgaW5zdGFuY2VvZiBJREJPcGVuREJSZXF1ZXN0Iik7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMob3Blbl9ycSArICIiLCAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIsICJJREJP
cGVuREJSZXF1ZXN0IChvcGVuX3JxKSIpOwotCi0gICAgICAgIG9wZW5fdC5kb25lKCk7Ci0gICAg
fSk7Ci0KLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldCwgb3Blbl9ycSwgImUudGFyZ2V0
IGlzIHJldXNpbmcgdGhlIHNhbWUgSURCT3BlbkRCUmVxdWVzdCIpOwotICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnRyYW5zYWN0aW9uLCBvcGVuX3JxLnRyYW5zYWN0aW9uLCAiSURCT3Bl
bkRCUmVxdWVzdC50cmFuc2FjdGlvbiIpOwotCi0gICAgICAgIGFzc2VydF90cnVlKGUudGFyZ2V0
LnRyYW5zYWN0aW9uIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24sICJ0cmFuc2FjdGlvbiBpbnN0
YW5jZW9mIElEQlRyYW5zYWN0aW9uIik7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0pOwotCi0K
LSAgICAvLyBOb3QgcGxhdXNpYmxlIGNvbmRpdGlvbnMuLi4KLSAgICBmdW5jdGlvbiBmYWlsX2hl
bHBlcihuYW1lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHQu
c3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7Ci0gICAgICAgICAg
ICBvcGVuX3Quc3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7Ci0g
ICAgICAgIH07Ci0gICAgfQotICAgIG9wZW5fcnEub25ibG9ja2VkID0gZmFpbF9oZWxwZXIoJ29w
ZW5fcnEub25ibG9ja2VkJyk7Ci0gICAgb3Blbl9ycS5vbmVycm9yID0gZmFpbF9oZWxwZXIoJ29w
ZW5fcnEub25lcnJvcicpOwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9u
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24u
aHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTdlNjVmZmU2OGZkN2VjNWQ1NTVl
YzZmMjIxZGNjNjIyZGVkYTMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rp
b24uaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
dGl0bGU+SURCVHJhbnNhY3Rpb248L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1h
aWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAg
dmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gcmVxdWVz
dCBnb3R0ZW4gYnkgdGhlIGhhbmRsZXIiKSwKLSAgICAgIG9wZW5fdCA9IGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUgKyAiIC0gcmVxdWVzdCByZXR1cm5lZCBieSBvcGVuKCkiKSwKLQotICAgIG9w
ZW5fcnEgPSBpbmRleGVkREIub3BlbigiaWRidHJhbnNhY3Rpb24tIiArIG5ldyBEYXRlKCkuZ2V0
VGltZSgpICsgTWF0aC5yYW5kb20oKSk7Ci0KLSAgICBvcGVuX3Quc3RlcChmdW5jdGlvbigpIHsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhvcGVuX3JxLnRyYW5zYWN0aW9uLCBudWxsLCAiSURCT3Bl
bkRCUmVxdWVzdC50cmFuc2FjdGlvbiIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEu
c291cmNlLCBudWxsLCAiSURCT3BlbkRCUmVxdWVzdC5zb3VyY2UiKTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhvcGVuX3JxLnJlYWR5U3RhdGUsICJwZW5kaW5nIiwgIklEQk9wZW5EQlJlcXVlc3Qu
cmVhZHlTdGF0ZSIpOwotCi0gICAgICAgIGFzc2VydF90cnVlKG9wZW5fcnEgaW5zdGFuY2VvZiBJ
REJPcGVuREJSZXF1ZXN0LCAib3Blbl9ycSBpbnN0YW5jZW9mIElEQk9wZW5EQlJlcXVlc3QiKTsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhvcGVuX3JxICsgIiIsICJbb2JqZWN0IElEQk9wZW5EQlJl
cXVlc3RdIiwgIklEQk9wZW5EQlJlcXVlc3QgKG9wZW5fcnEpIik7Ci0KLSAgICAgICAgb3Blbl90
LmRvbmUoKTsKLSAgICB9KTsKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LCBvcGVu
X3JxLCAiZS50YXJnZXQgaXMgcmV1c2luZyB0aGUgc2FtZSBJREJPcGVuREJSZXF1ZXN0Iik7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQudHJhbnNhY3Rpb24sIG9wZW5fcnEudHJhbnNh
Y3Rpb24sICJJREJPcGVuREJSZXF1ZXN0LnRyYW5zYWN0aW9uIik7Ci0KLSAgICAgICAgYXNzZXJ0
X3RydWUoZS50YXJnZXQudHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiwgInRy
YW5zYWN0aW9uIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24iKTsKLSAgICAgICAgdC5kb25lKCk7
Ci0gICAgfSk7Ci0KLQotICAgIC8vIE5vdCBwbGF1c2libGUgY29uZGl0aW9ucy4uLgotICAgIGZ1
bmN0aW9uIGZhaWxfaGVscGVyKG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9
KTsKLSAgICAgICAgICAgIG9wZW5fdC5zdGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVk
KG5hbWUpOyB9KTsKLSAgICAgICAgfTsKLSAgICB9Ci0gICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBm
YWlsX2hlbHBlcignb3Blbl9ycS5vbmJsb2NrZWQnKTsKLSAgICBvcGVuX3JxLm9uZXJyb3IgPSBm
YWlsX2hlbHBlcignb3Blbl9ycS5vbmVycm9yJyk7Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRidHJhbnNhY3Rpb25fYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxZWVhMGE3MmE5ODAxMTBmMTVhY2UyZTE3MTBmMjQxM2Vi
Yzc5ODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBJREJUcmFuc2Fj
dGlvbiAtIGFib3J0IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1wcml2YXRl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFlZWEwYTcyYTk4
MDExMGYxNWFjZTJlMTcxMGYyNDEzZWJjNzk4NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi0KLVBBU1MgSURCVHJhbnNhY3Rpb24gLSBhYm9ydCAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9y
dC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRy
YW5zYWN0aW9uX2Fib3J0LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjAxYmVhZDI2MWQxNjNiMmY4YzQ2YTk3MGZlNDdmYjBhM2E2OTBlMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYt
OD4KLTx0aXRsZT5JREJUcmFuc2FjdGlvbiAtIGFib3J0PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNj
cmlwdD4KLSAgICB2YXIgZGIsIGFib3J0ZWQsCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICByZWNvcmQgPSB7IGluZGV4ZWRQcm9w
ZXJ0eTogImJhciIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OwotICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCi0gICAg
ICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLQotICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsKLSAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwg
Mik7Ci0gICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
bmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKLQotICAgICAgICBhc3NlcnRfdHJ1
ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsKLQotICAgICAgICBlLnRh
cmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgYWJvcnRlZCA9IHRydWU7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlw
ZSwgImFib3J0IiwgImV2ZW50IHR5cGUiKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGIub25h
Ym9ydCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGFib3J0ZWQsICJ0
cmFuc2FjdGlvbi5hYm9ydCBldmVudCBoYXMgZmlyZWQiKTsKLSAgICAgICAgICAgIHQuZG9uZSgp
OwotICAgICAgICB9OwotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBmYWlsKHQsICJnb3QgY29tcGxldGUsIGV4cGVjdGVkIGFib3J0Iik7Ci0gICAgfTsKLQotPC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAxYmVhZDI2MWQxNjNiMmY4YzQ2YTk3MGZlNDdmYjBh
M2E2OTBlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREJUcmFuc2FjdGlvbiAtIGFib3J0PC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIGFib3J0ZWQsCi0gICAgICB0ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICByZWNvcmQgPSB7
IGluZGV4ZWRQcm9wZXJ0eTogImJhciIgfTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNh
Y3Rpb24sCi0gICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
KTsKLQotICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsKLSAgICAgICAgb2JqU3RvcmUu
YWRkKHJlY29yZCwgMik7Ci0gICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4
KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKLQotICAgICAg
ICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsKLQot
ICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgYWJvcnRlZCA9IHRydWU7Ci0gICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudHlwZSwgImFib3J0IiwgImV2ZW50IHR5cGUiKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgZGIub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVl
KGFib3J0ZWQsICJ0cmFuc2FjdGlvbi5hYm9ydCBldmVudCBoYXMgZmlyZWQiKTsKLSAgICAgICAg
ICAgIHQuZG9uZSgpOwotICAgICAgICB9OwotCi0gICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9u
Lm9uY29tcGxldGUgPSBmYWlsKHQsICJnb3QgY29tcGxldGUsIGV4cGVjdGVkIGFib3J0Iik7Ci0g
ICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9u
Y2hhbmdlZXZlbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
ZjJlODMyOTRiZDg1M2I1YjIxNGVlZWFhMGQzZTE4MzQ5MjNkNGI5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRidmVyc2lvbmNoYW5nZWV2ZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIElEQlZlcnNpb25DaGFuZ2VFdmVudCBmaXJlZCBpbiB1
cGdyYWRlbmVlZGVkLCB2ZXJzaW9uY2hhbmdlIGFuZCBkZWxldGVEYXRhYmFzZSAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdl
ZXZlbnQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmYyZTgzMjk0YmQ4NTNiNWIyMTRlZWVhYTBkM2UxODM0
OTIzZDRiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IElEQlZlcnNpb25DaGFuZ2VFdmVudCBmaXJlZCBpbiB1cGdyYWRlbmVlZGVkLCB2ZXJzaW9uY2hh
bmdlIGFuZCBkZWxldGVEYXRhYmFzZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtcHJp
dmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzA1NGZjOGIxYmNlNjM5
NDRhYzkzN2U2NzhlM2NhMjFkZTkwZWE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidmVy
c2lvbmNoYW5nZWV2ZW50LXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPklEQlZlcnNpb25DaGFuZ2VFdmVudCBmaXJlZCBp
biB1cGdyYWRlbmVlZGVkLCB2ZXJzaW9uY2hhbmdlIGFuZCBkZWxldGVEYXRhYmFzZTwvdGl0bGU+
Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN2ZXJzaW9uY2hh
bmdlLS10cmFuc2FjdGlvbi1zdGVwcyI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJGaXJlIGEg
dmVyc2lvbmNoYW5nZSBldmVudCBhdCBlYWNoIG9iamVjdCBpbiBvcGVuRGF0YWJhc2VzIHRoYXQg
aXMgb3Blbi4gVGhlIGV2ZW50IG11c3Qgbm90IGJlIGZpcmVkIG9uIG9iamVjdHMgd2hpY2ggaGFz
IHRoZSBjbG9zZVBlbmRpbmcgZmxhZyBzZXQuIFRoZSBldmVudCBtdXN0IHVzZSB0aGUgSURCVmVy
c2lvbkNoYW5nZUV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSB0aGUgb2xkVmVyc2lvbiBwcm9wZXJ0
eSBzZXQgdG8gZGIncyB2ZXJzaW9uIGFuZCBoYXZlIHRoZSBuZXdWZXJzaW9uIHByb3BlcnR5IHNl
dCB0byB2ZXJzaW9uLiI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJGaXJlIGEgdXBncmFkZW5l
ZWRlZCBldmVudCB0YXJnZXRlZCBhdCByZXF1ZXN0LiBUaGUgZXZlbnQgbXVzdCB1c2UgdGhlIElE
QlZlcnNpb25DaGFuZ2VFdmVudCBpbnRlcmZhY2UgYW5kIGhhdmUgdGhlIG9sZFZlcnNpb24gcHJv
cGVydHkgc2V0IHRvIG9sZCB2ZXJzaW9uIGFuZCBoYXZlIHRoZSBuZXdWZXJzaW9uIHByb3BlcnR5
IHNldCB0byB2ZXJzaW9uLiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGRi
LAotICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAw
fSk7Ci0KLSAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBvcGVucnEgPSBpbmRl
eGVkREIub3BlbignZGInLCAzKTsKLQotICAgICAgICBvcGVucnEub251cGdyYWRlbmVlZGVkID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9s
ZFZlcnNpb24sIDAsICJvbGQgdmVyc2lvbiAodXBncmFkZW5lZWRlZCkiKTsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCAzLCAibmV3IHZlcnNpb24gKHVwZ3JhZGVuZWVk
ZWQpIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNo
YW5nZUV2ZW50LCAidXBncmFkZW5lZWRlZCBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVu
dCIpOwotICAgICAgICB9KTsKLQotICAgICAgICBvcGVucnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAg
ICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgMywgIm9sZCB2ZXJz
aW9uICh2ZXJzaW9uY2hhbmdlKSIpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5u
ZXdWZXJzaW9uLCBudWxsLCAibmV3IHZlcnNpb24gKHZlcnNpb25jaGFuZ2UpIik7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwg
InZlcnNpb25jaGFuZ2UgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKLSAgICAg
ICAgICAgICAgICBkYi5jbG9zZSgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIC8v
IEVycm9ycwotICAgICAgICAgICAgZGIub25lcnJvciA9IGZhaWwodCwgImRiLmVycm9yIik7Ci0g
ICAgICAgICAgICBkYi5vbmFib3J0ID0gZmFpbCh0LCAiZGIuYWJvcnQiKTsKLQotICAgICAgICAg
ICAgc2V0VGltZW91dCh0LnN0ZXBfZnVuYyhkZWxldGVEQiksIDEwKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgLy8gRXJyb3JzCi0gICAgICAgIG9wZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Bl
bi5lcnJvciIpOwotICAgICAgICBvcGVucnEub25ibG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9j
a2VkIik7Ci0KLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGRlbGV0ZURCIChlKSB7Ci0gICAgICAg
IHZhciBkZWxldGVycSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKLQotICAgICAg
ICBkZWxldGVycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgMywgIm9sZCB2ZXJzaW9uIChkZWxldGUu
c3VjY2VzcykiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCBudWxs
LCAibmV3IHZlcnNpb24gKGRlbGV0ZS5zdWNjZXNzKSIpOwotICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImRlbGV0ZS5zdWNjZXNzIGlu
c3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50Iik7Ci0KLSAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7IHQuZG9uZSgpOyB9LCAxMCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IC8vIEVycm9ycwotICAgICAgICBkZWxldGVycS5vbmVycm9yID0gZmFpbCh0LCAiZGVsZXRlLmVy
cm9yIik7Ci0gICAgICAgIGRlbGV0ZXJxLm9uYmxvY2tlZCA9IGZhaWwodCwgImRlbGV0ZS5ibG9j
a2VkIik7Ci0gICAgfQotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRidmVyc2lvbmNoYW5nZWV2ZW50Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidmVyc2lvbmNoYW5nZWV2ZW50Lmh0bQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcwNTRmYzhiMWJjZTYzOTQ0YWM5MzdlNjc4ZTNjYTIx
ZGU5MGVhNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC5o
dG0KKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRs
ZT5JREJWZXJzaW9uQ2hhbmdlRXZlbnQgZmlyZWQgaW4gdXBncmFkZW5lZWRlZCwgdmVyc2lvbmNo
YW5nZSBhbmQgZGVsZXRlRGF0YWJhc2U8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxs
aW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjdmVyc2lvbmNoYW5nZS0tdHJhbnNhY3Rpb24tc3RlcHMiPgot
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iRmlyZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgYXQgZWFj
aCBvYmplY3QgaW4gb3BlbkRhdGFiYXNlcyB0aGF0IGlzIG9wZW4uIFRoZSBldmVudCBtdXN0IG5v
dCBiZSBmaXJlZCBvbiBvYmplY3RzIHdoaWNoIGhhcyB0aGUgY2xvc2VQZW5kaW5nIGZsYWcgc2V0
LiBUaGUgZXZlbnQgbXVzdCB1c2UgdGhlIElEQlZlcnNpb25DaGFuZ2VFdmVudCBpbnRlcmZhY2Ug
YW5kIGhhdmUgdGhlIG9sZFZlcnNpb24gcHJvcGVydHkgc2V0IHRvIGRiJ3MgdmVyc2lvbiBhbmQg
aGF2ZSB0aGUgbmV3VmVyc2lvbiBwcm9wZXJ0eSBzZXQgdG8gdmVyc2lvbi4iPgotPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iRmlyZSBhIHVwZ3JhZGVuZWVkZWQgZXZlbnQgdGFyZ2V0ZWQgYXQgcmVx
dWVzdC4gVGhlIGV2ZW50IG11c3QgdXNlIHRoZSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgaW50ZXJm
YWNlIGFuZCBoYXZlIHRoZSBvbGRWZXJzaW9uIHByb3BlcnR5IHNldCB0byBvbGQgdmVyc2lvbiBh
bmQgaGF2ZSB0aGUgbmV3VmVyc2lvbiBwcm9wZXJ0eSBzZXQgdG8gdmVyc2lvbi4iPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48
L2Rpdj4KLQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwKLSAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pOwotCi0gICAgdC5zdGVwKGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgb3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7Ci0KLSAg
ICAgICAgb3BlbnJxLm9udXBncmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAwLCAib2xkIHZlcnNpb24g
KHVwZ3JhZGVuZWVkZWQpIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVyc2lv
biwgMywgIm5ldyB2ZXJzaW9uICh1cGdyYWRlbmVlZGVkKSIpOwotICAgICAgICAgICAgYXNzZXJ0
X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgInVwZ3JhZGVuZWVkZWQg
aW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKLSAgICAgICAgfSk7Ci0KLSAgICAg
ICAgb3BlbnJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBkYi5vbnZlcnNpb25jaGFu
Z2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLm9sZFZlcnNpb24sIDMsICJvbGQgdmVyc2lvbiAodmVyc2lvbmNoYW5nZSkiKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwgbnVsbCwgIm5ldyB2ZXJz
aW9uICh2ZXJzaW9uY2hhbmdlKSIpOwotICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5z
dGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQsICJ2ZXJzaW9uY2hhbmdlIGluc3RhbmNlb2Yg
SURCVmVyc2lvbkNoYW5nZUV2ZW50Iik7Ci0gICAgICAgICAgICAgICAgZGIuY2xvc2UoKTsKLSAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAvLyBFcnJvcnMKLSAgICAgICAgICAgIGRiLm9u
ZXJyb3IgPSBmYWlsKHQsICJkYi5lcnJvciIpOwotICAgICAgICAgICAgZGIub25hYm9ydCA9IGZh
aWwodCwgImRiLmFib3J0Iik7Ci0KLSAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1bmMo
ZGVsZXRlREIpLCAxMCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIEVycm9ycwotICAgICAg
ICBvcGVucnEub25lcnJvciA9IGZhaWwodCwgIm9wZW4uZXJyb3IiKTsKLSAgICAgICAgb3BlbnJx
Lm9uYmxvY2tlZCA9IGZhaWwodCwgIm9wZW4uYmxvY2tlZCIpOwotCi0gICAgfSk7Ci0KLSAgICBm
dW5jdGlvbiBkZWxldGVEQiAoZSkgewotICAgICAgICB2YXIgZGVsZXRlcnEgPSBpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoJ2RiJyk7Ci0KLSAgICAgICAgZGVsZXRlcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZl
cnNpb24sIDMsICJvbGQgdmVyc2lvbiAoZGVsZXRlLnN1Y2Nlc3MpIik7Ci0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwgbnVsbCwgIm5ldyB2ZXJzaW9uIChkZWxldGUuc3Vj
Y2VzcykiKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9u
Q2hhbmdlRXZlbnQsICJkZWxldGUuc3VjY2VzcyBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VF
dmVudCIpOwotCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsg
fSwgMTApOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyBFcnJvcnMKLSAgICAgICAgZGVsZXRl
cnEub25lcnJvciA9IGZhaWwodCwgImRlbGV0ZS5lcnJvciIpOwotICAgICAgICBkZWxldGVycS5v
bmJsb2NrZWQgPSBmYWlsKHQsICJkZWxldGUuYmxvY2tlZCIpOwotICAgIH0KLQotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYndvcmtl
ci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRid29ya2VyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTlmNmZiNjkxMTliNWM2NjA1MDQ3ZjBlMGMz
OGVmNmZlODQ3MDA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRid29ya2VyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotdmFyIGRiCi0KLXNlbGYuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIE1lc3NhZ2VIYW5kbGVyLCBmYWxzZSkKLQotZnVuY3Rpb24gTWVzc2FnZUhh
bmRsZXIoZSkKLXsKLSAgICB2YXIgb3Blbl9ycSwgaWRiID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QgotCi0gICAgaWYgKCFpZGIpCi0gICAgewotICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKGZhbHNl
KQotICAgICAgICByZXR1cm4KLSAgICB9Ci0gICAgZWxzZQotICAgICAgICBzZWxmLnBvc3RNZXNz
YWdlKHRydWUpCi0KLSAgICBvcGVuX3JxID0gaWRiLm9wZW4oIndlYndvcmtlcjEwMSIsIDEpCi0K
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQKLSAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikK
LSAgICAgICAgICAuYWRkKCJ0ZXN0IiwgMSkKLSAgICB9Ci0gICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Ci0gICAgICAgIGRi
Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgc2VsZi5wb3N0TWVzc2FnZSgiZGIuZXJyb3IiKSB9Ci0g
ICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpLm9iamVjdFN0b3JlKCJzdG9yZSIpLmdldCgx
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdl
KGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgICAgIGRiLmNsb3NlKCkKLSAgICAgICAgfQotICAg
IH0KLSAgICBvcGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgc2VsZi5wb3N0TWVzc2FnZSgi
b3Blbi5lcnJvciIpIH0KLSAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZ1bmN0aW9uKCkgeyBzZWxm
LnBvc3RNZXNzYWdlKCJvcGVuLmJsb2NrZWQiKSB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4X3NvcnRfb3JkZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0MThhYWNlZjA2ZjY3NjEw
ZWJlZmVhNDc3MjQxMjljMjhiMDRlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4X3Nv
cnRfb3JkZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgVmVyaWZ5IGtleSBzb3J0IG9yZGVyIGluIGFuIGluZGV4IGlzICdudW1iZXIgPCBEYXRlIDwg
RE9NU3RyaW5nJyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaW5kZXhfc29ydF9vcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9vcmRlci1wcml2YXRlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0MThhYWNlZjA2ZjY3NjEwZWJl
ZmVhNDc3MjQxMjljMjhiMDRlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4X3NvcnRf
b3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotUEFTUyBWZXJpZnkga2V5IHNvcnQgb3JkZXIgaW4gYW4gaW5kZXggaXMgJ251bWJlciA8IERh
dGUgPCBET01TdHJpbmcnICAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9vcmRlci1wcml2YXRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1N2IzNzQwNzFhMWM1NjU4NzM5YWE0NjY4NWZkNTA0
YzZhYjI5NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLXByaXZh
dGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlZlcmlmeSBrZXkgc29ydCBvcmRlciBpbiBh
biBpbmRleCBpcyAnbnVtYmVyICZsdDsgRGF0ZSAmbHQ7IERPTVN0cmluZycgPC90aXRsZT4KLTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLSAgICB2YXIgZGIsCi0gICAgICBkID0gbmV3IERhdGUoKSwKLSAgICAgIHQg
PSBhc3luY190ZXN0KCksCi0gICAgICByZWNvcmRzID0gWyB7IGZvbzogZCB9LAotICAgICAgICAg
ICAgICAgICAgeyBmb286ICJ0ZXN0IiB9LAotICAgICAgICAgICAgICAgICAgeyBmb286IDEgfSwK
LSAgICAgICAgICAgICAgICAgIHsgZm9vOiAyLjU1IH0gIF0sCi0gICAgICBleHBlY3RlZEtleU9y
ZGVyID0gWyAxLCAyLjU1LCBkLnZhbHVlT2YoKSwgInRlc3QiIF07Ci0KLSAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0p
OwotICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiZm9vIik7Ci0KLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCi0gICAgICAg
ICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCi0gICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdDsKLQotICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAgICAgICAgIGFjdHVh
bF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOwotICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRLZXlPcmRl
cik7Ci0gICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0p
OwotICAgIH07Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9vcmRlci5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4X3NvcnRfb3JkZXIuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTdiMzc0MDcxYTFjNTY1ODczOWFhNDY2
ODVmZDUwNGM2YWIyOTViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9vcmRl
ci5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5WZXJpZnkga2V5IHNvcnQgb3JkZXIgaW4gYW4g
aW5kZXggaXMgJ251bWJlciAmbHQ7IERhdGUgJmx0OyBET01TdHJpbmcnIDwvdGl0bGU+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0gICAgdmFyIGRiLAotICAgICAgZCA9IG5ldyBEYXRlKCksCi0gICAgICB0ID0g
YXN5bmNfdGVzdCgpLAotICAgICAgcmVjb3JkcyA9IFsgeyBmb286IGQgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgZm9vOiAidGVzdCIgfSwKLSAgICAgICAgICAgICAgICAgIHsgZm9vOiAxIH0sCi0g
ICAgICAgICAgICAgICAgICB7IGZvbzogMi41NSB9ICBdLAotICAgICAgZXhwZWN0ZWRLZXlPcmRl
ciA9IFsgMSwgMi41NSwgZC52YWx1ZU9mKCksICJ0ZXN0IiBdOwotCi0gICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKLSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsK
LSAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImZvbyIpOwotCi0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9i
alN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAgICAgICAg
IHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQotICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7Ci0KLSAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhY3R1YWxf
a2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKLSAgICAgICAgICAgICAgICBjdXJzb3Iu
Y29udGludWUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkS2V5T3JkZXIp
OwotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsK
LSAgICB9OwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmVlM2Y3MTNmZjI5NjM2OWQwYjQw
NWY4MWRkNjQ4ZjA1YWMwNDA0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1GQUlMOiBUaW1lZCBv
dXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmIzZDA2MzQ4YmIxNzg0MWRjOTMwMmU5YjQ4YmJlNTdmNWEzM2Rl
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDUwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4K
LTx0aXRsZT5JbmRleGVkREIgSURMIHRlc3RzPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvaWRsaGFybmVzcy5qcz48L3NjcmlwdD4KLQotPGgxPkluZGV4ZWREQiBJREwgdGVzdHM8
L2gxPgotPGRpdiBpZD1sb2c+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1zZXR1
cChmdW5jdGlvbigpIHsKLSAgdmFyIGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7Ci0KLSAgdmFy
IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgcmVxdWVzdC5vcGVuKCJHRVQiLCAi
aW50ZXJmYWNlcy5pZGwiKTsKLSAgcmVxdWVzdC5zZW5kKCk7Ci0gIHJlcXVlc3Qub25sb2FkID0g
ZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGlkbHMgPSByZXF1ZXN0LnJlc3BvbnNlVGV4dDsKLQotICAg
IGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJbUHJpbWFyeUdsb2JhbF0gaW50ZXJmYWNlIFdp
bmRvdyB7IH07Iik7Ci0gICAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBF
dmVudCB7IH07Iik7Ci0gICAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBF
dmVudFRhcmdldCB7IH07Iik7Ci0KLSAgICAvLyBGcm9tIEluZGV4ZWQgREI6Ci0gICAgaWRsQXJy
YXkuYWRkX2lkbHMoaWRscyk7Ci0gICAgaWRsQXJyYXkuYWRkX2lkbHMoIldpbmRvdyBpbXBsZW1l
bnRzIElEQkVudmlyb25tZW50OyIpOwotCi0gICAgaWRsQXJyYXkuYWRkX29iamVjdHMoewotICAg
ICAgSURCQ3Vyc29yOiBbXSwKLSAgICAgIElEQkN1cnNvcldpdGhWYWx1ZTogW10sCi0gICAgICBJ
REJEYXRhYmFzZTogW10sCi0gICAgICBJREJFbnZpcm9ubWVudDogW10sCi0gICAgICBJREJGYWN0
b3J5OiBbIndpbmRvdy5pbmRleGVkREIiXSwKLSAgICAgIElEQkluZGV4OiBbXSwKLSAgICAgIElE
QktleVJhbmdlOiBbIklEQktleVJhbmdlLm9ubHkoMCkiXSwKLSAgICAgIElEQk9iamVjdFN0b3Jl
OiBbXSwKLSAgICAgIElEQk9wZW5EQlJlcXVlc3Q6IFtdLAotICAgICAgSURCUmVxdWVzdDogW10s
Ci0gICAgICBJREJUcmFuc2FjdGlvbjogW10sCi0gICAgICBJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6
IFsibmV3IElEQlZlcnNpb25DaGFuZ2VFdmVudCgnZm9vJykiXSwKLSAgICB9KTsKLQotICAgIGlk
bEFycmF5LnRlc3QoKTsKLSAgICBkb25lKCk7Ci0gIH07Ci19LCB7ZXhwbGljaXRfZG9uZTogdHJ1
ZX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2ludGVyZmFjZXMuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pbnRlcmZhY2VzLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU1ZTYyZjQ2
YjNkZTBiM2MwNDZmMmRiMWQ0NzI1ZDlhYjg3OGYzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2ludGVyZmFjZXMuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLWVudW0gSURC
VHJhbnNhY3Rpb25Nb2RlIHsKLSAgICAicmVhZG9ubHkiLAotICAgICJyZWFkd3JpdGUiLAotICAg
ICJ2ZXJzaW9uY2hhbmdlIgotfTsKLQotZW51bSBJREJSZXF1ZXN0UmVhZHlTdGF0ZSB7Ci0gICAg
InBlbmRpbmciLAotICAgICJkb25lIgotfTsKLQotaW50ZXJmYWNlIElEQktleVJhbmdlIHsKLSAg
ICByZWFkb25seSAgICBhdHRyaWJ1dGUgYW55ICAgICBsb3dlcjsKLSAgICByZWFkb25seSAgICBh
dHRyaWJ1dGUgYW55ICAgICB1cHBlcjsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYm9vbGVh
biBsb3dlck9wZW47Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIGJvb2xlYW4gdXBwZXJPcGVu
OwotICAgIHN0YXRpYyBJREJLZXlSYW5nZSBvbmx5IChhbnkgdmFsdWUpOwotICAgIHN0YXRpYyBJ
REJLZXlSYW5nZSBsb3dlckJvdW5kIChhbnkgbG93ZXIsIG9wdGlvbmFsIGJvb2xlYW4gb3BlbiA9
IGZhbHNlKTsKLSAgICBzdGF0aWMgSURCS2V5UmFuZ2UgdXBwZXJCb3VuZCAoYW55IHVwcGVyLCBv
cHRpb25hbCBib29sZWFuIG9wZW4gPSBmYWxzZSk7Ci0gICAgc3RhdGljIElEQktleVJhbmdlIGJv
dW5kIChhbnkgbG93ZXIsIGFueSB1cHBlciwgb3B0aW9uYWwgYm9vbGVhbiBsb3dlck9wZW4gPSBm
YWxzZSwgb3B0aW9uYWwgYm9vbGVhbiB1cHBlck9wZW4gPSBmYWxzZSk7Ci19OwotCi1lbnVtIElE
QkN1cnNvckRpcmVjdGlvbiB7Ci0gICAgIm5leHQiLAotICAgICJuZXh0dW5pcXVlIiwKLSAgICAi
cHJldiIsCi0gICAgInByZXZ1bmlxdWUiCi19OwotCi1kaWN0aW9uYXJ5IElEQk9iamVjdFN0b3Jl
UGFyYW1ldGVycyB7Ci0gICAgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KT8ga2V5
UGF0aCA9IG51bGw7Ci0gICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
b0luY3JlbWVudCA9IGZhbHNlOwotfTsKLQotZGljdGlvbmFyeSBJREJJbmRleFBhcmFtZXRlcnMg
ewotICAgIGJvb2xlYW4gdW5pcXVlID0gZmFsc2U7Ci0gICAgYm9vbGVhbiBtdWx0aUVudHJ5ID0g
ZmFsc2U7Ci19OwotCi1kaWN0aW9uYXJ5IElEQlZlcnNpb25DaGFuZ2VFdmVudEluaXQgOiBFdmVu
dEluaXQgewotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgb2xkVmVyc2lvbiA9IDA7Ci0gICAgdW5z
aWduZWQgbG9uZyBsb25nPyBuZXdWZXJzaW9uID0gbnVsbDsKLX07Ci0KLWludGVyZmFjZSBJREJS
ZXF1ZXN0IDogRXZlbnRUYXJnZXQgewotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBhbnkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OwotICAgIHJlYWRvbmx5
ICAgIGF0dHJpYnV0ZSBET01FcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXJyb3I7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIChJREJPYmplY3RTdG9yZSBvciBJREJJ
bmRleCBvciBJREJDdXJzb3IpPyBzb3VyY2U7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIElE
QlRyYW5zYWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbjsKLSAg
ICByZWFkb25seSAgICBhdHRyaWJ1dGUgSURCUmVxdWVzdFJlYWR5U3RhdGUgICAgICAgICAgICAg
ICAgICAgICAgIHJlYWR5U3RhdGU7Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbnN1Y2Nlc3M7Ci0gICAgICAgICAg
ICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvbmVycm9yOwotfTsKLQotaW50ZXJmYWNlIElEQk9wZW5EQlJlcXVlc3QgOiBJREJSZXF1ZXN0
IHsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmxvY2tlZDsKLSAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udXBncmFkZW5lZWRlZDsKLX07
Ci0KLVtDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgSURCVmVyc2lvbkNoYW5n
ZUV2ZW50SW5pdCBldmVudEluaXREaWN0KV0KLWludGVyZmFjZSBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQgOiBFdmVudCB7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9u
ZyAgb2xkVmVyc2lvbjsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
b25nPyBuZXdWZXJzaW9uOwotfTsKLQotW05vSW50ZXJmYWNlT2JqZWN0XQotaW50ZXJmYWNlIElE
QkVudmlyb25tZW50IHsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgSURCRmFjdG9yeSBpbmRl
eGVkREI7Ci19OwotCi1pbnRlcmZhY2UgSURCRmFjdG9yeSB7Ci0gICAgSURCT3BlbkRCUmVxdWVz
dCBvcGVuIChET01TdHJpbmcgbmFtZSwgW0VuZm9yY2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQg
bG9uZyBsb25nIHZlcnNpb24pOwotICAgIElEQk9wZW5EQlJlcXVlc3QgZGVsZXRlRGF0YWJhc2Ug
KERPTVN0cmluZyBuYW1lKTsKLSAgICBzaG9ydCAgICAgICAgICAgIGNtcCAoYW55IGZpcnN0LCBh
bnkgc2Vjb25kKTsKLX07Ci0KLWludGVyZmFjZSBJREJEYXRhYmFzZSA6IEV2ZW50VGFyZ2V0IHsK
LSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgIG5hbWU7Ci0gICAg
cmVhZG9ubHkgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOwotICAgIHJl
YWRvbmx5ICAgIGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0ICAgICAgb2JqZWN0U3RvcmVOYW1lczsK
LSAgICBJREJPYmplY3RTdG9yZSBjcmVhdGVPYmplY3RTdG9yZSAoRE9NU3RyaW5nIG5hbWUsIG9w
dGlvbmFsIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyBvcHRpb25hbFBhcmFtZXRlcnMpOwotICAg
IHZvaWQgICAgICAgICAgIGRlbGV0ZU9iamVjdFN0b3JlIChET01TdHJpbmcgbmFtZSk7Ci0gICAg
SURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24gKChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3Ry
aW5nPikgc3RvcmVOYW1lcywgb3B0aW9uYWwgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSAicmVh
ZG9ubHkiKTsKLSAgICB2b2lkICAgICAgICAgICBjbG9zZSAoKTsKLSAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgIG9uYWJvcnQ7Ci0gICAgICAgICAgICAgICAgYXR0
cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICBvbmVycm9yOwotICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgICAgICAgb252ZXJzaW9uY2hhbmdlOwotfTsKLQotaW50ZXJmYWNl
IElEQk9iamVjdFN0b3JlIHsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAg
ICAgbmFtZTsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYW55ICAgICAgICAgICAga2V5UGF0
aDsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCAgaW5kZXhOYW1lczsK
LSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247Ci0g
ICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgIGF1dG9JbmNyZW1lbnQ7Ci0g
ICAgSURCUmVxdWVzdCBwdXQgKGFueSB2YWx1ZSwgb3B0aW9uYWwgYW55IGtleSk7Ci0gICAgSURC
UmVxdWVzdCBhZGQgKGFueSB2YWx1ZSwgb3B0aW9uYWwgYW55IGtleSk7Ci0gICAgSURCUmVxdWVz
dCBkZWxldGUgKGFueSBrZXkpOwotICAgIElEQlJlcXVlc3QgZ2V0IChhbnkga2V5KTsKLSAgICBJ
REJSZXF1ZXN0IGNsZWFyICgpOwotICAgIElEQlJlcXVlc3Qgb3BlbkN1cnNvciAob3B0aW9uYWwg
YW55IHJhbmdlLCBvcHRpb25hbCBJREJDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uID0gIm5leHQi
KTsKLSAgICBJREJJbmRleCAgIGNyZWF0ZUluZGV4IChET01TdHJpbmcgbmFtZSwgKERPTVN0cmlu
ZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSBrZXlQYXRoLCBvcHRpb25hbCBJREJJbmRleFBhcmFt
ZXRlcnMgb3B0aW9uYWxQYXJhbWV0ZXJzKTsKLSAgICBJREJJbmRleCAgIGluZGV4IChET01TdHJp
bmcgbmFtZSk7Ci0gICAgdm9pZCAgICAgICBkZWxldGVJbmRleCAoRE9NU3RyaW5nIGluZGV4TmFt
ZSk7Ci0gICAgSURCUmVxdWVzdCBjb3VudCAob3B0aW9uYWwgYW55IGtleSk7Ci19OwotCi1pbnRl
cmZhY2UgSURCSW5kZXggewotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICBuYW1lOwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZSBvYmplY3RT
dG9yZTsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYW55ICAgICAgICAgICAga2V5UGF0aDsK
LSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgbXVsdGlFbnRyeTsKLSAg
ICByZWFkb25seSAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgdW5pcXVlOwotICAgIElEQlJl
cXVlc3Qgb3BlbkN1cnNvciAob3B0aW9uYWwgYW55IHJhbmdlLCBvcHRpb25hbCBJREJDdXJzb3JE
aXJlY3Rpb24gZGlyZWN0aW9uID0gIm5leHQiKTsKLSAgICBJREJSZXF1ZXN0IG9wZW5LZXlDdXJz
b3IgKG9wdGlvbmFsIGFueSByYW5nZSwgb3B0aW9uYWwgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVj
dGlvbiA9ICJuZXh0Iik7Ci0gICAgSURCUmVxdWVzdCBnZXQgKGFueSBrZXkpOwotICAgIElEQlJl
cXVlc3QgZ2V0S2V5IChhbnkga2V5KTsKLSAgICBJREJSZXF1ZXN0IGNvdW50IChvcHRpb25hbCBh
bnkga2V5KTsKLX07Ci0KLWludGVyZmFjZSBJREJDdXJzb3IgewotICAgIHJlYWRvbmx5ICAgIGF0
dHJpYnV0ZSAoSURCT2JqZWN0U3RvcmUgb3IgSURCSW5kZXgpIHNvdXJjZTsKLSAgICByZWFkb25s
eSAgICBhdHRyaWJ1dGUgSURCQ3Vyc29yRGlyZWN0aW9uICAgICAgICAgICBkaXJlY3Rpb247Ci0g
ICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIGFueSAgICAgICAgICAgICAgICAgICAgICAgICAga2V5
OwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBhbnkgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW1hcnlLZXk7Ci0gICAgSURCUmVxdWVzdCB1cGRhdGUgKGFueSB2YWx1ZSk7Ci0gICAgdm9p
ZCAgICAgICBhZHZhbmNlIChbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKLSAg
ICB2b2lkICAgICAgIGNvbnRpbnVlIChvcHRpb25hbCBhbnkga2V5KTsKLSAgICBJREJSZXF1ZXN0
IGRlbGV0ZSAoKTsKLX07Ci0KLWludGVyZmFjZSBJREJDdXJzb3JXaXRoVmFsdWUgOiBJREJDdXJz
b3IgewotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBhbnkgdmFsdWU7Ci19OwotCi1pbnRlcmZh
Y2UgSURCVHJhbnNhY3Rpb24gOiBFdmVudFRhcmdldCB7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmli
dXRlIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlOwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBJ
REJEYXRhYmFzZSAgICAgICAgZGI7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIERPTUVycm9y
ICAgICAgICAgICBlcnJvcjsKLSAgICBJREJPYmplY3RTdG9yZSBvYmplY3RTdG9yZSAoRE9NU3Ry
aW5nIG5hbWUpOwotICAgIHZvaWQgICAgICAgICAgIGFib3J0ICgpOwotICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgb25hYm9ydDsKLSAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgIG9uY29tcGxldGU7Ci0gICAgICAgICAgICAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICBvbmVycm9yOwotfTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW50ZXJmYWNlcy53b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMud29ya2VyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTIyYjQ1NjZhNGM4Y2I2YTliMGEzMWMzZTI1
Y2M0YWVhYjgwZGRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW50ZXJmYWNlcy53b3JrZXIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0idXNlIHN0cmljdCI7Ci0KLWltcG9y
dFNjcmlwdHMoIi4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIpOwotaW1wb3J0U2Ny
aXB0cygiLi4vLi4vLi4vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyIsICIuLi8uLi8uLi9yZXNv
dXJjZXMvaWRsaGFybmVzcy5qcyIpOwotCi12YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotcmVxdWVzdC5vcGVuKCJHRVQiLCAiaW50ZXJmYWNlcy5pZGwiKTsKLXJlcXVlc3Quc2Vu
ZCgpOwotcmVxdWVzdC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgdmFyIGlkbEFycmF5ID0gbmV3
IElkbEFycmF5KCk7Ci0gIHZhciBpZGxzID0gcmVxdWVzdC5yZXNwb25zZVRleHQ7Ci0KLSAgaWRs
QXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBXb3JrZXJHbG9iYWxTY29wZSB7fTsi
KTsKLSAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBXb3JrZXJVdGlscyB7
fTsiKTsKLSAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoIldvcmtlckdsb2JhbFNjb3BlIGlt
cGxlbWVudHMgV29ya2VyVXRpbHM7Iik7Ci0gIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJp
bnRlcmZhY2UgRXZlbnQgeyB9OyIpOwotICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50
ZXJmYWNlIEV2ZW50VGFyZ2V0IHsgfTsiKTsKLQotICAvLyBGcm9tIEluZGV4ZWQgREI6Ci0gIGlk
bEFycmF5LmFkZF9pZGxzKCJXb3JrZXJVdGlscyBpbXBsZW1lbnRzIElEQkVudmlyb25tZW50OyIp
OwotICBpZGxBcnJheS5hZGRfaWRscyhpZGxzKTsKLQotICBpZGxBcnJheS5hZGRfb2JqZWN0cyh7
Ci0gICAgSURCQ3Vyc29yOiBbXSwKLSAgICBJREJDdXJzb3JXaXRoVmFsdWU6IFtdLAotICAgIElE
QkRhdGFiYXNlOiBbXSwKLSAgICBJREJFbnZpcm9ubWVudDogW10sCi0gICAgSURCRmFjdG9yeTog
WyJzZWxmLmluZGV4ZWREQiJdLAotICAgIElEQkluZGV4OiBbXSwKLSAgICBJREJLZXlSYW5nZTog
WyJJREJLZXlSYW5nZS5vbmx5KDApIl0sCi0gICAgSURCT2JqZWN0U3RvcmU6IFtdLAotICAgIElE
Qk9wZW5EQlJlcXVlc3Q6IFtdLAotICAgIElEQlJlcXVlc3Q6IFtdLAotICAgIElEQlRyYW5zYWN0
aW9uOiBbXSwKLSAgICBJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6IFsibmV3IElEQlZlcnNpb25DaGFu
Z2VFdmVudCgnZm9vJykiXSwKLSAgfSk7Ci0gIGlkbEFycmF5LnRlc3QoKTsKLSAgZG9uZSgpOwot
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X2lu
dmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlfaW52YWxpZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2
YzVlYmY1N2U2ZWQyOWVkZDczYzc4ODlhNDg0M2MyODc2NTA4NjIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlfaW52YWxpZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzNiAr
MCwwIEBACi0KLVBBU1MgSW52YWxpZCBrZXkgLSB0cnVlIAotUEFTUyBJbnZhbGlkIGtleSAtIGZh
bHNlIAotUEFTUyBJbnZhbGlkIGtleSAtIG51bGwgCi1QQVNTIEludmFsaWQga2V5IC0gTmFOIAot
UEFTUyBJbnZhbGlkIGtleSAtIHVuZGVmaW5lZCAKLVBBU1MgSW52YWxpZCBrZXkgLSB1bmRlZmlu
ZWQyIAotUEFTUyBJbnZhbGlkIGtleSAtIGZ1bmN0aW9uKCkge30gCi1QQVNTIEludmFsaWQga2V5
IC0ge30gCi1QQVNTIEludmFsaWQga2V5IC0geyBvYmo6IDEgfSAKLVBBU1MgSW52YWxpZCBrZXkg
LSBNYXRoIAotUEFTUyBJbnZhbGlkIGtleSAtIHdpbmRvdyAKLVBBU1MgSW52YWxpZCBrZXkgLSB7
bGVuZ3RoOjAsY29uc3RydWN0b3I6QXJyYXl9IAotUEFTUyBJbnZhbGlkIGtleSAtIEFycmF5IGNs
b25lw6LigqzihKJzIGluc3RhbmNlIAotUEFTUyBJbnZhbGlkIGtleSAtIEFycmF5IChvYmplY3Qp
IAotUEFTUyBJbnZhbGlkIGtleSAtIFN0cmluZyAob2JqZWN0KSAKLVBBU1MgSW52YWxpZCBrZXkg
LSBuZXcgU3RyaW5nKCkgCi1QQVNTIEludmFsaWQga2V5IC0gbmV3IE51bWJlcigpIAotUEFTUyBJ
bnZhbGlkIGtleSAtIG5ldyBCb29sZWFuKCkgCi1QQVNTIEludmFsaWQga2V5IC0gW3t9XSAKLVBB
U1MgSW52YWxpZCBrZXkgLSBbW10sIFtdLCBbXSwgW1sgRGF0ZSBdXV0gCi1QQVNTIEludmFsaWQg
a2V5IC0gW3VuZGVmaW5lZF0gCi1QQVNTIEludmFsaWQga2V5IC0gWywxXSAKLVBBU1MgSW52YWxp
ZCBrZXkgLSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikgCi1QQVNTIElu
dmFsaWQga2V5IC0gbmV3IERhdGUoTmFOKSAKLVBBU1MgSW52YWxpZCBrZXkgLSBuZXcgRGF0ZShJ
bmZpbml0eSkgCi1QQVNTIEludmFsaWQga2V5IC0gL2Zvby8gCi1QQVNTIEludmFsaWQga2V5IC0g
bmV3IFJlZ0V4cCgpIAotUEFTUyBJbnZhbGlkIGtleSAtIHNwYXJzZSBhcnJheSAKLVBBU1MgSW52
YWxpZCBrZXkgLSBzcGFyc2UgYXJyYXkgMiAKLVBBU1MgSW52YWxpZCBrZXkgLSBbWzFdLCBbM10s
IFs3XSwgW1sgc3BhcnNlIGFycmF5IF1dXSAKLVBBU1MgSW52YWxpZCBrZXkgLSBbMSwyLDMsLF0g
Ci1QQVNTIEludmFsaWQga2V5IC0gYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZiAKLVBBU1Mg
SW52YWxpZCBrZXkgLSBhcnJheSBpbmRpcmVjdGx5IGNvbnRhaW5zIHNlbGYgCi1QQVNTIEludmFs
aWQga2V5IC0gYXJyYXkgbWVtYmVyIGNvbnRhaW5zIHNlbGYgCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X2ludmFsaWQtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV9pbnZhbGlkLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmM1ZWJm
NTdlNmVkMjllZGQ3M2M3ODg5YTQ4NDNjMjg3NjUwODYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5X2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
NiArMCwwIEBACi0KLVBBU1MgSW52YWxpZCBrZXkgLSB0cnVlIAotUEFTUyBJbnZhbGlkIGtleSAt
IGZhbHNlIAotUEFTUyBJbnZhbGlkIGtleSAtIG51bGwgCi1QQVNTIEludmFsaWQga2V5IC0gTmFO
IAotUEFTUyBJbnZhbGlkIGtleSAtIHVuZGVmaW5lZCAKLVBBU1MgSW52YWxpZCBrZXkgLSB1bmRl
ZmluZWQyIAotUEFTUyBJbnZhbGlkIGtleSAtIGZ1bmN0aW9uKCkge30gCi1QQVNTIEludmFsaWQg
a2V5IC0ge30gCi1QQVNTIEludmFsaWQga2V5IC0geyBvYmo6IDEgfSAKLVBBU1MgSW52YWxpZCBr
ZXkgLSBNYXRoIAotUEFTUyBJbnZhbGlkIGtleSAtIHdpbmRvdyAKLVBBU1MgSW52YWxpZCBrZXkg
LSB7bGVuZ3RoOjAsY29uc3RydWN0b3I6QXJyYXl9IAotUEFTUyBJbnZhbGlkIGtleSAtIEFycmF5
IGNsb25lw6LigqzihKJzIGluc3RhbmNlIAotUEFTUyBJbnZhbGlkIGtleSAtIEFycmF5IChvYmpl
Y3QpIAotUEFTUyBJbnZhbGlkIGtleSAtIFN0cmluZyAob2JqZWN0KSAKLVBBU1MgSW52YWxpZCBr
ZXkgLSBuZXcgU3RyaW5nKCkgCi1QQVNTIEludmFsaWQga2V5IC0gbmV3IE51bWJlcigpIAotUEFT
UyBJbnZhbGlkIGtleSAtIG5ldyBCb29sZWFuKCkgCi1QQVNTIEludmFsaWQga2V5IC0gW3t9XSAK
LVBBU1MgSW52YWxpZCBrZXkgLSBbW10sIFtdLCBbXSwgW1sgRGF0ZSBdXV0gCi1QQVNTIEludmFs
aWQga2V5IC0gW3VuZGVmaW5lZF0gCi1QQVNTIEludmFsaWQga2V5IC0gWywxXSAKLVBBU1MgSW52
YWxpZCBrZXkgLSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikgCi1QQVNT
IEludmFsaWQga2V5IC0gbmV3IERhdGUoTmFOKSAKLVBBU1MgSW52YWxpZCBrZXkgLSBuZXcgRGF0
ZShJbmZpbml0eSkgCi1QQVNTIEludmFsaWQga2V5IC0gL2Zvby8gCi1QQVNTIEludmFsaWQga2V5
IC0gbmV3IFJlZ0V4cCgpIAotUEFTUyBJbnZhbGlkIGtleSAtIHNwYXJzZSBhcnJheSAKLVBBU1Mg
SW52YWxpZCBrZXkgLSBzcGFyc2UgYXJyYXkgMiAKLVBBU1MgSW52YWxpZCBrZXkgLSBbWzFdLCBb
M10sIFs3XSwgW1sgc3BhcnNlIGFycmF5IF1dXSAKLVBBU1MgSW52YWxpZCBrZXkgLSBbMSwyLDMs
LF0gCi1QQVNTIEludmFsaWQga2V5IC0gYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZiAKLVBB
U1MgSW52YWxpZCBrZXkgLSBhcnJheSBpbmRpcmVjdGx5IGNvbnRhaW5zIHNlbGYgCi1QQVNTIElu
dmFsaWQga2V5IC0gYXJyYXkgbWVtYmVyIGNvbnRhaW5zIHNlbGYgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X2ludmFsaWQtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxpZC1wcml2YXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3MmRhMzc1OWI1NGJkN2M1Zjg0
NTQxN2Y0NjllYTE1YTU2OTcxM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxp
ZC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjkgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Ci08bWV0YSBjaGFy
c2V0PXV0Zi04Ij4KLTx0aXRsZT5JbnZhbGlkIGtleTwvdGl0bGU+Ci08bGluayByZWw9aGVscCBo
cmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI2tleS1jb25zdHJ1Y3QiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSB2YWx1ZSBp
cyBzYWlkIHRvIGJlIGEgdmFsaWQga2V5IGlmIGl0IGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHR5
cGVzOiBBcnJheSBKYXZhU2NyaXB0IG9iamVjdHMgW0VDTUEtMjYyXSwgRE9NU3RyaW5nIFtXRUJJ
RExdLCBEYXRlIFtFQ01BLTI2Ml0gb3IgZmxvYXQgW1dFQklETF0uIEhvd2V2ZXIgQXJyYXlzIGFy
ZSBvbmx5IHZhbGlkIGtleXMgaWYgZXZlcnkgaXRlbSBpbiB0aGUgYXJyYXkgaXMgZGVmaW5lZCBh
bmQgaXMgYSB2YWxpZCBrZXkgKGkuZS4gc3BhcnNlIGFycmF5cyBjYW4gbm90IGJlIHZhbGlkIGtl
eXMpIGFuZCBpZiB0aGUgQXJyYXkgZG9lc24ndCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGNvbnRh
aW4gaXRzZWxmLiBBbnkgbm9uLW51bWVyaWMgcHJvcGVydGllcyBhcmUgaWdub3JlZCwgYW5kIHRo
dXMgZG9lcyBub3QgYWZmZWN0IHdoZXRoZXIgdGhlIEFycmF5IGlzIGEgdmFsaWQga2V5LiBBZGRp
dGlvbmFsbHksIGlmIHRoZSB2YWx1ZSBpcyBvZiB0eXBlIGZsb2F0LCBpdCBpcyBvbmx5IGEgdmFs
aWQga2V5IGlmIGl0IGlzIG5vdCBOYU4sIGFuZCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBEYXRl
IGl0IGlzIG9ubHkgYSB2YWxpZCBrZXkgaWYgaXRzIFtbUHJpbWl0aXZlVmFsdWVdXSBpbnRlcm5h
bCBwcm9wZXJ0eSwgYXMgZGVmaW5lZCBieSBbRUNNQS0yNjJdLCBpcyBub3QgTmFOLiBDb25mb3Jt
aW5nIHVzZXIgYWdlbnRzIG11c3Qgc3VwcG9ydCBhbGwgdmFsaWQga2V5cyBhcyBrZXlzLiI+Ci08
IS0tIG9yaWdpbmFsIGF1dGhvciAtLT4KLTxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPCEtLSBzb21lIGFk
ZGl0aW9ucyBieSBCYXB0aXN0ZSBGb250YWluZSAoYmF0aWZvbkB5YWhvby5mcikgLS0+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2
YXIgZGIgICAgICAgID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCksCi0gICAgICAgIC8v
IGNhY2hlIGZvciBPYmplY3RTdG9yZXMKLSAgICAgICAgb2JqU3RvcmUgID0gbnVsbCwKLSAgICAg
ICAgb2JqU3RvcmUyID0gbnVsbDsKLQotICAgIGZ1bmN0aW9uIGlzX2Nsb25lYWJsZShvKSB7Ci0g
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKG8sICcqJyk7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSBjYXRjaCAoZXgpIHsKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGludmFsaWRf
a2V5KGRlc2MsIGtleSkgewotICAgICAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUgKyAiIC0gIiArIGRlc2MpOwotCi0gICAgICAgIC8vIHNldCB0aGUgY3VycmVudCB0ZXN0LCBh
bmQgcnVuIGl0Ci0gICAgICAgIGRiLnNldFRlc3QodCkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgb2JqU3RvcmUgPSBvYmpTdG9yZSB8fCBlLnRhcmdldC5yZXN1
bHQuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCdEYXRhRXJyb3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQo
InZhbHVlIiwga2V5KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBpZiAoaXNfY2xv
bmVhYmxlKGtleSkpIHsKLSAgICAgICAgICAgICAgICBvYmpTdG9yZTIgPSBvYmpTdG9yZTIgfHwg
ZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZTIiLCB7IGtleVBhdGg6IFsi
eCIsICJrZXlwYXRoIl0gfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUVy
cm9yJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIG9ialN0b3JlMi5hZGQoeyB4
OiAidmFsdWUiLCBrZXlwYXRoOiBrZXkgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAg
ICB2YXIgZmFrZV9hcnJheSA9IHsKLSAgICAgICAgbGVuZ3RoICAgICAgOiAwLAotICAgICAgICBj
b25zdHJ1Y3RvciA6IEFycmF5Ci0gICAgfTsKLQotICAgIHZhciBBcnJheUNsb25lID0gZnVuY3Rp
b24oKXt9OwotICAgIEFycmF5Q2xvbmUucHJvdG90eXBlID0gQXJyYXk7Ci0gICAgdmFyIEFycmF5
Q2xvbmVfaW5zdGFuY2UgPSBuZXcgQXJyYXlDbG9uZSgpOwotCi0gICAgLy8gYm9vbGVhbnMKLSAg
ICBpbnZhbGlkX2tleSggJ3RydWUnICAsIHRydWUgKTsKLSAgICBpbnZhbGlkX2tleSggJ2ZhbHNl
JyAsIGZhbHNlICk7Ci0KLSAgICAvLyBudWxsL05hTi91bmRlZmluZWQKLSAgICBpbnZhbGlkX2tl
eSggJ251bGwnICAgICAgLCBudWxsICk7Ci0gICAgaW52YWxpZF9rZXkoICdOYU4nICAgICAgICwg
TmFOICk7Ci0gICAgaW52YWxpZF9rZXkoICd1bmRlZmluZWQnICwgdW5kZWZpbmVkICk7Ci0gICAg
aW52YWxpZF9rZXkoICd1bmRlZmluZWQyJyk7Ci0KLSAgICAvLyBmdW5jdGlvbnMKLSAgICBpbnZh
bGlkX2tleSggJ2Z1bmN0aW9uKCkge30nLCBmdW5jdGlvbigpe30gKTsKLQotICAgIC8vIG9iamVj
dHMKLSAgICBpbnZhbGlkX2tleSggJ3t9JyAgICAgICAgICAgICAgICAgICAgICAgICAgICwge30g
KTsKLSAgICBpbnZhbGlkX2tleSggJ3sgb2JqOiAxIH0nICAgICAgICAgICAgICAgICAgICwgeyBv
Ymo6IDEgfSk7Ci0gICAgaW52YWxpZF9rZXkoICdNYXRoJyAgICAgICAgICAgICAgICAgICAgICAg
ICAsIE1hdGggKTsKLSAgICBpbnZhbGlkX2tleSggJ3dpbmRvdycgICAgICAgICAgICAgICAgICAg
ICAgICwgd2luZG93ICk7Ci0gICAgaW52YWxpZF9rZXkoICd7bGVuZ3RoOjAsY29uc3RydWN0b3I6
QXJyYXl9JyAsIGZha2VfYXJyYXkgKTsKLSAgICBpbnZhbGlkX2tleSggJ0FycmF5IGNsb25l4oCZ
cyBpbnN0YW5jZScgICAgICAgLCBBcnJheUNsb25lX2luc3RhbmNlICk7Ci0gICAgaW52YWxpZF9r
ZXkoICdBcnJheSAob2JqZWN0KScgICAgICAgICAgICAgICAsIEFycmF5ICk7Ci0gICAgaW52YWxp
ZF9rZXkoICdTdHJpbmcgKG9iamVjdCknICAgICAgICAgICAgICAsIFN0cmluZyApOwotICAgIGlu
dmFsaWRfa2V5KCAnbmV3IFN0cmluZygpJyAgICAgICAgICAgICAgICAgLCBuZXcgU3RyaW5nKCkg
KTsKLSAgICBpbnZhbGlkX2tleSggJ25ldyBOdW1iZXIoKScgICAgICAgICAgICAgICAgICwgbmV3
IE51bWJlcigpICk7Ci0gICAgaW52YWxpZF9rZXkoICduZXcgQm9vbGVhbigpJyAgICAgICAgICAg
ICAgICAsIG5ldyBCb29sZWFuKCkgKTsKLQotICAgIC8vIGFycmF5cwotICAgIGludmFsaWRfa2V5
KCAnW3t9XScgICAgICAgICAgICAgICAgICAgICAsIFt7fV0gKTsKLSAgICBpbnZhbGlkX2tleSgg
J1tbXSwgW10sIFtdLCBbWyBEYXRlIF1dXScgLCBbIFtdLCBbXSwgW10sIFtbIERhdGUgXV0gXSAp
OwotICAgIGludmFsaWRfa2V5KCAnW3VuZGVmaW5lZF0nICAgICAgICAgICAgICAsIFt1bmRlZmlu
ZWRdICk7Ci0gICAgaW52YWxpZF9rZXkoICdbLDFdJyAgICAgICAgICAgICAgICAgICAgICwgWywx
XSApOwotCi0gICAgaW52YWxpZF9rZXkoICdkb2N1bWVudC5nZXRFbGVtZW50cycKLSAgICAgICAg
ICAgICAgICArJ0J5VGFnTmFtZSgic2NyaXB0IiknICAgICAgLCBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgic2NyaXB0IikgKTsKLQotICAgIC8vICBkYXRlcwotICAgIGludmFsaWRfa2V5
KCAnbmV3IERhdGUoTmFOKScgICAgICAsIG5ldyBEYXRlKE5hTikgKTsKLSAgICBpbnZhbGlkX2tl
eSggJ25ldyBEYXRlKEluZmluaXR5KScgLCBuZXcgRGF0ZShJbmZpbml0eSkgKTsKLQotICAgIC8v
IHJlZ2V4ZXMKLSAgICBpbnZhbGlkX2tleSggJy9mb28vJyAgICAgICAgLCAvZm9vLyApOwotICAg
IGludmFsaWRfa2V5KCAnbmV3IFJlZ0V4cCgpJyAsIG5ldyBSZWdFeHAoKSApOwotCi0gICAgdmFy
IHNwYXJzZSA9IFtdOwotICAgIHNwYXJzZVsxMF0gPSAiaGVpIjsKLSAgICBpbnZhbGlkX2tleSgn
c3BhcnNlIGFycmF5Jywgc3BhcnNlKTsKLQotICAgIHZhciBzcGFyc2UyID0gW107Ci0gICAgc3Bh
cnNlMlswXSAgPSAxOwotICAgIHNwYXJzZTJbIiJdID0gMjsKLSAgICBzcGFyc2UyWzJdICA9IDM7
Ci0gICAgaW52YWxpZF9rZXkoJ3NwYXJzZSBhcnJheSAyJywgc3BhcnNlMik7Ci0KLSAgICBpbnZh
bGlkX2tleSgnW1sxXSwgWzNdLCBbN10sIFtbIHNwYXJzZSBhcnJheSBdXV0nLCBbIFsxXSwgWzNd
LCBbN10sIFtbIHNwYXJzZTIgXV0gXSk7Ci0KLSAgICAvLyBzcGFyc2UzCi0gICAgaW52YWxpZF9r
ZXkoICdbMSwyLDMsLF0nLCBbMSwyLDMsLF0gKTsKLQotICAgIHZhciByZWN1cnNpdmUgPSBbXTsK
LSAgICByZWN1cnNpdmUucHVzaChyZWN1cnNpdmUpOwotICAgIGludmFsaWRfa2V5KCdhcnJheSBk
aXJlY3RseSBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlKTsKLQotICAgIHZhciByZWN1cnNpdmUy
ID0gW107Ci0gICAgcmVjdXJzaXZlMi5wdXNoKFtyZWN1cnNpdmUyXSk7Ci0gICAgaW52YWxpZF9r
ZXkoJ2FycmF5IGluZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZTIpOwotCi0gICAg
dmFyIHJlY3Vyc2l2ZTMgPSBbcmVjdXJzaXZlXTsKLSAgICBpbnZhbGlkX2tleSgnYXJyYXkgbWVt
YmVyIGNvbnRhaW5zIHNlbGYnLCByZWN1cnNpdmUzKTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9rZXlfaW52YWxpZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tl
eV9pbnZhbGlkLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjcyZGEzNzU5YjU0
YmQ3YzVmODQ1NDE3ZjQ2OWVhMTVhNTY5NzEzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tl
eV9pbnZhbGlkLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDEyOSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KLTxtZXRhIGNoYXJz
ZXQ9dXRmLTgiPgotPHRpdGxlPkludmFsaWQga2V5PC90aXRsZT4KLTxsaW5rIHJlbD1oZWxwIGhy
ZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwja2V5LWNvbnN0cnVjdCI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJBIHZhbHVlIGlz
IHNhaWQgdG8gYmUgYSB2YWxpZCBrZXkgaWYgaXQgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgdHlw
ZXM6IEFycmF5IEphdmFTY3JpcHQgb2JqZWN0cyBbRUNNQS0yNjJdLCBET01TdHJpbmcgW1dFQklE
TF0sIERhdGUgW0VDTUEtMjYyXSBvciBmbG9hdCBbV0VCSURMXS4gSG93ZXZlciBBcnJheXMgYXJl
IG9ubHkgdmFsaWQga2V5cyBpZiBldmVyeSBpdGVtIGluIHRoZSBhcnJheSBpcyBkZWZpbmVkIGFu
ZCBpcyBhIHZhbGlkIGtleSAoaS5lLiBzcGFyc2UgYXJyYXlzIGNhbiBub3QgYmUgdmFsaWQga2V5
cykgYW5kIGlmIHRoZSBBcnJheSBkb2Vzbid0IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgY29udGFp
biBpdHNlbGYuIEFueSBub24tbnVtZXJpYyBwcm9wZXJ0aWVzIGFyZSBpZ25vcmVkLCBhbmQgdGh1
cyBkb2VzIG5vdCBhZmZlY3Qgd2hldGhlciB0aGUgQXJyYXkgaXMgYSB2YWxpZCBrZXkuIEFkZGl0
aW9uYWxseSwgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUgZmxvYXQsIGl0IGlzIG9ubHkgYSB2YWxp
ZCBrZXkgaWYgaXQgaXMgbm90IE5hTiwgYW5kIGlmIHRoZSB2YWx1ZSBpcyBvZiB0eXBlIERhdGUg
aXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdHMgW1tQcmltaXRpdmVWYWx1ZV1dIGludGVybmFs
IHByb3BlcnR5LCBhcyBkZWZpbmVkIGJ5IFtFQ01BLTI2Ml0sIGlzIG5vdCBOYU4uIENvbmZvcm1p
bmcgdXNlciBhZ2VudHMgbXVzdCBzdXBwb3J0IGFsbCB2YWxpZCBrZXlzIGFzIGtleXMuIj4KLTwh
LS0gb3JpZ2luYWwgYXV0aG9yIC0tPgotPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08IS0tIHNvbWUgYWRk
aXRpb25zIGJ5IEJhcHRpc3RlIEZvbnRhaW5lIChiYXRpZm9uQHlhaG9vLmZyKSAtLT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZh
ciBkYiAgICAgICAgPSBjcmVhdGVkYl9mb3JfbXVsdGlwbGVfdGVzdHMoKSwKLSAgICAgICAgLy8g
Y2FjaGUgZm9yIE9iamVjdFN0b3JlcwotICAgICAgICBvYmpTdG9yZSAgPSBudWxsLAotICAgICAg
ICBvYmpTdG9yZTIgPSBudWxsOwotCi0gICAgZnVuY3Rpb24gaXNfY2xvbmVhYmxlKG8pIHsKLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UobywgJyonKTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9IGNhdGNoIChleCkgewotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaW52YWxpZF9r
ZXkoZGVzYywga2V5KSB7Ci0gICAgICAgIHZhciB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSArICIgLSAiICsgZGVzYyk7Ci0KLSAgICAgICAgLy8gc2V0IHRoZSBjdXJyZW50IHRlc3QsIGFu
ZCBydW4gaXQKLSAgICAgICAgZGIuc2V0VGVzdCh0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBvYmpTdG9yZSA9IG9ialN0b3JlIHx8IGUudGFyZ2V0LnJlc3Vs
dC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKLSAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
J0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCgi
dmFsdWUiLCBrZXkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGlmIChpc19jbG9u
ZWFibGUoa2V5KSkgewotICAgICAgICAgICAgICAgIG9ialN0b3JlMiA9IG9ialN0b3JlMiB8fCBl
LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlMiIsIHsga2V5UGF0aDogWyJ4
IiwgImtleXBhdGgiXSB9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRhRXJy
b3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgb2JqU3RvcmUyLmFkZCh7IHg6
ICJ2YWx1ZSIsIGtleXBhdGg6IGtleSB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9OwotICAgIH0KLQotICAg
IHZhciBmYWtlX2FycmF5ID0gewotICAgICAgICBsZW5ndGggICAgICA6IDAsCi0gICAgICAgIGNv
bnN0cnVjdG9yIDogQXJyYXkKLSAgICB9OwotCi0gICAgdmFyIEFycmF5Q2xvbmUgPSBmdW5jdGlv
bigpe307Ci0gICAgQXJyYXlDbG9uZS5wcm90b3R5cGUgPSBBcnJheTsKLSAgICB2YXIgQXJyYXlD
bG9uZV9pbnN0YW5jZSA9IG5ldyBBcnJheUNsb25lKCk7Ci0KLSAgICAvLyBib29sZWFucwotICAg
IGludmFsaWRfa2V5KCAndHJ1ZScgICwgdHJ1ZSApOwotICAgIGludmFsaWRfa2V5KCAnZmFsc2Un
ICwgZmFsc2UgKTsKLQotICAgIC8vIG51bGwvTmFOL3VuZGVmaW5lZAotICAgIGludmFsaWRfa2V5
KCAnbnVsbCcgICAgICAsIG51bGwgKTsKLSAgICBpbnZhbGlkX2tleSggJ05hTicgICAgICAgLCBO
YU4gKTsKLSAgICBpbnZhbGlkX2tleSggJ3VuZGVmaW5lZCcgLCB1bmRlZmluZWQgKTsKLSAgICBp
bnZhbGlkX2tleSggJ3VuZGVmaW5lZDInKTsKLQotICAgIC8vIGZ1bmN0aW9ucwotICAgIGludmFs
aWRfa2V5KCAnZnVuY3Rpb24oKSB7fScsIGZ1bmN0aW9uKCl7fSApOwotCi0gICAgLy8gb2JqZWN0
cwotICAgIGludmFsaWRfa2V5KCAne30nICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB7fSAp
OwotICAgIGludmFsaWRfa2V5KCAneyBvYmo6IDEgfScgICAgICAgICAgICAgICAgICAgLCB7IG9i
ajogMSB9KTsKLSAgICBpbnZhbGlkX2tleSggJ01hdGgnICAgICAgICAgICAgICAgICAgICAgICAg
ICwgTWF0aCApOwotICAgIGludmFsaWRfa2V5KCAnd2luZG93JyAgICAgICAgICAgICAgICAgICAg
ICAgLCB3aW5kb3cgKTsKLSAgICBpbnZhbGlkX2tleSggJ3tsZW5ndGg6MCxjb25zdHJ1Y3RvcjpB
cnJheX0nICwgZmFrZV9hcnJheSApOwotICAgIGludmFsaWRfa2V5KCAnQXJyYXkgY2xvbmXigJlz
IGluc3RhbmNlJyAgICAgICAsIEFycmF5Q2xvbmVfaW5zdGFuY2UgKTsKLSAgICBpbnZhbGlkX2tl
eSggJ0FycmF5IChvYmplY3QpJyAgICAgICAgICAgICAgICwgQXJyYXkgKTsKLSAgICBpbnZhbGlk
X2tleSggJ1N0cmluZyAob2JqZWN0KScgICAgICAgICAgICAgICwgU3RyaW5nICk7Ci0gICAgaW52
YWxpZF9rZXkoICduZXcgU3RyaW5nKCknICAgICAgICAgICAgICAgICAsIG5ldyBTdHJpbmcoKSAp
OwotICAgIGludmFsaWRfa2V5KCAnbmV3IE51bWJlcigpJyAgICAgICAgICAgICAgICAgLCBuZXcg
TnVtYmVyKCkgKTsKLSAgICBpbnZhbGlkX2tleSggJ25ldyBCb29sZWFuKCknICAgICAgICAgICAg
ICAgICwgbmV3IEJvb2xlYW4oKSApOwotCi0gICAgLy8gYXJyYXlzCi0gICAgaW52YWxpZF9rZXko
ICdbe31dJyAgICAgICAgICAgICAgICAgICAgICwgW3t9XSApOwotICAgIGludmFsaWRfa2V5KCAn
W1tdLCBbXSwgW10sIFtbIERhdGUgXV1dJyAsIFsgW10sIFtdLCBbXSwgW1sgRGF0ZSBdXSBdICk7
Ci0gICAgaW52YWxpZF9rZXkoICdbdW5kZWZpbmVkXScgICAgICAgICAgICAgICwgW3VuZGVmaW5l
ZF0gKTsKLSAgICBpbnZhbGlkX2tleSggJ1ssMV0nICAgICAgICAgICAgICAgICAgICAgLCBbLDFd
ICk7Ci0KLSAgICBpbnZhbGlkX2tleSggJ2RvY3VtZW50LmdldEVsZW1lbnRzJwotICAgICAgICAg
ICAgICAgICsnQnlUYWdOYW1lKCJzY3JpcHQiKScgICAgICAsIGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJzY3JpcHQiKSApOwotCi0gICAgLy8gIGRhdGVzCi0gICAgaW52YWxpZF9rZXko
ICduZXcgRGF0ZShOYU4pJyAgICAgICwgbmV3IERhdGUoTmFOKSApOwotICAgIGludmFsaWRfa2V5
KCAnbmV3IERhdGUoSW5maW5pdHkpJyAsIG5ldyBEYXRlKEluZmluaXR5KSApOwotCi0gICAgLy8g
cmVnZXhlcwotICAgIGludmFsaWRfa2V5KCAnL2Zvby8nICAgICAgICAsIC9mb28vICk7Ci0gICAg
aW52YWxpZF9rZXkoICduZXcgUmVnRXhwKCknICwgbmV3IFJlZ0V4cCgpICk7Ci0KLSAgICB2YXIg
c3BhcnNlID0gW107Ci0gICAgc3BhcnNlWzEwXSA9ICJoZWkiOwotICAgIGludmFsaWRfa2V5KCdz
cGFyc2UgYXJyYXknLCBzcGFyc2UpOwotCi0gICAgdmFyIHNwYXJzZTIgPSBbXTsKLSAgICBzcGFy
c2UyWzBdICA9IDE7Ci0gICAgc3BhcnNlMlsiIl0gPSAyOwotICAgIHNwYXJzZTJbMl0gID0gMzsK
LSAgICBpbnZhbGlkX2tleSgnc3BhcnNlIGFycmF5IDInLCBzcGFyc2UyKTsKLQotICAgIGludmFs
aWRfa2V5KCdbWzFdLCBbM10sIFs3XSwgW1sgc3BhcnNlIGFycmF5IF1dXScsIFsgWzFdLCBbM10s
IFs3XSwgW1sgc3BhcnNlMiBdXSBdKTsKLQotICAgIC8vIHNwYXJzZTMKLSAgICBpbnZhbGlkX2tl
eSggJ1sxLDIsMywsXScsIFsxLDIsMywsXSApOwotCi0gICAgdmFyIHJlY3Vyc2l2ZSA9IFtdOwot
ICAgIHJlY3Vyc2l2ZS5wdXNoKHJlY3Vyc2l2ZSk7Ci0gICAgaW52YWxpZF9rZXkoJ2FycmF5IGRp
cmVjdGx5IGNvbnRhaW5zIHNlbGYnLCByZWN1cnNpdmUpOwotCi0gICAgdmFyIHJlY3Vyc2l2ZTIg
PSBbXTsKLSAgICByZWN1cnNpdmUyLnB1c2goW3JlY3Vyc2l2ZTJdKTsKLSAgICBpbnZhbGlkX2tl
eSgnYXJyYXkgaW5kaXJlY3RseSBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlMik7Ci0KLSAgICB2
YXIgcmVjdXJzaXZlMyA9IFtyZWN1cnNpdmVdOwotICAgIGludmFsaWRfa2V5KCdhcnJheSBtZW1i
ZXIgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZTMpOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD1s
b2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2tleV92YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2tleV92YWxpZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNkY2IwYWZkZDFlOWRiOTBhNjRjMjg3NjNhM2ZiY2M5NTM4ZjU1MDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9rZXlfdmFsaWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAg
KzAsMCBAQAotCi1QQVNTIFZhbGlkIGtleSAtIG5ldyBEYXRlKCkgCi1QQVNTIFZhbGlkIGtleSAt
IG5ldyBEYXRlKDApIAotUEFTUyBWYWxpZCBrZXkgLSBbXSAKLVBBU1MgVmFsaWQga2V5IC0gbmV3
IEFycmF5KCkgCi1QQVNTIFZhbGlkIGtleSAtIFsidW5kZWZpbmVkIl0gCi1QQVNTIFZhbGlkIGtl
eSAtIEluZmluaXR5IAotUEFTUyBWYWxpZCBrZXkgLSAtSW5maW5pdHkgCi1QQVNTIFZhbGlkIGtl
eSAtIDAgCi1QQVNTIFZhbGlkIGtleSAtIDEuNSAKLVBBU1MgVmFsaWQga2V5IC0gM2UzOCAKLVBB
U1MgVmFsaWQga2V5IC0gM2UtMzggCi1QQVNTIFZhbGlkIGtleSAtICJmb28iIAotUEFTUyBWYWxp
ZCBrZXkgLSAiXG4iIAotUEFTUyBWYWxpZCBrZXkgLSAiIiAKLVBBU1MgVmFsaWQga2V5IC0gIlwi
IiAKLVBBU1MgVmFsaWQga2V5IC0gIlx1MTIzNCIgCi1QQVNTIFZhbGlkIGtleSAtICJcdTAwMDAi
IAotUEFTUyBWYWxpZCBrZXkgLSAiTmFOIiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfdmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV92YWxpZC1wcml2YXRlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RjYjBhZmRkMWU5ZGI5MGE2NGMy
ODc2M2EzZmJjYzk1MzhmNTUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV92YWxpZC1w
cml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLQotUEFT
UyBWYWxpZCBrZXkgLSBuZXcgRGF0ZSgpIAotUEFTUyBWYWxpZCBrZXkgLSBuZXcgRGF0ZSgwKSAK
LVBBU1MgVmFsaWQga2V5IC0gW10gCi1QQVNTIFZhbGlkIGtleSAtIG5ldyBBcnJheSgpIAotUEFT
UyBWYWxpZCBrZXkgLSBbInVuZGVmaW5lZCJdIAotUEFTUyBWYWxpZCBrZXkgLSBJbmZpbml0eSAK
LVBBU1MgVmFsaWQga2V5IC0gLUluZmluaXR5IAotUEFTUyBWYWxpZCBrZXkgLSAwIAotUEFTUyBW
YWxpZCBrZXkgLSAxLjUgCi1QQVNTIFZhbGlkIGtleSAtIDNlMzggCi1QQVNTIFZhbGlkIGtleSAt
IDNlLTM4IAotUEFTUyBWYWxpZCBrZXkgLSAiZm9vIiAKLVBBU1MgVmFsaWQga2V5IC0gIlxuIiAK
LVBBU1MgVmFsaWQga2V5IC0gIiIgCi1QQVNTIFZhbGlkIGtleSAtICJcIiIgCi1QQVNTIFZhbGlk
IGtleSAtICJcdTEyMzQiIAotUEFTUyBWYWxpZCBrZXkgLSAiXHUwMDAwIiAKLVBBU1MgVmFsaWQg
a2V5IC0gIk5hTiIgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5X3ZhbGlkLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIva2V5X3ZhbGlkLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGE1YzFkNGE2YTU2YzIyMzhkYTU3MDFiNjk0MWE1YmQ0MTkyODgxOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2tleV92YWxpZC1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRX
RiBQYXJpcyAtLT4KLTxtZXRhIGNoYXJzZXQ9dXRmLTgiPgotPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyI+Ci08dGl0bGU+VmFsaWQga2V5PC90aXRsZT4KLTxsaW5rIHJlbD1oZWxw
IGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2
aWV3Lmh0bWwja2V5LWNvbnN0cnVjdCI+Ci08bGluayByZWw9YXNzZXJ0IHRpdGxlPSJBIHZhbHVl
IGlzIHNhaWQgdG8gYmUgYSB2YWxpZCBrZXkgaWYgaXQgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmcg
dHlwZXM6IEFycmF5IEphdmFTY3JpcHQgb2JqZWN0cyBbRUNNQS0yNjJdLCBET01TdHJpbmcgW1dF
QklETF0sIERhdGUgW0VDTUEtMjYyXSBvciBmbG9hdCBbV0VCSURMXS4gSG93ZXZlciBBcnJheXMg
YXJlIG9ubHkgdmFsaWQga2V5cyBpZiBldmVyeSBpdGVtIGluIHRoZSBhcnJheSBpcyBkZWZpbmVk
IGFuZCBpcyBhIHZhbGlkIGtleSAoaS5lLiBzcGFyc2UgYXJyYXlzIGNhbiBub3QgYmUgdmFsaWQg
a2V5cykgYW5kIGlmIHRoZSBBcnJheSBkb2Vzbid0IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgY29u
dGFpbiBpdHNlbGYuIEFueSBub24tbnVtZXJpYyBwcm9wZXJ0aWVzIGFyZSBpZ25vcmVkLCBhbmQg
dGh1cyBkb2VzIG5vdCBhZmZlY3Qgd2hldGhlciB0aGUgQXJyYXkgaXMgYSB2YWxpZCBrZXkuIEFk
ZGl0aW9uYWxseSwgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUgZmxvYXQsIGl0IGlzIG9ubHkgYSB2
YWxpZCBrZXkgaWYgaXQgaXMgbm90IE5hTiwgYW5kIGlmIHRoZSB2YWx1ZSBpcyBvZiB0eXBlIERh
dGUgaXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdHMgW1tQcmltaXRpdmVWYWx1ZV1dIGludGVy
bmFsIHByb3BlcnR5LCBhcyBkZWZpbmVkIGJ5IFtFQ01BLTI2Ml0sIGlzIG5vdCBOYU4uIENvbmZv
cm1pbmcgdXNlciBhZ2VudHMgbXVzdCBzdXBwb3J0IGFsbCB2YWxpZCBrZXlzIGFzIGtleXMuIj4K
LTxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOmJhdGlmb25AeWFob28uZnIiIHRpdGxlPSJC
YXB0aXN0ZSBGb250YWluZSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLSAgICBmdW5jdGlvbiB2YWxpZF9rZXkoZGVzYywga2V5KSB7Ci0g
ICAgICAgIHZhciBkYjsKLSAgICAgICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtICIgKyBkZXNjKTsKLSAgICAgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLQot
ICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUuYWRk
KCd2YWx1ZScsIGtleSkgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KTsKLQotICAgICAgICAgICAgc3Rv
cmUyID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlMiIsIHsga2V5UGF0aDogWyJ4IiwgImtl
eXBhdGgiXSB9KTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKHN0b3JlMi5hZGQoeyB4OiAndics
IGtleXBhdGg6IGtleSB9KSBpbnN0YW5jZW9mIElEQlJlcXVlc3QpOwotICAgICAgICB9OwotICAg
ICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KGtleSkKLSAgICAg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgJ3ZhbHVlJykKLSAgICAgICAg
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUyIikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUyIikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5nZXQoWyd2Jywga2V5XSkKLSAgICAgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQucmVzdWx0LngsICd2Jyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9r
ZXlfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXlwYXRoLCBrZXkpOwotICAgICAgICAgICAgICAg
ICAgICB0LmRvbmUoKQotICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICB9KQotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgLy8gRGF0ZQotICAgIHZhbGlkX2tleSggJ25ldyBEYXRlKCknICAg
ICwgbmV3IERhdGUoKSApOwotICAgIHZhbGlkX2tleSggJ25ldyBEYXRlKDApJyAgICwgbmV3IERh
dGUoMCkgKTsKLQotICAgIC8vIEFycmF5Ci0gICAgdmFsaWRfa2V5KCAnW10nICAgICAgICAgICAg
LCBbXSApOwotICAgIHZhbGlkX2tleSggJ25ldyBBcnJheSgpJyAgICwgbmV3IEFycmF5KCkgKTsK
LQotICAgIHZhbGlkX2tleSggJ1sidW5kZWZpbmVkIl0nICwgWyd1bmRlZmluZWQnXSApOwotCi0g
ICAgLy8gRmxvYXQKLSAgICB2YWxpZF9rZXkoICdJbmZpbml0eScgICAgICAsIEluZmluaXR5ICk7
Ci0gICAgdmFsaWRfa2V5KCAnLUluZmluaXR5JyAgICAgLCAtSW5maW5pdHkgKTsKLSAgICB2YWxp
ZF9rZXkoICcwJyAgICAgICAgICAgICAsIDAgKTsKLSAgICB2YWxpZF9rZXkoICcxLjUnICAgICAg
ICAgICAsIDEuNSApOwotICAgIHZhbGlkX2tleSggJzNlMzgnICAgICAgICAgICwgM2UzOCApOwot
ICAgIHZhbGlkX2tleSggJzNlLTM4JyAgICAgICAgICwgM2UzOCApOwotCi0gICAgLy8gU3RyaW5n
Ci0gICAgdmFsaWRfa2V5KCAnImZvbyInICAgICAgICAgLCAiZm9vIiApOwotICAgIHZhbGlkX2tl
eSggJyJcXG4iJyAgICAgICAgICwgIlxuIiApOwotICAgIHZhbGlkX2tleSggJyIiJyAgICAgICAg
ICAgICwgIiIgKTsKLSAgICB2YWxpZF9rZXkoICciXFwiIicgICAgICAgICAsICJcIiIgKTsKLSAg
ICB2YWxpZF9rZXkoICciXFx1MTIzNCInICAgICAsICJcdTEyMzQiICk7Ci0gICAgdmFsaWRfa2V5
KCAnIlxcdTAwMDAiJyAgICAgLCAiXHUwMDAwIiApOwotICAgIHZhbGlkX2tleSggJyJOYU4iJyAg
ICAgICAgICwgIk5hTiIgKTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfdmFsaWQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNWMxZDRhNmE1NmMyMjM4ZGE1NzAxYjY5NDFh
NWJkNDE5Mjg4MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfdmFsaWQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBTdWJtaXR0
ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgotPG1ldGEgY2hhcnNldD11dGYtOCI+Ci08bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLTx0aXRsZT5WYWxpZCBrZXk8L3RpdGxlPgot
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KLTxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IkEgdmFsdWUgaXMgc2FpZCB0byBiZSBhIHZhbGlkIGtleSBpZiBpdCBpcyBvbmUgb2Yg
dGhlIGZvbGxvd2luZyB0eXBlczogQXJyYXkgSmF2YVNjcmlwdCBvYmplY3RzIFtFQ01BLTI2Ml0s
IERPTVN0cmluZyBbV0VCSURMXSwgRGF0ZSBbRUNNQS0yNjJdIG9yIGZsb2F0IFtXRUJJRExdLiBI
b3dldmVyIEFycmF5cyBhcmUgb25seSB2YWxpZCBrZXlzIGlmIGV2ZXJ5IGl0ZW0gaW4gdGhlIGFy
cmF5IGlzIGRlZmluZWQgYW5kIGlzIGEgdmFsaWQga2V5IChpLmUuIHNwYXJzZSBhcnJheXMgY2Fu
IG5vdCBiZSB2YWxpZCBrZXlzKSBhbmQgaWYgdGhlIEFycmF5IGRvZXNuJ3QgZGlyZWN0bHkgb3Ig
aW5kaXJlY3RseSBjb250YWluIGl0c2VsZi4gQW55IG5vbi1udW1lcmljIHByb3BlcnRpZXMgYXJl
IGlnbm9yZWQsIGFuZCB0aHVzIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVyIHRoZSBBcnJheSBpcyBh
IHZhbGlkIGtleS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBmbG9hdCwg
aXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdCBpcyBub3QgTmFOLCBhbmQgaWYgdGhlIHZhbHVl
IGlzIG9mIHR5cGUgRGF0ZSBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlmIGl0cyBbW1ByaW1pdGl2
ZVZhbHVlXV0gaW50ZXJuYWwgcHJvcGVydHksIGFzIGRlZmluZWQgYnkgW0VDTUEtMjYyXSwgaXMg
bm90IE5hTi4gQ29uZm9ybWluZyB1c2VyIGFnZW50cyBtdXN0IHN1cHBvcnQgYWxsIHZhbGlkIGtl
eXMgYXMga2V5cy4iPgotPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86YmF0aWZvbkB5YWhv
by5mciIgdGl0bGU9IkJhcHRpc3RlIEZvbnRhaW5lIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9uIHZhbGlkX2tleShk
ZXNjLCBrZXkpIHsKLSAgICAgICAgdmFyIGRiOwotICAgICAgICB2YXIgdCA9IGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOwotICAgICAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOwotCi0gICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgICAgICBhc3NlcnRf
dHJ1ZShzdG9yZS5hZGQoJ3ZhbHVlJywga2V5KSBpbnN0YW5jZW9mIElEQlJlcXVlc3QpOwotCi0g
ICAgICAgICAgICBzdG9yZTIgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUyIiwgeyBrZXlQ
YXRoOiBbIngiLCAia2V5cGF0aCJdIH0pOwotICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUy
LmFkZCh7IHg6ICd2Jywga2V5cGF0aDoga2V5IH0pIGluc3RhbmNlb2YgSURCUmVxdWVzdCk7Ci0g
ICAgICAgIH07Ci0gICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgICAgIC5n
ZXQoa2V5KQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAndmFs
dWUnKQotICAgICAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZTIiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZTIiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLmdldChbJ3YnLCBrZXldKQotICAgICAgICAgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQueCwgJ3YnKTsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleXBhdGgsIGtleSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpCi0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAg
ICAgIH0pCi0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBEYXRlCi0gICAgdmFsaWRfa2V5KCAn
bmV3IERhdGUoKScgICAgLCBuZXcgRGF0ZSgpICk7Ci0gICAgdmFsaWRfa2V5KCAnbmV3IERhdGUo
MCknICAgLCBuZXcgRGF0ZSgwKSApOwotCi0gICAgLy8gQXJyYXkKLSAgICB2YWxpZF9rZXkoICdb
XScgICAgICAgICAgICAsIFtdICk7Ci0gICAgdmFsaWRfa2V5KCAnbmV3IEFycmF5KCknICAgLCBu
ZXcgQXJyYXkoKSApOwotCi0gICAgdmFsaWRfa2V5KCAnWyJ1bmRlZmluZWQiXScgLCBbJ3VuZGVm
aW5lZCddICk7Ci0KLSAgICAvLyBGbG9hdAotICAgIHZhbGlkX2tleSggJ0luZmluaXR5JyAgICAg
ICwgSW5maW5pdHkgKTsKLSAgICB2YWxpZF9rZXkoICctSW5maW5pdHknICAgICAsIC1JbmZpbml0
eSApOwotICAgIHZhbGlkX2tleSggJzAnICAgICAgICAgICAgICwgMCApOwotICAgIHZhbGlkX2tl
eSggJzEuNScgICAgICAgICAgICwgMS41ICk7Ci0gICAgdmFsaWRfa2V5KCAnM2UzOCcgICAgICAg
ICAgLCAzZTM4ICk7Ci0gICAgdmFsaWRfa2V5KCAnM2UtMzgnICAgICAgICAgLCAzZTM4ICk7Ci0K
LSAgICAvLyBTdHJpbmcKLSAgICB2YWxpZF9rZXkoICciZm9vIicgICAgICAgICAsICJmb28iICk7
Ci0gICAgdmFsaWRfa2V5KCAnIlxcbiInICAgICAgICAgLCAiXG4iICk7Ci0gICAgdmFsaWRfa2V5
KCAnIiInICAgICAgICAgICAgLCAiIiApOwotICAgIHZhbGlkX2tleSggJyJcXCIiJyAgICAgICAg
ICwgIlwiIiApOwotICAgIHZhbGlkX2tleSggJyJcXHUxMjM0IicgICAgICwgIlx1MTIzNCIgKTsK
LSAgICB2YWxpZF9rZXkoICciXFx1MDAwMCInICAgICAsICJcdTAwMDAiICk7Ci0gICAgdmFsaWRf
a2V5KCAnIk5hTiInICAgICAgICAgLCAiTmFOIiApOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD1s
b2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgzNmYxYzY3MGNjN2E3MDFi
NzIxNTQzYzA1YzJjYjdlZDMyNWRjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVy
YXRvci1jb25zdHJhaW50ZXJyb3ItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi0KLVBBU1MgS2V5Z2VuZXJhdG9yIENvbnN0cmFpbnRFcnJvciB3aGVuIHVzaW5nIHNh
bWUgaWQgYXMgYWxyZWFkeSBnZW5lcmF0ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2Vu
ZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjgzNmYxYzY3MGNjN2E3MDFiNzIxNTQzYzA1YzJjYjdlZDMyNWRj
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3It
cHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBLZXlnZW5lcmF0b3IgQ29uc3RyYWludEVycm9yIHdoZW4gdXNpbmcgc2FtZSBpZCBhcyBhbHJl
YWR5IGdlbmVyYXRlZCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJv
ci1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MjIxMTU0OTMz
Y2RjMDJhZjcxNTYzNDcxMmM2OTdkNWM2N2FiYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDczICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PHRpdGxlPktleWdlbmVyYXRvciBDb25zdHJhaW50RXJyb3Igd2hlbiB1c2luZyBzYW1lIGlkIGFz
IGFscmVhZHkgZ2VuZXJhdGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWls
dG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAg
dmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAx
MDAwMH0pLAotICAgICAgb2JqZWN0cyA9IFsxLCBudWxsLCB7aWQ6IDJ9LCBudWxsLCAyLjAwMDAx
LCA1LCBudWxsLCB7aWQ6IDZ9IF0sCi0gICAgICBleHBlY3RlZCA9IFsxLCAyLCAyLjAwMDAxLCAz
LCA1LCA2XSwKLSAgICAgIGVycm9ycyA9IDA7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRvSW5jcmVtZW50OiB0cnVl
IH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykK
LSAgICAgICAgewotICAgICAgICAgICAgaWYgKG9iamVjdHNbaV0gPT09IG51bGwpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHt9KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvYmplY3RzW2ldID09PSAib2JqZWN0IikKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5hZGQob2JqZWN0
c1tpXSkKLSAgICAgICAgICAgICAgICBycS55ZWggPSBvYmplY3RzW2ldOwotICAgICAgICAgICAg
ICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGVycm9ycysrOwotCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOwotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgImVycm9yIik7Ci0KLSAgICAgICAgICAgICAgICAgICAg
ZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVs
dCgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgiR290IHJxLnN1Y2Nlc3Mgd2hlbiBhZGRpbmcgZHVwbGljYXRlIGlkICIgKyBvYmpl
Y3RzW2ldKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBpZDogb2JqZWN0c1tpXSB9KTsK
LSAgICAgICAgfQotICAgIH07Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCi0gICAgICAgICAgcnEgPSBkYi50cmFu
c2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikK
LSAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBpZiAoY3Vyc29yKSB7Ci0gICAgICAgICAgICAg
ICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7Ci0gICAgICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVycm9ycywgMiwgImV4cGVjdGVkIENvbnN0
cmFpbnRFcnJvcidzIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1
YWxfa2V5cywgZXhwZWN0ZWQsICJrZXlnZW5lcmF0b3IgYXJyYXkiKTsKLSAgICAgICAgICAgICAg
ICB0LmRvbmUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfTsKLQotPC9zY3Jp
cHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3IuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVy
cm9yLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgyMjExNTQ5MzNjZGMwMmFm
NzE1NjM0NzEyYzY5N2Q1YzY3YWJjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVy
YXRvci1jb25zdHJhaW50ZXJyb3IuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+S2V5Z2VuZXJh
dG9yIENvbnN0cmFpbnRFcnJvciB3aGVuIHVzaW5nIHNhbWUgaWQgYXMgYWxyZWFkeSBnZW5lcmF0
ZWQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0
ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICBv
YmplY3RzID0gWzEsIG51bGwsIHtpZDogMn0sIG51bGwsIDIuMDAwMDEsIDUsIG51bGwsIHtpZDog
Nn0gXSwKLSAgICAgIGV4cGVjdGVkID0gWzEsIDIsIDIuMDAwMDEsIDMsIDUsIDZdLAotICAgICAg
ZXJyb3JzID0gMDsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7IGtleVBhdGg6ICJpZCIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Ci0KLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAob2JqZWN0c1tpXSA9PT0gbnVsbCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBvYmpTdG9yZS5hZGQoe30pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxz
ZSBpZiAodHlwZW9mIG9iamVjdHNbaV0gPT09ICJvYmplY3QiKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmFkZChvYmplY3RzW2ldKQotICAgICAgICAg
ICAgICAgIHJxLnllaCA9IG9iamVjdHNbaV07Ci0gICAgICAgICAgICAgICAgcnEub25lcnJvciA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzKys7
Ci0KLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1l
LCAiQ29uc3RyYWludEVycm9yIik7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50eXBlLCAiZXJyb3IiKTsKLQotICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlv
bigpOwotICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJHb3QgcnEu
c3VjY2VzcyB3aGVuIGFkZGluZyBkdXBsaWNhdGUgaWQgIiArIG9iamVjdHNbaV0pOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIG9ialN0b3JlLmFkZCh7IGlkOiBvYmplY3RzW2ldIH0pOwotICAgICAgICB9Ci0gICAg
fTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIg
YWN0dWFsX2tleXMgPSBbXSwKLSAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
Ci0gICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0K
LSAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5w
dXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZXJyb3JzLCAyLCAiZXhwZWN0ZWQgQ29uc3RyYWludEVycm9yJ3MiKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3Rl
ZCwgImtleWdlbmVyYXRvciBhcnJheSIpOwotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9OwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5Z2VuZXJhdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIva2V5Z2VuZXJhdG9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTBhNmVmY2UxNTQ0NGViZjQ1NjIzY2MxZDg1M2M5ZWQ5ZjIzNDhjMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBLZXlnZW5lcmF0b3IgLSBzdGFydHMgYXQgb25lLCBh
bmQgaW5jcmVtZW50cyBieSBvbmUgCi1QQVNTIEtleWdlbmVyYXRvciAtIGluY3JlbWVudHMgYnkg
b25lIGZyb20gbGFzdCBzZXQga2V5IAotUEFTUyBLZXlnZW5lcmF0b3IgLSBkb24ndCBpbmNyZW1l
bnQgd2hlbiBuZXcga2V5IGlzIG5vdCBiaWdnZXIgdGhhbiBjdXJyZW50IAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1vdmVyZmxv
dy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdl
bmVyYXRvci1vdmVyZmxvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI1OTc4MzVmNzBmODE3N2JmMzJmNWM2NjE2ZjQ2ODUwNmU0YTc1MzguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgS2V5Z2VuZXJhdG9yIG92ZXJmbG93IAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRv
ci1vdmVyZmxvdy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLW92ZXJmbG93LXByaXZhdGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTk3ODM1ZjcwZjgxNzdiZjMyZjVjNjYxNmY0
Njg1MDZlNGE3NTM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLW92ZXJm
bG93LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgS2V5Z2VuZXJhdG9yIG92ZXJmbG93IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1vdmVyZmxvdy1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1vdmVyZmxv
dy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkZmQ1NzdlMDM4
MjJjMDM1ZDhkYzZiZDA5NjU2MGExNzA4ZGUyM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlnZW5lcmF0b3Itb3ZlcmZsb3ctcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzAg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
S2V5Z2VuZXJhdG9yIG92ZXJmbG93PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08bGlu
ayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI2tleS1nZW5lcmF0b3ItY29uY2VwdCI+Ci08bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJXaGVuIHRoZSBjdXJyZW50IG51bWJlciBvZiBhIGtleSBnZW5lcmF0b3IgcmVh
Y2hlcyBhYm92ZSB0aGUgdmFsdWUgMl41MyAoOTAwNzE5OTI1NDc0MDk5MikgYW55IGF0dGVtcHRz
IHRvIHVzZSB0aGUga2V5IGdlbmVyYXRvciB0byBnZW5lcmF0ZSBhIG5ldyBrZXkgd2lsbCByZXN1
bHQgaW4gYW4gZXJyb3IuIEl0J3Mgc3RpbGwgcG9zc2libGUgdG8gaW5zZXJ0IHJlY29yZHMgaW50
byB0aGUgb2JqZWN0IHN0b3JlIGJ5IHNwZWNpZnlpbmcgYW4gZXhwbGljaXQga2V5LCBob3dldmVy
IHRoZSBvbmx5IHdheSB0byB1c2UgYSBrZXkgZ2VuZXJhdG9yIGFnYWluIGZvciB0aGUgb2JqZWN0
IHN0b3JlIGlzIHRvIGRlbGV0ZSB0aGUgb2JqZWN0IHN0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25l
LiI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi0gICAgdmFyIGRiLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pLAotICAgICAgb3ZlcmZsb3dfZXJyb3JfZmlyZWQgPSBmYWxzZSwK
LSAgICAgIG9iamVjdHMgPSAgWzkwMDcxOTkyNTQ3NDA5OTEsIG51bGwsICJlcnJvciIsIDIsICJl
cnJvciIgXSwKLSAgICAgIGV4cGVjdGVkX2tleXMgPSBbMiwgOTAwNzE5OTI1NDc0MDk5MSwgOTAw
NzE5OTI1NDc0MDk5Ml07Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwotCi0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKLSAgICAgICAgewot
ICAgICAgICAgICAgaWYgKG9iamVjdHNbaV0gPT09IG51bGwpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHt9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGVsc2UgaWYgKG9iamVjdHNbaV0gPT09ICJlcnJvciIpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHt9KTsKLSAgICAgICAgICAgICAgICBycS5v
bnN1Y2Nlc3MgPSBmYWlsKHQsICdXaGVuICJjdXJyZW50IG51bWJlciIgb3ZlcmZsb3dzLCBlcnJv
ciBldmVudCBpcyBleHBlY3RlZCcpOwotICAgICAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93X2Vycm9y
X2ZpcmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIiwgImVycm9yIG5hbWUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGlkOiBvYmplY3Rz
W2ldIH0pOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKLSAgICAgICAgICBycSA9
IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
c3RvcmUiKQotICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgIHJxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAg
ICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKLSAgICAg
ICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKG92ZXJmbG93X2Vycm9yX2ZpcmVk
LCAiZXJyb3IgZmlyZWQgb24gJ2N1cnJlbnQgbnVtYmVyJyBvdmVyZmxvdyIpOwotICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMsICJr
ZXlnZW5lcmF0b3IgYXJyYXkiKTsKLQotICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9KTsKLSAgICB9OwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
a2V5Z2VuZXJhdG9yLW92ZXJmbG93Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5Z2VuZXJhdG9yLW92ZXJmbG93Lmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWRmZDU3N2UwMzgyMmMwMzVkOGRjNmJkMDk2NTYwYTE3MDhkZTIzYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1vdmVyZmxvdy5odG0KKysrIC9kZXYvbnVsbApA
QCAtMSw3MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTx0aXRsZT5LZXlnZW5lcmF0b3Igb3ZlcmZsb3c8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LWdlbmVyYXRvci1jb25jZXB0Ij4KLTxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9IldoZW4gdGhlIGN1cnJlbnQgbnVtYmVyIG9mIGEga2V5IGdlbmVy
YXRvciByZWFjaGVzIGFib3ZlIHRoZSB2YWx1ZSAyXjUzICg5MDA3MTk5MjU0NzQwOTkyKSBhbnkg
YXR0ZW1wdHMgdG8gdXNlIHRoZSBrZXkgZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEgbmV3IGtleSB3
aWxsIHJlc3VsdCBpbiBhbiBlcnJvci4gSXQncyBzdGlsbCBwb3NzaWJsZSB0byBpbnNlcnQgcmVj
b3JkcyBpbnRvIHRoZSBvYmplY3Qgc3RvcmUgYnkgc3BlY2lmeWluZyBhbiBleHBsaWNpdCBrZXks
IGhvd2V2ZXIgdGhlIG9ubHkgd2F5IHRvIHVzZSBhIGtleSBnZW5lcmF0b3IgYWdhaW4gZm9yIHRo
ZSBvYmplY3Qgc3RvcmUgaXMgdG8gZGVsZXRlIHRoZSBvYmplY3Qgc3RvcmUgYW5kIGNyZWF0ZSBh
IG5ldyBvbmUuIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZGIsCi0gICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCi0gICAgICBvdmVyZmxvd19lcnJvcl9maXJlZCA9
IGZhbHNlLAotICAgICAgb2JqZWN0cyA9ICBbOTAwNzE5OTI1NDc0MDk5MSwgbnVsbCwgImVycm9y
IiwgMiwgImVycm9yIiBdLAotICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsyLCA5MDA3MTk5MjU0NzQw
OTkxLCA5MDA3MTk5MjU0NzQwOTkyXTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJpZCIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7
Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAob2JqZWN0c1tpXSA9PT0gbnVsbCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoe30pOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZWxzZSBpZiAob2JqZWN0c1tpXSA9PT0gImVycm9yIikKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5hZGQoe30pOwotICAgICAgICAgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IGZhaWwodCwgJ1doZW4gImN1cnJlbnQgbnVtYmVyIiBvdmVyZmxv
d3MsIGVycm9yIGV2ZW50IGlzIGV4cGVjdGVkJyk7Ci0gICAgICAgICAgICAgICAgcnEub25lcnJv
ciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgb3ZlcmZs
b3dfZXJyb3JfZmlyZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3IiLCAiZXJyb3IgbmFtZSIpOwot
ICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgaWQ6
IG9iamVjdHNbaV0gfSk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAotICAgICAg
ICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgaWYgKGN1cnNvcikg
ewotICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkp
OwotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUob3ZlcmZsb3dfZXJy
b3JfZmlyZWQsICJlcnJvciBmaXJlZCBvbiAnY3VycmVudCBudW1iZXInIG92ZXJmbG93Iik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRf
a2V5cywgImtleWdlbmVyYXRvciBhcnJheSIpOwotCi0gICAgICAgICAgICAgICAgdC5kb25lKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLTwvc2NyaXB0PgotCi08ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlnZW5lcmF0b3ItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1wcml2YXRlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBhNmVmY2UxNTQ0NGViZjQ1NjIzY2MxZDg1
M2M5ZWQ5ZjIzNDhjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1wcml2
YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1QQVNTIEtl
eWdlbmVyYXRvciAtIHN0YXJ0cyBhdCBvbmUsIGFuZCBpbmNyZW1lbnRzIGJ5IG9uZSAKLVBBU1Mg
S2V5Z2VuZXJhdG9yIC0gaW5jcmVtZW50cyBieSBvbmUgZnJvbSBsYXN0IHNldCBrZXkgCi1QQVNT
IEtleWdlbmVyYXRvciAtIGRvbid0IGluY3JlbWVudCB3aGVuIG5ldyBrZXkgaXMgbm90IGJpZ2dl
ciB0aGFuIGN1cnJlbnQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTVhODZiYTQ4YTZlOTllNDQ2MDBmNmVlOTNmMWJlYzRjZDMxNjliMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1wcml2YXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5LZXlnZW5lcmF0b3I8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3Ii
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LWdlbmVyYXRvci1jb25jZXB0Ij4KLTxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBjdXJyZW50IG51bWJlciBvZiBhIGtleSBnZW5lcmF0b3Ig
aXMgYWx3YXlzIHNldCB0byAxIHdoZW4gdGhlIG9iamVjdCBzdG9yZSBmb3IgdGhhdCBrZXkgZ2Vu
ZXJhdG9yIGlzIGZpcnN0IGNyZWF0ZWQuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IldoZW4g
YSBrZXkgZ2VuZXJhdG9yIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBuZXcga2V5IGZvciBhIG9iamVj
dCBzdG9yZSwgdGhlIGtleSBnZW5lcmF0b3IncyBjdXJyZW50IG51bWJlciBpcyB1c2VkIGFzIHRo
ZSBuZXcga2V5IHZhbHVlIGFuZCB0aGVuIHRoZSBrZXkgZ2VuZXJhdG9yJ3MgY3VycmVudCBudW1i
ZXIgaXMgaW5jcmVhc2VkIGJ5IDEuIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IldoZW4gYSBy
ZWNvcmQgaXMgc3RvcmVkIGluIGEgb2JqZWN0IHN0b3JlIHdoaWNoIHVzZXMgYSBrZXkgZ2VuZXJh
dG9yLCBhbmQgYW4gZXhwbGljaXQga2V5IGlzIGRlZmluZWQsIGlmIHRoZSBrZXkncyB2YWx1ZSBp
cyBhIGZsb2F0IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUga2V5IGdlbmVyYXRvcidzIGN1
cnJlbnQgbnVtYmVyLCB0aGVuIHRoZSBrZXkgZ2VuZXJhdG9yJ3MgY3VycmVudCBudW1iZXIgaXMg
c2V0IHRvIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIG51bWJlciBsYXJnZXIgdGhhbiB0aGUgZXhwbGlj
aXQga2V5LiBPbmx5IGV4cGxpY2l0IGtleXMgd2hpY2ggYXJlIGZsb2F0IHZhbHVlcyBhZmZlY3Qg
dGhlIGN1cnJlbnQgbnVtYmVyIG9mIHRoZSBrZXkgZ2VuZXJhdG9yLiI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9u
IGtleWdlbmVyYXRvcihvYmplY3RzLCBleHBlY3RlZF9rZXlzLCBkZXNjLCBmdW5jKSB7Ci0gICAg
ICAgIHZhciBkYiwKLSAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSAiICsgZGVzYyk7Ci0KLSAgICAgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICAg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImlkIiwgYXV0b0luY3JlbWVudDogdHJ1
ZSB9KTsKLQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChvYmplY3RzW2ldID09PSBu
dWxsKQotICAgICAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoe30pOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgaWQ6IG9iamVjdHNb
aV0gfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwK
LSAgICAgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgICAgICAub3Bl
bkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
LQotICAgICAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgYWN0
dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7Ci0gICAgICAgICAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoYWN0dWFsX2tleXMs
IGV4cGVjdGVkX2tleXMsICJrZXlnZW5lcmF0b3IgYXJyYXkiKTsKLSAgICAgICAgICAgICAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH07Ci0gICAgfQotCi0KLSAgICBrZXlnZW5lcmF0b3IoW251bGwsIG51bGwsIG51bGwsIG51bGxd
LCAgWzEsIDIsIDMsIDRdLAotICAgICAgICAic3RhcnRzIGF0IG9uZSwgYW5kIGluY3JlbWVudHMg
Ynkgb25lIik7Ci0KLSAgICBrZXlnZW5lcmF0b3IoWzIsIG51bGwsIDUsIG51bGwsIDYuNjYsIDdd
LCAgWzIsIDMsIDUsIDYsIDYuNjYsIDddLAotICAgICAgICAiaW5jcmVtZW50cyBieSBvbmUgZnJv
bSBsYXN0IHNldCBrZXkiKTsKLQotICAgIGtleWdlbmVyYXRvcihbLTEwLCBudWxsLCAiNiIsIDYu
MywgWzEwXSwgLTIsIDQsIG51bGxdLCAgIFstMTAsIC0yLCAxLCA0LCA2LjMsIDcsICI2IiwgWzEw
XV0sCi0gICAgICAgICJkb24ndCBpbmNyZW1lbnQgd2hlbiBuZXcga2V5IGlzIG5vdCBiaWdnZXIg
dGhhbiBjdXJyZW50Iik7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Iu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3IuaHRt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWE4NmJhNDhhNmU5OWU0NDYwMGY2ZWU5
M2YxYmVjNGNkMzE2OWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLmh0
bQorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPktleWdlbmVyYXRvcjwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktZ2VuZXJhdG9yLWNvbmNlcHQi
PgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGN1cnJlbnQgbnVtYmVyIG9mIGEga2V5IGdl
bmVyYXRvciBpcyBhbHdheXMgc2V0IHRvIDEgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIGZvciB0aGF0
IGtleSBnZW5lcmF0b3IgaXMgZmlyc3QgY3JlYXRlZC4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iV2hlbiBhIGtleSBnZW5lcmF0b3IgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIG5ldyBrZXkgZm9y
IGEgb2JqZWN0IHN0b3JlLCB0aGUga2V5IGdlbmVyYXRvcidzIGN1cnJlbnQgbnVtYmVyIGlzIHVz
ZWQgYXMgdGhlIG5ldyBrZXkgdmFsdWUgYW5kIHRoZW4gdGhlIGtleSBnZW5lcmF0b3IncyBjdXJy
ZW50IG51bWJlciBpcyBpbmNyZWFzZWQgYnkgMS4iPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0i
V2hlbiBhIHJlY29yZCBpcyBzdG9yZWQgaW4gYSBvYmplY3Qgc3RvcmUgd2hpY2ggdXNlcyBhIGtl
eSBnZW5lcmF0b3IsIGFuZCBhbiBleHBsaWNpdCBrZXkgaXMgZGVmaW5lZCwgaWYgdGhlIGtleSdz
IHZhbHVlIGlzIGEgZmxvYXQgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBrZXkgZ2VuZXJh
dG9yJ3MgY3VycmVudCBudW1iZXIsIHRoZW4gdGhlIGtleSBnZW5lcmF0b3IncyBjdXJyZW50IG51
bWJlciBpcyBzZXQgdG8gdGhlIHNtYWxsZXN0IGludGVnZXIgbnVtYmVyIGxhcmdlciB0aGFuIHRo
ZSBleHBsaWNpdCBrZXkuIE9ubHkgZXhwbGljaXQga2V5cyB3aGljaCBhcmUgZmxvYXQgdmFsdWVz
IGFmZmVjdCB0aGUgY3VycmVudCBudW1iZXIgb2YgdGhlIGtleSBnZW5lcmF0b3IuIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAg
ZnVuY3Rpb24ga2V5Z2VuZXJhdG9yKG9iamVjdHMsIGV4cGVjdGVkX2tleXMsIGRlc2MsIGZ1bmMp
IHsKLSAgICAgICAgdmFyIGRiLAotICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtICIgKyBkZXNjKTsKLQotICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OwotICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRvSW5jcmVt
ZW50OiB0cnVlIH0pOwotCi0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMu
bGVuZ3RoOyBpKyspCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdHNb
aV0gPT09IG51bGwpCi0gICAgICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7fSk7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBpZDog
b2JqZWN0c1tpXSB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBhY3R1YWxfa2V5
cyA9IFtdLAotICAgICAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAg
ICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OwotCi0gICAgICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAgICAgICAg
ICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKLSAgICAgICAgICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhhY3R1
YWxfa2V5cywgZXhwZWN0ZWRfa2V5cywgImtleWdlbmVyYXRvciBhcnJheSIpOwotICAgICAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfTsKLSAgICB9Ci0KLQotICAgIGtleWdlbmVyYXRvcihbbnVsbCwgbnVsbCwgbnVs
bCwgbnVsbF0sICBbMSwgMiwgMywgNF0sCi0gICAgICAgICJzdGFydHMgYXQgb25lLCBhbmQgaW5j
cmVtZW50cyBieSBvbmUiKTsKLQotICAgIGtleWdlbmVyYXRvcihbMiwgbnVsbCwgNSwgbnVsbCwg
Ni42NiwgN10sICBbMiwgMywgNSwgNiwgNi42NiwgN10sCi0gICAgICAgICJpbmNyZW1lbnRzIGJ5
IG9uZSBmcm9tIGxhc3Qgc2V0IGtleSIpOwotCi0gICAga2V5Z2VuZXJhdG9yKFstMTAsIG51bGws
ICI2IiwgNi4zLCBbMTBdLCAtMiwgNCwgbnVsbF0sICAgWy0xMCwgLTIsIDEsIDQsIDYuMywgNywg
IjYiLCBbMTBdXSwKLSAgICAgICAgImRvbid0IGluY3JlbWVudCB3aGVuIG5ldyBrZXkgaXMgbm90
IGJpZ2dlciB0aGFuIGN1cnJlbnQiKTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleW9y
ZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5
b3JkZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTZlYTdi
Zjg2MWEzNjcwMGJiMWJmM2NkY2IyNjUyMzVmMGUxMzkzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5b3JkZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAot
Ci1QQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBTdHJpbmcgPCBBcnJheSAKLVBBU1MgSURC
S2V5LmNtcCBzb3J0ZWQgLSBTdHJpbmcgPCBBcnJheSAKLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sg
c29ydCAtIGZsb2F0IDwgU3RyaW5nIAotUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIGZsb2F0IDwg
U3RyaW5nIAotUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gZmxvYXQgPCBEYXRlIAotUEFT
UyBJREJLZXkuY21wIHNvcnRlZCAtIGZsb2F0IDwgRGF0ZSAKLVBBU1MgRGF0YWJhc2UgcmVhZGJh
Y2sgc29ydCAtIGZsb2F0IDwgRGF0ZSA8IFN0cmluZyA8IEFycmF5IAotUEFTUyBJREJLZXkuY21w
IHNvcnRlZCAtIGZsb2F0IDwgRGF0ZSA8IFN0cmluZyA8IEFycmF5IAotUEFTUyBEYXRhYmFzZSBy
ZWFkYmFjayBzb3J0IC0gRGF0ZSgxIHNlYyBhZ28pIDwgRGF0ZShub3cpIDwgRGF0ZSgxIG1pbnV0
ZSBpbiBmdXR1cmUpIAotUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIERhdGUoMSBzZWMgYWdvKSA8
IERhdGUobm93KSA8IERhdGUoMSBtaW51dGUgaW4gZnV0dXJlKSAKLVBBU1MgRGF0YWJhc2UgcmVh
ZGJhY2sgc29ydCAtIC0xLjEgPCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwgMiAKLVBBU1MgSURC
S2V5LmNtcCBzb3J0ZWQgLSAtMS4xIDwgMSA8IDEuMDEzMzcgPCAxLjAxMzM3MyA8IDIgCi1QQVNT
IERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSAtSW5maW5pdHkgPCAtMC4wMSA8IDAgPCBJbmZpbml0
eSAKLVBBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSAtSW5maW5pdHkgPCAtMC4wMSA8IDAgPCBJbmZp
bml0eSAKLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtICIiIDwgImEiIDwgImFiIiA8ICJi
IiA8ICJiYSIgCi1QQVNTIElEQktleS5jbXAgc29ydGVkIC0gIiIgPCAiYSIgPCAiYWIiIDwgImIi
IDwgImJhIiAKLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEFycmF5cyAKLVBBU1MgSURC
S2V5LmNtcCBzb3J0ZWQgLSBBcnJheXMgCi1QQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBB
cnJheS5sZW5ndGg6IDEwLDAwMCA8IEFycmF5Lmxlbmd0aDogMTAsMDAxIAotUEFTUyBJREJLZXku
Y21wIHNvcnRlZCAtIEFycmF5Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXkubGVuZ3RoOiAxMCwwMDEg
Ci1QQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBJbmZpbml0eSBpbnNpZGUgYXJyYXlzIAot
UEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIEluZmluaXR5IGluc2lkZSBhcnJheXMgCi1QQVNTIERh
dGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBUZXN0IGRpZmZlcmVudCBzdHVmZiBhdCBvbmNlIAotUEFT
UyBJREJLZXkuY21wIHNvcnRlZCAtIFRlc3QgZGlmZmVyZW50IHN0dWZmIGF0IG9uY2UgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5b3JkZXItcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tl
eW9yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5YTZlYTdiZjg2MWEzNjcwMGJiMWJmM2NkY2IyNjUyMzVmMGUxMzkzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIva2V5b3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyNiArMCwwIEBACi0KLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIFN0cmluZyA8
IEFycmF5IAotUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIFN0cmluZyA8IEFycmF5IAotUEFTUyBE
YXRhYmFzZSByZWFkYmFjayBzb3J0IC0gZmxvYXQgPCBTdHJpbmcgCi1QQVNTIElEQktleS5jbXAg
c29ydGVkIC0gZmxvYXQgPCBTdHJpbmcgCi1QQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBm
bG9hdCA8IERhdGUgCi1QQVNTIElEQktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBEYXRlIAotUEFT
UyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkg
Ci1QQVNTIElEQktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkg
Ci1QQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBEYXRlKDEgc2VjIGFnbykgPCBEYXRlKG5v
dykgPCBEYXRlKDEgbWludXRlIGluIGZ1dHVyZSkgCi1QQVNTIElEQktleS5jbXAgc29ydGVkIC0g
RGF0ZSgxIHNlYyBhZ28pIDwgRGF0ZShub3cpIDwgRGF0ZSgxIG1pbnV0ZSBpbiBmdXR1cmUpIAot
UEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gLTEuMSA8IDEgPCAxLjAxMzM3IDwgMS4wMTMz
NzMgPCAyIAotUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIC0xLjEgPCAxIDwgMS4wMTMzNyA8IDEu
MDEzMzczIDwgMiAKLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIC1JbmZpbml0eSA8IC0w
LjAxIDwgMCA8IEluZmluaXR5IAotUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIC1JbmZpbml0eSA8
IC0wLjAxIDwgMCA8IEluZmluaXR5IAotUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gIiIg
PCAiYSIgPCAiYWIiIDwgImIiIDwgImJhIiAKLVBBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSAiIiA8
ICJhIiA8ICJhYiIgPCAiYiIgPCAiYmEiIAotUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0g
QXJyYXlzIAotUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIEFycmF5cyAKLVBBU1MgRGF0YWJhc2Ug
cmVhZGJhY2sgc29ydCAtIEFycmF5Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXkubGVuZ3RoOiAxMCww
MDEgCi1QQVNTIElEQktleS5jbXAgc29ydGVkIC0gQXJyYXkubGVuZ3RoOiAxMCwwMDAgPCBBcnJh
eS5sZW5ndGg6IDEwLDAwMSAKLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEluZmluaXR5
IGluc2lkZSBhcnJheXMgCi1QQVNTIElEQktleS5jbXAgc29ydGVkIC0gSW5maW5pdHkgaW5zaWRl
IGFycmF5cyAKLVBBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIFRlc3QgZGlmZmVyZW50IHN0
dWZmIGF0IG9uY2UgCi1QQVNTIElEQktleS5jbXAgc29ydGVkIC0gVGVzdCBkaWZmZXJlbnQgc3R1
ZmYgYXQgb25jZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9rZXlvcmRlci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2tleW9yZGVyLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzdmNGY5MDE4ODZlNGZjNzY2NzU1ZjQ1NjgwMmQ1MTAyYzM4NDEzMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2tleW9yZGVyLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3
NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQ
YXJpcyAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5LZXkgc29ydCBvcmRlcjwv
dGl0bGU+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1jb25zdHJ1Y3QiPgotPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iRm9yIHB1cnBvc2VzIG9mIGNvbXBhcmlzb24sIGFsbCBBcnJheXMgYXJl
IGdyZWF0ZXIgdGhhbiBhbGwgRE9NU3RyaW5nLCBEYXRlIGFuZCBmbG9hdCB2YWx1ZXM7IGFsbCBE
T01TdHJpbmcgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYWxsIERhdGUgYW5kIGZsb2F0IHZhbHVl
czsgYW5kIGFsbCBEYXRlIHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGFsbCBmbG9hdCB2YWx1ZXMu
IFZhbHVlcyBvZiB0eXBlIGZsb2F0IGFyZSBjb21wYXJlZCB0byBvdGhlciBmbG9hdCB2YWx1ZXMg
bnVtZXJpY2FsbHkuIFZhbHVlcyBvZiB0eXBlIERhdGUgYXJlIGNvbXBhcmVkIHRvIG90aGVyIERh
dGUgdmFsdWVzIGNocm9ub2xvZ2ljYWxseS4gVmFsdWVzIG9mIHR5cGUgRE9NU3RyaW5nIGFyZSBj
b21wYXJlZCB0byBvdGhlciB2YWx1ZXMgb2YgdHlwZSBET01TdHJpbmcgYnkgdXNpbmcgdGhlIGFs
Z29yaXRobSBkZWZpbmVkIGJ5IHN0ZXAgNCBvZiBzZWN0aW9uIDExLjguNSwgVGhlIEFic3RyYWN0
IFJlbGF0aW9uYWwgQ29tcGFyaXNvbiBBbGdvcml0aG0sIG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1
YWdlIFNwZWNpZmljYXRpb24gW0VDTUEtMjYyXS4gVmFsdWVzIG9mIHR5cGUgQXJyYXkgYXJlIGNv
bXBhcmVkIHRvIG90aGVyIHZhbHVlcyBvZiB0eXBlIEFycmF5IGFzIGZvbGxvd3M6Ci0KLTEuIExl
dCBBIGJlIHRoZSBmaXJzdCBBcnJheSB2YWx1ZSBhbmQgQiBiZSB0aGUgc2Vjb25kIEFycmF5IHZh
bHVlLgotMi4gTGV0IGxlbmd0aCBiZSB0aGUgbGVzc2VyIG9mIEEncyBsZW5ndGggYW5kIEIncyBs
ZW5ndGguCi0zLiBMZXQgaSBiZSAwLgotNC4gSWYgdGhlIGl0aCB2YWx1ZSBvZiBBIGlzIGxlc3Mg
dGhhbiB0aGUgaXRoIHZhbHVlIG9mIEIsIHRoZW4gQSBpcyBsZXNzIHRoYW4gQi4gU2tpcCB0aGUg
cmVtYWluaW5nIHN0ZXBzLgotNS4gSWYgdGhlIGl0aCB2YWx1ZSBvZiBBIGlzIGdyZWF0ZXIgdGhh
biB0aGUgaXRoIHZhbHVlIG9mIEIsIHRoZW4gQSBpcyBncmVhdGVyIHRoYW4gQi4gU2tpcCB0aGUg
cmVtYWluaW5nIHN0ZXBzLgotNi4gSW5jcmVhc2UgaSBieSAxLgotNy4gSWYgaSBpcyBub3QgZXF1
YWwgdG8gbGVuZ3RoLCBnbyBiYWNrIHRvIHN0ZXAgNC4gT3RoZXJ3aXNlIGNvbnRpbnVlIHRvIG5l
eHQgc3RlcC4KLTguIElmIEEncyBsZW5ndGggaXMgbGVzcyB0aGFuIEIncyBsZW5ndGgsIHRoZW4g
QSBpcyBsZXNzIHRoYW4gQi4gSWYgQSdzIGxlbmd0aCBpcyBncmVhdGVyIHRoYW4gQidzIGxlbmd0
aCwgdGhlbiBBIGlzIGdyZWF0ZXIgdGhhbiBCLiBPdGhlcndpc2UgQSBhbmQgQiBhcmUgZXF1YWwu
Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGdsb2JhbF9kYiA9IGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cygpOwot
Ci0gICAgZnVuY3Rpb24ga2V5c29ydChkZXNjLCB1bnNvcnRlZCwgZXhwZWN0ZWQpIHsKLSAgICAg
ICAgdmFyIGRiLAotICAgICAgICAgICAgdCA9IGFzeW5jX3Rlc3QoIkRhdGFiYXNlIHJlYWRiYWNr
IHNvcnQgLSAiICsgZGVzYywgeyB0aW1lb3V0OiAxMDAwMCB9KSwKLSAgICAgICAgICAgIHN0b3Jl
X25hbWUgPSAnc3RvcmUtJyArIERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpOwotCi0gICAgICAg
IC8vIFRoZSBkYXRhYmFzZSB0ZXN0Ci0gICAgICAgIHZhciBvcGVuX3JxID0gZ2xvYmFsX2RiLnNl
dFRlc3QodCk7Ci0gICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShzdG9yZV9uYW1lKTsKLQotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB1bnNvcnRlZC5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAg
ICBvYmpTdG9yZS5hZGQoInZhbHVlIiwgdW5zb3J0ZWRbaV0pOwotICAgICAgICB9OwotCi0gICAg
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGFj
dHVhbF9rZXlzID0gW10sCi0gICAgICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oc3RvcmVf
bmFtZSkKLSAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZShzdG9yZV9uYW1lKQotICAg
ICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMo
YWN0dWFsX2tleXMsIGV4cGVjdGVkLCAia2V5b3JkZXIgYXJyYXkiKTsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxfa2V5cy5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCwg
ImFycmF5IGxlbmd0aCIpOwotCi0gICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9OwotCi0gICAgICAgIC8vIFRo
ZSBJREJLZXkuY21wIHRlc3QKLSAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICB2YXIgc29ydGVkID0gdW5zb3J0ZWQuc2xpY2UoMCkuc29ydChmdW5jdGlvbihhLCBiKSB7IHJl
dHVybiBpbmRleGVkREIuY21wKGEsIGIpfSk7Ci0gICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFs
cyhzb3J0ZWQsIGV4cGVjdGVkLCAic29ydGVkIGFycmF5Iik7Ci0KLSAgICAgICAgfSwgIklEQktl
eS5jbXAgc29ydGVkIC0gIiArIGRlc2MpOwotICAgIH0KLQotICAgIHZhciBub3cgPSBuZXcgRGF0
ZSgpLAotICAgICAgICBvbmVfc2VjX2FnbyA9IG5ldyBEYXRlKG5vdyAtIDEwMDApLAotICAgICAg
ICBvbmVfbWluX2Z1dHVyZSA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyAoMTAwMCo2MCkpOwot
Ci0gICAga2V5c29ydCgnU3RyaW5nIDwgQXJyYXknLAotICAgICAgICBbIFswXSwgInlvIiwgIiIs
IFtdIF0sCi0gICAgICAgIFsgIiIsICJ5byIsIFtdLCBbMF0gXSk7Ci0KLSAgICBrZXlzb3J0KCdm
bG9hdCA8IFN0cmluZycsCi0gICAgICAgIFsgSW5maW5pdHksICJ5byIsIDAsICIiLCAxMDAgXSwK
LSAgICAgICAgWyAwLCAxMDAsIEluZmluaXR5LCAiIiwgInlvIiBdKTsKLQotICAgIGtleXNvcnQo
J2Zsb2F0IDwgRGF0ZScsCi0gICAgICAgIFsgbm93LCAwLCA5OTk5OTk5OTk5OTk5LCAtMC4yMiBd
LAotICAgICAgICBbIC0wLjIyLCAwLCA5OTk5OTk5OTk5OTk5LCBub3cgXSk7Ci0KLSAgICBrZXlz
b3J0KCdmbG9hdCA8IERhdGUgPCBTdHJpbmcgPCBBcnJheScsCi0gICAgICAgIFsgW10sICIiLCBu
b3csIFswXSwgIi0xIiwgMCwgOTk5OTk5OTk5OTk5OSwgXSwKLSAgICAgICAgWyAwLCA5OTk5OTk5
OTk5OTk5LCBub3csICIiLCAiLTEiLCBbXSwgWzBdIF0pOwotCi0KLSAgICBrZXlzb3J0KCdEYXRl
KDEgc2VjIGFnbykgPCBEYXRlKG5vdykgPCBEYXRlKDEgbWludXRlIGluIGZ1dHVyZSknLAotICAg
ICAgICBbIG5vdywgb25lX3NlY19hZ28sIG9uZV9taW5fZnV0dXJlIF0sCi0gICAgICAgIFsgb25l
X3NlY19hZ28sIG5vdywgb25lX21pbl9mdXR1cmUgXSk7Ci0KLSAgICBrZXlzb3J0KCctMS4xIDwg
MSA8IDEuMDEzMzcgPCAxLjAxMzM3MyA8IDInLAotICAgICAgICBbIDEuMDEzMzczLCAyLCAxLjAx
MzM3LCAtMS4xLCAxIF0sCi0gICAgICAgIFsgLTEuMSwgMSwgMS4wMTMzNywgMS4wMTMzNzMsIDIg
XSk7Ci0KLSAgICBrZXlzb3J0KCctSW5maW5pdHkgPCAtMC4wMSA8IDAgPCBJbmZpbml0eScsCi0g
ICAgICAgIFsgMCwgLTAuMDEsIC1JbmZpbml0eSwgSW5maW5pdHkgXSwKLSAgICAgICAgWyAtSW5m
aW5pdHksIC0wLjAxLCAwLCBJbmZpbml0eSBdKTsKLQotICAgIGtleXNvcnQoJyIiIDwgImEiIDwg
ImFiIiA8ICJiIiA8ICJiYSInLAotICAgICAgICBbICJhIiwgImJhIiwgIiIsICJiIiwgImFiIiBd
LAotICAgICAgICBbICIiLCAiYSIsICJhYiIsICJiIiwgImJhIiBdKTsKLQotICAgIGtleXNvcnQo
J0FycmF5cycsCi0gICAgICAgIFsgW1swXV0sIFswXSwgW10sIFswLCAwXSwgWzAsIFswXV0gXSwK
LSAgICAgICAgWyBbXSwgWzBdLCBbMCwgMF0sIFswLCBbMF1dLCBbWzBdXSBdKTsKLQotICAgIHZh
ciBiaWdfYXJyYXkgPSBbXSwgYmlnZ2VyX2FycmF5ID0gW107Ci0gICAgZm9yICh2YXIgaT0wOyBp
IDwgMTAwMDA7IGkrKykgewotICAgICAgICBiaWdfYXJyYXkucHVzaChpKTsKLSAgICAgICAgYmln
Z2VyX2FycmF5LnB1c2goaSk7Ci0gICAgfQotICAgIGJpZ2dlcl9hcnJheS5wdXNoKDApOwotCi0g
ICAga2V5c29ydCgnQXJyYXkubGVuZ3RoOiAxMCwwMDAgPCBBcnJheS5sZW5ndGg6IDEwLDAwMScs
Ci0gICAgICAgIFsgYmlnZ2VyX2FycmF5LCBbMCwgMiwgM10sIFswXSwgWzldLCBiaWdfYXJyYXkg
XSwKLSAgICAgICAgWyBbMF0sIGJpZ19hcnJheSwgYmlnZ2VyX2FycmF5LCBbMCwgMiwgM10sIFs5
XSBdKTsKLQotICAgIGtleXNvcnQoJ0luZmluaXR5IGluc2lkZSBhcnJheXMnLAotICAgICAgICBb
IFtJbmZpbml0eSwgMV0sIFtJbmZpbml0eSwgSW5maW5pdHldLCBbMSwgMV0sCi0gICAgICAgICAg
ICBbMSwgSW5maW5pdHldLCBbMSwgLUluZmluaXR5XSwgWy1JbmZpbml0eSwgSW5maW5pdHldIF0s
Ci0gICAgICAgIFsgWy1JbmZpbml0eSwgSW5maW5pdHldLCBbMSwgLUluZmluaXR5XSwgWzEsIDFd
LAotICAgICAgICAgICAgWzEsIEluZmluaXR5XSwgW0luZmluaXR5LCAxXSwgW0luZmluaXR5LCBJ
bmZpbml0eV0gXSk7Ci0KLQotICAgIGtleXNvcnQoJ1Rlc3QgZGlmZmVyZW50IHN0dWZmIGF0IG9u
Y2UnLAotICAgICAgICBbCi0gICAgICAgICAgbm93LAotICAgICAgICAgIFswLCBbXV0sCi0gICAg
ICAgICAgInRlc3QiLAotICAgICAgICAgIDEsCi0gICAgICAgICAgWyJhIiwgWzEsIFstMV1dXSwK
LSAgICAgICAgICBbImIiLCAiYSJdLAotICAgICAgICAgIFsgMCwgMiwgImMiXSwKLSAgICAgICAg
ICBbImEiLCBbMSwgMl1dLAotICAgICAgICAgIFtdLAotICAgICAgICAgIFswLCBbXSwgM10sCi0g
ICAgICAgICAgWyJhIiwgImIiXSwKLSAgICAgICAgICBbIDEsIDIgXSwKLSAgICAgICAgICBbImEi
LCAiYiIsICJjIl0sCi0gICAgICAgICAgb25lX3NlY19hZ28sCi0gICAgICAgICAgWyAwLCAiYiIs
ICJjIl0sCi0gICAgICAgICAgSW5maW5pdHksCi0gICAgICAgICAgLUluZmluaXR5LAotICAgICAg
ICAgIDIuNTUsCi0gICAgICAgICAgWyAwLCBub3cgXSwKLSAgICAgICAgICBbMV0KLSAgICAgICAg
XSwKLSAgICAgICAgWwotICAgICAgICAgIC1JbmZpbml0eSwKLSAgICAgICAgICAxLAotICAgICAg
ICAgIDIuNTUsCi0gICAgICAgICAgSW5maW5pdHksCi0gICAgICAgICAgb25lX3NlY19hZ28sCi0g
ICAgICAgICAgbm93LAotICAgICAgICAgICJ0ZXN0IiwKLSAgICAgICAgICBbXSwKLSAgICAgICAg
ICBbMCAsMiwgImMiXSwKLSAgICAgICAgICBbMCwgbm93XSwKLSAgICAgICAgICBbMCwgImIiLCAi
YyJdLAotICAgICAgICAgIFswLCBbXV0sCi0gICAgICAgICAgWzAsIFtdLCAzXSwKLSAgICAgICAg
ICBbMV0sCi0gICAgICAgICAgWzEsIDJdLAotICAgICAgICAgIFsiYSIsICJiIl0sCi0gICAgICAg
ICAgWyJhIiwgImIiLCAiYyJdLAotICAgICAgICAgIFsiYSIsIFsxLCAyXV0sCi0gICAgICAgICAg
WyJhIiwgWzEsIFstMV1dXSwKLSAgICAgICAgICBbImIiLCAiYSJdCi0gICAgICAgIF0pOwotCi08
L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5b3JkZXIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9rZXlvcmRlci5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGM3ZjRmOTAxODg2ZTRmYzc2Njc1NWY0NTY4MDJkNTEwMmMzODQxMzEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9rZXlvcmRlci5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+S2V5IHNvcnQgb3JkZXI8L3RpdGxlPgot
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KLTxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IkZvciBwdXJwb3NlcyBvZiBjb21wYXJpc29uLCBhbGwgQXJyYXlzIGFyZSBncmVhdGVy
IHRoYW4gYWxsIERPTVN0cmluZywgRGF0ZSBhbmQgZmxvYXQgdmFsdWVzOyBhbGwgRE9NU3RyaW5n
IHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGFsbCBEYXRlIGFuZCBmbG9hdCB2YWx1ZXM7IGFuZCBh
bGwgRGF0ZSB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBhbGwgZmxvYXQgdmFsdWVzLiBWYWx1ZXMg
b2YgdHlwZSBmbG9hdCBhcmUgY29tcGFyZWQgdG8gb3RoZXIgZmxvYXQgdmFsdWVzIG51bWVyaWNh
bGx5LiBWYWx1ZXMgb2YgdHlwZSBEYXRlIGFyZSBjb21wYXJlZCB0byBvdGhlciBEYXRlIHZhbHVl
cyBjaHJvbm9sb2dpY2FsbHkuIFZhbHVlcyBvZiB0eXBlIERPTVN0cmluZyBhcmUgY29tcGFyZWQg
dG8gb3RoZXIgdmFsdWVzIG9mIHR5cGUgRE9NU3RyaW5nIGJ5IHVzaW5nIHRoZSBhbGdvcml0aG0g
ZGVmaW5lZCBieSBzdGVwIDQgb2Ygc2VjdGlvbiAxMS44LjUsIFRoZSBBYnN0cmFjdCBSZWxhdGlv
bmFsIENvbXBhcmlzb24gQWxnb3JpdGhtLCBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVj
aWZpY2F0aW9uIFtFQ01BLTI2Ml0uIFZhbHVlcyBvZiB0eXBlIEFycmF5IGFyZSBjb21wYXJlZCB0
byBvdGhlciB2YWx1ZXMgb2YgdHlwZSBBcnJheSBhcyBmb2xsb3dzOgotCi0xLiBMZXQgQSBiZSB0
aGUgZmlyc3QgQXJyYXkgdmFsdWUgYW5kIEIgYmUgdGhlIHNlY29uZCBBcnJheSB2YWx1ZS4KLTIu
IExldCBsZW5ndGggYmUgdGhlIGxlc3NlciBvZiBBJ3MgbGVuZ3RoIGFuZCBCJ3MgbGVuZ3RoLgot
My4gTGV0IGkgYmUgMC4KLTQuIElmIHRoZSBpdGggdmFsdWUgb2YgQSBpcyBsZXNzIHRoYW4gdGhl
IGl0aCB2YWx1ZSBvZiBCLCB0aGVuIEEgaXMgbGVzcyB0aGFuIEIuIFNraXAgdGhlIHJlbWFpbmlu
ZyBzdGVwcy4KLTUuIElmIHRoZSBpdGggdmFsdWUgb2YgQSBpcyBncmVhdGVyIHRoYW4gdGhlIGl0
aCB2YWx1ZSBvZiBCLCB0aGVuIEEgaXMgZ3JlYXRlciB0aGFuIEIuIFNraXAgdGhlIHJlbWFpbmlu
ZyBzdGVwcy4KLTYuIEluY3JlYXNlIGkgYnkgMS4KLTcuIElmIGkgaXMgbm90IGVxdWFsIHRvIGxl
bmd0aCwgZ28gYmFjayB0byBzdGVwIDQuIE90aGVyd2lzZSBjb250aW51ZSB0byBuZXh0IHN0ZXAu
Ci04LiBJZiBBJ3MgbGVuZ3RoIGlzIGxlc3MgdGhhbiBCJ3MgbGVuZ3RoLCB0aGVuIEEgaXMgbGVz
cyB0aGFuIEIuIElmIEEncyBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIEIncyBsZW5ndGgsIHRoZW4g
QSBpcyBncmVhdGVyIHRoYW4gQi4gT3RoZXJ3aXNlIEEgYW5kIEIgYXJlIGVxdWFsLiI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAg
IHZhciBnbG9iYWxfZGIgPSBjcmVhdGVkYl9mb3JfbXVsdGlwbGVfdGVzdHMoKTsKLQotICAgIGZ1
bmN0aW9uIGtleXNvcnQoZGVzYywgdW5zb3J0ZWQsIGV4cGVjdGVkKSB7Ci0gICAgICAgIHZhciBk
YiwKLSAgICAgICAgICAgIHQgPSBhc3luY190ZXN0KCJEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0g
IiArIGRlc2MsIHsgdGltZW91dDogMTAwMDAgfSksCi0gICAgICAgICAgICBzdG9yZV9uYW1lID0g
J3N0b3JlLScgKyBEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKTsKLQotICAgICAgICAvLyBUaGUg
ZGF0YWJhc2UgdGVzdAotICAgICAgICB2YXIgb3Blbl9ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQp
OwotICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSk7Ci0KLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKCJ2YWx1ZSIsIHVuc29ydGVkW2ldKTsKLSAgICAgICAgfTsKLQotICAgICAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciBhY3R1YWxfa2V5
cyA9IFtdLAotICAgICAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKHN0b3JlX25hbWUpCi0g
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoc3RvcmVfbmFtZSkKLSAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAg
ICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkpOwotICAgICAgICAgICAgICAg
ICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGFjdHVhbF9r
ZXlzLCBleHBlY3RlZCwgImtleW9yZGVyIGFycmF5Iik7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYWN0dWFsX2tleXMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICJhcnJheSBs
ZW5ndGgiKTsKLQotICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfTsKLQotICAgICAgICAvLyBUaGUgSURCS2V5
LmNtcCB0ZXN0Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIHNv
cnRlZCA9IHVuc29ydGVkLnNsaWNlKDApLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gaW5k
ZXhlZERCLmNtcChhLCBiKX0pOwotICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoc29ydGVk
LCBleHBlY3RlZCwgInNvcnRlZCBhcnJheSIpOwotCi0gICAgICAgIH0sICJJREJLZXkuY21wIHNv
cnRlZCAtICIgKyBkZXNjKTsKLSAgICB9Ci0KLSAgICB2YXIgbm93ID0gbmV3IERhdGUoKSwKLSAg
ICAgICAgb25lX3NlY19hZ28gPSBuZXcgRGF0ZShub3cgLSAxMDAwKSwKLSAgICAgICAgb25lX21p
bl9mdXR1cmUgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgKDEwMDAqNjApKTsKLQotICAgIGtl
eXNvcnQoJ1N0cmluZyA8IEFycmF5JywKLSAgICAgICAgWyBbMF0sICJ5byIsICIiLCBbXSBdLAot
ICAgICAgICBbICIiLCAieW8iLCBbXSwgWzBdIF0pOwotCi0gICAga2V5c29ydCgnZmxvYXQgPCBT
dHJpbmcnLAotICAgICAgICBbIEluZmluaXR5LCAieW8iLCAwLCAiIiwgMTAwIF0sCi0gICAgICAg
IFsgMCwgMTAwLCBJbmZpbml0eSwgIiIsICJ5byIgXSk7Ci0KLSAgICBrZXlzb3J0KCdmbG9hdCA8
IERhdGUnLAotICAgICAgICBbIG5vdywgMCwgOTk5OTk5OTk5OTk5OSwgLTAuMjIgXSwKLSAgICAg
ICAgWyAtMC4yMiwgMCwgOTk5OTk5OTk5OTk5OSwgbm93IF0pOwotCi0gICAga2V5c29ydCgnZmxv
YXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXknLAotICAgICAgICBbIFtdLCAiIiwgbm93LCBbMF0s
ICItMSIsIDAsIDk5OTk5OTk5OTk5OTksIF0sCi0gICAgICAgIFsgMCwgOTk5OTk5OTk5OTk5OSwg
bm93LCAiIiwgIi0xIiwgW10sIFswXSBdKTsKLQotCi0gICAga2V5c29ydCgnRGF0ZSgxIHNlYyBh
Z28pIDwgRGF0ZShub3cpIDwgRGF0ZSgxIG1pbnV0ZSBpbiBmdXR1cmUpJywKLSAgICAgICAgWyBu
b3csIG9uZV9zZWNfYWdvLCBvbmVfbWluX2Z1dHVyZSBdLAotICAgICAgICBbIG9uZV9zZWNfYWdv
LCBub3csIG9uZV9taW5fZnV0dXJlIF0pOwotCi0gICAga2V5c29ydCgnLTEuMSA8IDEgPCAxLjAx
MzM3IDwgMS4wMTMzNzMgPCAyJywKLSAgICAgICAgWyAxLjAxMzM3MywgMiwgMS4wMTMzNywgLTEu
MSwgMSBdLAotICAgICAgICBbIC0xLjEsIDEsIDEuMDEzMzcsIDEuMDEzMzczLCAyIF0pOwotCi0g
ICAga2V5c29ydCgnLUluZmluaXR5IDwgLTAuMDEgPCAwIDwgSW5maW5pdHknLAotICAgICAgICBb
IDAsIC0wLjAxLCAtSW5maW5pdHksIEluZmluaXR5IF0sCi0gICAgICAgIFsgLUluZmluaXR5LCAt
MC4wMSwgMCwgSW5maW5pdHkgXSk7Ci0KLSAgICBrZXlzb3J0KCciIiA8ICJhIiA8ICJhYiIgPCAi
YiIgPCAiYmEiJywKLSAgICAgICAgWyAiYSIsICJiYSIsICIiLCAiYiIsICJhYiIgXSwKLSAgICAg
ICAgWyAiIiwgImEiLCAiYWIiLCAiYiIsICJiYSIgXSk7Ci0KLSAgICBrZXlzb3J0KCdBcnJheXMn
LAotICAgICAgICBbIFtbMF1dLCBbMF0sIFtdLCBbMCwgMF0sIFswLCBbMF1dIF0sCi0gICAgICAg
IFsgW10sIFswXSwgWzAsIDBdLCBbMCwgWzBdXSwgW1swXV0gXSk7Ci0KLSAgICB2YXIgYmlnX2Fy
cmF5ID0gW10sIGJpZ2dlcl9hcnJheSA9IFtdOwotICAgIGZvciAodmFyIGk9MDsgaSA8IDEwMDAw
OyBpKyspIHsKLSAgICAgICAgYmlnX2FycmF5LnB1c2goaSk7Ci0gICAgICAgIGJpZ2dlcl9hcnJh
eS5wdXNoKGkpOwotICAgIH0KLSAgICBiaWdnZXJfYXJyYXkucHVzaCgwKTsKLQotICAgIGtleXNv
cnQoJ0FycmF5Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXkubGVuZ3RoOiAxMCwwMDEnLAotICAgICAg
ICBbIGJpZ2dlcl9hcnJheSwgWzAsIDIsIDNdLCBbMF0sIFs5XSwgYmlnX2FycmF5IF0sCi0gICAg
ICAgIFsgWzBdLCBiaWdfYXJyYXksIGJpZ2dlcl9hcnJheSwgWzAsIDIsIDNdLCBbOV0gXSk7Ci0K
LSAgICBrZXlzb3J0KCdJbmZpbml0eSBpbnNpZGUgYXJyYXlzJywKLSAgICAgICAgWyBbSW5maW5p
dHksIDFdLCBbSW5maW5pdHksIEluZmluaXR5XSwgWzEsIDFdLAotICAgICAgICAgICAgWzEsIElu
ZmluaXR5XSwgWzEsIC1JbmZpbml0eV0sIFstSW5maW5pdHksIEluZmluaXR5XSBdLAotICAgICAg
ICBbIFstSW5maW5pdHksIEluZmluaXR5XSwgWzEsIC1JbmZpbml0eV0sIFsxLCAxXSwKLSAgICAg
ICAgICAgIFsxLCBJbmZpbml0eV0sIFtJbmZpbml0eSwgMV0sIFtJbmZpbml0eSwgSW5maW5pdHld
IF0pOwotCi0KLSAgICBrZXlzb3J0KCdUZXN0IGRpZmZlcmVudCBzdHVmZiBhdCBvbmNlJywKLSAg
ICAgICAgWwotICAgICAgICAgIG5vdywKLSAgICAgICAgICBbMCwgW11dLAotICAgICAgICAgICJ0
ZXN0IiwKLSAgICAgICAgICAxLAotICAgICAgICAgIFsiYSIsIFsxLCBbLTFdXV0sCi0gICAgICAg
ICAgWyJiIiwgImEiXSwKLSAgICAgICAgICBbIDAsIDIsICJjIl0sCi0gICAgICAgICAgWyJhIiwg
WzEsIDJdXSwKLSAgICAgICAgICBbXSwKLSAgICAgICAgICBbMCwgW10sIDNdLAotICAgICAgICAg
IFsiYSIsICJiIl0sCi0gICAgICAgICAgWyAxLCAyIF0sCi0gICAgICAgICAgWyJhIiwgImIiLCAi
YyJdLAotICAgICAgICAgIG9uZV9zZWNfYWdvLAotICAgICAgICAgIFsgMCwgImIiLCAiYyJdLAot
ICAgICAgICAgIEluZmluaXR5LAotICAgICAgICAgIC1JbmZpbml0eSwKLSAgICAgICAgICAyLjU1
LAotICAgICAgICAgIFsgMCwgbm93IF0sCi0gICAgICAgICAgWzFdCi0gICAgICAgIF0sCi0gICAg
ICAgIFsKLSAgICAgICAgICAtSW5maW5pdHksCi0gICAgICAgICAgMSwKLSAgICAgICAgICAyLjU1
LAotICAgICAgICAgIEluZmluaXR5LAotICAgICAgICAgIG9uZV9zZWNfYWdvLAotICAgICAgICAg
IG5vdywKLSAgICAgICAgICAidGVzdCIsCi0gICAgICAgICAgW10sCi0gICAgICAgICAgWzAgLDIs
ICJjIl0sCi0gICAgICAgICAgWzAsIG5vd10sCi0gICAgICAgICAgWzAsICJiIiwgImMiXSwKLSAg
ICAgICAgICBbMCwgW11dLAotICAgICAgICAgIFswLCBbXSwgM10sCi0gICAgICAgICAgWzFdLAot
ICAgICAgICAgIFsxLCAyXSwKLSAgICAgICAgICBbImEiLCAiYiJdLAotICAgICAgICAgIFsiYSIs
ICJiIiwgImMiXSwKLSAgICAgICAgICBbImEiLCBbMSwgMl1dLAotICAgICAgICAgIFsiYSIsIFsx
LCBbLTFdXV0sCi0gICAgICAgICAgWyJiIiwgImEiXQotICAgICAgICBdKTsKLQotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2tleXBhdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjRhYjllZDdiZTA2MzY1NjljNzQ0MmNjNTgzMjE1YTBkMWEwYTE4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjEgKzAsMCBAQAotCi1QQVNTIEtleXBhdGggLSBteS5rZXkgCi1QQVNTIEtleXBhdGgg
LSBteS5rw7hpIAotUEFTUyBLZXlwYXRoIC0gbXkua2V5X3lhIAotUEFTUyBLZXlwYXRoIC0gcHVi
bGljLmtleSR5YSAKLVBBU1MgS2V5cGF0aCAtIHRydWUuJCAKLVBBU1MgS2V5cGF0aCAtIG15Ll8g
Ci1QQVNTIEtleXBhdGggLSBkZWxldGUuYTcgCi1QQVNTIEtleXBhdGggLSBwLnAucC5wLnAucC5w
LnAucC5wLnAucC5wLnAgCi1QQVNTIEtleXBhdGggLSBzdHIubGVuZ3RoIAotUEFTUyBLZXlwYXRo
IC0gYXJyLmxlbmd0aCAKLVBBU1MgS2V5cGF0aCAtIGxlbmd0aCAKLVBBU1MgS2V5cGF0aCAtICcn
IHVzZXMgdmFsdWUgYXMga2V5IAotUEFTUyBLZXlwYXRoIC0gWycnXSB1c2VzIHZhbHVlIGFzIFtr
ZXldIAotUEFTUyBLZXlwYXRoIC0gWyd4JywgJ3knXSAKLVBBU1MgS2V5cGF0aCAtIFtbJ3gnXSwg
J3knXSAoc3RyaW5naWZpZXMpIAotUEFTUyBLZXlwYXRoIC0gWyd4Jywge3RvU3RyaW5nLT4neSd9
XSAoc3RyaW5naWZpZXMpIAotUEFTUyBLZXlwYXRoIC0gbmFtZSx0eXBlIAotUEFTUyBLZXlwYXRo
IC0gbmFtZSx0eXBlLm5hbWUgCi1QQVNTIEtleXBhdGggLSBhcnJheSBsb29wIC0+IHN0cmluZ2lm
eSBiZWNvbWVzIFsnJ10gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIva2V5cGF0aC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5cGF0aC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjRhYjllZDdiZTA2MzY1NjljNzQ0MmNjNTgzMjE1YTBkMWEw
YTE4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0KLVBBU1MgS2V5cGF0aCAtIG15Lmtl
eSAKLVBBU1MgS2V5cGF0aCAtIG15LmvDuGkgCi1QQVNTIEtleXBhdGggLSBteS5rZXlfeWEgCi1Q
QVNTIEtleXBhdGggLSBwdWJsaWMua2V5JHlhIAotUEFTUyBLZXlwYXRoIC0gdHJ1ZS4kIAotUEFT
UyBLZXlwYXRoIC0gbXkuXyAKLVBBU1MgS2V5cGF0aCAtIGRlbGV0ZS5hNyAKLVBBU1MgS2V5cGF0
aCAtIHAucC5wLnAucC5wLnAucC5wLnAucC5wLnAucCAKLVBBU1MgS2V5cGF0aCAtIHN0ci5sZW5n
dGggCi1QQVNTIEtleXBhdGggLSBhcnIubGVuZ3RoIAotUEFTUyBLZXlwYXRoIC0gbGVuZ3RoIAot
UEFTUyBLZXlwYXRoIC0gJycgdXNlcyB2YWx1ZSBhcyBrZXkgCi1QQVNTIEtleXBhdGggLSBbJydd
IHVzZXMgdmFsdWUgYXMgW2tleV0gCi1QQVNTIEtleXBhdGggLSBbJ3gnLCAneSddIAotUEFTUyBL
ZXlwYXRoIC0gW1sneCddLCAneSddIChzdHJpbmdpZmllcykgCi1QQVNTIEtleXBhdGggLSBbJ3gn
LCB7dG9TdHJpbmctPid5J31dIChzdHJpbmdpZmllcykgCi1QQVNTIEtleXBhdGggLSBuYW1lLHR5
cGUgCi1QQVNTIEtleXBhdGggLSBuYW1lLHR5cGUubmFtZSAKLVBBU1MgS2V5cGF0aCAtIGFycmF5
IGxvb3AgLT4gc3RyaW5naWZ5IGJlY29tZXMgWycnXSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aC1wcml2YXRlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOTBiZjE2ODEyZjZjNWFmYzE2ZDU5ODIyODczMTRmYzMz
M2YyNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoLXByaXZhdGUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gU3VibWl0
dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5LZXlwYXRoPC90aXRsZT4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LXBhdGgtY29uc3Ry
dWN0Ij4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEga2V5IHBhdGggaXMgYSBET01TdHJpbmcg
dGhhdCBkZWZpbmVzIGhvdyB0byBleHRyYWN0IGEga2V5IGZyb20gYSB2YWx1ZS4gQSB2YWxpZCBr
ZXkgcGF0aCBpcyBlaXRoZXIgdGhlIGVtcHR5IHN0cmluZywgYSBKYXZhU2NyaXB0IGlkZW50aWZp
ZXIsIG9yIG11bHRpcGxlIEphdmFzY3JpcHQgaWRlbnRpZmllcnMgc2VwYXJhdGVkIGJ5IHBlcmlv
ZHMgKEFTQ0lJIGNoYXJhY3RlciBjb2RlIDQ2KSBbRUNNQS0yNjJdLiI+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi0gICAgdmFyIGds
b2JhbF9kYiA9IGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cygpOwotCi0gICAgZnVuY3Rpb24g
a2V5cGF0aChrZXlwYXRoLCBvYmplY3RzLCBleHBlY3RlZF9rZXlzLCBkZXNjKSB7Ci0gICAgICAg
IHZhciBkYiwKLSAgICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
ICIgKyAoZGVzYyA/IGRlc2MgOiBrZXlwYXRoKSksCi0KLSAgICAgICAgICAgIHN0b3JlX25hbWUg
PSAic3RvcmUtIisoRGF0ZS5ub3coKSkrTWF0aC5yYW5kb20oKTsKLQotICAgICAgICB2YXIgb3Bl
bl9ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQpOwotICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFt
ZSwgeyBrZXlQYXRoOiBrZXlwYXRoIH0pOwotCi0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG9iamVjdHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKG9i
amVjdHNbaV0pOwotICAgICAgICB9OwotCi0gICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCi0gICAgICAgICAg
ICAgIHJxID0gZGIudHJhbnNhY3Rpb24oc3RvcmVfbmFtZSkKLSAgICAgICAgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZShzdG9yZV9uYW1lKQotICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJz
b3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAg
ICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFjdHVhbF9r
ZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOwotICAgICAgICAgICAgICAgICAgICBjdXJz
b3IuY29udGludWUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBl
Y3RlZF9rZXlzLCAia2V5b3JkZXIgYXJyYXkiKTsKLSAgICAgICAgICAgICAgICAgICAgdC5kb25l
KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH07Ci0gICAg
fQotCi0gICAga2V5cGF0aCgnbXkua2V5JywKLSAgICAgICAgWyB7IG15OiB7IGtleTogMTAgfSB9
IF0sCi0gICAgICAgIFsgMTAgXSk7Ci0KLSAgICBrZXlwYXRoKCdteS5rw7hpJywKLSAgICAgICAg
WyB7IG15OiB7IGvDuGk6IDUgfSB9IF0sCi0gICAgICAgIFsgNSBdKTsKLQotICAgIGtleXBhdGgo
J215LmtleV95YScsCi0gICAgICAgIFsgeyBteTogeyBrZXlfeWE6IDEwIH0gfSBdLAotICAgICAg
ICBbIDEwIF0pOwotCi0gICAga2V5cGF0aCgncHVibGljLmtleSR5YScsCi0gICAgICAgIFsgeyBw
dWJsaWM6IHsga2V5JHlhOiAxMCB9IH0gXSwKLSAgICAgICAgWyAxMCBdKTsKLQotICAgIGtleXBh
dGgoJ3RydWUuJCcsCi0gICAgICAgIFsgeyB0cnVlOiB7ICQ6IDEwIH0gfSBdLAotICAgICAgICBb
IDEwIF0pOwotCi0gICAga2V5cGF0aCgnbXkuXycsCi0gICAgICAgIFsgeyBteTogeyBfOiAxMCB9
IH0gXSwKLSAgICAgICAgWyAxMCBdKTsKLQotICAgIGtleXBhdGgoJ2RlbGV0ZS5hNycsCi0gICAg
ICAgIFsgeyBkZWxldGU6IHsgYTc6IDEwIH0gfSBdLAotICAgICAgICBbIDEwIF0pOwotCi0gICAg
a2V5cGF0aCgncC5wLnAucC5wLnAucC5wLnAucC5wLnAucC5wJywKLSAgICAgICAgWyB7cDp7cDp7
cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDoxMH19fX19fX19fX19fX19IF0sCi0g
ICAgICAgIFsgMTAgXSk7Ci0KLSAgICBrZXlwYXRoKCdzdHIubGVuZ3RoJywKLSAgICAgICAgWyB7
IHN0cjogInBvbnkiIH0sIHsgc3RyOiAibXkiIH0sIHsgc3RyOiAibGl0dGxlIiB9LCB7IHN0cjog
IiIgfSBdLAotICAgICAgICBbIDAsIDIsIDQsIDYgXSk7Ci0KLSAgICBrZXlwYXRoKCdhcnIubGVu
Z3RoJywKLSAgICAgICAgWyB7YXJyOiBbMCwgMCwgMCwgMF19LCB7YXJyOiBbe30sIDAsICJoZWki
LCAibGVuZ3RoIiwgSW5maW5pdHksIFtdXX0sIHthcnI6IFsxMCwgMTBdfSwgeyBhcnI6IFtdfSBd
LAotICAgICAgICBbIDAsIDIsIDQsIDYgXSk7Ci0KLSAgICBrZXlwYXRoKCdsZW5ndGgnLAotICAg
ICAgICBbIFsxMCwgMTBdLCAiMTIzIiwgeyBsZW5ndGg6IDIwIH0gXSwKLSAgICAgICAgWyAyLCAz
LCAyMCBdKTsKLQotICAgIGtleXBhdGgoJycsCi0gICAgICAgIFsgWyJiYWdzIl0sICJiZWFuIiwg
MTAgXSwKLSAgICAgICAgWyAxMCwgImJlYW4iLCBbImJhZ3MiXSBdLAotICAgICAgICAiJycgdXNl
cyB2YWx1ZSBhcyBrZXkiKTsKLQotICAgIGtleXBhdGgoWycnXSwKLSAgICAgICAgWyBbImJhZ3Mi
XSwgImJlYW4iLCAxMCBdLAotICAgICAgICBbIFsxMF0sIFsiYmVhbiJdICwgW1siYmFncyJdXSBd
LAotICAgICAgICAiWycnXSB1c2VzIHZhbHVlIGFzIFtrZXldIik7Ci0KLSAgICBrZXlwYXRoKFsn
eCcsICd5J10sCi0gICAgICAgIFsge3g6MTAsIHk6MjB9LCB7eToxLjMzNywgeDoxMDB9IF0sCi0g
ICAgICAgIFsgWzEwLCAyMF0sIFsxMDAsIDEuMzM3XSBdLAotICAgICAgICAiWyd4JywgJ3knXSIp
OwotCi0gICAga2V5cGF0aChbWyd4J10sIFsneSddXSwKLSAgICAgICAgWyB7eDoxMCwgeToyMH0s
IHt5OjEuMzM3LCB4OjEwMH0gXSwKLSAgICAgICAgWyBbMTAsIDIwXSwgWzEwMCwgMS4zMzddIF0s
Ci0gICAgICAgICJbWyd4J10sICd5J10gKHN0cmluZ2lmaWVzKSIpOwotCi0gICAga2V5cGF0aChb
J3gnLCB7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gJ3knfX1dLAotICAgICAgICBbIHt4OjEw
LCB5OjIwfSwge3k6MS4zMzcsIHg6MTAwfSBdLAotICAgICAgICBbIFsxMCwgMjBdLCBbMTAwLCAx
LjMzN10gXSwKLSAgICAgICAgIlsneCcsIHt0b1N0cmluZy0+J3knfV0gKHN0cmluZ2lmaWVzKSIp
OwotCi0gICAgaWYgKGZhbHNlKSB7Ci0gICAgICAgIHZhciBteWJsb2IgPSBCbG9iKFsiWW9kYSJd
LCB7dHlwZTonc3VwcmF3c3VtJ30pOwotICAgICAgICBrZXlwYXRoKFsnbGVuZ3RoJywgJ3R5cGUn
XSwKLSAgICAgICAgICAgIFsgbXlibG9iIF0sCi0gICAgICAgICAgICBbIDQsICdzdXByYXdzdW0n
IF0sCi0gICAgICAgICAgICAiW0Jsb2IubGVuZ3RoLCBCbG9iLnR5cGVdIik7Ci0gICAgfQotCi0g
ICAgLy8gRmlsZS5uYW1lIGFuZCBGaWxlLmxhc3RNb2RpZmllZERhdGUgaXMgbm90IHRlc3RhYmxl
IGF1dG9tYXRpY2FsbHkKLQotICAgIGtleXBhdGgoWyduYW1lJywgJ3R5cGUnXSwKLSAgICAgICAg
WyB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiAiZnJ1aXQiIH0sIHsgbmFtZTogIm9yYW5nZSIsIHR5
cGU6IFsidGVsZWNvbSIsICJmcmVuY2giXSB9IF0sCi0gICAgICAgIFsgWyJvcmFuZ2UiLCAiZnJ1
aXQiXSwgWyJvcmFuZ2UiLCBbInRlbGVjb20iLCAiZnJlbmNoIl1dIF0pOwotCi0gICAga2V5cGF0
aChbJ25hbWUnLCAndHlwZS5uYW1lJ10sCi0gICAgICAgIFsgeyBuYW1lOiAib3JhbmdlIiwgdHlw
ZTogeyBuYW1lOiAiZnJ1aXQiIH19LCB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiB7IG5hbWU6ICJ0
ZWxlY29tIiB9fSBdLAotICAgICAgICBbIFsib3JhbmdlIiwgImZydWl0Il0sIFsib3JhbmdlIiwg
InRlbGVjb20iIF0gXSk7Ci0KLSAgICBsb29wX2FycmF5ID0gW107Ci0gICAgbG9vcF9hcnJheS5w
dXNoKGxvb3BfYXJyYXkpOwotICAgIGtleXBhdGgobG9vcF9hcnJheSwKLSAgICAgICAgWyAiYSIs
IDEsIFsiayJdIF0sCi0gICAgICAgIFsgWzFdLCBbImEiXSwgW1siayJdXSBdLAotICAgICAgICAi
YXJyYXkgbG9vcCAtPiBzdHJpbmdpZnkgYmVjb21lcyBbJyddIik7Ci08L3NjcmlwdD4KLQotPGRp
diBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2tleXBhdGguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlwYXRoLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE5MGJmMTY4MTJmNmM1
YWZjMTZkNTk4MjI4NzMxNGZjMzMzZjI2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBh
dGguaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPktleXBhdGg8L3RpdGxlPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXkt
cGF0aC1jb25zdHJ1Y3QiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSBrZXkgcGF0aCBpcyBh
IERPTVN0cmluZyB0aGF0IGRlZmluZXMgaG93IHRvIGV4dHJhY3QgYSBrZXkgZnJvbSBhIHZhbHVl
LiBBIHZhbGlkIGtleSBwYXRoIGlzIGVpdGhlciB0aGUgZW1wdHkgc3RyaW5nLCBhIEphdmFTY3Jp
cHQgaWRlbnRpZmllciwgb3IgbXVsdGlwbGUgSmF2YXNjcmlwdCBpZGVudGlmaWVycyBzZXBhcmF0
ZWQgYnkgcGVyaW9kcyAoQVNDSUkgY2hhcmFjdGVyIGNvZGUgNDYpIFtFQ01BLTI2Ml0uIj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0K
LSAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7Ci0KLSAg
ICBmdW5jdGlvbiBrZXlwYXRoKGtleXBhdGgsIG9iamVjdHMsIGV4cGVjdGVkX2tleXMsIGRlc2Mp
IHsKLSAgICAgICAgdmFyIGRiLAotICAgICAgICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQu
dGl0bGUgKyAiIC0gIiArIChkZXNjID8gZGVzYyA6IGtleXBhdGgpKSwKLQotICAgICAgICAgICAg
c3RvcmVfbmFtZSA9ICJzdG9yZS0iKyhEYXRlLm5vdygpKStNYXRoLnJhbmRvbSgpOwotCi0gICAg
ICAgIHZhciBvcGVuX3JxID0gZ2xvYmFsX2RiLnNldFRlc3QodCk7Ci0gICAgICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZShzdG9yZV9uYW1lLCB7IGtleVBhdGg6IGtleXBhdGggfSk7Ci0KLSAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICBvYmpT
dG9yZS5hZGQob2JqZWN0c1tpXSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwK
LSAgICAgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbihzdG9yZV9uYW1lKQotICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKHN0b3JlX25hbWUpCi0gICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOwotCi0gICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdDsKLQotICAgICAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgICAgICAg
ICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoYWN0dWFs
X2tleXMsIGV4cGVjdGVkX2tleXMsICJrZXlvcmRlciBhcnJheSIpOwotICAgICAgICAgICAgICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfTsKLSAgICB9Ci0KLSAgICBrZXlwYXRoKCdteS5rZXknLAotICAgICAgICBbIHsgbXk6IHsg
a2V5OiAxMCB9IH0gXSwKLSAgICAgICAgWyAxMCBdKTsKLQotICAgIGtleXBhdGgoJ215LmvDuGkn
LAotICAgICAgICBbIHsgbXk6IHsga8O4aTogNSB9IH0gXSwKLSAgICAgICAgWyA1IF0pOwotCi0g
ICAga2V5cGF0aCgnbXkua2V5X3lhJywKLSAgICAgICAgWyB7IG15OiB7IGtleV95YTogMTAgfSB9
IF0sCi0gICAgICAgIFsgMTAgXSk7Ci0KLSAgICBrZXlwYXRoKCdwdWJsaWMua2V5JHlhJywKLSAg
ICAgICAgWyB7IHB1YmxpYzogeyBrZXkkeWE6IDEwIH0gfSBdLAotICAgICAgICBbIDEwIF0pOwot
Ci0gICAga2V5cGF0aCgndHJ1ZS4kJywKLSAgICAgICAgWyB7IHRydWU6IHsgJDogMTAgfSB9IF0s
Ci0gICAgICAgIFsgMTAgXSk7Ci0KLSAgICBrZXlwYXRoKCdteS5fJywKLSAgICAgICAgWyB7IG15
OiB7IF86IDEwIH0gfSBdLAotICAgICAgICBbIDEwIF0pOwotCi0gICAga2V5cGF0aCgnZGVsZXRl
LmE3JywKLSAgICAgICAgWyB7IGRlbGV0ZTogeyBhNzogMTAgfSB9IF0sCi0gICAgICAgIFsgMTAg
XSk7Ci0KLSAgICBrZXlwYXRoKCdwLnAucC5wLnAucC5wLnAucC5wLnAucC5wLnAnLAotICAgICAg
ICBbIHtwOntwOntwOntwOntwOntwOntwOntwOntwOntwOntwOntwOntwOntwOjEwfX19fX19fX19
fX19fX0gXSwKLSAgICAgICAgWyAxMCBdKTsKLQotICAgIGtleXBhdGgoJ3N0ci5sZW5ndGgnLAot
ICAgICAgICBbIHsgc3RyOiAicG9ueSIgfSwgeyBzdHI6ICJteSIgfSwgeyBzdHI6ICJsaXR0bGUi
IH0sIHsgc3RyOiAiIiB9IF0sCi0gICAgICAgIFsgMCwgMiwgNCwgNiBdKTsKLQotICAgIGtleXBh
dGgoJ2Fyci5sZW5ndGgnLAotICAgICAgICBbIHthcnI6IFswLCAwLCAwLCAwXX0sIHthcnI6IFt7
fSwgMCwgImhlaSIsICJsZW5ndGgiLCBJbmZpbml0eSwgW11dfSwge2FycjogWzEwLCAxMF19LCB7
IGFycjogW119IF0sCi0gICAgICAgIFsgMCwgMiwgNCwgNiBdKTsKLQotICAgIGtleXBhdGgoJ2xl
bmd0aCcsCi0gICAgICAgIFsgWzEwLCAxMF0sICIxMjMiLCB7IGxlbmd0aDogMjAgfSBdLAotICAg
ICAgICBbIDIsIDMsIDIwIF0pOwotCi0gICAga2V5cGF0aCgnJywKLSAgICAgICAgWyBbImJhZ3Mi
XSwgImJlYW4iLCAxMCBdLAotICAgICAgICBbIDEwLCAiYmVhbiIsIFsiYmFncyJdIF0sCi0gICAg
ICAgICInJyB1c2VzIHZhbHVlIGFzIGtleSIpOwotCi0gICAga2V5cGF0aChbJyddLAotICAgICAg
ICBbIFsiYmFncyJdLCAiYmVhbiIsIDEwIF0sCi0gICAgICAgIFsgWzEwXSwgWyJiZWFuIl0gLCBb
WyJiYWdzIl1dIF0sCi0gICAgICAgICJbJyddIHVzZXMgdmFsdWUgYXMgW2tleV0iKTsKLQotICAg
IGtleXBhdGgoWyd4JywgJ3knXSwKLSAgICAgICAgWyB7eDoxMCwgeToyMH0sIHt5OjEuMzM3LCB4
OjEwMH0gXSwKLSAgICAgICAgWyBbMTAsIDIwXSwgWzEwMCwgMS4zMzddIF0sCi0gICAgICAgICJb
J3gnLCAneSddIik7Ci0KLSAgICBrZXlwYXRoKFtbJ3gnXSwgWyd5J11dLAotICAgICAgICBbIHt4
OjEwLCB5OjIwfSwge3k6MS4zMzcsIHg6MTAwfSBdLAotICAgICAgICBbIFsxMCwgMjBdLCBbMTAw
LCAxLjMzN10gXSwKLSAgICAgICAgIltbJ3gnXSwgJ3knXSAoc3RyaW5naWZpZXMpIik7Ci0KLSAg
ICBrZXlwYXRoKFsneCcsIHt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAneSd9fV0sCi0gICAg
ICAgIFsge3g6MTAsIHk6MjB9LCB7eToxLjMzNywgeDoxMDB9IF0sCi0gICAgICAgIFsgWzEwLCAy
MF0sIFsxMDAsIDEuMzM3XSBdLAotICAgICAgICAiWyd4Jywge3RvU3RyaW5nLT4neSd9XSAoc3Ry
aW5naWZpZXMpIik7Ci0KLSAgICBpZiAoZmFsc2UpIHsKLSAgICAgICAgdmFyIG15YmxvYiA9IEJs
b2IoWyJZb2RhIl0sIHt0eXBlOidzdXByYXdzdW0nfSk7Ci0gICAgICAgIGtleXBhdGgoWydsZW5n
dGgnLCAndHlwZSddLAotICAgICAgICAgICAgWyBteWJsb2IgXSwKLSAgICAgICAgICAgIFsgNCwg
J3N1cHJhd3N1bScgXSwKLSAgICAgICAgICAgICJbQmxvYi5sZW5ndGgsIEJsb2IudHlwZV0iKTsK
LSAgICB9Ci0KLSAgICAvLyBGaWxlLm5hbWUgYW5kIEZpbGUubGFzdE1vZGlmaWVkRGF0ZSBpcyBu
b3QgdGVzdGFibGUgYXV0b21hdGljYWxseQotCi0gICAga2V5cGF0aChbJ25hbWUnLCAndHlwZSdd
LAotICAgICAgICBbIHsgbmFtZTogIm9yYW5nZSIsIHR5cGU6ICJmcnVpdCIgfSwgeyBuYW1lOiAi
b3JhbmdlIiwgdHlwZTogWyJ0ZWxlY29tIiwgImZyZW5jaCJdIH0gXSwKLSAgICAgICAgWyBbIm9y
YW5nZSIsICJmcnVpdCJdLCBbIm9yYW5nZSIsIFsidGVsZWNvbSIsICJmcmVuY2giXV0gXSk7Ci0K
LSAgICBrZXlwYXRoKFsnbmFtZScsICd0eXBlLm5hbWUnXSwKLSAgICAgICAgWyB7IG5hbWU6ICJv
cmFuZ2UiLCB0eXBlOiB7IG5hbWU6ICJmcnVpdCIgfX0sIHsgbmFtZTogIm9yYW5nZSIsIHR5cGU6
IHsgbmFtZTogInRlbGVjb20iIH19IF0sCi0gICAgICAgIFsgWyJvcmFuZ2UiLCAiZnJ1aXQiXSwg
WyJvcmFuZ2UiLCAidGVsZWNvbSIgXSBdKTsKLQotICAgIGxvb3BfYXJyYXkgPSBbXTsKLSAgICBs
b29wX2FycmF5LnB1c2gobG9vcF9hcnJheSk7Ci0gICAga2V5cGF0aChsb29wX2FycmF5LAotICAg
ICAgICBbICJhIiwgMSwgWyJrIl0gXSwKLSAgICAgICAgWyBbMV0sIFsiYSJdLCBbWyJrIl1dIF0s
Ci0gICAgICAgICJhcnJheSBsb29wIC0+IHN0cmluZ2lmeSBiZWNvbWVzIFsnJ10iKTsKLTwvc2Ny
aXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjA5ODI0MjYyOGY4MDBmOGQyYmRhZjgwMTM2
NzJkNWVhYzAzNzRlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfaW52YWxpZC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0KLVBBU1MgSW52YWxp
ZCBrZXlQYXRoIC0gImogYSIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICIueW8iIAotUEFTUyBJ
bnZhbGlkIGtleVBhdGggLSAieW8sbG8iIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSBbXSAKLVBB
U1MgSW52YWxpZCBrZXlQYXRoIC0gWyJhcnJheSB3aXRoIHNwYWNlIl0gCi1QQVNTIEludmFsaWQg
a2V5UGF0aCAtIG11bHRpZGltZW5zaW9uYWwgYXJyYXkgKGludmFsaWQgdG9TdHJpbmcpIAotUEFT
UyBJbnZhbGlkIGtleVBhdGggLSAiM20iIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSB7dG9TdHJp
bmctPjNtfSAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm15LjEzMzciIAotUEFTUyBJbnZhbGlk
IGtleVBhdGggLSAiLi55byIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICJ5Li5vIiAKLVBBU1Mg
SW52YWxpZCBrZXlQYXRoIC0gInkuby4iIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSAieS5vLi4i
IAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibS4qIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0g
IlwibVwiIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0lIiAKLVBBU1MgSW52YWxpZCBrZXlQ
YXRoIC0gIm0vIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0vYSIgCi1QQVNTIEludmFsaWQg
a2V5UGF0aCAtICJtJiIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICJtISIgCi1QQVNTIEludmFs
aWQga2V5UGF0aCAtICIqIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0gIiouKiIgCi1QQVNTIElu
dmFsaWQga2V5UGF0aCAtICJebSIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICIvbS8iIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfaW52
YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5cGF0aF9pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2MDk4MjQyNjI4ZjgwMGY4ZDJiZGFmODAxMzY3MmQ1ZWFjMDM3NGU2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLXByaXZhdGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotCi1QQVNTIEludmFsaWQga2V5
UGF0aCAtICJqIGEiIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiLnlvIiAKLVBBU1MgSW52YWxp
ZCBrZXlQYXRoIC0gInlvLGxvIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0gW10gCi1QQVNTIElu
dmFsaWQga2V5UGF0aCAtIFsiYXJyYXkgd2l0aCBzcGFjZSJdIAotUEFTUyBJbnZhbGlkIGtleVBh
dGggLSBtdWx0aWRpbWVuc2lvbmFsIGFycmF5IChpbnZhbGlkIHRvU3RyaW5nKSAKLVBBU1MgSW52
YWxpZCBrZXlQYXRoIC0gIjNtIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0ge3RvU3RyaW5nLT4z
bX0gCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICJteS4xMzM3IiAKLVBBU1MgSW52YWxpZCBrZXlQ
YXRoIC0gIi4ueW8iIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSAieS4ubyIgCi1QQVNTIEludmFs
aWQga2V5UGF0aCAtICJ5Lm8uIiAKLVBBU1MgSW52YWxpZCBrZXlQYXRoIC0gInkuby4uIiAKLVBB
U1MgSW52YWxpZCBrZXlQYXRoIC0gIm0uKiIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICJcIm1c
IiIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICJtJSIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAt
ICJtLyIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICJtL2EiIAotUEFTUyBJbnZhbGlkIGtleVBh
dGggLSAibSYiIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibSEiIAotUEFTUyBJbnZhbGlkIGtl
eVBhdGggLSAiKiIgCi1QQVNTIEludmFsaWQga2V5UGF0aCAtICIqLioiIAotUEFTUyBJbnZhbGlk
IGtleVBhdGggLSAiXm0iIAotUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiL20vIiAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX2ludmFsaWQt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRo
X2ludmFsaWQtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzFk
NDQ0MTZmYmVhZDJlZWZiYTdlNGQxMWVhMDc3NGU1ZjIyOTAyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5cGF0aF9pbnZhbGlkLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBh
cmlzIC0tPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkludmFsaWQga2V5cGF0aDwv
dGl0bGU+Ci08bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1wYXRoLWNvbnN0cnVjdCI+Ci08bGlu
ayByZWw9YXNzZXJ0IHRpdGxlPSJBIGtleSBwYXRoIGlzIGEgRE9NU3RyaW5nIHRoYXQgZGVmaW5l
cyBob3cgdG8gZXh0cmFjdCBhIGtleSBmcm9tIGEgdmFsdWUuIEEgdmFsaWQga2V5IHBhdGggaXMg
ZWl0aGVyIHRoZSBlbXB0eSBzdHJpbmcsIGEgSmF2YVNjcmlwdCBpZGVudGlmaWVyLCBvciBtdWx0
aXBsZSBKYXZhc2NyaXB0IGlkZW50aWZpZXJzIHNlcGFyYXRlZCBieSBwZXJpb2RzIChBU0NJSSBj
aGFyYWN0ZXIgY29kZSA0NikgW0VDTUEtMjYyXS4iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotICAgIHZhciBnbG9iYWxfZGIgPSBj
cmVhdGVkYl9mb3JfbXVsdGlwbGVfdGVzdHMoKTsKLQotICAgIGZ1bmN0aW9uIGludmFsaWRfa2V5
cGF0aChrZXlwYXRoLCBkZXNjKSB7Ci0gICAgICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiSW52YWxp
ZCBrZXlQYXRoIC0gIiArIChkZXNjID8gZGVzYyA6IGZvcm1hdF92YWx1ZShrZXlwYXRoKSksIHVu
ZGVmaW5lZCwgMik7Ci0KLSAgICAgICAgdmFyIG9wZW5ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQp
LAotICAgICAgICAgICAgc3RvcmVfbmFtZSAgPSAic3RvcmUtIiArIERhdGUubm93KCkgKyBNYXRo
LnJhbmRvbSgpOwotCi0gICAgICAgIG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
ICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZShzdG9yZV9uYW1lLCB7IGtleVBhdGg6IGtleXBhdGgg
fSkKLSAgICAgICAgICAgICAgICB9LCAiY3JlYXRlT2JqZWN0U3RvcmUgd2l0aCBrZXlQYXRoIik7
Ci0KLSAgICAgICAgICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSk7
Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCBrZXlwYXRoKTsK
LSAgICAgICAgICAgICAgICB9LCAiY3JlYXRlSW5kZXggd2l0aCBrZXlQYXRoIik7Ci0KLSAgICAg
ICAgICAgIGRiLmNsb3NlKCk7Ci0KLSAgICAgICAgICAgIHRoaXMuZG9uZSgpOwotICAgICAgICB9
OwotICAgIH0KLQotICAgIGludmFsaWRfa2V5cGF0aCgnaiBhJyk7Ci0gICAgaW52YWxpZF9rZXlw
YXRoKCcueW8nKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJ3lvLGxvJyk7Ci0gICAgaW52YWxpZF9r
ZXlwYXRoKFtdKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoWydhcnJheSB3aXRoIHNwYWNlJ10pOwot
ICAgIGludmFsaWRfa2V5cGF0aChbJ211bHRpX2FycmF5JywgWydhJywgJ2InXV0sICJtdWx0aWRp
bWVuc2lvbmFsIGFycmF5IChpbnZhbGlkIHRvU3RyaW5nKSIpOyAvLyA9PiBbJ211bHRpX2FycmF5
JywgJ2EsYiddCi0gICAgaW52YWxpZF9rZXlwYXRoKCczbScpOwotICAgIGludmFsaWRfa2V5cGF0
aCh7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gJzNtJ319LCAne3RvU3RyaW5nLT4zbX0nKTsK
LSAgICBpbnZhbGlkX2tleXBhdGgoJ215LjEzMzcnKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJy4u
eW8nKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJ3kuLm8nKTsKLSAgICBpbnZhbGlkX2tleXBhdGgo
J3kuby4nKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJ3kuby4uJyk7Ci0gICAgaW52YWxpZF9rZXlw
YXRoKCdtLionKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJyJtIicpOwotICAgIGludmFsaWRfa2V5
cGF0aCgnbSUnKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJ20vJyk7Ci0gICAgaW52YWxpZF9rZXlw
YXRoKCdtL2EnKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJ20mJyk7Ci0gICAgaW52YWxpZF9rZXlw
YXRoKCdtIScpOwotICAgIGludmFsaWRfa2V5cGF0aCgnKicpOwotICAgIGludmFsaWRfa2V5cGF0
aCgnKi4qJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRoKCdebScpOwotICAgIGludmFsaWRfa2V5cGF0
aCgnL20vJyk7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2MxZDQ0NDE2ZmJlYWQyZWVmYmE3ZTRkMTFl
YTA3NzRlNWYyMjkwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfaW52YWxpZC5o
dG0KKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0g
U3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTx0aXRsZT5JbnZhbGlkIGtleXBhdGg8L3RpdGxlPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0
cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNr
ZXktcGF0aC1jb25zdHJ1Y3QiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSBrZXkgcGF0aCBp
cyBhIERPTVN0cmluZyB0aGF0IGRlZmluZXMgaG93IHRvIGV4dHJhY3QgYSBrZXkgZnJvbSBhIHZh
bHVlLiBBIHZhbGlkIGtleSBwYXRoIGlzIGVpdGhlciB0aGUgZW1wdHkgc3RyaW5nLCBhIEphdmFT
Y3JpcHQgaWRlbnRpZmllciwgb3IgbXVsdGlwbGUgSmF2YXNjcmlwdCBpZGVudGlmaWVycyBzZXBh
cmF0ZWQgYnkgcGVyaW9kcyAoQVNDSUkgY2hhcmFjdGVyIGNvZGUgNDYpIFtFQ01BLTI2Ml0uIj4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0KLSAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7Ci0K
LSAgICBmdW5jdGlvbiBpbnZhbGlkX2tleXBhdGgoa2V5cGF0aCwgZGVzYykgewotICAgICAgICB2
YXIgdCA9IGFzeW5jX3Rlc3QoIkludmFsaWQga2V5UGF0aCAtICIgKyAoZGVzYyA/IGRlc2MgOiBm
b3JtYXRfdmFsdWUoa2V5cGF0aCkpLCB1bmRlZmluZWQsIDIpOwotCi0gICAgICAgIHZhciBvcGVu
cnEgPSBnbG9iYWxfZGIuc2V0VGVzdCh0KSwKLSAgICAgICAgICAgIHN0b3JlX25hbWUgID0gInN0
b3JlLSIgKyBEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKTsKLQotICAgICAgICBvcGVucnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGRiID0gZS50YXJn
ZXQucmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVf
bmFtZSwgeyBrZXlQYXRoOiBrZXlwYXRoIH0pCi0gICAgICAgICAgICAgICAgfSwgImNyZWF0ZU9i
amVjdFN0b3JlIHdpdGgga2V5UGF0aCIpOwotCi0gICAgICAgICAgICBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKHN0b3JlX25hbWUpOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnU3lu
dGF4RXJyb3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgc3RvcmUuY3JlYXRl
SW5kZXgoJ2luZGV4Jywga2V5cGF0aCk7Ci0gICAgICAgICAgICAgICAgfSwgImNyZWF0ZUluZGV4
IHdpdGgga2V5UGF0aCIpOwotCi0gICAgICAgICAgICBkYi5jbG9zZSgpOwotCi0gICAgICAgICAg
ICB0aGlzLmRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBpbnZhbGlkX2tleXBhdGgo
J2ogYScpOwotICAgIGludmFsaWRfa2V5cGF0aCgnLnlvJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRo
KCd5byxsbycpOwotICAgIGludmFsaWRfa2V5cGF0aChbXSk7Ci0gICAgaW52YWxpZF9rZXlwYXRo
KFsnYXJyYXkgd2l0aCBzcGFjZSddKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoWydtdWx0aV9hcnJh
eScsIFsnYScsICdiJ11dLCAibXVsdGlkaW1lbnNpb25hbCBhcnJheSAoaW52YWxpZCB0b1N0cmlu
ZykiKTsgLy8gPT4gWydtdWx0aV9hcnJheScsICdhLGInXQotICAgIGludmFsaWRfa2V5cGF0aCgn
M20nKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoe3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICcz
bSd9fSwgJ3t0b1N0cmluZy0+M219Jyk7Ci0gICAgaW52YWxpZF9rZXlwYXRoKCdteS4xMzM3Jyk7
Ci0gICAgaW52YWxpZF9rZXlwYXRoKCcuLnlvJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRoKCd5Li5v
Jyk7Ci0gICAgaW52YWxpZF9rZXlwYXRoKCd5Lm8uJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRoKCd5
Lm8uLicpOwotICAgIGludmFsaWRfa2V5cGF0aCgnbS4qJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRo
KCcibSInKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJ20lJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRo
KCdtLycpOwotICAgIGludmFsaWRfa2V5cGF0aCgnbS9hJyk7Ci0gICAgaW52YWxpZF9rZXlwYXRo
KCdtJicpOwotICAgIGludmFsaWRfa2V5cGF0aCgnbSEnKTsKLSAgICBpbnZhbGlkX2tleXBhdGgo
JyonKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJyouKicpOwotICAgIGludmFsaWRfa2V5cGF0aCgn
Xm0nKTsKLSAgICBpbnZhbGlkX2tleXBhdGgoJy9tLycpOwotCi08L3NjcmlwdD4KLQotPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2tleXBhdGhfbWF4c2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2tleXBhdGhfbWF4c2l6ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGYyOTI5MWI0MzFkZjA2ZTQ5NmU5YThkMjU5ZDcxMDhkN2E2ZDZkMmQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX21heHNpemUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBBU1MgS2V5cGF0aCAtIH4yNjAgY2hhcnMg
Ci1QQVNTIEtleXBhdGggLSB+NTMwIGNoYXJzIAotUEFTUyBLZXlwYXRoIC0gfjEwNTAgY2hhcnMg
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0
aF9tYXhzaXplLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9rZXlwYXRoX21heHNpemUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyOTI5MWI0MzFkZjA2ZTQ5NmU5YThkMjU5ZDcxMDhkN2E2
ZDZkMmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX21heHNpemUtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBLZXlwYXRo
IC0gfjI2MCBjaGFycyAKLVBBU1MgS2V5cGF0aCAtIH41MzAgY2hhcnMgCi1QQVNTIEtleXBhdGgg
LSB+MTA1MCBjaGFycyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlwYXRoX21heHNpemUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX21heHNpemUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZjllMTIwZTc4ZmU5MzY1OTM2YWUwNDUyZWVjOWMwMTg1Mjg0
N2E4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9tYXhzaXplLXByaXZhdGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPktleXBhdGg8L3RpdGxlPgotPGxpbmsgcmVsPWhlbHAg
aHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCNrZXktcGF0aC1jb25zdHJ1Y3QiPgotPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSBr
ZXkgcGF0aCBpcyBhIERPTVN0cmluZyB0aGF0IGRlZmluZXMgaG93IHRvIGV4dHJhY3QgYSBrZXkg
ZnJvbSBhIHZhbHVlLiBBIHZhbGlkIGtleSBwYXRoIGlzIGVpdGhlciB0aGUgZW1wdHkgc3RyaW5n
LCBhIEphdmFTY3JpcHQgaWRlbnRpZmllciwgb3IgbXVsdGlwbGUgSmF2YXNjcmlwdCBpZGVudGlm
aWVycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyAoQVNDSUkgY2hhcmFjdGVyIGNvZGUgNDYpIFtFQ01B
LTI2Ml0uIj4KLTxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9u
IGtleXBhdGgoa2V5cGF0aCwgb2JqZWN0cywgZXhwZWN0ZWRfa2V5cywgZGVzYykgewotICAgICAg
ICB2YXIgZGIsCi0gICAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSAiICsgKGRlc2MgPyBkZXNjIDoga2V5cGF0aCksIHsgdGltZW91dDogMTAwMDAgfSksCi0gICAg
ICAgICAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0KLSAgICAgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHsga2V5UGF0aDoga2V5cGF0aCB9KTsKLQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZChv
YmplY3RzW2ldKTsKLSAgICAgICAgfTsKLQotICAgICAgICBvcGVuX3JxLm9uZXJyb3IgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKGUudGFyZ2V0LmVycm9yLm5h
bWUpOwotICAgICAgICB9OwotCi0gICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCi0gICAgICAgICAgICAgICAg
cnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsK
LQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAg
ICAgICAgICBpZiAoY3Vyc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1
c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOwotICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29u
dGludWUoKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzLCAia2V5b3JkZXIg
YXJyYXkiKTsKLSAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH07Ci0gICAgfQotCi0gICAga2V5cGF0aCgnbWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWkua2VlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXknLAotICAgICAgICBbIHsgbWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWk6IHsga2VlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXk6IDEwIH0gfSBdLAotICAgICAgICBbIDEwIF0s
ICd+MjYwIGNoYXJzJyk7Ci0KLSAgICBrZXlwYXRoKCdtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
aS5rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleScsCi0gICAgICAg
IFsgeyBtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaTogeyBrZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVleTogMTAgfSB9IF0sCi0gICAgICAgIFsgMTAgXSwgJ341MzAg
Y2hhcnMnKTsKLQotICAgIGtleXBhdGgoJ21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFpLmtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5JywK
LSAgICAgICAgWyB7IG1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21h
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFpOiB7IGtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5
X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5OiAxMCB9IH0gXSwK
LSAgICAgICAgWyAxMCBdLCAnfjEwNTAgY2hhcnMnKTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
bG9nPjwvbG9nPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9rZXlwYXRoX21heHNpemUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9rZXlwYXRoX21heHNpemUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjll
MTIwZTc4ZmU5MzY1OTM2YWUwNDUyZWVjOWMwMTg1Mjg0N2E4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5cGF0aF9tYXhzaXplLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPktleXBhdGg8
L3RpdGxlPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktcGF0aC1jb25zdHJ1Y3QiPgotPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iQSBrZXkgcGF0aCBpcyBhIERPTVN0cmluZyB0aGF0IGRlZmlu
ZXMgaG93IHRvIGV4dHJhY3QgYSBrZXkgZnJvbSBhIHZhbHVlLiBBIHZhbGlkIGtleSBwYXRoIGlz
IGVpdGhlciB0aGUgZW1wdHkgc3RyaW5nLCBhIEphdmFTY3JpcHQgaWRlbnRpZmllciwgb3IgbXVs
dGlwbGUgSmF2YXNjcmlwdCBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyAoQVNDSUkg
Y2hhcmFjdGVyIGNvZGUgNDYpIFtFQ01BLTI2Ml0uIj4KLTxtZXRhIG5hbWU9dGltZW91dCBjb250
ZW50PWxvbmc+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotICAgIGZ1bmN0aW9uIGtleXBhdGgoa2V5cGF0aCwgb2JqZWN0cywgZXhwZWN0
ZWRfa2V5cywgZGVzYykgewotICAgICAgICB2YXIgZGIsCi0gICAgICAgICAgICB0ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgKGRlc2MgPyBkZXNjIDoga2V5cGF0aCksIHsg
dGltZW91dDogMTAwMDAgfSksCi0gICAgICAgICAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0K
LSAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDoga2V5cGF0aCB9KTsKLQotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKQotICAgICAg
ICAgICAgICAgIG9ialN0b3JlLmFkZChvYmplY3RzW2ldKTsKLSAgICAgICAgfTsKLQotICAgICAg
ICBvcGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKGUudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICB9OwotCi0gICAgICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGFjdHVhbF9rZXlz
ID0gW10sCi0gICAgICAgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAg
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgICAg
ICAgICAgICAgLm9wZW5DdXJzb3IoKTsKLQotICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOwotICAgICAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBl
eHBlY3RlZF9rZXlzLCAia2V5b3JkZXIgYXJyYXkiKTsKLSAgICAgICAgICAgICAgICAgICAgdC5k
b25lKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH07Ci0g
ICAgfQotCi0gICAga2V5cGF0aCgnbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWkua2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXkn
LAotICAgICAgICBbIHsgbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWk6
IHsga2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXk6IDEw
IH0gfSBdLAotICAgICAgICBbIDEwIF0sICd+MjYwIGNoYXJzJyk7Ci0KLSAgICBrZXlwYXRoKCdt
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaS5rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVleScsCi0gICAgICAgIFsgeyBtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaTog
eyBrZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleTogMTAgfSB9IF0s
Ci0gICAgICAgIFsgMTAgXSwgJ341MzAgY2hhcnMnKTsKLQotICAgIGtleXBhdGgoJ21hYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpLmtlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWV5JywKLSAgICAgICAgWyB7IG1hYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpOiB7IGtlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWV5OiAxMCB9IH0gXSwKLSAgICAgICAgWyAxMCBdLCAnfjEwNTAgY2hhcnMnKTsK
LQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9bG9nPjwvbG9nPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvbGlzdF9vcmRlcmluZy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3OTNiNWQ2NjBhNmJlN2FlMGQ5NDBj
MGI4MTgyYTFhMmZiMDc5ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5n
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1QQVNTIG9iamVj
dFN0b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXIgLSBudW1iZXJzIAotUEFTUyBvYmplY3RT
dG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbnVtYmVycyAnb3ZlcmZsb3cnIAotUEFT
UyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbGV4aWdyYXBoaWNhbCBz
dHJpbmcgc29ydCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9saXN0X29yZGVyaW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzkzYjVkNjYwYTZiZTdhZTBkOTQwYzBiODE4
MmExYTJmYjA3OTgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvbGlzdF9vcmRlcmluZy1wcml2
YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1QQVNTIG9i
amVjdFN0b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXIgLSBudW1iZXJzIAotUEFTUyBvYmpl
Y3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbnVtYmVycyAnb3ZlcmZsb3cnIAot
UEFTUyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbGV4aWdyYXBoaWNh
bCBzdHJpbmcgc29ydCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9saXN0X29yZGVyaW5nLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvbGlzdF9vcmRlcmluZy1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc5OTc2N2EwYTczMTljMmVlZmZkNDBjOGIxY2JlNmMzMmJhOWQzZWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5nLXByaXZhdGUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPm9iamVjdFN0b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXI8
L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lk
bC1JREJEYXRhYmFzZS1vYmplY3RTdG9yZU5hbWVzIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IlRoZSBsaXN0IG11c3QgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciB1c2luZyB0aGUgYWxn
b3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9mIHNlY3Rpb24gMTEuOC41LCBUaGUgQWJzdHJhY3Qg
UmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29yaXRobSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFn
ZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0uIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gbGlzdF9vcmRlcihk
ZXNjLCB1bnNvcnRlZCwgZXhwZWN0ZWQpIHsKLSAgICAgICAgdmFyIG9ialN0b3JlLCBkYiwKLSAg
ICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgZGVzYyk7Ci0K
LSAgICAgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKLSAgICAgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBp
KyspCi0gICAgICAgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSh1bnNv
cnRlZFtpXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1l
cy5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCwgIm9iamVjdFN0b3JlTmFtZXMgbGVuZ3RoIik7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKQotICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzW2ldLCBleHBlY3Rl
ZFtpXSwgIm9iamVjdFN0b3JlTmFtZXNbIitpKyJdIik7Ci0KLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgodW5zb3J0ZWRbaV0sICJsZW5ndGgiKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAi
aW5kZXhOYW1lcyBsZW5ndGgiKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhw
ZWN0ZWQubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9y
ZS5pbmRleE5hbWVzW2ldLCBleHBlY3RlZFtpXSwgImluZGV4TmFtZXNbIitpKyJdIik7Ci0gICAg
ICAgIH07Ci0KLSAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCBleHBlY3Rl
ZC5sZW5ndGgsICJvYmplY3RTdG9yZU5hbWVzIGxlbmd0aCIpOwotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAib2JqZWN0U3Rv
cmVOYW1lc1siK2krIl0iKTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5p
bmRleE5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiaW5kZXhOYW1lcyBsZW5ndGgiKTsK
LSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzW2ldLCBleHBl
Y3RlZFtpXSwgImluZGV4TmFtZXNbIitpKyJdIik7Ci0KLSAgICAgICAgICAgIHQuZG9uZSgpOwot
ICAgICAgICB9OwotICAgIH0KLQotICAgIGxpc3Rfb3JkZXIoIm51bWJlcnMiLAotICAgICAgICBb
MTIzNDU2LCAtMTIzNDUsIC0xMjMsIDEyMywgMTIzNCwgLTEyMzQsIDAsIDEyMzQ1LCAtMTIzNDU2
XSwKLSAgICAgICAgWyItMTIzIiwgIi0xMjM0IiwgIi0xMjM0NSIsICItMTIzNDU2IiwgIjAiLCAi
MTIzIiwgIjEyMzQiLCAiMTIzNDUiLCAiMTIzNDU2Il0pOwotCi0gICAgbGlzdF9vcmRlcigibnVt
YmVycyAnb3ZlcmZsb3cnIiwKLSAgICAgICAgWzksIDEsIDEwMDAwMDAwMDAsIDIwMDAwMDAwMDAw
MDAwMDAwMF0sCi0gICAgICAgIFsiMSIsICIxMDAwMDAwMDAwIiwgIjIwMDAwMDAwMDAwMDAwMDAw
MCIsICI5Il0pOwotCi0gICAgbGlzdF9vcmRlcigibGV4aWdyYXBoaWNhbCBzdHJpbmcgc29ydCIs
Ci0gICAgICAgIFsgImNjIiwgImMiLCAiYWEiLCAiYSIsICJiYiIsICJiIiwgImFiIiwgIiIsICJh
YyIgXSwKLSAgICAgICAgWyAiIiwgImEiLCAiYWEiLCAiYWIiLCAiYWMiLCAiYiIsICJiYiIsICJj
IiwgImNjIiBdKTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmcuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5nLmh0bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk5NzY3YTBhNzMxOWMyZWVmZmQ0MGM4YjFj
YmU2YzMyYmE5ZDNlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmcuaHRt
CisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+b2JqZWN0U3RvcmVOYW1lcyBhbmQgaW5kZXhOYW1lcyBv
cmRlcjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPGxpbmsgcmVsPWhlbHAgaHJlZj0i
aHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQkRhdGFiYXNlLW9iamVjdFN0b3JlTmFtZXMiPgotPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0iVGhlIGxpc3QgbXVzdCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIHVzaW5nIHRo
ZSBhbGdvcml0aG0gZGVmaW5lZCBieSBzdGVwIDQgb2Ygc2VjdGlvbiAxMS44LjUsIFRoZSBBYnN0
cmFjdCBSZWxhdGlvbmFsIENvbXBhcmlzb24gQWxnb3JpdGhtIG9mIHRoZSBFQ01BU2NyaXB0IExh
bmd1YWdlIFNwZWNpZmljYXRpb24gW0VDTUEtMjYyXS4iPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICBmdW5jdGlvbiBsaXN0X29y
ZGVyKGRlc2MsIHVuc29ydGVkLCBleHBlY3RlZCkgewotICAgICAgICB2YXIgb2JqU3RvcmUsIGRi
LAotICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNj
KTsKLQotICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwotICAgICAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1bnNvcnRlZC5sZW5n
dGg7IGkrKykKLSAgICAgICAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KHVuc29ydGVkW2ldKTsKLQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9y
ZU5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAib2JqZWN0U3RvcmVOYW1lcyBsZW5ndGgi
KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKysp
Ci0gICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbaV0sIGV4
cGVjdGVkW2ldLCAib2JqZWN0U3RvcmVOYW1lc1siK2krIl0iKTsKLQotICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB1bnNvcnRlZC5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICBv
YmpTdG9yZS5jcmVhdGVJbmRleCh1bnNvcnRlZFtpXSwgImxlbmd0aCIpOwotCi0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCBleHBlY3RlZC5sZW5n
dGgsICJpbmRleE5hbWVzIGxlbmd0aCIpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBleHBlY3RlZC5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9i
alN0b3JlLmluZGV4TmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAiaW5kZXhOYW1lc1siK2krIl0iKTsK
LSAgICAgICAgfTsKLQotICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIGV4
cGVjdGVkLmxlbmd0aCwgIm9iamVjdFN0b3JlTmFtZXMgbGVuZ3RoIik7Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lc1tpXSwgZXhwZWN0ZWRbaV0sICJvYmpl
Y3RTdG9yZU5hbWVzWyIraSsiXSIpOwotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0
b3JlLmluZGV4TmFtZXMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICJpbmRleE5hbWVzIGxlbmd0
aCIpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkr
KykKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXNbaV0s
IGV4cGVjdGVkW2ldLCAiaW5kZXhOYW1lc1siK2krIl0iKTsKLQotICAgICAgICAgICAgdC5kb25l
KCk7Ci0gICAgICAgIH07Ci0gICAgfQotCi0gICAgbGlzdF9vcmRlcigibnVtYmVycyIsCi0gICAg
ICAgIFsxMjM0NTYsIC0xMjM0NSwgLTEyMywgMTIzLCAxMjM0LCAtMTIzNCwgMCwgMTIzNDUsIC0x
MjM0NTZdLAotICAgICAgICBbIi0xMjMiLCAiLTEyMzQiLCAiLTEyMzQ1IiwgIi0xMjM0NTYiLCAi
MCIsICIxMjMiLCAiMTIzNCIsICIxMjM0NSIsICIxMjM0NTYiXSk7Ci0KLSAgICBsaXN0X29yZGVy
KCJudW1iZXJzICdvdmVyZmxvdyciLAotICAgICAgICBbOSwgMSwgMTAwMDAwMDAwMCwgMjAwMDAw
MDAwMDAwMDAwMDAwXSwKLSAgICAgICAgWyIxIiwgIjEwMDAwMDAwMDAiLCAiMjAwMDAwMDAwMDAw
MDAwMDAwIiwgIjkiXSk7Ci0KLSAgICBsaXN0X29yZGVyKCJsZXhpZ3JhcGhpY2FsIHN0cmluZyBz
b3J0IiwKLSAgICAgICAgWyAiY2MiLCAiYyIsICJhYSIsICJhIiwgImJiIiwgImIiLCAiYWIiLCAi
IiwgImFjIiBdLAotICAgICAgICBbICIiLCAiYSIsICJhYSIsICJhYiIsICJhYyIsICJiIiwgImJi
IiwgImMiLCAiY2MiIF0pOwotCi08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVf
a2V5b3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZV9rZXlvcmRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRlYjQ4ZmNlNzVkOGExNDQ2NmU0OTYxOGI0MDE4NGI2YTQ2YTUwYTQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBWZXJpZnkga2V5IHNvcnQgb3JkZXIg
aW4gYW4gb2JqZWN0IHN0b3JlIGlzICdudW1iZXIgPCBEYXRlIDwgRE9NU3RyaW5nJyAgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVf
a2V5b3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL29iamVjdHN0b3JlX2tleW9yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWI0OGZjZTc1ZDhhMTQ0NjZlNDk2MThiNDAxODRi
NmE0NmE1MGE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVfa2V5b3JkZXIt
cHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyBWZXJpZnkga2V5IHNvcnQgb3JkZXIgaW4gYW4gb2JqZWN0IHN0b3JlIGlzICdudW1iZXIgPCBE
YXRlIDwgRE9NU3RyaW5nJyAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvb2JqZWN0c3RvcmVfa2V5b3JkZXItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1wcml2YXRlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViMmNlZjM2ZTU4ZjczMWNjMTU5NTdl
NzUzMzZlODg3M2IzOTk5NjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9r
ZXlvcmRlci1wcml2YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5WZXJpZnkga2V5IHNv
cnQgb3JkZXIgaW4gYW4gb2JqZWN0IHN0b3JlIGlzICdudW1iZXIgJmx0OyBEYXRlICZsdDsgRE9N
U3RyaW5nJyA8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGQgPSBu
ZXcgRGF0ZSgpLAotICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsg
a2V5OiBkIH0sCi0gICAgICAgICAgICAgICAgICB7IGtleTogInRlc3QiIH0sCi0gICAgICAgICAg
ICAgICAgICB7IGtleTogMSB9LAotICAgICAgICAgICAgICAgICAgeyBrZXk6IDIuNTUgfSAgXSwK
LSAgICAgIGV4cGVjdGVkS2V5T3JkZXIgPSBbIDEsIDIuNTUsIGQudmFsdWVPZigpLCAidGVzdCIg
XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owot
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtl
eVBhdGg6ICJrZXkiIH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykKLSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9
OwotCi0gICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBh
Y3R1YWxfa2V5cyA9IFtdLAotICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikK
LSAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAg
IC5vcGVuQ3Vyc29yKCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgewotICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQot
ICAgICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1
c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOwotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRLZXlPcmRlcik7Ci0gICAg
ICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH07
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVfa2V5b3JkZXIuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci5odG0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViMmNlZjM2ZTU4ZjczMWNjMTU5NTdlNzUz
MzZlODg3M2IzOTk5NjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlv
cmRlci5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5WZXJpZnkga2V5IHNvcnQgb3JkZXIgaW4g
YW4gb2JqZWN0IHN0b3JlIGlzICdudW1iZXIgJmx0OyBEYXRlICZsdDsgRE9NU3RyaW5nJyA8L3Rp
dGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwKLSAgICAgIGQgPSBuZXcgRGF0ZSgpLAot
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKLSAgICAgIHJlY29yZHMgPSBbIHsga2V5OiBkIH0sCi0g
ICAgICAgICAgICAgICAgICB7IGtleTogInRlc3QiIH0sCi0gICAgICAgICAgICAgICAgICB7IGtl
eTogMSB9LAotICAgICAgICAgICAgICAgICAgeyBrZXk6IDIuNTUgfSAgXSwKLSAgICAgIGV4cGVj
dGVkS2V5T3JkZXIgPSBbIDEsIDIuNTUsIGQudmFsdWVPZigpLCAidGVzdCIgXTsKLQotICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXki
IH0pOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykK
LSAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKLSAgICB9OwotCi0gICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBhY3R1YWxfa2V5cyA9
IFtdLAotICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7Ci0KLSAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAg
aWYgKGN1cnNvcikgewotICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtl
eS52YWx1ZU9mKCkpOwotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRLZXlPcmRlcik7Ci0gICAgICAgICAgICAgICAg
dC5kb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH07Ci08L3NjcmlwdD4K
LQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2Fw
dHVyZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxZmZjNTgx
NDM3NWZmMTkyOGYxM2M4M2MwYWMyNzQ2YjU3ODUyODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBCdWJibGluZyBhbmQgY2FwdHVyaW5nIG9mIHJlcXVlc3Qg
ZXZlbnRzIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS1w
cml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFmZmM1
ODE0Mzc1ZmYxOTI4ZjEzYzgzYzBhYzI3NDZiNTc4NTI4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgQnViYmxpbmcgYW5kIGNhcHR1cmluZyBv
ZiByZXF1ZXN0IGV2ZW50cyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJl
LXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNhNGY0NTFiNmVk
NmRmOTdlODNjMmRjMWUzYjExNmY1Njg3YzU3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3Jl
cXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDY5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRs
ZT5CdWJibGluZyBhbmQgY2FwdHVyaW5nIG9mIHJlcXVlc3QgZXZlbnRzPC90aXRsZT4KLTxsaW5r
IHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4g
SMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZXZlbnRzID0gW107Ci0KLSAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKTsK
LSAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFy
IGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNh
Y3Rpb247Ci0gICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzIik7Ci0g
ICAgICAgIHZhciBycTEgPSBzdG9yZS5hZGQoIiIsIDEpOwotICAgICAgICB2YXIgcnEyID0gc3Rv
cmUuYWRkKCIiLCAxKTsKLSAgICAgICAgZGIub25lcnJvciA9IGZ1bmN0aW9uKCl7fTsKLQotICAg
ICAgICBsb2dfcmVxdWVzdCgnIGRiJywgIGRiKTsKLSAgICAgICAgbG9nX3JlcXVlc3QoJ3R4bics
IHR4bik7Ci0gICAgICAgIGxvZ19yZXF1ZXN0KCdycTEnLCBycTEpOwotICAgICAgICBsb2dfcmVx
dWVzdCgncnEyJywgcnEyKTsKLQotICAgICAgICAvLyBEb24ndCBsZXQgaXQgZ2V0IHRvIGFib3J0
Ci0gICAgICAgIGRiLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZSkgeyBlLnBy
ZXZlbnREZWZhdWx0KCkgfSwgZmFsc2UpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgewotICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUpOwotICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY2FwdHVyZSAgZGIuc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHR4bi5zdWNjZXNzIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgcnExLnN1Y2Nlc3MiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnViYmxlICBycTEuc3VjY2VzcyIsCi0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgIGRiLmVycm9y
OiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY2FwdHVyZSB0eG4uZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHJxMi5lcnJvcjogQ29uc3RyYWludEVycm9y
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgcnEyLmVy
cm9yOiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYnViYmxlICB0eG4uZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgICBkYi5lcnJvcjogQ29uc3RyYWludEVy
cm9yIiwKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9ycS5z
dWNjZXNzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIpOwotICAgICAgICB0aGlzLmRvbmUoKTsKLSAg
ICB9Ci0KLQotICAgIGZ1bmN0aW9uIGxvZ19yZXF1ZXN0KHR5cGUsIG9iaikgewotICAgICAgICBv
YmouYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGxvZygnY2FwdHVyZSAnICsgdHlwZSArICcu
c3VjY2VzcycpLCB0cnVlKTsKLSAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3Mn
LCBsb2coJ2J1YmJsZSAgJyArIHR5cGUgKyAnLnN1Y2Nlc3MnKSwgZmFsc2UpOwotICAgICAgICBv
YmouYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBsb2coJ2NhcHR1cmUgJyArIHR5cGUgKyAnLmVy
cm9yJyksIHRydWUpOwotICAgICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBsb2co
J2J1YmJsZSAgJyArIHR5cGUgKyAnLmVycm9yJyksIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBsb2cobXNnKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg
ICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQotICAgICAgICAgICAgICAgIGV2
ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cpOwotICAgICAgICB9OwotICAg
IH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQt
Y2FwdHVyZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczYTRmNDUxYjZlZDZk
Zjk3ZTgzYzJkYzFlM2IxMTZmNTY4N2M1N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1
ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+QnViYmxpbmcg
YW5kIGNhcHR1cmluZyBvZiByZXF1ZXN0IGV2ZW50czwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0gICAgdmFyIGV2ZW50cyA9IFtdOwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSk7Ci0gICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOwotICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicyIpOwotICAgICAgICB2YXIg
cnExID0gc3RvcmUuYWRkKCIiLCAxKTsKLSAgICAgICAgdmFyIHJxMiA9IHN0b3JlLmFkZCgiIiwg
MSk7Ci0gICAgICAgIGRiLm9uZXJyb3IgPSBmdW5jdGlvbigpe307Ci0KLSAgICAgICAgbG9nX3Jl
cXVlc3QoJyBkYicsICBkYik7Ci0gICAgICAgIGxvZ19yZXF1ZXN0KCd0eG4nLCB0eG4pOwotICAg
ICAgICBsb2dfcmVxdWVzdCgncnExJywgcnExKTsKLSAgICAgICAgbG9nX3JlcXVlc3QoJ3JxMics
IHJxMik7Ci0KLSAgICAgICAgLy8gRG9uJ3QgbGV0IGl0IGdldCB0byBhYm9ydAotICAgICAgICBk
Yi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGUpIHsgZS5wcmV2ZW50RGVmYXVs
dCgpIH0sIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgbG9nKCJvcGVuX3JxLnN1Y2Nlc3MiKShlKTsKLSAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhldmVudHMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNhcHR1cmUgIGRiLnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY2FwdHVyZSB0eG4uc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjYXB0dXJlIHJxMS5zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgcnExLnN1Y2Nlc3MiLAotCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlICBkYi5lcnJvcjogQ29uc3RyYWlu
dEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUg
dHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY2FwdHVyZSBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHJxMi5lcnJvcjogQ29uc3Ry
YWludEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJs
ZSAgdHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYnViYmxlICAgZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuc3VjY2VzcyIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJldmVudHMiKTsKLSAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgfQotCi0KLSAg
ICBmdW5jdGlvbiBsb2dfcmVxdWVzdCh0eXBlLCBvYmopIHsKLSAgICAgICAgb2JqLmFkZEV2ZW50
TGlzdGVuZXIoJ3N1Y2Nlc3MnLCBsb2coJ2NhcHR1cmUgJyArIHR5cGUgKyAnLnN1Y2Nlc3MnKSwg
dHJ1ZSk7Ci0gICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgbG9nKCdidWJi
bGUgICcgKyB0eXBlICsgJy5zdWNjZXNzJyksIGZhbHNlKTsKLSAgICAgICAgb2JqLmFkZEV2ZW50
TGlzdGVuZXIoJ2Vycm9yJywgbG9nKCdjYXB0dXJlICcgKyB0eXBlICsgJy5lcnJvcicpLCB0cnVl
KTsKLSAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgbG9nKCdidWJibGUgICcg
KyB0eXBlICsgJy5lcnJvcicpLCBmYWxzZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9nKG1z
ZykgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgaWYoZSAmJiBl
LnRhcmdldCAmJiBlLnRhcmdldC5lcnJvcikKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaCht
c2cgKyAiOiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnKTsKLSAgICAgICAgfTsKLSAgICB9Ci08L3Njcmlw
dD4KLQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjc2MGRhMjVlMzFjNDMwMmFk
NjZlMjAxNzhiY2NhNDkwYzhlODk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3RyaW5nLWxp
c3Qtb3JkZXJpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVBBU1MgVGVzdCBzdHJpbmcgbGlzdCBvcmRlcmluZyBpbiBJbmRleGVkREIgCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJp
bmctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwYjc2MGRhMjVlMzFjNDMwMmFkNjZlMjAxNzhiY2NhNDkwYzhl
ODk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctcHJpdmF0
ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBUZXN0
IHN0cmluZyBsaXN0IG9yZGVyaW5nIGluIEluZGV4ZWREQiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmluZy1wcml2YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3N0cmluZy1saXN0LW9y
ZGVyaW5nLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcyODQ1
ZjQxM2RmNjVjMjI0OTlhZTAzODhjNjY1ZDA5MDI0ODE1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDg1ICswLDAgQEAKLTwhLS0KLVRlc3QgY29udmVydGVkIGZyb20gV2ViS2l0OgotaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9saXN0LW9yZGVyaW5nLmpzCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08IS0t
IFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Ci08bWV0YSBjaGFyc2V0PXV0Zi04Pgot
PHRpdGxlPlRlc3Qgc3RyaW5nIGxpc3Qgb3JkZXJpbmcgaW4gSW5kZXhlZERCPC90aXRsZT4KLTxs
aW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1vYmplY3RTdG9yZU5hbWVzIj4K
LTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBsaXN0IG11c3QgYmUgc29ydGVkIGluIGFzY2Vu
ZGluZyBvcmRlciB1c2luZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9mIHNlY3Rp
b24gMTEuOC41LCBUaGUgQWJzdHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29yaXRobSBv
ZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0uIj4KLTxs
aW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOnJvbWFpbi5odWV0QGdtYWlsLmNvbSIgdGl0bGU9
IlJvbWFpbiBIdWV0Ij4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZXhwZWN0ZWRPcmRlciA9IFsKLSAgICAgICAgIiIs
Ci0gICAgICAgICJceDAwIiwgLy8gJ05VTEwnIChVKzAwMDApCi0gICAgICAgICIwIiwKLSAgICAg
ICAgIjEiLAotICAgICAgICAiQSIsCi0gICAgICAgICJCIiwKLSAgICAgICAgImEiLAotICAgICAg
ICAiYiIsCi0gICAgICAgICJceDdGIiwgLy8gJ0RFTEVURScgKFUrMDA3RikKLSAgICAgICAgIlx4
QzAiLCAvLyAnTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFJyAoVSswMEMwKQotICAg
ICAgICAiXHhDMSIsIC8vICdMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUnIChVKzAw
QzEpCi0gICAgICAgICJceEUwIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkUn
IChVKzAwRTApCi0gICAgICAgICJceEUxIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEgg
QUNVVEUnIChVKzAwRTEpCi0gICAgICAgICJceEZGIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBZ
IFdJVEggRElBRVJFU0lTJyAoVSswMEZGKQotICAgICAgICAiXHUwMTAwIiwgLy8gJ0xBVElOIENB
UElUQUwgTEVUVEVSIEEgV0lUSCBNQUNST04nIChVKzAxMDApCi0gICAgICAgICJcdTEwMDAiLCAv
LyAnTVlBTk1BUiBMRVRURVIgS0EnIChVKzEwMDApCi0gICAgICAgICJcdUQ4MzRcdUREMUUiLCAv
LyAnTVVTSUNBTCBTWU1CT0wgRy1DTEVGJyAoVSsxRDExRSksIFVURi0xNiBzdXJyb2dhdGUgcGFp
cnMKLSAgICAgICAgIlx1RkZGRCIgLy8gJ1JFUExBQ0VNRU5UIENIQVJBQ1RFUicgKFUrRkZGRCkK
LSAgICBdOwotCi0gICAgdmFyIGksIHRtcCwgcGVybXV0ZWRPcmRlciA9IGV4cGVjdGVkT3JkZXIu
c2xpY2UoKTsKLSAgICBwZXJtdXRlZE9yZGVyLnJldmVyc2UoKTsKLSAgICBmb3IgKGkgPSAwOyBp
IDwgcGVybXV0ZWRPcmRlci5sZW5ndGggLSAyOyBpICs9IDIpIHsKLSAgICAgICAgdG1wID0gcGVy
bXV0ZWRPcmRlcltpXTsKLSAgICAgICAgcGVybXV0ZWRPcmRlcltpXSA9IHBlcm11dGVkT3JkZXJb
aSArIDFdOwotICAgICAgICBwZXJtdXRlZE9yZGVyW2kgKyAxXSA9IHRtcDsKLSAgICB9Ci0KLSAg
ICB2YXIgb2JqU3RvcmUsIGRiOwotICAgIHZhciB0ID0gYXN5bmNfdGVzdCgpOwotCi0gICAgLy8g
Q2hlY2sgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMgdGhlIGNhbm9uaWNhbCBKUyBzb3J0IG9y
ZGVyLgotICAgIHZhciBzb3J0ZWRPcmRlciA9IGV4cGVjdGVkT3JkZXIuc2xpY2UoKTsKLSAgICBz
b3J0ZWRPcmRlci5zb3J0KCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzb3J0ZWRPcmRlciwg
ZXhwZWN0ZWRPcmRlcik7Ci0KLSAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZWRiKHQpOwotCi0gICAg
cmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OwotCi0gICAgICAgIC8vIE9iamVjdCBzdG9yZXMuCi0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShwZXJtdXRlZE9yZGVyW2ldKTsKLSAgICAg
ICAgfQotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMsIGV4
cGVjdGVkT3JkZXIpOwotCi0gICAgICAgIC8vIEluZGV4ZXMuCi0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgocGVybXV0ZWRPcmRlcltpXSwgImtleVBhdGgiKTsKLSAgICAgICAgfQot
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVk
T3JkZXIpOwotICAgIH07Ci0KLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgLy8gT2JqZWN0IHN0b3Jlcy4KLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhk
Yi5vYmplY3RTdG9yZU5hbWVzLCBleHBlY3RlZE9yZGVyKTsKLSAgICAgICAgLy8gSW5kZXhlcy4K
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLCBleHBlY3Rl
ZE9yZGVyKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0KLTxkaXYg
aWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmluZy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDcyODQ1ZjQxM2RmNjVjMjI0OTlhZTAzODhjNjY1ZDA5MDI0ODE1MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLmh0bQorKysgL2Rldi9udWxs
CkBAIC0xLDg1ICswLDAgQEAKLTwhLS0KLVRlc3QgY29udmVydGVkIGZyb20gV2ViS2l0OgotaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9saXN0LW9yZGVyaW5nLmpzCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+
Ci08IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Ci08bWV0YSBjaGFyc2V0PXV0
Zi04PgotPHRpdGxlPlRlc3Qgc3RyaW5nIGxpc3Qgb3JkZXJpbmcgaW4gSW5kZXhlZERCPC90aXRs
ZT4KLTxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1vYmplY3RTdG9yZU5h
bWVzIj4KLTxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBsaXN0IG11c3QgYmUgc29ydGVkIGlu
IGFzY2VuZGluZyBvcmRlciB1c2luZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9m
IHNlY3Rpb24gMTEuOC41LCBUaGUgQWJzdHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29y
aXRobSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0u
Ij4KLTxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOnJvbWFpbi5odWV0QGdtYWlsLmNvbSIg
dGl0bGU9IlJvbWFpbiBIdWV0Ij4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2YXIgZXhwZWN0ZWRPcmRlciA9IFsKLSAgICAg
ICAgIiIsCi0gICAgICAgICJceDAwIiwgLy8gJ05VTEwnIChVKzAwMDApCi0gICAgICAgICIwIiwK
LSAgICAgICAgIjEiLAotICAgICAgICAiQSIsCi0gICAgICAgICJCIiwKLSAgICAgICAgImEiLAot
ICAgICAgICAiYiIsCi0gICAgICAgICJceDdGIiwgLy8gJ0RFTEVURScgKFUrMDA3RikKLSAgICAg
ICAgIlx4QzAiLCAvLyAnTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFJyAoVSswMEMw
KQotICAgICAgICAiXHhDMSIsIC8vICdMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUn
IChVKzAwQzEpCi0gICAgICAgICJceEUwIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEgg
R1JBVkUnIChVKzAwRTApCi0gICAgICAgICJceEUxIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBB
IFdJVEggQUNVVEUnIChVKzAwRTEpCi0gICAgICAgICJceEZGIiwgLy8gJ0xBVElOIFNNQUxMIExF
VFRFUiBZIFdJVEggRElBRVJFU0lTJyAoVSswMEZGKQotICAgICAgICAiXHUwMTAwIiwgLy8gJ0xB
VElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBNQUNST04nIChVKzAxMDApCi0gICAgICAgICJcdTEw
MDAiLCAvLyAnTVlBTk1BUiBMRVRURVIgS0EnIChVKzEwMDApCi0gICAgICAgICJcdUQ4MzRcdURE
MUUiLCAvLyAnTVVTSUNBTCBTWU1CT0wgRy1DTEVGJyAoVSsxRDExRSksIFVURi0xNiBzdXJyb2dh
dGUgcGFpcnMKLSAgICAgICAgIlx1RkZGRCIgLy8gJ1JFUExBQ0VNRU5UIENIQVJBQ1RFUicgKFUr
RkZGRCkKLSAgICBdOwotCi0gICAgdmFyIGksIHRtcCwgcGVybXV0ZWRPcmRlciA9IGV4cGVjdGVk
T3JkZXIuc2xpY2UoKTsKLSAgICBwZXJtdXRlZE9yZGVyLnJldmVyc2UoKTsKLSAgICBmb3IgKGkg
PSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGggLSAyOyBpICs9IDIpIHsKLSAgICAgICAgdG1w
ID0gcGVybXV0ZWRPcmRlcltpXTsKLSAgICAgICAgcGVybXV0ZWRPcmRlcltpXSA9IHBlcm11dGVk
T3JkZXJbaSArIDFdOwotICAgICAgICBwZXJtdXRlZE9yZGVyW2kgKyAxXSA9IHRtcDsKLSAgICB9
Ci0KLSAgICB2YXIgb2JqU3RvcmUsIGRiOwotICAgIHZhciB0ID0gYXN5bmNfdGVzdCgpOwotCi0g
ICAgLy8gQ2hlY2sgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMgdGhlIGNhbm9uaWNhbCBKUyBz
b3J0IG9yZGVyLgotICAgIHZhciBzb3J0ZWRPcmRlciA9IGV4cGVjdGVkT3JkZXIuc2xpY2UoKTsK
LSAgICBzb3J0ZWRPcmRlci5zb3J0KCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzb3J0ZWRP
cmRlciwgZXhwZWN0ZWRPcmRlcik7Ci0KLSAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZWRiKHQpOwot
Ci0gICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgICAgIC8vIE9iamVjdCBzdG9yZXMuCi0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShwZXJtdXRlZE9yZGVyW2ldKTsK
LSAgICAgICAgfQotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFt
ZXMsIGV4cGVjdGVkT3JkZXIpOwotCi0gICAgICAgIC8vIEluZGV4ZXMuCi0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcGVybXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgocGVybXV0ZWRPcmRlcltpXSwgImtleVBhdGgiKTsKLSAgICAg
ICAgfQotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMsIGV4
cGVjdGVkT3JkZXIpOwotICAgIH07Ci0KLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgLy8gT2JqZWN0IHN0b3Jlcy4KLSAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhkYi5vYmplY3RTdG9yZU5hbWVzLCBleHBlY3RlZE9yZGVyKTsKLSAgICAgICAgLy8gSW5k
ZXhlcy4KLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLCBl
eHBlY3RlZE9yZGVyKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgfTsKLQotPC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9zdXBwb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9zdXBwb3J0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODcyNTRmYzI4NWM0
ZDBmYzIwMGM4NWVhOTk3OGIyMTI4YTEyNTRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3Vw
cG9ydC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi1pZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLQotICAgIC8vIElmIHRoZSB0ZXN0IGZpbGUgVVJMIGVuZHMgaW4gIi1w
cml2YXRlLmh0bShsKSIsIGVuYWJsZSBwcml2YXRlIGJyb3dzaW5nLgotICAgIGlmICh3aW5kb3cu
bG9jYXRpb24uaHJlZi5lbmRzV2l0aCgiLXByaXZhdGUuaHRtIikgfHwgd2luZG93LmxvY2F0aW9u
LmhyZWYuZW5kc1dpdGgoIi1wcml2YXRlLmh0bWwiKSkKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwotfQotCi12YXIgZGF0YWJhc2VOYW1lID0gImRh
dGFiYXNlIjsKLXZhciBkYXRhYmFzZVZlcnNpb24gPSAxOwotCi1pZiAoIXdpbmRvdy5pbmRleGVk
REIpCi17Ci0gICAgaWYgKHdpbmRvdy5tc0luZGV4ZWREQikKLSAgICB7Ci0gICAgICAgIHdpbmRv
dy5pbmRleGVkREIgPSB3aW5kb3cubXNJbmRleGVkREI7Ci0gICAgfQotICAgIGVsc2UgaWYgKHdp
bmRvdy5tb3pJbmRleGVkREIpCi0gICAgewotICAgICAgICB3aW5kb3cuaW5kZXhlZERCID0gd2lu
ZG93Lm1vekluZGV4ZWREQjsKLSAgICB9Ci0gICAgZWxzZSBpZiAod2luZG93LndlYmtpdEluZGV4
ZWREQikKLSAgICB7Ci0gICAgICAgIHdpbmRvdy5pbmRleGVkREIgICAgICAgID0gd2Via2l0SW5k
ZXhlZERCOwotICAgICAgICBJREJDdXJzb3IgICAgICAgICAgICAgICA9IHdlYmtpdElEQkN1cnNv
cjsKLSAgICAgICAgSURCRGF0YWJhc2VFeGNlcHRpb24gICAgPSB3ZWJraXRJREJEYXRhYmFzZUV4
Y2VwdGlvbjsKLSAgICAgICAgSURCSW5kZXggICAgICAgICAgICAgICAgPSB3ZWJraXRJREJJbmRl
eDsKLSAgICAgICAgSURCT2JqZWN0U3RvcmUgICAgICAgICAgPSB3ZWJraXRJREJPYmplY3RTdG9y
ZTsKLSAgICAgICAgSURCUmVxdWVzdCAgICAgICAgICAgICAgPSB3ZWJraXRJREJSZXF1ZXN0Owot
ICAgICAgICBJREJLZXlSYW5nZSAgICAgICAgICAgICA9IHdlYmtpdElEQktleVJhbmdlOwotICAg
ICAgICBJREJUcmFuc2FjdGlvbiAgICAgICAgICA9IHdlYmtpdElEQlRyYW5zYWN0aW9uOwotICAg
IH0KLX0KLQotLyogRGVsZXRlIGNyZWF0ZWQgZGF0YWJhc2VzCi0gKgotICogR28gdGhyb3VnaCBl
YWNoIGZpbmlzaGVkIHRlc3QsIHNlZSBpZiBpdCBoYXMgYW4gYXNzb2NpYXRlZCBkYXRhYmFzZS4g
Q2xvc2UKLSAqIHRoYXQgYW5kIGRlbGV0ZSB0aGUgZGF0YWJhc2UuICovCi1hZGRfY29tcGxldGlv
bl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cykKLXsKLSAgICBmb3IgKHZhciBpIGluIHRlc3RzKQot
ICAgIHsKLSAgICAgICAgaWYodGVzdHNbaV0uZGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRl
c3RzW2ldLmRiLmNsb3NlKCk7Ci0gICAgICAgICAgICB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKHRlc3RzW2ldLmRiLm5hbWUpOwotICAgICAgICB9Ci0gICAgfQotfSk7Ci0KLWZ1bmN0
aW9uIGZhaWwodGVzdCwgZGVzYykgewotICAgIHJldHVybiB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGlmIChlICYmIGUubWVzc2FnZSAmJiBlLnRhcmdldC5lcnJvcikKLSAg
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoZGVzYyArICIgKCIgKyBlLnRhcmdldC5lcnJvci5u
YW1lICsgIjogIiArIGUubWVzc2FnZSArICIpIik7Ci0gICAgICAgIGVsc2UgaWYgKGUgJiYgZS5t
ZXNzYWdlKQotICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChkZXNjICsgIiAoIiArIGUubWVz
c2FnZSArICIpIik7Ci0gICAgICAgIGVsc2UgaWYgKGUgJiYgZS50YXJnZXQucmVhZHlTdGF0ZSA9
PT0gJ2RvbmUnICYmIGUudGFyZ2V0LmVycm9yKQotICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hl
ZChkZXNjICsgIiAoIiArIGUudGFyZ2V0LmVycm9yLm5hbWUgKyAiKSIpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKGRlc2MpOwotICAgIH0pOwotfQotCi1mdW5j
dGlvbiBjcmVhdGVkYih0ZXN0LCBkYm5hbWUsIHZlcnNpb24pCi17Ci0gICAgdmFyIHJxX29wZW4g
PSBjcmVhdGVkYl9mb3JfbXVsdGlwbGVfdGVzdHMoZGJuYW1lLCB2ZXJzaW9uKTsKLSAgICByZXR1
cm4gcnFfb3Blbi5zZXRUZXN0KHRlc3QpOwotfQotCi1mdW5jdGlvbiBjcmVhdGVkYl9mb3JfbXVs
dGlwbGVfdGVzdHMoZGJuYW1lLCB2ZXJzaW9uKSB7Ci0gICAgdmFyIHJxX29wZW4sCi0gICAgICAg
IGZha2Vfb3BlbiA9IHt9LAotICAgICAgICB0ZXN0ID0gbnVsbCwKLSAgICAgICAgZGJuYW1lID0g
KGRibmFtZSA/IGRibmFtZSA6ICJ0ZXN0ZGItIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTWF0
aC5yYW5kb20oKSApOwotCi0gICAgaWYgKHZlcnNpb24pCi0gICAgICAgIHJxX29wZW4gPSB3aW5k
b3cuaW5kZXhlZERCLm9wZW4oZGJuYW1lLCB2ZXJzaW9uKTsKLSAgICBlbHNlCi0gICAgICAgIHJx
X29wZW4gPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGJuYW1lKTsKLQotICAgIGZ1bmN0aW9uIGF1
dG9fZmFpbChldnQsIGN1cnJlbnRfdGVzdCkgewotICAgICAgICAvKiBGYWlsIGhhbmRsZXJzLCBp
ZiB3ZSBoYXZlbid0IHNldCBvbi93aGF0ZXZlci8sIGRvbid0Ci0gICAgICAgICAqIGV4cGVjdCB0
byBnZXQgZXZlbnQgd2hhdGV2ZXIuICovCi0gICAgICAgIHJxX29wZW4ubWFudWFsbHlfaGFuZGxl
ZCA9IHt9Ci0KLSAgICAgICAgcnFfb3Blbi5hZGRFdmVudExpc3RlbmVyKGV2dCwgZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgaWYgKGN1cnJlbnRfdGVzdCAhPT0gdGVzdCkgewotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGVzdC5zdGVwKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGlmICghcnFfb3Blbi5tYW51YWxseV9oYW5kbGVk
W2V2dF0pIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgidW5leHBlY3Rl
ZCBvcGVuLiIgKyBldnQgKyAiIGV2ZW50Iik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgaWYgKGUudGFyZ2V0LnJlc3VsdCArICIiID09ICJbb2JqZWN0IElEQkRhdGFiYXNl
XSIgJiYgIXRoaXMuZGIpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kYiA9IGUudGFyZ2V0
LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgICAgICB0aGlzLmRiLm9uZXJyb3IgPSBmYWlsKHRl
c3QsICJ1bmV4cGVjdGVkIGRiLmVycm9yIik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuZGIu
b25hYm9ydCA9IGZhaWwodGVzdCwgInVuZXhwZWN0ZWQgZGIuYWJvcnQiKTsKLSAgICAgICAgICAg
ICAgICAgICAgdGhpcy5kYi5vbnZlcnNpb25jaGFuZ2UgPSBmYWlsKHRlc3QsICJ1bmV4cGVjdGVk
IGRiLnZlcnNpb25jaGFuZ2UiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KQot
ICAgICAgICB9KQotICAgICAgICBycV9vcGVuLl9fZGVmaW5lU2V0dGVyX18oIm9uIiArIGV2dCwg
ZnVuY3Rpb24oaCkgewotICAgICAgICAgICAgcnFfb3Blbi5tYW51YWxseV9oYW5kbGVkW2V2dF0g
PSB0cnVlOwotICAgICAgICAgICAgaWYgKCFoKQotICAgICAgICAgICAgICAgIHJxX29wZW4uYWRk
RXZlbnRMaXN0ZW5lcihldnQsIGZ1bmN0aW9uKCkge30pOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJxX29wZW4uYWRkRXZlbnRMaXN0ZW5lcihldnQsIHRlc3Quc3RlcF9mdW5j
KGgpKTsKLSAgICAgICAgfSkKLSAgICB9Ci0KLSAgICAvLyBhZGQgYSAuc2V0VGVzdCBtZXRob2Qg
dG8gdGhlIERCIG9iamVjdAotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShycV9vcGVuLCAnc2V0
VGVzdCcsIHsKLSAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCi0gICAgICAgIHZhbHVlOiBmdW5j
dGlvbih0KSB7Ci0gICAgICAgICAgICB0ZXN0ID0gdDsKLQotICAgICAgICAgICAgYXV0b19mYWls
KCJ1cGdyYWRlbmVlZGVkIiwgdGVzdCk7Ci0gICAgICAgICAgICBhdXRvX2ZhaWwoInN1Y2Nlc3Mi
LCB0ZXN0KTsKLSAgICAgICAgICAgIGF1dG9fZmFpbCgiYmxvY2tlZCIsIHRlc3QpOwotICAgICAg
ICAgICAgYXV0b19mYWlsKCJlcnJvciIsIHRlc3QpOwotCi0gICAgICAgICAgICByZXR1cm4gdGhp
czsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgcmV0dXJuIHJxX29wZW47Ci19Ci0KLWZ1bmN0
aW9uIGFzc2VydF9rZXlfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKSB7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhpbmRleGVkREIuY21wKGFjdHVhbCwgZXhwZWN0ZWQpLCAwLCBkZXNj
cmlwdGlvbik7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3Zl
cnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
NTdiOWFiYTE1YzViMzExNDYyNDIyYzYyNDk0MDkyNGQ2NmNmMjQ1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgQXR0ZW1wdCB0byBjcmVhdGUg
bmV3IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNo
YW5nZS1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTU3YjlhYmExNWM1YjMxMTQ2MjQyMmM2MjQ5NDA5MjRkNjZjZjI0NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgQXR0ZW1wdCB0
byBjcmVhdGUgbmV3IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0
aW9uIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25j
aGFuZ2UtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDI3OTE2
ZDJlNTA1ODI2OGEwMzkzZGE5NzZhOTYxZGFlN2U2ZTQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UtcHJpdmF0ZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0
PXV0Zi04PgotPHRpdGxlPkF0dGVtcHQgdG8gY3JlYXRlIG5ldyB0cmFuc2FjdGlvbnMgaW5zaWRl
IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICAgdmFyIGRiLCBldmVudHMgPSBbXSwKLSAgICAgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKGFz
eW5jX3Rlc3QoKSkKLQotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAotCi0gICAgICAgIGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAuYWRkKCJ2ZXJzaW9uY2hhbmdlMSIsIDEpCi0g
ICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsIGxvZygidmVyc2lvbmNoYW5n
ZV9hZGQuc3VjY2VzcyIpKQotCi0gICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVy
cm9yJywgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpIH0pCi0KLSAgICAgICAg
ZS50YXJnZXQudHJhbnNhY3Rpb24KLSAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQot
ICAgICAgICAgICAgLmNvdW50KDIpCi0gICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3Vj
Y2VzcyIsIGxvZygidmVyc2lvbmNoYW5nZV9jb3VudC5zdWNjZXNzIikpCi0KLSAgICAgICAgYXNz
ZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rp
b24oInN0b3JlIiwgInJlYWR3cml0ZSIpIH0pCi0KLSAgICAgICAgb3Blbl9ycS50cmFuc2FjdGlv
bgotICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAuYWRkKCJ2
ZXJzaW9uY2hhbmdlMiIsIDIpCi0gICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2Vz
cyIsIGxvZygidmVyc2lvbmNoYW5nZV9hZGQyLnN1Y2Nlc3MiKSkKLQotICAgICAgICBvcGVuX3Jx
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBsb2co
InZlcnNpb25jaGFuZ2VfdHhuLmNvbXBsZXRlIikoZSkKLQotICAgICAgICAgICAgZGIudHJhbnNh
Y3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKLSAg
ICAgICAgICAgICAgICAuY291bnQoKQotICAgICAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVy
KCJzdWNjZXNzIiwgbG9nKCJjb21wbGV0ZV9jb3VudC5zdWNjZXNzIikpCi0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgbG9n
KCJvcGVuX3JxLnN1Y2Nlc3MiKShlKQotCi0gICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiLCAicmVhZHdyaXRlIikKLSAgICAgICAgdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIp
Ci0gICAgICAgICAgICAucHV0KCJ3b28iLCAxKQotICAgICAgICAgICAgLmFkZEV2ZW50TGlzdGVu
ZXIoInN1Y2Nlc3MiLCBsb2coImNvbXBsZXRlMl9nZXQuc3VjY2VzcyIpKQotCi0gICAgICAgIHR4
bi5vbmNvbXBsZXRlID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidmVyc2lvbmNoYW5nZV9hZGQuc3VjY2VzczogMSIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInZlcnNpb25jaGFuZ2VfY291bnQuc3VjY2VzczogMCIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlcnNpb25jaGFuZ2VfYWRkMi5zdWNjZXNz
OiAyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVyc2lvbmNoYW5nZV90
eG4uY29tcGxldGUiLAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5f
cnEuc3VjY2VzczogW29iamVjdCBJREJEYXRhYmFzZV0iLAotCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbXBsZXRlX2NvdW50LnN1Y2Nlc3M6IDIiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb21wbGV0ZTJfZ2V0LnN1Y2Nlc3M6IDEiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICAgICAiZXZl
bnRzIikKLSAgICAgICAgICAgIHRoaXMuZG9uZSgpCi0gICAgICAgIH0pCi0gICAgfQotCi0KLSAg
ICBmdW5jdGlvbiBsb2cobXNnKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQotICAgICAgICAgICAg
ICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKQotICAgICAg
ICAgICAgZWxzZSBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LnJlc3VsdCAhPT0gdW5kZWZp
bmVkKQotICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5y
ZXN1bHQpCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNn
KQotICAgICAgICB9OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
Y3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS5odG0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMjc5MTZkMmU1MDU4MjY4YTAzOTNkYTk3NmE5NjFkYWU3
ZTZlNDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVy
c2lvbmNoYW5nZS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+QXR0ZW1wdCB0byBjcmVhdGUgbmV3
IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uPC90aXRsZT4K
LTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgICB2YXIgZGIsIGV2ZW50cyA9IFtdLAotICAgICAgICBv
cGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQotCi0gICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Ci0KLSAg
ICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgIC5hZGQoInZl
cnNpb25jaGFuZ2UxIiwgMSkKLSAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNz
IiwgbG9nKCJ2ZXJzaW9uY2hhbmdlX2FkZC5zdWNjZXNzIikpCi0KLSAgICAgICAgYXNzZXJ0X3Ro
cm93cygnSW52YWxpZFN0YXRlRXJyb3InLCBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rpb24oInN0
b3JlIikgfSkKLQotICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbgotICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCi0gICAgICAgICAgICAuY291bnQoMikKLSAgICAgICAgICAgIC5h
ZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJzaW9uY2hhbmdlX2NvdW50LnN1Y2Nl
c3MiKSkKLQotICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsIGZ1bmN0
aW9uKCkgeyBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIikgfSkKLQotICAgICAg
ICBvcGVuX3JxLnRyYW5zYWN0aW9uCi0gICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikK
LSAgICAgICAgICAgIC5hZGQoInZlcnNpb25jaGFuZ2UyIiwgMikKLSAgICAgICAgICAgIC5hZGRF
dmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJzaW9uY2hhbmdlX2FkZDIuc3VjY2VzcyIp
KQotCi0gICAgICAgIG9wZW5fcnEudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgIGxvZygidmVyc2lvbmNoYW5nZV90eG4uY29tcGxldGUiKShlKQotCi0g
ICAgICAgICAgICBkYi50cmFuc2FjdGlvbigic3RvcmUiKQotICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgIC5jb3VudCgpCi0gICAgICAgICAgICAg
ICAgLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsb2coImNvbXBsZXRlX2NvdW50LnN1Y2Nl
c3MiKSkKLSAgICAgICAgfQotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUpCi0KLSAgICAgICAgdmFy
IHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKQotICAgICAgICB0eG4u
b2JqZWN0U3RvcmUoInN0b3JlIikKLSAgICAgICAgICAgIC5wdXQoIndvbyIsIDEpCi0gICAgICAg
ICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsIGxvZygiY29tcGxldGUyX2dldC5zdWNj
ZXNzIikpCi0KLSAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9uY2hhbmdlX2FkZC5zdWNjZXNzOiAx
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVyc2lvbmNoYW5nZV9jb3Vu
dC5zdWNjZXNzOiAwIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVyc2lv
bmNoYW5nZV9hZGQyLnN1Y2Nlc3M6IDIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ2ZXJzaW9uY2hhbmdlX3R4bi5jb21wbGV0ZSIsCi0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAib3Blbl9ycS5zdWNjZXNzOiBbb2JqZWN0IElEQkRhdGFiYXNlXSIsCi0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGxldGVfY291bnQuc3VjY2Vz
czogMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBsZXRlMl9nZXQu
c3VjY2VzczogMSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICJldmVudHMiKQotICAgICAgICAgICAgdGhpcy5kb25lKCkKLSAgICAg
ICAgfSkKLSAgICB9Ci0KLQotICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsKLSAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQu
ZXJyb3IpCi0gICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0
LmVycm9yLm5hbWUpCi0gICAgICAgICAgICBlbHNlIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJn
ZXQucmVzdWx0ICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNn
ICsgIjogIiArIGUudGFyZ2V0LnJlc3VsdCkKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBldmVudHMucHVzaChtc2cpCi0gICAgICAgIH07Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tl
ZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3ZTlmNmNiMTEw
YjZkODYwZWVlYTAyYmI1NjU4MGQ3N2IwNDVmNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIEJsb2NrZWQgZXZlbnQgCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tl
ZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdlOWY2Y2IxMTBiNmQ4NjBlZWVhMDJiYjU2NTgw
ZDc3YjA0NWY3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1l
LWJsb2NrZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBCbG9ja2VkIGV2ZW50IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZl
dGltZS1ibG9ja2VkLXByaXZhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODA0YjlhYjBiODc3MjZjNjkwOTVhYjgxYWNkZjg3OWQ0MWNmZGE1ZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtcHJpdmF0ZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPkJsb2Nr
ZWQgZXZlbnQ8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9A
b3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci0KLSAgICB2YXIgZGIsIGRiX2dvdF92ZXJzaW9uY2hhbmdlLCBkYjIsCi0gICAgICAg
IGV2ZW50cyA9IFtdLAotICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3Rp
bWVvdXQ6IDEwMDAwfSk7Ci0KLSAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBv
cGVucnEgPSBpbmRleGVkREIub3BlbignZGInLCAzKTsKLQotICAgICAgICAvLyAxCi0gICAgICAg
IG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBldmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsKLSAgICAgICAgICAgIGUudGFy
Z2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgLy8gMgotICAgICAgICBvcGVucnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAg
IGV2ZW50cy5wdXNoKCJvcGVuLiIgKyBlLnR5cGUpOwotCi0gICAgICAgICAgICAvLyAzCi0gICAg
ICAgICAgICBkYi5vbnZlcnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0g
ICAgICAgICAgICAgICAgZXZlbnRzLnB1c2goImRiLiIgKyBlLnR5cGUpOwotCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDMsICJvbGQgdmVyc2lvbiIpOwotICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA0LCAibmV3IHZlcnNpb24i
KTsKLSAgICAgICAgICAgICAgICAvLyBEbyBub3QgY2xvc2UgZGIgaGVyZSAoYXMgd2Ugc2hvdWxk
KQotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIC8vIEVycm9ycwotICAgICAgICAgICAg
ZGIub25lcnJvciA9IGZhaWwodCwgImRiLmVycm9yIik7Ci0gICAgICAgICAgICBkYi5hYm9ydCA9
IGZhaWwodCwgImRiLmFib3J0Iik7Ci0KLSAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1
bmMoT3BlblNlY29uZCksIDEwKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gRXJyb3JzCi0g
ICAgICAgIG9wZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJvciIpOwotICAgICAgICBv
cGVucnEub25ibG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7Ci0KLSAgICB9KTsKLQot
ICAgIGZ1bmN0aW9uIE9wZW5TZWNvbmQgKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIs
IHVuZGVmaW5lZCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIgKyAiIiwgIltvYmplY3QgSURC
RGF0YWJhc2VdIik7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZGIub2JqZWN0U3RvcmVO
YW1lcywgWyAic3RvcmUiIF0pOwotCi0gICAgICAgIHZhciBvcGVucnEyID0gaW5kZXhlZERCLm9w
ZW4oJ2RiJywgNCk7Ci0KLSAgICAgICAgLy8gNAotICAgICAgICBvcGVucnEyLm9uYmxvY2tlZCA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVu
Mi4iICsgZS50eXBlKTsKLSAgICAgICAgICAgIC8vIFdlJ3JlIGNsb3NpbmcgY29ubmVjdGlvbiBm
cm9tIHRoZSBvdGhlciBvcGVuKCkKLSAgICAgICAgICAgIGRiLmNsb3NlKCk7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIC8vIDUKLSAgICAgICAgb3BlbnJxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7
Ci0KLSAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKLQotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkYjIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7Ci0K
LSAgICAgICAgICAgIC8vIEVycm9ycwotICAgICAgICAgICAgZGIyLm9udmVyc2lvbmNoYW5nZSA9
IGZhaWwodCwgImRiMi52ZXJzaW9uY2hhbmdlIik7Ci0gICAgICAgICAgICBkYjIub25lcnJvciA9
IGZhaWwodCwgImRiMi5lcnJvciIpOwotICAgICAgICAgICAgZGIyLmFib3J0ID0gZmFpbCh0LCAi
ZGIyLmFib3J0Iik7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIDYKLSAgICAgICAgb3BlbnJx
Mi5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBldmVu
dHMucHVzaCgib3BlbjIuIiArIGUudHlwZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZXZlbnRzLAotICAgICAgICAgICAgICAgIFsgIm9wZW4udXBncmFkZW5lZWRlZCIsCi0g
ICAgICAgICAgICAgICAgICAib3Blbi5zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICJkYi52
ZXJzaW9uY2hhbmdlIiwKLSAgICAgICAgICAgICAgICAgICJvcGVuMi5ibG9ja2VkIiwKLSAgICAg
ICAgICAgICAgICAgICJvcGVuMi51cGdyYWRlbmVlZGVkIiwKLSAgICAgICAgICAgICAgICAgICJv
cGVuMi5zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKLSAgICAgICAgfSk7Ci0KLSAgICAg
ICAgLy8gRXJyb3JzCi0gICAgICAgIG9wZW5ycTIub25lcnJvciA9IGZhaWwodCwgIm9wZW4yLmVy
cm9yIik7Ci0gICAgfQotCi0KLSAgICAvLyBDbGVhbnVwCi0gICAgYWRkX2NvbXBsZXRpb25fY2Fs
bGJhY2soZnVuY3Rpb24odGVzdHMpIHsKLSAgICAgICAgaWYgKGRiMikgZGIyLmNsb3NlKCk7Ci0g
ICAgICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKLSAgICB9KQotCi08L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tbGlmZXRpbWUtYmxvY2tlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQuaHRtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4MDRiOWFiMGI4NzcyNmM2OTA5NWFiODFhY2RmODc5ZDQxY2ZkYTVkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC5odG0K
KysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+
QmxvY2tlZCBldmVudDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4K
LQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwgZGJfZ290X3ZlcnNpb25jaGFuZ2UsIGRiMiwKLSAg
ICAgICAgZXZlbnRzID0gW10sCi0gICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
LCB7dGltZW91dDogMTAwMDB9KTsKLQotICAgIHQuc3RlcChmdW5jdGlvbigpIHsKLSAgICAgICAg
dmFyIG9wZW5ycSA9IGluZGV4ZWREQi5vcGVuKCdkYicsIDMpOwotCi0gICAgICAgIC8vIDEKLSAg
ICAgICAgb3BlbnJxLm9udXBncmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuLiIgKyBlLnR5cGUpOwotICAgICAgICAgICAg
ZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOwotICAgICAgICB9KTsK
LQotICAgICAgICAvLyAyCi0gICAgICAgIG9wZW5ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAg
ICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUudHlwZSk7Ci0KLSAgICAgICAgICAgIC8vIDMK
LSAgICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaCgiZGIuIiArIGUudHlwZSk7Ci0KLSAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgMywgIm9sZCB2ZXJzaW9uIik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIDQsICJuZXcgdmVy
c2lvbiIpOwotICAgICAgICAgICAgICAgIC8vIERvIG5vdCBjbG9zZSBkYiBoZXJlIChhcyB3ZSBz
aG91bGQpCi0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgLy8gRXJyb3JzCi0gICAgICAg
ICAgICBkYi5vbmVycm9yID0gZmFpbCh0LCAiZGIuZXJyb3IiKTsKLSAgICAgICAgICAgIGRiLmFi
b3J0ID0gZmFpbCh0LCAiZGIuYWJvcnQiKTsKLQotICAgICAgICAgICAgc2V0VGltZW91dCh0LnN0
ZXBfZnVuYyhPcGVuU2Vjb25kKSwgMTApOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyBFcnJv
cnMKLSAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuLmVycm9yIik7Ci0gICAg
ICAgIG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuLmJsb2NrZWQiKTsKLQotICAgIH0p
OwotCi0gICAgZnVuY3Rpb24gT3BlblNlY29uZCAoZSkgewotICAgICAgICBhc3NlcnRfZXF1YWxz
KGRiMiwgdW5kZWZpbmVkKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkYiArICIiLCAiW29iamVj
dCBJREJEYXRhYmFzZV0iKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYi5vYmplY3RT
dG9yZU5hbWVzLCBbICJzdG9yZSIgXSk7Ci0KLSAgICAgICAgdmFyIG9wZW5ycTIgPSBpbmRleGVk
REIub3BlbignZGInLCA0KTsKLQotICAgICAgICAvLyA0Ci0gICAgICAgIG9wZW5ycTIub25ibG9j
a2VkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZXZlbnRzLnB1c2go
Im9wZW4yLiIgKyBlLnR5cGUpOwotICAgICAgICAgICAgLy8gV2UncmUgY2xvc2luZyBjb25uZWN0
aW9uIGZyb20gdGhlIG90aGVyIG9wZW4oKQotICAgICAgICAgICAgZGIuY2xvc2UoKTsKLSAgICAg
ICAgfSk7Ci0KLSAgICAgICAgLy8gNQotICAgICAgICBvcGVucnEyLm9udXBncmFkZW5lZWRlZCA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiMiA9IGUudGFyZ2V0LnJl
c3VsdDsKLQotICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4yLiIgKyBlLnR5cGUpOwotCi0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMiArICIiLCAiW29iamVjdCBJREJEYXRhYmFzZV0i
KTsKLQotICAgICAgICAgICAgLy8gRXJyb3JzCi0gICAgICAgICAgICBkYjIub252ZXJzaW9uY2hh
bmdlID0gZmFpbCh0LCAiZGIyLnZlcnNpb25jaGFuZ2UiKTsKLSAgICAgICAgICAgIGRiMi5vbmVy
cm9yID0gZmFpbCh0LCAiZGIyLmVycm9yIik7Ci0gICAgICAgICAgICBkYjIuYWJvcnQgPSBmYWls
KHQsICJkYjIuYWJvcnQiKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gNgotICAgICAgICBv
cGVucnEyLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg
IGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKLQotICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhldmVudHMsCi0gICAgICAgICAgICAgICAgWyAib3Blbi51cGdyYWRlbmVlZGVk
IiwKLSAgICAgICAgICAgICAgICAgICJvcGVuLnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAg
ImRiLnZlcnNpb25jaGFuZ2UiLAotICAgICAgICAgICAgICAgICAgIm9wZW4yLmJsb2NrZWQiLAot
ICAgICAgICAgICAgICAgICAgIm9wZW4yLnVwZ3JhZGVuZWVkZWQiLAotICAgICAgICAgICAgICAg
ICAgIm9wZW4yLnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgIF0pOwotCi0gICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgMTApOwotICAgICAgICB9KTsKLQot
ICAgICAgICAvLyBFcnJvcnMKLSAgICAgICAgb3BlbnJxMi5vbmVycm9yID0gZmFpbCh0LCAib3Bl
bjIuZXJyb3IiKTsKLSAgICB9Ci0KLQotICAgIC8vIENsZWFudXAKLSAgICBhZGRfY29tcGxldGlv
bl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cykgewotICAgICAgICBpZiAoZGIyKSBkYjIuY2xvc2Uo
KTsKLSAgICAgICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYicpOwotICAgIH0pCi0KLTwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1saWZldGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2FiM2ZkZDQ1N2Y2NDdkMGJmOTg4Yzc3OTJiNjFlMGJkZTg1
YzQ2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFRlc3QgZXZlbnRz
IG9wZW5pbmcgYSBzZWNvbmQgZGF0YWJhc2Ugd2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVuIGFs
cmVhZHkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tbGlmZXRpbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLXByaXZhdGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWIzZmRkNDU3ZjY0N2QwYmY5
ODhjNzc5MmI2MWUwYmRlODVjNDY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tbGlmZXRpbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLQotUEFTUyBUZXN0IGV2ZW50cyBvcGVuaW5nIGEgc2Vjb25kIGRhdGFiYXNlIHdoZW4g
b25lIGNvbm5lY3Rpb24gaXMgb3BlbiBhbHJlYWR5IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRp
bWUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODJiZjZkZTky
NGJlMDQyNzBhMjUxOTlhMGM4YzcwOTg1OGVkYjM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tbGlmZXRpbWUtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHRpdGxlPlRlc3QgZXZlbnRzIG9wZW5pbmcgYSBz
ZWNvbmQgZGF0YWJhc2Ugd2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVuIGFscmVhZHk8L3RpdGxl
PgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0KLSAgICB2
YXIgZGIsIGRiX2dvdF92ZXJzaW9uY2hhbmdlLCBkYjIsCi0gICAgICAgIGV2ZW50cyA9IFtdLAot
ICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSk7
Ci0KLSAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBvcGVucnEgPSBpbmRleGVk
REIub3BlbignZGInLCAzKTsKLQotICAgICAgICAvLyAxCi0gICAgICAgIG9wZW5ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBldmVudHMu
cHVzaCgib3Blbi4iICsgZS50eXBlKTsKLSAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gMgotICAg
ICAgICBvcGVucnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJv
cGVuLiIgKyBlLnR5cGUpOwotCi0gICAgICAgICAgICAvLyAzCi0gICAgICAgICAgICBkYi5vbnZl
cnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
ZXZlbnRzLnB1c2goImRiLiIgKyBlLnR5cGUpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLm9sZFZlcnNpb24sIDMsICJvbGQgdmVyc2lvbiIpOwotICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA0LCAibmV3IHZlcnNpb24iKTsKLSAgICAgICAgICAg
ICAgICBkYi5jbG9zZSgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIC8vIEVycm9y
cwotICAgICAgICAgICAgZGIub25lcnJvciA9IGZhaWwodCwgImRiLmVycm9yIik7Ci0gICAgICAg
ICAgICBkYi5hYm9ydCA9IGZhaWwodCwgImRiLmFib3J0Iik7Ci0KLSAgICAgICAgICAgIHNldFRp
bWVvdXQodC5zdGVwX2Z1bmMoT3BlblNlY29uZCksIDEwKTsKLSAgICAgICAgfSk7Ci0KLSAgICAg
ICAgLy8gRXJyb3JzCi0gICAgICAgIG9wZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJv
ciIpOwotICAgICAgICBvcGVucnEub25ibG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7
Ci0KLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIE9wZW5TZWNvbmQgKGUpIHsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkYjIsIHVuZGVmaW5lZCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZGIgKyAi
IiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZGIub2JqZWN0U3RvcmVOYW1lcywgWyAic3RvcmUiIF0pOwotCi0gICAgICAgIHZhciBvcGVucnEy
ID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgNCk7Ci0KLSAgICAgICAgLy8gNAotICAgICAgICBvcGVu
cnEyLm9udXBncmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGRiMiA9IGUudGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9w
ZW4yLiIgKyBlLnR5cGUpOwotCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMiArICIiLCAi
W29iamVjdCBJREJEYXRhYmFzZV0iKTsKLQotICAgICAgICAgICAgLy8gRXJyb3JzCi0gICAgICAg
ICAgICBkYjIub252ZXJzaW9uY2hhbmdlID0gZmFpbCh0LCAiZGIyLnZlcnNpb25jaGFuZ2UiKTsK
LSAgICAgICAgICAgIGRiMi5vbmVycm9yID0gZmFpbCh0LCAiZGIyLmVycm9yIik7Ci0gICAgICAg
ICAgICBkYjIuYWJvcnQgPSBmYWlsKHQsICJkYjIuYWJvcnQiKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgLy8gNQotICAgICAgICBvcGVucnEyLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsCi0gICAgICAgICAgICAgICAg
WyAib3Blbi51cGdyYWRlbmVlZGVkIiwKLSAgICAgICAgICAgICAgICAgICJvcGVuLnN1Y2Nlc3Mi
LAotICAgICAgICAgICAgICAgICAgImRiLnZlcnNpb25jaGFuZ2UiLAotICAgICAgICAgICAgICAg
ICAgIm9wZW4yLnVwZ3JhZGVuZWVkZWQiLAotICAgICAgICAgICAgICAgICAgIm9wZW4yLnN1Y2Nl
c3MiLAotICAgICAgICAgICAgICAgIF0pOwotCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeyB0LmRvbmUoKTsgfSwgMTApOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyBFcnJv
cnMKLSAgICAgICAgb3BlbnJxMi5vbmVycm9yID0gZmFpbCh0LCAib3BlbjIuZXJyb3IiKTsKLSAg
ICAgICAgb3BlbnJxMi5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuMi5ibG9ja2VkIik7Ci0gICAg
fQotCi0KLSAgICAvLyBDbGVhbnVwCi0gICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rp
b24odGVzdHMpIHsKLSAgICAgICAgaWYgKGRiMikgZGIyLmNsb3NlKCk7Ci0gICAgICAgIGluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKLSAgICB9KQotCi08L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRp
bWUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1s
aWZldGltZS5odG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MmJmNmRlOTI0YmUw
NDI3MGEyNTE5OWEwYzhjNzA5ODU4ZWRiMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1saWZldGltZS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08dGl0bGU+VGVzdCBldmVudHMgb3BlbmluZyBhIHNlY29uZCBkYXRhYmFz
ZSB3aGVuIG9uZSBjb25uZWN0aW9uIGlzIG9wZW4gYWxyZWFkeTwvdGl0bGU+Ci08bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
LQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLQotPHNjcmlwdD4KLQotICAgIHZhciBkYiwgZGJfZ290
X3ZlcnNpb25jaGFuZ2UsIGRiMiwKLSAgICAgICAgZXZlbnRzID0gW10sCi0gICAgICAgIHQgPSBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KTsKLQotICAgIHQuc3Rl
cChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIG9wZW5ycSA9IGluZGV4ZWREQi5vcGVuKCdkYics
IDMpOwotCi0gICAgICAgIC8vIDEKLSAgICAgICAgb3BlbnJxLm9udXBncmFkZW5lZWRlZCA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuLiIg
KyBlLnR5cGUpOwotICAgICAgICAgICAgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyAyCi0gICAgICAgIG9wZW5ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKLQotICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUudHlw
ZSk7Ci0KLSAgICAgICAgICAgIC8vIDMKLSAgICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaCgi
ZGIuIiArIGUudHlwZSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVy
c2lvbiwgMywgIm9sZCB2ZXJzaW9uIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
Lm5ld1ZlcnNpb24sIDQsICJuZXcgdmVyc2lvbiIpOwotICAgICAgICAgICAgICAgIGRiLmNsb3Nl
KCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgLy8gRXJyb3JzCi0gICAgICAgICAg
ICBkYi5vbmVycm9yID0gZmFpbCh0LCAiZGIuZXJyb3IiKTsKLSAgICAgICAgICAgIGRiLmFib3J0
ID0gZmFpbCh0LCAiZGIuYWJvcnQiKTsKLQotICAgICAgICAgICAgc2V0VGltZW91dCh0LnN0ZXBf
ZnVuYyhPcGVuU2Vjb25kKSwgMTApOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyBFcnJvcnMK
LSAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuLmVycm9yIik7Ci0gICAgICAg
IG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuLmJsb2NrZWQiKTsKLQotICAgIH0pOwot
Ci0gICAgZnVuY3Rpb24gT3BlblNlY29uZCAoZSkgewotICAgICAgICBhc3NlcnRfZXF1YWxzKGRi
MiwgdW5kZWZpbmVkKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkYiArICIiLCAiW29iamVjdCBJ
REJEYXRhYmFzZV0iKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYi5vYmplY3RTdG9y
ZU5hbWVzLCBbICJzdG9yZSIgXSk7Ci0KLSAgICAgICAgdmFyIG9wZW5ycTIgPSBpbmRleGVkREIu
b3BlbignZGInLCA0KTsKLQotICAgICAgICAvLyA0Ci0gICAgICAgIG9wZW5ycTIub251cGdyYWRl
bmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZGIyID0gZS50
YXJnZXQucmVzdWx0OwotCi0gICAgICAgICAgICBldmVudHMucHVzaCgib3BlbjIuIiArIGUudHlw
ZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIyICsgIiIsICJbb2JqZWN0IElEQkRh
dGFiYXNlXSIpOwotCi0gICAgICAgICAgICAvLyBFcnJvcnMKLSAgICAgICAgICAgIGRiMi5vbnZl
cnNpb25jaGFuZ2UgPSBmYWlsKHQsICJkYjIudmVyc2lvbmNoYW5nZSIpOwotICAgICAgICAgICAg
ZGIyLm9uZXJyb3IgPSBmYWlsKHQsICJkYjIuZXJyb3IiKTsKLSAgICAgICAgICAgIGRiMi5hYm9y
dCA9IGZhaWwodCwgImRiMi5hYm9ydCIpOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyA1Ci0g
ICAgICAgIG9wZW5ycTIub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4yLiIgKyBlLnR5cGUpOwotCi0gICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywKLSAgICAgICAgICAgICAgICBbICJvcGVuLnVwZ3Jh
ZGVuZWVkZWQiLAotICAgICAgICAgICAgICAgICAgIm9wZW4uc3VjY2VzcyIsCi0gICAgICAgICAg
ICAgICAgICAiZGIudmVyc2lvbmNoYW5nZSIsCi0gICAgICAgICAgICAgICAgICAib3BlbjIudXBn
cmFkZW5lZWRlZCIsCi0gICAgICAgICAgICAgICAgICAib3BlbjIuc3VjY2VzcyIsCi0gICAgICAg
ICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHQuZG9u
ZSgpOyB9LCAxMCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIEVycm9ycwotICAgICAgICBv
cGVucnEyLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuMi5lcnJvciIpOwotICAgICAgICBvcGVucnEy
Lm9uYmxvY2tlZCA9IGZhaWwodCwgIm9wZW4yLmJsb2NrZWQiKTsKLSAgICB9Ci0KLQotICAgIC8v
IENsZWFudXAKLSAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cykgewot
ICAgICAgICBpZiAoZGIyKSBkYjIuY2xvc2UoKTsKLSAgICAgICAgaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKCdkYicpOwotICAgIH0pCi0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1y
ZXF1ZXN0cXVldWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
ZmY0NmViZjhkMDJmYWNlMDI4YzdhMzJlZGE3NzhlNjE5OTBlMDIxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFRyYW5zYWN0aW9ucyBoYXZlIGEgcmVxdWVzdCBx
dWV1ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS1wcml2YXRl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmZmNDZlYmY4ZDAy
ZmFjZTAyOGM3YTMyZWRhNzc4ZTYxOTkwZTAyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFRyYW5zYWN0aW9ucyBoYXZlIGEgcmVxdWVzdCBxdWV1
ZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1yZXF1ZXN0cXVldWUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtcHJpdmF0ZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmExY2ZjMDczZDNhMTNlMmI5Yzk0YmVhNDE5NTIx
NDBlNzAxMWYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1
ZXVlLXByaXZhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5UcmFuc2FjdGlvbnMgaGF2ZSBh
IHJlcXVlc3QgcXVldWU8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi12YXIgZGIsIHQg
PSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKLSAgICBrZXlz
ID0geyB0eG46IFtdLCB0eG4yOiBbXSB9LAotICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQotCi1v
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKLSAgICB2YXIgaSwgb3M7Ci0g
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0KLSAgICBmb3IgKGkgPSAxOyBpIDwgNjsgaSsrKQot
ICAgIHsKLSAgICAgICAgb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgib3MiICsgaSwgeyBhdXRv
SW5jcmVtZW50OiB0cnVlLCBrZXlQYXRoOiAiayIgfSk7Ci0gICAgICAgIG9zLmFkZCh7IG9zOiAi
b3MiICsgaSB9KTsKLSAgICAgICAgb3MucHV0KHsgb3M6ICJvcyIgKyBpLCBrOiBpfSk7Ci0gICAg
ICAgIG9zLmFkZCh7IG9zOiAib3MiICsgaSB9KTsKLSAgICB9Ci19Ci0KLW9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgewotICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbihbIm9zMiIs
ICJvczEiLCAib3MzIiwgIm9zNSJdKQotICAgIHR4bi5vYmplY3RTdG9yZSgib3MxIikub3BlbkN1
cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKLSAgICB0eG4ub2JqZWN0U3RvcmUoIm9zMyIp
Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCi0gICAgdHhuLm9iamVjdFN0b3Jl
KCJvczEiKS5nZXQoMikub25zdWNjZXNzID0gcmVnKCJ0eG4iKQotICAgIHR4bi5vYmplY3RTdG9y
ZSgib3MyIikuZ2V0KDMpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKLQotICAgIHZhciB0eG4yID0g
ZGIudHJhbnNhY3Rpb24oWyJvczQiLCAib3MzIiwgIm9zMSIsICJvczUiXSkKLSAgICB2YXIgb3M0
ID0gdHhuMi5vYmplY3RTdG9yZSgib3M0IikKLQotICAgIGZvciAodmFyIGk9MDsgaSA8IDM7IGkr
KykgewotICAgICAgICBvczQub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCi0g
ICAgICAgIG9zNC5nZXQoNSkub25zdWNjZXNzID0gcmVnKCJ0eG4yIikKLSAgICAgICAgb3M0Lmdl
dCg0KS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQotICAgICAgICB0eG4ub2JqZWN0U3RvcmUoIm9z
MiIpLmdldCgxKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCi0gICAgICAgIHR4bjIub2JqZWN0U3Rv
cmUoIm9zMyIpLmdldCgxKS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQotICAgIH0KLQotICAgIHR4
bjIub2JqZWN0U3RvcmUoIm9zMSIpLmdldCgyKS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQotICAg
IHR4bi5vYmplY3RTdG9yZSgib3MxIikub3BlbkN1cnNvcihudWxsLCAicHJldiIpLm9uc3VjY2Vz
cyA9IHJlZygidHhuIikKLSAgICBvczQub3BlbkN1cnNvcihudWxsLCAicHJldiIpLm9uc3VjY2Vz
cyA9IHJlZygidHhuMiIpCi0KLSAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZpbmlz
aCk7Ci0gICAgdHhuMi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoZmluaXNoKTsKLX0KLQotCi1m
dW5jdGlvbiByZWcobikgewotICAgIHJldHVybiB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgewot
ICAgICAgICB2YXIgdiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgaWYgKHYudmFsdWUpIHYg
PSB2LnZhbHVlOwotICAgICAgICBrZXlzW25dLnB1c2godi5vcyArICI6ICIgKyB2LmspOwotICAg
IH0pOwotfQotCi12YXIgZmluaXNoX3RvX2dvID0gMjsKLWZ1bmN0aW9uIGZpbmlzaCgpIHsKLSAg
ICBpZiAoLS1maW5pc2hfdG9fZ28pCi0gICAgICAgIHJldHVybjsKLQotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoa2V5c1sndHhuJ10sIFsKLSAgICAgICAgIm9zMTogMSIsCi0gICAgICAgICJvczM6
IDEiLAotICAgICAgICAib3MxOiAyIiwKLSAgICAgICAgIm9zMjogMyIsCi0gICAgICAgICJvczI6
IDEiLCAib3MyOiAxIiwgIm9zMjogMSIsCi0gICAgICAgICJvczE6IDIiLAotICAgIF0sICd0cmFu
c2FjdGlvbiBrZXlzJyk7Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGtleXNbJ3R4bjInXSwg
WwotICAgICAgICAib3M0OiAxIiwgIm9zNDogNSIsICJvczQ6IDQiLCAib3MzOiAxIiwKLSAgICAg
ICAgIm9zNDogMSIsICJvczQ6IDUiLCAib3M0OiA0IiwgIm9zMzogMSIsCi0gICAgICAgICJvczQ6
IDEiLCAib3M0OiA1IiwgIm9zNDogNCIsICJvczM6IDEiLAotICAgICAgICAib3MxOiAyIiwKLSAg
ICAgICAgIm9zNDogNSIsCi0gICAgXSwgJ3RyYW5zYWN0aW9uIDIga2V5cycpOwotCi0gICAgdC5k
b25lKCk7Ci19Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1
ZXVlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
cmVxdWVzdHF1ZXVlLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZhMWNmYzA3
M2QzYTEzZTJiOWM5NGJlYTQxOTUyMTQwZTcwMTFmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS5odG0KKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+VHJhbnNh
Y3Rpb25zIGhhdmUgYSByZXF1ZXN0IHF1ZXVlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LQotdmFyIGRiLCB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAw
fSksCi0gICAga2V5cyA9IHsgdHhuOiBbXSwgdHhuMjogW10gfSwKLSAgICBvcGVuX3JxID0gY3Jl
YXRlZGIodCkKLQotb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAg
dmFyIGksIG9zOwotICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotCi0gICAgZm9yIChpID0gMTsg
aSA8IDY7IGkrKykKLSAgICB7Ci0gICAgICAgIG9zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoIm9z
IiArIGksIHsgYXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogImsiIH0pOwotICAgICAgICBv
cy5hZGQoeyBvczogIm9zIiArIGkgfSk7Ci0gICAgICAgIG9zLnB1dCh7IG9zOiAib3MiICsgaSwg
azogaX0pOwotICAgICAgICBvcy5hZGQoeyBvczogIm9zIiArIGkgfSk7Ci0gICAgfQotfQotCi1v
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICB2YXIgdHhuID0gZGIudHJhbnNh
Y3Rpb24oWyJvczIiLCAib3MxIiwgIm9zMyIsICJvczUiXSkKLSAgICB0eG4ub2JqZWN0U3RvcmUo
Im9zMSIpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCi0gICAgdHhuLm9iamVj
dFN0b3JlKCJvczMiKS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gcmVnKCJ0eG4iKQotICAgIHR4
bi5vYmplY3RTdG9yZSgib3MxIikuZ2V0KDIpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKLSAgICB0
eG4ub2JqZWN0U3RvcmUoIm9zMiIpLmdldCgzKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCi0KLSAg
ICB2YXIgdHhuMiA9IGRiLnRyYW5zYWN0aW9uKFsib3M0IiwgIm9zMyIsICJvczEiLCAib3M1Il0p
Ci0gICAgdmFyIG9zNCA9IHR4bjIub2JqZWN0U3RvcmUoIm9zNCIpCi0KLSAgICBmb3IgKHZhciBp
PTA7IGkgPCAzOyBpKyspIHsKLSAgICAgICAgb3M0Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBy
ZWcoInR4bjIiKQotICAgICAgICBvczQuZ2V0KDUpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCi0g
ICAgICAgIG9zNC5nZXQoNCkub25zdWNjZXNzID0gcmVnKCJ0eG4yIikKLSAgICAgICAgdHhuLm9i
amVjdFN0b3JlKCJvczIiKS5nZXQoMSkub25zdWNjZXNzID0gcmVnKCJ0eG4iKQotICAgICAgICB0
eG4yLm9iamVjdFN0b3JlKCJvczMiKS5nZXQoMSkub25zdWNjZXNzID0gcmVnKCJ0eG4yIikKLSAg
ICB9Ci0KLSAgICB0eG4yLm9iamVjdFN0b3JlKCJvczEiKS5nZXQoMikub25zdWNjZXNzID0gcmVn
KCJ0eG4yIikKLSAgICB0eG4ub2JqZWN0U3RvcmUoIm9zMSIpLm9wZW5DdXJzb3IobnVsbCwgInBy
ZXYiKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCi0gICAgb3M0Lm9wZW5DdXJzb3IobnVsbCwgInBy
ZXYiKS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQotCi0gICAgdHhuLm9uY29tcGxldGUgPSB0LnN0
ZXBfZnVuYyhmaW5pc2gpOwotICAgIHR4bjIub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZpbmlz
aCk7Ci19Ci0KLQotZnVuY3Rpb24gcmVnKG4pIHsKLSAgICByZXR1cm4gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24gKGUpIHsKLSAgICAgICAgdmFyIHYgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIGlm
ICh2LnZhbHVlKSB2ID0gdi52YWx1ZTsKLSAgICAgICAga2V5c1tuXS5wdXNoKHYub3MgKyAiOiAi
ICsgdi5rKTsKLSAgICB9KTsKLX0KLQotdmFyIGZpbmlzaF90b19nbyA9IDI7Ci1mdW5jdGlvbiBm
aW5pc2goKSB7Ci0gICAgaWYgKC0tZmluaXNoX3RvX2dvKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGtleXNbJ3R4biddLCBbCi0gICAgICAgICJvczE6IDEiLAot
ICAgICAgICAib3MzOiAxIiwKLSAgICAgICAgIm9zMTogMiIsCi0gICAgICAgICJvczI6IDMiLAot
ICAgICAgICAib3MyOiAxIiwgIm9zMjogMSIsICJvczI6IDEiLAotICAgICAgICAib3MxOiAyIiwK
LSAgICBdLCAndHJhbnNhY3Rpb24ga2V5cycpOwotCi0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhr
ZXlzWyd0eG4yJ10sIFsKLSAgICAgICAgIm9zNDogMSIsICJvczQ6IDUiLCAib3M0OiA0IiwgIm9z
MzogMSIsCi0gICAgICAgICJvczQ6IDEiLCAib3M0OiA1IiwgIm9zNDogNCIsICJvczM6IDEiLAot
ICAgICAgICAib3M0OiAxIiwgIm9zNDogNSIsICJvczQ6IDQiLCAib3MzOiAxIiwKLSAgICAgICAg
Im9zMTogMiIsCi0gICAgICAgICJvczQ6IDUiLAotICAgIF0sICd0cmFuc2FjdGlvbiAyIGtleXMn
KTsKLQotICAgIHQuZG9uZSgpOwotfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlZWQzNzQxMDJjMWU3MTc1YTY0ZWI3
NmVjMGJhNmZjMjUxZTJkYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbl9i
dWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgQ2FwdHVyZSBhbmQgYnViYmxlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
dHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWVkMzc0MTAyYzFlNzE3NWE2NGViNzZlYzBiYTZm
YzI1MWUyZGJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFu
ZC1jYXB0dXJlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0KLVBBU1MgQ2FwdHVyZSBhbmQgYnViYmxlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGFkZDk4NTlmNTZkNTJjNWMzZDlkY2IwZDcxMjJlMmM1YTM4OThlMmMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUtcHJpdmF0
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPkNhcHR1cmUgYW5kIGJ1YmJsZTwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGV2ZW50cyA9IFtdOwotCi0gICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9
KSk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
IHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRy
YW5zYWN0aW9uOwotICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiKTsKLSAgICAgICAgdmFyIHJxMSA9IHN0b3JlLmFkZCgiIiwgMSk7Ci0gICAgICAgIHZhciBy
cTIgPSBzdG9yZS5hZGQoIiIsIDEpOwotCi0gICAgICAgIGRiLm9uZXJyb3IgPSB1bmRlZmluZWQ7
IC8vIFdlIHdpbGwgcnVuIGRiLmVycm9yLCBidXQgZG9uJ3QgbGV0IHRoYXQgZmFpbCB0aGUgdGVz
dAotCi0gICAgICAgIGxvZ19ldmVudHMoJ2RiJywgZGIsICdzdWNjZXNzJyk7Ci0gICAgICAgIGxv
Z19ldmVudHMoJ2RiJywgZGIsICdlcnJvcicpOwotCi0gICAgICAgIGxvZ19ldmVudHMoJ3R4bics
IHR4biwgJ3N1Y2Nlc3MnKTsKLSAgICAgICAgbG9nX2V2ZW50cygndHhuJywgdHhuLCAnZXJyb3In
KTsKLQotICAgICAgICBsb2dfZXZlbnRzKCdycTEnLCBycTEsICdzdWNjZXNzJyk7Ci0gICAgICAg
IGxvZ19ldmVudHMoJ3JxMScsIHJxMSwgJ2Vycm9yJyk7Ci0KLSAgICAgICAgbG9nX2V2ZW50cygn
cnEyJywgcnEyLCAnc3VjY2VzcycpOwotICAgICAgICBsb2dfZXZlbnRzKCdycTInLCBycTIsICdl
cnJvcicpOwotCi0gICAgICAgIC8vIERvbid0IGxldCBpdCBnZXQgdG8gYWJvcnQKLSAgICAgICAg
ZGIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1
bHQoKTsgfSwgZmFsc2UpOwotICAgIH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUpOwotICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiY2FwdHVyZSBkYi5zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImNhcHR1cmUgdHhuLnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY2FwdHVyZSBycTEuc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHJxMS5zdWNjZXNzIiwKLQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBkYi5lcnJvcjogQ29uc3RyYWlu
dEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUg
dHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY2FwdHVyZSBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHJxMi5lcnJvcjogQ29uc3Ry
YWludEVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJs
ZSAgdHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYnViYmxlICBkYi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKLQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9ycS5zdWNjZXNzIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJldmVudHMiKTsKLSAgICAgICAgdGhpcy5kb25lKCk7Ci0gICAgfQotCi0KLSAg
ICBmdW5jdGlvbiBsb2dfZXZlbnRzKHR5cGUsIG9iaiwgZXZ0KSB7Ci0gICAgICAgIG9iai5hZGRF
dmVudExpc3RlbmVyKGV2dCwgbG9nKCdjYXB0dXJlICcgKyB0eXBlICsgJy4nICsgZXZ0KSwgdHJ1
ZSk7Ci0gICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2dCwgbG9nKCdidWJibGUgICcgKyB0
eXBlICsgJy4nICsgZXZ0KSwgZmFsc2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvZyhtc2cp
IHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmKGUgJiYgZS50
YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCi0gICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNn
ICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7Ci0gICAgICAgIH07Ci0gICAgfQotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1
cmUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGQ5ODU5ZjU2ZDUyYzVjM2Q5
ZGNiMGQ3MTIyZTJjNWEzODk4ZTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rp
b25fYnViYmxlLWFuZC1jYXB0dXJlLmh0bQorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5DYXB0dXJlIGFu
ZCBidWJibGU8L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9A
b3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBldmVudHMgPSBb
XTsKLQotICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSwge3RpbWVvdXQ6IDEwMDAwfSkpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgewotICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHZh
ciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbjsKLSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Ci0gICAgICAgIHZhciBycTEgPSBzdG9yZS5hZGQoIiIs
IDEpOwotICAgICAgICB2YXIgcnEyID0gc3RvcmUuYWRkKCIiLCAxKTsKLQotICAgICAgICBkYi5v
bmVycm9yID0gdW5kZWZpbmVkOyAvLyBXZSB3aWxsIHJ1biBkYi5lcnJvciwgYnV0IGRvbid0IGxl
dCB0aGF0IGZhaWwgdGhlIHRlc3QKLQotICAgICAgICBsb2dfZXZlbnRzKCdkYicsIGRiLCAnc3Vj
Y2VzcycpOwotICAgICAgICBsb2dfZXZlbnRzKCdkYicsIGRiLCAnZXJyb3InKTsKLQotICAgICAg
ICBsb2dfZXZlbnRzKCd0eG4nLCB0eG4sICdzdWNjZXNzJyk7Ci0gICAgICAgIGxvZ19ldmVudHMo
J3R4bicsIHR4biwgJ2Vycm9yJyk7Ci0KLSAgICAgICAgbG9nX2V2ZW50cygncnExJywgcnExLCAn
c3VjY2VzcycpOwotICAgICAgICBsb2dfZXZlbnRzKCdycTEnLCBycTEsICdlcnJvcicpOwotCi0g
ICAgICAgIGxvZ19ldmVudHMoJ3JxMicsIHJxMiwgJ3N1Y2Nlc3MnKTsKLSAgICAgICAgbG9nX2V2
ZW50cygncnEyJywgcnEyLCAnZXJyb3InKTsKLQotICAgICAgICAvLyBEb24ndCBsZXQgaXQgZ2V0
IHRvIGFib3J0Ci0gICAgICAgIGRiLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24o
ZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IH0sIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgbG9nKCJvcGVuX3JxLnN1Y2Nlc3Mi
KShlKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgZGIuc3VjY2VzcyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHR4bi5zdWNjZXNzIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgcnExLnN1Y2Nlc3Mi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnViYmxlICBycTEuc3Vj
Y2VzcyIsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUg
ZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjYXB0dXJlIHR4bi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgcnEyLmVycm9yOiBDb25zdHJh
aW50RXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnViYmxl
ICBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJidWJibGUgIHR4bi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgZGIuZXJyb3I6IENvbnN0
cmFpbnRFcnJvciIsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9w
ZW5fcnEuc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRzIik7Ci0gICAgICAgIHRoaXMuZG9u
ZSgpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gbG9nX2V2ZW50cyh0eXBlLCBvYmosIGV2dCkg
ewotICAgICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcihldnQsIGxvZygnY2FwdHVyZSAnICsgdHlw
ZSArICcuJyArIGV2dCksIHRydWUpOwotICAgICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcihldnQs
IGxvZygnYnViYmxlICAnICsgdHlwZSArICcuJyArIGV2dCksIGZhbHNlKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBsb2cobXNnKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQotICAgICAgICAgICAg
ICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cpOwotICAgICAgICB9
OwotICAgIH0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMTU1MmNiMmZkMDlhMzFhMjk0ZmU1YjdmNGQ3YTI1
ZjJjNmNlYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBWYWx1ZXMgLSBEYXRlIAotUEFTUyBW
YWx1ZXMgLSBBcnJheSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi92YWx1ZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvdmFsdWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDhjMTU1MmNiMmZkMDlhMzFhMjk0ZmU1YjdmNGQ3YTI1ZjJjNmNlYTAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1QQVNTIFZhbHVlcyAtIERhdGUgCi1QQVNTIFZh
bHVlcyAtIEFycmF5IAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL3ZhbHVlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvdmFsdWUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MGU4M2I2ODBjNjAxYzQ3YmY2MWI1NDZjYTdiZjg1OWZlOGI2ZDNmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvdmFsdWUtcHJpdmF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+VmFsdWVz
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNv
bSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotZnVuY3Rpb24gdmFsdWUodmFsdWUsIF9p
bnN0YW5jZW9mKSB7Ci0gICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
ICIgKyBfaW5zdGFuY2VvZi5uYW1lKTsKLSAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IGFzc2VydF90cnVlKHZhbHVlIGluc3RhbmNlb2YgX2luc3RhbmNlb2YsICJURVNUIEVSUk9SLCBp
bnN0YW5jZW9mIik7Ci0gICAgfSk7Ci0KLSAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGUudGFyZ2V0LnJlc3VsdAotICAgICAgICAgICAgICAg
IC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgIC5hZGQodmFsdWUs
IDEpOwotCi0gICAgICAgIGUudGFyZ2V0Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKLSAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdAotICAgICAgICAgICAgICAgICAgICAu
dHJhbnNhY3Rpb24oInN0b3JlIikKLSAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJz
dG9yZSIpCi0gICAgICAgICAgICAgICAgICAgIC5nZXQoMSkKLSAgICAgICAgICAgICAgICAgICAg
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoZS50YXJnZXQucmVzdWx0IGluc3RhbmNlb2YgX2luc3Rh
bmNlb2YsICJpbnN0YW5jZW9mIikKLSAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9OwotfQotCi12YWx1ZShuZXcgRGF0ZSgpLCBEYXRl
KTsKLXZhbHVlKG5ldyBBcnJheSgpLCBBcnJheSk7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi92YWx1ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLmh0
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBlODNiNjgwYzYwMWM0N2JmNjFiNTQ2
Y2E3YmY4NTlmZThiNmQzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLmh0bQorKysg
L2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPlZhbHVlczwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LWZ1bmN0aW9uIHZhbHVlKHZhbHVlLCBfaW5zdGFuY2VvZikgewotICAgIHZhciB0ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgX2luc3RhbmNlb2YubmFtZSk7Ci0gICAgdC5z
dGVwKGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIF9p
bnN0YW5jZW9mLCAiVEVTVCBFUlJPUiwgaW5zdGFuY2VvZiIpOwotICAgIH0pOwotCi0gICAgY3Jl
YXRlZGIodCkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBlLnRhcmdl
dC5yZXN1bHQKLSAgICAgICAgICAgICAgICAuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKLSAg
ICAgICAgICAgICAgICAuYWRkKHZhbHVlLCAxKTsKLQotICAgICAgICBlLnRhcmdldC5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBlLnRhcmdldC5yZXN1
bHQKLSAgICAgICAgICAgICAgICAgICAgLnRyYW5zYWN0aW9uKCJzdG9yZSIpCi0gICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgICAgICAgICAgICAuZ2V0
KDEpCi0gICAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGUudGFyZ2V0
LnJlc3VsdCBpbnN0YW5jZW9mIF9pbnN0YW5jZW9mLCAiaW5zdGFuY2VvZiIpCi0gICAgICAgICAg
ICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLX0K
LQotdmFsdWUobmV3IERhdGUoKSwgRGF0ZSk7Ci12YWx1ZShuZXcgQXJyYXkoKSwgQXJyYXkpOwot
Ci08L3NjcmlwdD4KLQotPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk1N2U3ZWY5N2NhYzcwZjYw
NDkyNmUxNjgyOGI3ZmYyMjFjMWY3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlX3Jl
Y3Vyc2l2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFT
UyBSZWN1cnNpdmUgdmFsdWUgLSBhcnJheSBkaXJlY3RseSBjb250YWlucyBzZWxmIAotUEFTUyBS
ZWN1cnNpdmUgdmFsdWUgLSBhcnJheSBpbmRpcmVjdGx5IGNvbnRhaW5zIHNlbGYgCi1QQVNTIFJl
Y3Vyc2l2ZSB2YWx1ZSAtIGFycmF5IG1lbWJlciBjb250YWlucyBzZWxmIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS1wcml2
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFs
dWVfcmVjdXJzaXZlLXByaXZhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlOTU3ZTdlZjk3Y2FjNzBmNjA0OTI2ZTE2ODI4YjdmZjIyMWMxZjcwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLXByaXZhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJy
YXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZiAKLVBBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkg
aW5kaXJlY3RseSBjb250YWlucyBzZWxmIAotUEFTUyBSZWN1cnNpdmUgdmFsdWUgLSBhcnJheSBt
ZW1iZXIgY29udGFpbnMgc2VsZiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi92YWx1ZV9yZWN1cnNpdmUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZV9yZWN1cnNpdmUtcHJpdmF0ZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDQ2YWVhMmI0Y2I5MDdmOWM1NTBmODMyNjY0OTk4
NTgwYmNhMjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLXByaXZh
dGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlJlY3Vyc2l2ZSB2YWx1ZTwvdGl0bGU+Ci08
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIHJlY3Vyc2l2ZV92YWx1ZShkZXNjLCB2YWx1
ZSkgewotICAgIHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiAr
IGRlc2MpOwotCi0gICAgY3JlYXRlZGIodCkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
ewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAotICAgICAgICBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiKQotICAgICAgICAgIC5hZGQodmFsdWUsIDEpOwotCi0gICAgICAgIGUudGFy
Z2V0Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRi
LnRyYW5zYWN0aW9uKCdzdG9yZScpCi0gICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgnc3RvcmUn
KQotICAgICAgICAgICAgICAuZ2V0KDEpCi0gICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKQotICAgICAgICAgICAgewotCi0gICAgICAgICAgICAgICAgdHJ5
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB2YXIgZnJlc2hfdmFsdWUg
PSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIlRlc3RjYXNlIGlzIHdyaXR0ZW4gd3JvbmdseSwgbXVzdCBzdXBwbHkgc29tZXRoaW5n
IHJlY3Vyc2l2ZSAodGhhdCBKU09OIHdvbid0IHN0cmluZ2lmeSkuIik7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGNhdGNoIChlKQotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKGUubmFtZSA9PSAnVHlwZUVycm9yJykKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgdHJ5Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZS50YXJn
ZXQucmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCJFeHBlY3RlZCBhIG5vbi1KU09OLXNlcmlhbGl6YWJsZSB2YWx1ZSBiYWNrLCBkaWRuJ3QgZ2V0
IHRoYXQuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjYXRjaCAoZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfTsK
LX0KLQotdmFyIHJlY3Vyc2l2ZSA9IFtdOwotcmVjdXJzaXZlLnB1c2gocmVjdXJzaXZlKTsKLXJl
Y3Vyc2l2ZV92YWx1ZSgnYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZSk7
Ci0KLXZhciByZWN1cnNpdmUyID0gW107Ci1yZWN1cnNpdmUyLnB1c2goW3JlY3Vyc2l2ZTJdKTsK
LXJlY3Vyc2l2ZV92YWx1ZSgnYXJyYXkgaW5kaXJlY3RseSBjb250YWlucyBzZWxmJywgcmVjdXJz
aXZlMik7Ci0KLXZhciByZWN1cnNpdmUzID0gW3JlY3Vyc2l2ZV07Ci1yZWN1cnNpdmVfdmFsdWUo
J2FycmF5IG1lbWJlciBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlMyk7Ci0KLTwvc2NyaXB0Pgot
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi92YWx1ZV9yZWN1cnNpdmUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi92YWx1ZV9yZWN1cnNpdmUuaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NDQ2YWVhMmI0Y2I5MDdmOWM1NTBmODMyNjY0OTk4NTgwYmNhMjNiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLmh0bQorKysgL2Rldi9udWxsCkBAIC0x
LDY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPlJlY3Vyc2l2ZSB2YWx1ZTwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0
aW9uIHJlY3Vyc2l2ZV92YWx1ZShkZXNjLCB2YWx1ZSkgewotICAgIHZhciBkYiwgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOwotCi0gICAgY3JlYXRlZGIodCku
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdAotICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQotICAgICAgICAgIC5h
ZGQodmFsdWUsIDEpOwotCi0gICAgICAgIGUudGFyZ2V0Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpCi0gICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgnc3RvcmUnKQotICAgICAgICAgICAgICAuZ2V0KDEpCi0g
ICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKQotICAgICAg
ICAgICAgewotCi0gICAgICAgICAgICAgICAgdHJ5Ci0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB2YXIgZnJlc2hfdmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlRlc3RjYXNlIGlzIHdyaXR0ZW4g
d3JvbmdseSwgbXVzdCBzdXBwbHkgc29tZXRoaW5nIHJlY3Vyc2l2ZSAodGhhdCBKU09OIHdvbid0
IHN0cmluZ2lmeSkuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhdGNo
IChlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGUubmFtZSA9
PSAnVHlwZUVycm9yJykKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgdHJ5Ci0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZS50YXJnZXQucmVzdWx0KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJFeHBlY3RlZCBhIG5vbi1KU09OLXNlcmlh
bGl6YWJsZSB2YWx1ZSBiYWNrLCBkaWRuJ3QgZ2V0IHRoYXQuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLX0KLQotdmFyIHJlY3Vyc2l2ZSA9IFtdOwot
cmVjdXJzaXZlLnB1c2gocmVjdXJzaXZlKTsKLXJlY3Vyc2l2ZV92YWx1ZSgnYXJyYXkgZGlyZWN0
bHkgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZSk7Ci0KLXZhciByZWN1cnNpdmUyID0gW107Ci1y
ZWN1cnNpdmUyLnB1c2goW3JlY3Vyc2l2ZTJdKTsKLXJlY3Vyc2l2ZV92YWx1ZSgnYXJyYXkgaW5k
aXJlY3RseSBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlMik7Ci0KLXZhciByZWN1cnNpdmUzID0g
W3JlY3Vyc2l2ZV07Ci1yZWN1cnNpdmVfdmFsdWUoJ2FycmF5IG1lbWJlciBjb250YWlucyBzZWxm
JywgcmVjdXJzaXZlMyk7Ci0KLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXItc3RhcnZh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dy
aXRlci1zdGFydmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjQ2MTAxMTgzMDBjY2Y0ZmUyNTY1ODAxYTM0MGQ5ZGU2MGNjM2E1Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFdyaXRlciBzdGFydmF0aW9uIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93
cml0ZXItc3RhcnZhdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjQ2MTAxMTgzMDBjY2Y0ZmUyNTY1ODAxYTM0MGQ5ZGU2MGNjM2E1Yy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLXByaXZhdGUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgV3JpdGVyIHN0YXJ2YXRp
b24gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvd3Jp
dGVyLXN0YXJ2YXRpb24tcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1wcml2YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDVkYTZkY2I3MGQ0Zjk0OGFjNjUwMjRmNTc4NjBlNjY3OGQ4MTM4OWMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1wcml2YXRlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PXV0Zi04PgotPHRpdGxlPldyaXRlciBzdGFydmF0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Ci08bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGRiLCBy
ZWFkX3JlcXVlc3RfY291bnQgPSAwLCByZWFkX3N1Y2Nlc3NfY291bnQgPSAwOwotICAgIHZhciB3
cml0ZV9yZXF1ZXN0X2NvdW50ID0gMCwgd3JpdGVfc3VjY2Vzc19jb3VudCA9IDA7Ci0gICAgdmFy
IFJRX0NPVU5UID0gMjU7Ci0KLSAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3Qo
dW5kZWZpbmVkLCB7dGltZW91dDogMjAwMDB9KSk7Ci0gICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OwotICAgICAg
ICBkYi5jcmVhdGVPYmplY3RTdG9yZSgicyIpCi0gICAgICAgICAgLmFkZCgiMSIsIDEpOwotICAg
IH0KLQotICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIg
aSA9IDAsIGNvbnRpbnVlX3JlYWRpbmcgPSB0cnVlOwotCi0gICAgICAgIC8qIFByZS1maWxsIHNv
bWUgcmVhZCByZXF1ZXN0cyAqLwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgUlFfQ09VTlQ7IGkr
KykKLSAgICAgICAgewotICAgICAgICAgICAgcmVhZF9yZXF1ZXN0X2NvdW50Kys7Ci0KLSAgICAg
ICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzIikKLSAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJz
IikKLSAgICAgICAgICAgICAgLmdldCgxKQotICAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICByZWFkX3N1Y2Nl
c3NfY291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC50
cmFuc2FjdGlvbi5tb2RlLCAicmVhZG9ubHkiKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgfQotCi0gICAgICAgIHRoaXMuc3RlcChsb29wKTsKLQotICAgICAgICBmdW5jdGlvbiBsb29w
KCkgewotICAgICAgICAgICAgcmVhZF9yZXF1ZXN0X2NvdW50Kys7Ci0KLSAgICAgICAgICAgIGRi
LnRyYW5zYWN0aW9uKCJzIikKLSAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzIikKLSAgICAg
ICAgICAgICAgLmdldCgxKQotICAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZWFkX3N1Y2Nl
c3NfY291bnQrKzsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnRyYW5z
YWN0aW9uLm1vZGUsICJyZWFkb25seSIpOwotCi0gICAgICAgICAgICAgICAgaWYgKHJlYWRfc3Vj
Y2Vzc19jb3VudCA+PSBSUV9DT1VOVCAmJiB3cml0ZV9yZXF1ZXN0X2NvdW50ID09IDApCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB3cml0ZV9yZXF1ZXN0X2NvdW50Kys7
Ci0KLSAgICAgICAgICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiLCAicmVhZHdyaXRlIikK
LSAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInMiKQotICAgICAgICAgICAgICAg
ICAgICAgIC5hZGQoIndyaXR0ZW4iLCByZWFkX3JlcXVlc3RfY291bnQpCi0gICAgICAgICAgICAg
ICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlX3N1Y2Nlc3NfY291
bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQudHJh
bnNhY3Rpb24ubW9kZSwgInJlYWR3cml0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHJlYWRfc3VjY2Vzc19jb3VudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cml0ZSBjYiBjYW1lIGJlZm9yZSBsYXRl
ciByZWFkIGNiJ3MiKQotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAg
ICAgICAvKiBSZWFkcyBkb25lIGFmdGVyIHRoZSB3cml0ZSAqLwotICAgICAgICAgICAgICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICByZWFkX3JlcXVlc3RfY291bnQrKzsKLQotICAgICAgICAgICAgICAg
ICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInMiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KDEpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKQotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYWRfc3VjY2Vzc19jb3VudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsK
LQotICAgICAgICAgICAgaWYgKHJlYWRfc3VjY2Vzc19jb3VudCA8IFJRX0NPVU5UICsgNSkKLSAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc3RlcF9mdW5jKGxvb3ApLCB3cml0ZV9yZXF1
ZXN0X2NvdW50ID8gMTAwMCA6IDEwMCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgLy8gVGhpcyBpcyBtZXJlbHkgYSAibmljZSIgaGFjayB0byBydW4gZmluaXNoIGFmdGVyIHRo
ZSBsYXN0IHJlcXVlc3QgaXMgZG9uZQotICAgICAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJz
IikKLSAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgicyIpCi0gICAgICAgICAgICAgICAg
ICAuY291bnQoKQotICAgICAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQodGhpcy5zdGVwX2Z1bmMoZmluaXNoKSwgMTAwKTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQotICAgIH0KLQotCi1mdW5jdGlvbiBmaW5pc2goKSB7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhyZWFkX3JlcXVlc3RfY291bnQsIHJlYWRfc3VjY2Vzc19jb3VudCwgInJlYWQgY291bnRz
Iik7Ci0gICAgYXNzZXJ0X2VxdWFscyh3cml0ZV9yZXF1ZXN0X2NvdW50LCB3cml0ZV9zdWNjZXNz
X2NvdW50LCAid3JpdGUgY291bnRzIik7Ci0gICAgdGhpcy5kb25lKCk7Ci19Ci08L3NjcmlwdD4K
LQotPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvd3JpdGVyLXN0YXJ2YXRpb24uaHRtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1ZGE2ZGNiNzBkNGY5NDhhYzY1MDI0ZjU3ODYwZTY2NzhkODEzODljLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvd3JpdGVyLXN0YXJ2YXRpb24uaHRtCisrKyAvZGV2L251bGwK
QEAgLTEsMTA1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4K
LTx0aXRsZT5Xcml0ZXIgc3RhcnZhdGlvbjwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgot
PG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAgIHZhciBkYiwgcmVhZF9yZXF1ZXN0
X2NvdW50ID0gMCwgcmVhZF9zdWNjZXNzX2NvdW50ID0gMDsKLSAgICB2YXIgd3JpdGVfcmVxdWVz
dF9jb3VudCA9IDAsIHdyaXRlX3N1Y2Nlc3NfY291bnQgPSAwOwotICAgIHZhciBSUV9DT1VOVCA9
IDI1OwotCi0gICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KHVuZGVmaW5lZCwg
e3RpbWVvdXQ6IDIwMDAwfSkpOwotICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgewotICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInMiKQotICAgICAgICAgIC5hZGQoIjEiLCAxKTsKLSAgICB9Ci0KLSAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIGkgPSAwLCBjb250
aW51ZV9yZWFkaW5nID0gdHJ1ZTsKLQotICAgICAgICAvKiBQcmUtZmlsbCBzb21lIHJlYWQgcmVx
dWVzdHMgKi8KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IFJRX0NPVU5UOyBpKyspCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJlYWRfcmVxdWVzdF9jb3VudCsrOwotCi0gICAgICAgICAgICBkYi50
cmFuc2FjdGlvbigicyIpCi0gICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgicyIpCi0gICAgICAg
ICAgICAgIC5nZXQoMSkKLSAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVhZF9zdWNjZXNzX2NvdW50Kys7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQudHJhbnNhY3Rpb24u
bW9kZSwgInJlYWRvbmx5Iik7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICB0aGlzLnN0ZXAobG9vcCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9vcCgpIHsKLSAgICAg
ICAgICAgIHJlYWRfcmVxdWVzdF9jb3VudCsrOwotCi0gICAgICAgICAgICBkYi50cmFuc2FjdGlv
bigicyIpCi0gICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgicyIpCi0gICAgICAgICAgICAgIC5n
ZXQoMSkKLSAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmVhZF9zdWNjZXNzX2NvdW50Kys7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC50cmFuc2FjdGlvbi5tb2Rl
LCAicmVhZG9ubHkiKTsKLQotICAgICAgICAgICAgICAgIGlmIChyZWFkX3N1Y2Nlc3NfY291bnQg
Pj0gUlFfQ09VTlQgJiYgd3JpdGVfcmVxdWVzdF9jb3VudCA9PSAwKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgd3JpdGVfcmVxdWVzdF9jb3VudCsrOwotCi0gICAgICAg
ICAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzIiwgInJlYWR3cml0ZSIpCi0gICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzIikKLSAgICAgICAgICAgICAgICAgICAgICAuYWRk
KCJ3cml0dGVuIiwgcmVhZF9yZXF1ZXN0X2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgIC5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZV9zdWNjZXNzX2NvdW50Kys7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnRyYW5zYWN0aW9uLm1v
ZGUsICJyZWFkd3JpdGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LCByZWFkX3N1Y2Nlc3NfY291bnQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAid3JpdGUgY2IgY2FtZSBiZWZvcmUgbGF0ZXIgcmVhZCBjYidz
IikKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLyogUmVh
ZHMgZG9uZSBhZnRlciB0aGUgd3JpdGUgKi8KLSAgICAgICAgICAgICAgICAgICAgZm9yIChpID0g
MDsgaSA8IDU7IGkrKykKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhZF9yZXF1ZXN0X2NvdW50Kys7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGRi
LnRyYW5zYWN0aW9uKCJzIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJzIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgxKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3N1
Y2Nlc3NfY291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICAgIGlmIChyZWFkX3N1Y2Nlc3NfY291bnQgPCBSUV9DT1VOVCArIDUpCi0gICAgICAgICAgICAg
ICAgc2V0VGltZW91dCh0aGlzLnN0ZXBfZnVuYyhsb29wKSwgd3JpdGVfcmVxdWVzdF9jb3VudCA/
IDEwMDAgOiAxMDApOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgbWVyZWx5IGEgIm5pY2UiIGhhY2sgdG8gcnVuIGZpbmlzaCBhZnRlciB0aGUgbGFzdCByZXF1
ZXN0IGlzIGRvbmUKLSAgICAgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigicyIpCi0gICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInMiKQotICAgICAgICAgICAgICAgICAgLmNvdW50KCkK
LSAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbigp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMu
c3RlcF9mdW5jKGZpbmlzaCksIDEwMCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLQotZnVuY3Rpb24gZmluaXNoKCkgewotICAgIGFzc2VydF9lcXVhbHMocmVhZF9y
ZXF1ZXN0X2NvdW50LCByZWFkX3N1Y2Nlc3NfY291bnQsICJyZWFkIGNvdW50cyIpOwotICAgIGFz
c2VydF9lcXVhbHMod3JpdGVfcmVxdWVzdF9jb3VudCwgd3JpdGVfc3VjY2Vzc19jb3VudCwgIndy
aXRlIGNvdW50cyIpOwotICAgIHRoaXMuZG9uZSgpOwotfQotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9JbXBvcnRFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L0ltcG9ydEV4cGVjdGF0aW9ucwppbmRleCAyNzRkYjEzYjVlNzFkNTk3MDI0ODZhNmRlZjQxMmMz
MzZmMTgwYjE2Li5iZDJhNmQzNWIzOTA4MzAxZWE5MTc0MDk1MWUzNDYzOGZkM2UwM2UzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL0ltcG9ydEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL0ltcG9ydEV4cGVj
dGF0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBjc3N3Zy10ZXN0cy92ZW5kb3ItaW1wb3J0cyBbIFNr
aXAgXQogd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dCBbIFNraXAgXQogd2ViLXBsYXRmb3Jt
LXRlc3RzL0RPTUV2ZW50cyBbIFNraXAgXQogd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkgWyBT
a2lwIF0KLXdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIgWyBTa2lwIF0KKyN3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCIFsgUGFzcyBdCiB3ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRv
QVBJIFsgU2tpcCBdCiB3ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURMIFsgU2tpcCBdCiAjd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0IFsgSW1wb3J0IF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWlu
LWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9hYm9ydC1pbi1pbml0aWFsLXVwZ3Jh
ZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZjRmZGI1NDcwMzI4MzlkYzZlNzYx
NWVkMTVhNjMxZGUwNzcxYzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9hYm9ydC1pbi1pbml0aWFsLXVwZ3Jh
ZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3QgdGhhdCBh
biBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRv
IDAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQt
aW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY2YjYxOWNhNjRiM2Fj
ZmQ0ZDA3NTczYWMyN2RhMTQ1OThmZTZiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRp
YWwtdXBncmFkZW5lZWRlZC5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhZG9jdHlwZSBodG1sPgor
PCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgorPHRpdGxlPlRlc3QgdGhhdCBh
biBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRlbmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRv
IDA8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisKK3ZhciBkYiwgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5k
ZWZpbmVkLCAyKTsKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAy
KTsKKyAgICB0cmFuc2FjdGlvbiA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIHRyYW5zYWN0aW9uLmNvbXBs
ZXRlIik7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5kYi52ZXJzaW9uLCAwKTsKKyAgICB9CisgICAgZGIub25h
Ym9ydCA9IGZ1bmN0aW9uKCkge30KKworICAgIHRyYW5zYWN0aW9uLmFib3J0KCk7Cit9CisKK29w
ZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEs
IGUudGFyZ2V0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVk
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJBYm9ydEVycm9yIik7
CisgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9w
ZW5fcnEudHJhbnNhY3Rpb24sIG51bGwpOworICAgIHRoaXMuZG9uZSgpOworfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MGU3MmJkNThiYjg4ZTBiM2VlYWQzODdjOTc3OGU3Y2JkNTZlMWUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgV2hlbiBkYi5jbG9zZSBpcyBjYWxsZWQgaW4gdXBncmFkZW5lZWRlZCwgdGhlIGRiIGlz
IGNsZWFuZWQgdXAgb24gcmVmcmVzaCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY2xvc2UtaW4tdXBncmFkZW5lZWRl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMDBiNGU4NTZm
YzM0NjU4MDU5YWZjZmViMzgxNTMxYjI4YmQxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9jbG9zZS1pbi11
cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0t
IFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8dGl0bGU+V2hlbiBkYi5jbG9zZSBp
cyBjYWxsZWQgaW4gdXBncmFkZW5lZWRlZCwgdGhlIGRiIGlzIGNsZWFuZWQgdXAgb24gcmVmcmVz
aDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKwordmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCkpCit2YXIgc2F3
VHJhbnNhY3Rpb25Db21wbGV0ZSA9IGZhbHNlCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgYXNzZXJ0X2VxdWFs
cyhkYi52ZXJzaW9uLCAxKQorCisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29zJykKKyAgICBk
Yi5jbG9zZSgpCisKKyAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rp
b24oKSB7IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlIH0KK30KKworb3Blbl9ycS5vbmVy
cm9yID0gZnVuY3Rpb24oZSkgeworICAgIGFzc2VydF90cnVlKHNhd1RyYW5zYWN0aW9uQ29tcGxl
dGUsICJzYXcgdHJhbnNhY3Rpb24uY29tcGxldGUiKQorCisgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5lcnJvci5uYW1lLCAnQWJvcnRFcnJvcicpCisgICAgYXNzZXJ0X2VxdWFscyhlLnJlc3Vs
dCwgdW5kZWZpbmVkKQorCisgICAgYXNzZXJ0X3RydWUoISFkYikKKyAgICBhc3NlcnRfZXF1YWxz
KGRiLnZlcnNpb24sIDEpCisgICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzLmxl
bmd0aCwgMSkKKyAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9u
KCkgeyBkYi50cmFuc2FjdGlvbignb3MnKSB9KQorCisgICAgdGhpcy5kb25lKCkKK30KKworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fkcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzg5
OTlhMGJjZGU3MWVkMDc0MTIyZjgyZTA3MDAzZDZjOGFiOGExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY3Vy
c29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVmFsaWRh
dGUgdGhlIG92ZXJsb2FkcyBvZiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCksIElEQkluZGV4
Lm9wZW5DdXJzb3IoKSBhbmQgSURCSW5kZXgub3BlbktleUN1cnNvcigpIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9j
dXJzb3Itb3ZlcmxvYWRzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2N1cnNvci1vdmVybG9hZHMuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YjE2
OWIwMjA4ZDE3YmM0YmRkMWE5YjUyNmY2NGM5MjczNjg0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9jdXJz
b3Itb3ZlcmxvYWRzLmh0bQpAQCAtMCwwICsxLDg4IEBACis8IS0tCitUZXN0IGNvbnZlcnRlZCBm
cm9tIFdlYktpdDoKK2h0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLmh0bWwKKy0tPgorCis8IURP
Q1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+VmFsaWRhdGUgdGhlIG92ZXJsb2FkcyBvZiBJREJPYmpl
Y3RTdG9yZS5vcGVuQ3Vyc29yKCksIElEQkluZGV4Lm9wZW5DdXJzb3IoKSBhbmQgSURCSW5kZXgu
b3BlbktleUN1cnNvcigpPC90aXRsZT4KKzxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOnJv
bWFpbi5odWV0QGdtYWlsLmNvbSIgdGl0bGU9IlJvbWFpbiBIdWV0Ij4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIs
IHRyYW5zLCBzdG9yZSwgaW5kZXg7CisgICAgdmFyIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2
YXIgcmVxdWVzdCA9IGNyZWF0ZWRiKHQpOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICBzdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOworICAgICAgICBpbmRleCA9IHN0b3Jl
LmNyZWF0ZUluZGV4KCdpbmRleCcsICd2YWx1ZScpOworICAgICAgICBzdG9yZS5wdXQoe3ZhbHVl
OiAwfSwgMCk7CisgICAgICAgIHRyYW5zID0gcmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICAgICAg
dHJhbnMub25jb21wbGV0ZSA9IHZlcmlmeU92ZXJsb2FkczsKKyAgICB9OworCisgICAgZnVuY3Rp
b24gdmVyaWZ5T3ZlcmxvYWRzKCkgeworICAgICAgICB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZScpOworICAgICAgICBzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpOworICAg
ICAgICBpbmRleCA9IHN0b3JlLmluZGV4KCdpbmRleCcpOworCisgICAgICAgIGNoZWNrQ3Vyc29y
RGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKCkiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1
cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwKSIsICJuZXh0Iik7CisgICAgICAgIGNo
ZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAibmV4dCIp
OworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwLCAnbmV4
dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24o
InN0b3JlLm9wZW5DdXJzb3IoMCwgJ3ByZXYnKSIsICJwcmV2Iik7CisgICAgICAgIGNoZWNrQ3Vy
c29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAsICdwcmV2dW5pcXVlJykiLCAicHJldnVu
aXF1ZSIpOworCisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29y
KElEQktleVJhbmdlLm9ubHkoMCkpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJl
Y3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJu
ZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKElE
QktleVJhbmdlLm9ubHkoMCksICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOworICAgICAg
ICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5
KDApLCAncHJldicpIiwgInByZXYiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0
b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2
dW5pcXVlIik7CisKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJz
b3IoKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVu
Q3Vyc29yKDApIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4
Lm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGly
ZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKDAsICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIp
OworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcigwLCAncHJl
dicpIiwgInByZXYiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5D
dXJzb3IoMCwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7CisKKyAgICAgICAgY2hlY2tD
dXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAi
bmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJ
REJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJz
b3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHR1
bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJp
bmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2JykiLCAicHJldiIpOwor
ICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5n
ZS5vbmx5KDApLCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsKKworICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigpIiwgIm5leHQiKTsKKyAgICAg
ICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoMCkiLCAibmV4dCIp
OworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigwLCAn
bmV4dCcpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9w
ZW5LZXlDdXJzb3IoMCwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7CisgICAgICAgIGNo
ZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKDAsICdwcmV2JykiLCAicHJl
diIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigw
LCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsKKworICAgICAgICBjaGVja0N1cnNvckRp
cmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApKSIsICJuZXh0
Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElE
QktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNv
ckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4
dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24o
ImluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXYnKSIsICJwcmV2
Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElE
QktleVJhbmdlLm9ubHkoMCksICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOworCisgICAg
ICAgIHQuZG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ3Vyc29yRGlyZWN0aW9u
KHN0YXRlbWVudCwgZGlyZWN0aW9uKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsKHN0YXRlbWVu
dCk7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGV2ZW50LnRhcmdldC5yZXN1bHQsIG51bGwsICJDaGVj
ayB0aGUgcmVzdWx0IGlzIG5vdCBudWxsIikKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZl
bnQudGFyZ2V0LnJlc3VsdC5kaXJlY3Rpb24sIGRpcmVjdGlvbiwgIkNoZWNrIHRoZSByZXN1bHQg
ZGlyZWN0aW9uIik7CisgICAgICAgIH07CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD1s
b2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJfd2Vid29ya2Vycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJfd2Vid29y
a2Vycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJhOWYwMTdiY2I5ZGU2MjMxMGM2MzAyNjRj
YjIxMzg0MzhhNzM2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYl93ZWJ3b3JrZXJzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJbmRleGVkREIgaW5zaWRlIG9mIGEgV2ViV29ya2Vy
ICBhc3NlcnRfZXF1YWxzOiB3b3JrZXIgaGFzIGlkYiBvYmplY3QgZXhwZWN0ZWQgdHJ1ZSBidXQg
Z290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYl93ZWJ3b3JrZXJzLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYl93ZWJ3b3JrZXJzLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYjJmYWZmMGJlMmRlNTdhMGU2YmU1YTA1OGJmNDM5ODQ3Y2RiMDVjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiX3dlYndvcmtlcnMuaHRtCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPkluZGV4ZWREQiBpbnNpZGUgb2YgYSBXZWJXb3JrZXIgPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCk7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB3b3JrZXIg
PSBuZXcgV29ya2VyKCJpZGJ3b3JrZXIuanMiKTsKKyAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsK
KyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS5kYXRhLCB0cnVlLCAnd29ya2VyIGhhcyBpZGIgb2JqZWN0JykKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICJ0ZXN0IiwgImdldCgxKSBpbiB3b3JrZXIiKQorICAg
ICAgICAgICAgICAgICAgICB0LmRvbmUoKQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBj
b3VudCsrCisgICAgICAgIH0pOworCisgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgxKTsKKyAg
ICB9KQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1hZHZhbmNl
LWNvbnRpbnVlLWFzeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzA0ZWE2ODYzYmIyNDY2
NDgwYmUwMGY2ZThiYmY2MGZjYTg4MzZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFu
Y2UtY29udGludWUtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIElE
QkN1cnNvciBhc3luY25lc3MgLSBhZHZhbmNlIAorUEFTUyBJREJDdXJzb3IgYXN5bmNuZXNzIC0g
Y29udGludWUgCitQQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBmcmVzaCBhZHZhbmNlIHN0aWxs
IGFzeW5jIAorUEFTUyBJREJDdXJzb3IgYXN5bmNuZXNzIC0gZnJlc2ggY29udGludWUgc3RpbGwg
YXN5bmMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTRlZDllZjFm
YzkxNzliZmFkN2RlNGExOTQ4MDYzYzE0NWY0ZmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
LWFkdmFuY2UtY29udGludWUtYXN5bmMuaHRtCkBAIC0wLDAgKzEsMTg2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJDdXJzb3IgYXN5bmNuZXNzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCisgICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRp
bWUoKSk7CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEi
LCAgMSk7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7CisgICAgICAgIH07
CisgICAgfSwKKyAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25z
dWNjZXNzID0gZnVuY3Rpb24oKSB7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtIGFkdmFuY2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
b3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9i
amVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFl
LnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3Vu
dCwgMiwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2go
Y291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnNvci5hZHZhbmNlKDEpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK
KworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAg
IGN1cnNvci5hZHZhbmNlKDEpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLmtleSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAg
IH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBjb250aW51
ZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3Qi
KS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChj
b3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAgICJkYXRhIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoImRhdGEyIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJk
YXRhMiIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXks
ICAgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIDIpCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJk
YXRhMiIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXks
ICAgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIDIpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpCisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsK
KworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gZnJlc2ggYWR2YW5j
ZSBzdGlsbCBhc3luYyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50
ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0
U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAg
IHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25l
KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAg
ICBjdXJzb3IuYWR2YW5jZSgxKQorCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhMiIpCisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEyIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDIp
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVj
dGVkIGNvdW50OiAiICsgY291bnQpCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZh
aWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gZnJlc2ggY29udGludWUgc3RpbGwgYXN5bmMi
KS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iiku
b3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgJ2NvdW50Jyk7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCkKKworICAgICAg
ICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEi
KQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwg
ImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtl
eSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVu
ZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9y
ID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisgICAgICAg
IC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAg
IGRvbmUoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMzIzMzE1MTZiNzU4MzY4NmQ5MzY4NDM1NTM0OTUzZmJlNDIy
ODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOCBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBhZHZhbmNlcyAKK1BBU1Mg
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGFkdmFuY2VzIGJhY2t3YXJkcyAKK1BBU1MgSURCQ3Vyc29y
LmFkdmFuY2UoKSAtIHNraXAgZmFyIGZvcndhcmQgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkg
LSB3aXRoaW4gcmFuZ2UgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSB3aXRoaW4gc2luZ2xl
IGtleSByYW5nZSAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHdpdGhpbiBzaW5nbGUga2V5
IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFu
Y2UtaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43OTE2YjU3N2E5NGYxYWJlZWQxMTA3MGQ1MmI3ODg0NGRlZWRiZGE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw4IEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBh
dHRlbXB0IHRvIGNhbGwgYWR2YW5jZSB0d2ljZSAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAt
IGludmFsaWQgLSBwYXNzIHNvbWV0aGluZyBvdGhlciB0aGFuIG51bWJlciAKK1BBU1MgSURCQ3Vy
c29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBwYXNzIG51bGwvdW5kZWZpbmVkIAorUEFTUyBJREJD
dXJzb3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIG1pc3NpbmcgYXJndW1lbnQgCitQQVNTIElEQkN1
cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0gcGFzcyBuZWdhdGl2ZSBudW1iZXJzIAorUEFTUyBJ
REJDdXJzb3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIGdvdCB2YWx1ZSBub3Qgc2V0IG9uIGV4Y2Vw
dGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3It
YWR2YW5jZS1pbnZhbGlkLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjUwNGI5ZTQxZTY4OTkyZTcwYjYxMWE1
YWQyOTY0OGJhNGYxNjc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxp
ZC5odG0KQEAgLTAsMCArMSwxODggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNv
ci5hZHZhbmNlKCkgLSBpbnZhbGlkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGlu
ayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1s
b25nLWNvdW50Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSB2YWx1ZSBmb3IgY291
bnQgaXMgMCAoemVybykgb3IgYSBuZWdhdGl2ZSBudW1iZXIsIHRoaXMgbWV0aG9kIG11c3QgdGhy
b3cgYSBKYXZhU2NyaXB0IFR5cGVFcnJvciBleGNlcHRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IlR5cGVFcnJvciBUaGUgdmFsdWUgcGFzc2VkIGludG8gdGhlIGNvdW50IHBhcmFtZXRl
ciB3YXMgemVybyBvciBhIG5lZ2F0aXZlIG51bWJlci4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iSW52YWxpZFN0YXRlRXJyb3IgVGhlIGN1cnNvciBpcyBjdXJyZW50bHkgYmVpbmcgaXRlcmF0
ZWQsIG9yIGhhcyBpdGVyYXRlZCBwYXN0IGl0cyBlbmQuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IkNhbGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0aGFuIG9uY2UgYmVmb3JlIG5ldyBjdXJzb3Ig
ZGF0YSBoYXMgYmVlbiBsb2FkZWQgaXMgbm90IGFsbG93ZWQgYW5kIHJlc3VsdHMgaW4gYSBET01F
eGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0aHJvd24uIEZvciBleGFt
cGxlLCBjYWxsaW5nIGFkdmFuY2UoKSB0d2ljZSBmcm9tIHRoZSBzYW1lIG9uc3VjY2VzcyBoYW5k
bGVyIHJlc3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBi
ZWluZyB0aHJvd24gb24gdGhlIHNlY29uZCBjYWxsLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxl
PSJCZWZvcmUgdGhpcyBtZXRob2QgcmV0dXJucywgdW5sZXNzIGFuIGV4Y2VwdGlvbiB3YXMgdGhy
b3duLCBpdCBzZXRzIHRoZSBnb3QgdmFsdWUgZmxhZyBvbiB0aGUgY3Vyc29yIHRvIGZhbHNlLiI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCisgICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rpb24oKSB7CisgICAgICAg
IG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7
CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5k
ZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7CisgICAgICAgIH07CisgICAg
fSwKKyAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIg
LSBhdHRlbXB0IHRvIGNhbGwgYWR2YW5jZSB0d2ljZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKKworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworCisgICAgICAgICAgICAg
ICAgLy8gU2Vjb25kIHRyeQorICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRT
dGF0ZUVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKDEpOyB9LCAnc2Vjb25kIGFkdmFuY2UnKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IGN1cnNvci5hZHZhbmNlKDMpOyB9LCAndGhpcmQgYWR2YW5jZScpOworCisgICAgICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9
IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAg
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhh
biBudW1iZXIiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShkb2N1bWVu
dCk7IH0pOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSh7
fSk7IH0pOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShb
XSk7IH0pOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgi
Iik7IH0pOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJy
b3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgi
MSAyIik7IH0pOworCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9y
IikKKyAgICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
IiAtIHBhc3MgbnVsbC91bmRlZmluZWQiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRl
eCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRo
aXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6
ICJUeXBlRXJyb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
YWR2YW5jZShudWxsKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFt
ZTogIlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNv
ci5hZHZhbmNlKHVuZGVmaW5lZCk7IH0pOworCisgICAgICAgICAgICAgICAgdmFyIG15dmFyID0g
bnVsbDsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIg
fSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKG15dmFy
KTsgfSk7CisKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQor
ICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0g
bWlzc2luZyBhcmd1bWVudCIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJx
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRl
eCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KCk7IH0pOworCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikK
KyAgICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
IHBhc3MgbmVnYXRpdmUgbnVtYmVycyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4
KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC0xKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKE5hTik7IH0pOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6
ICJUeXBlRXJyb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
YWR2YW5jZSgwKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC0wKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKEluZmluaXR5KTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsg
bmFtZTogIlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1
cnNvci5hZHZhbmNlKC1JbmZpbml0eSk7IH0pOworCisgICAgICAgICAgICAgICAgdmFyIG15dmFy
ID0gLTk5OTk5OTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KG15dmFyKTsgfSk7CisKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJy
b3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gZ290IHZhbHVlIG5vdCBzZXQgb24gZXhjZXB0aW9uIikuc3RlcChmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQgcnVucyIpOworICAg
ICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UoMCk7IH0pOworCisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7
CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsK
KworCisgICAgICAgIC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVy
ZW9uCisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1hZHZhbmNlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1hZHZhbmNlLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hM2JmZDg0MGIyNmUwN2JjNDJlNmJhZTJmNDNlNWU3YjNhYmE4ZGNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWFkdmFuY2UuaHRtCkBAIC0wLDAgKzEsMjQzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4g
SMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rp
b24oKSB7CisgICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0
ZSgpLmdldFRpbWUoKSk7CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2Jq
U3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQoImN1cGNha2UiLCA1KTsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgicGFuY2FrZSIsIDMp
OyAvLyBZZXMsIGl0IGlzIGludGVuZGVkCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoInBpZSIs
ICAgICAxKTsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgicGllIiwgICAgIDQpOworICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKCJ0YWNvIiwgICAgMik7CisgICAgICAgIH07CisgICAgfSwKKyAg
ICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhZHZh
bmNlcyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAg
ICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRl
c3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNv
dW50LCAzLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRj
aChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJw
aWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1h
cnlLZXksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJzb3IudmFsdWUsICJ0YWNvIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmFkdmFuY2UoMik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJy
b3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhZHZhbmNlcyBiYWNrd2FyZHMiKS5z
dGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5k
ZXgoImluZGV4Iikub3BlbkN1cnNvcihudWxsLCAicHJldiIpOworCisgICAgICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgMywgImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBz
d2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAi
cGllIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmlt
YXJ5S2V5LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLCAiY3VwY2FrZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgNSk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAg
ICAgIGN1cnNvci5hZHZhbmNlKDIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5v
bmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisg
ICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIp
LnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAg
ICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5p
bmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisg
ICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJj
dXBjYWtlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5w
cmltYXJ5S2V5LCA1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFu
Y2UoMTAwMDAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZh
aWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHJhbmdlIikuc3RlcChmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIp
CisgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmxvd2VyQm91
bmQoImN1cGNha2UiLCB0cnVlKSk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJl
c3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291
bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBhbmNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDMpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0
ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQg
ZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUgKyAiIC0gd2l0aGluIHNpbmdsZSBrZXkgcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoInBhbmNha2UiKTsKKworICAgICAgICAgICAgcnEu
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAg
IGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY291bnQsIDEsICJjb3VudCIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAg
c3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBl
Y3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3Rl
ZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSArICIgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSwgd2l0aCBzZXZlcmFsIHJlc3VsdHMi
KS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iiku
aW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoInBpZSIp
OworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgImNvdW50Iik7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFs
dWUsICJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAg
ICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEu
b25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKwor
CisgICAgICAgIC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9u
CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1j
b250aW51ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIwOWFlMjlkY2MyZjM3MTk1MGJlZjk3
MjcxNzRhMThkMjNkMDk3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1jb250aW51ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBj
b250aW51ZXMgCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gd2l0aCBnaXZlbiBrZXkgCitQ
QVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gc2tpcCBmYXIgZm9yd2FyZCAKK1BBU1MgSURCQ3Vy
c29yLmNvbnRpbnVlKCkgLSB3aXRoaW4gcmFuZ2UgCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgp
IC0gd2l0aGluIHNpbmdsZSBrZXkgcmFuZ2UgCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0g
d2l0aGluIHNpbmdsZSBrZXkgcmFuZ2UsIHdpdGggc2V2ZXJhbCByZXN1bHRzIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3ItY29udGludWUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYWMxMjg1ODliN2FjYmRlZDE2NzM1NzEwMzVkYjVlYjI3YjVjMWFhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bQpAQCAtMCwwICsxLDI0MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVk
REIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItY29udGludWUtdm9p
ZC1hbnkta2V5Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBuZXh0IGtleSB0byBwb3Np
dGlvbiB0aGlzIGN1cnNvciBhdCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLCBvcGVuOworICAgIHZhciBzdG9y
ZSA9IFsgeyB2YWx1ZTogImN1cGNha2UiLCBrZXk6IDUgfSwKKyAgICAgICAgICAgICAgICAgIHsg
dmFsdWU6ICJwYW5jYWtlIiwga2V5OiAzIH0sCisgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAi
cGllIiwgICAgIGtleTogMSB9LAorICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogInBpZSIsICAg
ICBrZXk6IDQgfSwKKyAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJ0YWNvIiwgICAga2V5OiAy
IH0gXTsKKworICAgIHNldHVwKGZ1bmN0aW9uKCkgeworICAgICAgICBvcGVuID0gaW5kZXhlZERC
Lm9wZW4oJ3Rlc3RkYi0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpOworICAgICAgICBvcGVuLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBvcywgaTsKKyAg
ICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgb3MgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb3MuY3JlYXRlSW5kZXgoImluZGV4
IiwgIiIpOworCisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RvcmUubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICAgICAgb3MuYWRkKHN0b3JlW2ldLnZhbHVlLCBzdG9yZVtpXS5rZXkpOwor
ICAgICAgICB9OworICAgIH0sCisgICAgeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOworCisKKyAg
ICBvcGVuLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworCisKKyAgICAgICAgYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSArICIgLSBjb250aW51ZXMiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlv
bigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigp
OworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgNSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgc3RvcmVbY291
bnRdLnZhbHVlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5
S2V5LCBzdG9yZVtjb3VudF0ua2V5KTsKKworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOworCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAg
ICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aCBn
aXZlbiBrZXkiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7
CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3Jl
KCJ0ZXN0IikuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgMywgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBz
d2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgicGllIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtl
eSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoInRhY28iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCAidGFjbyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgMik7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4
cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3Ig
PSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKworICAgICAg
ICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHNraXAgZmFyIGZvcndhcmQiKS5zdGVw
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgo
ImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAg
ICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY291bnQsIDEsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlz
LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAg
ICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiY3VwY2Fr
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFy
eUtleSwgNSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZShb
XSk7IC8vIEFycmF5cyBhcmUgYWx3YXlzIGJpZ2dlciB0aGFuIHN0cmluZ3MKKworICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBl
cnJvcjIiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUgKyAiIC0gd2l0aGluIHJhbmdlIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3Qi
KS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAg
ICAgIC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmxvd2VyQm91bmQoImN1cGNha2UiLCB0cnVlKSk7
CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1
ZSwgInBhbmNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnByaW1hcnlLZXksIDMpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLCAicGllIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgienp6Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjEiKQorICAgICAg
ICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGlu
IHNpbmdsZSBrZXkgcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
b3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9i
amVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAg
Lm9wZW5DdXJzb3IoInBhbmNha2UiKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQu
cmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICdj
b3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBjdXJzb3IuY29udGludWUoInBpZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQg
ZXJyb3IxIikKKyAgICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyIp
LnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAg
ICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5p
bmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigicGllIik7
CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1
ZSwgInBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZh
bHVlLCAicGllIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci5wcmltYXJ5S2V5LCA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVu
ZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJv
ciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IxIikKKyAgICAgICAgfSk7CisKKworICAg
ICAgICAvLyBTdG9wIGJsb2NraW5nIHRoZSB0ZXN0aW5nIHN5c3RlbSBmcm9tIGhlcmVvbgorICAg
ICAgICBkb25lKCk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVj
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNhODQ4OTdjMzNkYWM3NTYyMjI4YTA0YmQ4
MjdiMjlhMDU4OGM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSB1bmRl
ZmluZWQgCitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBuZXh0IAorUEFTUyBJREJDdXJzb3Iu
ZGlyZWN0aW9uIC0gcHJldiAKK1BBU1MgSURCQ3Vyc29yLmRpcmVjdGlvbiAtIG5leHR1bmlxdWUg
CitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBwcmV2dW5pcXVlIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3ItZGlyZWN0aW9uLWluZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24taW5k
ZXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzYmM5Yzk2MjdhMDFlMGQzYmIwNGNlMjdlOTdj
Y2JiZTFjYzNlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0g
aW5kZXggLSBuZXh0IAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBwcmV2IAor
UEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBuZXh0dW5pcXVlIAorUEFTUyBJREJD
dXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggLSBwcmV2dW5pcXVlIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rp
b24taW5kZXgta2V5cmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3OGFmMzIyNTU4Yjgx
MzJiNzQ1YTg1ZTBlZDE2OWZmOTVkYzIzY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGly
ZWN0aW9uLWluZGV4LWtleXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFT
UyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZSAtIG5leHQgCitQQVNT
IElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0gcHJldiAKK1BBU1Mg
SURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2UgLSBuZXh0dW5pcXVlIAor
UEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZSAtIHByZXZ1bmlx
dWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI5MTZjN2Q4
ODk5NDFiODJjYmQ3ZGRjYjZlYTYyN2M1MGZlOWQ3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
ci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UuaHRtCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdl
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNv
bSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRw
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2N1
cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRp
cmVjdGlvbiBpcyAibmV4dCIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0IHJlY29yZCBp
biByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRz
Jz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBz
b3VyY2UgaXMgYW4gaW5kZXgsIHRoZSByZWNvcmQncyBrZXkgaXMgZXF1YWwgdG8gcG9zaXRpb24g
YW5kIHRoZSByZWNvcmQncyB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gb2JqZWN0IHN0b3JlIHBvc2l0
aW9uIG9yIHRoZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Cis8bGlu
ayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVj
b3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRo
ZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBv
c2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gaW5kZXgsIHRoZSByZWNvcmQncyBr
ZXkgaXMgZXF1YWwgdG8gcG9zaXRpb24gYW5kIHRoZSByZWNvcmQncyB2YWx1ZSBpcyBsZXNzIHRo
YW4gb2JqZWN0IHN0b3JlIHBvc2l0aW9uIG9yIHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFu
IHBvc2l0aW9uLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiByYW5nZSBpcyBkZWZpbmVk
LCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGluIHJhbmdlLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxl
PSJJZiB0ZW1wIHJlY29yZCBpcyBkZWZpbmVkLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBmaXJz
dCByZWNvcmQgaW4gcmVjb3JkcyB3aG9zZSBrZXkgaXMgZXF1YWwgdG8gdGVtcCByZWNvcmQncyBr
ZXkuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9InJlY29yZHMgaXMgYWx3YXlzIHNvcnRlZCBp
biBhc2NlbmRpbmcga2V5IG9yZGVyLiBJbiB0aGUgY2FzZSBvZiBzb3VyY2UgYmVpbmcgYW4gaW5k
ZXgsIHJlY29yZHMgaXMgc2Vjb25kYXJpbHkgc29ydGVkIGluIGFzY2VuZGluZyB2YWx1ZSBvcmRl
ci4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgcmVjb3JkcyA9IFsgMTMzNywgIkFsaWNlIiwgIkJvYiIsICJCb2IiLCAi
R3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsKKyAgICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIs
ICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOworICAgIHZhciB0ZXN0cyA9IHt9
OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAgICB0ZXN0
c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAnICsgZGlyKTsKKyAgICB9
KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERh
dGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5y
ZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImlkeCIsICJuYW1lIik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNv
cmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgbmFtZTogcmVjb3Jk
c1tpXSB9LCBpKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIub25lcnJv
ciA9IGZhaWxfaGVscGVyKCJkYi5vbmVycm9yIik7CisKKworICAgICAgICAvLyBUaGUgdGVzdHMK
KyAgICAgICAgdGVzdGRpcignbmV4dCcsICAgICAgIFsnQWxpY2U6MScsICdCb2I6MicsICdCb2I6
MycsICdHcmVnOjQnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWc6NCcs
ICAnQm9iOjMnLCAnQm9iOjInLCAnQWxpY2U6MSddKTsKKyAgICAgICAgdGVzdGRpcignbmV4dHVu
aXF1ZScsIFsnQWxpY2U6MScsICdCb2I6MicsICdHcmVnOjQnXSk7CisgICAgICAgIHRlc3RkaXIo
J3ByZXZ1bmlxdWUnLCBbJ0dyZWc6NCcsICAnQm9iOjInLCAnQWxpY2U6MSddKTsKKworCisgICAg
ICAgIC8vIFRlc3QgZnVuY3Rpb24KKyAgICAgICAgZnVuY3Rpb24gdGVzdGRpcihkaXIsIGV4cGVj
dCkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciB0ID0gdGVz
dHNbZGlyXTsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2Jq
ZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaWR4Iikub3BlbkN1cnNvcihJREJLZXlSYW5nZS5ib3Vu
ZCgiQUEiLCAiWloiKSwgZGlyKTsKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY291bnQsIGV4cGVjdC5sZW5ndGgsICJjdXJzb3IgcnVucyIpOwor
ICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUubmFtZSArICI6IiArIGN1cnNvci5w
cmltYXJ5S2V5LCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAg
ZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJy
cS5vbmVycm9yIC0gIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
ICAgIH07CisKKyAgICAvLyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIo
bmFtZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaXJlY3Rp
b25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5z
dGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVs
cGVyKCdvcGVuX3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVs
cGVyKCdvcGVuX3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4Lmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rp
b24taW5kZXguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMDI4ZmRlN2U3ZWZjMTYyMzZlMWY5MjI3NTMwODdk
NmFjOThhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4Lmh0bQpA
QCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IgZGlyZWN0
aW9uIC0gaW5kZXg8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGlu
aG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxw
IGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2
aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgorPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmly
c3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyBy
ZXF1aXJlbWVudHMnPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVm
aW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBvYmplY3Qgc3RvcmUsIHRoZSByZWNvcmQncyBrZXkgaXMg
Z3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJl
Y3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiBy
ZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4K
KzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3Vy
Y2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGxlc3MgdGhhbiBwb3Np
dGlvbi4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidzIHBvc2l0aW9uIHRv
IGZvdW5kIHJlY29yZCdzIGtleS4gSWYgc291cmNlIGlzIGFuIGluZGV4LCBzZXQgY3Vyc29yJ3Mg
b2JqZWN0IHN0b3JlIHBvc2l0aW9uIHRvIGZvdW5kIHJlY29yZCdzIHZhbHVlLiI+Cis8bGluayBy
ZWw9YXNzZXJ0IHRpdGxlPSJTZXQgY3Vyc29yJ3Mga2V5IHRvIGZvdW5kIHJlY29yZCdzIGtleS4i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgcmVjb3JkcyA9IFsgIkFsaWNlIiwgIkJvYiIsICJCb2IiLCAiR3JlZyIgXTsK
KyAgICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJl
dnVuaXF1ZSJdOworICAgIHZhciB0ZXN0cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNo
KGZ1bmN0aW9uKGRpcikgeworICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSArICcgLSAnICsgZGlyKTsKKyAgICB9KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5k
ZXhlZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRv
bSgpKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiKTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJuYW1lIik7CisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHsgbmFtZTogcmVjb3Jkc1tpXSB9LCBpKTsKKyAgICB9OworCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgZGIub25lcnJvciA9IGZhaWxfaGVscGVyKCJkYi5vbmVycm9y
Iik7CisKKworICAgICAgICAvLyBUaGUgdGVzdHMKKyAgICAgICAgdGVzdGRpcignbmV4dCcsICAg
ICAgIFsnQWxpY2U6MCcsICdCb2I6MScsICdCb2I6MicsICdHcmVnOjMnXSk7CisgICAgICAgIHRl
c3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWc6MycsICAnQm9iOjInLCAnQm9iOjEnLCAnQWxpY2U6
MCddKTsKKyAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsnQWxpY2U6MCcsICdCb2I6MScs
ICdHcmVnOjMnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWc6MycsICAn
Qm9iOjEnLCAnQWxpY2U6MCddKTsKKworCisgICAgICAgIC8vIFRlc3QgZnVuY3Rpb24KKyAgICAg
ICAgZnVuY3Rpb24gdGVzdGRpcihkaXIsIGV4cGVjdCkgeworICAgICAgICAgICAgdmFyIGNvdW50
ID0gMDsKKyAgICAgICAgICAgIHZhciB0ID0gdGVzdHNbZGlyXTsKKyAgICAgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaWR4
Iikub3BlbkN1cnNvcih1bmRlZmluZWQsIGRpcik7CisgICAgICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3QubGVuZ3RoLCAiY3Vyc29y
IHJ1bnMiKTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLm5hbWUgKyAiOiIg
KyBjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIpOworICAg
ICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgicnEub25lcnJvciAtICIgKyBlLm1lc3NhZ2UpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICB9OworCisgICAgLy8gRmFpbCBoYW5kbGluZworICAgIGZ1bmN0aW9uIGZh
aWxfaGVscGVyKG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAgICAgICAgICAgIHRl
c3RzW2Rpcl0uc3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisgICAgb3Blbl9ycS5vbmJsb2NrZWQg
PSBmYWlsX2hlbHBlcignb3Blbl9ycS5vbmJsb2NrZWQnKTsKKyAgICBvcGVuX3JxLm9uZXJyb3Ig
PSBmYWlsX2hlbHBlcignb3Blbl9ycS5vbmVycm9yJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD1s
b2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NTYwMjhjZWY5NTY3YTg4MDc0NzE5NGQ3NGRmZDRjMzEwNDhkNzQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACisKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAt
IG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgLSBwcmV2IAor
UEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gbmV4dHVuaXF1ZSAKK1BB
U1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAtIHByZXZ1bmlxdWUgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzQzODgxYWYwNWJiMzNiYTA4OGNlYjMzMzczZGI3NGE5NDdjYzMwMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBv
YmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rp
b24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIHByZXYgCitQQVNTIElEQkN1cnNvciBk
aXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIG5leHR1bmlxdWUgCitQQVNT
IElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIHByZXZ1
bmlxdWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFu
Z2UuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWFlN2VmNTJjY2M1YmQ1NGVhZjRjMDBkY2FkMWNhYjgxMmNlMGQwYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UuaHRtCkBAIC0w
LDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24g
LSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgIm5leHQiLCBsZXQgZm91bmQg
cmVjb3JkIGJlIHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBv
ZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJ
ZiBkaXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29y
ZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1l
bnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHJhbmdlIGlzIGRlZmluZWQsIHRoZSBy
ZWNvcmQncyBrZXkgaXMgaW4gcmFuZ2UuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHJlY29yZHMgPSBbIDEzMzcsICJB
bGljZSIsICJCb2IiLCAiR3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsKKyAgICB2YXIgZGlyZWN0
aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOworICAg
IHZhciB0ZXN0cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikg
eworICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAn
ICsgZGlyKTsKKyAgICB9KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRl
c3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBv
YmpTdG9yZS5hZGQocmVjb3Jkc1tpXSwgcmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIub25lcnJvciIpOwor
CisKKyAgICAgICAgLy8gVGhlIHRlc3RzCisgICAgICAgIHRlc3RkaXIoJ25leHQnLCAgICAgICBb
J0FsaWNlJywgJ0JvYicsICdHcmVnJ10pOworICAgICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAg
WydHcmVnJywgJ0JvYicsICdBbGljZSddKTsKKyAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScs
IFsnQWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUn
LCBbJ0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOworCisKKyAgICAgICAgLy8gVGVzdCBmdW5jdGlv
bgorICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7CisgICAgICAgICAgICB2
YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJdOworICAgICAgICAg
ICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9w
ZW5DdXJzb3IoSURCS2V5UmFuZ2UuYm91bmQoIkFBIiwgIlpaIiksIGRpcik7CisgICAgICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAoIWN1
cnNvcikgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3Qu
bGVuZ3RoLCAiY3Vyc29yIHJ1bnMiKTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZh
bHVlLCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7CisgICAgICAgICAgICAgICAgY291
bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgZS5zdG9w
UHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJycS5vbmVy
cm9yIC0gIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH07
CisKKyAgICAvLyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFtZSkg
eworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaXJlY3Rpb25zLmZv
ckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5zdGVwKGZ1
bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVyKCdv
cGVuX3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVyKCdv
cGVuX3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1kaXJlY3Rp
b24tb2JqZWN0c3RvcmUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5Zjk4MTVkMGE4NTliYzYzNWRlMDA0ZThh
ZGYzYjNmZDRjMjFkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVj
dHN0b3JlLmh0bQpAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJD
dXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4K
KzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAibmV4dCIsIGxldCBmb3Vu
ZCByZWNvcmQgYmUgdGhlIGZpcnN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxs
IG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0
aGUgcmVjb3JkJ3Mga2V5IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgorPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJwcmV2IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0
aGUgbGFzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93
aW5nIHJlcXVpcmVtZW50cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBp
cyBkZWZpbmVkLCBhbmQgc291cmNlIGlzIGFuIG9iamVjdCBzdG9yZSwgdGhlIHJlY29yZCdzIGtl
eSBpcyBsZXNzIHRoYW4gcG9zaXRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlNldCBj
dXJzb3IncyBwb3NpdGlvbiB0byBmb3VuZCByZWNvcmQncyBrZXkuIElmIHNvdXJjZSBpcyBhbiBp
bmRleCwgc2V0IGN1cnNvcidzIG9iamVjdCBzdG9yZSBwb3NpdGlvbiB0byBmb3VuZCByZWNvcmQn
cyB2YWx1ZS4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iU2V0IGN1cnNvcidzIGtleSB0byBm
b3VuZCByZWNvcmQncyBrZXkuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHJlY29yZHMgPSBbICJBbGljZSIsICJCb2Ii
LCAiR3JlZyIgXTsKKyAgICB2YXIgZGlyZWN0aW9ucyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1
bmlxdWUiLCAicHJldnVuaXF1ZSJdOworICAgIHZhciB0ZXN0cyA9IHt9OworCisgICAgZGlyZWN0
aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSArICcgLSAnICsgZGlyKTsKKyAgICB9KTsKKworICAgIHZhciBv
cGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkg
KyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUgPSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMu
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSwgcmVjb3Jk
c1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBm
YWlsX2hlbHBlcigiZGIub25lcnJvciIpOworCisKKyAgICAgICAgLy8gVGhlIHRlc3RzCisgICAg
ICAgIHRlc3RkaXIoJ25leHQnLCAgICAgICBbJ0FsaWNlJywgJ0JvYicsICdHcmVnJ10pOworICAg
ICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydHcmVnJywgJ0JvYicsICdBbGljZSddKTsKKyAg
ICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsnQWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7Cisg
ICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBbJ0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOwor
CisKKyAgICAgICAgLy8gVGVzdCBmdW5jdGlvbgorICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRp
ciwgZXhwZWN0KSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFy
IHQgPSB0ZXN0c1tkaXJdOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIpOworICAg
ICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAg
aWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwg
ZXhwZWN0Lmxlbmd0aCwgImN1cnNvciBydW5zIik7CisgICAgICAgICAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgZXhwZWN0W2NvdW50XSwgImN1cnNvci52YWx1ZSIpOworICAgICAgICAgICAg
ICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAg
IGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgi
cnEub25lcnJvciAtICIgKyBlLm1lc3NhZ2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9OworCisgICAgLy8gRmFpbCBoYW5kbGluZworICAgIGZ1bmN0aW9uIGZhaWxfaGVscGVy
KG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGlyZWN0
aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgeworICAgICAgICAgICAgICAgIHRlc3RzW2Rpcl0u
c3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisgICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hl
bHBlcignb3Blbl9ycS5vbmJsb2NrZWQnKTsKKyAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hl
bHBlcignb3Blbl9ycS5vbmVycm9yJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+IDwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MTg5ZDU2ZjU0Yzc5YzJhODI4YzQ3NjQ4NDg3MGM5MWZhNjMzYjg1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWRpcmVjdGlvbi5odG0KQEAgLTAsMCArMSw3MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmRpcmVjdGlvbjwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKworICAgIGZ1bmN0aW9uIGN1cnNvcl9kaXJlY3Rpb24oY29uc3Rh
bnQsIGRpcikKKyAgICB7CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICB0ID0gYXN5bmNfdGVz
dChkb2N1bWVudC50aXRsZSArICIgLSAiICsgZGlyKSwKKyAgICAgICAgICBleHBlY3RlZCA9IGRp
ciA/IGRpciA6ICJuZXh0IjsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQo
ImRhdGEiLCAia2V5Iik7CisgICAgICAgIH07CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yX3JxLCBj
b3VudCA9IDA7CisgICAgICAgICAgICB2YXIgb3MgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAg
aWYgKGRpcikKKyAgICAgICAgICAgICAgICBjdXJzb3JfcnEgPSBvcy5vcGVuQ3Vyc29yKHVuZGVm
aW5lZCwgZGlyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjdXJzb3JfcnEg
PSBvcy5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRp
cmVjdGlvbiwgY29uc3RhbnQsICdkaXJlY3Rpb24gY29uc3RhbnQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5kaXJlY3Rpb24sIGV4cGVjdGVkLCAnZGlyZWN0aW9uJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2RpcmVjdGlvbicpOwor
CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPj0g
MikKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgdmFyIGN1cnNvcl9ycTIgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBjb25zdGFudCk7CisKKyAg
ICAgICAgICAgIGN1cnNvcl9ycTIub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5kaXJlY3Rpb24sIGNvbnN0YW50LCAnZGly
ZWN0aW9uIGNvbnN0YW50IChzZWNvbmQgdHJ5KScpOworICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLmRpcmVjdGlvbiwgZXhwZWN0ZWQsICdkaXJlY3Rpb24gKHNlY29uZCB0cnkp
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ2RpcmVjdGlvbicp
OworCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQg
Pj0gMikKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0Iik7CisgICAg
Y3Vyc29yX2RpcmVjdGlvbigibmV4dCIsICAgICAgICJuZXh0Iik7CisgICAgY3Vyc29yX2RpcmVj
dGlvbigicHJldiIsICAgICAgICJwcmV2Iik7CisgICAgY3Vyc29yX2RpcmVjdGlvbigibmV4dHVu
aXF1ZSIsICJuZXh0dW5pcXVlIik7CisgICAgY3Vyc29yX2RpcmVjdGlvbigicHJldnVuaXF1ZSIs
ICJwcmV2dW5pcXVlIik7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yLWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Ita2V5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZTEzYzEzZDcwNjM5ZDZjOTVhYmEwM2U3YTlhOGY2M2JhOGE4YjA3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWtleS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CisKK1BBU1MgSURCQ3Vyc29yLmtleSAtIDEgCitQQVNTIElEQkN1cnNvci5rZXkgLSBrZXkgCitQ
QVNTIElEQkN1cnNvci5rZXkgLSBteSxrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1rZXkuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yLWtleS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNiMjgyNzU4MjE0ZDhhNGVjOGRjYzQzMzQ4
YzE3MTA4NjI4YTAyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1rZXkuaHRtCkBAIC0wLDAg
KzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5rZXk8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICBmdW5jdGlvbiBjdXJzb3Jfa2V5KGtleSkKKyAg
ICB7CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSArICIgLSAiICsga2V5KTsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KCJkYXRhIiwga2V5KTsKKyAgICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJz
b3IoKTsKKworICAgICAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIsICJw
cmVxdWlzaXRlIGN1cnNvci52YWx1ZSIpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9l
cXVhbHMoY3Vyc29yLmtleSwga2V5LCAna2V5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Jl
YWRvbmx5KGN1cnNvciwgJ2tleScpOworCisgICAgICAgICAgICAgICAgaWYgKGtleSBpbnN0YW5j
ZW9mIEFycmF5KSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5rZXkucHVzaCgibmV3Iik7
CisgICAgICAgICAgICAgICAgICAgIGtleS5wdXNoKCJuZXciKTsKKworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfa2V5X2VxdWFscyhjdXJzb3Iua2V5LCBrZXksICdrZXkgYWZ0ZXIgYXJyYXkg
cHVzaCcpOworCisgICAgICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBjYW4gbm90IGNoYW5nZSBr
ZXkgKGxpa2UgcmVhZG9ubHksIGp1c3QgYSBiaXQgZGlmZmVyZW50KQorICAgICAgICAgICAgICAg
ICAgICBjdXJzb3Iua2V5ID0gMTA7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1
YWxzKGN1cnNvci5rZXksIGtleSwgJ2tleSBhZnRlciBhc3NpZ25tZW50Jyk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgY3Vyc29yX2tleSgxKTsKKyAgICBjdXJzb3Jfa2V5KCJr
ZXkiKTsKKyAgICBjdXJzb3Jfa2V5KFsibXkiLCAia2V5Il0pOworCis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1wcmltYXJ5a2V5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvci1wcmltYXJ5a2V5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjA1YjZm
Yjg2YTk4NDIyZGMxMWQzMGQwZmRmYWE3MTQxZjZjMGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yLXByaW1hcnlrZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIElEQkN1
cnNvci5wcmltYXJ5S2V5IC0gMSAKK1BBU1MgSURCQ3Vyc29yLnByaW1hcnlLZXkgLSBrZXkgCitQ
QVNTIElEQkN1cnNvci5wcmltYXJ5S2V5IC0gbXksa2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3It
cHJpbWFyeWtleS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItcHJpbWFyeWtleS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzA3Mjgz
OWEwOTY5MmZhOTNmYTE0NzBkNjkxMDlhN2U0ZGE2MjE0YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvci1wcmltYXJ5a2V5Lmh0bQpAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJDdXJzb3IucHJpbWFyeUtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KworICAgIGZ1bmN0aW9uIGN1cnNvcl9wcmltYXJ5a2V5KGtleSkKKyAgICB7CisgICAgICAgIHZh
ciBkYiwKKyAgICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsg
a2V5KTsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgICAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiKTsKKyAgICAgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICIiKTsKKworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhIiwga2V5KTsKKyAgICAgICAg
fTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBjdXJzb3JfcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci52YWx1ZSwgImRhdGEiLCAicHJlcXVpc2l0ZSBjdXJzb3IudmFsdWUiKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICJkYXRhIiwgInByZXF1aXNpdGUg
Y3Vyc29yLmtleSIpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29y
LnByaW1hcnlLZXksIGtleSwgJ3ByaW1hcnlLZXknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
cmVhZG9ubHkoY3Vyc29yLCAncHJpbWFyeUtleScpOworCisgICAgICAgICAgICAgICAgaWYgKGtl
eSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5wcmltYXJ5
S2V5LnB1c2goIm5ldyIpOworICAgICAgICAgICAgICAgICAgICBrZXkucHVzaCgibmV3Iik7CisK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXks
IGtleSwgJ3ByaW1hcnlLZXkgYWZ0ZXIgYXJyYXkgcHVzaCcpOworCisgICAgICAgICAgICAgICAg
ICAgIC8vIEJ1dCB3ZSBjYW4gbm90IGNoYW5nZSBrZXkgKGxpa2UgcmVhZG9ubHksIGp1c3QgYSBi
aXQgZGlmZmVyZW50KQorICAgICAgICAgICAgICAgICAgICBjdXJzb3Iua2V5ID0gMTA7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBrZXks
ICdrZXkgYWZ0ZXIgYXNzaWdubWVudCcpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGN1cnNvcl9wcmltYXJ5a2V5KDEpOworICAgIGN1cnNvcl9wcmltYXJ5a2V5KCJrZXkiKTsK
KyAgICBjdXJzb3JfcHJpbWFyeWtleShbIm15IiwgImtleSJdKTsKKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItcmV1c2VkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvci1yZXVzZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ODMzZWM2ZWMxZDAx
ZWZmZTI5ZGU5MWNmM2Q5MjJlNGUxYzFkZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItcmV1
c2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IgaXMgcmV1
c2VkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItcmV1c2VkLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1yZXVzZWQuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdmOWM4YmY0ZTQ3ZTM5OWYwYWIyZTg4ZjFjZDM3Yzc4ODNjMTQ1OTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItcmV1c2VkLmh0bQpAQCAtMCwwICsxLDY5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IgaXMgcmV1c2VkPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4
cnRoZSBPbWRhbCI+Cis8bWV0YSByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRp
bnVlLXZvaWQtYW55LWtleSI+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJPdGhlcndpc2UgdGhp
cyBtZXRob2QgcnVucyB0aGUgc3RlcHMgZm9yIGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBhIHJl
cXVlc3QuIEhvd2V2ZXIsIHRoZSBzdGVwcyBhcmUgc2xpZ2h0bHkgbW9kaWZpZWQgc3VjaCB0aGF0
IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgSURCUmVxdWVzdCwgaXQgcmV1c2VzIHRoZSByZXF1
ZXN0IG9yaWdpbmFsbHkgY3JlYXRlZCB3aGVuIHRoaXMgY3Vyc29yIHdhcyBjcmVhdGVkLiBUaGUg
ZG9uZSBmbGFnIG9uIHRoZSByZXF1ZXN0IGlzIHNldCB0byBmYWxzZSBiZWZvcmUgdGhlIHJlcXVl
c3QgaXMgcmV0dXJuZWQuIFRoZSBzdGVwcyBhcmUgcnVuIHdpdGggdGhlIGN1cnNvcidzIHNvdXJj
ZSBhcyBzb3VyY2UgYW5kIHRoZSBzdGVwcyBmb3IgaXRlcmF0aW5nIGEgY3Vyc29yIGFzIG9wZXJh
dGlvbiwgdXNpbmcgdGhpcyBjdXJzb3IgYXMgY3Vyc29yIGFuZCB0aGUga2V5IHBhcmFtZXRlciBh
cyBrZXkuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisKKyAgICAgICAgdmFyIGRiCisgICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIoYXN5bmNfdGVzdCgpKQorCisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgICAg
IHZhciBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IikKKworICAgICAgICAgICAgb3Mu
YWRkKCJkYXRhIiwgICJrIikKKyAgICAgICAgICAgIG9zLmFkZCgiZGF0YTIiLCAiazIiKQorICAg
ICAgICB9CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgY3Vyc29yCisgICAgICAgICAgICB2YXIgY291bnQgPSAwCisgICAgICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iikub3Bl
bkN1cnNvcigpCisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0CisKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIsICJwcmVxdWlzaXRl
IGN1cnNvci52YWx1ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY3VzdG9tX2N1
cnNvcl92YWx1ZSA9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LmN1c3RvbV9y
ZXF1ZXN0X3ZhbHVlID0gMgorCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZSwgImRhdGEyIiwgInByZXF1aXNpdGUgY3Vyc29yLnZhbHVlIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmN1c3RvbV9jdXJzb3JfdmFsdWUsIDEsICJj
dXN0b20gY3Vyc29yIHZhbHVlIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQuY3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJjdXN0b20gcmVxdWVzdCB2YWx1
ZSIpCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSghIWUudGFyZ2V0LnJlc3VsdCwgImdv
dCBjdXJzb3IiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
Y3VzdG9tX2N1cnNvcl92YWx1ZSwgMSwgImN1c3RvbSBjdXJzb3IgdmFsdWUiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5jdXN0b21fcmVxdWVzdF92YWx1
ZSwgMiwgImN1c3RvbSByZXF1ZXN0IHZhbHVlIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50KysKKyAgICAgICAg
ICAgIH0pCisKKyAgICAgICAgICAgIHJxLnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAzLCAiY3Vyc29yIGNhbGxiYWNrIHJ1bnMiKQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocnEuY3VzdG9tX3JlcXVlc3RfdmFsdWUsIDIsICJ2YXJpYWJsZSBwbGFjZWQgb24gb2xkIElE
QlJlcXVlc3QiKQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmN1c3RvbV9j
dXJzb3JfdmFsdWUsIDEsICJjdXN0b20gY3Vyc29yIHZhbHVlICh0cmFuc2FjdGlvbi5jb21wbGV0
ZSkiKQorICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAgICAgICB9KQorICAgICAg
ICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yLXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Itc291cmNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mODMxYjNhMDBlNzIxOTZjZDY3NGVhYWJiYzQxM2M2NGRmNDI4YmY3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yLXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisK
K1BBU1MgSURCQ3Vyc29yLnNvdXJjZSAtIElEQk9iamVjdFN0b3JlIAorUEFTUyBJREJDdXJzb3Iu
c291cmNlIC0gSURCSW5kZXggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1zb3VyY2UuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yLXNvdXJjZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBkZTFjMzUwNzhhNGZkYWE4MDhiMjY4YTM1N2Zk
Yzk1MDVlOGEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1zb3VyY2UuaHRtCkBAIC0wLDAg
KzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5zb3VyY2U8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVl
IH0pOworCisgICAgdmFyIGRiOworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oJ3Rl
c3RkYi0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoIm15X29iamVjdHN0b3JlIik7
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJteV9pbmRleCIsICIiKTsKKworICAgICAg
ICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7CisgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIi
LCAyKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gY3Vyc29yX3NvdXJjZShuYW1lLCBzdHJpbmdp
ZmllZF9vYmplY3QsIGN1cnNvcl9ycSkgeworICAgICAgICB2YXIgY3Vyc29yOworCisgICAgICAg
IGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgIGFzc2VydF9yZWFkb25seShjdXJzb3IsICdzb3VyY2UnKTsKKworICAgICAgICAg
ICAgLy8gRGlyZWN0IHRyeQorICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yLnNvdXJjZSBp
bnN0YW5jZW9mIE9iamVjdCwgInNvdXJjZSBpc29iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3Iuc291cmNlICsgIiIsIHN0cmluZ2lmaWVkX29iamVjdCwgInNvdXJjZSIp
OworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iuc291cmNlLm5hbWUsIG5hbWUsICJu
YW1lIik7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICB9KTsKKwor
ICAgICAgICBjdXJzb3JfcnEudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgfSk7CisK
KyAgICAgICAgY3Vyc29yX3JxLnRyYW5zYWN0aW9uLm9uZXJyb3IgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJUcmFuc2FjdGlvbiBn
b3QgZXJyb3IuICIgKyAoZS50YXJnZXQuZXJyb3IgPyBlLnRhcmdldC5lcnJvci5uYW1lIDogInVu
a25vd24iKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAnIC0gSURC
T2JqZWN0U3RvcmUnKS5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY3Vyc29yX3NvdXJj
ZS5jYWxsKHRoaXMsICJteV9vYmplY3RzdG9yZSIsICJbb2JqZWN0IElEQk9iamVjdFN0b3JlXSIs
IGRiLnRyYW5zYWN0aW9uKCJteV9vYmplY3RzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJteV9vYmplY3Rz
dG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9wZW5DdXJzb3IoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUgKyAnIC0gSURCSW5kZXgnKS5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgY3Vyc29yX3NvdXJjZS5jYWxsKHRoaXMsICJteV9pbmRleCIsICJbb2JqZWN0IElEQklu
ZGV4XSIsIGRiLnRyYW5zYWN0aW9uKCJteV9vYmplY3RzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJteV9vYmplY3Rz
dG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LmluZGV4KCJteV9pbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9wZW5DdXJzb3IoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRvbmUo
KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmQ3ZDkzOThiMDlkOGI0Njk1MjUxNjRkM2Fm
M2YxZDRhYmU3Yjc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBp
bmRleCAtIGl0ZXJhdGUgY3Vyc29yIG51bWJlciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291bnQg
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxZjI0NmEyOWIwYjVjYmUzYWIzM2RkNjkyZDAyNGYx
NDkwZWJjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Lmh0bQpAQCAt
MCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgp
IC0gaW5kZXggLSBpdGVyYXRlIGN1cnNvciBudW1iZXIgb2YgdGltZXMgc3BlY2lmaWVkIGJ5IGNv
dW50IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0
LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAg
ICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgaUtleTogImluZGV4S2V5XzIiIH0sCisgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzMiLCBpS2V5OiAiaW5kZXhLZXlfMyIgfV07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoi
cEtleSJ9KTsKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJpS2V5Iik7CisKKyAg
ICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIHN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaWR4IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewor
ICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMzsK
KyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMyk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAg
dmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZWNvcmQucEtleSwgcmVjb3Jkc1tjb3VudF0ucEtleSwgInJlY29yZC5wS2V5Iik7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbY291
bnRdLmlLZXksICJyZWNvcmQuaUtleSIpOworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgidW5leHBlY3RlZCBjb3VudCIpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXgyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFkZTE3YzUwNmFiNDhkMzFiNDI4MWEzZmYwODRiZDNkNDRk
NzAyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGF0dGVtcHQg
dG8gcGFzcyBhIGNvdW50IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhIG51bWJlciAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDhmYjA1ZDM2MjdjMzhjMGUxYzlkODgxNzcyNWVmMThmMjZmMjZhZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5odG0KQEAgLTAsMCArMSw0
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGF0dGVt
cHQgdG8gcGFzcyBhIGNvdW50IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhIG51bWJlcjwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1
cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8bGluayByZWw9YXNzZXJ0
IHRpdGxlPSJUaGUgdmFsdWUgcGFzc2VkIGludG8gdGhlIGNvdW50IHBhcmFtZXRlciB3YXMgemVy
byBvciBhIG5lZ2F0aXZlIG51bWJlci4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0g
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQ
YXRoOiJwS2V5In0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
S2V5Iik7CisKKyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJz
b3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3Iu
YWR2YW5jZShkb2N1bWVudCk7IH0pOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXgzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTZhZjMxNTBjZmUxMDhjY2NhY2RlMGU1
ZjM0NjAwYmNmMjkwZGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgp
IC0gaW5kZXggLSBhdHRlbXB0IHRvIGFkdmFuY2UgYmFja3dhcmRzIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mOGExYWVmMDcwN2EzMDUyYTgxY2I0MWYxYTlmOGJlNjcyOTNhMjAxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLmh0bQpAQCAtMCwwICsxLDQ3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSBhdHRl
bXB0IHRvIGFkdmFuY2UgYmFja3dhcmRzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1m
aWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25l
ZC1sb25nLWNvdW50Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBwYXNzZWQg
aW50byB0aGUgY291bnQgcGFyYW1ldGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVyLiI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0g
WyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBh
dGg6InBLZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
S2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsr
KQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHQi
KTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgtMSk7IH0pOworCisgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDFlNDVlMTFiODQz
MmIyNDM5OGQ5ZjE4YWU5YWY0NmQ4NmZmMTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXg1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJz
b3IuYWR2YW5jZSgpIC0gaW5kZXggLSBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
NS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODA2ODhmMzMxYTQ1NTZiYTQ3YTA0NmVlN2FlN2FmMDQ1NjI5ZmI0
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS5odG0KQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGlu
ZGV4IC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVk
REIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lk
LXVuc2lnbmVkLWxvbmctY291bnQiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIG9wZXJh
dGlvbiBydW5zIHRoZSBzdGVwcyBmb3IgaXRlcmF0aW5nIGEgY3Vyc29yIGNvdW50IG51bWJlciBv
ZiB0aW1lcyB3aXRoIG51bGwgYXMga2V5IGFuZCB0aGlzIGN1cnNvciBhcyBjdXJzb3IuIj4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBudW1iZXIgb2YgYWR2YW5jZXMgZm9yd2FyZCB0aGUg
Y3Vyc29yIHNob3VsZCBtYWtlLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAg
ICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5
XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCAgIGlLZXk6
ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
LTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdLAorICAgICAgZXhwZWN0ZWQgPSBbIHsgcEtleTog
InByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAg
ICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6InBL
ZXkiIH0pCisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKQor
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKQorICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5z
YWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIGV4cGVjdGVkLmxlbmd0aCwgImN1cnNvciBy
dW4gY291bnQiKQorICAgICAgICAgICAgICAgIHQuZG9uZSgpCisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZFtjb3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5pS2V5LCBleHBlY3RlZFtjb3VudF0u
aUtleSwgImluZGV4IGtleSIpOworCisgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKKyAg
ICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA3NTIxMWZlMzQ4ZWE4YmY2NzYyMGI0N2Q1Yjg4YWUzMTgxOWRlNDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IFR5cGVFcnJvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4Ni5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRkNjUzYzA5OTUxNDYzODA2YzNkMTIzM2M3MGEzY2M4OGQ1
YjJiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni5odG0KQEAgLTAs
MCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgVHlwZUVycm9yPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12
b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6
ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfV07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBh
dGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlL
ZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAg
ICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmFkdmFuY2UoMCk7CisgICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgd2l0aCBj
b3VudCBhcmd1bWVudCAwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIik7CisKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXg3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
Ny1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJhNDQ3YmIyNjk5Y2YwYWI4M2IwZjU1Y2Q2M2I2
MjkyNzkxZDM3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGlu
ZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfYWR2YW5jZV9pbmRleDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MTdjZGEwN2FmNmJjOTM4YzU0NjYyYzRjZTU2M2ZkZDVhNjMzODQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3Lmh0bQpAQCAtMCwwICsxLDM5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuYWR2
YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZv
aWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRi
LAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTog
InByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAg
IHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0
aCA6ICJwS2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtl
eSIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAg
ICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAg
IHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90
cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgc2hvdWxk
IHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIHdoZW4gdGhlIHRy
YW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kODJiMTRlNjljNDdhYmIxOGU1MjRhNDExYzA0NDA5MzA1YTUzOTlmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNkZTlhZjFhN2E3MWUw
YjM2YTgzMzlmNTU3NDZjM2FkN2JkMGE2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZh
bmNlX2luZGV4OC5odG0KQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhy
b3cgSW52YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRl
eEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOworICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgi
aW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1
cnNvcik7CisKKyAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2Uo
KSBzaG91bGQgdGhyb3cgRE9NRXhjZXB0aW9uIHdoZW4gdGhlIGN1cnNvciBpcyBjdXJyZW50bHkg
YmVpbmcgaXRlcmF0ZWQuIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDU0MGE3MWU2N2I5Yzg4OGZkYjk3ZjlmOWNmOWUxODI3Yjk3MDIxYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRl
RXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4OS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDkuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA5MWMxYmNiYzliNWMwYzQzNWUzN2EyZWNlYTZmZjM3ZmVlOGMxMDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDkuaHRtCkBAIC0wLDAgKzEsMzcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNv
ci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBv
YmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29y
ZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAg
ICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEi
IH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4
KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAg
ICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJz
b3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4
aXN0Iik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJJZiB0
aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVs
ZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlw
ZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVj
dHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMTAzNTg0NzI3ZTYxMzgzYTVhZmM5NWJmYzMzNGYzM2Q1Y2VhYzBj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTICBJREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0
IHN0b3JlIC0gaXRlcmF0ZSBjdXJzb3IgbnVtYmVyIG9mIHRpbWVzIHNwZWNpZmllZCBieSBjb3Vu
dCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9hZHZhbmNlX29iamVjdHN0b3JlLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDYzYzJiMWNiYzQ2ZjMzYTVi
ODRlMDA4OGU4MDZhNzQ4YjY5YTk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2Vf
b2JqZWN0c3RvcmUuaHRtCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PiBJREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gaXRlcmF0ZSBjdXJzb3IgbnVt
YmVyIG9mIHRpbWVzIHNwZWNpZmllZCBieSBjb3VudCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAg
ICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8yIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8z
IiB9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQ
YXRoOiJwS2V5In0pOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0K
KyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
KTsKKworICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAzOworICAgICAgICAgICAgICAgICAgICBj
dXJzb3IuYWR2YW5jZSgzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZS5wS2V5LCByZWNvcmRzW2NvdW50XS5wS2V5LCAiY3Vyc29yLnZhbHVlLnBLZXkiKTsKKyAg
ICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoInVuZXhwZWN0ZWQgY291bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY2YTcwODdjMGQ2NzhhZjFiYWY1ZmJkYmE0Zjk2ZWM1MTU3NjkwZGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0
aHJvdyBUeXBlRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2Y3
ZmY4MDNhMGM2NTFjNTUwNmNhNDc0OTM1N2RkMzQ3YjdiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTIuaHRtCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNl
KCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUeXBlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmls
ZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQt
bG9uZy1jb3VudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlf
MCJ9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5
UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgewor
ICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpOwor
ICAgICAgICB2YXIgcnEgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikub3BlbkN1cnNvcigpOwor
ICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgY3Vyc29yLmFkdmFuY2UoMCk7CisgICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkg
d2l0aCBjb3VudCBhcmd1bWVudCAwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIik7CisKKyAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9h
ZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNiMGRlYjM1YjA1
YTkxZmY4MGFjM2IwMmExNDhlZGExZWUyOWZkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9h
ZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5h
Y3RpdmVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThiNTc3NTI0
N2Y0ZWU0YmRmM2RiYmI1ZDI1N2JmNGIwYmE1NzExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9hZHZhbmNlX29iamVjdHN0b3JlMy5odG0KQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAt
IG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9p
ZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAi
cHJpbWFyeUtleV8wIn0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
In1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
Y29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVh
ZHdyaXRlIik7CisgICAgICAgIHZhciBycSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKS5vcGVu
Q3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAg
ICAgICAgICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOworICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICB9LCAiQ2FsbGlu
ZyBhZHZhbmNlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUiKTsKKworICAgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YWQ3OWNjZDQ5MzMz
NTY4N2NiMWJjYjUwNGI5ZjBkNmNiYjQ0NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0Lmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9hZHZhbmNlX29iamVjdHN0b3JlNC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFiZjhlODY5NzM3NjFhOGVk
YTcwYWFkYjk2NGY1NmEyYjliY2RhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9hZHZhbmNl
X29iamVjdHN0b3JlNC5odG0KQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBz
dG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmct
Y291bnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwK
KyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6
InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9Cisg
ICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAg
ICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKTsKKyAgICAg
ICAgdmFyIHJxID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpLm9wZW5DdXJzb3IoKTsKKyAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgY3Vyc29y
LmFkdmFuY2UoMSk7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJv
ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAg
ICAgICAgICAgfSwgIkNhbGxpbmcgYWR2YW5jZSgpIHNob3VsZCB0aHJvdyBET01FeGNlcHRpb24g
d2hlbiB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBiZWluZyBpdGVyYXRlZC4iKTsKKworICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2Fk
dmFuY2Vfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjdmM2NiN2IzNzlk
ZWI2NGUyMDk0MTQyN2E1MzFjZDNmOGU3NTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2Fk
dmFuY2Vfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJy
b3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9y
ZTUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmNjFmNmYzNjZhMzY4N2VjMzg5MmYyMTU4NzU3NzA3MGEyYTFl
MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUuaHRtCkBA
IC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlk
U3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNf
dGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAorICAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
biAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtl
eSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAg
ICAgdmFyIHJxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5z
dGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgZGIuZGVs
ZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZh
bmNlKDEpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0
aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVT
VCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7CisKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRhMDA1ZWUwZTJiNTE3YmEyNGZm
OWE3ZTFhY2FlZjRjZWNkZTE1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9p
bmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRp
bnVlKCkgLSBpbmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3JfY29udGludWVfaW5kZXguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Lmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYTgyZTI3ZDlmMTNkMmI4YTVlMmRkOGQxMzM5NWNhNWEzNTg1N2RjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Lmh0bQpAQCAtMCwwICsxLDUyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0g
aXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8bGluayBy
ZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3Rp
cC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQtYW55LWtleSI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSJPdGhlcndpc2UgdGhpcyBtZXRob2QgcnVucyB0aGUgc3Rl
cHMgZm9yIGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBhIHJlcXVlc3QuIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29y
ZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5XzAiIH0sCisg
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtl
eV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xLTIiLCBpS2V5
OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiJwS2V5IiB9KTsKKworICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNv
cigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCByZWNvcmRzLmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNv
ci52YWx1ZTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNb
Y291bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWNvcmQuaUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgImluZGV4IGtleSIpOworCisgICAgICAg
ICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0p
OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
ZGV4Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUxNzMxMGUxYmMxYTc4MGM1MDMyNTFjNTE4
YWFkMGJlYjc4YzBlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgp
IC0gaW5kZXggLSBhdHRlbXB0IHRvIHBhc3MgYSBrZXkgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEg
dmFsaWQga2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODg5OGNkNmY3NTMyNWI1ZmY1
NDM4NDNjZDExOWIyNWE4OTE4NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXgyLmh0bQpAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJD
dXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBwYXNzIGEga2V5IHBhcmFtZXRl
ciB0aGF0IGlzIG5vdCBhIHZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5rIHJl
bD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSBrZXkgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBh
bmQgZnVsZmlsbHMgYW55IG9mIHRoZXNlIGNvbmRpdGlvbnMgdGhpcyBtZXRob2QgbXVzdCB0aHJv
dyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvciI+Cis8bGluayByZWw9YXNzZXJ0IHRp
dGxlPSJUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKwor
ICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAg
IGZvcih2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51ZShkb2N1bWVudCk7IH0p
OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3JX
aXRoVmFsdWUsICJjdXJzb3IiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0p
OworICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXgzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBkOWYyNDY5NWY2ODA5ZDQ2N2U2OTRh
ZjhjNTdiMzQ3NzZjYjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVl
KCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3JkIHdo
ZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBuZXh0IHJlY29yZCAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTVlZWZhMzcyMWY0NTE0MmRlMjc3Zjc4ZDUyOGE5OTI5NzgyYjBhOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMuaHRtCkBAIC0wLDAgKzEs
NTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5k
ZXggLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVuIHRoZSBk
aXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgbmV4dCByZWNvcmQgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFu
eS1rZXkiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIHBhcmFtZXRlciBpcyBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBwb3NpdGlvbiBhbmQgdGhpcyBjdXJzb3IncyBk
aXJlY3Rpb24gaXMgJ25leHQnIG9yICduZXh0dW5pcXVlJy4iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAg
ICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgIHZhciBjdXJzb3Jf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5k
ZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJu
ZXh0Iik7IC8vIFhYWDogRnggaGFzIGlzc3VlIHdpdGggInVuZGVmaW5lZCIKKworICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vyc29y
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgInJhbiBudW1iZXIg
b2YgdGltZXMiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLy8gRmlyc3QgdGltZSBjaGVja3Mga2V5IGVxdWFsLCBzZWNvbmQgdGltZSBj
aGVja3Mga2V5IGxlc3MgdGhhbgorICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9y
IiwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKHJlY29yZHNb
MF0uaUtleSk7IH0pOworCisgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKworICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcxNDA2OWFjYTMyZjNjNzA2MmE3OTQ0ZTVhMTJhZjE5ZDRmZjZiM2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRl
IHRvIHRoZSBuZXh0IHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgcHJl
dmlvdXMgcmVjb3JkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0Lmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0MTZjOWY1OGVkZGQwZDQx
NWVmNDFlOTMwMTFhMDcxZThhY2RhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGlu
dWVfaW5kZXg0Lmh0bQpAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBu
ZXh0IHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgcHJldmlvdXMgcmVj
b3JkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlE
QkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0i
VGhlIHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBw
b3NpdGlvbiBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgJ3ByZXYnIG9yICdwcmV2dW5p
cXVlJy4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBy
ZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwK
KyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtl
eV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgaUtleTog
ImluZGV4S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGNvdW50ID0gMCwKKyAgICAgICAgICBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJwcmV2Iik7IC8vIFhYWCBGeCBpc3N1ZXMgdyB1
bmRlZmluZWQKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdCwKKyAg
ICAgICAgICAgICAgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworCisgICAgICAgICAgICBzd2l0Y2go
Y291bnQpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzWzJdLnBLZXksICJmaXJzdCBwS2V5Iik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgcmVjb3Jkc1syXS5pS2V5LCAiZmly
c3QgaUtleSIpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVjb3Jkc1sxXS5wS2V5LCAic2Vjb25kIHBLZXkiKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5pS2V5LCByZWNvcmRzWzFdLmlL
ZXksICJzZWNvbmQgaUtleSIpOworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFF
cnJvciIsCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUo
ImluZGV4S2V5XzIiKTsgfSk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudCB2YWx1ZTogIiArIGNvdW50KTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7CisgICAgfTsKKwor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVmNDRkZTdmMDQyMmU3ZTkzYzRlNmMzY2JhNjYzNTgzZWY4M2My
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0g
aXRlcmF0ZSB1c2luZyAncHJldnVuaXF1ZScgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51
ZV9pbmRleDUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3
MmFjMTQ2ZWJhYzk0MzE2YTg0MWFiYzY2NTZlYWQ1YzQ0MzAyZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDUuaHRtCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVzaW5n
ICdwcmV2dW5pcXVlJzwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhl
bHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Cis8bGluayByZWw9YXNzZXJ0
IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXZ1bmlxdWUiLCBsZXQgdGVtcCByZWNvcmQgYmUg
dGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxv
d2luZyByZXF1aXJlbWVudHM6Jz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9u
IGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFuIHBvc2l0aW9uLiI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1l
b3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwg
ICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1h
cnlLZXlfMSIsICAgaUtleTogImluZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSBdLAor
CisgICAgICBleHBlY3RlZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5k
ZXhLZXlfMiIgfSwKKyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBp
S2V5OiAiaW5kZXhLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgY291bnQgPSAwLAorICAgICAgICAgIGN1cnNvcl9ycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgJ3ByZXZ1bmlxdWUnKTsK
KworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICdjb3VudCcpOworICAgICAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgICAg
IHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNv
cmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJwS2V5ICMiICsgY291bnQpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRdLmlLZXksICJp
S2V5ICMiICsgY291bnQpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXks
ICBleHBlY3RlZFtjb3VudF0uaUtleSwgImN1cnNvci5rZXkgIyIgKyBjb3VudCk7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RlZFtjb3VudF0ucEtl
eSwgImN1cnNvci5wcmltYXJ5S2V5ICMiICsgY291bnQpOworCisgICAgICAgICAgICBjb3VudCsr
OworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKGV4cGVjdGVkW2NvdW50XSA/IGV4cGVjdGVk
W2NvdW50XS5pS2V5IDogdW5kZWZpbmVkKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXg2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI5M2JlZWZlMDQzMGYwYTQyZThjZGYwYzI0ZjU4ZDUzODFjNWM0YzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0
ZSB1c2luZyBuZXh0dW5pcXVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4OWU1NGIwZjg5
ZmQxMmRhZjE3ZmFmZGM1NzJiY2RlYjc0YTA5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXg2Lmh0bQpAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1c2luZyBuZXh0dW5p
cXVlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJh
LmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJo
dHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lm
IGRpcmVjdGlvbiBpcyAibmV4dHVuaXF1ZSIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0
IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVx
dWlyZW1lbnRzOic+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZp
bmVkLCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDog
MTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtl
eTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5
XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8xLTIiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAg
IHsgcEtleTogInByaW1hcnlLZXlfMiIsICAgaUtleTogImluZGV4S2V5XzIiIH0gXSwKKworICAg
ICAgZXhwZWN0ZWQgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsICAgaUtleTogImluZGV4S2V5
XzAiIH0sCisgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsICAgaUtleTog
ImluZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIs
ICAgaUtleTogImluZGV4S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGNvdW50ID0gMCwKKyAgICAgICAgICBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJuZXh0dW5pcXVlIik7CisKKyAg
ICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjb3VudCwgZXhwZWN0ZWQubGVuZ3RoLCAnY291bnQnKTsKKyAgICAgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICAgICAgICByZWNv
cmQgPSBjdXJzb3IudmFsdWU7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBL
ZXksIGV4cGVjdGVkW2NvdW50XS5wS2V5LCAicEtleSAjIiArIGNvdW50KTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIGV4cGVjdGVkW2NvdW50XS5pS2V5LCAiaUtleSAj
IiArIGNvdW50KTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAgZXhw
ZWN0ZWRbY291bnRdLmlLZXksICJjdXJzb3Iua2V5ICMiICsgY291bnQpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJj
dXJzb3IucHJpbWFyeUtleSAjIiArIGNvdW50KTsKKworICAgICAgICAgICAgY291bnQrKzsKKyAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZShleHBlY3RlZFtjb3VudF0gPyBleHBlY3RlZFtjb3Vu
dF0uaUtleSA6IHVuZGVmaW5lZCk7CisgICAgICAgIH0pOworICAgIH07CisKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMzAwMjk5ZTA5MjBlZTYwNDE4Njg1OGI5NmZmODE4MWIxZDhiZWVjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIHRocm93IFRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
Ny5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWU2MDk4YWYw
ZGExOGJiN2M2MTNkMjMxOGU4YWExMzNkNTA5ZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4Ny5odG0KQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRl
eCAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIp
Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsK
KworICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0sICJD
YWxsaW5nIGNvbnRpbnVlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25J
bmFjdGl2ZUVycm9yIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7CisKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmQ3ZjM1NmExMWZlMDJlOTNi
M2VkMjQzYzBjZTE2OTgzZjNkODdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNv
bnRpbnVlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmpl
Y3Qgc3RvcmUgYmVlbiBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXg4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZTU3ZjVi
ZDI0ZDJmNzM0NzQ0ZmFlYzkyMDliOWQ2ZmNiMTYzMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfY29udGludWVfaW5kZXg4Lmh0bQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGlu
ZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVu
IGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0i
aHR0cDovL3d3dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCisgICAgdmFyIGRi
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInBy
aW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6
ICJwS2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIp
OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2
YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9i
amVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0
YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBv
YmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhy
b3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51
ZV9pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTFhMDhiMmVmNTMzZjc4NjlhYzRi
ZTQ3YmQ0OTFkOWVlZjYxZTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
dmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250
aW51ZSgpIC0gYXR0ZW1wdCB0byBjYWxsIGNvbnRpbnVlIHR3byB0aW1lcyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1N2E2YTAyYzA2ZTM1ODBmZDI0NWJmMTI2NjdiMmI4ZjNlNWUyMDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfaW52YWxpZC5odG0KQEAgLTAsMCAr
MSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBh
dHRlbXB0IHRvIGNhbGwgY29udGludWUgdHdvIHRpbWVzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUsIHt0aW1lb3V0OiAxMDAwMH0pOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
IiIpOworCisgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICAxKTsKKyAgICAgICAgb2JqU3Rv
cmUuYWRkKCJkYXRhMiIsIDIpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIGN1cnNvcl9y
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRl
eCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgMiwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKHVuZGVmaW5l
ZCk7CisKKyAgICAgICAgICAgIC8vIFNlY29uZCB0cnkKKyAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmNvbnRpbnVlKCk7IH0sICdzZWNvbmQgY29udGludWUnKTsKKworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBjdXJzb3IuY29udGludWUoMyk7IH0sICd0aGlyZCBjb250aW51ZScpOworCisgICAgICAg
ICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU0YzZhNjk0MWZkZTJhNjkxN2JmOTU4YTRkN2Q2OTIwZmUyNjYzMDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3Jl
IC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250
aW51ZV9vYmplY3RzdG9yZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc3ZTc4MTZmOWJhN2U2Yjk5MGFlZWNjNTc2ZmM5YjZlMzYxNjJhZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUuaHRtCkBAIC0wLDAgKzEs
NDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2Jq
ZWN0IHN0b3JlIC0gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7YXV0b0luY3JlbWVudDp0cnVlLCBrZXlQYXRo
OiJwS2V5In0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBzdG9yZSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKTsKKworICAgICAgICBjdXJzb3JfcnEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7Cisg
ICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYg
KCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCByZWNvcmRz
Lmxlbmd0aCwgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNbY291bnRdLnBL
ZXksICJwcmltYXJ5IGtleSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtl
eSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgImluZGV4IGtleSIpOworCisgICAgICAgICAgICBjdXJz
b3IuY29udGludWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07
Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2Nv
bnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0
c3RvcmUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTljNmI1YTE0NGUzNGM0ZjAxZTM2ODJh
NjA1MWVmOWE1YTdlZGEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVj
dHN0b3JlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNv
bnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIHBhc3MgYSBrZXkgcGFyYW1ldGVy
IGlzIG5vdCBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi5odG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDRlNDM4ZmU5Nzg4NTJkMzUxNDFmYTM5NmZkYTA5OWYzMWM5YjBkMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTIuaHRtCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0
b3JlIC0gYXR0ZW1wdCB0byBwYXNzIGEga2V5IHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkg
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3RzIik7CisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBjdXJzb3IuY29udGludWUoZG9jdW1lbnQpOyB9KTsKKworICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj4gPC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY2ODA4MDNmNDYwOGMzMDY5NDhlNjVmNDVlODlmNmJhMDUyOTQ2M2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVt
cHQgdG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBp
cyBzZXQgZm9yIHRoZSBuZXh0IHJlY29yZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVl
X29iamVjdHN0b3JlMy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jODA0MmU0YTRkZmYzMDAyYmY5MTJlZTM1MGNmMWU2NmE4MmU2MGE5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy5odG0KQEAgLTAsMCArMSw0
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmpl
Y3Qgc3RvcmUgLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVu
IHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgbmV4dCByZWNvcmQ8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNv
cmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHQiKTsKKworICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBjdXJzb3IuY29udGludWUocmVjb3Jkc1swXS5wS2V5KTsgfSk7CisKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNWYzMWI1MjRiYzRlNWRhNDNlMWE1ZDlkMmY2N2FmNDc5Y2QxZDc4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUg
LSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlv
biBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
Y29udGludWVfb2JqZWN0c3RvcmU0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYwZDkxZDliMTIyNjJmMTQzZmJhZWMzMzJkYjYyNzMxMjg1YjNmMGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0Lmh0bQpAQCAt
MCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUo
KSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQg
d2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIHByZXZpb3VzIHJlY29yZCA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBjb3VudCA9IDAsCisgICAgICAgICAgY3Vyc29yX3JxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7
CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciAhPSBudWxsLCAiY3Vyc29yIGV4aXN0Iik7CisKKyAgICAg
ICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbMl0ucEtleSwgImZp
cnN0IGN1cnNvciBwa2V5Iik7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKHJlY29y
ZHNbMV0ucEtleSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5LCByZWNv
cmRzWzFdLnBLZXksICJzZWNvbmQgY3Vyc29yIHBrZXkiKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsg
Y3Vyc29yLmNvbnRpbnVlKHJlY29yZHNbMl0ucEtleSk7IH0pOworICAgICAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQgdmFsdWU6
ICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAg
ICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlhMWE4NzUx
NGVjM2VmZDFmN2U0ZmVmNTA2ODY0YzUzNzExZmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9jb250aW51ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHJhbnNhY3Rp
b25JbmFjdGl2ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3Rv
cmU1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAy
NjMxNWNiZDAzNTc2YWMyYzI1ZDI4YjVhOTk5ZmU3YTExNTcyYzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1Lmh0bQpAQCAtMCwwICsxLDQyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuY29u
dGludWUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3
LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0ibG9nIj4gPC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5
In0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykK
KyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisK
KyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3RzIik7
CisKKyAgICAgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0sICJDYWxs
aW5nIGNvbnRpbnVlKCkgc2hvdWxkIHRocm93cyBhbiBleGNlcHRpb24gVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBhY3RpdmUuIik7CisKKworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVlMGYxMzA5
YWRlMTYzZTNjMTliYWNjNjdmZDcxYmM1ZmY1NDdjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9jb250aW51ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0
YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2NvbnRpbnVlX29i
amVjdHN0b3JlNi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU2OTU1OWY4ZTk2OGVlMjkyZGE4ZmNjNDE4Yjg3
MGFhYTJhM2IyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9y
ZTYuaHRtCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhy
b3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8w
IiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtl
eSJ9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1
cnNvcl9ycSA9IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0
YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdHMiKTsKKworICAgICAgICAgICAgZGIuZGVs
ZXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7CisgICAgICAgICAgICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3Rp
dmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNU
IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKKworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTg1ZjljN2RlZWRjYjBhZGU3YmIxZDFiMWYw
ZWJjNmVhNjczZWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5k
ZXggLSByZW1vdmUgYSByZWNvcmQgZnJvbSB0aGUgb2JqZWN0IHN0b3JlIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3JfZGVsZXRlX2luZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXguaHRtCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZlMzBhY2ZkNWU3ZjExYTAyNDY2ZjYzZWU3YTU4YTgzMDI4MTQ3MzAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Lmh0bQpAQCAtMCwwICsxLDY5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHJlbW92ZSBh
IHJlY29yZCBmcm9tIHRoZSBvYmplY3Qgc3RvcmU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisg
ICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAg
ICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8w
IiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImlu
ZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNv
cmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOwor
ICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKEN1cnNvckRlbGV0
ZVJlY29yZCk7CisKKworICAgIGZ1bmN0aW9uIEN1cnNvckRlbGV0ZVJlY29yZChlKSB7CisgICAg
ICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKSwKKyAgICAg
ICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1
cnNvciBleGlzdCIpOworICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOworICAgICAgICB9KTsK
KworICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc0Rl
bGV0ZWQpOworICAgIH0KKworCisgICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZChl
KSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnZhbHVlLnBLZXksIHJlY29yZHNbMV0ucEtleSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci52YWx1ZS5pS2V5LCByZWNvcmRzWzFdLmlLZXkpOworICAgICAgICAgICAgY3Vy
c29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9
CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X2RlbGV0ZV9pbmRleDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmYmFjZTY3ZWMxMDg3NTRkYThjNjFmMjg3ODVhMGViNDVhYTBi
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRl
bXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDIu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEzM2Y5MTI0NDg4OGY0YjA5NmY0NjNhMDQ4NDMzYzU0ODc1MzExOGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi5odG0KQEAgLTAsMCArMSw0
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXgg
LSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbjwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRl
eEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtl
eTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNv
ciBleGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1
bmN0aW9uKCkgeyBjdXJzb3IuZGVsZXRlKCk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZiZjE3MmI5Y2YxNmIyZDkwNzVj
OWU3ZWYzZjA3MTAwZjY3Mzk5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5k
ZXgzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRl
KCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRy
YW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfZGVsZXRlX2luZGV4My5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjMzA0NGIzZjVjMGJmY2Y1NWZjYzFi
MDVjMTE0OTJhYWVhNGFkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgz
Lmh0bQpAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Iu
ZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGFuIGluYWN0
aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAg
ICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsK
KworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAg
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1cnNvcl9y
cSA9IGluZGV4Lm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElE
QkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgd2luZG93LmN1cnNvciA9IGN1
cnNvcjsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cuY3Vyc29y
LmRlbGV0ZSgpOyB9KQorICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0K
KworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
ZGVsZXRlX2luZGV4NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzczNjBhOGFiNDlhYmVmZjRlOTMxMDM4N2JhMDQ2ZTZjZWZmZTgx
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93
IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4NC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY2ZTU3Njc0MDlkN2Q2ZmNmN2JhOGI4ZjdlYzM5NTIzNjRi
NDg4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0Lmh0bQpAQCAtMCww
ICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNh
dXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgorPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAg
ICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAi
aW5kZXhLZXlfMSIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4
Iikub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3Is
ICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0
b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAgICAgICAgICAg
IH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFz
IGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRp
b24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxl
dGVfaW5kZXg1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNjlhYWFmMjJkNzFmNDJlZWQ2NjU1NTNlYzg1ODRhMTBiMThhNWViCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gdGhyb3cgSW52
YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGZjMGUyOTY3ZDYyYzM3MGRjYjY0ZGMwNzVkYTkxZGFkNWFmYjEzYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1Lmh0bQpAQCAtMCwwICsxLDM5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJD
dXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhl
IGN1cnNvciBpcyBiZWluZyBpdGVyYXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVy
dmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWRlbGV0ZS1JREJSZXF1ZXN0Ij4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAg
IHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0s
CisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4
S2V5XzEiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iiku
b3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJj
dXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0
ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM2NjBmYTE0MGFmYjM4NjY0
NjUwODMxZmVkYzU0MDdlN2Q0MWZjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNv
ci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIHJlbW92ZSBhIHJlY29yZCBmcm9tIHRoZSBvYmpl
Y3Qgc3RvcmUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMmFkNDc2NWVjYjhm
YWZiYTE1MzYxNmJlMjdlZmY1ZDJmMjBkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVs
ZXRlX29iamVjdHN0b3JlLmh0bQpAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSByZW1vdmUgYSByZWNvcmQg
ZnJvbSB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIg
ZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhDdXJzb3JEZWxldGVSZWNvcmQpOworCisKKyAgICBmdW5jdGlvbiBDdXJzb3JEZWxl
dGVSZWNvcmQoZSkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAi
cmVhZHdyaXRlIiksCisgICAgICAgICAgY3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0
Iikub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBl
eGlzdCIpOworICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOworICAgICAgICB9KTsKKworICAg
ICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc0RlbGV0ZWQp
OworICAgIH0KKworCisgICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZChlKSB7Cisg
ICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZh
bHVlLnBLZXksIHJlY29yZHNbMV0ucEtleSk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTRjYjZiNzI3MGY5YjViZDg4MDMxYmIzMDhkYzY2ZTkxMGUyOTg0
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qg
c3RvcmUgLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2Fj
dGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTIuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX2RlbGV0ZV9vYmplY3RzdG9yZTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNTdlOTlmNjk1ZDY5ZjY5
YTQ0MjgyN2M2YzY1NzhhNmMyNTMzM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRl
X29iamVjdHN0b3JlMi5odG0KQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byByZW1vdmUg
YSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0g
WyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5
UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9
OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBj
dXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciAhPSBudWxsLCAiY3Vyc29yIGV4aXN0Iik7
CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdSZWFkT25seUVycm9yJywgZnVuY3Rpb24oKSB7
IGN1cnNvci5kZWxldGUoKTsgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVf
b2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmJmMTcyYjljZjE2YjJkOTA3
NWM5ZTdlZjNmMDcxMDBmNjczOTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9v
YmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNv
ci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5h
Y3RpdmUgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3Rv
cmUzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmZk
ODIwMWFkYzMwMjg5Zjg2MDg1NmNlOWVhNTMzOGI3MmNkMmY5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMuaHRtCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBy
ZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJl
Y29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAor
ICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5
XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsK
KworICAgICAgICB2YXIgY3Vyc29yX3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworCisgICAg
ICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisgICAg
ICAgICAgICB3aW5kb3cuY3Vyc29yID0gY3Vyc29yOworICAgICAgICB9KTsKKworICAgICAgICBl
LnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJywg
ZnVuY3Rpb24oKSB7IHdpbmRvdy5jdXJzb3IuZGVsZXRlKCk7IH0pCisgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
NzZjZTkwNzg4OTc5YjYzNzFmNGM5ZWFjOWQwMWUxMjkyMDJkY2U4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFs
aWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlNC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk3NzVjOGYxNjYzMmEzYzM2YWFiMjZhMTliYTk3
ZGQ3NjIzNDc5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0
Lmh0bQpAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3Lmlu
dGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8w
In0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQ
YXRoOiJwS2V5In0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAg
fQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIg
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1
cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworCisgICAgICAgICAg
ICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmRlbGV0ZSgpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3Ig
ZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRp
b24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7
CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwZjll
ZDViZTJmYjJmOWQwNjk1ZWYyMWQ1MzlhMTQ5MTc2YjczYjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0
YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0
b3JlNS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdmYTVmMjMzY2VlZmJlZDQ0YThjMTBlY2VmZThiMDA1ZTIx
MTg5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1Lmh0bQpA
QCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlk
U3RhdGVFcnJvciB3aGVuIHRoZSBjdXJzb3IgaXMgYmVpbmcgaXRlcmF0ZWQ8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20i
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWRE
Qi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1kZWxldGUtSURCUmVx
dWVzdCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5
bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAor
ICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoi
cEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAg
ICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpOworICAgICAg
ICB2YXIgcnEgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikub3BlbkN1cnNvcigpOworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKworICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJ
bnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5k
ZWxldGUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzgzZWQ5ZDIyNTJiMmQ5YmQ5NzM3YzhmOTQ4YjI3ODY4ZmQ1YTcwNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9pdGVyYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50
LCBhbmQgaXRlcmF0ZSB0byBpdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZy5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3JfaXRlcmF0aW5nLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTM0YmNjM2I0ZjYzZmJlNjk4MmJh
YWZmMDg2MGYwYmUzNDJjZDkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZy5o
dG0KQEAgLTAsMCArMSwxMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5j
b250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0
ZSB0byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0Bv
cGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVv
dXQ6IDEwMDAwfSk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
NTAwOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6IGksIHZhbDogInZhbF8i
K2kgfSk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHsga2V5OiA1MDAsIHZhbDog
InZhbF81MDAiIH0pOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDk5OTsgaSA+IDUwMDsgaS0tKQorICAg
ICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTogaSwgdmFsOiAidmFsXyIraSB9KTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgWydrZXkn
LCAndmFsJ10pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3
cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgICAgIHN0b3JlID0gZS50YXJn
ZXQuc291cmNlOworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCA5OTcsICJjdXJzb3IgcnVuIGNvdW50Iik7CisKKyAgICAgICAg
ICAgICAgICB2YXIgcnEgPSBlLnRhcmdldC5zb3VyY2UuY291bnQoKTsKKyAgICAgICAgICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA5OTUsICJvYmplY3QgY291bnQi
KTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0
Y2ggKGN1cnNvci5rZXkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5LCAiY291bnQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDExKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgICAgIGNhc2UgNDk5
OgorICAgICAgICAgICAgICAgIGNhc2UgNTAwOgorICAgICAgICAgICAgICAgIGNhc2UgNTAxOgor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBjdXJzb3Iua2V5IC0gMSwg
ImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAg
Ly8gRGVsZXRlIHRoZSBuZXh0IGtleQorICAgICAgICAgICAgICAgIGNhc2UgNTEwOgorICAgICAg
ICAgICAgICAgICAgICBzdG9yZS5kZWxldGUoNTExKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgICAgICAvLyBEZWxldGUgcmFuZG9tbHkKKyAgICAgICAgICAgICAg
ICBjYXNlIDUxMjoKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDYxMSk7CisgICAg
ICAgICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSg0OTkpOworICAgICAgICAgICAgICAgICAgICBz
dG9yZS5kZWxldGUoNTAwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgICAgICAvLyBEZWxldGUgYW5kIGFkZCBhIG5ldyBrZXkKKyAgICAgICAgICAgICAgICBjYXNl
IDUyMDoKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDUyMSk7CisgICAgICAgICAg
ICAgICAgICAgIHN0b3JlLmFkZCh7IGtleTogNTIxLCB2YWw6ICJuZXcifSk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSA1MjE6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnZhbCwgIm5ldyIpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5
IGJlIGhlcmUgb25jZSBhbHRob3VnaCB3ZSdyZSBiYXNpY2FsbHkgbWFraW5nIHRoZSBpbmRleAor
ICAgICAgICAgICAgICAgIC8vICJoZWF2aWVyIiB3aXRoIGl0cyBuZXcga2V5LgorICAgICAgICAg
ICAgICAgIGNhc2UgNTMwOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci52YWx1ZS52YWwsICJ2YWxfNTMwIik7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci51cGRh
dGUoeyBrZXk6IDUzMCwgdmFsOiAidmFsXzUzMSIgfSkKKworICAgICAgICAgICAgICAgICAgICBz
dG9yZS5nZXQoNTMwKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52YWwsICJ2
YWxfNTMxIik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgICAgIC8vIFNob3VsZG4ndCBoYXBwZW4uCisgICAgICAgICAg
ICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICBjYXNlIDUxMToKKyAgICAgICAgICAgICAg
ICBjYXNlIDYxMToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChjdXJzb3Iu
a2V5ICsgIiBzaG91bGQgYmUgZGVsZXRlZCBhbmQgbmV2ZXIgcnVuIik7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5n
X2luZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVhMGY2M2RmYTlmMmM4NDUzMDhjYmRkMTRkYWMyNzM5OTI1MDA0YzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gZGVsZXRl
IG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9p
dGVyYXRpbmdfaW5kZXguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC5odG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzYzMDNjYzE4ZjQ5NzgwNzU4M2YyNzVhMjI1N2VlODU4ZTE4ZDBlZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXguaHRtCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBkZWxldGUg
bmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVz
dChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7
IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBvYmo6IHsgaUtleTogImlLZXlfMCIgfX0sCisgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBvYmo6IHsgaUtleTogImlLZXlfMSIg
fX0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBvYmo6IHsgaUtl
eTogImlLZXlfMiIgfX0gXSwKKworICAgICAgZXhwZWN0ZWQgPSBbIFsgInByaW1hcnlLZXlfMiIs
ICJpS2V5XzIiIF0sCisgICAgICAgICAgICAgICAgICAgWyAicHJpbWFyeUtleV8wIiwgImlLZXlf
MCIgXSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwg
e2tleVBhdGg6WyJwS2V5IiwgIm9iai5pS2V5Il19KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgWyAicEtleSIsICJvYmouaUtleSIgXSk7CisKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUu
YWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iiwg
InJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcihudWxsLCAicHJldiIpOworCisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKCFjdXJzb3Ip
IHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY3Vyc29yIHJ1biBj
b3VudCIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAoY291bnQgPT09IDApIHsKKyAgICAgICAgICAgICAgICBlLnRhcmdldC5zb3Vy
Y2Uub2JqZWN0U3RvcmUuZGVsZXRlKFsicHJpbWFyeUtleV8xIiwgImlLZXlfMSJdKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY3Vyc29yLmtleSwgZXhw
ZWN0ZWRbY291bnRdLCAicHJpbWFyeSBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGlu
Z19pbmRleDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU0NzgwYjJlMDVjMTc0YzkwMDM0NDQ3YWUzMmNjMTMyMzU4Mjk0NTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGFk
ZCBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
aXRlcmF0aW5nX2luZGV4Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTc1NGM3Y2NhZmZkZDQ5MzI1NDRlNmYwNWE4YTc0N2ExNTE3YTI2ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLmh0bQpAQCAtMCwwICsxLDUzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYWRk
IG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rl
c3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsg
eyBwS2V5OiAicHJpbWFyeUtleV8wIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzAiIH19LAorICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzIi
IH19IF0sCisKKyAgICAgIGV4cGVjdGVkID0gWyBbICJwcmltYXJ5S2V5XzIiLCAiaUtleV8yIiBd
LAorICAgICAgICAgICAgICAgICAgIFsgInByaW1hcnlLZXlfMSIsICJpS2V5XzEiIF0sCisgICAg
ICAgICAgICAgICAgICAgWyAicHJpbWFyeUtleV8wIiwgImlLZXlfMCIgXSBdOworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsIFsgInBLZXkiLCAib2JqLmlL
ZXkiIF0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAu
aW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IobnVs
bCwgInByZXYiKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgMywgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNvdW50ID09PSAwKSB7CisgICAg
ICAgICAgICAgICAgZS50YXJnZXQuc291cmNlLm9iamVjdFN0b3JlLmFkZCh7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEiLCBvYmo6IHsgaUtleTogImlLZXlfMSIgfSB9KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY3Vyc29yLmtleSwgZXhwZWN0ZWRbY291bnRd
LCAicHJpbWFyeSBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9y
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zODNlZDlkMjI1MmIyZDliZDk3MzdjOGY5NDhiMjc4NjhmZDVhNzA0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Rz
dG9yZSAtIGRlbGV0ZSBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdf
b2JqZWN0c3RvcmUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZDNjNjMwN2VjODk4NWVlNjg0OWI3MzUzMDBj
OGU5MDJhOTM5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0
b3JlLmh0bQpAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJz
b3IuY29udGludWUoKSAtIG9iamVjdHN0b3JlIC0gZGVsZXRlIG5leHQgZWxlbWVudCwgYW5kIGl0
ZXJhdGUgdG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGlu
aG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0
aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8w
IiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9LAorICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9IF0sCisgICAgICBleHBlY3RlZF9y
ZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAg
ICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAo
IWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjdXJz
b3IgcnVuIGNvdW50Iik7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAgICAgICBp
ZiAocmVjb3JkLnBLZXkgPT0gInByaW1hcnlLZXlfMCIpIHsKKyAgICAgICAgICAgICAgIGUudGFy
Z2V0LnNvdXJjZS5kZWxldGUoInByaW1hcnlLZXlfMSIpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgZXhwZWN0ZWRfcmVjb3Jkc1tjb3VudF0u
cEtleSwgInByaW1hcnkga2V5Iik7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwor
ICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8
ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0
c3RvcmUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MjhiNzk0YThhYzRkN2JlMjZlMWM1ZTczMTg1YWI3MjUzOGU0
ZDZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0g
b2JqZWN0c3RvcmUgLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdCAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTIuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMWQ5ZjNkY2NhYjZhZGUwYzY3MmQ0
M2Q5MDIzNTUxZGE2ZDFhMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nX29i
amVjdHN0b3JlMi5odG0KQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGFkZCBuZXh0IGVsZW1lbnQsIGFu
ZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86
b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
LCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlL
ZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfSBdLAor
ICAgICAgZXhwZWN0ZWRfcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9IF07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9
KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisg
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMywgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsK
KyAgICAgICAgICAgIGlmIChyZWNvcmQucEtleSA9PSAicHJpbWFyeUtleV8wIikgeworICAgICAg
ICAgICAgICAgZS50YXJnZXQuc291cmNlLmFkZCh7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgZXhw
ZWN0ZWRfcmVjb3Jkc1tjb3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7CisKKyAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvcl91cGRhdGVfaW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JiYWYzNDUxNWQxNzRkZGM2YzBjMTlmMGZhZDFlY2M0MzFm
ZjQ2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gbW9k
aWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXguaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYx
M2ZmODU3YTNkMDg3M2Y5OTM4MmI5NGI3MjlmYTZkYjIxYmY5M2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4Lmh0bQpAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBhIHJlY29yZCBp
biB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIs
CisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3Jk
cyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIg
fSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAg
Ly8gWFhYOiBHZWNrbyBkb2Vzbid0IGxpa2UgdGhpcworICAgICAgICAvL2UudGFyZ2V0LnRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhDdXJzb3JVcGRhdGVSZWNvcmQpOworICAg
IH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IEN1cnNvclVwZGF0ZVJlY29yZDsKKworCisg
ICAgZnVuY3Rpb24gQ3Vyc29yVXBkYXRlUmVjb3JkKGUpIHsKKyAgICAgICAgdmFyIHR4biA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAorICAgICAgICAgIGN1cnNvcl9ycSA9
IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4
KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKyAgICAg
ICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGN1cnNv
ci52YWx1ZS5pS2V5ICs9ICJfdXBkYXRlZCI7CisgICAgICAgICAgICBjdXJzb3IudXBkYXRlKGN1
cnNvci52YWx1ZSk7CisgICAgICAgIH0pOworCisgICAgICAgIHR4bi5vbmNvbXBsZXRlID0gdC5z
dGVwX2Z1bmMoVmVyaWZ5UmVjb3JkV2FzVXBkYXRlZCk7CisgICAgfQorCisKKyAgICBmdW5jdGlv
biBWZXJpZnlSZWNvcmRXYXNVcGRhdGVkKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKwor
ICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUuaUtleSwgcmVjb3Jkc1swXS5pS2V5ICsgIl91cGRh
dGVkIik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVf
aW5kZXgyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MzNjN2UwZGZhNmVmZTI5MGE1MmFjZjgyYzA4ZjE5MGU1NzZkYzZmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBt
b2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZDAwMDFjYmI5MTg5N2I0NjFmYTQwYzRmZmM5ZjlhOWY1MzYyMjY3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDIuaHRtCkBAIC0wLDAgKzEsNDAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1w
dCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb248L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIg
fSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRl
eEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
dGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAg
ICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5p
bmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRl
KGN1cnNvci52YWx1ZSk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3JfdXBkYXRlX2luZGV4My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5MzMyNzUzYThjYzhjMzQ2YmVkZmI2YTk2ZjNiMTI4
YzZkMzA5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAt
IGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4My5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRlNjZjYmM2YzMwN2RmM2Y3MWQ4N2UzMzRiMGU0MjYwZGEw
NzE3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLmh0bQpAQCAtMCww
ICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBp
bmRleCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0
aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5
OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgdmFyIGlu
ZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1
cnNvciBleGlzdCIpOworICAgICAgICAgICAgd2luZG93LmN1cnNvciA9IGN1cnNvcjsKKyAgICAg
ICAgICAgIHdpbmRvdy5yZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAgIH0pOworCisgICAg
ICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJy
b3InLCBmdW5jdGlvbigpIHsgd2luZG93LmN1cnNvci51cGRhdGUod2luZG93LnJlY29yZCk7IH0p
CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNDQ4OTJhMGY1NjBiODIxZjkxYjgyMDVhZWI2N2IzNjg1ZjRiNzcwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkg
YSByZWNvcmQgd2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3JfdXBkYXRlX2luZGV4NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmFkMjk0NThjZDc4OTdmZDRhZGQ4Y2M1YjQzZGZiYzk3Yjc4N2VkZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0Lmh0bQpAQCAtMCwwICsxLDM5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IudXBk
YXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIHdoZW4gb2JqZWN0IHN0
b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVs
IiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKKyAg
ICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtr
ZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9Cisg
ICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKyAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgZGIu
ZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBjdXJzb3IudmFsdWUuaUtl
eSArPSAiX3VwZGF0ZWQiOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRl
RXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IudXBkYXRlKGN1cnNv
ci52YWx1ZSk7CisgICAgICAgICAgICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZl
Y3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBN
VVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKKwor
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwOWE1NjAzZGU4YThmOTk5MDVk
M2U0MjJmOGIyOTliMjMwMDI2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5k
ZXg1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRl
KCkgLSBpbmRleCAtIHRocm93IERhdGFDbG9uZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzgyNTNlNTRiMTEwNzVmNzI1NDYxMTc0NWRkYTdkNGUyNmFlMDk2MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1Lmh0bQpAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIHRocm93IERhdGFDbG9u
ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0
dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJD
dXJzb3ItdXBkYXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIg
fSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29y
X3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAg
ICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAgICAgICAgcmVjb3JkLmRhdGEg
PSBkb2N1bWVudDsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0RhdGFDbG9uZUVycm9yJywg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShyZWNvcmQpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQor
PC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDAxNWEx
ODA1ZmEwYzRhOTg5YWUyMTIyM2E2N2M5NDMyODNjZmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX3VwZGF0ZV9pbmRleDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gbm8gYXJndW1lbnQgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvcl91cGRhdGVfaW5kZXg2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMjI4ZDc5YjNmNTlkOWY2ZTQ0OWE2ODg1NmU3ZGMzMTE4ZWQwZTE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYuaHRtCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gbm8gYXJndW1l
bnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNv
ci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsg
eyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5
UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRlKCk7IH0pOworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRl
X2luZGV4Ny1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE2YmRhYTcyMDEyODJmMTliNTQ1NGRj
ZWM4NmY4MWVlNjNhOTc0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkg
LSBpbmRleCAtIHRocm93IERhdGFFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9p
bmRleDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyNzBlYmVl
Yzg3ZjkyMmM4NTQxMjc1ODIwM2QxMzQ3OWNlYWQ4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4Ny5odG0KQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSB0aHJvdyBEYXRhRXJyb3I8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUt
SURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAg
IHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBL
ZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwor
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImlu
ZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAg
ICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90
cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRlKG51bGwpOyB9KTsK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDRiMDY3NWY2
YjBhYjJhYjM3MzVkY2UyNmQ2MTBhZGIzNDZjMGI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0c3RvcmUgLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhl
IG9iamVjdCBzdG9yZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhiMTM3Y2U2
MDFkZGNiNjFkNzAwZGZhYTIxMDIwODY1ZDE0OGYzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl91cGRhdGVfb2JqZWN0c3RvcmUuaHRtCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdHN0b3JlIC0gbW9kaWZ5IGEgcmVj
b3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZh
ciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6
ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5
XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsK
KworICAgICAgICAvLyBYWFg6IEdlY2tvIGRvZXNuJ3QgbGlrZSB0aGlzCisgICAgICAgIC8vZS50
YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKEN1cnNvclVwZGF0ZVJl
Y29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gQ3Vyc29yVXBkYXRlUmVj
b3JkOworCisKKyAgICBmdW5jdGlvbiBDdXJzb3JVcGRhdGVSZWNvcmQoZSkgeworICAgICAgICB2
YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIiksCisgICAgICAgICAg
Y3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgICAgICAgICAgY3Vyc29yLnZhbHVlLmRhdGEgPSAiTmV3IGluZm9ybWF0aW9u
ISI7CisgICAgICAgICAgICBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7CisgICAgICAgIH0p
OworCisgICAgICAgIHR4bi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkV2Fz
VXBkYXRlZCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRXYXNVcGRhdGVk
KGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFs
dWUuZGF0YSwgIk5ldyBpbmZvcm1hdGlvbiEiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MzdhNTU3YjVk
NTNkMDgxZmJkNjZjYWQwMWQ5NjYwNTg4ZDRjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
dXBkYXRlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSBy
ZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91
cGRhdGVfb2JqZWN0c3RvcmUyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUyLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZWE5MzU4YTc1OTY2NGUyNjg2Yzk1ZDEyODk2NTMxNWFlMjNkNTAyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTIuaHRtCkBAIC0wLDAgKzEs
MzggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVj
dCBzdG9yZSAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5z
YWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5
bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtl
eTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5
XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9y
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIg
Y3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnUmVh
ZE9ubHlFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7IH0p
OworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjM2YjFmOWIxOTVlY2MyODI2YmYyZDQ4MmNkNmE1MTg3ZjgzMWE2
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qg
c3RvcmUgLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2Fj
dGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyODVkNzQ0MDEzZjIzYzQw
Mzk2YTVhMDVmODQ5OGRiOWQwMDE4ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlMy5odG0KQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkg
YSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0g
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5
UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5s
ZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKworICAg
ICAgICB2YXIgY3Vyc29yX3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAg
ICB3aW5kb3cuY3Vyc29yID0gY3Vyc29yOworICAgICAgICAgICAgd2luZG93LnJlY29yZCA9IGN1
cnNvci52YWx1ZTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cu
Y3Vyc29yLnVwZGF0ZSh3aW5kb3cucmVjb3JkKTsgfSkKKyAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzODNiMmU3
ZWM0NGJiYjg1ZmFjYzhlYzI1YWIxZTI1Zjk3ZThhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9i
amVjdCBzdG9yZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NTcxOGFlZWRl
ZDA2OGMyODdhMGE4ZGI4ZDhmNTk3MWRmMDRhY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
dXBkYXRlX29iamVjdHN0b3JlNC5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4g
dGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2
YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEw
MDAwfSkKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOwor
CisgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICJrZXkiKTsKKyAgICB9OworCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciB0
eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKSwKKyAgICAgICAgICBjdXJz
b3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
IC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgICAgIGN1cnNvci52YWx1ZSA9ICJuZXcgZGF0YSEiOworICAgICAgICAg
ICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgImtleSIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1
cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmVkYjMz
YzlmZjJhMDEyZjdmYjViMDYwNGVkZjU4YzZjY2Q3NTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gIG1vZGlm
eSBhIHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmU1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zOTY0ZGI5NzgwOTJkYzdmZWNjOThjNzlmYjkwYTY5OThiZjll
NDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUuaHRtCkBA
IC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gIG1v
ZGlmeSBhIHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBv
YmpTdG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJD
dXJzb3IsICJjdXJzb3IgZXhpc3RzIik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0
b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBjdXJzb3IudmFsdWUgKz0gIl91cGRhdGVkIjsKKyAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOworICAgICAgICAg
ICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBo
YXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2Vw
dGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7CisKKworICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3Jf
dXBkYXRlX29iamVjdHN0b3JlNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI2NzIxYmI5N2Q4MTM4OGRlZjM1NzNlZDQ3
MTkzMGZjYjlkMmY5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRl
KCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBEYXRhQ2xvbmVFcnJvciAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9y
ZTYuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ0ODIzNGMyODg2NjhjNTI1NzBkY2JmOTI0NGZjNzI2ODBjNjI4
YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi5odG0KQEAg
LTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgp
IC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUNsb25lRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVzdC1h
bnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8w
IiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgcEtleTogInBy
aW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigp
OworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAg
ICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAgIHJlY29yZC5kYXRhID0g
ZG9jdW1lbnQ7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRhQ2xvbmVFcnJvcicsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUocmVjb3JkKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwv
c2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGJlOGRlMTRmNDdkYWUyODQ0ZjNiNGZkYmQzOGFmMTE3OGQxOTZiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBubyBhcmd1
bWVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiOTgwNjNlMDk5N2I0YzIz
NjdiMjNkNGJjMmRhZTljZjEyNTU3YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlNy5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gbm8gYXJndW1lbnQ8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUt
SURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAg
IHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBL
ZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkr
KykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAu
b3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsK
KworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkg
eyBjdXJzb3IudXBkYXRlKCk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0p
OworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0
b3JlOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGM0Njg1N2YwMTM2OGQ2Y2MwODFlNmNjNTI5ZjNhODk5NmJlODRlOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3Rv
cmUgLSB0aHJvdyBEYXRhRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmU4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4Lmh0bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NDhjNTQ5MTY5YjA1MjgyNWU4ZWU2YzY2MzE2OWY5OTQ5MGVjZjAxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTguaHRtCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIHRo
cm93IERhdGFFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICBy
ZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4
S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5z
dGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRhRXJy
b3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZShudWxsKTsgfSk7CisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRh
dGFiYXNlX2Nsb3NlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2Nsb3NlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45Y2UxOWIzYWY2YTVkMmE1OGI1Nzg4YzUxZTZmZTUwMTA4MWJmMjhmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY2xvc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkRhdGFiYXNlLmNsb3NlKCkgLSB1bmJsb2NrIHRoZSB2ZXJzaW9uIGNoYW5n
ZSB0cmFuc2FjdGlvbiBjcmVhdGVkIGJ5IGFuIG9wZW4gZGF0YWJhc2UgcmVxdWVzdCAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZGF0YWJhc2VfY2xvc2UuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY2xvc2UuaHRtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNiZWViN2QzNDg2MzZiZDdjZjNiNGMzODVlNDc3ZDg0YTkxZWU1MTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJkYXRhYmFzZV9jbG9zZS5odG0KQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY2xvc2UoKSAtIHVuYmxvY2sgdGhlIHZlcnNpb24gY2hh
bmdlIHRyYW5zYWN0aW9uIGNyZWF0ZWQgYnkgYW4gb3BlbiBkYXRhYmFzZSByZXF1ZXN0PC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KK3ZhciBkYjsKK3ZhciB2ZXJzaW9uY2hhbmdlX2ZpcmVkOwordmFy
IGJsb2NrZWRfZmlyZWQ7Cit2YXIgdXBncmFkZW5lZWRlZF9maXJlZDsKK3ZhciB0ID0gYXN5bmNf
dGVzdCgpOwordmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKK3ZhciBjb3VudGVyID0gMDsKKwor
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9CitvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBkYi5vbnZl
cnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHZlcnNpb25j
aGFuZ2VfZmlyZWQgPSBjb3VudGVyKys7CisgICAgfSk7CisgICAgdmFyIHJxID0gd2luZG93Lmlu
ZGV4ZWREQi5vcGVuKGRiLm5hbWUsIGRiLnZlcnNpb24gKyAxKTsKKyAgICBycS5vbmJsb2NrZWQg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgeworICAgICAgICBibG9ja2VkX2ZpcmVkID0gY291
bnRlcisrOworICAgICAgICBkYi5jbG9zZSgpOworICAgIH0pOworICAgIHJxLm9udXBncmFkZW5l
ZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICAgIHVwZ3JhZGVuZWVkZWRf
ZmlyZWQgPSBjb3VudGVyKys7CisgICAgfSk7CisgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2ZXJzaW9uY2hhbmdlX2Zp
cmVkLCAwLCAndmVyc2lvbmNoYW5nZSBldmVudCBmaXJlZCAjJykKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhibG9ja2VkX2ZpcmVkLCAxLCAnYmxvY2sgZXZlbnQgZmlyZWQgIycpCisgICAgICAgIGFz
c2VydF9lcXVhbHModXBncmFkZW5lZWRlZF9maXJlZCwgMiwgJ3NlY29uZCB1cGdyYWRlbmVlZGVk
IGV2ZW50IGZpcmVkICMnKQorCisgICAgICAgIHQuZG9uZSgpOworICAgIH0pOworICAgIHJxLm9u
ZXJyb3IgPSBmYWlsKHQsICdVbmV4cGVjdGVkIGRhdGFiYXNlIGRlbGV0aW9uIGVycm9yJyk7Cit9
OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFi
YXNlX2Nsb3NlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jbG9zZTItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlmNmNlZTljMTM1ZDlhZjNjMTY5MDU1M2FmYTAwMzRiY2NlZjdkNzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jbG9zZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkRhdGFiYXNlLmNsb3NlKCkgLSB1bmJsb2NrIHRoZSBkZWxldGUgZGF0YWJh
c2UgcmVxdWVzdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY2xvc2UyLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNl
X2Nsb3NlMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVjYTc1YzA0NDBlODVlZGY1MmJkYmQ2ZDliYzFhMmUx
MmE0NzM3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2Nsb3NlMi5odG0KQEAgLTAsMCAr
MSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY2xvc2UoKSAtIHVu
YmxvY2sgdGhlIGRlbGV0ZSBkYXRhYmFzZSByZXF1ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KwordmFyIGRiOwordmFyIGJsb2NrZWRfZmlyZWQgPSBmYWxzZTsKK3ZhciB2ZXJzaW9uY2hhbmdl
X2ZpcmVkID0gZmFsc2U7Cit2YXIgdCA9IGFzeW5jX3Rlc3QoKTsKK3ZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oKSB7fSk7CitvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICB2ZXJzaW9uY2hhbmdlX2ZpcmVkID0gdHJ1
ZTsKKyAgICB9KTsKKworICAgIHZhciBycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGIubmFtZSk7CisgICAgcnEub25ibG9ja2VkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUp
IHsKKyAgICAgICAgYmxvY2tlZF9maXJlZCA9IHRydWU7CisgICAgICAgIGRiLmNsb3NlKCk7Cisg
ICAgfSk7CisgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsKKyAg
ICAgICAgYXNzZXJ0X3RydWUodmVyc2lvbmNoYW5nZV9maXJlZCwgInZlcnNpb25jaGFuZ2UgZXZl
bnQgZmlyZWQiKQorICAgICAgICBhc3NlcnRfdHJ1ZShibG9ja2VkX2ZpcmVkLCAiYmxvY2sgZXZl
bnQgZmlyZWQiKQorICAgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKyAgICBycS5vbmVycm9yID0g
ZmFpbCh0LCAnVW5leHBlY3RlZCBkYXRhYmFzZSBkZWxldGlvbiBlcnJvcicpOworfSk7CisKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjhjYjYwMDcwYzU2MzU0NzI5Y2UyYjE2M2JhM2NmNjQzNjE2MDBhYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVt
cHR5bmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoKSBhbmQgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGJv
dGggd2l0aCBlbXB0eSBuYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZS1jcmVhdGVJbmRleC1lbXB0eW5hbWUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTk3YzJlYjIzNDkxNjlm
OTQ0OTJmYjU5NzZhNmE2MjBlY2ZhM2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLmh0bQpAQCAtMCwwICsxLDQ1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCRGF0YWJh
c2UuY3JlYXRlT2JqZWN0U3RvcmUoKSBhbmQgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAt
IGJvdGggd2l0aCBlbXB0eSBuYW1lPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2
YXIgZGIKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdAorICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiIikK
KworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykKKyAgICAgICAgICAgIHN0b3Jl
LmFkZCh7IGlkeDogIm9iamVjdF8iICsgaSB9LCBpKQorCisgICAgICAgIHN0b3JlLmNyZWF0ZUlu
ZGV4KCIiLCAiaWR4IikKKworICAgICAgICBzdG9yZS5nZXQoNCkKKyAgICAgICAgICAgICAub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaWR4LCAnb2JqZWN0XzQnLCAncmVzdWx0JykKKyAgICAg
ICAgfSkKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzWzBdLCAiIiwgImlu
ZGV4TmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXMubGVu
Z3RoLCAxLCAiaW5kZXhOYW1lcy5sZW5ndGgiKQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCIi
KS5vYmplY3RTdG9yZSgiIikKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFt
ZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUu
aW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpCisKKyAgICAgICAgc3Rv
cmUuaW5kZXgoIiIpCisgICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQorICAgICAgICAgICAg
IC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pZHgsICdvYmplY3RfNCcsICdyZXN1bHQnKQor
ICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGNjNGNkZDFkNWQxMmVkMTEyZjJiNTQ0ZjhhY2UxYTRhMzZjMDM2NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0g
cmV0dXJucyBhbiBpbnN0YW5jZSBvZiBJREJPYmplY3RTdG9yZSAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYwYTdmNmYxZDQ4NWM2YWU5OTAyZGY5Mzg3Njg1NzZiOTc5YzNlNzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS5odG0KQEAgLTAs
MCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoKSAtIHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgSURCT2JqZWN0U3RvcmU8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
IHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdpbnN0YW5jZXRlc3QnKQorCisgICAgYXNzZXJ0X3RydWUob2JqU3RvcmUgaW5z
dGFuY2VvZiBJREJPYmplY3RTdG9yZSwgJ2luc3RhbmNlb2YgSURCT2JqZWN0U3RvcmUnKQorfQor
CitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdl
dC5yZXN1bHQKKyAgICB2YXIgb2JqU3RvcmUgPSBkYi50cmFuc2FjdGlvbignaW5zdGFuY2V0ZXN0
Jykub2JqZWN0U3RvcmUoJ2luc3RhbmNldGVzdCcpCisKKyAgICBhc3NlcnRfdHJ1ZShvYmpTdG9y
ZSBpbnN0YW5jZW9mIElEQk9iamVjdFN0b3JlLCAnaW5zdGFuY2VvZiBJREJPYmplY3RTdG9yZScp
CisgICAgdC5kb25lKCkKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNmYjk1YWJmYTM1MjRmMjFiZDkzN2NiNjYxZjFmZGZkYzdhZGYxNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0
b3JlKCkgLSBjcmVhdGUgMTAwMCBvYmplY3Qgc3RvcmVzLCBhZGQgb25lIGl0ZW0gYW5kIGRlbGV0
ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYWU3NjYxYzg0NzQ1Zjk1NDhhZDFmNTQ3YWVjOTAzMzcwNmQ1YzAyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG0KQEAgLTAsMCAr
MSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0
U3RvcmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVjdCBzdG9yZXMsIGFkZCBvbmUgaXRlbSBhbmQgZGVs
ZXRlPC90aXRsZT4KKzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgordmFyIGRiLAor
ICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogNjAwMDAwfSksCisg
ICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgdmFyIHN0LCBpOworICAg
IGZvciAoaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgeworICAgICAgICBzdCA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJvYmplY3Rfc3RvcmVfIiArIGkpCisgICAgICAgIHN0LmFkZCgidGVzdCIs
IDEpOworICAgIH0KKworICAgIHN0LmdldCgxKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAidGVzdCIp
CisgICAgfSkKK30KK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIGRiLmNs
b3NlKCkKKyAgICB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdC5kb25lKCkKKyAgICB9Cit9Cis8L3Njcmlw
dD4KKworCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGI3YTU3
Yzk2ZGVhMmEyZTQ5ZTZmNDc4YTc5MGU0NGRmOTQ2YmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBlbXB0eSBu
YW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFt
ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTk0MTRkMjliMmVhYzIzNjIxNzE4MjY5Zjg4NTIyNDVlNmFhNjdmOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLmh0bQpAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0
bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGVtcHR5IG5hbWU8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYihhc3luY190ZXN0KCkpCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBzdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCIiKQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
NTsgaSsrKQorICAgICAgICAgICAgc3RvcmUuYWRkKCJvYmplY3RfIiArIGksIGkpCisKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0
b3JlTmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoLCAxLCAib2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQorICAgIH0KKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCIiKS5vYmplY3RTdG9yZSgiIikKKworICAgICAgICBzdG9yZS5nZXQoMikub25zdWNj
ZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsICJvYmplY3RfMiIpCisgICAgICAgIH0pCisKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0b3Jl
TmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoLCAxLCAib2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQorCisgICAgICAgIHRoaXMuZG9uZSgp
CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjdlZWIxNjU5ODA1ZDM5OTJj
MTJmZGQ0ZWQwYzQ5YjU1ODIzYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRl
T2JqZWN0U3RvcmUxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0
YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGFuIGV4aXN0
aW5nIG9iamVjdCBzdG9yZSB3aXRoIGEgZGlmZmVyZW50IGtleVBhdGggdGhyb3cgQ29uc3RyYWlu
dEVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmUyMzNhNmU2
NmUxNzgwMTU5ODZiMzZkMjk1N2UxMzBlNTFjZjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUxMS5odG0KQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoKSAtIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGFuIGV4aXN0aW5nIG9iamVjdCBzdG9y
ZSB3aXRoIGEgZGlmZmVyZW50IGtleVBhdGggdGhyb3cgQ29uc3RyYWludEVycm9yIDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVs
LmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5k
ZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRGF0YWJhc2UtY3JlYXRl
T2JqZWN0U3RvcmUtSURCT2JqZWN0U3RvcmUtRE9NU3RyaW5nLW5hbWUtSURCT2JqZWN0U3RvcmVQ
YXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIg
dCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgYXNzZXJ0X3Ro
cm93cygiQ29uc3RyYWludEVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeworICAgICAgICAgICAga2V5UGF0aDogImtleTEiLAorICAgICAg
ICB9KTsKKyAgICB9KTsKKyAgICB0LmRvbmUoKTsKK30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2Q3MTU3ZWU4MTA5ZmQz
NjRhMTY4NTA4ZTM5Y2I0MTdlOWU1NmFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJE
YXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlICduYW1lJyBhbmQgJ2tl
eVBhdGgnIHByb3BlcnRpZXMgYXJlIGNvcnJlY3RseSBzZXQgIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRh
YmFzZV9jcmVhdGVPYmplY3RTdG9yZTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUy
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZTZkNWM1NjNhYjQ5ZDE4Y2MyNmM1ZDc1NTQyYzRjYjkzNGM5NjY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLmh0bQpAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVP
YmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlICduYW1lJyBhbmQgJ2tleVBhdGgnIHByb3BlcnRp
ZXMgYXJlIGNvcnJlY3RseSBzZXQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBh
c3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdCwK
KyAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicHJvcCIsIHsga2V5UGF0
aDogIm15a2V5cGF0aCIgfSkKKworICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUubmFtZSwgInBy
b3AiLCAib2JqZWN0IHN0b3JlIG5hbWUiKQorICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUua2V5
UGF0aCwgIm15a2V5cGF0aCIsICJrZXkgcGF0aCIpCisgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9y
ZS5hdXRvSW5jcmVtZW50LCBmYWxzZSwgImF1dG8gaW5jcmVtZW50IikKK30KKworb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0Cisg
ICAgdmFyIG9ialN0b3JlID0gZGIudHJhbnNhY3Rpb24oJ3Byb3AnKS5vYmplY3RTdG9yZSgncHJv
cCcpCisKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLm5hbWUsICJwcm9wIiwgIm9iamVjdCBz
dG9yZSBuYW1lIikKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmtleVBhdGgsICJteWtleXBh
dGgiLCAia2V5IHBhdGgiKQorICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuYXV0b0luY3JlbWVu
dCwgZmFsc2UsICJhdXRvIGluY3JlbWVudCIpCisgICAgdC5kb25lKCkKK30KKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjJhY2Y5YzI1ODZhNmIwYTUzYThkOWNlNGVkZjBjNWEyZWEyM2Y3
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZDEwZTkwZDhiOWViOTI0ZTA0NTU2MzA3NTdkM2QxZDA5MjdkMjJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bQpAQCAtMCwwICsxLDI0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgp
IC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9u
IGNoYW5nZSB0cmFuc2FjdGlvbiA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9CitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChl
KSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgYXNzZXJ0X3Rocm93cygKKyAg
ICAgICAgJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdmYWlscycpIH0pCisgICAgdC5kb25lKCk7Cit9CisKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDgyM2U5ZWI4NWJkY2JlZjNkYmQxMDFhMDgwMWRkZGQ4MzU1YTMw
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGFscmVhZHkgZXhp
c3RzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU0Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJjN2ZmZWY1YzAyZDYy
ZTkxZmM3MDVkNGExZTliMWE1ZDUzN2YxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlNC5odG0KQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRl
IGFuIG9iamVjdCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzIDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQor
CitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBl
LnRhcmdldC5yZXN1bHQKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZHVwZSIpCisgICAgYXNz
ZXJ0X3Rocm93cygKKyAgICAgICAgJ0NvbnN0cmFpbnRFcnJvcicsCisgICAgICAgIGZ1bmN0aW9u
KCkgeyBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZHVwZSIpIH0pCisKKyAgICAvLyBCb251cyB0ZXN0
IGNyZWF0aW5nIGEgbmV3IG9iamVjdHN0b3JlIGFmdGVyIHRoZSBleGNlcHRpb24KKyAgICBkYi5j
cmVhdGVPYmplY3RTdG9yZSgiZHVwZSAiKQorICAgIHQuZG9uZSgpCit9CisKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmQ2NjJiODNkMzEyYzJlNzMyNDE4MTNmOWJmYWNhYmU1Y2RhOWUz
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSAtIG9iamVjdCBzdG9yZSdzIG5hbWUgYXBwZWFycyBpbiBkYXRhYmFzZSdzIGxpc3QgIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDdhOTM4OTAzMmQ0OWI4ZjEwZDc5
ZDhkNWI5MDY4MzY0ZWU0MTYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU1Lmh0bQpAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlJ3MgbmFtZSBhcHBl
YXJzIGluIGRhdGFiYXNlJ3MgbGlzdCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0
CisKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiTXkgY29vbCBvYmplY3Qgc3RvcmUgbmFtZSIp
CisgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMo
Ik15IGNvb2wgb2JqZWN0IHN0b3JlIG5hbWUiKSwKKyAgICAgICAgJ29iamVjdFN0b3JlTmFtZXMu
Y29udGFpbnMnKQorfQorCitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2
YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgIGFzc2VydF90cnVlKAorICAgICAgICBkYi5v
YmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJNeSBjb29sIG9iamVjdCBzdG9yZSBuYW1lIiksCisg
ICAgICAgICdvYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zIChpbiBzdWNjZXNzKScpCisgICAgdC5k
b25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGRmYzRlNzE5MzQwZWIz
YzllMjVjYjhmZmIxYmI5NWMyZGM1N2M4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJE
YXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0
IHN0b3JlIHdpdGggYW4gaW52YWxpZCBrZXkgcGF0aCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlNi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFlM2Y0MDA4OTgxOTNmMmQ0NTU3YzQ3ZjlkNTBkZGI4OTRlNDhlZmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYuaHRtCkBAIC0wLDAg
KzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVj
dFN0b3JlKCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgd2l0aCBhbiBpbnZh
bGlkIGtleSBwYXRoIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVz
dCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgIGFz
c2VydF90aHJvd3MoJ1N5bnRheEVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkYi5j
cmVhdGVPYmplY3RTdG9yZSgiaW52YWxpZGtleXBhdGgiLCB7IGtleVBhdGg6ICJJbnZhbGlkIEtl
eXBhdGgiIH0pCisgICAgICAgIH0pCisKKyAgICBhc3NlcnRfdGhyb3dzKCdTeW50YXhFcnJvcics
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoImludmFsaWRr
ZXlwYXRoIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlQYXRoOiAiSW52YWxpZCBLZXlwYXRoIiB9
KQorICAgICAgICB9KQorCisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NzM5ZjhjNzk2NDlkZDVkZmIwOWI2MDUwZWQ2ZWEwOTAxMGJjYTEwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gY3Jl
YXRlIGFuIG9iamVjdCBzdG9yZSB3aXRoIGFuIHVua25vd24gb3B0aW9uYWwgcGFyYW1ldGVyIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTcuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU3Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjZhMzA5OTBkYzNlZTZmMTM3Njdi
ZGQ2NTNkMGFiNDM2MjA1OWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU3Lmh0bQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB3
aXRoIGFuIHVua25vd24gb3B0aW9uYWwgcGFyYW1ldGVyIDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDog
MTAwMDB9KSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAg
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoIndpdGggdW5rbm93biBwYXJhbSIsIHsgcGFyYW1ldGVyOiAw
IH0pOworCisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKworPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1l
dGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVy
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmVjMjZjOTRmZjJhNTE4MWE0ZDg5MDYxNWU3YjY5
NDI3YjY4MTI5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3Jl
OC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgSURCT2Jq
ZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlIAorUEFTUyBJREJPYmplY3RTdG9yZVBh
cmFtZXRlcnMgLSBhdXRvSW5jIHRydWUsIGtleVBhdGggbnVsbCAKK1BBU1MgSURCT2JqZWN0U3Rv
cmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIHVuZGVmaW5lZCAKK1BBU1MgSURC
T2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQYXRoIHN0cmluZyAKK1BB
U1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5UGF0aCBlbXB0
eSAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5UGF0
aCBhcnJheSAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwg
a2V5UGF0aCBzdHJpbmcgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGgg
ZW1wdHkgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggYXJyYXkgCitQ
QVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggc3RyaW5nIAorUEFTUyBJREJP
YmplY3RTdG9yZVBhcmFtZXRlcnMgLSBrZXlQYXRoIG51bGwgCitQQVNTIElEQk9iamVjdFN0b3Jl
UGFyYW1ldGVycyAtIGtleVBhdGggdW5kZWZpbmVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTgtcGFyYW1ldGVycy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTgtcGFyYW1ldGVycy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM4YzUyYzQ0OGRkNzE2ZGNlYTRhNGE2
YmY5YjM5NDZkOWEzZjQyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlOC1wYXJhbWV0ZXJzLmh0bQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZVBhcmFtZXRlcnM8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50
PWxvbmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIGZ1bmN0aW9uIG9wdGlvbmFsUGFyYW1ldGVycyhkZXNjLCBwYXJhbXMpIHsK
KyAgICAgICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNj
KTsKKworICAgICAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
cGFyYW1zKTsKKworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH07CisgICAgfQor
CisKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgdHJ1ZSIsICAgICAgICAgICAgICAg
ICAgICB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0
b0luYyB0cnVlLCBrZXlQYXRoIG51bGwiLCAgICAgIHthdXRvSW5jcmVtZW50OiB0cnVlLCAga2V5
UGF0aDogbnVsbH0pOworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyB0cnVlLCBrZXlQ
YXRoIHVuZGVmaW5lZCIsIHthdXRvSW5jcmVtZW50OiB0cnVlLCAga2V5UGF0aDogdW5kZWZpbmVk
fSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUsIGtleVBhdGggc3RyaW5n
IiwgICAge2F1dG9JbmNyZW1lbnQ6IHRydWUsICBrZXlQYXRoOiAiYSJ9KTsKKworICAgIG9wdGlv
bmFsUGFyYW1ldGVycygiYXV0b0luYyBmYWxzZSwga2V5UGF0aCBlbXB0eSIsICB7YXV0b0luY3Jl
bWVudDogZmFsc2UsIGtleVBhdGg6ICIifSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRv
SW5jIGZhbHNlLCBrZXlQYXRoIGFycmF5IiwgIHthdXRvSW5jcmVtZW50OiBmYWxzZSwga2V5UGF0
aDogWyJoIiwgImoiXX0pOworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBmYWxzZSwg
a2V5UGF0aCBzdHJpbmciLCB7YXV0b0luY3JlbWVudDogZmFsc2UsIGtleVBhdGg6ICJhYmMifSk7
CisKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggZW1wdHkiLCAgICAge2tleVBhdGg6
ICIifSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIGFycmF5IiwgICAgIHtrZXlQ
YXRoOiBbImEiLCJiIl19KTsKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggc3RyaW5n
IiwgICAge2tleVBhdGg6ICJhYmMifSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRo
IG51bGwiLCAgICAgIHtrZXlQYXRoOiBudWxsfSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJr
ZXlQYXRoIHVuZGVmaW5lZCIsIHtrZXlQYXRoOiB1bmRlZmluZWR9KTsKKworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTktaW52YWxpZHBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2Q1
YmJiN2VjMDRkYWNmYzgwOWQ1NDliMTk5NjdkZGQ1NmM0N2FhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRp
b25hbFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFuZCBlbXB0eSBrZXlQYXRoIAorUEFTUyBjcmVhdGVP
YmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25hbFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFuZCBrZXlQ
YXRoIGFycmF5IAorUEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25hbFBhcmFt
ZXRlcnMgLSBhdXRvSW5jIGFuZCBrZXlQYXRoIGFycmF5IDIgCitQQVNTIGNyZWF0ZU9iamVjdFN0
b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVycyAtIGF1dG9JbmMgYW5kIGtleVBhdGggb2Jq
ZWN0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52YWxpZHBh
cmFtZXRlcnMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0
ZXJzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNTYyNWUyNDg0OTMxYWMyMDA4MGQzMDk2NGFlOGVmMDA1ZTQ4
MDIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFs
aWRwYXJhbWV0ZXJzLmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+Y3JlYXRlT2JqZWN0U3RvcmU6IEludmFsaWQgb3B0aW9u
YWxQYXJhbWV0ZXJzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBp
bnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycyhkZXNjLCBwYXJhbXMpIHsKKyAgICAgICAgdmFyIHQg
PSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICBj
cmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGUudGFyZ2V0
LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCBwYXJhbXMpOworICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9OworICAgIH0KKworICAg
IGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGFuZCBlbXB0eSBrZXlQYXRoIiwg
e2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6ICIifSk7CisgICAgaW52YWxpZF9vcHRpb25h
bFBhcmFtZXRlcnMoImF1dG9JbmMgYW5kIGtleVBhdGggYXJyYXkiLCB7YXV0b0luY3JlbWVudDog
dHJ1ZSwga2V5UGF0aDogW119KTsKKyAgICBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycygiYXV0
b0luYyBhbmQga2V5UGF0aCBhcnJheSAyIiwge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6
IFsiaGV5Il19KTsKKyAgICBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQg
a2V5UGF0aCBvYmplY3QiLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDoge2E6ImhleSIs
IGI6Mn19KTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfZGVsZXRl
T2JqZWN0U3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNTZhMDk5Njc0YzMxMGYxNWE2
NzJmNTM2ZDA2NTFmNDliY2JjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9kZWxldGVP
YmplY3RTdG9yZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJh
c2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSdzIG5hbWUgaXMgcmVtb3ZlZCBm
cm9tIGRhdGFiYXNlJ3MgbGlzdCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVj
dFN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLmh0bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NjdmYzBlNjU1ZWNhYzUyN2IzZWFjMzM5NzM0MDMzNTU5MjI2YTYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUuaHRtCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBvYmpl
Y3Qgc3RvcmUncyBuYW1lIGlzIHJlbW92ZWQgZnJvbSBkYXRhYmFzZSdzIGxpc3QgPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1p
Y3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
IHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorCisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoImRl
bGV0ZWQiKTsKKyAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgiZGVsZXRlZCIpOworICAgIGFzc2Vy
dF9mYWxzZShkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJkZWxldGVkIikpCisKKyAgICB0
LmRvbmUoKQorfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9k
ZWxldGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYzdkNjIzMzVkMTJh
NzIyNjIwOWNmOGUyMGUyMjk1MDgyZGRhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9k
ZWxldGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBhdHRlbXB0IHRvIHJlbW92ZSBhbiBvYmpl
Y3Qgc3RvcmUgb3V0c2lkZSBvZiBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uICAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRhODdlY2I5ZDBlOTFiNjM1YjRlNmMwNjgz
OWUwNTE5YmZlMGFjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0
b3JlMi5odG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0
YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBz
dG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpCit7CisgICAg
dmFyIGRiID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIpOworCisgICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKQorICAgIHsKKyAgICAgICAgYXNz
ZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIpOyB9KTsKKyAgICAgICAgdC5k
b25lKCk7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorCisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGM0ZTZlNjRjMjkyMzM1N2E5ZWQ4NTMyMmMzN2VjOGEyOWIxYjdiZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8g
cmVtb3ZlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGRvZXMgbm90IGV4aXN0ICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVj
dFN0b3JlMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ5N2MxNjllNTlhZjEzMjE0YTcwNjllY2RmZjY5MDVi
YjkzMjk1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy5o
dG0KQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2Uu
ZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBzdG9yZSB0
aGF0IGRvZXMgbm90IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5
bmNfdGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKQoreworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICBhc3NlcnRfdGhyb3dzKCdOb3RGb3VuZEVycm9yJywKKyAgICAgICAgZnVuY3Rpb24oKSB7
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCd3aGF0ZXZlcicpOyB9KTsKKyAgICB0LmRvbmUoKTsKK30K
KworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFz
ZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9k
ZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFj
ZDE2MjdlMWRiMjExMWU4MmNiNzYwNGFiZjk1ZjU5MGQ2ZmI2ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gdGhl
IG9iamVjdCBzdG9yZSBpcyBub3QgcmV1c2VkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9kZWxl
dGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9y
ZTQtbm90X3JldXNlZC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RhNzg5YTY0ZmE2MzAxMGE0NDVmMDEzZjZm
YmY1MWUxNjJhNzU0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0
b3JlNC1ub3RfcmV1c2VkLmh0bQpAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUo
KSAtIHRoZSBvYmplY3Qgc3RvcmUgaXMgbm90IHJldXNlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEw
MDAwfSksCisgICAga2V5cyA9IFtdLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdl
dC5yZXN1bHQKKworICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJyZXN1
cnJlY3RlZCIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogImsiIH0pOworICAgIG9i
alN0b3JlLmFkZCh7azo1fSkub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeyBrZXlzLnB1c2goZS50
YXJnZXQucmVzdWx0KTsgfQorICAgIG9ialN0b3JlLmFkZCh7fSkub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeyBrZXlzLnB1c2goZS50YXJnZXQucmVzdWx0KTsgfQorICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpZHgiLCAiaSIpOworICAgIGFzc2VydF90cnVlKG9ialN0b3JlLmluZGV4TmFtZXMu
Y29udGFpbnMoImlkeCIpKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmtleVBhdGgsICJr
IiwgImtleVBhdGgiKTsKKworICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJyZXN1cnJlY3RlZCIp
OworCisgICAgdmFyIG9ialN0b3JlMiA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJyZXN1cnJlY3Rl
ZCIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICBvYmpTdG9yZTIuYWRkKCJVbmljb3Ju
cydSJ3VzIikub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeyBrZXlzLnB1c2goZS50YXJnZXQucmVz
dWx0KTsgfTsKKyAgICBhc3NlcnRfZmFsc2Uob2JqU3RvcmUyLmluZGV4TmFtZXMuY29udGFpbnMo
ImlkeCIpLCAiaW5kZXggZXhpc3Qgb24gbmV3IG9ianN0b3JlIik7CisgICAgYXNzZXJ0X2VxdWFs
cyhvYmpTdG9yZTIua2V5UGF0aCwgbnVsbCwgImtleVBhdGgiKTsKKworICAgIGFzc2VydF90aHJv
d3MoIk5vdEZvdW5kRXJyb3IiLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUyLmluZGV4KCJpZHgiKTsg
fSk7Cit9CisKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoa2V5cywgWzUsIDYsIDFdLCAia2V5cyIpOworICAgIHQuZG9uZSgpOworfQor
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNl
X3RyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZjUwNmE3YTRlNTYxY2VkYjg0ODUwMWM5OWRlMmNhMDIwMTIwMmIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0
IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgc2NvcGUgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmRhdGFiYXNlX3RyYW5zYWN0aW9uLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOGMyYzlmNTk0YjQzMjRkNjFlZjQxMjBiNDYzNDk1NzU0MDM0NGIxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24uaHRtCkBAIC0wLDAgKzEsMjQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0
IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgc2NvcGU8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCit2YXIgZGIsCisgIHQgPSBhc3luY190ZXN0KCksCisgIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9Oworb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICBhc3NlcnRfdGhyb3dzKCdOb3RGb3VuZEVycm9yJywgZnVuY3Rpb24oKSB7IGRiLnRy
YW5zYWN0aW9uKCdub24tZXhpc3RpbmcnKTsgfSk7CisgICAgdC5kb25lKCk7Cit9OworCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE2NTE3NzJiZTYzOGMzM2EyYzNiOGE2YThlNWU3NzkzMGQ5Y2VlOWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBvcGVuaW5nIGEg
dHJhbnNhY3Rpb24gZGVmYXVsdHMgdG8gYSByZWFkLW9ubHkgbW9kZSAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmRhdGFiYXNlX3RyYW5zYWN0aW9uMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE5MmU0MjdiMDI3MTA2YTNkYzg4YmVkZTQ5ZTE0YjQ2MzAzNTVlZDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjIuaHRtCkBAIC0wLDAgKzEsMjcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBvcGVu
aW5nIGEgdHJhbnNhY3Rpb24gZGVmYXVsdHMgdG8gYSByZWFkLW9ubHkgbW9kZSA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorCit2YXIgZGIsCisgIHQgPSBhc3luY190ZXN0KCksCisgIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Jl
YWRvbmx5Jyk7Cit9Oworb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgdmFy
IHR4biA9IGRiLnRyYW5zYWN0aW9uKCdyZWFkb25seScpOworICAgIGFzc2VydF9lcXVhbHModHhu
Lm1vZGUsICJyZWFkb25seSIsICd0eG4ubW9kZScpOworCisgICAgdC5kb25lKCk7Cit9OworCis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3Ry
YW5zYWN0aW9uMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1YWU0M2IxMDlkNjYxNjZjZDIwMGZmMWNkNGVjOWMzYjUyMzIyZjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRlbXB0
IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiBmcm9tIGNsb3NlZCBkYXRhYmFzZSBjb25uZWN0aW9uICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA4N2FlY2M4ZGVlYTA4ZjI3ZjNhYzU5YjZlNGQ1NGUw
MGNmMDMwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy5odG0KQEAg
LTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UudHJhbnNh
Y3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBhIHRyYW5zYWN0aW9uIGZyb20gY2xvc2VkIGRhdGFi
YXNlIGNvbm5lY3Rpb24gPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpOworICAg
IH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIu
Y2xvc2UoKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCisg
ICAgICAgICAgICBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rpb24oJ3Rlc3QnKTsgfSk7CisKKyAg
ICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFi
YXNlX3RyYW5zYWN0aW9uNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhkMWJlNmNkMmYxMWVk
ZWU5MWNiMWQzM2Q1NmIzZDg5ZWY4ZTUwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3Ry
YW5zYWN0aW9uNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJh
c2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBhIHRyYW5zYWN0aW9uIHdpdGggaW52
YWxpZCBtb2RlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0
YWJhc2VfdHJhbnNhY3Rpb240Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTIwZjA3OWRiZjBjZDQyN2Q5N2Mw
MTcyZWI3YzRkZWFlNzRkMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rp
b240Lmh0bQpAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRh
YmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVuIGEgdHJhbnNhY3Rpb24gd2l0aCBp
bnZhbGlkIG1vZGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwK
KyAgICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAn
VHlwZUVycm9yJyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCd0
ZXN0JywgJ3doYXRldmVyJyk7IH0pOworCisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQxYzcyODNjZTZkY2UxMjI5ZTc2MzEwYjYzNWZmZjU1Y2FiNjZhODEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBJZiBzdG9yZU5h
bWVzIGlzIGFuIGVtcHR5IGxpc3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9N
RXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZEFjY2Vzc0Vycm9yIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJkYXRh
YmFzZV90cmFuc2FjdGlvbjUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZWY2ZDJhNDBlN2E4NDllOWE2MTg4OTg1NDdlMjBmNGNmOTZmYjAyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241Lmh0bQpAQCAtMCwwICsxLDIyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJEYXRhYmFzZS50
cmFuc2FjdGlvbigpIC0gSWYgc3RvcmVOYW1lcyBpcyBhbiBlbXB0eSBsaXN0LCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRBY2Nlc3NF
cnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRw
Oi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRGF0
YWJhc2UtdHJhbnNhY3Rpb24tSURCVHJhbnNhY3Rpb24tRE9NU3RyaW5nLXNlcXVlbmNlLURPTVN0
cmluZy0tc3RvcmVOYW1lcy1JREJUcmFuc2FjdGlvbk1vZGUtbW9kZSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxz
Y3JpcHQ+Cit2YXIgZGIsCisgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKK29w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJvcicsIGZ1bmN0aW9uKCkgeyBk
Yi50cmFuc2FjdGlvbihbXSk7IH0pOworICAgIHQuZG9uZSgpOworfTsKKzwvc2NyaXB0PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJmYWN0b3J5X2NtcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X2NtcC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGNkMDRhYjI1YjllZDc4ZDY3MmE4ZjM5ZTkwNDQ1MWI4YzQ4OWE2
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfY21wLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJGYWN0b3J5LmNtcCgpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X2Nt
cC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5X2NtcC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUwYTljMWJjZTI1ZDhiNjg0NmY1
MDAwOTRjOGMwNzcwMWM1YzQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfY21wLmh0bQpA
QCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+SURCRmFjdG9yeS5jbXAoKSAtIGNvbXBhcmVkIGtleXMgcmV0dXJuIGNvcnJlY3QgdmFs
dWU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5q
cz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2
YXIgZ3JlYXRlciA9IHdpbmRvdy5pbmRleGVkREIuY21wKDIsIDEpOworICAgICAgICB2YXIgZXF1
YWwgPSB3aW5kb3cuaW5kZXhlZERCLmNtcCgyLCAyKTsKKyAgICAgICAgdmFyIGxlc3MgPSB3aW5k
b3cuaW5kZXhlZERCLmNtcCgxLCAyKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGdyZWF0ZXIs
IDEsICJncmVhdGVyIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZXF1YWwsIDAsICJlcXVhbCIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGxlc3MsIC0xLCAibGVzcyIpOworICAgIH0sICJJREJG
YWN0b3J5LmNtcCgpIik7Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJmYWN0b3J5X2NtcDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9jbXAyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMzMwNzcyMzhiYmJjZWYzNWE5OTk2MmJiM2Q2OGEyMDQyZTU0ODVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9jbXAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKKworUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gbm8gYXJndW1lbnQgCitQQVNTIElEQkZhY3Rv
cnkuY21wKCkgLSBudWxsIAorUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gTmFOIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJmYWN0b3J5X2NtcDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9jbXAyLmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTM5
ZGQyZDMxNDM4ZDAyOWVmMzZiZjVlOTRlMjcyNjNjMDc5OWVmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZmFjdG9yeV9jbXAyLmh0bQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJGYWN0b3J5LmNtcCgpIC0gaW52YWxpZCBrZXk8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkZhY3Rvcnkt
Y21wLXNob3J0LWFueS1maXJzdC1hbnktc2Vjb25kIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorICAgIHRl
c3QoIGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpbmRleGVkREIuY21wKCk7CisgICAgICAgIH0pOwor
ICAgIH0sICJJREJGYWN0b3J5LmNtcCgpIC0gbm8gYXJndW1lbnQiKTsKKworICAgIHRlc3QoIGZ1
bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGluZGV4ZWREQi5jbXAobnVsbCwgbnVsbCk7CisgICAgICAgIH0pOwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGluZGV4ZWREQi5jbXAoMSwgbnVsbCk7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRf
dGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4ZWREQi5j
bXAobnVsbCwgMSk7CisgICAgICAgIH0pOworICAgIH0sICJJREJGYWN0b3J5LmNtcCgpIC0gbnVs
bCIpOworCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRh
dGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5kZXhlZERCLmNtcChOYU4sIE5h
Tik7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4ZWREQi5jbXAoMSwgTmFOKTsKKyAgICAgICAgfSk7
CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaW5kZXhlZERCLmNtcChOYU4sIDEpOworICAgICAgICB9KTsKKyAgICB9LCAiSURCRmFj
dG9yeS5jbXAoKSAtIE5hTiIpOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVs
ZXRlRGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjU0YmVlNWI0YjE0NWZmMmEzYjc2N2Y0MWU3Y2JkOTliMjBmNGE0
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJl
cXVlc3QgaGFzIG5vIHNvdXJjZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJh
c2UuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAyOGExMWJh
MjRhZjhmZWI5OWJmMTQ1NGYwYThkODA0YjdjYWZiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rv
cnlfZGVsZXRlRGF0YWJhc2UuaHRtCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJlcXVlc3QgaGFzIG5vIHNvdXJj
ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5q
cz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5j
X3Rlc3QoKSwgdW5kZWZpbmVkLCA5KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkge307CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY2xvc2UoKTsKKwor
ICAgICAgICB2YXIgZGVsZXRlX3JxID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Yi5uYW1lKTsKKyAgICAgICAgZGVsZXRlX3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4cGVj
dGVkIGRlbGV0ZV9ycS5lcnJvciBldmVudCIpOworICAgICAgICBkZWxldGVfcnEub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoIGZ1bmN0aW9uIChlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnNvdXJjZSwgbnVsbCwgImV2ZW50LnRhcmdldC5zb3VyY2UiKQorICAgICAg
ICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2
IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNzc1NDEwZWVlN2IyYjk3ZjM0MDI0YzYwN2NlMGZkYTc2MmE4MDhlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJlc3VsdCBvZiB0aGUgcmVx
dWVzdCBpcyBzZXQgdG8gdW5kZWZpbmVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURh
dGFiYXNlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI4
YTQ0YWQzZDBkYmEzY2E5MTc4MDI3ZjZlNzk1NzJlZjU1YjRhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLmh0bQpAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSByZXN1bHQgb2YgdGhl
IHJlcXVlc3QgaXMgc2V0IHRvIHVuZGVmaW5lZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5r
IHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUv
dGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJGYWN0b3J5LWRlbGV0ZURhdGFiYXNlLUlEQk9wZW5E
QlJlcXVlc3QtRE9NU3RyaW5nLW5hbWUiPgorPG1ldGEgbmFtZT1hc3NlcnQgdGl0bGU9IklmIHRo
ZSBzdGVwcyBhYm92ZSBhcmUgc3VjY2Vzc2Z1bCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3Qgc2V0
IHRoZSByZXN1bHQgb2YgdGhlIHJlcXVlc3QgdG8gdW5kZWZpbmVkIGFuZCBmaXJlIGEgc3VjY2Vz
cyBldmVudCBhdCB0aGUgcmVxdWVzdC4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFz
eW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCA5KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkge307CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY2xvc2UoKTsK
KworICAgICAgICB2YXIgZGVsZXRlX3JxID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYi5uYW1lKTsKKyAgICAgICAgZGVsZXRlX3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4
cGVjdGVkIGRlbGV0ZV9ycS5lcnJvciBldmVudCIpOworICAgICAgICBkZWxldGVfcnEub25zdWNj
ZXNzID0gdGhpcy5zdGVwX2Z1bmMoIGZ1bmN0aW9uIChlKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAicmVzdWx0Iik7CisgICAgICAgICAg
ICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjI2OGRkYWQ3M2FjM2UxMGM4ZWE1NzcxMTUzZjU1MzE4NmY1NmMzYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSBzdWNjZXNzIGV2ZW50IAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURh
dGFiYXNlMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIzZWFjZDIwZjYwMDIyZDE1MDQ5NGVkMWI5ZDJiNDVm
Nzk4NDZlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLmh0bQpA
QCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5LmRlbGV0
ZURhdGFiYXNlKCkgLSBzdWNjZXNzIGV2ZW50PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+
Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCRmFjdG9yeS1kZWxldGVEYXRhYmFzZS1J
REJPcGVuREJSZXF1ZXN0LURPTVN0cmluZy1uYW1lIj4KKzxtZXRhIG5hbWU9YXNzZXJ0IHRpdGxl
PSJJZiB0aGUgc3RlcHMgYWJvdmUgYXJlIHN1Y2Nlc3NmdWwsIHRoZSBpbXBsZW1lbnRhdGlvbiBt
dXN0IHNldCB0aGUgcmVzdWx0IG9mIHRoZSByZXF1ZXN0IHRvIHVuZGVmaW5lZCBhbmQgZmlyZSBh
IHN1Y2Nlc3MgZXZlbnQgYXQgdGhlIHJlcXVlc3QuIFRoZSBldmVudCBtdXN0IGltcGxlbWVudCB0
aGUgSURCVmVyc2lvbkNoYW5nZUV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSBvbGRWZXJzaW9uIHNl
dCB0byBkYXRhYmFzZSB2ZXJzaW9uIGFuZCBoYXZlIHRoZSBuZXdWZXJzaW9uIHByb3BlcnR5IHNl
dCB0byBudWxsLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLCB1bmRlZmluZWQsIDkpCisK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29zJykKKyAg
ICB9CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiLmNs
b3NlKCkKKworICAgICAgICB2YXIgZGVsZXRlX3JxID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYi5uYW1lKQorICAgICAgICBkZWxldGVfcnEub25lcnJvciA9IGZhaWwodGhpcywg
IlVuZXhwZWN0ZWQgZGVsZXRlX3JxLmVycm9yIGV2ZW50IikKKyAgICAgICAgZGVsZXRlX3JxLm9u
c3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKCBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDksICJvbGRWZXJzaW9uIikKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCBudWxsLCAibmV3VmVyc2lvbiIpCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAicmVzdWx0IikKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQs
ICJlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50IikKKyAgICAgICAgICAgIHRoaXMu
ZG9uZSgpCisgICAgICAgIH0pCisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeV9kZWxldGVEYXRhYmFzZTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhNzlhM2I5MzM5
NGM2MGI3ZTgxOTkxMmFlMTZiM2I1NDkyNzY4ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5
X2RlbGV0ZURhdGFiYXNlNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgRGVs
ZXRlIGFuIGV4aXN0aW5nIGRhdGFiYXNlIAorUEFTUyBEZWxldGUgYSBub25leGlzdGFudCBkYXRh
YmFzZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eV9kZWxldGVEYXRhYmFzZTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ODRlZTdlYzYxZjJkYjkyNmIzYzVj
MzJkOGUxYTZjY2IyOGE1NWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFi
YXNlNC5odG0KQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+VGVzdCBl
dmVudHMgb3BlbmluZyBhIHNlY29uZCBkYXRhYmFzZSB3aGVuIG9uZSBjb25uZWN0aW9uIGlzIG9w
ZW4gYWxyZWFkeTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KKwor
PHNjcmlwdD4KKworICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiRGVsZXRlIGFuIGV4aXN0aW5nIGRh
dGFiYXNlIik7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBvcGVucnEg
PSBpbmRleGVkREIub3BlbignZGInLCAzKTsKKworICAgICAgICBvcGVucnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpOworICAgICAgICB9OworICAgICAgICBvcGVucnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIub252ZXJzaW9u
Y2hhbmdlID0gZmFpbCh0LCAiZGIudmVyc2lvbmNoYW5nZSIpOworICAgICAgICAgICAgZGIub25l
cnJvciA9IGZhaWwodCwgImRiLmVycm9yIik7CisgICAgICAgICAgICBkYi5hYm9ydCA9IGZhaWwo
dCwgImRiLmFib3J0Iik7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1bmMoU2Vj
b25kKSwgNCk7CisgICAgICAgICAgICBkYi5jbG9zZSgpOworICAgICAgICB9KTsKKworICAgICAg
ICAvLyBFcnJvcnMKKyAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuLmVycm9y
Iik7CisgICAgICAgIG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuLmJsb2NrZWQiKTsK
KyAgICB9KTsKKworICAgIGZ1bmN0aW9uIFNlY29uZChlKSB7CisgICAgICAgIHZhciBkZWxldGVy
cSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKKworICAgICAgICBkZWxldGVycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7IHQuZG9uZSgpOyB9CisKKyAgICAgICAgZGVsZXRlcnEu
b25lcnJvciA9IGZhaWwodCwgImRlbGV0ZS5lcnJvciIpOworICAgICAgICBkZWxldGVycS5vbmJs
b2NrZWQgPSBmYWlsKHQsICJkZWxldGUuYmxvY2tlZCIpOworICAgICAgICBkZWxldGVycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmYWlsKHQsICJkZWxldGUudXBncmFkZW5lZWRlZCIpOworICAgIH0KKwor
ICAgIGFzeW5jX3Rlc3QoIkRlbGV0ZSBhIG5vbmV4aXN0YW50IGRhdGFiYXNlIikuc3RlcChmdW5j
dGlvbihlKSB7CisgICAgICAgIHZhciBkZWxldGVycSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZSgnbm9uZXhpc3RhbnQnKTsKKworICAgICAgICBkZWxldGVycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7IHRoaXMuZG9uZSgpOyB9KTsKKworICAgICAgICBkZWxldGVy
cS5vbmVycm9yID0gZmFpbCh0aGlzLCAiZGVsZXRlLmVycm9yIik7CisgICAgICAgIGRlbGV0ZXJx
Lm9uYmxvY2tlZCA9IGZhaWwodGhpcywgImRlbGV0ZS5ibG9ja2VkIik7CisgICAgICAgIGRlbGV0
ZXJxLm9udXBncmFkZW5lZWRlZCA9IGZhaWwodGhpcywgImRlbGV0ZS51cGdyYWRlbmVlZGVkIik7
CisgICAgfSk7CisKKzwvc2NyaXB0PgorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29w
ZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
OWU5NTY1ZGUzYTBlNTYzMjk0NDg4YTkwZjkwOTQ0ZjI4MzFmNDc3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZmFjdG9yeV9vcGVuLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJG
YWN0b3J5Lm9wZW4oKSAtIHJlcXVlc3QgaGFzIG5vIHNvdXJjZSAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeV9vcGVuLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3Blbi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M5NWUwZWEwMTEw
NDViMjQ2MmQ4NWFkZjk4M2Q2ZjVmOTAyZThlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlf
b3Blbi5odG0KQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFj
dG9yeS5vcGVuKCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2U8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCA5KTsK
KworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkge307CisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQuc291cmNlLCBudWxsLCAic291cmNlIikKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
fQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eV9vcGVuMTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM3NzU2YzQyMWI0ZDAyNGNmMDI2NWMwYWIyMmY1ZjJlYjEwOWI1OTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvciBpbiB1cGdyYWRlbmVlZGVkIHJlc2V0cyBk
YiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTAuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTAuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkwOWNiMmI2NmEzYWQxNmQxOWZkZTllOTAwMGI4NjJlYjI3NGE5ODcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMC5odG0KQEAgLTAsMCArMSw5MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvciBpbiB1cGdyYWRl
bmVlZGVkIHJlc2V0cyBkYjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRv
Om9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LCBkYjI7CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlLCB7dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVkLCA5KTsKKworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKworICAgICAgICB2YXIgc3QgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAg
ICAgICAgc3QuY3JlYXRlSW5kZXgoImluZGV4IiwgImkiKTsKKworICAgICAgICBhc3NlcnRfZXF1
YWxzKGRiLnZlcnNpb24sIDksICJmaXJzdCBkYi52ZXJzaW9uIik7CisgICAgICAgIGFzc2VydF90
cnVlKGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJvYmplY3RTdG9yZU5h
bWVzIGNvbnRhaW5zIHN0b3JlIik7CisgICAgICAgIGFzc2VydF90cnVlKHN0LmluZGV4TmFtZXMu
Y29udGFpbnMoImluZGV4IiksICJpbmRleE5hbWVzIGNvbnRhaW5zIGluZGV4Iik7CisKKyAgICAg
ICAgc3QuYWRkKHtpOiAiSm9zaHVhIn0sIDEpOworICAgICAgICBzdC5hZGQoe2k6ICJKb25hcyJ9
LCAyKTsKKyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYi5jbG9zZSgpOworICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oZGIubmFtZSwgMTApOworICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgIGRiMi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUyIik7CisK
KyAgICAgICAgICAgIHZhciBzdG9yZSA9IG9wZW5fcnEyLnRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCJzdG9yZSIpCisgICAgICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgyIiwgImkiKTsK
KworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgMTAsICJkYjIudmVyc2lv
biIpOworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250
YWlucygic3RvcmUiKSwgInNlY29uZCBvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygi
c3RvcmUyIiksICJzZWNvbmQgb2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9yZTIiKTsKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKHN0b3JlLmluZGV4TmFtZXMuY29udGFpbnMoImluZGV4Iiks
ICJzZWNvbmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRleCIpOworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoc3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgyIiksICJzZWNvbmQgaW5kZXhO
YW1lcyBjb250YWlucyBpbmRleDIiKTsKKworICAgICAgICAgICAgc3RvcmUuYWRkKHtpOiAiT2Rp
biJ9LCAzKTsKKyAgICAgICAgICAgIHN0b3JlLnB1dCh7aTogIlNpY2tpbmcifSwgMik7CisKKyAg
ICAgICAgICAgIG9wZW5fcnEyLnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAgIH0pOworICAg
ICAgICBvcGVuX3JxMi5vbmVycm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIudmVyc2lvbiwgOSwgImRiMi52ZXJzaW9uIGFmdGVy
IGVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5j
b250YWlucygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUgYWZ0ZXIg
ZXJyb3IiKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShkYjIub2JqZWN0U3RvcmVOYW1lcy5j
b250YWlucygic3RvcmUyIiksICJvYmplY3RTdG9yZU5hbWVzIG5vdCBjb250YWlucyBzdG9yZTIg
YWZ0ZXIgZXJyb3IiKTsKKworICAgICAgICAgICAgdmFyIG9wZW5fcnEzID0gd2luZG93LmluZGV4
ZWREQi5vcGVuKGRiLm5hbWUpOworICAgICAgICAgICAgb3Blbl9ycTMub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBkYjMgPSBlLnRh
cmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjMub2JqZWN0U3Rv
cmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgInRoaXJkIG9iamVjdFN0b3JlTmFtZXMgY29udGFp
bnMgc3RvcmUiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGIzLm9iamVjdFN0b3Jl
TmFtZXMuY29udGFpbnMoInN0b3JlMiIpLCAidGhpcmQgb2JqZWN0U3RvcmVOYW1lcyBjb250YWlu
cyBzdG9yZTIiKTsKKworICAgICAgICAgICAgICAgIHZhciBzdCA9IGRiMy50cmFuc2FjdGlvbigi
c3RvcmUiKS5vYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZGIzLnZlcnNpb24sIDksICJkYjMudmVyc2lvbiIpOworCisgICAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUoc3QuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgiKSwgInRoaXJkIGluZGV4
TmFtZXMgY29udGFpbnMgaW5kZXgiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc3Qu
aW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgyIiksICJ0aGlyZCBpbmRleE5hbWVzIGNvbnRhaW5z
IGluZGV4MiIpOworCisgICAgICAgICAgICAgICAgc3Qub3BlbkN1cnNvcihudWxsLCAicHJldiIp
Lm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCAyLCAib3BlbmN1cnNvcihw
cmV2KSBrZXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQudmFsdWUuaSwgIkpvbmFzIiwgIm9wZW5jdXJzb3IocHJldikgdmFsdWUiKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBzdC5nZXQoMykub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0KDMpIik7CisgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICB2YXIgaWR4ID0gc3QuaW5kZXgoImluZGV4Iik7Cisg
ICAgICAgICAgICAgICAgaWR4LmdldEtleSgiSm9uYXMiKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCAyLCAiZ2V0S2V5KEpvbmFzKSIpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIGlkeC5nZXRLZXkoIk9kaW4iKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCB1bmRlZmluZWQsICJnZXRLZXkoT2RpbikiKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBpZHguZ2V0S2V5KCJTaWNraW5nIikub25zdWNjZXNzID0g
dGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0S2V5KFNpY2tpbmcpIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD1s
b2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0
b3J5X29wZW4xMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY1YWNiN2FjZjk2ZGNhODM4YzVm
ODE4OGU4ZDkyMDlkNzViNWQ1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjExLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIHNl
Y29uZCBvcGVuJ3MgdHJhbnNhY3Rpb24gaXMgYXZhaWxhYmxlIHRvIGdldCBvYmplY3RTdG9yZXMg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjExLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjExLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZDQ2NWJiNTIzM2Q4Mzg4NzE5Zjk2M2QyMjk5MTU4NWQyYjVkN2JiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTEuaHRtCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gc2Vjb25kIG9wZW4ncyB0cmFu
c2FjdGlvbiBpcyBhdmFpbGFibGUgdG8gZ2V0IG9iamVjdFN0b3JlczwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjD
uHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiOworICAgIHZhciBjb3VudF9kb25lID0gMDsKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGIub2JqZWN0U3RvcmVOYW1l
cy5jb250YWlucygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUiKTsK
KworICAgICAgICB2YXIgc3RvcmUgPSBlLnRhcmdldC50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgi
c3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5uYW1lLCAic3RvcmUiLCAic3Rv
cmUubmFtZSIpOworCisgICAgICAgIHN0b3JlLmFkZCgiZGF0YSIsIDEpOworCisgICAgICAgIHN0
b3JlLmNvdW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEsICJjb3VudCgpIik7Cisg
ICAgICAgICAgICBjb3VudF9kb25lKys7CisgICAgICAgIH0pOworCisgICAgICAgIHN0b3JlLmFk
ZCgiZGF0YTIiLCAyKTsKKyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKS5vYmplY3RT
dG9yZSgic3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5uYW1lLCAic3RvcmUi
LCAic3RvcmUubmFtZSIpOworICAgICAgICBzdG9yZS5jb3VudCgpLm9uc3VjY2VzcyA9IHRoaXMu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCAyLCAiY291bnQoKSIpOworICAgICAgICAgICAgY291bnRfZG9uZSsrOworICAg
ICAgICB9KTsKKyAgICAgICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgb3Blbl9ycTIgPSB3
aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTApOworICAgICAgICBvcGVuX3JxMi5vbnVw
Z3JhZGVuZWVkZWQgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgZGIyID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGIyLm9i
amVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJvYmplY3RTdG9yZU5hbWVzIGNvbnRh
aW5zIHN0b3JlIik7CisgICAgICAgICAgICB2YXIgc3RvcmUgPSBvcGVuX3JxMi50cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUu
bmFtZSwgInN0b3JlIiwgInN0b3JlLm5hbWUiKTsKKworICAgICAgICAgICAgc3RvcmUuYWRkKCJk
YXRhMyIsIDMpOworCisgICAgICAgICAgICBzdG9yZS5jb3VudCgpLm9uc3VjY2VzcyA9IHRoaXMu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdCwgMywgImNvdW50KCkiKTsKKyAgICAgICAgICAgICAgICBjb3VudF9kb25l
Kys7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50X2RvbmUsIDMsICJjb3Vu
dF9kb25lIik7CisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjEyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTFiYjI3ZjVhZmE4NjdhYWIxMDA3NTM3YzNjN2EyY2Zl
MmM1ZDZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gdXBncmFkZW5lZWRlZCBn
ZXRzIFZlcnNpb25DaGFuZ2VFdmVudCAKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSB1cGdyYWRl
bmVlZGVkIGdldHMgVmVyc2lvbkNoYW5nZUV2ZW50IC0gc2Vjb25kIHVwZ3JhZGUgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNTA3ZDQwMGE4YzY3ZTNiYjk1NGJmZGIyODE3MWVmMjM4N2M0ZTJlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiZmFjdG9yeV9vcGVuMTIuaHRtCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gdXBncmFkZW5lZWRlZCBnZXRzIFZlcnNpb25D
aGFuZ2VFdmVudDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiOworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVv
dXQ6IDEwMDAwfSksIHVuZGVmaW5lZCwgOSk7CisgICAgdmFyIG9wZW4yX3QgPSBhc3luY190ZXN0
KGRvY3VtZW50LnRpdGxlICsgIiAtIHNlY29uZCB1cGdyYWRlIik7CisKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VF
dmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDAsICJvbGRWZXJzaW9uIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA5LCAibmV3VmVyc2lvbiIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudHlwZSwgInVwZ3JhZGVuZWVkZWQiLCAiZXZlbnQgdHlwZSIpOworCisgICAgICAg
IGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgOSwgImRiLnZlcnNpb24iKTsKKyAgICB9OworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfdHJ1ZShl
IGluc3RhbmNlb2YgRXZlbnQsICJlIGluc3RhbmNlb2YgRXZlbnQiKTsKKyAgICAgICAgYXNzZXJ0
X2ZhbHNlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQsICJlIG5vdCBpbnN0YW5j
ZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlw
ZSwgInN1Y2Nlc3MiLCAiZXZlbnQgdHlwZSIpOworICAgICAgICB0aGlzLmRvbmUoKTsKKworCisg
ICAgICAgIC8qKgorICAgICAgICAgKiBTZWNvbmQgdGVzdAorICAgICAgICAgKi8KKyAgICAgICAg
ZGIub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oKSB7IGRiLmNsb3NlKCk7IH07CisKKyAgICAg
ICAgdmFyIG9wZW5fcnEyID0gY3JlYXRlZGIob3BlbjJfdCwgZGIubmFtZSwgMTApOworICAgICAg
ICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgZGIyID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0
YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCA5LCAi
b2xkVmVyc2lvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIDEw
LCAibmV3VmVyc2lvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJ1cGdy
YWRlbmVlZGVkIiwgImV2ZW50IHR5cGUiKTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhk
YjIudmVyc2lvbiwgMTAsICJuZXcgZGIudmVyc2lvbiIpOworCisgICAgICAgICAgICB0aGlzLmRv
bmUoKTsKKyAgICAgICAgfTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4y
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmMwMTFmMjhlN2MwNzE4NDdhNzE3OWY3MDcyNmYw
MDAzZWY4NjdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBkYXRhYmFzZSAnbmFt
ZScgYW5kICd2ZXJzaW9uJyBhcmUgY29ycmVjdGx5IHNldCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eV9vcGVuMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4yLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzgyM2MwNDJmYzcw
YzlmZjBkYjRjZmQwNThjMmJjY2M2ZDhmOTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9v
cGVuMi5odG0KQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFj
dG9yeS5vcGVuKCkgLSBkYXRhYmFzZSAnbmFtZScgYW5kICd2ZXJzaW9uJyBhcmUgY29ycmVjdGx5
IHNldDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0
LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5
bmNfdGVzdCgpLCAnZGF0YWJhc2VfbmFtZScsIDEzKTsKKworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkge307CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhkYi5uYW1lLCAnZGF0YWJhc2VfbmFtZScsICdkYi5uYW1lJyk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoZGIudmVyc2lvbiwgMTMsICdkYi52ZXJzaW9uJyk7CisgICAgICAgIHRoaXMu
ZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmZhY3Rvcnlfb3BlbjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODI3YmI1MzI3NTM0ZDFhYjYwNzQ5YzkzZGFjMWYxNWVmNjZiODk4Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gbm8gdmVyc2lvbiBvcGVucyBjdXJyZW50
IGRhdGFiYXNlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4zLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3Bl
bjMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhlN2FkNWY2Yzc3YWMzZDBhMTIwMDM3YTVjNzAwMzA0YzZmNTQ1
MjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4zLmh0bQpAQCAtMCwwICsxLDI3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIG5vIHZlcnNpb24g
b3BlbnMgY3VycmVudCBkYXRhYmFzZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDEzKTsKKyAgICB2YXIgZGlk
X3VwZ3JhZGUgPSBmYWxzZTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
dmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jbG9zZSgpOworCisgICAgICAg
IHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lKTsKKyAgICAgICAg
b3Blbl9ycTIub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lvbiwgMTMsICJkYi52ZXJz
aW9uIikKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgb3Bl
bl9ycTIub251cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCB1cGdyYWRlbmVl
ZGVkJykKKyAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQg
ZXJyb3InKQorICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmZhY3Rvcnlfb3BlbjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjI2MDQwZTM1NTQ5YTZhNmUyNDRmY2Q3ZTI3NDNiZGZlOWFjYTk5Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNlIGhhcyBkZWZhdWx0
IHZlcnNpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjQuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVu
NC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTQ3NGI0ZjdjZWU2MWFiYTRjYjU0NDhlYTRjM2UxNGRhZTE3MGE2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjQuaHRtCkBAIC0wLDAgKzEsMjAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNl
IGhhcyBkZWZhdWx0IHZlcnNpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgJ2RhdGFiYXNlX25hbWUnKTsKKworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdC52ZXJzaW9uLCAxLCAiZGIudmVyc2lvbiIpOworICAgIH07CisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LnZlcnNpb24sIDEsICJkYi52ZXJzaW9uIik7CisgICAgICAgIHRoaXMu
ZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJmYWN0b3J5X29wZW41LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNhNTkwOWI4MWUwODY5NzM2MzI0MDM4NjJkYjUyY2M1NGE1OWI3ZGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW41LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG5ldyBkYXRhYmFzZSBpcyBlbXB0eSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW41Lmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lN2IzYTExMGVmODBjYzgzY2NlZjk1ODMyY2NjZmI0MWY0YjVjODVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNS5odG0KQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0YWJhc2UgaXMgZW1wdHk8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rl
c3QoKSwgJ2RhdGFiYXNlX25hbWUnKTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5n
dGgsIDAsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIpOworICAgICAgICB0aGlzLmRvbmUoKTsK
KyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeV9vcGVuNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW42LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MWYxYmZjYzJiMTQyMWQ4OGNjNjc2MGJmYjFlN2Q1MjE3ODc0N2UyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBvcGVuIGRhdGFiYXNlIHdpdGggYSBsb3dlciB2ZXJz
aW9uIHRoYW4gY3VycmVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNi5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0
b3J5X29wZW42Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODliNWVhMGU2NTdhOGZlMTllM2JmZmE2YmEzODM5
NjRjZDM4YzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNi5odG0KQEAgLTAsMCAr
MSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBvcGVu
IGRhdGFiYXNlIHdpdGggYSBsb3dlciB2ZXJzaW9uIHRoYW4gY3VycmVudDwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmlu
ZWQsIDEzKTsKKyAgICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKKworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBk
Yi5jbG9zZSgpOworCisgICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bihkYi5uYW1lLCAxNCk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKCkge307CisgICAgICAgIG9wZW5fcnEyLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKG9w
ZW5fcHJldmlvdXNfZGIpOworICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0gZmFpbCh0aGlzLCAn
VW5leHBlY3RlZCBlcnJvcicpCisgICAgfQorCisgICAgZnVuY3Rpb24gb3Blbl9wcmV2aW91c19k
YihlKSB7CisgICAgICAgIHZhciBvcGVuX3JxMyA9IHdpbmRvdy5pbmRleGVkREIub3BlbihlLnRh
cmdldC5yZXN1bHQubmFtZSwgMTMpOworICAgICAgICBvcGVuX3JxMy5vbmVycm9yID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5lcnJvci5uYW1lLCAnVmVyc2lvbkVycm9yJywgJ2UudGFyZ2V0LmVycm9yLm5hbWUnKQorICAg
ICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworICAgICAgICBvcGVuX3JxMy5vbnVw
Z3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHVwZ3JhZGVuZWVkZWQnKQorICAg
ICAgICBvcGVuX3JxMy5vbnN1Y2Nlc3MgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHN1Y2Nlc3Mn
KQorICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZh
Y3Rvcnlfb3BlbjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuNy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTlkNDk5M2ZjNWQ4ZTMyNzJjYjgxODQyYTVkM2NkNTdlNjhiOTRhNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gb3BlbiBkYXRhYmFzZSB3aXRoIGEgaGlnaGVyIHZl
cnNpb24gdGhhbiBjdXJyZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW43Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZh
Y3Rvcnlfb3BlbjcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNTZiZTA3ZjVlOTRjNGM2Y2IxYzFlM2Q5NDI0
ZjU2OTcyMTQxYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW43Lmh0bQpAQCAtMCww
ICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIG9w
ZW4gZGF0YWJhc2Ugd2l0aCBhIGhpZ2hlciB2ZXJzaW9uIHRoYW4gY3VycmVudDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRl
ZmluZWQsIDEzKTsKKyAgICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKKworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICBkYi5jbG9zZSgpOworCisgICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbihkYi5uYW1lLCAxNCk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgZGlkX3VwZ3JhZGUgPSB0cnVlOworICAgICAgICB9Owor
ICAgICAgICBvcGVuX3JxMi5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhvcGVuX2N1cnJlbnRf
ZGIpOworICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBl
cnJvcicpCisgICAgfQorCisgICAgZnVuY3Rpb24gb3Blbl9jdXJyZW50X2RiKGUpIHsKKyAgICAg
ICAgdmFyIG9wZW5fcnEzID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGUudGFyZ2V0LnJlc3VsdC5u
YW1lKTsKKyAgICAgICAgb3Blbl9ycTMub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lv
biwgMTQsICJkYi52ZXJzaW9uIikKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICAgICAgb3Blbl9ycTMub251cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5leHBl
Y3RlZCB1cGdyYWRlbmVlZGVkJykKKyAgICAgICAgb3Blbl9ycTMub25lcnJvciA9IGZhaWwodGhp
cywgJ1VuZXhwZWN0ZWQgZXJyb3InKQorCisgICAgICAgIGFzc2VydF90cnVlKGRpZF91cGdyYWRl
LCAnZGlkIHVwZ3JhZGUnKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW44LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3Blbjgt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NDdiMWQ1NDExMTk4MDFmNzk3ZTVjYjczMDAxMGQ3
ZmY1MTA0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW44LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIGVycm9yIGluIHZlcnNp
b24gY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0cyBvcGVuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5
X29wZW44Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyOGEyN2QyNDFhMjBk
NzdhNzAxNmFlMWRhMTIyY2Q1YzRkOGUzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29w
ZW44Lmh0bQpAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0
b3J5Lm9wZW4oKSAtIGVycm9yIGluIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0cyBv
cGVuPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQu
anM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3lu
Y190ZXN0KCksIHVuZGVmaW5lZCwgMTMpOworICAgIHZhciBkaWRfdXBncmFkZSA9IGZhbHNlOwor
ICAgIHZhciBkaWRfZGJfYWJvcnQgPSBmYWxzZTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkaWRfdXBncmFkZSA9IHRydWU7CisgICAgICAg
IGUudGFyZ2V0LnJlc3VsdC5vbmFib3J0ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaWRf
ZGJfYWJvcnQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9u
LmFib3J0KCk7CisgICAgfTsKKyAgICBvcGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGFzc2VydF90cnVlKGRpZF91cGdyYWRlKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5lcnJvci5uYW1lLCAnQWJvcnRFcnJvcicsICd0YXJnZXQuZXJyb3InKTsKKyAgICAg
ICAgdGhpcy5kb25lKCkKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZmFjdG9yeV9vcGVuOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW45LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmZjODgzMjA1MDRhZGM4Y2ExZDQ1MmU5YjU1YzM1NTQ2
ZTAxMDNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuOS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMCBAQAorCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVu
dCAtMSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2
ZXJzaW9uIGFyZ3VtZW50IC0wLjUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxp
bmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgMC41IHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1l
bnQgMC44IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRo
IHZlcnNpb24gYXJndW1lbnQgOTAwNzE5OTI1NDc0MDk5MiBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IE5hTiBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3Vt
ZW50IEluZmluaXR5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4o
KSB3aXRoIHZlcnNpb24gYXJndW1lbnQgLUluZmluaXR5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgImZvbyIgc2hvdWxk
IHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1
bWVudCB1bmRlZmluZWQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3Bl
bigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBudWxsIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAor
UEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgZmFsc2Ugc2hvdWxkIHRo
cm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVu
dCBvYmplY3Qgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdp
dGggdmVyc2lvbiBhcmd1bWVudCBvYmplY3QgKHNlY29uZCkgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBvYmplY3QgKHRo
aXJkKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2
ZXJzaW9uIGFyZ3VtZW50IDEuNSBzaG91bGQgbm90IHRocm93LiAKK1BBU1MgQ2FsbGluZyBvcGVu
KCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDkwMDcxOTkyNTQ3NDA5OTEgc2hvdWxkIG5vdCB0aHJv
dy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjkuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuOS5odG0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTUxMjcxNTMxZWI4OWYxZGEzYWMwYjkyMzQ5ODg2MjU0Njg3OTQ3ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjkuaHRtCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gZXJyb3JzIGluIHZlcnNpb24g
YXJndW1lbnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+Cit2YXIgZGF0ZSA9IERhdGUoKTsKK2Z1bmN0aW9uIHNob3VsZF90aHJv
dyh2YWwsIG5hbWUpIHsKKyAgICBpZiAoIW5hbWUpIHsKKyAgICAgICAgbmFtZSA9ICgodHlwZW9m
IHZhbCA9PSAib2JqZWN0IiAmJiB2YWwpID8gIm9iamVjdCIgOiBmb3JtYXRfdmFsdWUodmFsKSkK
KyAgICB9CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgd2luZG93LmluZGV4ZWREQi5vcGVuKCd0
ZXN0JyArIGRhdGUsIHZhbCk7CisgICAgICB9KTsKKyAgICB9LCAiQ2FsbGluZyBvcGVuKCkgd2l0
aCB2ZXJzaW9uIGFyZ3VtZW50ICIgKyBuYW1lICsgIiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiIp
Cit9CisKK3Nob3VsZF90aHJvdygtMSkKK3Nob3VsZF90aHJvdygtMC41KQorc2hvdWxkX3Rocm93
KDApCitzaG91bGRfdGhyb3coMC41KQorc2hvdWxkX3Rocm93KDAuOCkKK3Nob3VsZF90aHJvdygw
eDIwMDAwMDAwMDAwMDAwKSAgLy8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgKyAxCitzaG91bGRf
dGhyb3coTmFOKQorc2hvdWxkX3Rocm93KEluZmluaXR5KQorc2hvdWxkX3Rocm93KC1JbmZpbml0
eSkKK3Nob3VsZF90aHJvdygiZm9vIikKK3Nob3VsZF90aHJvdyh1bmRlZmluZWQpCitzaG91bGRf
dGhyb3cobnVsbCkKK3Nob3VsZF90aHJvdyhmYWxzZSkKKworc2hvdWxkX3Rocm93KHsKKyAgICB0
b1N0cmluZzogZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoInRvU3RyaW5nIHNob3VsZCBu
b3QgYmUgY2FsbGVkIGZvciBUb1ByaW1pdGl2ZSBbTnVtYmVyXSIpOyB9LAorICAgIHZhbHVlT2Y6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfQorfSkKK3Nob3VsZF90aHJvdyh7CisgICAgdG9TdHJp
bmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfSwKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsg
cmV0dXJuIHt9OyB9Cit9LCAnb2JqZWN0IChzZWNvbmQpJykKK3Nob3VsZF90aHJvdyh7CisgICAg
dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0sCisgICAgdmFsdWVPZjogZnVuY3Rp
b24oKSB7IHJldHVybiB7fTsgfSwKK30sICdvYmplY3QgKHRoaXJkKScpCisKKworLyogVmFsaWQg
Ki8KKworZnVuY3Rpb24gc2hvdWxkX3dvcmsodmFsKSB7CisgICAgCisgICAgdmFyIG5hbWUgPSBm
b3JtYXRfdmFsdWUodmFsKTsKKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoIkNhbGxpbmcgb3Blbigp
IHdpdGggdmVyc2lvbiBhcmd1bWVudCAiICsgbmFtZSArICIgc2hvdWxkIG5vdCB0aHJvdy4iKQor
ICAgIHZhciBycSA9IGNyZWF0ZWRiKHQsIHZhbCArIGRhdGUpCisgICAgcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHQuZG9uZSgpCisgICAgfQorfQorCitzaG91bGRf
d29yaygxLjUpCitzaG91bGRfd29yayhOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgIC8vIDB4MjAw
MDAwMDAwMDAwMDAgLSAxCisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODI0MDk4
NzExMmE5ZGJiODhiZDM4NjA3YjA3Yjk4M2VkMjdlNzBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkluZGV4Lm11bHRpRW50cnk6IGFycmF5IGtleVBhdGggd2l0aCBtdWx0aUVudHJ5
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRl
eC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RlZGZiZjlhODNhNTk2
ZTg3NzdhMmIwMmU4NTdhY2QwN2UzODNiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LW11bHRp
ZW50cnktYXJyYXlrZXlwYXRoLmh0bQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5tdWx0aUVudHJ5OiBhcnJh
eSBrZXlQYXRoIHdpdGggbXVsdGlFbnRyeTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IlhYWCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0
aW1lb3V0OiAxMDAwMH0pKS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHZhciBzdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsK
KworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCdhY3RvcnMnLCBbJ25hbWUnXSwgeyBt
dWx0aUVudHJ5OiB0cnVlIH0pCisgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuZG9uZSgpOwor
ICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmlu
ZGV4LW11bHRpZW50cnktYmlnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LW11bHRpZW50cnktYmlnLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGM0ZDNkMGIzODVhOWMzZjgzYjc4NTk5OTVlMTBkMWY2
Yzc2ODQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIEFkZGluZyBvbmUgaXRlbSB3aXRoIDEwMDAgbXVs
dGlFbnRyeSBrZXlzIAorUEFTUyBHZXR0aW5nIHRoZSBvbmUgaXRlbSBieSAxMDAwIGluZGVjZWQg
a2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LW11
bHRpZW50cnktYmlnLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTEwMjQ4MGVjYzBjODRkMmM1OGU3OTllYWY0
MTdiOTAwMmRmYmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWcuaHRt
CkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkluZGV4Lm11bHRpRW50cnkgLSBhIDEwMDAgZW50cnkgbXVsdGlFbnRyeSBh
cnJheTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0i
aHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCNrZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgICAgdF9hZGQgPSBhc3luY190ZXN0KCJBZGRpbmcgb25lIGl0ZW0gd2l0aCAx
MDAwIG11bHRpRW50cnkga2V5cyIsIHsgdGltZW91dDogMTAwMDAgfSksCisgICAgICAgIHRfZ2V0
ID0gYXN5bmNfdGVzdCgiR2V0dGluZyB0aGUgb25lIGl0ZW0gYnkgMTAwMCBpbmRlY2VkIGtleXMg
IiwgeyB0aW1lb3V0OiAxMDAwMCB9KTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodF9h
ZGQpOworICAgIHZhciBvYmogPSB7IHRlc3Q6ICd5bycsIGlkeGtleXM6IFtdIH07CisKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgb2JqLmlkeGtleXMucHVzaCgn
aW5kZXhfbm9fJyArIGkpOworCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKKyAgICAgICAgICAuY3JlYXRlSW5kZXgoJ2luZGV4Jywg
J2lkeGtleXMnLCB7IG11bHRpRW50cnk6IHRydWUgfSk7CisgICAgfTsKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHR4ID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlJywgJ3JlYWR3cml0ZScpOworICAgICAgICB0eC5vYmplY3RTdG9yZSgnc3RvcmUnKQor
ICAgICAgICAgIC5wdXQob2JqLCAxKQorICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0X2FkZC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQsIDEsICJwdXQnZCBrZXkiKTsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgp
OworICAgICAgICB9KTsKKworICAgICAgICB0eC5vbmNvbXBsZXRlID0gdF9nZXQuc3RlcF9mdW5j
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIGlkeCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLmluZGV4KCdpbmRleCcpCisKKyAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGlkeC5nZXQoJ2luZGV4X25vXycgKyBpKS5vbnN1Y2Nlc3MgPSB0X2dldC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdC50ZXN0LCAieW8iKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWR4LmdldCgnaW5kZXhfbm9fOTk5Jykub25zdWNjZXNzID0gdF9nZXQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdC50ZXN0LCAieW8iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdC5pZHhrZXlzLmxlbmd0aCwgMTAwMCk7CisgICAgICAgICAgICAgICAg
dGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtbXVsdGllbnRy
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZGE0NjNjN2IwNmI1OGY3ZGYzM2QzNDIxMDI3ZGQ5ZmJkNjNjNWFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiaW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCSW5kZXgubXVsdGlFbnRyeSAtIGFkZGluZyBrZXlzIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRl
eC1tdWx0aWVudHJ5Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LW11bHRpZW50cnkuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MGRh
ODQwOGQ4NGUxYjAxMWE5YWU0MjgwYzE3ZDExNzkwZGFiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJp
bmRleC1tdWx0aWVudHJ5Lmh0bQpAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5tdWx0aUVudHJ5IC0gYWRkaW5n
IGtleXM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwja2V5LWNvbnN0cnVjdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJYWFgiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2
YXIgZGIsCisgICAgICAgIGV4cGVjdGVkX2tleXMgPSBbMSwgMiwgMiwgMywgM107CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pKQorCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgo
J2FjdG9ycycsICduYW1lJywgeyBtdWx0aUVudHJ5OiB0cnVlIH0pCisKKyAgICAgICAgc3RvcmUu
YWRkKHtuYW1lOiAnT2Rpbid9LCAxKTsKKyAgICAgICAgc3RvcmUuYWRkKHtuYW1lOiBbJ1JpdGEn
LCAnU2NoZWV0YScsIHtCb2JieTonQm9iYnknfV19LCAyKTsKKyAgICAgICAgc3RvcmUuYWRkKHtu
YW1lOiBbIHtzOiAnUm9iZXJ0J30sICdOZWlsJywgJ0JvYmJ5J119LCAzKTsKKyAgICB9OworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZ290dGVuX2tl
eXMgPSBbXTsKKyAgICAgICAgdmFyIGlkeCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVj
dFN0b3JlKCdzdG9yZScpLmluZGV4KCdhY3RvcnMnKTsKKworICAgICAgICBpZHguZ2V0S2V5KCdP
ZGluJykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisgICAgICAgIH0pOworICAgICAg
ICBpZHguZ2V0S2V5KCdSaXRhJykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisgICAg
ICAgIH0pOworICAgICAgICBpZHguZ2V0S2V5KCdTY2hlZXRhJykub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRh
cmdldC5yZXN1bHQpCisgICAgICAgIH0pOworICAgICAgICBpZHguZ2V0S2V5KCdOZWlsJykub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZ290dGVu
X2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisgICAgICAgIH0pOworICAgICAgICBpZHguZ2V0
S2V5KCdCb2JieScpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGdvdHRlbl9rZXlzLnB1c2goZS50YXJnZXQucmVzdWx0KQorCisgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGdvdHRlbl9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAg
ICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4X2NvdW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjBhOWRkOGUyZDUwYWJkYzUy
ZTA2YjEwMDdlNDg1MWJmNmM0ZGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4LmNvdW50KCkgLSByZXR1
cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgaW5kZXggIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJp
bmRleF9jb3VudC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkyZTQ3ZDQ2YjBj
YjcxNWVmZmQ0Njk5MzlmY2E4ZGZmY2I4OTQwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2Nv
dW50Lmh0bQpAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8dGl0bGU+SURCSW5kZXguY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiBy
ZWNvcmRzIGluIHRoZSBpbmRleCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQg
PSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisgICAgICAgIHN0b3JlLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAw
OyBpIDwgMTA7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5
OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAg
ICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmNvdW50KCk7CisK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEwKTsKKyAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTMxODRiODNlZDViYjQ4YzhhYTM0MDY2YjgxMDcw
MjEzMzE0NzYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVt
YmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aGluIHRoZSByYW5nZSAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmluZGV4X2NvdW50Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDIuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
MTFjOTE2NzM3MzgyMjZiNmI2Zjc4ZTMyOWMxNGE3NzkyNGUxNDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9jb3VudDIuaHRtCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5JREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUg
bnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRy
dWUgfSk7CisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVy
dHkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgICAg
ICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9
CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisg
ICAgICAgICAgICAgICAgICAgLmNvdW50KElEQktleVJhbmdlLmJvdW5kKCdkYXRhMCcsICdkYXRh
NCcpKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNSk7CisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
X2NvdW50My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTkzOGFiMjIyNDc3MmU4Mjc3YzllNjk3
ZWQzMDI4MjJmMzQ3MzkxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50My1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguY291bnQoKSAtIHJldHVybnMg
dGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGggdGhlIGtleSAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiaW5kZXhfY291bnQzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50My5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjQ3YTJmYjc5NmI1YTU1ODdmYWNlODM3M2RmMTRkMjA3NWMwZTUyNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmluZGV4X2NvdW50My5odG0KQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRo
ZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRoIHRoZSBrZXk8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgY3JlYXRlZGIoYXN5bmNfdGVz
dCgpKS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0CisKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pCisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4
KCJteWluZGV4IiwgImlkeCIpCisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsr
KQorICAgICAgICAgICAgc3RvcmUuYWRkKHsgaWR4OiAiZGF0YV8iICsgKGklMikgfSk7CisKKyAg
ICAgICAgc3RvcmUuaW5kZXgoIm15aW5kZXgiKS5jb3VudCgiZGF0YV8wIikub25zdWNjZXNzID0g
dGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQsIDUsICJjb3VudChkYXRhXzApIikKKyAgICAgICAgICAgIHRoaXMuZG9u
ZSgpCisgICAgICAgIH0pCisgICAgfQorCis8L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfY291bnQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50NC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEzNDEzZDNmZDU0ODEwZTM1N2IwOTFmZDMzZjY4OGI4Zjdh
ZTQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50NC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguY291bnQoKSAtIHRocm93IERhdGFFcnJvciB3aGVu
IHVzaW5nIGludmFsaWQga2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDQuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXhfY291bnQ0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTk0OGVjNWRlZjAzZjQ3YTQwNTMyYjUwNWRiOTZl
MWNhMWY5ZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQ0Lmh0bQpAQCAtMCwwICsx
LDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJJbmRleC5jb3VudCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXk8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWNv
dW50LUlEQlJlcXVlc3QtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRi
LCB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBzdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgZm9yKHZhciBp
ID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGluZGV4ZWRQcm9w
ZXJ0eTogImRhdGEiICsgaSB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgaW5kZXggPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQor
ICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKTsKKworICAgICAgICBhc3NlcnRf
dGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4LmNvdW50
KE5hTik7CisgICAgICAgIH0pOworCisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNjAxYzc4ZGExYTE4OTQyMzhmMzA2ODBmODI0YWIwN2FmYzQ5
NThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJJbmRleC5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29yZCAgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmluZGV4X2dldC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNDZl
MTg1OGI3OTUyNzQzMWQ4MzRmNjI1NGRmNDBmOGRjYzkxZjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJp
bmRleF9nZXQuaHRtCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3Jk
IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9
OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5
UGF0aDogImtleSIgfSk7CisgICAgICAgIGluZGV4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQp
OworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQor
ICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmluZGV4ZWRQcm9wZXJ0eSk7CisKKyAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQua2V5KTsKKyAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhf
Z2V0Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAyMmI1MzUyNzlhMjVkNTMzNjBiNmNmNGFm
MjU5Yzc5NDU2YTcwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVj
b3JkIHdoZXJlIHRoZSBpbmRleCBjb250YWlucyBkdXBsaWNhdGUgdmFsdWVzICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiaW5kZXhfZ2V0Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjc1OWNi
YWUzNzQ0NjY3MzRkOGJlMDUzMDBiMmUzMDBlOTE5OTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXhfZ2V0Mi5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQg
d2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVj
b3JkcyA9IFsgeyBrZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBrZXk6MiwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAgICAg
ICAgeyBrZXk6MywgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9IF07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAg
ICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24o
InRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldCgiZGF0
YSIpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3Jkc1sw
XS5rZXkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfZ2V0My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJmZjU5YjI1
YTk3NGM1MTBhNWVhZGZiMjBjODk4Y2FlODk4ZjM1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
X2dldDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4LmdldCgp
IC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJlY29yZCB0aGF0IGRvZXNuJ3QgZXhpc3QgIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJpbmRleF9nZXQzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDMuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZj
MGI5NTE3MzgxNmJlMmM2MDdhNDM4MDhiMDcwZGEwOGI0NGQ5ZDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9nZXQzLmh0bQpAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0
cmlldmUgYSByZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgcnEgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAg
ICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCisgICAgICAg
ICAgICAgICAgICAgLmdldCgxKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9
OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9n
ZXQ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
NDQ4OGFiZDFlMWJhMWE5NzJhNGNkMjkxMmJhMDlkOTRiYjg5ZmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9nZXQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRl
eC5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29yZCB3aXRoIHRoZSBmaXJzdCBrZXkgaW4gdGhlIHJh
bmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQ0Lmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMzRlOWNlZWY1ZmEwMGRkNjkxMWE3Y2ZkOWUzNTVkOTM5MzkyZTc4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfZ2V0NC5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gcmV0dXJu
cyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2UgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAg
ICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisg
ICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5h
ZGQoeyBrZXk6IGksIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiICsgaSB9KTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAg
ICAgICAgICAgICAgICAgIC5nZXQoSURCS2V5UmFuZ2UuYm91bmQoJ2RhdGE0JywgJ2RhdGE3Jykp
OworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgNCk7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pbmRleGVkUHJvcGVydHksICdkYXRh
NCcpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwg
NCkKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQ1LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNjM4YzA5OGFhMmM0MGZiNGI5M2NkYzRkOTI5YjQ5YjI3ZGJlYzRk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCSW5kZXguZ2V0KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBp
bnZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDUuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0NS5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDE1MjQ5MjYyMjRhMDY5MzJhZWY2MThhZDUzMTM4ZWY3MmY4ZjliNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDUuaHRtCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgp
IC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1nZXQtSURCUmVxdWVzdC1h
bnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBh
c3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICB2YXIgaW5kZXggPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5k
ZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJE
YXRhRXJyb3IiLGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBpbmRleC5nZXQoTmFOKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQ2LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMDYxNmE2ODVjZTkxMzRmZDQ4ODdlMmM2ZTBhMDFhMDM3YTEyNjk4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCSW5kZXguZ2V0KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRl
eCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQ2Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDYu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE1Yjc2M2VkNWUzZGIzNzY2OTQ0OTAwYzM2NmRmMWYwYTU0YzM1MWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXQ2Lmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5nZXQo
KSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQ8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1J
REJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIHN0
b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7CisgICAgICAgIHN0
b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGluZGV4LmdldCgiZGF0YSIp
OworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0Ny1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzQ0N2VhNmRmOTI0YTM3NWM2ZWZmM2VmZTZmNTVlZWZmZDdhYmI3ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorCitGQUlMIElEQkluZGV4LmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9y
IG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpeworICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4
Y2VwdGlvbiAwIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjog
cHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4X2dldDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0Ny5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk3MzVlYWQ4NGRm
NWY0MTU5YzRhMjNlNjczYTUyMjVjMTBjZGVmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dl
dDcuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQ
cm9wZXJ0eTogImRhdGEiIH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0
KCk7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlv
bigpeworICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0pOworICAgICAg
ICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc4
M2U4NTM0YzhhYmNkY2M2ODQ2OGQyYTFkNTFhOTIxZjgyY2VkZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4X2dldEtleS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleSAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmluZGV4X2dldEtleS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXkuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3
MDFiYTMxZDc0ODU5OTI0MmZiNGFlNjI4OTA5ZDllYmE1NjFiNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9nZXRLZXkuaHRtCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0
aGUgcmVjb3JkJ3MgcHJpbWFyeSBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6MSwgaW5k
ZXhlZFByb3BlcnR5OiJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgIHJxID0gcnEuaW5kZXgo
ImluZGV4Iik7CisKKyAgICAgICAgcnEgPSBycS5nZXRLZXkoImRhdGEiKTsKKworICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgcmVjb3JkLmtleSk7CisgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRL
ZXkyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODAzM2YwNjk4ZmZmYzZiMTA2OTUxNmVhMGIz
NmMwZmRhYWY3MzliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRo
ZSByZWNvcmQncyBwcmltYXJ5IGtleSB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRl
IHZhbHVlcyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTIuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5
Mi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjQyZTgxZDBiN2RjODM0ZTQ1ZWYwYmRlZjJmOWNhYTEwZjgzNDBm
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTIuaHRtCkBAIC0wLDAgKzEsMzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4
LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFyeSBrZXkgd2hlcmUgdGhlIGlu
ZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBr
ZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAgICAgICAgeyBrZXk6
MiwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAgICAgICAgeyBrZXk6Mywg
aW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
LmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldEtleSgiZGF0YSIpOworCisg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCByZWNvcmRzWzBdLmtleSk7CisgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5My1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9nZXRLZXkzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODIzNzczOGViYTc3ZGE2
NWRmNDAzMjA1NDBkOTQ5MjAxNTEzNWI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5
My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkg
LSBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBwcmltYXJ5IGtleSBvZiBhIHJlY29yZCB0aGF0IGRv
ZXNuJ3QgZXhpc3QgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTMuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0
S2V5My5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ2ODRiZmNmNmFlZTcwZmZmNzY0NTk1MjE2ZDQwZDhjMGIz
NzljMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTMuaHRtCkBAIC0wLDAgKzEsMjgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQklu
ZGV4LmdldEtleSgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgcHJpbWFyeSBrZXkgb2YgYSBy
ZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAgICAgICAgICAgICAg
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKQorICAgICAgICAgICAgICAg
ICAgIC5nZXRLZXkoMSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVu
ZGVmaW5lZCk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXk0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MzcyNjc2YzYyMTQwMTJlMmEzN2NiZDYyNjM5ZjZhNzgyMWQ2NzdmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiaW5kZXhfZ2V0S2V5NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
SW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0IHJlY29yZCB3aXRo
aW4gdGhlIHJhbmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5NC5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9n
ZXRLZXk0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzFlZDY1OTIyZjZlNmI5Y2E4MjA1Zjg4ZDFjZWQ2YzUz
NDBmMThiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5NC5odG0KQEAgLTAsMCArMSwz
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQklu
ZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdCByZWNvcmQgd2l0aGlu
IHRoZSByYW5nZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQgPSBhc3luY190
ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKysp
IHsKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGtleTogaSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0
YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldEtleShJREJLZXlSYW5n
ZS5ib3VuZCgnZGF0YTQnLCAnZGF0YTcnKSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQsIDQpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRv
bmUoKTsgfSwgNCkKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5NS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9n
ZXRLZXk1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmE2ZjU1MDFjZjg5MmU5MzhjOWEzN2Nk
YjI1NTJjYmEyODBiMDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5NS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBE
YXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dl
dEtleTUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5NS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyYzNjZDQ4ZGQ2YTYy
MzcyMmI2ZmNkYjljN2Y1YjE0MmJmOWM5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtl
eTUuaHRtCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4g
dXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50
ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJJbmRleC1nZXRLZXktSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2
YXIgaW5kZXggPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIg
fSkKKyAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQ
cm9wZXJ0eSIpOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLGZ1bmN0aW9uKCl7
CisgICAgICAgICAgICBpbmRleC5nZXRLZXkoTmFOKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQu
ZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0S2V5Ni1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXk2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTkx
MjJlOGJkNWM2ZjA2MmY2MzI1ZmMwZTJiNmJiM2VhODA3OTc4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
aW5kZXhfZ2V0S2V5Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0S2V5KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBk
ZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXk2Lmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTYu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYwYzhlODgwNWU2ZTZlY2FmZTI3YWJjYjViYmVlZjY2Y2ZiNWNkNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXk2Lmh0bQpAQCAtMCwwICsxLDI5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5n
ZXRLZXkoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0
ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4
LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBv
cnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgdmFyIGlu
ZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisg
ICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7Cisg
ICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90aHJv
d3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGluZGV4Lmdl
dEtleSgiZGF0YSIpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhf
Z2V0S2V5Ny1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU2MDllNjdkZWE5NmNjYzJmNjVlZWEx
Njc4Y2Q5YWY1YmQ1YmU3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkluZGV4LmdldEtleSgpIC0gdGhyb3cg
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpeworICAgICAgICAgICAgaW5kZXguZ2V0S2V5KCJk
YXRhIik7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IFRyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwIiB0aGF0IGlzIG5vdCBhIERPTUV4
Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAs
IGV4cGVjdGVkIDExCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTcuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfZ2V0
S2V5Ny5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRlMDgwNzk5N2I3NTEyY2Y0ZTk2MjA2MzUyOTUwNjUwYzc1
ODkxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTcuaHRtCkBAIC0wLDAgKzEsMjkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQklu
ZGV4LmdldEtleSgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQg
dHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQkluZGV4LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAg
ICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIpOworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEi
IH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICAgICAg
YXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAg
ICAgaW5kZXguZ2V0S2V5KCJkYXRhIik7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJpbmRleF9pbmRleE5hbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODg2MDQ0
MTljY2M3NjUzMGVlYmY1ZDg3NjNjNmM3ODAyNWJlMDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXhfaW5kZXhOYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiaW5kZXhfaW5kZXhOYW1lcy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9pbmRleE5hbWVzLmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMGU0MGU2NmZhNmIzNmY2OWEyYjFmODBlYTdiZDljZjg3ZjVmMzMwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiaW5kZXhfaW5kZXhOYW1lcy5odG0KQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkg
LSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSwge3RpbWVvdXQ6IDEwMDAwfSk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiZGF0YSIpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMob2JqU3Rv
cmUuaW5kZXhOYW1lc1swXSwgImluZGV4IiwgImluZGV4TmFtZXMiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3Ro
Iik7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpT
dG9yZS5pbmRleE5hbWVzWzBdLCAiaW5kZXgiLCAiaW5kZXhOYW1lcyAoc2Vjb25kKSIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhO
YW1lcy5sZW5ndGggKHNlY29uZCkiKTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9vcGVuQ3Vy
c29yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5DdXJzb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3OGNjYWVmMmI3OWU5MjZiYmE3N2U4YmMyYTYzMjJhMDQ4OTkyZTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJpbmRleF9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVu
IHRoZSBpbmRleCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9vcGVuQ3Vyc29yLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmluZGV4X29wZW5DdXJzb3IuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5ZmI2OGE1MTgzY2QzZmQ3ZmVh
NTNiZDY0MWZkNDQ3OGI2ODA1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9vcGVuQ3Vyc29y
Lmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVuQ3Vyc29yLUlEQlJlcXVlc3QtYW55LXJh
bmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAg
dmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
OworCisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIg
fSk7CisgICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGlu
ZGV4Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0K
Kzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9vcGVuQ3Vyc29yMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc4NGIzZDE2OTk0
ZmIxNzUyOTc2ZjZlYmFkNTE1YTkxNjIzZjIzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29w
ZW5DdXJzb3IyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworRkFJTCBJREJJbmRleC5v
cGVuQ3Vyc29yKCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0
cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7CisgICAgICAg
ICAgICBpbmRleC5vcGVuQ3Vyc29yKCk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwIiB0
aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNv
ZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5D
dXJzb3IyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4X29wZW5DdXJzb3IyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTM4YWNiNWVm
ZTY5ZDQyODk0M2ZlNzAwOGIwYmQwYTUzNDg3MGIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhf
b3BlbkN1cnNvcjIuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4Lm9wZW5DdXJzb3IoKSAtIHRocm93IFRy
YW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVk
REIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVuQ3Vyc29yLUlE
QlJlcXVlc3QtYW55LXJhbmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rpb24iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5
IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlu
ZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9w
ZXJ0eTogImRhdGEiIH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7
CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
eworICAgICAgICAgICAgaW5kZXgub3BlbkN1cnNvcigpOworICAgICAgICB9KTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlD
dXJzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTEyYmNhYjljYTUwMTdiYzBlYmYzZTdmN2MxMjhkNzE0ZjE1MWRiZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IERhdGFFcnJvciB3
aGVuIHVzaW5nIGEgaW52YWxpZCBrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlDdXJz
b3IuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvci5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1NWUwNjRmYjJh
MWEyMmMxN2E5NWY4NGIxNDFiZDU2OWY5NDRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29w
ZW5LZXlDdXJzb3IuaHRtCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93
IERhdGFFcnJvciB3aGVuIHVzaW5nIGEgaW52YWxpZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmls
ZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVz
dC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwor
ICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFBy
b3BlcnR5Iik7CisKKyAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6
ICJkYXRhIiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlv
bigpeworICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNvcihOYU4pOworICAgICAgICB9KTsK
KyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
X29wZW5LZXlDdXJzb3IyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNGE0NGE0MDRjZDE4OTQ3YjUyYWEyMjY4NTY0ZmQyMjFhYzZj
OWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93
IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNjMyZDE5MWMwODUwMGI1MzAyZDc1ZDYxMWNiMWQ1ZDA4N2VjMWZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjIuaHRtCkBAIC0wLDAgKzEsMjkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4
Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4
IGlzIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQkluZGV4LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGly
ZWN0aW9uLWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgc3Rv
cmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAgICAgc3Rv
cmUuZGVsZXRlSW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxp
ZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNv
cigpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X29w
ZW5LZXlDdXJzb3IzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NWNhMmJmNGQ3ZDc3NjE3YjAx
YjdmOTcyNjFhZjg4YTFkMTIwNzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1
cnNvcjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkluZGV4Lm9wZW5L
ZXlDdXJzb3IoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRy
YW5zYWN0aW9uIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKXsKKyAgICAgICAg
ICAgIGluZGV4Lm9wZW5LZXlDdXJzb3IoKTsKKyAgICAgICAgfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yOiBET00gSURCRGF0YWJhc2UgRXhjZXB0aW9uIDAi
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAi
Y29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3Bl
bktleUN1cnNvcjMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjMuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRh
MmIyZjFhYmUxZmRjY2ZmYjA0OWYwM2U0OGFjZGQzZTVhMjE2ZDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy5odG0KQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNv
cigpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rp
b248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4
LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRp
cmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgICAgIHN0b3JlLmFkZCh7IGtl
eTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJh
bnNhY3Rpb24uYWJvcnQoKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVF
cnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBpbmRleC5vcGVuS2V5Q3Vyc29yKCk7Cisg
ICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRia2V5cmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRia2V5cmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI0Mjc2NzJiZDI5NmE5OGJiMmVjNmU4OTdlMDZlOTBkYzAwMDZhY2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJrZXlyYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1Mg
SURCS2V5UmFuZ2Uub25seSgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3Bl
cnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCitQQVNTIElEQktleVJhbmdlLmxvd2VyQm91bmQoKSAt
IHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVj
dGx5IAorUEFTUyBJREJLZXlSYW5nZS5sb3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhh
cyBjb3JyZWN0IGRlZmF1bHQgc2V0IAorUEFTUyBJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSBy
ZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3Rs
eSAKK1BBU1MgSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgpIC0gJ29wZW4nIHBhcmFtZXRlciBoYXMg
Y29ycmVjdCBkZWZhdWx0IHNldCAKK1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoKSAtIHJldHVybnMg
YW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5IAorUEFT
UyBJREJLZXlSYW5nZS5ib3VuZCgpIC0gJ2xvd2VyT3BlbicgYW5kICd1cHBlck9wZW4nIHBhcmFt
ZXRlcnMgaGF2ZSBjb3JyZWN0IGRlZmF1bHRzIHNldCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRia2V5cmFuZ2Uu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRia2V5cmFuZ2UuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MmE5NDMwMjVhMGZhNzcwNzllOTYwZTQ1
ZTMzMTdmMmRlMGIxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJrZXlyYW5nZS5odG0KQEAgLTAsMCAr
MSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklE
QktleVJhbmdlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgLy8gb25seQorICAgIHRl
c3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5vbmx5
KDEpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdl
LCAia2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKGtleVJhbmdlLmxvd2VyLCAxLCAia2V5UmFuZ2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhrZXlSYW5nZS51cHBlciwgMSwgImtleVJhbmdlIik7CisgICAgICAgIGFzc2VydF9mYWxzZShr
ZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0
X2ZhbHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIpOworICAgIH0s
ICJJREJLZXlSYW5nZS5vbmx5KCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJv
cGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOworCisgICAgLy8gbG93ZXJCb3VuZAorICAgIHRl
c3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5sb3dl
ckJvdW5kKDEsIHRydWUpCisgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlIGluc3RhbmNlb2Yg
SURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdlIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIDEsICJrZXlSYW5nZS5sb3dlciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCB1bmRlZmluZWQsICJrZXlSYW5nZS51
cHBlciIpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5n
ZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBwZXJPcGVuLCAi
a2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktleVJhbmdlLmxvd2VyQm91bmQoKSAt
IHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVj
dGx5Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGtleVJhbmdlID0g
SURCS2V5UmFuZ2UubG93ZXJCb3VuZCgxKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdl
Lmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3BlbiIpOworICAgIH0sICJJREJLZXlSYW5nZS5s
b3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0Iik7
CisKKyAgICAvLyB1cHBlckJvdW5kCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS51cHBlckJvdW5kKDEsIHRydWUpOworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtleVJh
bmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
a2V5UmFuZ2UubG93ZXIsIHVuZGVmaW5lZCwgImtleVJhbmdlLmxvd2VyIik7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCAxLCAia2V5UmFuZ2UudXBwZXIiKTsKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2Vy
T3BlbiIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5
UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktleVJhbmdlLnVwcGVyQm91bmQoKSAtIHJl
dHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5
Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGtleVJhbmdlID0gSURC
S2V5UmFuZ2UudXBwZXJCb3VuZCgxKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdlLnVw
cGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIpOworICAgIH0sICJJREJLZXlSYW5nZS51cHBl
ckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0Iik7CisK
KyAgICAvLyBib3VuZAorICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5UmFu
Z2UgPSBJREJLZXlSYW5nZS5ib3VuZCgxLCAyLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0
X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtleVJhbmdlIGluc3RhbmNl
b2YgSURCS2V5UmFuZ2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5nZS5sb3dlciwg
MSwgImtleVJhbmdlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UudXBwZXIsIDIs
ICJrZXlSYW5nZSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS5sb3dlck9wZW4sICJr
ZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBwZXJP
cGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKCkg
LSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJl
Y3RseSIpOworCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBrZXlSYW5nZSA9
IElEQktleVJhbmdlLmJvdW5kKDEsIDIpOworICAgICAgICBhc3NlcnRfZmFsc2Uoa2V5UmFuZ2Uu
bG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJPcGVuIik7CisgICAgICAgIGFzc2VydF9mYWxzZShr
ZXlSYW5nZS51cHBlck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsKKyAgICB9LCAiSURCS2V5
UmFuZ2UuYm91bmQoKSAtICdsb3dlck9wZW4nIGFuZCAndXBwZXJPcGVuJyBwYXJhbWV0ZXJzIGhh
dmUgY29ycmVjdCBkZWZhdWx0cyBzZXQiKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmtleXJhbmdlX2luY29ycmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJrZXlyYW5n
ZV9pbmNvcnJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0OWJmZjFjNjBjZmM0MDBhODAy
OWI5NzNhYTJmYjY1MGM4MGViZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJrZXlyYW5nZV9pbmNvcnJl
Y3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNTIElEQktleVJhbmdlLmJvdW5k
KCkgLSBib3VuZCByZXF1aXJlcyBtb3JlIHRoYW4gMCBhcmd1bWVudHMuIAorUEFTUyBJREJLZXlS
YW5nZS5ib3VuZChudWxsLCBudWxsKSAtIG51bGwgcGFyYW1ldGVycyBhcmUgaW5jb3JyZWN0LiAK
K1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCAvIG51bGwsIDEpIC0gbnVsbCBwYXJhbWV0
ZXIgaXMgaW5jb3JyZWN0LiAKK1BBU1MgSURCS2V5UmFuZ2UuYm91bmQobG93ZXIsIHVwcGVyIC8g
bG93ZXIgPiB1cHBlcikgLSAgJ2xvd2VyJyBpcyBncmVhdGVyIHRoYW4gJ3VwcGVyJy4gCitQQVNT
IElEQktleVJhbmdlLmJvdW5kKERPTVN0cmluZy9EYXRlL0FycmF5LCAxKSAtIEEgRE9NU3RyaW5n
LCBEYXRlIGFuZCBBcnJheSBhcmUgZ3JlYXRlciB0aGFuIGEgZmxvYXQuIAorUEFTUyBJREJLZXlS
YW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEgLyBnb29kVmFyaWFibGUsIG5vRXhpc3Rp
bmdWYXJpYWJsZSkgLSBub0V4aXN0aW5nVmFyaWFibGUgaXMgbm90IGRlZmluZWQuIAorUEFTUyBJ
REJLZXlSYW5nZS5ib3VuZCh0cnVlLCAxKSAtIGJvb2xlYW4gaXMgbm90IGEgdmFsaWQga2V5IHR5
cGUuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJrZXlyYW5nZV9pbmNvcnJlY3QuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRia2V5cmFuZ2VfaW5j
b3JyZWN0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTE5NzkxNDJlZmQ2ODJlMDZkMmUxNzI3NTVmZDQwYmNk
YzJiNjcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0Lmh0bQpAQCAtMCww
ICsxLDkyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQ
YXJpcyAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PXV0Zi04
PgorICAgICAgICA8dGl0bGUgaWQ9J2Rlc2MnPklEQktleVJhbmdlIFRlc3RzIC0gSW5jb3JyZWN0
PC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNyYW5nZS1jb25jZXB0Ij4K
KyAgICAgICAgPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgdGhlIGxvd2VyIGtleSBpcyBncmVh
dGVyIHRoYW4gdGhlIHVwcGVyIGtleSwgdGhlbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFF
cnJvciBtdXN0IGJlIHRocm93bi4iPgorICAgICAgICA8bGluayByZWw9YXV0aG9yIGhyZWY9Im1h
aWx0bzpjaHJjaGFybGVzNjdAZ21haWwuY29tIiB0aXRsZT0iQ2hyaXN0b3BoZSBDSEFSTEVTIj4K
KworICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisKKyAgICAgICAgICAgIC8vIFR5cGVFcnJvcjogYm91bmQgcmVxdWlyZXMgbW9yZSB0aGFuIDAg
YXJndW1lbnRzCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQoKSAtIGJvdW5kIHJlcXVpcmVzIG1vcmUgdGhh
biAwIGFyZ3VtZW50cy4iKTsKKworICAgICAgICAgICAgLy8gTnVsbCBwYXJhbWV0ZXJzCisgICAg
ICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFu
Z2UuYm91bmQobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
LCAiSURCS2V5UmFuZ2UuYm91bmQobnVsbCwgbnVsbCkgLSBudWxsIHBhcmFtZXRlcnMgYXJlIGlu
Y29ycmVjdC4iKTsKKworICAgICAgICAgICAgLy8gLy8gTnVsbCBwYXJhbWV0ZXIKKyAgICAgICAg
ICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRh
dGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5i
b3VuZCgxLCBudWxsKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
SURCS2V5UmFuZ2UuYm91bmQobnVsbCwgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCAvIG51bGwsIDEpIC0gbnVsbCBwYXJh
bWV0ZXIgaXMgaW5jb3JyZWN0LiIpOworCisgICAgICAgICAgICAvLyBib3VuZCBpbmNvcnJlY3QK
KyAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciBsb3dl
ckJhZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMSkgKyA1OworICAgICAgICAgICAgICAg
IHZhciB1cHBlciA9IGxvd2VyQmFkIC0gMTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFu
Z2UuYm91bmQobG93ZXJCYWQsIHVwcGVyKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoJ2InLCAnYScpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKGxvd2VyLCB1cHBlciAvIGxv
d2VyID4gdXBwZXIpIC0gICdsb3dlcicgaXMgZ3JlYXRlciB0aGFuICd1cHBlcicuIgorICAgICAg
ICAgICAgKTsKKworICAgICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIElEQktleVJhbmdlLmJvdW5kKCdhJywgMSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG5ldyBEYXRlKCksIDEpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJv
ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZChb
MSwgMl0sIDEpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgIklEQktleVJh
bmdlLmJvdW5kKERPTVN0cmluZy9EYXRlL0FycmF5LCAxKSAtIEEgRE9NU3RyaW5nLCBEYXRlIGFu
ZCBBcnJheSBhcmUgZ3JlYXRlciB0aGFuIGEgZmxvYXQuIik7CisKKworICAgICAgICAgICAgLy8g
UmVmZXJlbmNlRXJyb3I6IHRoZSB2YXJpYWJsZSBpcyBub3QgZGVmaW5lZAorICAgICAgICAgICAg
dGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIGdvb2RWYXJpYWJsZSA9IDE7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgUmVmZXJlbmNlRXJyb3IoKSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG5vRXhpc3Rp
bmdWYXJpYWJsZSwgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgUmVmZXJlbmNlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKGdvb2RWYXJpYWJsZSwgbm9FeGlzdGluZ1Zhcmlh
YmxlKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5i
b3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEgLyBnb29kVmFyaWFibGUsIG5vRXhpc3RpbmdWYXJp
YWJsZSkgLSBub0V4aXN0aW5nVmFyaWFibGUgaXMgbm90IGRlZmluZWQuIik7CisKKyAgICAgICAg
ICAgIC8vIFZhbGlkIHR5cGUga2V5IGVycm9yCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQodHJ1ZSwgMSk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQodHJ1ZSwg
MSkgLSBib29sZWFuIGlzIG5vdCBhIHZhbGlkIGtleSB0eXBlLiIpOworCisKKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9h
ZGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmN2NiYmQzZDNkN2M5ZGUwYWUyMmE3N2E2NTM5
ZGMzZWIwYzlmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdp
dGggYW4gaW5saW5lIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZC5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9hZGQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZGY1ODRkOGMyOWJjMjIyOTllMzY3Yzc4
MGU5NmFiMWUzYjEwOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQuaHRtCkBA
IC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdpdGggYW4gaW5saW5lIGtleSA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIg
fSk7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQor
ICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7CisKKyAgICAgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIHJlY29yZC5rZXkpOworICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDEwLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2FkZDEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTUyYTM5N2M1
YjY0MTAxNjliMTdkZTkyN2ZiNjVmMmM1ZTI3NzVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfYWRkMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVj
dFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBjYWxsICdhZGQnIHdpdGhvdXQgYW4ga2V5IHBhcmFt
ZXRlciB3aGVuIHRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzICAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTAuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTAuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA4ZjcxNmQzMWRiZmJkOWRkYzdmOGE5NGE5ODYxMTc2MGM0N2Y3ZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxMC5odG0KQEAgLTAsMCArMSwyOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3Rv
cmUuYWRkKCkgLSBBdHRlbXB0IHRvIGNhbGwgJ2FkZCcgd2l0aG91dCBhbiBrZXkgcGFyYW1ldGVy
IHdoZW4gdGhlIG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAgICAg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2Jq
U3RvcmUuYWRkKHJlY29yZCk7IH0pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVm
aW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDExLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2FkZDExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjcyOGExNDQ0MDA0
NjI0Nzg1OTIyMDNhZWU1ZWRiNDdjMTZiNTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfYWRkMTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtl
eSBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2FkZDExLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDExLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZTZhNGU0MGJhMjFlNTkwYzdhOGYwYjM0ZjQxMmZjODU1YjNjNzA0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTEuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtleSBk
b2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBy
ZWNvcmQgPSB7IGtleTogeyB2YWx1ZTogMSB9LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2
YXIgcnEsCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJv
ciIsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkKTsg
fSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5k
b25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfYWRkMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwZjhlZTE5YTI5ZGQxOWNhNjkyZDFjMjI0N2UwMzcx
YjJkMzVlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxMi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0
IHRvIGFkZCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90IGRl
ZmluZWQgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxMi5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9hZGQxMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE0Y2RhN2I1NTgyYzBlYTViZDc5ZWZlYjE2NjEyZGU2
OTI0YjEyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDEyLmh0bQpAQCAtMCww
ICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRo
ZSByZWNvcmQncyBpbi1saW5lIGtleSBpcyBub3QgZGVmaW5lZCA8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQg
PSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisK
KyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1
YWxzKHJxLCB1bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxMy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTA3MTQxN2ViM2ZlMGE2NWEwMGIzZTk4NWM4YmZiZDNhMDdmOGE2OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2FkZDEzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRo
ZSBvdXQgb2YgbGluZSBrZXkgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMg
b2YgYSB2YWxpZCBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxMy5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9hZGQxMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y0YjMwZDNhZmMxODI3YTExMjUxODA4
NzA3ODk1ODlhYjgyNjY1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDEzLmh0
bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3Jk
IHdoZXJlIHRoZSBvdXQgb2YgbGluZSBrZXkgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgY29u
c3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTog
ImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3Ii
LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCwgeyB2
YWx1ZTogMSB9KTsgfSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsK
KyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfYWRkMTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5YWIzNzZjMDJmNmQ5M2FkNjY1
M2JlNTNkYzQ2MzU0YjQ1Mzk3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQx
NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRk
KCkgLSBBZGQgYSByZWNvcmQgd2hlcmUgYSB2YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90IG1l
ZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfYWRkMTQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3YTFj
NzQxMjI2YmVmZWZhYjg3MmQ1MmE0MDMwODQ2NjE3MTkxYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9hZGQxNC5odG0KQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBZGQg
YSByZWNvcmQgd2hlcmUgYSB2YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90IG1lZXQgdGhlIGNv
bnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFy
IGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBp
bmRleGVkUHJvcGVydHk6IHsgcHJvcGVydHk6ICJkYXRhIiB9IH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisg
ICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBh
dGg6ICJrZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
bmRleGVkUHJvcGVydHkiKTsKKworICAgICAgICBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOwor
CisgICAgICAgIGFzc2VydF90cnVlKHJxIGluc3RhbmNlb2YgSURCUmVxdWVzdCk7CisgICAgICAg
IHJxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgIH0KKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9hZGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxNS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjUxMDQyOTczMTgxZTBlNGJhMDFiZDNlMWUwMDlkMjVh
NTdmMjEwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDE1LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIElmIHRoZSB0
cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNl
dCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvciAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2FkZDE1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDE1Lmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzIy
Y2E3ZGEwYjE4Y2Y2YzA1NGExN2JlNzdhMzIzZGRiMmZkNjFiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfYWRkMTUuaHRtCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gSWYg
dGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1v
ZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtYWRkLUlEQlJlcXVl
c3QtYW55LXZhbHVlLWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIik7CisgICAgICAgIHZhciBvc3RvcmUgPSB0eG4ub2JqZWN0U3RvcmUoInN0
b3JlIik7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNzZXJ0X3Ro
cm93cygiUmVhZE9ubHlFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3Jl
LmFkZCh7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9hZGQxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQxNi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmUxNTlkMTJkODA5OWRkMzU3ODVmM2IzZmMyMzA1ODRkMWIzYmEy
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDE2LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIElmIHRoZSBvYmplY3Qg
c3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBE
T01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2FkZDE2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDE2Lmh0bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZDEyZTA0M2Y3MmE3ZmRkMzJjMGY2Y2I4YjQ2OTU2YzAxZWYwMjE0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfYWRkMTYuaHRtCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0g
SWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24g
bXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIDwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3Lmlu
dGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUt
YWRkLUlEQlJlcXVlc3QtYW55LXZhbHVlLWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3JlLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOwor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQ
YXRoOiJwS2V5In0pOworICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAg
ICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAg
ICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRT
dGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuYWRkKHsgcEtl
eTogInByaW1hcnlLZXlfMCJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAg
ICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2FkZDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNThlZTNiNmM4NzQxOGMyOTRkMDg2ZTYzOWE1NjRjODE5YzliMTQ4MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdpdGggYW4gb3V0LW9mLWxpbmUga2V5
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQy
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZTBhMDlkNThkN2UyZDEzOWE0N2NmY2U4NGNlNzRkMGJjMDNlMzc1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMi5odG0KQEAgLTAsMCArMSwzNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
a2V5ID0gMSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQsIGtleSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQor
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAgIC5nZXQoa2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9w
ZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2FkZDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkMy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODlmNDc4ZTE2MWE4NzQxMGJkZmE0NTRhNmFiYjA4MTVkNWJm
ZGRhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gcmVjb3JkIHdpdGgg
c2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQz
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2FkZDMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlMGQ0MGEyZThkOWJiMWNm
MGY4NTZjMDMzMmFhZWFhMDA3NzY0ODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9h
ZGQzLmh0bQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIHJlY29yZCB3aXRoIHNhbWUg
a2V5IGFscmVhZHkgZXhpc3RzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0
eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7
CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IGZhaWwodCwgInN1Y2Nlc3Mgb24gYWRkaW5nIGR1cGxpY2F0ZSByZWNvcmQiKQor
CisgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3Ii
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocnEuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRF
cnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJlcnJvciIpOworCisg
ICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICBlLnN0b3BQcm9wYWdh
dGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgLy8gRGVmZXIgZG9uZSwgZ2l2aW5n
IHJxLm9uc3VjY2VzcyBhIGNoYW5jZSB0byBydW4KKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2FkZDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMmEwOWEzMDgy
NGVhNDhiNzk2OWM5OGI1NTZkNDJkMjExNjI3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9hZGQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5hZGQoKSAtIGFkZCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRydWUgc3BlY2lmaWVk
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ0
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MjM0ZWI3MTBkNmQzYWI2OTMxNGU5NjE2MGQyMWMwYTk2OTlkMGM0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkNC5odG0KQEAgLTAsMCArMSw0MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1ZTp0cnVlIHNwZWNp
ZmllZCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9
Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9Owor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0lu
Y3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImkxIiwgInBy
b3BlcnR5IiwgeyB1bmlxdWU6IHRydWUgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQp
OworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAgICBycS5v
bnN1Y2Nlc3MgPSBmYWlsKHQsICJzdWNjZXNzIG9uIGFkZGluZyBkdXBsaWNhdGUgaW5kZXhlZCBy
ZWNvcmQiKQorCisgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJy
b3IiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgIkNv
bnN0cmFpbnRFcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJlcnJv
ciIpOworCisgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgLy8gRGVmZXIgZG9u
ZSwgZ2l2aW5nIGEgc3B1cmlvdXMgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRvIHJ1bgorICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX2FkZDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2Y0Nzc4NzNjN2Y5Yjg1YzNhNDEyMDBiNzliYzI0YzVjNjlhOGRlNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGgg
aXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDUu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfYWRkNS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1ZTIxNThjY2EyNGRkMTM2
OWY4YTVjMDg0NzBlYWMxODgzZjVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2Fk
ZDUuaHRtCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5
IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHRlc3Q6
IHsgb2JqOiB7IGtleTogMSB9IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5r
ZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQudGVzdC5vYmoua2V5KTsKKworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsK
KworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDYtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Qw
NTY0M2ZlOTJjODA1ZmY3MTgzMzM3MmRlM2YyNzkxMDFjODQ1YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2FkZDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
Qk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDYuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYxMjNmZjU1YTNmYjVkNDcwMDg2MGM2Mzg3ZjNhYzg3NmVmOGEwOWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ2Lmh0bQpAQCAtMCwwICsxLDQ3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9y
ZS5hZGQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29y
ZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAorICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwg
MywgNCBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsga2V5UGF0aDogImtleSIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7Cisg
ICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2
YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5
cy5wdXNoKGN1cnNvci52YWx1ZS5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAgICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07Cis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2FkZDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkNy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODczNDUxNWRiMWNkNDRkMGRlNTc5Y2ViMTExODU0NmYzY2U2MjFhZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgb3V0LW9mLWxp
bmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDcuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfYWRkNy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWUxNDU1YzFlYjRkNzBiY2ZkNWIzNmM1ZDI3Mzk2ZTRh
ZjI3ZWNkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2FkZDcuaHRtCkBAIC0wLDAg
KzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgb3V0LW9mLWxpbmUga2V5
cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190
ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAgIGV4cGVj
dGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJz
dG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxf
a2V5cy5wdXNoKGN1cnNvci5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAgICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2Fk
ZDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkOC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTMzOWY0NjhmZTFhZTM2NjU5YzBhODU4ZGZlMmJmY2VkYjA4N2Y3NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2FkZDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlIGhhcyBhdXRvSW5jcmVtZW50
OnRydWUgYW5kIHRoZSBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfYWRkOC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ4Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lYzQ2N2I5NWRjNjRhODE5Y2NjZTdiMWQxODA2M2Q3ZjQ2YjRmOTBjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfYWRkOC5odG0KQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRk
KCkgLSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRo
IGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTog
ImRhdGEiIH0sCisgICAgICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVz
dC5vYmoua2V5IiwgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9Owor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1
YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5v
cGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAg
ICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2go
Y3Vyc29yLnZhbHVlLnRlc3Qub2JqLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfYWRkOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9hZGQ5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMWVlZWI0YzNlOTljMWNkMWJjZDIwOWRlOWY5YzFjN2RkNjE1NDNlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB0
aGF0IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlu
bGluZSBrZXkgcmVxdWlyZW1lbnRzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRkOS5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9hZGQ5Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTMwNGEwMzEwYTcwOTcxZWNi
ZjU2NjhjMDllOGUzYTFjZmJkMGIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfYWRk
OS5odG0KQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJl
Y29yZCB0aGF0IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9y
ZSdzIGlubGluZSBrZXkgcmVxdWlyZW1lbnRzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6
ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxLAorICAgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2Jq
U3RvcmUuYWRkKHJlY29yZCwgMSk7IH0pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVu
ZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2NsZWFyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTRlODc3OTJh
MjhiYTkwZjg3MmY2NDQ1MWFkYzhlNDcyNWRhZTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY2xlYXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVj
dFN0b3JlLmNsZWFyKCkgLSBWZXJpZnkgY2xlYXIgcmVtb3ZlcyBhbGwgcmVjb3JkcyAgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZTkxODBhODBlZDYwNzFjOTMwZTkzMjM1Yjg1ZGQyZTc3MmI3ZTVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY2xlYXIuaHRtCkBAIC0wLDAgKzEsNDEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0
b3JlLmNsZWFyKCkgLSBWZXJpZnkgY2xlYXIgcmVtb3ZlcyBhbGwgcmVjb3JkcyA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVt
ZW50OiB0cnVlIH0pOworCisgICAgICAgIG9ialN0b3JlLmFkZCh7IHByb3BlcnR5OiAiZGF0YSIg
fSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IHNvbWV0aGluZ19kaWZmZXJlbnQ6ICJZdXAsIHRv
dGFsbHkgZGlmZmVyZW50IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKDEyMzQpOworICAgICAg
ICBvYmpTdG9yZS5hZGQoWzEsIDIsIDEyMzRdKTsKKworICAgICAgICBvYmpTdG9yZS5jbGVhcigp
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOworICAgICAgICB9KTsKKyAgICB9
OworCisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFy
IHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCBudWxsLCAnY3Vyc29yJyk7CisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2NsZWFyMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg4YzAyOGMy
NGM1YjJhNjY1NTRjODQwZmMwZDEyODExMmQ2ZTA0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2NsZWFyMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2Jq
ZWN0U3RvcmUuY2xlYXIoKSAtIGNsZWFyIHJlbW92ZXMgYWxsIHJlY29yZHMgZnJvbSBhbiBpbmRl
eCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyMi5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9j
bGVhcjIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMTBjYmQxYjVjMzliMWY3ZWIxY2U1YWZkYmE5YWU0YzQ3
YmQ1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jbGVhcjIuaHRtCkBAIC0wLDAg
KzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBjbGVhciByZW1vdmVzIGFsbCByZWNvcmRzIGZyb20g
YW4gaW5kZXggPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0g
YXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIG9ialN0b3JlLmFk
ZCh7IGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBp
bmRleGVkUHJvcGVydHk6ICJ5bywgbWFuIiwgc29tZXRoaW5nX2RpZmZlcmVudDogIll1cCwgdG90
YWxseSBkaWZmZXJlbnQiIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVy
dHk6IDEyMzQgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogWzEs
IDIsIDEyMzRdIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoMTIzNCk7CisKKyAgICAgICAgb2Jq
U3RvcmUuY2xlYXIoKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAg
ICAgfSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5k
ZXgiKQorICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsIG51bGwsICdjdXJzb3InKTsKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jbGVhcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY2xlYXIzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWQzMGY4M2RkNzQ0ODNmNDY2
MWJjMDE2MWNjOTgxY2RkZmI5YjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY2xl
YXIzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5j
bGVhcigpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0
byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfY2xlYXIzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyMy5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDU1MDlhYzk2MTZiMWIzNGYxYTdmM2FhNTdiYjAyYWRlYzA4OGVkZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyMy5odG0KQEAgLTAsMCArMSwzNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuY2xlYXIoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3Jl
IGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlF
cnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9i
amVjdFN0b3JlLWNsZWFyLUlEQlJlcXVlc3QiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBL
ZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5
S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
OworICAgICAgICB2YXIgb3N0b3JlID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAg
ICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5
RXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5jbGVhcigpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3Nj
cmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NsZWFyNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU1NmZmOGVlMDFjNzVh
NDMyNDk4ZTBhM2QxNDYwMDg5YTA3MTBhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2NsZWFyNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuY2xlYXIoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGlt
cGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3Rh
dGVFcnJvciAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NsZWFyNC5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9jbGVhcjQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3NTI1MmIwNGM5MzI2MzgwZjc2MTRlYTZiOGQ1
M2NiYWFkNmUwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jbGVhcjQuaHRtCkBA
IC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBi
ZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9u
IG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jbGVhci1JREJSZXF1ZXN0Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIG9zdG9yZSwKKyAgICAgICAgdCA9
IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3Rv
cmUoInN0b3JlIik7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAo
ZXZlbnQpIHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAg
b3N0b3JlLmNsZWFyKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQu
ZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3Vu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTQzNDRjOTVmYWI0NjNhOTJlOTEyZWMwYjRmMjc0NmRmY2U3NzUwZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2NvdW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29y
ZHMgaW4gdGhlIG9iamVjdCBzdG9yZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NvdW50
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2NvdW50Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDFmMDZhZDk0Mjc0Mzc2
OGNjOTg4NjkwMGIwMTA3OThlYTQ1NjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
Y291bnQuaHRtCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVt
YmVyIG9mIHJlY29yZHMgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7
IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHsgZGF0YTogImRhdGEiICsgaSB9LCBpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5jb3VudCgp
OworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAxMCk7CisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NvdW50Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmYTMyNmE5MjI2Mjc3
YTY1MzlkMTA5MDk5NmFiZDllNjU4MGQxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2NvdW50Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlz
IHdpdGhpbiB0aGUgcmFuZ2UgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDIuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfY291bnQyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzYyY2IzMDE3YWI2NzI2OGY1
ODc3OTFjZWMzYjQ4ZWRlMTJmNDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291
bnQyLmh0bQpAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJl
ciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGhpbiB0aGUgcmFuZ2UgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgZm9yKHZhciBpID0g
MDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGRhdGE6ICJkYXRhIiAr
IGkgfSwgaSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAg
ICAuY291bnQoSURCS2V5UmFuZ2UuYm91bmQoNSwyMCkpOworCisgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LCA1KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9jb3VudDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NDJhNDU5MTA3ZWE1MDIzMDc1MWNlYTMxMjQ2Yzk5MzQ5ODc4ZWFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUg
bnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0aCB0aGUga2V5IAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9jb3VudDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQzLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMzkxMmI2YzcyNTAxMTYzM2IwNTMwNjFiNDFlZWEzNTUwYTkwOGVjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQzLmh0bQpAQCAtMCwwICsxLDMxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUu
Y291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdp
dGggdGhlIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiCisKKyAg
ICBjcmVhdGVkYihhc3luY190ZXN0KCkpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgICAgICB2YXIgc3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrIiB9KQorCisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQorICAgICAgICAgICAgc3RvcmUuYWRkKHsgazogImtl
eV8iICsgaSB9KTsKKworICAgICAgICBzdG9yZS5jb3VudCgia2V5XzIiKS5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdCwgMSwgImNvdW50KGtleV8yKSIpCisKKyAgICAgICAgICAgIHN0b3JlLmNv
dW50KCJrZXlfIikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAwLCAiY291bnQoa2V5
XykiKQorICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAgICAgICB9KQorICAgICAg
ICB9KQorICAgIH0KKworPC9zY3JpcHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2NvdW50NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNDQ4NTBiNzQzYTFjZGM0OWFlZTlmODk0NDc5Zjc5Y2Uz
N2M0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNvdW50KCkgLSBJZiB0aGUg
b2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRo
cm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9jb3VudDQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQ0Lmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MWRhOGFjOGU1MjI5ZjMxZGZhMWNhYzY3ZWIyMDQ3NDA1MDZiMjM2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQ0Lmh0bQpAQCAtMCwwICsxLDMxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9y
ZS5jb3VudCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1w
bGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0
ZUVycm9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJo
dHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZj
cy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURC
T2JqZWN0U3RvcmUtY291bnQtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7
CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmNvdW50
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWZiZTQyMGEwM2U5Yjg1ZGU0OGMzZDE3OTZiMDAyN2Q0YWIzZGM1NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gcmV0dXJucyBhbiBJREJJ
bmRleCBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Lmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MTAxMTk1NTNkMjQ2YWFhODA2MzQ2ODY0MTFjN2FhNTU3NDQwZjAwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXguaHRtCkBAIC0wLDAgKzEs
MzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSByZXR1cm5zIGFuIElEQkluZGV4IGFuZCB0aGUg
cHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgdmFyIGluZGV4ID0gb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIsIHsgdW5pcXVlOiB0cnVlIH0p
OworCisgICAgICAgIGFzc2VydF90cnVlKGluZGV4IGluc3RhbmNlb2YgSURCSW5kZXgsICJJREJJ
bmRleCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluZGV4Lm5hbWUsICJpbmRleCIsICJuYW1l
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgub2JqZWN0U3RvcmUsIG9ialN0b3JlLCAi
b2JqZWN0U3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmRleC5rZXlQYXRoLCAiaW5k
ZXhlZFByb3BlcnR5IiwgImtleVBhdGgiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXgudW5p
cXVlLCAidW5pcXVlIik7CisgICAgICAgIGFzc2VydF9mYWxzZShpbmRleC5tdWx0aUVudHJ5LCAi
bXVsdGlFbnRyeSIpOworCisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWExYWM1MzI4YzM4YTA2OTg1NzE4Y2EzZDI3YTgxNmIwNDE0NzllMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiBhbiBp
bmRleCB3aXRoIHRoZSBuYW1lIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhpcyBvYmplY3Qgc3Rv
cmUsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
Q29uc3RyYWludEVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgx
MC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjBlMTE5
NzliOTJmZjE1MzljNjk1MWI0YWE5MWE3OTBkNjU0MjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC5odG0KQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlSW5k
ZXgoKSAtIElmIGFuIGluZGV4IHdpdGggdGhlIG5hbWUgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0
aGlzIG9iamVjdCBzdG9yZSwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBDb25zdHJhaW50RXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1JREJJbmRleC1E
T01TdHJpbmctbmFtZS1ET01TdHJpbmctc2VxdWVuY2UtRE9NU3RyaW5nLS1rZXlQYXRoLUlEQklu
ZGV4UGFyYW1ldGVycy1vcHRpb25hbFBhcmFtZXRlcnMiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCitvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChlKSB7CisgICAgdmFyIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgIHZhciBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
KTsKKyAgICBvc3RvcmUuY3JlYXRlSW5kZXgoImEiLCAiYSIpOworICAgIGFzc2VydF90aHJvd3Mo
IkNvbnN0cmFpbnRFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgIG9zdG9yZS5jcmVhdGVJbmRl
eCgiYSIsICJhIik7CisgICAgfSk7CisgICAgdC5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmFmMWUyYjFhZTk4
MmYxOGQwYWIwMGQ3ODg3NjFhNmYwNmFhMGRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXgxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
RGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBh
dGgsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
U3ludGF4RXJyb3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NGQyNDUwNmZi
ZDZkOTRhZTc0MjEwNjZjNTMxM2IzMTQxZDUxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDExLmh0bQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgp
IC0gSWYga2V5UGF0aCBpcyBub3QgYSB2YWxpZCBrZXkgcGF0aCwgdGhlIGltcGxlbWVudGF0aW9u
IG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBTeW50YXhFcnJvciA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0
ZUluZGV4LUlEQkluZGV4LURPTVN0cmluZy1uYW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJp
bmctLWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUpIHsKKyAg
ICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgdmFyIG9zdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIpOworICAgIGFzc2VydF90aHJvd3MoIlN5bnRheEVycm9yIiwgZnVu
Y3Rpb24oKXsKKyAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJhYiIsICIuIik7CisgICAgfSk7
CisgICAgdC5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjMyOWY5NzBhNjQ2NmY5ZjNjYmYzOGY1ZTAyZjJmMWQ3
YTdiMWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlSW5kZXgo
KSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0
aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTIuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXgxMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhhNmQ2YTc3OTBjZGNiOGEyNjI3Y2Uw
YTZkOTE2N2FlZWQ0MjhkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4MTIuaHRtCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiB0aGUgb2Jq
ZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93
IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jcmVhdGVJbmRl
eC1JREJJbmRleC1ET01TdHJpbmctbmFtZS1ET01TdHJpbmctc2VxdWVuY2UtRE9NU3RyaW5nLS1r
ZXlQYXRoLUlEQkluZGV4UGFyYW1ldGVycy1vcHRpb25hbFBhcmFtZXRlcnMiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3JlLAorICAgICAgICB0ID0gYXN5
bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIpOworICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICB9CisK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVy
cm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXgxMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDEzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2ZiZTUyNjI5MTAzM2ZlYmFkYTY4MzI0ZjU5
MjE5MTE4MzRhY2MwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgx
My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRl
SW5kZXgoKSAtIE9wZXJhdGUgb3V0IHZlcnNpb25jaGFuZ2UgdGhyb3cgSW52YWxpZFN0YXRlRXJy
b3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1MTIzMWM1MjU3ODNlOTZjMjBk
MmU0ZWMzNzFjNTZjYWZhYzBlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDEzLmh0bQpAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gT3BlcmF0
ZSBvdXQgdmVyc2lvbmNoYW5nZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20i
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWRE
Qi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUlu
ZGV4LUlEQkluZGV4LURPTVN0cmluZy1uYW1lLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmct
LWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBk
Yi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIG9zdG9yZSA9IHR4
bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7Cisg
ICAgICAgICAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVy
dHkiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ5MmQyYTRkZTUwZmViYTcyYjY2ZmFhNmEwM2ZmMWMwZTBlM2I2YzIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBhdHRlbXB0IHRv
IGNyZWF0ZSBhbiBpbmRleCB0aGF0IHJlcXVpcmVzIHVuaXF1ZSB2YWx1ZXMgb24gYW4gb2JqZWN0
IHN0b3JlIGFscmVhZHkgY29udGFpbnMgZHVwbGljYXRlcyAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDIuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ4YmViNDlmMzcxYjJhYzY2MjBjZDFjM2ZmODBjNTFmMDRkYjg5ZmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDIuaHRtCkBAIC0wLDAgKzEsNDEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBpbmRleCB0aGF0
IHJlcXVpcmVzIHVuaXF1ZSB2YWx1ZXMgb24gYW4gb2JqZWN0IHN0b3JlIGFscmVhZHkgY29udGFp
bnMgZHVwbGljYXRlcyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgYWJvcnRl
ZCwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGluZGV4ZWRQcm9w
ZXJ0eTogImJhciIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAg
ICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwg
Mik7CisgICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
bmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKworICAgICAgICBhc3NlcnRfdHJ1
ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsKKworICAgICAgICBlLnRh
cmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlw
ZSwgImFib3J0IiwgImV2ZW50IHR5cGUiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGIub25h
Ym9ydCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGFib3J0ZWQsICJ0
cmFuc2FjdGlvbi5hYm9ydCBldmVudCBoYXMgZmlyZWQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgp
OworICAgICAgICB9OworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBmYWlsKHQsICJnb3QgY29tcGxldGUsIGV4cGVjdGVkIGFib3J0Iik7CisgICAgfTsKKworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZGZmYmU5MDNlMWY0ZjBkOGExZDE3YjhhNTcyZmQ1ZWRlZDg0NTkxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0g
dGhlIGluZGV4IGlzIHVzYWJsZSByaWdodCBhZnRlciBiZWluZyBtYWRlIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXkuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5Lmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTlm
ZGIwOGU0YjRiMjE2Zjk0N2ZkMjhiNzc3NjMwODM2NGQxNDFiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5Lmh0bQpAQCAtMCwwICsx
LDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gdGhlIGluZGV4IGlzIHVzYWJsZSByaWdodCBh
ZnRlciBiZWluZyBtYWRlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86
b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSBuYW1l
PXRpbWVvdXQgY29udGVudD1sb25nPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIGFib3J0ZWQsCisgICAgICB0ID0g
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6MTkwMDB9KQorCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciB0eG4g
PSBlLnRhcmdldC50cmFuc2FjdGlvbiwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogJ2tleScgfSk7CisKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTog
ImtleV8iICsgaSwgaW5kZXhlZFByb3BlcnR5OiAiaW5kZXhlZF8iICsgaSB9KTsKKworICAgICAg
ICB2YXIgaWR4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIpCisKKyAgICAgICAgaWR4LmdldCgnaW5kZXhlZF85OScpLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LmtleSwgJ2tleV85OScsICdrZXknKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXQo
J2luZGV4ZWRfOScpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ2tleV85JywgJ2tleScp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KCkgeworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRl
eC1ldmVudF9vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVs
ZXRlSW5kZXgtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMjcyY2Q2NDM3
YTVlZGUwZTczYzU3NTdlNzAwYmM3N2ZkZWNmZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVu
dCBvcmRlcmluZyBmb3IgYSBsYXRlciBkZWxldGVkIGluZGV4IAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXIuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YmYwMTM5ZjZlYWEwNjg5YTA0YzRiZjI4MDI5MTA5NzdhNTc1N2ZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLmh0
bQpAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gRXZlbnQgb3JkZXJpbmcg
Zm9yIGEgbGF0ZXIgZGVsZXRlZCBpbmRleDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICBldmVudHMgPSBbXSwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KQorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9u
Lm9uY29tcGxldGUgPSBsb2coInRyYW5zYWN0aW9uLmNvbXBsZXRlIik7CisKKyAgICAgICAgdmFy
IHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgdmFyIHJxX2FkZDEgPSBvYmpTdG9y
ZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAxKTsKKyAgICAgICAgcnFfYWRkMS5vbnN1Y2Nl
c3MgPSBsb2coInJxX2FkZDEuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQxLm9uZXJyb3IgICA9
IGxvZygicnFfYWRkMS5lcnJvciIpOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJp
bmRleCIsICJhbmltYWwiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKworICAgICAgICB2YXIgcnFfYWRk
MiA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOworICAgICAgICBycV9h
ZGQyLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDIu
b25lcnJvciAgID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgbG9nKCJycV9hZGQyLmVycm9y
IikoZSk7CisgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgb2JqU3RvcmUuZGVsZXRlSW5k
ZXgoImluZGV4Iik7CisKKyAgICAgICAgdmFyIHJxX2FkZDMgPSBvYmpTdG9yZS5hZGQoeyBhbmlt
YWw6ICJVbmljb3JuIiB9LCAzKTsKKyAgICAgICAgcnFfYWRkMy5vbnN1Y2Nlc3MgPSBsb2coInJx
X2FkZDMuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQzLm9uZXJyb3IgICA9IGxvZygicnFfYWRk
My5lcnJvciIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUpOworICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGV2ZW50cywgWyAicnFfYWRkMS5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQzLnN1Y2Nlc3MiLAor
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5jb21w
bGV0ZSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEu
c3VjY2VzcyIgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRzIik7CisgICAg
ICAgIHQuZG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50
YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUu
dGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2
ZW50cy5wdXNoKG1zZyk7CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlr
ZXlwYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBh
dGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiMTYzMDUyNGUzNjdiNjQxZWQxMmYzYWJhZTMw
MjMyNmQ4ZGMyOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUt
ZW1wdHlrZXlwYXRoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZW1wdHkga2V5UGF0aCAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDUtZW1wdHlrZXlwYXRoLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2JlOGVmZjVhOGU1ODc0MTBh
MzgxMzJhMjUxNDViODMzMWQ0ZmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXg1LWVtcHR5a2V5cGF0aC5odG0KQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRl
SW5kZXgoKSAtIGVtcHR5IGtleVBhdGg8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgdmFyIGRiLCBhYm9ydGVkLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiAxMDAwMH0pCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAor
ICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQoIm9iamVjdF8iICsgaSwgaSk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgIiIpCisgICAgICAgIHJxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgYXNz
ZXJ0X3VucmVhY2hlZCgiZXJyb3I6ICIgKyBycS5lcnJvci5uYW1lKTsgfQorICAgICAgICBycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsgfQorCisgICAgICAgIG9ialN0b3JlLmluZGV4KCJpbmRl
eCIpCisgICAgICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQorICAgICAgICAgICAgICAgIC5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgJ29iamVjdF80JywgJ3Jlc3VsdCcpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmExZTUzNTVmZjYwYzcyMWY3MmRjMzU1ZDM2OGZmMzI2Y2FhNmE0MDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4
KCkgLSBldmVudCBvcmRlciB3aGVuIHVuaXF1ZSBjb25zdHJhaW50IGlzIHRyaWdnZXJlZCAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci5odG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEwMWNh
MGFmYzJkY2Q5ODI3MWFmYmQyZmU5OTlkOTA5OTk3ZjllMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci5odG0KQEAgLTAsMCArMSw3NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQk9iamVjdFN0
b3JlLmNyZWF0ZUluZGV4KCkgLSBldmVudCBvcmRlciB3aGVuIHVuaXF1ZSBjb25zdHJhaW50IGlz
IHRyaWdnZXJlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPG1ldGEgcmVsPWhlbHAg
aHJlZj1odHRwOi8vb2RpbmhvLmh0bWw1Lm9yZy9JbmRleGVkREIvc3BlYy9PdmVydmlldy5odG1s
I3dpZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5kZXgtRE9NU3RyaW5nLW5hbWUt
YW55LWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycz4KKzxtZXRh
IHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBpbmRleCB0aGF0IGlzIHJlcXVlc3RlZCB0byBiZSBjcmVh
dGVkIGNhbiBjb250YWluIGNvbnN0cmFpbnRzIG9uIHRoZSBkYXRhIGFsbG93ZWQgaW4gdGhlIGlu
ZGV4J3MgcmVmZXJlbmNlZCBvYmplY3Qgc3RvcmUsIHN1Y2ggYXMgcmVxdWlyaW5nIHVuaXF1ZW5l
c3Mgb2YgdGhlIHZhbHVlcyByZWZlcmVuY2VkIGJ5IHRoZSBpbmRleCdzIGtleVBhdGguIElmIHRo
ZSByZWZlcmVuY2VkIG9iamVjdCBzdG9yZSBhbHJlYWR5IGNvbnRhaW5zIGRhdGEgd2hpY2ggdmlv
bGF0ZXMgdGhlc2UgY29uc3RyYWludHMsIHRoaXMgbXVzdCBub3QgY2F1c2UgdGhlIGltcGxlbWVu
dGF0aW9uIG9mIGNyZWF0ZUluZGV4IHRvIHRocm93IGFuIGV4Y2VwdGlvbiBvciBhZmZlY3Qgd2hh
dCBpdCByZXR1cm5zLiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCBzdGlsbCBjcmVhdGUgYW5kIHJl
dHVybiBhbiBJREJJbmRleCBvYmplY3QuIEluc3RlYWQgdGhlIGltcGxlbWVudGF0aW9uIG11c3Qg
cXVldWUgdXAgYW4gb3BlcmF0aW9uIHRvIGFib3J0IHRoZSAndmVyc2lvbmNoYW5nZScgdHJhbnNh
Y3Rpb24gd2hpY2ggd2FzIHVzZWQgZm9yIHRoZSBjcmVhdGVJbmRleCBjYWxsLiI+Cis8bWV0YSBy
ZWw9YXNzZXJ0IHRpdGxlPSJJbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCdzIHBvc3NpYmxlIGZv
ciB0aGUgaW1wbGVtZW50YXRpb24gdG8gYXN5bmNocm9ub3VzbHkgcnVuIGludG8gcHJvYmxlbXMg
Y3JlYXRpbmcgdGhlIGluZGV4IGFmdGVyIHRoZSBjcmVhdGVJbmRleCBmdW5jdGlvbiBoYXMgcmV0
dXJuZWQuIEZvciBleGFtcGxlIGluIGltcGxlbWVudGF0aW9ucyB3aGVyZSBtZXRhZGF0YSBhYm91
dCB0aGUgbmV3bHkgY3JlYXRlZCBpbmRleCBpcyBxdWV1ZWQgdXAgdG8gYmUgaW5zZXJ0ZWQgaW50
byB0aGUgZGF0YWJhc2UgYXN5bmNocm9ub3VzbHksIG9yIHdoZXJlIHRoZSBpbXBsZW1lbnRhdGlv
biBtaWdodCBuZWVkIHRvIGFzayB0aGUgdXNlciBmb3IgcGVybWlzc2lvbiBmb3IgcXVvdGEgcmVh
c29ucy4gU3VjaCBpbXBsZW1lbnRhdGlvbnMgbXVzdCBzdGlsbCBjcmVhdGUgYW5kIHJldHVybiBh
biBJREJJbmRleCBvYmplY3QuIEluc3RlYWQsIG9uY2UgdGhlIGltcGxlbWVudGF0aW9uIHJlYWxp
emVzIHRoYXQgY3JlYXRpbmcgdGhlIGluZGV4IGhhcyBmYWlsZWQsIGl0IG11c3QgYWJvcnQgdGhl
IHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBzdGVwcyBmb3IgYWJvcnRpbmcgYSB0cmFuc2FjdGlvbiB1
c2luZyB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgYXMgZXJyb3IgcGFyYW1ldGVyLiI+Cis8bWV0YSBy
ZWw9YXNzZXJ0IHRpdGxlPSJpZiB0aGUgaW5kZXggY2FuJ3QgYmUgY3JlYXRlZCBkdWUgdG8gdW5p
cXVlIGNvbnN0cmFpbnRzLCBDb25zdHJhaW50RXJyb3IgbXVzdCBiZSB1c2VkIGFzIGVycm9yIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
ICAgIC8vIFRyYW5zYWN0aW9uIG1heSBmaXJlIHdpbmRvdy5vbmVycm9yIGluIHNvbWUgaW1wbGVt
ZW50YXRpb25zLgorICAgIHNldHVwKHthbGxvd191bmNhdWdodF9leGNlcHRpb246dHJ1ZX0pOwor
CisgICAgdmFyIGRiLAorICAgICAgZXZlbnRzID0gW10sCisgICAgICB0ID0gYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5vbmVycm9yID0gbG9nKCJk
Yi5lcnJvciIpOworICAgICAgICBkYi5vbmFib3J0ID0gbG9nKCJkYi5hYm9ydCIpOworICAgICAg
ICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gbG9nKCJ0cmFuc2FjdGlvbi5hYm9ydCIp
CisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBsb2coInRyYW5zYWN0aW9u
LmVycm9yIikKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGxvZygi
dHJhbnNhY3Rpb24uY29tcGxldGUiKQorCisgICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFu
c2FjdGlvbiwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIpOworCisgICAgICAgIHZhciBycV9hZGQxID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5p
Y29ybiIgfSwgMSk7CisgICAgICAgIHJxX2FkZDEub25zdWNjZXNzID0gbG9nKCJycV9hZGQxLnN1
Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRkMS5vbmVycm9yICAgPSBsb2coInJxX2FkZDEuZXJyb3Ii
KTsKKworICAgICAgICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNv
cm4iIH0sIDIpOworICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNj
ZXNzIik7CisgICAgICAgIHJxX2FkZDIub25lcnJvciAgID0gbG9nKCJycV9hZGQyLmVycm9yIik7
CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImFuaW1hbCIsIHsgdW5p
cXVlOiB0cnVlIH0pCisKKyAgICAgICAgdmFyIHJxX2FkZDMgPSBvYmpTdG9yZS5hZGQoeyBhbmlt
YWw6ICJVbmljb3JuIiB9LCAzKTsKKyAgICAgICAgcnFfYWRkMy5vbnN1Y2Nlc3MgPSBsb2coInJx
X2FkZDMuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQzLm9uZXJyb3IgICA9IGxvZygicnFfYWRk
My5lcnJvciIpOworICAgIH0KKworICAgIG9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgbG9nKCJvcGVuX3JxLmVycm9yIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZXZlbnRzLCBbICJycV9hZGQxLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicnFfYWRkMi5zdWNjZXNzIiwKKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicnFfYWRkMy5lcnJvcjogQWJvcnRFcnJvciIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5lcnJvcjogQWJvcnRF
cnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYi5lcnJvcjog
QWJvcnRFcnJvciIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRy
YW5zYWN0aW9uLmFib3J0OiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGIuYWJvcnQ6IENvbnN0cmFpbnRFcnJvciIsCisKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuZXJyb3I6IEFib3J0RXJyb3Ii
IF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIpOworICAgICAgICB0LmRv
bmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHJldHVybiBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVy
cm9yKQorICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5l
cnJvci5uYW1lKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBldmVudHMucHVz
aChtc2cpOworICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg1M2VkMWUzZWFhMWI1YzI2Yzk4Y2RhODZkNDg1MDUwMjc5MzA5M2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0
ZUluZGV4KCkgLSBFdmVudCBvcmRlcmluZyBmb3IgQ29uc3RyYWludEVycm9yIG9uIHJlcXVlc3Qg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFl
NzczZDNkM2JlNDUwMTJhMGEwZDZkYjM5MzMyYjEzNjA3ODk1ZWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRtCkBAIC0wLDAgKzEsODAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBvcmRlcmluZyBmb3IgQ29uc3RyYWludEVy
cm9yIG9uIHJlcXVlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIHJlbD1o
ZWxwIGhyZWY9aHR0cDovL29kaW5oby5odG1sNS5vcmcvSW5kZXhlZERCL3NwZWMvT3ZlcnZpZXcu
aHRtbCNkZm4tc3RlcHMtZm9yLWFib3J0aW5nLWEtdHJhbnNhY3Rpb24+Cis8bWV0YSByZWw9YXNz
ZXJ0IHRpdGxlPSJVbmxlc3MgZXJyb3Igd2FzIHNldCB0byBudWxsLCBjcmVhdGUgYSBET01FcnJv
ciBvYmplY3QgYW5kIHNldCBpdHMgbmFtZSB0byBlcnJvci4gU2V0IHRyYW5zYWN0aW9uJ3MgZXJy
b3IgcHJvcGVydHkgdG8gdGhpcyBuZXdseSBjcmVhdGVkIERPTUVycm9yLiI+Cis8bWV0YSByZWw9
YXNzZXJ0IHRpdGxlPSJJZiB0aGUgdHJhbnNhY3Rpb24ncyByZXF1ZXN0IGxpc3QgY29udGFpbiBh
bnkgcmVxdWVzdHMgd2hvc2UgZG9uZSBmbGFnIGlzIHN0aWxsIGZhbHNlLCBhYm9ydCB0aGUgc3Rl
cHMgZm9yIGFzeW5jaHJvbm91c2x5IGV4ZWN1dGluZyBhIHJlcXVlc3QgZm9yIGVhY2ggc3VjaCBy
ZXF1ZXN0IGFuZCBxdWV1ZSBhIHRhc2sgdG8gcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOiI+
Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJzZXQgdGhlIHJlcXVlc3QncyBlcnJvciBhdHRyaWJ1
dGUgdG8gYSBET01FcnJvciB3aXRoIGEgdHlwZSBvZiBBYm9ydEVycm9yLiI+Cis8bWV0YSByZWw9
YXNzZXJ0IHRpdGxlPSJEaXNwYXRjaCBhbiBldmVudCBhdCByZXF1ZXN0LiBUaGUgZXZlbnQgbXVz
dCB1c2UgdGhlIEV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSBpdHMgdHlwZSBzZXQgdG8gJ2Vycm9y
Jy4gVGhlIGV2ZW50IGJ1YmJsZXMgYW5kIGlzIGNhbmNlbGFibGUuIFRoZSBwcm9wYWdhdGlvbiBw
YXRoIGZvciB0aGUgZXZlbnQgaXMgdHJhbnNhY3Rpb24ncyBjb25uZWN0aW9uLCB0aGVuIHRyYW5z
YWN0aW9uIGFuZCBmaW5hbGx5IHRoZSByZXF1ZXN0LiBUaGVyZSBpcyBubyBkZWZhdWx0IGFjdGlv
biBmb3IgdGhlIGV2ZW50LiI+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJRdWV1ZSB1cCBhbiBv
cGVyYXRpb24gdG8gZGlzcGF0Y2ggYW4gZXZlbnQgYXQgdHJhbnNhY3Rpb24uIFRoZSBldmVudCBt
dXN0IHVzZSB0aGUgRXZlbnQgaW50ZXJmYWNlIGFuZCBoYXZlIGl0cyB0eXBlIHNldCB0byAnYWJv
cnQnLiBUaGUgZXZlbnQgZG9lcyBidWJibGUgYnV0IGlzIG5vdCBjYW5jZWxhYmxlLiBUaGUgcHJv
cGFnYXRpb24gcGF0aCBmb3IgdGhlIGV2ZW50IGlzIHRyYW5zYWN0aW9uJ3MgY29ubmVjdGlvbiBh
bmQgdGhlbiB0cmFuc2FjdGlvbi4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICAvLyBUcmFuc2FjdGlvbiBtYXkgZmlyZSB3aW5k
b3cub25lcnJvciBpbiBzb21lIGltcGxlbWVudGF0aW9ucy4KKyAgICBzZXR1cCh7YWxsb3dfdW5j
YXVnaHRfZXhjZXB0aW9uOnRydWV9KTsKKworICAgIHZhciBkYiwKKyAgICAgIGV2ZW50cyA9IFtd
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0p
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgICAgICBkYi5vbmVycm9y
ID0gbG9nKCJkYi5lcnJvciIpOworICAgICAgICBkYi5vbmFib3J0ID0gbG9nKCJkYi5hYm9ydCIp
OworICAgICAgICB0eG4ub25hYm9ydCA9IGxvZygidHJhbnNhY3Rpb24uYWJvcnQiKQorICAgICAg
ICB0eG4ub25lcnJvciA9IGxvZygidHJhbnNhY3Rpb24uZXJyb3IiKQorICAgICAgICB0eG4ub25j
b21wbGV0ZSA9IGxvZygidHJhbnNhY3Rpb24uY29tcGxldGUiKQorCisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIHZhciBycV9h
ZGQxID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMSk7CisgICAgICAgIHJx
X2FkZDEub25zdWNjZXNzID0gbG9nKCJycV9hZGQxLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRk
MS5vbmVycm9yICAgPSBsb2coInJxX2FkZDEuZXJyb3IiKTsKKworICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCAiYW5pbWFsIiwgeyB1bmlxdWU6IHRydWUgfSkKKworICAgICAg
ICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOwor
ICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNjZXNzIik7CisgICAg
ICAgIHJxX2FkZDIub25lcnJvciAgID0gbG9nKCJycV9hZGQyLmVycm9yIik7CisKKyAgICAgICAg
dmFyIHJxX2FkZDMgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJIb3JzZSIgfSwgMyk7CisgICAg
ICAgIHJxX2FkZDMub25zdWNjZXNzID0gbG9nKCJycV9hZGQzLnN1Y2Nlc3MiKTsKKyAgICAgICAg
cnFfYWRkMy5vbmVycm9yICAgPSBsb2coInJxX2FkZDMuZXJyb3IiKTsKKyAgICB9CisKKyAgICBv
cGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9ycS5lcnJv
ciIpKGUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWyAicnFfYWRkMS5z
dWNjZXNzIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRk
Mi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRyYW5zYWN0aW9uLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIs
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDMuZXJyb3I6
IEFib3J0RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJh
bnNhY3Rpb24uZXJyb3I6IEFib3J0RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGIuZXJyb3I6IEFib3J0RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5hYm9ydDogQ29uc3RyYWludEVycm9yIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiLmFib3J0OiBDb25zdHJh
aW50RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVu
X3JxLmVycm9yOiBBYm9ydEVycm9yIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
dmVudHMiKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1z
ZykgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBl
LnRhcmdldCAmJiBlLnRhcmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaCht
c2cgKyAiOiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4OC12YWxpZF9rZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
OC12YWxpZF9rZXlzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzZlZmQyMmVjNWM2ZmRiYTMw
Y2Y3NTllZGI3OTg5NjgxNWUzZGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXg4LXZhbGlkX2tleXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBpbmRleCBjYW4gYmUgdmFsaWQga2V5cyAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MmZl
YjJmMDljODY3Mzc2MjFjNDYyMDFjN2JhZDNiOGI3NTdhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy5odG0KQEAgLTAsMCArMSw1NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0
U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGluZGV4IGNhbiBiZSB2YWxpZCBrZXlzPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6
MTkwMDB9KSwKKyAgICAgIG5vdyA9IG5ldyBEYXRlKCksCisgICAgICBtYXIxOCA9IG5ldyBEYXRl
KDExMTExMTExMTExMTEpLAorICAgICAgYXIgPSBbIllheSIsIDIsIC1JbmZpbml0eV0sCisgICAg
ICBudW0gPSAxMzM3CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAg
ICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAn
a2V5JyB9KTsKKworICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6ICJub3ciLCAgICBpOiBub3cg
ICB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiAibWFyMTgiLCAgaTogbWFyMTggfSk7
CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTogImFycmF5IiwgIGk6IGFyICAgIH0pOworICAg
ICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6ICJudW1iZXIiLCBpOiBudW0gICB9KTsKKworICAgICAg
ICB2YXIgaWR4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImkiKQorCisgICAgICAg
IGlkeC5nZXQobm93KS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksICdub3cnLCAna2V5Jyk7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pLmdldFRpbWUoKSwg
bm93LmdldFRpbWUoKSwgJ2dldFRpbWUnKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXQo
bWFyMTgpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ21hcjE4JywgJ2tleScpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaS5nZXRUaW1lKCksIG1hcjE4
LmdldFRpbWUoKSwgJ2dldFRpbWUnKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXQoYXIp
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ2FycmF5JywgJ2tleScpOworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaSwgYXIsICdhcnJheSBpcyB0
aGUgc2FtZScpOworICAgICAgICB9KTsKKyAgICAgICAgaWR4LmdldChudW0pLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LmtleSwgJ251bWJlcicsICdrZXknKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LmksIG51bSwgJ251bWJlciBpcyB0aGUgc2FtZScpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2FlZTliZTMzMWVmYTZkNjJkYzI0YWNkZGI2YjUwMjZjMWNlYTZiMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4
KCkgLSBlbXB0eSBuYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDkt
ZW1wdHluYW1lLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ4ODkxZjRmMjVlNGMyOTBjMDNjNWNjMTMxMDNmMWNkZjM1Y2M1NDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLmh0bQpAQCAt
MCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0
bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5IG5hbWU8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yihhc3luY190ZXN0KCkpCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCA1OyBpKyspCisgICAgICAgICAgICBzdG9yZS5hZGQoeyBpZHg6ICJvYmplY3RfIiArIGkgfSwg
aSkKKworICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiIiwgImlkeCIpCisKKyAgICAgICAgc3Rv
cmUuaW5kZXgoIiIpCisgICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQorICAgICAgICAgICAg
IC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pZHgsICdvYmplY3RfNCcsICdyZXN1bHQnKQor
ICAgICAgICB9KQorICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNbMF0sICIi
LCAiaW5kZXhOYW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1l
cy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpCisgICAgfQorCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rp
b24oInN0b3JlIikub2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBhc3NlcnRfZXF1YWxz
KHN0b3JlLmluZGV4TmFtZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIp
CisKKyAgICAgICAgdGhpcy5kb25lKCkKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Mjk4Njc0NjNkMzUzYWU5
ZGE1ODg3MzFlMjhmYjU1YzE1MWZkYmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAoaW5saW5lIGtleXMpIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MjNjMjAyMWQzMTNhNzdjNWM2ZmQyNGVjNDAxNTNkOWM5NjJiMGM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLmh0bQpAQCAtMCwwICsxLDQ2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RT
dG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAoaW5saW5lIGtleXMpPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAor
ICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9
KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGVsZXRlX3JxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlbGV0ZShy
ZWNvcmQua2V5KTsKKworICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQs
IHVuZGVmaW5lZCk7CisKKyAgICAgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSB0LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRSZW1vdmVkKTsKKyAgICAgICAgfSk7CisgICAg
fTsKKworICAgIGZ1bmN0aW9uIFZlcmlmeVJlY29yZFJlbW92ZWQoKSB7CisgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7CisKKyAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOWFmYTYxZDRjMDRj
MzhjN2JmMWMwYTBhMWEyYjg4MTA5YmQ4MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9kZWxldGUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5kZWxldGUoKSAtIGtleSBkb2Vzbid0IG1hdGNoIGFueSByZWNvcmRzICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYTBjMTVlYjQxYmIwY2JhMWMxOWQyNWU0Mzc0YzVhNTczYzEzNzZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi5odG0KQEAgLTAsMCArMSwyNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0
U3RvcmUuZGVsZXRlKCkgLSBrZXkgZG9lc24ndCBtYXRjaCBhbnkgcmVjb3JkcyA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICB2YXIgZGVsZXRlX3JxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAuZGVsZXRlKDEpOworCisgICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNmQ5YTAwMDMxMTkzYTBlYzE1ZDg2YTU4
MTZlNjgzZGJlMDI2ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5kZWxldGUo
KSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZiOWU0ZmY4ODNkYTk4YzM2OGY2YzM1MmVmMWIyZDAyNDAxZDRjZDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLmh0bQpAQCAtMCwwICsxLDQ3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJP
YmplY3RTdG9yZS5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFuIG9iamVj
dCBhdHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyB0ZXN0OiB7IG9iajogeyBrZXk6IDEg
fSB9LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInRlc3Qub2JqLmtleSIgfSk7CisgICAgICAg
IG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRlbGV0ZV9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGUocmVjb3JkLnRlc3Qu
b2JqLmtleSk7CisKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1
bmRlZmluZWQpOworCisgICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7CisgICAgICAgIH0pOworICAgIH07
CisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgeworICAgICAgICB2YXIgcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC50ZXN0Lm9iai5rZXkpOwor
CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOworICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MGE3
ODZjNDFkYjIyMzMxODBiNzVkNmIwYzFmODI4MmY1OGYzOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9kZWxldGU0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAob3V0LW9mLWxp
bmUga2V5cykgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU0Lmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2RlbGV0ZTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmYTQ1MGM5OWFmYzUwMzljMzE5NTY1YzYx
ODgxZjlkZDI1MGRhMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU0Lmh0
bQpAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29y
ZCAob3V0LW9mLWxpbmUga2V5cykgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAga2V5ID0gMSwKKyAgICAgIHJlY29yZCA9
IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwga2V5KTsKKyAg
ICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBkZWxldGVfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAuZGVsZXRlKGtleSk7CisKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOworCisgICAgICAgICAgICBlLnRhcmdldC50cmFuc2Fj
dGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7CisgICAg
ICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgewor
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KGtleSk7CisK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkYTk2
YmRhNWI0ZmFhYWQ2Y2U1NDIxNmU2Mjk5YjZhMmNlNDE5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
Qk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gcmVtb3ZlcyBhbGwgb2YgdGhlIHJlY29yZHMgaW4gdGhl
IHJhbmdlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU1Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZTUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNzliN2MzYjQ1OGI2ZGI1ZDk3Njk2NzE1ZGEy
OWEyYmI5ZGVmN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU1Lmh0bQpA
QCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5k
ZWxldGUoKSAtIHJlbW92ZXMgYWxsIG9mIHRoZSByZWNvcmRzIGluIHRoZSByYW5nZTwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICB2YXIgZGIKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5j
X3Rlc3QoKSkKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICB2YXIgb3MgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiKQorCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsr
KQorICAgICAgICAgICAgb3MuYWRkKCJkYXRhIiArIGksIGkpCisgICAgfQorCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICB2YXIgb3MgPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInN0b3JlIikKKworICAgICAgICBvcy5kZWxldGUoIElEQktleVJhbmdlLmJvdW5kKDMsIDYp
ICkKKyAgICAgICAgb3MuY291bnQoKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKQorICAgICAgICB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgNiwgIkNvdW50IGFmdGVyIGRlbGV0aW5nIDMtNiBmcm9tIDEwIik7CisgICAgICAgICAgICB0
aGlzLmRvbmUoKTsKKyAgICAgICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU2LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYzFmMGIzZjA4MGJj
NTQwMWRhNWVmNWVlMzFkMjRkMGNiZmI5YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9kZWxldGU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5kZWxldGUoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJl
bG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJv
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9k
ZWxldGU2Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjU0ZTA0MzI1ZjkzYTRmNGY3ZTY2Y2ViZjBlOTBhODUx
MWJiMDVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi5odG0KQEAgLTAs
MCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJP
YmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93
IFJlYWRPbmx5RXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQk9iamVjdFN0b3JlLWRlbGV0ZS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
ICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7Cisg
ICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpOworICAgICAgICB2YXIgb3N0b3JlID0gdHhuLm9iamVjdFN0b3Jl
KCJzdG9yZSIpOworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIG9z
dG9yZS5kZWxldGUoInByaW1hcnlLZXlfMCIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NmQ1YThmZGZlZjhjMjZlN2I5ODZlYWFlYmZkNWQxYjc0YmU1
YzNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUg
b2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRo
cm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZTcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmYxNTdiOTc0MTRhYTMwNzk3ODI2MDEzOTFmOWVjYmI3YzE0MWY5NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTcuaHRtCkBAIC0wLDAgKzEsMzMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0
b3JlLmRlbGV0ZSgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUg
aW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRT
dGF0ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9
Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1J
REJPYmplY3RTdG9yZS1kZWxldGUtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNj
cmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgb3N0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7Cisg
ICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlv
bigpeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5j
dGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5kZWxldGUoInByaW1hcnlLZXlfMCIpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8
L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4
ODk0YzYyMTg5ODM0ZmIzYzNhZTdiYWJhNjdiZjBkZGE5MjkxNzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKSAtIHJlbW92ZXMgdGhlIGluZGV4ICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXguaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlSW5kZXguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmY3ZmFkYzk2N2M1ODg0M2IwNWU2YTAxYTdk
NThjMjU1ZDhmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC5o
dG0KQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKSAtIHJlbW92ZXMgdGhlIGlu
ZGV4IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKKyAgICAgIGtleSA9IDEsCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0
YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKQorICAgIH07CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAg
dmFyIG5ld192ZXJzaW9uID0gY3JlYXRlZGIodCwgZGIubmFtZSwgMik7CisgICAgICAgIG5ld192
ZXJzaW9uLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQudHJh
bnNhY3Rpb24ub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgb2JqU3RvcmUuZGVsZXRl
SW5kZXgoImluZGV4Iik7CisgICAgICAgIH0KKyAgICAgICAgbmV3X3ZlcnNpb24ub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGluZGV4LAorICAgICAgICAgICAgICBv
YmpTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdO
b3RGb3VuZEVycm9yJywKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgaW5kZXggPSBvYmpT
dG9yZS5pbmRleCgiaW5kZXgiKSB9KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgs
IHVuZGVmaW5lZCk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45OGNlOGRhYzEyYTM1MDQ2ODNkZTgwNGU4MDljNjA1NzhkMTMwZGQ5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgQXR0ZW1wdGluZyB0byB1c2UgZGVsZXRlZCBJREJPYmplY3RTdG9yZSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxl
dGVkLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YjhmNzQwYjY1NmE1MWQyNjYzOGJjNTJhZjQ5ZDIxYTM1NjFj
ZDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC5odG0KQEAgLTAsMCAr
MSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkF0
dGVtcHRpbmcgdG8gdXNlIGRlbGV0ZWQgSURCT2JqZWN0U3RvcmU8L3RpdGxlPgorPGxpbmsgcmVs
PWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCNvYmplY3Qtc3RvcmUiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSW52
YWxpZFN0YXRlRXJyb3IgT2NjdXJzIGlmIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgc291cmNlIG9i
amVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVtb3ZlZC4iPgorPGxpbmsgcmVsPWF1dGhv
ciBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICBhZGRfc3VjY2VzcyA9IGZhbHNlLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pCisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRy
dWUgfSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lc1swXSwgInN0
b3JlIiwgIm9iamVjdFN0b3JlTmFtZXMiKTsKKworICAgICAgICB2YXIgcnFfYWRkID0gb2JqU3Rv
cmUuYWRkKDEpOworICAgICAgICBycV9hZGQub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7IGFkZF9z
dWNjZXNzID0gdHJ1ZTsgfTsKKyAgICAgICAgcnFfYWRkLm9uZXJyb3IgPSBmYWlsKHQsICdycV9h
ZGQuZXJyb3InKTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4IiwgImEiKTsK
KyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIDAsICJvYmplY3RTdG9yZU5hbWVzLmxl
bmd0aCBhZnRlciBkZWxldGUiKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0
aW9uKCkgeyBvYmpTdG9yZS5hZGQoMik7IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGws
IGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5wdXQoMyk7IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dz
KG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5nZXQoMSk7IH0pOworICAgICAgICBhc3NlcnRf
dGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5jbGVhcigpOyB9KTsKKyAgICAgICAg
YXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUuY291bnQoKTsgfSk7Cisg
ICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmRlbGV0ZSgx
KTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3Jl
Lm9wZW5DdXJzb3IoKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24o
KSB7IG9ialN0b3JlLmluZGV4KCJpZHgiKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVs
bCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmRlbGV0ZUluZGV4KCJpZHgiKTsgfSk7CisgICAgICAg
IGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJp
ZHgyIiwgImEiKTsgfSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoYWRkX3N1Y2Nlc3MsICJGaXJzdCBhZGQgd2FzIHN1
Y2Nlc3NmdWwiKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2dldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM0ZTJhZTI1YzRkMjg3
OWRhYjlkMjYwODA0OTgxZmEwMTU4NzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2dldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUu
Z2V0KCkgLSBrZXkgaXMgYSBudW1iZXIgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfZ2V0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTgzZWFkM2VlZDcwMTdlMWY0
YmI5YmZhMzA3NTFmODAxMDMxMTdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0
Lmh0bQpAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIG51bWJlciA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmQgPSB7IGtleTogMy4xNDE1OTI2NSwgcHJvcGVydHk6ICJkYXRhIiB9Owor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkKKyAg
ICAgICAgICAuYWRkKHJlY29yZCk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgLmdldChyZWNvcmQua2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dC5rZXksIHJlY29yZC5rZXkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7CisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
Z2V0Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUxYzM2ZjVhYmRlOWYwNTEwMTE0ZDZmYmU4
M2FlZWIxMTQwNGZlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0ga2V5
IGlzIGEgc3RyaW5nICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Mi5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9nZXQyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzE0ZGIwZDY0YzBjMWRlNmIzZjAwYTllZTky
YWU0MzVlNjEzNTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Mi5odG0KQEAg
LTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSBrZXkgaXMgYSBzdHJpbmcgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBrZXk6ICJ0aGlzIGlzIGEga2V5IHRoYXQncyBhIHN0cmluZyIsIHByb3BlcnR5
OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pCisgICAgICAgICAgLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rp
b24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOworCisgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3JkLmtleSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKyAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfZ2V0My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdmMWJlODhjNjMy
M2I3ZTcwZDUwN2EwMDg2Y2QwM2E2ZjEzOTIwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX2dldDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLmdldCgpIC0ga2V5IGlzIGEgRGF0ZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dl
dDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0My5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU4ZmFkMGM4ZjkzZjZi
YWUzNGU0NmMyYzc2ZmNmNDFkYmQ3ZjhjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2dldDMuaHRtCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0ga2V5IGlzIGEgRGF0ZSA8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0
KCksCisgICAgICByZWNvcmQgPSB7IGtleTogbmV3IERhdGUoKSwgcHJvcGVydHk6ICJkYXRhIiB9
OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkK
KyAgICAgICAgICAuYWRkKHJlY29yZCk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAg
ICAgICAgLmdldChyZWNvcmQua2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJl
c3VsdC5rZXkudmFsdWVPZigpLCByZWNvcmQua2V5LnZhbHVlT2YoKSk7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJjZWFi
ZDM2YzY3MmRiMmYxNDEyMjRjOWZhMmI3MDlmMjZhOTlmOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2dldDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9i
amVjdFN0b3JlLmdldCgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJlY29yZCB0aGF0IGRvZXNu
J3QgZXhpc3QgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ0Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX2dldDQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNzlkYTJiM2QwYTVkMGZjMmVjYjcwMDcyZTYzZmUw
OThiMDg4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ0Lmh0bQpAQCAtMCww
ICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0cmlldmUgYSByZWNvcmQgdGhh
dCBkb2Vzbid0IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgcnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAgICAgICAgICAgICAgLmdldCgxKTsK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHRzLCB1bmRlZmluZWQpOworICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKKyAgICAgICAg
fSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7fTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
Z2V0NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ1LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MzIxMDdmMjNmNDk1M2Q2YmVkMjlmYmI1NzIwNzRhMWNkMWRjNGM0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUg
Zmlyc3Qga2V5IGluIHRoZSByYW5nZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dldDUu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfZ2V0NS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdhYjU5OGMwMzk5YjE0ZDJh
OWRmZWZlM2Q4MzY0NmM4NmM3N2EyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dl
dDUuaHRtCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQk9iamVj
dFN0b3JlLmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0
aGUgcmFuZ2UgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1
cHBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHZhciBkYgorICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZh
ciBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgZm9yKHZhciBp
ID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICBvcy5hZGQoImRhdGEiICsgaSwgaSkKKyAg
ICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAgICAgIGRi
LnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisg
ICAgICAgICAgLmdldCggSURCS2V5UmFuZ2UuYm91bmQoMywgNikgKQorICAgICAgICAgIC5vbnN1
Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgImRhdGEzIiwgImdldCgzLTYpIik7Cisg
ICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ2LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2dldDYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwMjRlNGJm
NjIwN2I0NDhjYWEzMDY3OTIyMTI2NzcwMjE5Yzg3MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9nZXQ2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmpl
Y3RTdG9yZS5nZXQoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVk
IHRyYW5zYWN0aW9uICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Ni5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9nZXQ2Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTdiNTQ3N2I4YTU1OGMwMmVkN2IyYjEyYzMw
OGU3NDU2MjA3MWM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Ni5odG0KQEAg
LTAsMCArMSwzMCBAQAor77u/PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZl
RXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJZdWljaGlOdWtpeWFtYSIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1l1aWNoaU51
a2l5YW1hIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgfQorCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICB2YXIgc3RvcmUg
PSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgic3RvcmUiKTsKKyAgICAgICAgc3RvcmUudHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93cygiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgc3RvcmUuZ2V0KDEpOworICAgICAgICB9LCAidGhyb3cgVHJhbnNhY3Rp
b25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24uIik7CisgICAgICAgIHQuZG9u
ZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXQ3LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYWNkNjU2MTVmMDRjZjA0Mzk5ZThiNGNiMTNhMGYwNTVlZGFi
YTUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0aHJvdyBEYXRhRXJy
b3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2dl
dDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0Ny5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk1NjEwYzllZWEyZmI4
ZDNhNzczNWRlMTI5YTBhZTYxZWU3MmExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X2dldDcuaHRtCkBAIC0wLDAgKzEsMjkgQEAKK++7vzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cgRGF0YUVy
cm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iWXVpY2hpTnVraXlhbWEiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ZdWljaGlOdWtp
eWFtYSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgIH0KKworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgc3RvcmUgPSBk
Yi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgic3RvcmUiKQorICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBzdG9yZS5nZXQobnVsbCkKKyAgICAgICAgfSwgInRocm93IERhdGFF
cnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5LiIpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX2luZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2luZGV4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MDg1NjYxNTliNjg2MTA3ZTQ3YTM2NmNhODYwY2E3MjU5MjY2NDMyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfaW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmluZGV4KCkgLSByZXR1cm5zIGFuIGluZGV4ICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfaW5kZXguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfaW5kZXgu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkzMzgzYjJkMDk2N2NmZGU2YzNhOWU2MDU0NGE1YjYzZjFhNDA2OWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9pbmRleC5odG0KQEAgLTAsMCArMSwzNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuaW5kZXgoKSAtIHJldHVybnMgYW4gaW5kZXggPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImlu
ZGV4ZWRQcm9wZXJ0eSIpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIGluZGV4ID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAg
ICAgICAgICAuaW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5z
dGFuY2VvZiBJREJJbmRleCwgJ2luc3RhbmNlb2YgSURCSW5kZXgnKTsKKyAgICAgICAgdC5kb25l
KCk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTE2ZmY5ZjMwMmEwNjQ4MGM2
NDZhYjc3NWIzMTZiODEwOTQzMTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfb3Bl
bkN1cnNvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUub3BlbkN1cnNvcigpIC0gaXRlcmF0ZSB0aHJvdWdoIDEwMCBvYmplY3RzIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3Iu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk1YWQ4ODkwMjczOGU1OTZmM2Q0ZWZjYmRmNDQzYzdlOTRjY2MyOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLmh0bQpAQCAtMCwwICsx
LDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29y
KCkgLSBpdGVyYXRlIHRocm91Z2ggMTAwIG9iamVjdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rl
c3QoKSkKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwgMTAwOyBp
KyspCisgICAgICAgICAgICBzdG9yZS5hZGQoInJlY29yZF8iICsgaSwgaSk7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY291bnQg
PSAwCisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorCisgICAgICAg
IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAub3BlbkN1cnNvcigpLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBjb3VudCArPSAxOworICAg
ICAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0pCisKKyAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0aGlzLnN0ZXBfZnVuYyhmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEwMCk7CisgICAgICAg
ICAgICB0aGlzLmRvbmUoKQorICAgICAgICB9KQorICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFs
aWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYWI1OGExYzcwMzI4ZDFmZTBhYzI0ZTNjMmUxY2ZiYWFmMzY4MjM5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29y
KCkgLSBpbnZhbGlkIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhhbiBudW1iZXIgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9v
cGVuQ3Vyc29yX2ludmFsaWQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmYjMzMzMwOTI0NGQ4MjUwZTY5NWUx
YjkyMTdhYTBiYTdkMzY1YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vy
c29yX2ludmFsaWQuaHRtCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSAtIGludmFsaWQ8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hy
dGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisKKyAgICBzZXR1cChmdW5jdGlvbigp
IHsKKyAgICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBEYXRlKCku
Z2V0VGltZSgpKTsKKyAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgi
ZGF0YSIsICAxKTsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKKyAgICAg
ICAgfTsKKyAgICB9LAorICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisgICAgb3Bl
bi5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50
LnRpdGxlICsgIiAtIHBhc3Mgc29tZXRoaW5nIG90aGVyIHRoYW4gbnVtYmVyIikuc3RlcChmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICB2YXIgaWR4ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5v
YmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpOworCisgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBpZHgub3Bl
bkN1cnNvcih7IGxvd2VyOiAiYSIgfSk7IH0pOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBpZHgub3BlbkN1cnNv
cih7IGxvd2VyOiAiYSIsIGxvd2VyT3BlbjogZmFsc2UgfSk7IH0pOworCisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBp
ZHgub3BlbkN1cnNvcih7IGxvd2VyOiAiYSIsIGxvd2VyT3BlbjogZmFsc2UsIHVwcGVyOiBudWxs
LCB1cHBlck9wZW46IGZhbHNlIH0pOyB9KTsKKworICAgICAgICAgICAgdGhpcy5kb25lKCk7Cisg
ICAgICAgIH0pOworCisKKyAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0
ZW0gZnJvbSBoZXJlb24KKyAgICAgICAgZG9uZSgpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfcHV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWYwNjJkNDJl
NDc4NDJhYjViMGY1YWVhYTIyZTYxZmFiZGM2ZGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfcHV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5wdXQoKSAtIHB1dCB3aXRoIGFuIGlubGluZSBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9wdXQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMThiMzQ2
ODRlOGM5ZmViZmU4Mjg1N2Q4MzZmZTlhODJkYjA5ZmIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfcHV0Lmh0bQpAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aXRo
IGFuIGlubGluZSBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAi
ZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOwor
ICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOwor
CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJv
cGVydHkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCBy
ZWNvcmQua2V5KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Owor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9wdXQxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjEyYzc4NDUyZWMxYTQ2NDhjMjY5ZjlhN2Q4NDYyNDU1MjJjZWZjYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gY2FsbCAncHV0JyB3
aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9m
LWxpbmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEwLmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX3B1dDEwLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDI5YmEzOWY3NGZhMTIwZTIyNGJmYmM4ZjJk
MzJmNTVlZmVlZDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTAuaHRtCkBA
IC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBjYWxsICdwdXQnIHdpdGhv
dXQgYW4ga2V5IHBhcmFtZXRlciB3aGVuIHRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGlu
ZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
dmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJy
b3IiLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCk7
IH0pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQu
ZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX3B1dDExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEx
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTNmZGJmYjRiNDE2NGY3NDQ3OTA0MTVjZDQxYjk2
MDNlM2I5NmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTEtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1w
dCB0byBwdXQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtleSBkb2VzIG5vdCBtZWV0IHRo
ZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3Jl
X3B1dDExLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDExLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmVkNDMzOWM2
M2FlNTA1OGFlMDUzMGU1YmRjM2VkMzFmNDYzMTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfcHV0MTEuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0
byBwdXQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtleSBkb2VzIG5vdCBtZWV0IHRoZSBj
b25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogeyB2
YWx1ZTogMSB9LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAgICAg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXki
IH0pOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBm
dW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsgfSk7CisKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
cHV0MTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhmNzhkNzg4NzUwMGE4OTgwMTZjYmEzM2VmMzg1Yjc4OWFhNWE0Y2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3
aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90IGRlZmluZWQgIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9wdXQxMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMi5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGQ1ZWFmZThjYjg1OTIwMGQ0YzdlNTFkMjY0NjJhODU1N2EyNGVlMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEyLmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5w
dXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBpbi1saW5l
IGtleSBpcyBub3QgZGVmaW5lZCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJN
aWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0
YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgYXNzZXJ0X3Ro
cm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3Jl
LnB1dChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQp
OworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9wdXQxMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg2YTk4NTgwN2IwMzljYzNk
OWJmYzU3MzM1Y2I4YmY5NTUyMTdkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1
dDEzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5w
dXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRoZSBvdXQgb2YgbGluZSBrZXkg
cHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMy5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDdiOTAzYWYxYzAxNTI4YWVlZGY3NWQwNTU5N2VjNjM5ZTBjNzUwZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEzLmh0bQpAQCAtMCwwICsxLDI5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRoZSBvdXQgb2Yg
bGluZSBrZXkgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxp
ZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5
bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2
YXIgcnEsCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVu
Y3Rpb24oKSB7IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCwgeyB2YWx1ZTogMSB9KTsgfSk7CisK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7
CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0MTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc5OTE3YWE0YzFhMWI1Y2E1YjI5YjBiYzljMDY4YmI1MGZkYjZl
NTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBQdXQgYSByZWNvcmQg
d2hlcmUgYSB2YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRz
IG9mIGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTQuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0MTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YzhjMTQ2NDg5NzYzN2EwMWMxZjkw
YmM5Mzc0ZmQ4MWJhOTQ0NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNC5o
dG0KQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBQdXQgYSByZWNvcmQgd2hlcmUgYSB2
YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFs
aWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6IHsg
cHJvcGVydHk6ICJkYXRhIiB9IH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAgICAgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisg
ICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsK
KworICAgICAgICBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOworCisgICAgICAgIGFzc2VydF90
cnVlKHJxIGluc3RhbmNlb2YgSURCUmVxdWVzdCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0KKyAgICB9OworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9w
dXQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzNiNWE5YmRhNDUzNTQwOTUzNzU0NGIzYTc0NjU3ZWEzMTMzMTAzOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDE1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElE
Qk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhy
b3cgUmVhZE9ubHlFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTUuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0MTUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZmQ3MTY2ZTgwMzNhNWQ5ODdhNDlk
Y2E0MWEwOWUxODZiYWM5NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNS5o
dG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhp
cyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHks
IHRocm93IFJlYWRPbmx5RXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLXB1dC1JREJSZXF1ZXN0LWFueS12YWx1ZS1hbnkta2V5
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190
ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBh
dGg6InBLZXkifSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAo
ZXZlbnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpOworICAg
ICAgICB2YXIgb3N0b3JlID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICB0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5RXJyb3Ii
LCBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5wdXQoe3BLZXk6ICJwcmltYXJ5
S2V5XzAifSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgp
OworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Jk
MDY0YTAxYmVjNWRkYWQzNThhZTFkZTU0MDc1Zjk0NmExYTllNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX3B1dDE2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRl
ZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJ
bnZhbGlkU3RhdGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTYuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0MTYuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZGM4NjgxY2QzMjY3N2E3NWJmNTZi
ZDI0Yjg1YzkyZWMyMzkzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNi5o
dG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhh
cyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLXB1dC1JREJSZXF1ZXN0LWFueS12YWx1
ZS1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIG9z
dG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBvc3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAg
ZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7Cisg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7
CisgICAgICAgICAgICAgICAgb3N0b3JlLnB1dCh7cEtleTogInByaW1hcnlLZXlfMCJ9KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfcHV0Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNkMzliZDVmYTc1NjdjMzAx
NjI4NzQ2Yjc1NDMwMmQxMTQzMzkzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1
dDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1
dCgpIC0gcHV0IHdpdGggYW4gb3V0LW9mLWxpbmUga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfcHV0Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDVlYTQ3
MDU2NzRhZmQxMjYyMDU1Y2M0MzZkMGI0YjhiMTgxYjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfcHV0Mi5odG0KQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBwdXQgd2l0
aCBhbiBvdXQtb2YtbGluZSBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAga2V5ID0gMSwKKyAgICAgIHJlY29yZCA9
IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQsIGtleSk7Cisg
ICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5nZXQoa2V5KTsKKworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsK
KworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE1
Y2IxMzhlMDliZDA2NWVjZWYxMDFjM2NlOTRjNTQ0NWM3NWUyOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX3B1dDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
Qk9iamVjdFN0b3JlLnB1dCgpIC0gcmVjb3JkIHdpdGggc2FtZSBrZXkgYWxyZWFkeSBleGlzdHMg
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDMu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk2ZmY4YmNjY2E0ZThjYjIxZDQ5NzVlZmI5ZWNlYjQwOWU5MTRiYjQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQzLmh0bQpAQCAtMCwwICsxLDQ4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5wdXQoKSAtIHJlY29yZCB3aXRoIHNhbWUga2V5IGFscmVhZHkgZXhpc3RzIDwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCBzdWNjZXNzX2V2ZW50LAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEi
IH0sCisgICAgICByZWNvcmRfcHV0ID0geyBrZXk6IDEsIHByb3BlcnR5OiAiY2hhbmdlZCIsIG1v
cmU6IFsic3R1ZmYiLCAyXSB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLnB1dChy
ZWNvcmQpOworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLnB1dChyZWNvcmRfcHV0KTsKKyAg
ICAgICAgcnEub25lcnJvciA9IGZhaWwodCwgImVycm9yIG9uIHB1dCIpOworCisgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHN1Y2Nl
c3NfZXZlbnQgPSB0cnVlOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF90cnVlKHN1Y2Nlc3NfZXZlbnQp
OworCisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmdldCgx
KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICB2YXIgcmVjID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlYy5rZXksIHJlY29yZF9wdXQua2V5KTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMocmVjLnByb3BlcnR5LCByZWNvcmRfcHV0LnByb3BlcnR5KTsKKyAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMocmVjLm1vcmUsIHJlY29yZF9wdXQubW9yZSk7CisKKyAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX3B1dDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZWJhOGI3YzUyMDU3
YjZjMjFlMjVlNzlmMGNlNTUyNTg5ZTBjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9wdXQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5wdXQoKSAtIHB1dCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRydWUgc3BlY2lmaWVkICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ0Lmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMGI4NDBkZjc2ODY2NzY5MGY4NGUyODFhOWFiN2I2YTQzNzhmNDNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0NC5odG0KQEAgLTAsMCArMSw0MCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0
U3RvcmUucHV0KCkgLSBwdXQgd2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1ZTp0cnVlIHNwZWNpZmll
ZCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHJlY29yZCA9IHsg
a2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KGFzeW5jX3Rlc3QoKSk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpMSIsICJwcm9wZXJ0eSIsIHsgdW5pcXVl
OiB0cnVlIH0pOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKworICAgICAgICB2YXIg
cnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gZmFpbCh0
aGlzLCAic3VjY2VzcyBvbiBwdXR0aW5nIGR1cGxpY2F0ZSBpbmRleGVkIHJlY29yZCIpCisKKyAg
ICAgICAgcnEub25lcnJvciA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocnEuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVy
cm9yIik7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAiZXJyb3IiKTsKKwor
ICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgZS5zdG9wUHJvcGFn
YXRpb24oKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIC8vIERlZmVyIGRvbmUsIGdpdmlu
ZyBhIHNwdXJpb3VzIHJxLm9uc3VjY2VzcyBhIGNoYW5jZSB0byBydW4KKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9w
dXQ1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZlMTBmY2Y5NTlkZjkyZjFmNGYzMTk1ZTYxYTcxM2FmMTU0NzRmY2MKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFu
IG9iamVjdCBhdHRyaWJ1dGUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ1Lmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX3B1dDUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZDkwYzY4ZjVmOTViYTM5NWMxMGY4
NzMyZDliNDE0YzI1Y2MxNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ1Lmh0
bQpAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRo
IGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyB0ZXN0OiB7IG9i
ajogeyBrZXk6IDEgfSB9LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5IiB9
KTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAg
ICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLnRlc3Qub2JqLmtleSk7CisKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7CisKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ2LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX3B1dDYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYWUwNjJj
YTk5YWQxNzkwMjE5NmQ3ZjVmNzg5ODQ1YjZmMjhkNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9wdXQ2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmpl
Y3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfcHV0Ni5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ2Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNzQ4MGFlNTRiYjk0MDEzNTlkZTAwODNiNzE4NmRkNzY4NGFiOGI3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfcHV0Ni5odG0KQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0
KCkgLSBhdXRvSW5jcmVtZW50IGFuZCBpbmxpbmUga2V5cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7
IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAgIGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQg
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtl
eVBhdGg6ICJrZXkiLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgIG9ialN0b3Jl
LnB1dChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgb2Jq
U3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgIH07
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGFj
dHVhbF9rZXlzID0gW10sCisgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQor
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAg
Lm9wZW5DdXJzb3IoKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVz
aChjdXJzb3IudmFsdWUua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMpOworICAgICAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9OworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ3
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhjZTRlYWYyYzYzMzFmNWE4ZDk1ZmVjNGI4NzFlM2ZhZjQyOTM4ODkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9wdXQ3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIG91dC1vZi1saW5lIGtl
eXMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ3Lmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1
dDcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZmY4OTkxNzFjZGYzMzhjYjU0M2M5ODdiYTU1ZTU1N2I2MmEx
YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ3Lmh0bQpAQCAtMCwwICsxLDQ3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJP
YmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIG91dC1vZi1saW5lIGtleXMgPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCisgICAgICBleHBlY3RlZF9r
ZXlzID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgIG9ialN0
b3JlLnB1dChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAg
b2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAg
IH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFy
IGFjdHVhbF9rZXlzID0gW10sCisgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUi
KQorICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owor
CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMu
cHVzaChjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMpOworICAgICAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ4LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJh
MjM3YTU4ZWEyNWJlODgwZDhiNDA2OWQxNmZiNzg1MTZlMWI2YTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9wdXQ4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJPYmplY3RTdG9yZS5wdXQoKSAtIG9iamVjdCBzdG9yZSBoYXMgYXV0b0luY3JlbWVudDp0cnVl
IGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX3B1dDguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0OC5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTVlNzhjYmM5YWZkODcxNmJlZTgyNTVkYjBmNjIyZWZiMmUxY2I2MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX3B1dDguaHRtCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0g
b2JqZWN0IHN0b3JlIGhhcyBhdXRvSW5jcmVtZW50OnRydWUgYW5kIHRoZSBrZXkgcGF0aCBpcyBh
biBvYmplY3QgYXR0cmlidXRlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRh
IiB9LAorICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwgMywgNCBdOworCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogInRlc3Qub2Jq
LmtleSIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgb2JqU3RvcmUucHV0KHJl
Y29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5w
dXQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgfTsKKworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tl
eXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1
cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
ICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNv
ci52YWx1ZS50ZXN0Lm9iai5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAgICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1
dDktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0OS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTk0ZjdkOGE2MjJjZTRlYzA0ZmM2YWE1OGRkYTg5NjUzNTU0MjBjOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX3B1dDktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgdGhhdCBk
b2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhbiBvYmplY3Qgc3RvcmUncyBpbmxpbmUg
a2V5IHJlcXVpcmVtZW50cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDkuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0OS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5YWVkN2YxNjc2ZWEyOTQ3NDA1OTlh
NWFhNDhjMTYyZjFlNWViYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDkuaHRt
CkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQg
dGhhdCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhbiBvYmplY3Qgc3RvcmUncyBp
bmxpbmUga2V5IHJlcXVpcmVtZW50cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0
YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdCwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgYXNzZXJ0X3Ro
cm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3Jl
LnB1dChyZWNvcmQsIDEpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmlu
ZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2FjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2Fj
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U3YWQxNmFiNDQwYmNjZjg4MGE3YzQzZWE0
Nzk0NTk2YzZjNDI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJREJUcmFuc2FjdGlvbiAtIHJlcXVlc3QgZ290dGVu
IGJ5IHRoZSBoYW5kbGVyIAorUEFTUyBJREJUcmFuc2FjdGlvbiAtIHJlcXVlc3QgcmV0dXJuZWQg
Ynkgb3BlbigpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEx
ZjNmMzI0ZGExMzUyZDQyYzU0NWM4YWQ3ZDczYzA0ZmJkYzNhMTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJUcmFuc2FjdGlvbiAtIGNvbXBsZXRlIGV2ZW50IAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFu
c2FjdGlvbi1vbmNvbXBsZXRlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUuaHRtCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg3ZjZkNDQzOWZjOGRjY2RmYzQzYTM1MTNlMzgwZDQzMDZjOTc3N2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLmh0bQpAQCAtMCwwICsxLDUzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJUcmFuc2FjdGlvbiAtIGNvbXBsZXRlIGV2ZW50PC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIg
dGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgc3RvcmUsCisgICAgICB0
ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICBv
cGVuX3JxID0gY3JlYXRlZGIodCksCisgICAgICBzdGFnZXMgPSBbXTsKKworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBzdGFnZXMucHVzaCgidXBn
cmFkZW5lZWRlZCIpOworCisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBz
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOworCisgICAgICAgIGUudGFyZ2V0
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHN0YWdl
cy5wdXNoKCJjb21wbGV0ZSIpOworICAgICAgICB9OworICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgc3RhZ2VzLnB1c2goInN1Y2Nlc3MiKTsK
KworICAgICAgICAvLyBNYWtpbmcgYSB0b3RhbGx5IG5ldyB0cmFuc2FjdGlvbiB0byBjaGVjawor
ICAgICAgICBkYi50cmFuc2FjdGlvbignc3RvcmUnKS5vYmplY3RTdG9yZSgnc3RvcmUnKS5jb3Vu
dCgpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoc3RhZ2VzLCBbICJ1cGdyYWRlbmVlZGVkIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wbGV0ZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VjY2VzcyIgXSk7CisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIC8vIFhYWDogTWFrZSBvbmUgd2l0aCByZWFs
IHRyYW5zYWN0aW9ucywgbm90IG9ubHkgb3BlbigpIHZlcnNpb25jaGFuZ2Ugb25lCisKKyAgICAg
ICAgLypkYi50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5vcGVuQ3Vyc29yKCkub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgc3RhZ2VzLnB1c2goIm9wZW5jdXJz
b3IxIik7CisgICAgICAgIH0KKworICAgICAgICBzdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgc3RhZ2VzLnB1c2goIm9wZW5jdXJzb3IyIik7
CisgICAgICAgIH0KKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmUnKS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgc3RhZ2VzLnB1c2goIm9wZW5jdXJzb3IzIik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAg
ICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJh
bnNhY3Rpb24uaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb24uaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1N2U2NWZmZTY4ZmQ3
ZWM1ZDU1NWVjNmYyMjFkY2M2MjJkZWRhMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2FjdGlv
bi5odG0KQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCVHJhbnNh
Y3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
dCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gcmVxdWVzdCBnb3R0ZW4gYnkgdGhl
IGhhbmRsZXIiKSwKKyAgICAgIG9wZW5fdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAi
IC0gcmVxdWVzdCByZXR1cm5lZCBieSBvcGVuKCkiKSwKKworICAgIG9wZW5fcnEgPSBpbmRleGVk
REIub3BlbigiaWRidHJhbnNhY3Rpb24tIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTWF0aC5y
YW5kb20oKSk7CisKKyAgICBvcGVuX3Quc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhvcGVuX3JxLnRyYW5zYWN0aW9uLCBudWxsLCAiSURCT3BlbkRCUmVxdWVzdC50cmFu
c2FjdGlvbiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEuc291cmNlLCBudWxsLCAi
SURCT3BlbkRCUmVxdWVzdC5zb3VyY2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvcGVuX3Jx
LnJlYWR5U3RhdGUsICJwZW5kaW5nIiwgIklEQk9wZW5EQlJlcXVlc3QucmVhZHlTdGF0ZSIpOwor
CisgICAgICAgIGFzc2VydF90cnVlKG9wZW5fcnEgaW5zdGFuY2VvZiBJREJPcGVuREJSZXF1ZXN0
LCAib3Blbl9ycSBpbnN0YW5jZW9mIElEQk9wZW5EQlJlcXVlc3QiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhvcGVuX3JxICsgIiIsICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIiwgIklEQk9w
ZW5EQlJlcXVlc3QgKG9wZW5fcnEpIik7CisKKyAgICAgICAgb3Blbl90LmRvbmUoKTsKKyAgICB9
KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LCBvcGVuX3JxLCAiZS50YXJnZXQg
aXMgcmV1c2luZyB0aGUgc2FtZSBJREJPcGVuREJSZXF1ZXN0Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQudHJhbnNhY3Rpb24sIG9wZW5fcnEudHJhbnNhY3Rpb24sICJJREJPcGVu
REJSZXF1ZXN0LnRyYW5zYWN0aW9uIik7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoZS50YXJnZXQu
dHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiwgInRyYW5zYWN0aW9uIGluc3Rh
bmNlb2YgSURCVHJhbnNhY3Rpb24iKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSk7CisKKwor
ICAgIC8vIE5vdCBwbGF1c2libGUgY29uZGl0aW9ucy4uLgorICAgIGZ1bmN0aW9uIGZhaWxfaGVs
cGVyKG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdC5z
dGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAgICAgICAgICAg
IG9wZW5fdC5zdGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAg
ICAgICAgfTsKKyAgICB9CisgICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hlbHBlcignb3Bl
bl9ycS5vbmJsb2NrZWQnKTsKKyAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hlbHBlcignb3Bl
bl9ycS5vbmVycm9yJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYnRyYW5zYWN0aW9uX2Fib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uX2Fib3J0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWVlYTBhNzJhOTgwMTEwZjE1YWNlMmUxNzEwZjI0
MTNlYmM3OTg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb25fYWJvcnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQlRyYW5zYWN0aW9uIC0gYWJvcnQgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMDFiZWFkMjYxZDE2M2IyZjhjNDZhOTcwZmU0N2ZiMGEzYTY5MGUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb25fYWJvcnQuaHRtCkBAIC0wLDAgKzEsNDEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5JREJUcmFuc2FjdGlv
biAtIGFib3J0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIGFib3J0
ZWQsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAw
fSksCisgICAgICByZWNvcmQgPSB7IGluZGV4ZWRQcm9wZXJ0eTogImJhciIgfTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
dHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkLCAx
KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwgMik7CisgICAgICAgIHZhciBpbmRleCA9
IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiLCB7IHVuaXF1
ZTogdHJ1ZSB9KTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQklu
ZGV4LCAiSURCSW5kZXgiKTsKKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYWJvcnRlZCA9IHRydWU7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgImFib3J0IiwgImV2ZW50IHR5cGUi
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGIub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKGFib3J0ZWQsICJ0cmFuc2FjdGlvbi5hYm9ydCBldmVudCBo
YXMgZmlyZWQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9OworCisgICAgICAg
IGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmYWlsKHQsICJnb3QgY29tcGxldGUs
IGV4cGVjdGVkIGFib3J0Iik7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRidmVyc2lvbmNoYW5nZWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnZlcnNp
b25jaGFuZ2VldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYyZTgzMjk0YmQ4NTNiNWIy
MTRlZWVhYTBkM2UxODM0OTIzZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnZlcnNpb25jaGFuZ2Vl
dmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCVmVyc2lvbkNoYW5n
ZUV2ZW50IGZpcmVkIGluIHVwZ3JhZGVuZWVkZWQsIHZlcnNpb25jaGFuZ2UgYW5kIGRlbGV0ZURh
dGFiYXNlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidmVyc2lvbmNo
YW5nZWV2ZW50Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzA1NGZjOGIxYmNlNjM5NDRhYzkzN2U2NzhlM2Nh
MjFkZTkwZWE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidmVyc2lvbmNoYW5nZWV2ZW50Lmh0bQpAQCAt
MCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJWZXJzaW9uQ2hhbmdlRXZl
bnQgZmlyZWQgaW4gdXBncmFkZW5lZWRlZCwgdmVyc2lvbmNoYW5nZSBhbmQgZGVsZXRlRGF0YWJh
c2U8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
dmVyc2lvbmNoYW5nZS0tdHJhbnNhY3Rpb24tc3RlcHMiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iRmlyZSBhIHZlcnNpb25jaGFuZ2UgZXZlbnQgYXQgZWFjaCBvYmplY3QgaW4gb3BlbkRhdGFi
YXNlcyB0aGF0IGlzIG9wZW4uIFRoZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBvbiBvYmplY3Rz
IHdoaWNoIGhhcyB0aGUgY2xvc2VQZW5kaW5nIGZsYWcgc2V0LiBUaGUgZXZlbnQgbXVzdCB1c2Ug
dGhlIElEQlZlcnNpb25DaGFuZ2VFdmVudCBpbnRlcmZhY2UgYW5kIGhhdmUgdGhlIG9sZFZlcnNp
b24gcHJvcGVydHkgc2V0IHRvIGRiJ3MgdmVyc2lvbiBhbmQgaGF2ZSB0aGUgbmV3VmVyc2lvbiBw
cm9wZXJ0eSBzZXQgdG8gdmVyc2lvbi4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iRmlyZSBh
IHVwZ3JhZGVuZWVkZWQgZXZlbnQgdGFyZ2V0ZWQgYXQgcmVxdWVzdC4gVGhlIGV2ZW50IG11c3Qg
dXNlIHRoZSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgaW50ZXJmYWNlIGFuZCBoYXZlIHRoZSBvbGRW
ZXJzaW9uIHByb3BlcnR5IHNldCB0byBvbGQgdmVyc2lvbiBhbmQgaGF2ZSB0aGUgbmV3VmVyc2lv
biBwcm9wZXJ0eSBzZXQgdG8gdmVyc2lvbi4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KKworPHNjcmlwdD4KKwor
ICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1l
b3V0OiAxMDAwMH0pOworCisgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgb3Bl
bnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7CisKKyAgICAgICAgb3BlbnJxLm9udXBncmFk
ZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS5vbGRWZXJzaW9uLCAwLCAib2xkIHZlcnNpb24gKHVwZ3JhZGVuZWVkZWQpIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwgMywgIm5ldyB2ZXJzaW9uICh1
cGdyYWRlbmVlZGVkKSIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElE
QlZlcnNpb25DaGFuZ2VFdmVudCwgInVwZ3JhZGVuZWVkZWQgaW5zdGFuY2VvZiBJREJWZXJzaW9u
Q2hhbmdlRXZlbnQiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgb3BlbnJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgICAgICBkYi5vbnZlcnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDMs
ICJvbGQgdmVyc2lvbiAodmVyc2lvbmNoYW5nZSkiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUubmV3VmVyc2lvbiwgbnVsbCwgIm5ldyB2ZXJzaW9uICh2ZXJzaW9uY2hhbmdlKSIp
OworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQsICJ2ZXJzaW9uY2hhbmdlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50
Iik7CisgICAgICAgICAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsKHQsICJkYi5l
cnJvciIpOworICAgICAgICAgICAgZGIub25hYm9ydCA9IGZhaWwodCwgImRiLmFib3J0Iik7CisK
KyAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1bmMoZGVsZXRlREIpLCAxMCk7CisgICAg
ICAgIH0pOworCisgICAgICAgIC8vIEVycm9ycworICAgICAgICBvcGVucnEub25lcnJvciA9IGZh
aWwodCwgIm9wZW4uZXJyb3IiKTsKKyAgICAgICAgb3BlbnJxLm9uYmxvY2tlZCA9IGZhaWwodCwg
Im9wZW4uYmxvY2tlZCIpOworCisgICAgfSk7CisKKyAgICBmdW5jdGlvbiBkZWxldGVEQiAoZSkg
eworICAgICAgICB2YXIgZGVsZXRlcnEgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RiJyk7
CisKKyAgICAgICAgZGVsZXRlcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDMsICJvbGQgdmVyc2lv
biAoZGVsZXRlLnN1Y2Nlc3MpIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVy
c2lvbiwgbnVsbCwgIm5ldyB2ZXJzaW9uIChkZWxldGUuc3VjY2VzcykiKTsKKyAgICAgICAgICAg
IGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQsICJkZWxldGUu
c3VjY2VzcyBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCIpOworCisgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgMTApOworICAgICAgICB9KTsK
KworICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgZGVsZXRlcnEub25lcnJvciA9IGZhaWwodCwg
ImRlbGV0ZS5lcnJvciIpOworICAgICAgICBkZWxldGVycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJk
ZWxldGUuYmxvY2tlZCIpOworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ3b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJ3b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5ZjZmYjY5MTE5YjVjNjYwNTA0N2YwZTBjMzhl
ZjZmZTg0NzAwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYndvcmtlci5qcwpAQCAtMCwwICsxLDM0IEBA
Cit2YXIgZGIKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgTWVzc2FnZUhhbmRs
ZXIsIGZhbHNlKQorCitmdW5jdGlvbiBNZXNzYWdlSGFuZGxlcihlKQoreworICAgIHZhciBvcGVu
X3JxLCBpZGIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYud2Vi
a2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCCisKKyAgICBpZiAoIWlkYikKKyAgICB7
CisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoZmFsc2UpCisgICAgICAgIHJldHVybgorICAgIH0K
KyAgICBlbHNlCisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UodHJ1ZSkKKworICAgIG9wZW5fcnEg
PSBpZGIub3Blbigid2Vid29ya2VyMTAxIiwgMSkKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAg
ICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgIC5hZGQoInRlc3QiLCAx
KQorICAgIH0KKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgZGIub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBz
ZWxmLnBvc3RNZXNzYWdlKCJkYi5lcnJvciIpIH0KKyAgICAgICAgZGIudHJhbnNhY3Rpb24oInN0
b3JlIikub2JqZWN0U3RvcmUoInN0b3JlIikuZ2V0KDEpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoZS50YXJnZXQucmVzdWx0KQorICAgICAg
ICAgICAgZGIuY2xvc2UoKQorICAgICAgICB9CisgICAgfQorICAgIG9wZW5fcnEub25lcnJvciA9
IGZ1bmN0aW9uKCkgeyBzZWxmLnBvc3RNZXNzYWdlKCJvcGVuLmVycm9yIikgfQorICAgIG9wZW5f
cnEub25ibG9ja2VkID0gZnVuY3Rpb24oKSB7IHNlbGYucG9zdE1lc3NhZ2UoIm9wZW4uYmxvY2tl
ZCIpIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2luZGV4X3NvcnRfb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW5kZXhfc29y
dF9vcmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ0MThhYWNlZjA2ZjY3NjEwZWJlZmVh
NDc3MjQxMjljMjhiMDRlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2luZGV4X3NvcnRfb3JkZXItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFZlcmlmeSBrZXkgc29ydCBvcmRlciBpbiBh
biBpbmRleCBpcyAnbnVtYmVyIDwgRGF0ZSA8IERPTVN0cmluZycgIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbmRl
eF9zb3J0X29yZGVyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2luZGV4X3NvcnRfb3JkZXIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1N2IzNzQw
NzFhMWM1NjU4NzM5YWE0NjY4NWZkNTA0YzZhYjI5NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbmRleF9z
b3J0X29yZGVyLmh0bQpAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5WZXJpZnkga2V5IHNvcnQgb3JkZXIgaW4gYW4gaW5kZXgg
aXMgJ251bWJlciAmbHQ7IERhdGUgJmx0OyBET01TdHJpbmcnIDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisgICAgdmFyIGRiLAorICAgICAgZCA9IG5ldyBEYXRlKCksCisgICAgICB0ID0gYXN5bmNf
dGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBmb286IGQgfSwKKyAgICAgICAgICAgICAgICAg
IHsgZm9vOiAidGVzdCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgZm9vOiAxIH0sCisgICAgICAg
ICAgICAgICAgICB7IGZvbzogMi41NSB9ICBdLAorICAgICAgZXhwZWN0ZWRLZXlPcmRlciA9IFsg
MSwgMi41NSwgZC52YWx1ZU9mKCksICJ0ZXN0IiBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAg
ICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImZvbyIpOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0g
ZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJz
dG9yZSIpCisgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisK
KyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5w
dXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkS2V5T3JkZXIpOworICAg
ICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9
OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZTNmNzEz
ZmYyOTYzNjlkMGI0MDVmODFkZDY0OGYwNWFjMDQwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0ZBSUw6IFRpbWVkIG91dCB3YWl0aW5n
IGZvciBub3RpZnlEb25lIHRvIGJlIGNhbGxlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
bnRlcmZhY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzZDA2MzQ4YmIxNzg0MWRjOTMwMmU5YjQ4YmJl
NTdmNWEzM2RlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFjZXMuaHRtbApAQCAtMCwwICsxLDUw
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SW5kZXhl
ZERCIElETCB0ZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy9X
ZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL2lkbGhhcm5l
c3MuanM+PC9zY3JpcHQ+CisKKzxoMT5JbmRleGVkREIgSURMIHRlc3RzPC9oMT4KKzxkaXYgaWQ9
bG9nPjwvZGl2PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworc2V0dXAoZnVuY3Rpb24oKSB7
CisgIHZhciBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOworCisgIHZhciByZXF1ZXN0ID0gbmV3
IFhNTEh0dHBSZXF1ZXN0KCk7CisgIHJlcXVlc3Qub3BlbigiR0VUIiwgImludGVyZmFjZXMuaWRs
Iik7CisgIHJlcXVlc3Quc2VuZCgpOworICByZXF1ZXN0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIHZhciBpZGxzID0gcmVxdWVzdC5yZXNwb25zZVRleHQ7CisKKyAgICBpZGxBcnJheS5hZGRf
dW50ZXN0ZWRfaWRscygiW1ByaW1hcnlHbG9iYWxdIGludGVyZmFjZSBXaW5kb3cgeyB9OyIpOwor
ICAgIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgRXZlbnQgeyB9OyIpOwor
ICAgIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgRXZlbnRUYXJnZXQgeyB9
OyIpOworCisgICAgLy8gRnJvbSBJbmRleGVkIERCOgorICAgIGlkbEFycmF5LmFkZF9pZGxzKGlk
bHMpOworICAgIGlkbEFycmF5LmFkZF9pZGxzKCJXaW5kb3cgaW1wbGVtZW50cyBJREJFbnZpcm9u
bWVudDsiKTsKKworICAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKKyAgICAgIElEQkN1cnNvcjog
W10sCisgICAgICBJREJDdXJzb3JXaXRoVmFsdWU6IFtdLAorICAgICAgSURCRGF0YWJhc2U6IFtd
LAorICAgICAgSURCRW52aXJvbm1lbnQ6IFtdLAorICAgICAgSURCRmFjdG9yeTogWyJ3aW5kb3cu
aW5kZXhlZERCIl0sCisgICAgICBJREJJbmRleDogW10sCisgICAgICBJREJLZXlSYW5nZTogWyJJ
REJLZXlSYW5nZS5vbmx5KDApIl0sCisgICAgICBJREJPYmplY3RTdG9yZTogW10sCisgICAgICBJ
REJPcGVuREJSZXF1ZXN0OiBbXSwKKyAgICAgIElEQlJlcXVlc3Q6IFtdLAorICAgICAgSURCVHJh
bnNhY3Rpb246IFtdLAorICAgICAgSURCVmVyc2lvbkNoYW5nZUV2ZW50OiBbIm5ldyBJREJWZXJz
aW9uQ2hhbmdlRXZlbnQoJ2ZvbycpIl0sCisgICAgfSk7CisKKyAgICBpZGxBcnJheS50ZXN0KCk7
CisgICAgZG9uZSgpOworICB9OworfSwge2V4cGxpY2l0X2RvbmU6IHRydWV9KTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaW50ZXJmYWNlcy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTVl
NjJmNDZiM2RlMGIzYzA0NmYyZGIxZDQ3MjVkOWFiODc4ZjNkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50
ZXJmYWNlcy5pZGwKQEAgLTAsMCArMSwxNDUgQEAKK2VudW0gSURCVHJhbnNhY3Rpb25Nb2RlIHsK
KyAgICAicmVhZG9ubHkiLAorICAgICJyZWFkd3JpdGUiLAorICAgICJ2ZXJzaW9uY2hhbmdlIgor
fTsKKworZW51bSBJREJSZXF1ZXN0UmVhZHlTdGF0ZSB7CisgICAgInBlbmRpbmciLAorICAgICJk
b25lIgorfTsKKworaW50ZXJmYWNlIElEQktleVJhbmdlIHsKKyAgICByZWFkb25seSAgICBhdHRy
aWJ1dGUgYW55ICAgICBsb3dlcjsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYW55ICAgICB1
cHBlcjsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYm9vbGVhbiBsb3dlck9wZW47CisgICAg
cmVhZG9ubHkgICAgYXR0cmlidXRlIGJvb2xlYW4gdXBwZXJPcGVuOworICAgIHN0YXRpYyBJREJL
ZXlSYW5nZSBvbmx5IChhbnkgdmFsdWUpOworICAgIHN0YXRpYyBJREJLZXlSYW5nZSBsb3dlckJv
dW5kIChhbnkgbG93ZXIsIG9wdGlvbmFsIGJvb2xlYW4gb3BlbiA9IGZhbHNlKTsKKyAgICBzdGF0
aWMgSURCS2V5UmFuZ2UgdXBwZXJCb3VuZCAoYW55IHVwcGVyLCBvcHRpb25hbCBib29sZWFuIG9w
ZW4gPSBmYWxzZSk7CisgICAgc3RhdGljIElEQktleVJhbmdlIGJvdW5kIChhbnkgbG93ZXIsIGFu
eSB1cHBlciwgb3B0aW9uYWwgYm9vbGVhbiBsb3dlck9wZW4gPSBmYWxzZSwgb3B0aW9uYWwgYm9v
bGVhbiB1cHBlck9wZW4gPSBmYWxzZSk7Cit9OworCitlbnVtIElEQkN1cnNvckRpcmVjdGlvbiB7
CisgICAgIm5leHQiLAorICAgICJuZXh0dW5pcXVlIiwKKyAgICAicHJldiIsCisgICAgInByZXZ1
bmlxdWUiCit9OworCitkaWN0aW9uYXJ5IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyB7CisgICAg
KERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KT8ga2V5UGF0aCA9IG51bGw7CisgICAg
Ym9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0luY3JlbWVudCA9IGZhbHNl
OworfTsKKworZGljdGlvbmFyeSBJREJJbmRleFBhcmFtZXRlcnMgeworICAgIGJvb2xlYW4gdW5p
cXVlID0gZmFsc2U7CisgICAgYm9vbGVhbiBtdWx0aUVudHJ5ID0gZmFsc2U7Cit9OworCitkaWN0
aW9uYXJ5IElEQlZlcnNpb25DaGFuZ2VFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyAgb2xkVmVyc2lvbiA9IDA7CisgICAgdW5zaWduZWQgbG9uZyBsb25nPyBu
ZXdWZXJzaW9uID0gbnVsbDsKK307CisKK2ludGVyZmFjZSBJREJSZXF1ZXN0IDogRXZlbnRUYXJn
ZXQgeworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBhbnkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0OworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBET01F
cnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I7CisgICAgcmVhZG9u
bHkgICAgYXR0cmlidXRlIChJREJPYmplY3RTdG9yZSBvciBJREJJbmRleCBvciBJREJDdXJzb3Ip
PyBzb3VyY2U7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIElEQlRyYW5zYWN0aW9uICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbjsKKyAgICByZWFkb25seSAgICBhdHRy
aWJ1dGUgSURCUmVxdWVzdFJlYWR5U3RhdGUgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5U3Rh
dGU7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvbnN1Y2Nlc3M7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmVycm9yOworfTsKKwor
aW50ZXJmYWNlIElEQk9wZW5EQlJlcXVlc3QgOiBJREJSZXF1ZXN0IHsKKyAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYmxvY2tlZDsKKyAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9udXBncmFkZW5lZWRlZDsKK307CisKK1tDb25zdHJ1Y3RvcihE
T01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgSURCVmVyc2lvbkNoYW5nZUV2ZW50SW5pdCBldmVudElu
aXREaWN0KV0KK2ludGVyZmFjZSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgOiBFdmVudCB7CisgICAg
cmVhZG9ubHkgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyAgb2xkVmVyc2lvbjsKKyAg
ICByZWFkb25seSAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nPyBuZXdWZXJzaW9uOwor
fTsKKworW05vSW50ZXJmYWNlT2JqZWN0XQoraW50ZXJmYWNlIElEQkVudmlyb25tZW50IHsKKyAg
ICByZWFkb25seSAgICBhdHRyaWJ1dGUgSURCRmFjdG9yeSBpbmRleGVkREI7Cit9OworCitpbnRl
cmZhY2UgSURCRmFjdG9yeSB7CisgICAgSURCT3BlbkRCUmVxdWVzdCBvcGVuIChET01TdHJpbmcg
bmFtZSwgW0VuZm9yY2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24p
OworICAgIElEQk9wZW5EQlJlcXVlc3QgZGVsZXRlRGF0YWJhc2UgKERPTVN0cmluZyBuYW1lKTsK
KyAgICBzaG9ydCAgICAgICAgICAgIGNtcCAoYW55IGZpcnN0LCBhbnkgc2Vjb25kKTsKK307CisK
K2ludGVyZmFjZSBJREJEYXRhYmFzZSA6IEV2ZW50VGFyZ2V0IHsKKyAgICByZWFkb25seSAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgIG5hbWU7CisgICAgcmVhZG9ubHkgICAgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0
ZSBET01TdHJpbmdMaXN0ICAgICAgb2JqZWN0U3RvcmVOYW1lczsKKyAgICBJREJPYmplY3RTdG9y
ZSBjcmVhdGVPYmplY3RTdG9yZSAoRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIElEQk9iamVjdFN0
b3JlUGFyYW1ldGVycyBvcHRpb25hbFBhcmFtZXRlcnMpOworICAgIHZvaWQgICAgICAgICAgIGRl
bGV0ZU9iamVjdFN0b3JlIChET01TdHJpbmcgbmFtZSk7CisgICAgSURCVHJhbnNhY3Rpb24gdHJh
bnNhY3Rpb24gKChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgc3RvcmVOYW1lcywg
b3B0aW9uYWwgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSAicmVhZG9ubHkiKTsKKyAgICB2b2lk
ICAgICAgICAgICBjbG9zZSAoKTsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyICAgICAgIG9uYWJvcnQ7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciAgICAgICBvbmVycm9yOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
ICAgICAgb252ZXJzaW9uY2hhbmdlOworfTsKKworaW50ZXJmYWNlIElEQk9iamVjdFN0b3JlIHsK
KyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgbmFtZTsKKyAgICByZWFk
b25seSAgICBhdHRyaWJ1dGUgYW55ICAgICAgICAgICAga2V5UGF0aDsKKyAgICByZWFkb25seSAg
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCAgaW5kZXhOYW1lczsKKyAgICByZWFkb25seSAgICBh
dHRyaWJ1dGUgSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247CisgICAgcmVhZG9ubHkgICAgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgIGF1dG9JbmNyZW1lbnQ7CisgICAgSURCUmVxdWVzdCBwdXQg
KGFueSB2YWx1ZSwgb3B0aW9uYWwgYW55IGtleSk7CisgICAgSURCUmVxdWVzdCBhZGQgKGFueSB2
YWx1ZSwgb3B0aW9uYWwgYW55IGtleSk7CisgICAgSURCUmVxdWVzdCBkZWxldGUgKGFueSBrZXkp
OworICAgIElEQlJlcXVlc3QgZ2V0IChhbnkga2V5KTsKKyAgICBJREJSZXF1ZXN0IGNsZWFyICgp
OworICAgIElEQlJlcXVlc3Qgb3BlbkN1cnNvciAob3B0aW9uYWwgYW55IHJhbmdlLCBvcHRpb25h
bCBJREJDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uID0gIm5leHQiKTsKKyAgICBJREJJbmRleCAg
IGNyZWF0ZUluZGV4IChET01TdHJpbmcgbmFtZSwgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01T
dHJpbmc+KSBrZXlQYXRoLCBvcHRpb25hbCBJREJJbmRleFBhcmFtZXRlcnMgb3B0aW9uYWxQYXJh
bWV0ZXJzKTsKKyAgICBJREJJbmRleCAgIGluZGV4IChET01TdHJpbmcgbmFtZSk7CisgICAgdm9p
ZCAgICAgICBkZWxldGVJbmRleCAoRE9NU3RyaW5nIGluZGV4TmFtZSk7CisgICAgSURCUmVxdWVz
dCBjb3VudCAob3B0aW9uYWwgYW55IGtleSk7Cit9OworCitpbnRlcmZhY2UgSURCSW5kZXggewor
ICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICBuYW1lOworICAgIHJlYWRv
bmx5ICAgIGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZSBvYmplY3RTdG9yZTsKKyAgICByZWFkb25s
eSAgICBhdHRyaWJ1dGUgYW55ICAgICAgICAgICAga2V5UGF0aDsKKyAgICByZWFkb25seSAgICBh
dHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgbXVsdGlFbnRyeTsKKyAgICByZWFkb25seSAgICBhdHRy
aWJ1dGUgYm9vbGVhbiAgICAgICAgdW5pcXVlOworICAgIElEQlJlcXVlc3Qgb3BlbkN1cnNvciAo
b3B0aW9uYWwgYW55IHJhbmdlLCBvcHRpb25hbCBJREJDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9u
ID0gIm5leHQiKTsKKyAgICBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3IgKG9wdGlvbmFsIGFueSBy
YW5nZSwgb3B0aW9uYWwgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbiA9ICJuZXh0Iik7Cisg
ICAgSURCUmVxdWVzdCBnZXQgKGFueSBrZXkpOworICAgIElEQlJlcXVlc3QgZ2V0S2V5IChhbnkg
a2V5KTsKKyAgICBJREJSZXF1ZXN0IGNvdW50IChvcHRpb25hbCBhbnkga2V5KTsKK307CisKK2lu
dGVyZmFjZSBJREJDdXJzb3IgeworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSAoSURCT2JqZWN0
U3RvcmUgb3IgSURCSW5kZXgpIHNvdXJjZTsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgSURC
Q3Vyc29yRGlyZWN0aW9uICAgICAgICAgICBkaXJlY3Rpb247CisgICAgcmVhZG9ubHkgICAgYXR0
cmlidXRlIGFueSAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OworICAgIHJlYWRvbmx5ICAg
IGF0dHJpYnV0ZSBhbnkgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlLZXk7CisgICAg
SURCUmVxdWVzdCB1cGRhdGUgKGFueSB2YWx1ZSk7CisgICAgdm9pZCAgICAgICBhZHZhbmNlIChb
RW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICB2b2lkICAgICAgIGNvbnRp
bnVlIChvcHRpb25hbCBhbnkga2V5KTsKKyAgICBJREJSZXF1ZXN0IGRlbGV0ZSAoKTsKK307CisK
K2ludGVyZmFjZSBJREJDdXJzb3JXaXRoVmFsdWUgOiBJREJDdXJzb3IgeworICAgIHJlYWRvbmx5
ICAgIGF0dHJpYnV0ZSBhbnkgdmFsdWU7Cit9OworCitpbnRlcmZhY2UgSURCVHJhbnNhY3Rpb24g
OiBFdmVudFRhcmdldCB7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIElEQlRyYW5zYWN0aW9u
TW9kZSBtb2RlOworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBJREJEYXRhYmFzZSAgICAgICAg
ZGI7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIERPTUVycm9yICAgICAgICAgICBlcnJvcjsK
KyAgICBJREJPYmplY3RTdG9yZSBvYmplY3RTdG9yZSAoRE9NU3RyaW5nIG5hbWUpOworICAgIHZv
aWQgICAgICAgICAgIGFib3J0ICgpOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgICAgICAgb25hYm9ydDsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyICAgICAgIG9uY29tcGxldGU7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciAgICAgICBvbmVycm9yOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFjZXMud29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50
ZXJmYWNlcy53b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUyMmI0NTY2YTRjOGNiNmE5YjBhMzFjM2Uy
NWNjNGFlYWI4MGRkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVyZmFjZXMud29ya2VyLmpzCkBAIC0w
LDAgKzEsMzkgQEAKKyJ1c2Ugc3RyaWN0IjsKKworaW1wb3J0U2NyaXB0cygiLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIik7CitpbXBvcnRTY3JpcHRzKCIuLi8uLi8uLi9yZXNvdXJj
ZXMvV2ViSURMUGFyc2VyLmpzIiwgIi4uLy4uLy4uL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIik7
CisKK3ZhciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CityZXF1ZXN0Lm9wZW4oIkdF
VCIsICJpbnRlcmZhY2VzLmlkbCIpOworcmVxdWVzdC5zZW5kKCk7CityZXF1ZXN0Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeworICB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKKyAgdmFyIGlk
bHMgPSByZXF1ZXN0LnJlc3BvbnNlVGV4dDsKKworICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRs
cygiaW50ZXJmYWNlIFdvcmtlckdsb2JhbFNjb3BlIHt9OyIpOworICBpZGxBcnJheS5hZGRfdW50
ZXN0ZWRfaWRscygiaW50ZXJmYWNlIFdvcmtlclV0aWxzIHt9OyIpOworICBpZGxBcnJheS5hZGRf
dW50ZXN0ZWRfaWRscygiV29ya2VyR2xvYmFsU2NvcGUgaW1wbGVtZW50cyBXb3JrZXJVdGlsczsi
KTsKKyAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBFdmVudCB7IH07Iik7
CisgIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgRXZlbnRUYXJnZXQgeyB9
OyIpOworCisgIC8vIEZyb20gSW5kZXhlZCBEQjoKKyAgaWRsQXJyYXkuYWRkX2lkbHMoIldvcmtl
clV0aWxzIGltcGxlbWVudHMgSURCRW52aXJvbm1lbnQ7Iik7CisgIGlkbEFycmF5LmFkZF9pZGxz
KGlkbHMpOworCisgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKKyAgICBJREJDdXJzb3I6IFtdLAor
ICAgIElEQkN1cnNvcldpdGhWYWx1ZTogW10sCisgICAgSURCRGF0YWJhc2U6IFtdLAorICAgIElE
QkVudmlyb25tZW50OiBbXSwKKyAgICBJREJGYWN0b3J5OiBbInNlbGYuaW5kZXhlZERCIl0sCisg
ICAgSURCSW5kZXg6IFtdLAorICAgIElEQktleVJhbmdlOiBbIklEQktleVJhbmdlLm9ubHkoMCki
XSwKKyAgICBJREJPYmplY3RTdG9yZTogW10sCisgICAgSURCT3BlbkRCUmVxdWVzdDogW10sCisg
ICAgSURCUmVxdWVzdDogW10sCisgICAgSURCVHJhbnNhY3Rpb246IFtdLAorICAgIElEQlZlcnNp
b25DaGFuZ2VFdmVudDogWyJuZXcgSURCVmVyc2lvbkNoYW5nZUV2ZW50KCdmb28nKSJdLAorICB9
KTsKKyAgaWRsQXJyYXkudGVzdCgpOworICBkb25lKCk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5X2ludmFs
aWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIva2V5X2ludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YzVl
YmY1N2U2ZWQyOWVkZDczYzc4ODlhNDg0M2MyODc2NTA4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlf
aW52YWxpZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQQVNTIEludmFsaWQga2V5
IC0gdHJ1ZSAKK1BBU1MgSW52YWxpZCBrZXkgLSBmYWxzZSAKK1BBU1MgSW52YWxpZCBrZXkgLSBu
dWxsIAorUEFTUyBJbnZhbGlkIGtleSAtIE5hTiAKK1BBU1MgSW52YWxpZCBrZXkgLSB1bmRlZmlu
ZWQgCitQQVNTIEludmFsaWQga2V5IC0gdW5kZWZpbmVkMiAKK1BBU1MgSW52YWxpZCBrZXkgLSBm
dW5jdGlvbigpIHt9IAorUEFTUyBJbnZhbGlkIGtleSAtIHt9IAorUEFTUyBJbnZhbGlkIGtleSAt
IHsgb2JqOiAxIH0gCitQQVNTIEludmFsaWQga2V5IC0gTWF0aCAKK1BBU1MgSW52YWxpZCBrZXkg
LSB3aW5kb3cgCitQQVNTIEludmFsaWQga2V5IC0ge2xlbmd0aDowLGNvbnN0cnVjdG9yOkFycmF5
fSAKK1BBU1MgSW52YWxpZCBrZXkgLSBBcnJheSBjbG9uZcOi4oKs4oSicyBpbnN0YW5jZSAKK1BB
U1MgSW52YWxpZCBrZXkgLSBBcnJheSAob2JqZWN0KSAKK1BBU1MgSW52YWxpZCBrZXkgLSBTdHJp
bmcgKG9iamVjdCkgCitQQVNTIEludmFsaWQga2V5IC0gbmV3IFN0cmluZygpIAorUEFTUyBJbnZh
bGlkIGtleSAtIG5ldyBOdW1iZXIoKSAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcgQm9vbGVhbigp
IAorUEFTUyBJbnZhbGlkIGtleSAtIFt7fV0gCitQQVNTIEludmFsaWQga2V5IC0gW1tdLCBbXSwg
W10sIFtbIERhdGUgXV1dIAorUEFTUyBJbnZhbGlkIGtleSAtIFt1bmRlZmluZWRdIAorUEFTUyBJ
bnZhbGlkIGtleSAtIFssMV0gCitQQVNTIEludmFsaWQga2V5IC0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInNjcmlwdCIpIAorUEFTUyBJbnZhbGlkIGtleSAtIG5ldyBEYXRlKE5hTikg
CitQQVNTIEludmFsaWQga2V5IC0gbmV3IERhdGUoSW5maW5pdHkpIAorUEFTUyBJbnZhbGlkIGtl
eSAtIC9mb28vIAorUEFTUyBJbnZhbGlkIGtleSAtIG5ldyBSZWdFeHAoKSAKK1BBU1MgSW52YWxp
ZCBrZXkgLSBzcGFyc2UgYXJyYXkgCitQQVNTIEludmFsaWQga2V5IC0gc3BhcnNlIGFycmF5IDIg
CitQQVNTIEludmFsaWQga2V5IC0gW1sxXSwgWzNdLCBbN10sIFtbIHNwYXJzZSBhcnJheSBdXV0g
CitQQVNTIEludmFsaWQga2V5IC0gWzEsMiwzLCxdIAorUEFTUyBJbnZhbGlkIGtleSAtIGFycmF5
IGRpcmVjdGx5IGNvbnRhaW5zIHNlbGYgCitQQVNTIEludmFsaWQga2V5IC0gYXJyYXkgaW5kaXJl
Y3RseSBjb250YWlucyBzZWxmIAorUEFTUyBJbnZhbGlkIGtleSAtIGFycmF5IG1lbWJlciBjb250
YWlucyBzZWxmIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlfaW52YWxpZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlfaW52YWxpZC5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjcyZGEzNzU5YjU0YmQ3YzVmODQ1NDE3ZjQ2OWVhMTVhNTY5NzEzYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2tleV9pbnZhbGlkLmh0bQpAQCAtMCwwICsxLDEyOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04Ij4KKzx0aXRsZT5JbnZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVm
PSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI2tleS1jb25zdHJ1Y3QiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSB2YWx1ZSBpcyBz
YWlkIHRvIGJlIGEgdmFsaWQga2V5IGlmIGl0IGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHR5cGVz
OiBBcnJheSBKYXZhU2NyaXB0IG9iamVjdHMgW0VDTUEtMjYyXSwgRE9NU3RyaW5nIFtXRUJJRExd
LCBEYXRlIFtFQ01BLTI2Ml0gb3IgZmxvYXQgW1dFQklETF0uIEhvd2V2ZXIgQXJyYXlzIGFyZSBv
bmx5IHZhbGlkIGtleXMgaWYgZXZlcnkgaXRlbSBpbiB0aGUgYXJyYXkgaXMgZGVmaW5lZCBhbmQg
aXMgYSB2YWxpZCBrZXkgKGkuZS4gc3BhcnNlIGFycmF5cyBjYW4gbm90IGJlIHZhbGlkIGtleXMp
IGFuZCBpZiB0aGUgQXJyYXkgZG9lc24ndCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGNvbnRhaW4g
aXRzZWxmLiBBbnkgbm9uLW51bWVyaWMgcHJvcGVydGllcyBhcmUgaWdub3JlZCwgYW5kIHRodXMg
ZG9lcyBub3QgYWZmZWN0IHdoZXRoZXIgdGhlIEFycmF5IGlzIGEgdmFsaWQga2V5LiBBZGRpdGlv
bmFsbHksIGlmIHRoZSB2YWx1ZSBpcyBvZiB0eXBlIGZsb2F0LCBpdCBpcyBvbmx5IGEgdmFsaWQg
a2V5IGlmIGl0IGlzIG5vdCBOYU4sIGFuZCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBEYXRlIGl0
IGlzIG9ubHkgYSB2YWxpZCBrZXkgaWYgaXRzIFtbUHJpbWl0aXZlVmFsdWVdXSBpbnRlcm5hbCBw
cm9wZXJ0eSwgYXMgZGVmaW5lZCBieSBbRUNNQS0yNjJdLCBpcyBub3QgTmFOLiBDb25mb3JtaW5n
IHVzZXIgYWdlbnRzIG11c3Qgc3VwcG9ydCBhbGwgdmFsaWQga2V5cyBhcyBrZXlzLiI+Cis8IS0t
IG9yaWdpbmFsIGF1dGhvciAtLT4KKzxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPCEtLSBzb21lIGFkZGl0
aW9ucyBieSBCYXB0aXN0ZSBGb250YWluZSAoYmF0aWZvbkB5YWhvby5mcikgLS0+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIgICAgICAgID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCksCisgICAgICAgIC8vIGNh
Y2hlIGZvciBPYmplY3RTdG9yZXMKKyAgICAgICAgb2JqU3RvcmUgID0gbnVsbCwKKyAgICAgICAg
b2JqU3RvcmUyID0gbnVsbDsKKworICAgIGZ1bmN0aW9uIGlzX2Nsb25lYWJsZShvKSB7CisgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKG8sICcqJyk7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGludmFsaWRfa2V5
KGRlc2MsIGtleSkgeworICAgICAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gIiArIGRlc2MpOworCisgICAgICAgIC8vIHNldCB0aGUgY3VycmVudCB0ZXN0LCBhbmQg
cnVuIGl0CisgICAgICAgIGRiLnNldFRlc3QodCkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgb2JqU3RvcmUgPSBvYmpTdG9yZSB8fCBlLnRhcmdldC5yZXN1bHQu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdE
YXRhRXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoInZh
bHVlIiwga2V5KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAoaXNfY2xvbmVh
YmxlKGtleSkpIHsKKyAgICAgICAgICAgICAgICBvYmpTdG9yZTIgPSBvYmpTdG9yZTIgfHwgZS50
YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZTIiLCB7IGtleVBhdGg6IFsieCIs
ICJrZXlwYXRoIl0gfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUVycm9y
JywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9ialN0b3JlMi5hZGQoeyB4OiAi
dmFsdWUiLCBrZXlwYXRoOiBrZXkgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICB2
YXIgZmFrZV9hcnJheSA9IHsKKyAgICAgICAgbGVuZ3RoICAgICAgOiAwLAorICAgICAgICBjb25z
dHJ1Y3RvciA6IEFycmF5CisgICAgfTsKKworICAgIHZhciBBcnJheUNsb25lID0gZnVuY3Rpb24o
KXt9OworICAgIEFycmF5Q2xvbmUucHJvdG90eXBlID0gQXJyYXk7CisgICAgdmFyIEFycmF5Q2xv
bmVfaW5zdGFuY2UgPSBuZXcgQXJyYXlDbG9uZSgpOworCisgICAgLy8gYm9vbGVhbnMKKyAgICBp
bnZhbGlkX2tleSggJ3RydWUnICAsIHRydWUgKTsKKyAgICBpbnZhbGlkX2tleSggJ2ZhbHNlJyAs
IGZhbHNlICk7CisKKyAgICAvLyBudWxsL05hTi91bmRlZmluZWQKKyAgICBpbnZhbGlkX2tleSgg
J251bGwnICAgICAgLCBudWxsICk7CisgICAgaW52YWxpZF9rZXkoICdOYU4nICAgICAgICwgTmFO
ICk7CisgICAgaW52YWxpZF9rZXkoICd1bmRlZmluZWQnICwgdW5kZWZpbmVkICk7CisgICAgaW52
YWxpZF9rZXkoICd1bmRlZmluZWQyJyk7CisKKyAgICAvLyBmdW5jdGlvbnMKKyAgICBpbnZhbGlk
X2tleSggJ2Z1bmN0aW9uKCkge30nLCBmdW5jdGlvbigpe30gKTsKKworICAgIC8vIG9iamVjdHMK
KyAgICBpbnZhbGlkX2tleSggJ3t9JyAgICAgICAgICAgICAgICAgICAgICAgICAgICwge30gKTsK
KyAgICBpbnZhbGlkX2tleSggJ3sgb2JqOiAxIH0nICAgICAgICAgICAgICAgICAgICwgeyBvYmo6
IDEgfSk7CisgICAgaW52YWxpZF9rZXkoICdNYXRoJyAgICAgICAgICAgICAgICAgICAgICAgICAs
IE1hdGggKTsKKyAgICBpbnZhbGlkX2tleSggJ3dpbmRvdycgICAgICAgICAgICAgICAgICAgICAg
ICwgd2luZG93ICk7CisgICAgaW52YWxpZF9rZXkoICd7bGVuZ3RoOjAsY29uc3RydWN0b3I6QXJy
YXl9JyAsIGZha2VfYXJyYXkgKTsKKyAgICBpbnZhbGlkX2tleSggJ0FycmF5IGNsb25l4oCZcyBp
bnN0YW5jZScgICAgICAgLCBBcnJheUNsb25lX2luc3RhbmNlICk7CisgICAgaW52YWxpZF9rZXko
ICdBcnJheSAob2JqZWN0KScgICAgICAgICAgICAgICAsIEFycmF5ICk7CisgICAgaW52YWxpZF9r
ZXkoICdTdHJpbmcgKG9iamVjdCknICAgICAgICAgICAgICAsIFN0cmluZyApOworICAgIGludmFs
aWRfa2V5KCAnbmV3IFN0cmluZygpJyAgICAgICAgICAgICAgICAgLCBuZXcgU3RyaW5nKCkgKTsK
KyAgICBpbnZhbGlkX2tleSggJ25ldyBOdW1iZXIoKScgICAgICAgICAgICAgICAgICwgbmV3IE51
bWJlcigpICk7CisgICAgaW52YWxpZF9rZXkoICduZXcgQm9vbGVhbigpJyAgICAgICAgICAgICAg
ICAsIG5ldyBCb29sZWFuKCkgKTsKKworICAgIC8vIGFycmF5cworICAgIGludmFsaWRfa2V5KCAn
W3t9XScgICAgICAgICAgICAgICAgICAgICAsIFt7fV0gKTsKKyAgICBpbnZhbGlkX2tleSggJ1tb
XSwgW10sIFtdLCBbWyBEYXRlIF1dXScgLCBbIFtdLCBbXSwgW10sIFtbIERhdGUgXV0gXSApOwor
ICAgIGludmFsaWRfa2V5KCAnW3VuZGVmaW5lZF0nICAgICAgICAgICAgICAsIFt1bmRlZmluZWRd
ICk7CisgICAgaW52YWxpZF9rZXkoICdbLDFdJyAgICAgICAgICAgICAgICAgICAgICwgWywxXSAp
OworCisgICAgaW52YWxpZF9rZXkoICdkb2N1bWVudC5nZXRFbGVtZW50cycKKyAgICAgICAgICAg
ICAgICArJ0J5VGFnTmFtZSgic2NyaXB0IiknICAgICAgLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgic2NyaXB0IikgKTsKKworICAgIC8vICBkYXRlcworICAgIGludmFsaWRfa2V5KCAn
bmV3IERhdGUoTmFOKScgICAgICAsIG5ldyBEYXRlKE5hTikgKTsKKyAgICBpbnZhbGlkX2tleSgg
J25ldyBEYXRlKEluZmluaXR5KScgLCBuZXcgRGF0ZShJbmZpbml0eSkgKTsKKworICAgIC8vIHJl
Z2V4ZXMKKyAgICBpbnZhbGlkX2tleSggJy9mb28vJyAgICAgICAgLCAvZm9vLyApOworICAgIGlu
dmFsaWRfa2V5KCAnbmV3IFJlZ0V4cCgpJyAsIG5ldyBSZWdFeHAoKSApOworCisgICAgdmFyIHNw
YXJzZSA9IFtdOworICAgIHNwYXJzZVsxMF0gPSAiaGVpIjsKKyAgICBpbnZhbGlkX2tleSgnc3Bh
cnNlIGFycmF5Jywgc3BhcnNlKTsKKworICAgIHZhciBzcGFyc2UyID0gW107CisgICAgc3BhcnNl
MlswXSAgPSAxOworICAgIHNwYXJzZTJbIiJdID0gMjsKKyAgICBzcGFyc2UyWzJdICA9IDM7Cisg
ICAgaW52YWxpZF9rZXkoJ3NwYXJzZSBhcnJheSAyJywgc3BhcnNlMik7CisKKyAgICBpbnZhbGlk
X2tleSgnW1sxXSwgWzNdLCBbN10sIFtbIHNwYXJzZSBhcnJheSBdXV0nLCBbIFsxXSwgWzNdLCBb
N10sIFtbIHNwYXJzZTIgXV0gXSk7CisKKyAgICAvLyBzcGFyc2UzCisgICAgaW52YWxpZF9rZXko
ICdbMSwyLDMsLF0nLCBbMSwyLDMsLF0gKTsKKworICAgIHZhciByZWN1cnNpdmUgPSBbXTsKKyAg
ICByZWN1cnNpdmUucHVzaChyZWN1cnNpdmUpOworICAgIGludmFsaWRfa2V5KCdhcnJheSBkaXJl
Y3RseSBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlKTsKKworICAgIHZhciByZWN1cnNpdmUyID0g
W107CisgICAgcmVjdXJzaXZlMi5wdXNoKFtyZWN1cnNpdmUyXSk7CisgICAgaW52YWxpZF9rZXko
J2FycmF5IGluZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZTIpOworCisgICAgdmFy
IHJlY3Vyc2l2ZTMgPSBbcmVjdXJzaXZlXTsKKyAgICBpbnZhbGlkX2tleSgnYXJyYXkgbWVtYmVy
IGNvbnRhaW5zIHNlbGYnLCByZWN1cnNpdmUzKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIva2V5X3ZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleV92YWxpZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2RjYjBhZmRkMWU5ZGI5MGE2NGMyODc2M2EzZmJjYzk1MzhmNTUw
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2tleV92YWxpZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorCitQQVNTIFZhbGlkIGtleSAtIG5ldyBEYXRlKCkgCitQQVNTIFZhbGlkIGtleSAtIG5ldyBE
YXRlKDApIAorUEFTUyBWYWxpZCBrZXkgLSBbXSAKK1BBU1MgVmFsaWQga2V5IC0gbmV3IEFycmF5
KCkgCitQQVNTIFZhbGlkIGtleSAtIFsidW5kZWZpbmVkIl0gCitQQVNTIFZhbGlkIGtleSAtIElu
ZmluaXR5IAorUEFTUyBWYWxpZCBrZXkgLSAtSW5maW5pdHkgCitQQVNTIFZhbGlkIGtleSAtIDAg
CitQQVNTIFZhbGlkIGtleSAtIDEuNSAKK1BBU1MgVmFsaWQga2V5IC0gM2UzOCAKK1BBU1MgVmFs
aWQga2V5IC0gM2UtMzggCitQQVNTIFZhbGlkIGtleSAtICJmb28iIAorUEFTUyBWYWxpZCBrZXkg
LSAiXG4iIAorUEFTUyBWYWxpZCBrZXkgLSAiIiAKK1BBU1MgVmFsaWQga2V5IC0gIlwiIiAKK1BB
U1MgVmFsaWQga2V5IC0gIlx1MTIzNCIgCitQQVNTIFZhbGlkIGtleSAtICJcdTAwMDAiIAorUEFT
UyBWYWxpZCBrZXkgLSAiTmFOIiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5X3ZhbGlkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlfdmFsaWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYTVjMWQ0YTZhNTZjMjIzOGRhNTcwMWI2OTQxYTViZDQxOTI4ODE5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIva2V5X3ZhbGlkLmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8IS0tIFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04Ij4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRp
dGxlPlZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1jb25zdHJ1
Y3QiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSB2YWx1ZSBpcyBzYWlkIHRvIGJlIGEgdmFs
aWQga2V5IGlmIGl0IGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHR5cGVzOiBBcnJheSBKYXZhU2Ny
aXB0IG9iamVjdHMgW0VDTUEtMjYyXSwgRE9NU3RyaW5nIFtXRUJJRExdLCBEYXRlIFtFQ01BLTI2
Ml0gb3IgZmxvYXQgW1dFQklETF0uIEhvd2V2ZXIgQXJyYXlzIGFyZSBvbmx5IHZhbGlkIGtleXMg
aWYgZXZlcnkgaXRlbSBpbiB0aGUgYXJyYXkgaXMgZGVmaW5lZCBhbmQgaXMgYSB2YWxpZCBrZXkg
KGkuZS4gc3BhcnNlIGFycmF5cyBjYW4gbm90IGJlIHZhbGlkIGtleXMpIGFuZCBpZiB0aGUgQXJy
YXkgZG9lc24ndCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGNvbnRhaW4gaXRzZWxmLiBBbnkgbm9u
LW51bWVyaWMgcHJvcGVydGllcyBhcmUgaWdub3JlZCwgYW5kIHRodXMgZG9lcyBub3QgYWZmZWN0
IHdoZXRoZXIgdGhlIEFycmF5IGlzIGEgdmFsaWQga2V5LiBBZGRpdGlvbmFsbHksIGlmIHRoZSB2
YWx1ZSBpcyBvZiB0eXBlIGZsb2F0LCBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlmIGl0IGlzIG5v
dCBOYU4sIGFuZCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBEYXRlIGl0IGlzIG9ubHkgYSB2YWxp
ZCBrZXkgaWYgaXRzIFtbUHJpbWl0aXZlVmFsdWVdXSBpbnRlcm5hbCBwcm9wZXJ0eSwgYXMgZGVm
aW5lZCBieSBbRUNNQS0yNjJdLCBpcyBub3QgTmFOLiBDb25mb3JtaW5nIHVzZXIgYWdlbnRzIG11
c3Qgc3VwcG9ydCBhbGwgdmFsaWQga2V5cyBhcyBrZXlzLiI+Cis8bGluayByZWw9YXV0aG9yIGhy
ZWY9Im1haWx0bzpiYXRpZm9uQHlhaG9vLmZyIiB0aXRsZT0iQmFwdGlzdGUgRm9udGFpbmUiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgZnVuY3Rpb24gdmFsaWRfa2V5KGRlc2MsIGtleSkgeworICAgICAgICB2YXIgZGI7CisgICAg
ICAgIHZhciB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgZGVzYyk7Cisg
ICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKKyAgICAgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgICAgICAgICAgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
KTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKHN0b3JlLmFkZCgndmFsdWUnLCBrZXkpIGluc3Rh
bmNlb2YgSURCUmVxdWVzdCk7CisKKyAgICAgICAgICAgIHN0b3JlMiA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZTIiLCB7IGtleVBhdGg6IFsieCIsICJrZXlwYXRoIl0gfSk7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShzdG9yZTIuYWRkKHsgeDogJ3YnLCBrZXlwYXRoOiBrZXkgfSkgaW5z
dGFuY2VvZiBJREJSZXF1ZXN0KTsKKyAgICAgICAgfTsKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigi
c3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgLmdldChrZXkpCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQsICd2YWx1ZScpCisgICAgICAgICAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInN0b3JlMiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInN0b3JlMiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KFsndicsIGtl
eV0pCisgICAgICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC54
LCAndicpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQua2V5cGF0aCwga2V5KTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCkKKyAgICAg
ICAgICAgICAgICB9KQorICAgICAgICAgICAgfSkKKyAgICAgICAgfQorICAgIH0KKworICAgIC8v
IERhdGUKKyAgICB2YWxpZF9rZXkoICduZXcgRGF0ZSgpJyAgICAsIG5ldyBEYXRlKCkgKTsKKyAg
ICB2YWxpZF9rZXkoICduZXcgRGF0ZSgwKScgICAsIG5ldyBEYXRlKDApICk7CisKKyAgICAvLyBB
cnJheQorICAgIHZhbGlkX2tleSggJ1tdJyAgICAgICAgICAgICwgW10gKTsKKyAgICB2YWxpZF9r
ZXkoICduZXcgQXJyYXkoKScgICAsIG5ldyBBcnJheSgpICk7CisKKyAgICB2YWxpZF9rZXkoICdb
InVuZGVmaW5lZCJdJyAsIFsndW5kZWZpbmVkJ10gKTsKKworICAgIC8vIEZsb2F0CisgICAgdmFs
aWRfa2V5KCAnSW5maW5pdHknICAgICAgLCBJbmZpbml0eSApOworICAgIHZhbGlkX2tleSggJy1J
bmZpbml0eScgICAgICwgLUluZmluaXR5ICk7CisgICAgdmFsaWRfa2V5KCAnMCcgICAgICAgICAg
ICAgLCAwICk7CisgICAgdmFsaWRfa2V5KCAnMS41JyAgICAgICAgICAgLCAxLjUgKTsKKyAgICB2
YWxpZF9rZXkoICczZTM4JyAgICAgICAgICAsIDNlMzggKTsKKyAgICB2YWxpZF9rZXkoICczZS0z
OCcgICAgICAgICAsIDNlMzggKTsKKworICAgIC8vIFN0cmluZworICAgIHZhbGlkX2tleSggJyJm
b28iJyAgICAgICAgICwgImZvbyIgKTsKKyAgICB2YWxpZF9rZXkoICciXFxuIicgICAgICAgICAs
ICJcbiIgKTsKKyAgICB2YWxpZF9rZXkoICciIicgICAgICAgICAgICAsICIiICk7CisgICAgdmFs
aWRfa2V5KCAnIlxcIiInICAgICAgICAgLCAiXCIiICk7CisgICAgdmFsaWRfa2V5KCAnIlxcdTEy
MzQiJyAgICAgLCAiXHUxMjM0IiApOworICAgIHZhbGlkX2tleSggJyJcXHUwMDAwIicgICAgICwg
Ilx1MDAwMCIgKTsKKyAgICB2YWxpZF9rZXkoICciTmFOIicgICAgICAgICAsICJOYU4iICk7CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1j
b25zdHJhaW50ZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzNmYxYzY3MGNjN2E3MDFiNzIxNTQzYzA1YzJjYjdl
ZDMyNWRjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3ItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEtleWdlbmVyYXRvciBDb25zdHJhaW50
RXJyb3Igd2hlbiB1c2luZyBzYW1lIGlkIGFzIGFscmVhZHkgZ2VuZXJhdGVkIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1jb25zdHJhaW50
ZXJyb3IuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MjIxMTU0OTMzY2RjMDJhZjcxNTYzNDcxMmM2OTdkNWM2
N2FiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLmh0bQpA
QCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5LZXlnZW5lcmF0b3IgQ29uc3RyYWludEVycm9yIHdoZW4gdXNpbmcgc2FtZSBpZCBh
cyBhbHJlYWR5IGdlbmVyYXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDog
MTAwMDB9KSwKKyAgICAgIG9iamVjdHMgPSBbMSwgbnVsbCwge2lkOiAyfSwgbnVsbCwgMi4wMDAw
MSwgNSwgbnVsbCwge2lkOiA2fSBdLAorICAgICAgZXhwZWN0ZWQgPSBbMSwgMiwgMi4wMDAwMSwg
MywgNSwgNl0sCisgICAgICBlcnJvcnMgPSAwOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImlkIiwgYXV0b0luY3JlbWVudDogdHJ1
ZSB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKysp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChvYmplY3RzW2ldID09PSBudWxsKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7fSk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqZWN0c1tpXSA9PT0gIm9iamVjdCIpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKG9iamVj
dHNbaV0pCisgICAgICAgICAgICAgICAgcnEueWVoID0gb2JqZWN0c1tpXTsKKyAgICAgICAgICAg
ICAgICBycS5vbmVycm9yID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgICAgICBlcnJvcnMrKzsKKworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3IiKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJlcnJvciIpOworCisgICAgICAgICAgICAgICAgICAg
IGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1
bHQoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF91
bnJlYWNoZWQoIkdvdCBycS5zdWNjZXNzIHdoZW4gYWRkaW5nIGR1cGxpY2F0ZSBpZCAiICsgb2Jq
ZWN0c1tpXSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgaWQ6IG9iamVjdHNbaV0gfSk7
CisgICAgICAgIH0KKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJh
bnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAg
ICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOworICAgICAgICAgICAg
ICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlcnJvcnMsIDIsICJleHBlY3RlZCBDb25z
dHJhaW50RXJyb3IncyIpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0
dWFsX2tleXMsIGV4cGVjdGVkLCAia2V5Z2VuZXJhdG9yIGFycmF5Iik7CisgICAgICAgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07CisKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5Z2VuZXJhdG9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2tleWdlbmVyYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBhNmVmY2UxNTQ0
NGViZjQ1NjIzY2MxZDg1M2M5ZWQ5ZjIzNDhjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRv
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgS2V5Z2VuZXJhdG9yIC0gc3Rh
cnRzIGF0IG9uZSwgYW5kIGluY3JlbWVudHMgYnkgb25lIAorUEFTUyBLZXlnZW5lcmF0b3IgLSBp
bmNyZW1lbnRzIGJ5IG9uZSBmcm9tIGxhc3Qgc2V0IGtleSAKK1BBU1MgS2V5Z2VuZXJhdG9yIC0g
ZG9uJ3QgaW5jcmVtZW50IHdoZW4gbmV3IGtleSBpcyBub3QgYmlnZ2VyIHRoYW4gY3VycmVudCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIva2V5Z2VuZXJhdG9yLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRv
ci1vdmVyZmxvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5NzgzNWY3MGY4MTc3YmYzMmY1
YzY2MTZmNDY4NTA2ZTRhNzUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci1vdmVyZmxv
dy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgS2V5Z2VuZXJhdG9yIG92ZXJm
bG93IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3cuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5Z2VuZXJhdG9yLW92
ZXJmbG93Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGZkNTc3ZTAzODIyYzAzNWQ4ZGM2YmQwOTY1NjBhMTcw
OGRlMjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5Z2VuZXJhdG9yLW92ZXJmbG93Lmh0bQpAQCAtMCww
ICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5LZXlnZW5lcmF0b3Igb3ZlcmZsb3c8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxs
aW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LWdlbmVyYXRvci1jb25jZXB0Ij4KKzxsaW5rIHJlbD1h
c3NlcnQgdGl0bGU9IldoZW4gdGhlIGN1cnJlbnQgbnVtYmVyIG9mIGEga2V5IGdlbmVyYXRvciBy
ZWFjaGVzIGFib3ZlIHRoZSB2YWx1ZSAyXjUzICg5MDA3MTk5MjU0NzQwOTkyKSBhbnkgYXR0ZW1w
dHMgdG8gdXNlIHRoZSBrZXkgZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEgbmV3IGtleSB3aWxsIHJl
c3VsdCBpbiBhbiBlcnJvci4gSXQncyBzdGlsbCBwb3NzaWJsZSB0byBpbnNlcnQgcmVjb3JkcyBp
bnRvIHRoZSBvYmplY3Qgc3RvcmUgYnkgc3BlY2lmeWluZyBhbiBleHBsaWNpdCBrZXksIGhvd2V2
ZXIgdGhlIG9ubHkgd2F5IHRvIHVzZSBhIGtleSBnZW5lcmF0b3IgYWdhaW4gZm9yIHRoZSBvYmpl
Y3Qgc3RvcmUgaXMgdG8gZGVsZXRlIHRoZSBvYmplY3Qgc3RvcmUgYW5kIGNyZWF0ZSBhIG5ldyBv
bmUuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICBvdmVyZmxvd19lcnJvcl9maXJlZCA9IGZhbHNl
LAorICAgICAgb2JqZWN0cyA9ICBbOTAwNzE5OTI1NDc0MDk5MSwgbnVsbCwgImVycm9yIiwgMiwg
ImVycm9yIiBdLAorICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsyLCA5MDA3MTk5MjU0NzQwOTkxLCA5
MDA3MTk5MjU0NzQwOTkyXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiLCB7IGtleVBhdGg6ICJpZCIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAob2JqZWN0c1tpXSA9PT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoe30pOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgZWxzZSBpZiAob2JqZWN0c1tpXSA9PT0gImVycm9yIikKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5hZGQoe30pOworICAgICAgICAgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IGZhaWwodCwgJ1doZW4gImN1cnJlbnQgbnVtYmVyIiBvdmVyZmxvd3MsIGVy
cm9yIGV2ZW50IGlzIGV4cGVjdGVkJyk7CisgICAgICAgICAgICAgICAgcnEub25lcnJvciA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dfZXJy
b3JfZmlyZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3IiLCAiZXJyb3IgbmFtZSIpOworICAgICAg
ICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIGUu
c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgaWQ6IG9iamVj
dHNbaV0gfSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJx
ID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAg
ICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOworICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUob3ZlcmZsb3dfZXJyb3JfZmly
ZWQsICJlcnJvciBmaXJlZCBvbiAnY3VycmVudCBudW1iZXInIG92ZXJmbG93Iik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cywg
ImtleWdlbmVyYXRvciBhcnJheSIpOworCisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5Z2VuZXJhdG9yLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleWdlbmVyYXRvci5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTVhODZiYTQ4YTZlOTllNDQ2MDBmNmVlOTNmMWJlYzRjZDMxNjliMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2tleWdlbmVyYXRvci5odG0KQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+S2V5Z2VuZXJhdG9yPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1nZW5lcmF0
b3ItY29uY2VwdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgY3VycmVudCBudW1iZXIg
b2YgYSBrZXkgZ2VuZXJhdG9yIGlzIGFsd2F5cyBzZXQgdG8gMSB3aGVuIHRoZSBvYmplY3Qgc3Rv
cmUgZm9yIHRoYXQga2V5IGdlbmVyYXRvciBpcyBmaXJzdCBjcmVhdGVkLiI+Cis8bGluayByZWw9
YXNzZXJ0IHRpdGxlPSJXaGVuIGEga2V5IGdlbmVyYXRvciBpcyB1c2VkIHRvIGdlbmVyYXRlIGEg
bmV3IGtleSBmb3IgYSBvYmplY3Qgc3RvcmUsIHRoZSBrZXkgZ2VuZXJhdG9yJ3MgY3VycmVudCBu
dW1iZXIgaXMgdXNlZCBhcyB0aGUgbmV3IGtleSB2YWx1ZSBhbmQgdGhlbiB0aGUga2V5IGdlbmVy
YXRvcidzIGN1cnJlbnQgbnVtYmVyIGlzIGluY3JlYXNlZCBieSAxLiI+Cis8bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJXaGVuIGEgcmVjb3JkIGlzIHN0b3JlZCBpbiBhIG9iamVjdCBzdG9yZSB3aGlj
aCB1c2VzIGEga2V5IGdlbmVyYXRvciwgYW5kIGFuIGV4cGxpY2l0IGtleSBpcyBkZWZpbmVkLCBp
ZiB0aGUga2V5J3MgdmFsdWUgaXMgYSBmbG9hdCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhl
IGtleSBnZW5lcmF0b3IncyBjdXJyZW50IG51bWJlciwgdGhlbiB0aGUga2V5IGdlbmVyYXRvcidz
IGN1cnJlbnQgbnVtYmVyIGlzIHNldCB0byB0aGUgc21hbGxlc3QgaW50ZWdlciBudW1iZXIgbGFy
Z2VyIHRoYW4gdGhlIGV4cGxpY2l0IGtleS4gT25seSBleHBsaWNpdCBrZXlzIHdoaWNoIGFyZSBm
bG9hdCB2YWx1ZXMgYWZmZWN0IHRoZSBjdXJyZW50IG51bWJlciBvZiB0aGUga2V5IGdlbmVyYXRv
ci4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICBmdW5jdGlvbiBrZXlnZW5lcmF0b3Iob2JqZWN0cywgZXhwZWN0ZWRfa2V5cywg
ZGVzYywgZnVuYykgeworICAgICAgICB2YXIgZGIsCisgICAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOworCisgICAgICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJpZCIs
IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBp
ZiAob2JqZWN0c1tpXSA9PT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHt9KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG9ialN0b3Jl
LmFkZCh7IGlkOiBvYmplY3RzW2ldIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisg
ICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFy
IGFjdHVhbF9rZXlzID0gW10sCisgICAgICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0
b3JlIikKKyAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAg
ICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOwor
ICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlf
ZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzLCAia2V5Z2VuZXJhdG9yIGFycmF5Iik7
CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9OworICAgIH0KKworCisgICAga2V5Z2VuZXJhdG9yKFtudWxs
LCBudWxsLCBudWxsLCBudWxsXSwgIFsxLCAyLCAzLCA0XSwKKyAgICAgICAgInN0YXJ0cyBhdCBv
bmUsIGFuZCBpbmNyZW1lbnRzIGJ5IG9uZSIpOworCisgICAga2V5Z2VuZXJhdG9yKFsyLCBudWxs
LCA1LCBudWxsLCA2LjY2LCA3XSwgIFsyLCAzLCA1LCA2LCA2LjY2LCA3XSwKKyAgICAgICAgImlu
Y3JlbWVudHMgYnkgb25lIGZyb20gbGFzdCBzZXQga2V5Iik7CisKKyAgICBrZXlnZW5lcmF0b3Io
Wy0xMCwgbnVsbCwgIjYiLCA2LjMsIFsxMF0sIC0yLCA0LCBudWxsXSwgICBbLTEwLCAtMiwgMSwg
NCwgNi4zLCA3LCAiNiIsIFsxMF1dLAorICAgICAgICAiZG9uJ3QgaW5jcmVtZW50IHdoZW4gbmV3
IGtleSBpcyBub3QgYmlnZ2VyIHRoYW4gY3VycmVudCIpOworCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleW9yZGVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTZlYTdiZjg2MWEzNjcwMGJiMWJmM2NkY2IyNjUyMzVm
MGUxMzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5b3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjYgQEAKKworUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gU3RyaW5nIDwgQXJyYXkgCitQ
QVNTIElEQktleS5jbXAgc29ydGVkIC0gU3RyaW5nIDwgQXJyYXkgCitQQVNTIERhdGFiYXNlIHJl
YWRiYWNrIHNvcnQgLSBmbG9hdCA8IFN0cmluZyAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSBm
bG9hdCA8IFN0cmluZyAKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIGZsb2F0IDwgRGF0
ZSAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSBmbG9hdCA8IERhdGUgCitQQVNTIERhdGFiYXNl
IHJlYWRiYWNrIHNvcnQgLSBmbG9hdCA8IERhdGUgPCBTdHJpbmcgPCBBcnJheSAKK1BBU1MgSURC
S2V5LmNtcCBzb3J0ZWQgLSBmbG9hdCA8IERhdGUgPCBTdHJpbmcgPCBBcnJheSAKK1BBU1MgRGF0
YWJhc2UgcmVhZGJhY2sgc29ydCAtIERhdGUoMSBzZWMgYWdvKSA8IERhdGUobm93KSA8IERhdGUo
MSBtaW51dGUgaW4gZnV0dXJlKSAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSBEYXRlKDEgc2Vj
IGFnbykgPCBEYXRlKG5vdykgPCBEYXRlKDEgbWludXRlIGluIGZ1dHVyZSkgCitQQVNTIERhdGFi
YXNlIHJlYWRiYWNrIHNvcnQgLSAtMS4xIDwgMSA8IDEuMDEzMzcgPCAxLjAxMzM3MyA8IDIgCitQ
QVNTIElEQktleS5jbXAgc29ydGVkIC0gLTEuMSA8IDEgPCAxLjAxMzM3IDwgMS4wMTMzNzMgPCAy
IAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gLUluZmluaXR5IDwgLTAuMDEgPCAwIDwg
SW5maW5pdHkgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gLUluZmluaXR5IDwgLTAuMDEgPCAw
IDwgSW5maW5pdHkgCitQQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSAiIiA8ICJhIiA8ICJh
YiIgPCAiYiIgPCAiYmEiIAorUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtICIiIDwgImEiIDwgImFi
IiA8ICJiIiA8ICJiYSIgCitQQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBBcnJheXMgCitQ
QVNTIElEQktleS5jbXAgc29ydGVkIC0gQXJyYXlzIAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBz
b3J0IC0gQXJyYXkubGVuZ3RoOiAxMCwwMDAgPCBBcnJheS5sZW5ndGg6IDEwLDAwMSAKK1BBU1Mg
SURCS2V5LmNtcCBzb3J0ZWQgLSBBcnJheS5sZW5ndGg6IDEwLDAwMCA8IEFycmF5Lmxlbmd0aDog
MTAsMDAxIAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gSW5maW5pdHkgaW5zaWRlIGFy
cmF5cyAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSBJbmZpbml0eSBpbnNpZGUgYXJyYXlzIAor
UEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gVGVzdCBkaWZmZXJlbnQgc3R1ZmYgYXQgb25j
ZSAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSBUZXN0IGRpZmZlcmVudCBzdHVmZiBhdCBvbmNl
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9rZXlvcmRlci5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlvcmRlci5odG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdmNGY5
MDE4ODZlNGZjNzY2NzU1ZjQ1NjgwMmQ1MTAyYzM4NDEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleW9y
ZGVyLmh0bQpAQCAtMCwwICsxLDE3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIFN1Ym1pdHRl
ZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
S2V5IHNvcnQgb3JkZXI8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3Ry
dWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkZvciBwdXJwb3NlcyBvZiBjb21wYXJpc29u
LCBhbGwgQXJyYXlzIGFyZSBncmVhdGVyIHRoYW4gYWxsIERPTVN0cmluZywgRGF0ZSBhbmQgZmxv
YXQgdmFsdWVzOyBhbGwgRE9NU3RyaW5nIHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGFsbCBEYXRl
IGFuZCBmbG9hdCB2YWx1ZXM7IGFuZCBhbGwgRGF0ZSB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBh
bGwgZmxvYXQgdmFsdWVzLiBWYWx1ZXMgb2YgdHlwZSBmbG9hdCBhcmUgY29tcGFyZWQgdG8gb3Ro
ZXIgZmxvYXQgdmFsdWVzIG51bWVyaWNhbGx5LiBWYWx1ZXMgb2YgdHlwZSBEYXRlIGFyZSBjb21w
YXJlZCB0byBvdGhlciBEYXRlIHZhbHVlcyBjaHJvbm9sb2dpY2FsbHkuIFZhbHVlcyBvZiB0eXBl
IERPTVN0cmluZyBhcmUgY29tcGFyZWQgdG8gb3RoZXIgdmFsdWVzIG9mIHR5cGUgRE9NU3RyaW5n
IGJ5IHVzaW5nIHRoZSBhbGdvcml0aG0gZGVmaW5lZCBieSBzdGVwIDQgb2Ygc2VjdGlvbiAxMS44
LjUsIFRoZSBBYnN0cmFjdCBSZWxhdGlvbmFsIENvbXBhcmlzb24gQWxnb3JpdGhtLCBvZiB0aGUg
RUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0uIFZhbHVlcyBvZiB0
eXBlIEFycmF5IGFyZSBjb21wYXJlZCB0byBvdGhlciB2YWx1ZXMgb2YgdHlwZSBBcnJheSBhcyBm
b2xsb3dzOgorCisxLiBMZXQgQSBiZSB0aGUgZmlyc3QgQXJyYXkgdmFsdWUgYW5kIEIgYmUgdGhl
IHNlY29uZCBBcnJheSB2YWx1ZS4KKzIuIExldCBsZW5ndGggYmUgdGhlIGxlc3NlciBvZiBBJ3Mg
bGVuZ3RoIGFuZCBCJ3MgbGVuZ3RoLgorMy4gTGV0IGkgYmUgMC4KKzQuIElmIHRoZSBpdGggdmFs
dWUgb2YgQSBpcyBsZXNzIHRoYW4gdGhlIGl0aCB2YWx1ZSBvZiBCLCB0aGVuIEEgaXMgbGVzcyB0
aGFuIEIuIFNraXAgdGhlIHJlbWFpbmluZyBzdGVwcy4KKzUuIElmIHRoZSBpdGggdmFsdWUgb2Yg
QSBpcyBncmVhdGVyIHRoYW4gdGhlIGl0aCB2YWx1ZSBvZiBCLCB0aGVuIEEgaXMgZ3JlYXRlciB0
aGFuIEIuIFNraXAgdGhlIHJlbWFpbmluZyBzdGVwcy4KKzYuIEluY3JlYXNlIGkgYnkgMS4KKzcu
IElmIGkgaXMgbm90IGVxdWFsIHRvIGxlbmd0aCwgZ28gYmFjayB0byBzdGVwIDQuIE90aGVyd2lz
ZSBjb250aW51ZSB0byBuZXh0IHN0ZXAuCis4LiBJZiBBJ3MgbGVuZ3RoIGlzIGxlc3MgdGhhbiBC
J3MgbGVuZ3RoLCB0aGVuIEEgaXMgbGVzcyB0aGFuIEIuIElmIEEncyBsZW5ndGggaXMgZ3JlYXRl
ciB0aGFuIEIncyBsZW5ndGgsIHRoZW4gQSBpcyBncmVhdGVyIHRoYW4gQi4gT3RoZXJ3aXNlIEEg
YW5kIEIgYXJlIGVxdWFsLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBnbG9iYWxfZGIgPSBjcmVhdGVkYl9mb3JfbXVs
dGlwbGVfdGVzdHMoKTsKKworICAgIGZ1bmN0aW9uIGtleXNvcnQoZGVzYywgdW5zb3J0ZWQsIGV4
cGVjdGVkKSB7CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICAgIHQgPSBhc3luY190ZXN0KCJE
YXRhYmFzZSByZWFkYmFjayBzb3J0IC0gIiArIGRlc2MsIHsgdGltZW91dDogMTAwMDAgfSksCisg
ICAgICAgICAgICBzdG9yZV9uYW1lID0gJ3N0b3JlLScgKyBEYXRlLm5vdygpICsgTWF0aC5yYW5k
b20oKTsKKworICAgICAgICAvLyBUaGUgZGF0YWJhc2UgdGVzdAorICAgICAgICB2YXIgb3Blbl9y
cSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQpOworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSk7
CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJ2YWx1ZSIsIHVuc29ydGVkW2ldKTsKKyAg
ICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgICAgICBycSA9IGRiLnRy
YW5zYWN0aW9uKHN0b3JlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUo
c3RvcmVfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAg
aWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNv
ci5rZXkpOworICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9rZXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZCwgImtleW9yZGVyIGFycmF5Iik7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsX2tleXMubGVuZ3RoLCBl
eHBlY3RlZC5sZW5ndGgsICJhcnJheSBsZW5ndGgiKTsKKworICAgICAgICAgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsK
KworICAgICAgICAvLyBUaGUgSURCS2V5LmNtcCB0ZXN0CisgICAgICAgIHRlc3QoZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgdmFyIHNvcnRlZCA9IHVuc29ydGVkLnNsaWNlKDApLnNvcnQoZnVu
Y3Rpb24oYSwgYikgeyByZXR1cm4gaW5kZXhlZERCLmNtcChhLCBiKX0pOworICAgICAgICAgICAg
YXNzZXJ0X2tleV9lcXVhbHMoc29ydGVkLCBleHBlY3RlZCwgInNvcnRlZCBhcnJheSIpOworCisg
ICAgICAgIH0sICJJREJLZXkuY21wIHNvcnRlZCAtICIgKyBkZXNjKTsKKyAgICB9CisKKyAgICB2
YXIgbm93ID0gbmV3IERhdGUoKSwKKyAgICAgICAgb25lX3NlY19hZ28gPSBuZXcgRGF0ZShub3cg
LSAxMDAwKSwKKyAgICAgICAgb25lX21pbl9mdXR1cmUgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgp
ICsgKDEwMDAqNjApKTsKKworICAgIGtleXNvcnQoJ1N0cmluZyA8IEFycmF5JywKKyAgICAgICAg
WyBbMF0sICJ5byIsICIiLCBbXSBdLAorICAgICAgICBbICIiLCAieW8iLCBbXSwgWzBdIF0pOwor
CisgICAga2V5c29ydCgnZmxvYXQgPCBTdHJpbmcnLAorICAgICAgICBbIEluZmluaXR5LCAieW8i
LCAwLCAiIiwgMTAwIF0sCisgICAgICAgIFsgMCwgMTAwLCBJbmZpbml0eSwgIiIsICJ5byIgXSk7
CisKKyAgICBrZXlzb3J0KCdmbG9hdCA8IERhdGUnLAorICAgICAgICBbIG5vdywgMCwgOTk5OTk5
OTk5OTk5OSwgLTAuMjIgXSwKKyAgICAgICAgWyAtMC4yMiwgMCwgOTk5OTk5OTk5OTk5OSwgbm93
IF0pOworCisgICAga2V5c29ydCgnZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXknLAorICAg
ICAgICBbIFtdLCAiIiwgbm93LCBbMF0sICItMSIsIDAsIDk5OTk5OTk5OTk5OTksIF0sCisgICAg
ICAgIFsgMCwgOTk5OTk5OTk5OTk5OSwgbm93LCAiIiwgIi0xIiwgW10sIFswXSBdKTsKKworCisg
ICAga2V5c29ydCgnRGF0ZSgxIHNlYyBhZ28pIDwgRGF0ZShub3cpIDwgRGF0ZSgxIG1pbnV0ZSBp
biBmdXR1cmUpJywKKyAgICAgICAgWyBub3csIG9uZV9zZWNfYWdvLCBvbmVfbWluX2Z1dHVyZSBd
LAorICAgICAgICBbIG9uZV9zZWNfYWdvLCBub3csIG9uZV9taW5fZnV0dXJlIF0pOworCisgICAg
a2V5c29ydCgnLTEuMSA8IDEgPCAxLjAxMzM3IDwgMS4wMTMzNzMgPCAyJywKKyAgICAgICAgWyAx
LjAxMzM3MywgMiwgMS4wMTMzNywgLTEuMSwgMSBdLAorICAgICAgICBbIC0xLjEsIDEsIDEuMDEz
MzcsIDEuMDEzMzczLCAyIF0pOworCisgICAga2V5c29ydCgnLUluZmluaXR5IDwgLTAuMDEgPCAw
IDwgSW5maW5pdHknLAorICAgICAgICBbIDAsIC0wLjAxLCAtSW5maW5pdHksIEluZmluaXR5IF0s
CisgICAgICAgIFsgLUluZmluaXR5LCAtMC4wMSwgMCwgSW5maW5pdHkgXSk7CisKKyAgICBrZXlz
b3J0KCciIiA8ICJhIiA8ICJhYiIgPCAiYiIgPCAiYmEiJywKKyAgICAgICAgWyAiYSIsICJiYSIs
ICIiLCAiYiIsICJhYiIgXSwKKyAgICAgICAgWyAiIiwgImEiLCAiYWIiLCAiYiIsICJiYSIgXSk7
CisKKyAgICBrZXlzb3J0KCdBcnJheXMnLAorICAgICAgICBbIFtbMF1dLCBbMF0sIFtdLCBbMCwg
MF0sIFswLCBbMF1dIF0sCisgICAgICAgIFsgW10sIFswXSwgWzAsIDBdLCBbMCwgWzBdXSwgW1sw
XV0gXSk7CisKKyAgICB2YXIgYmlnX2FycmF5ID0gW10sIGJpZ2dlcl9hcnJheSA9IFtdOworICAg
IGZvciAodmFyIGk9MDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICAgICAgYmlnX2FycmF5LnB1c2go
aSk7CisgICAgICAgIGJpZ2dlcl9hcnJheS5wdXNoKGkpOworICAgIH0KKyAgICBiaWdnZXJfYXJy
YXkucHVzaCgwKTsKKworICAgIGtleXNvcnQoJ0FycmF5Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXku
bGVuZ3RoOiAxMCwwMDEnLAorICAgICAgICBbIGJpZ2dlcl9hcnJheSwgWzAsIDIsIDNdLCBbMF0s
IFs5XSwgYmlnX2FycmF5IF0sCisgICAgICAgIFsgWzBdLCBiaWdfYXJyYXksIGJpZ2dlcl9hcnJh
eSwgWzAsIDIsIDNdLCBbOV0gXSk7CisKKyAgICBrZXlzb3J0KCdJbmZpbml0eSBpbnNpZGUgYXJy
YXlzJywKKyAgICAgICAgWyBbSW5maW5pdHksIDFdLCBbSW5maW5pdHksIEluZmluaXR5XSwgWzEs
IDFdLAorICAgICAgICAgICAgWzEsIEluZmluaXR5XSwgWzEsIC1JbmZpbml0eV0sIFstSW5maW5p
dHksIEluZmluaXR5XSBdLAorICAgICAgICBbIFstSW5maW5pdHksIEluZmluaXR5XSwgWzEsIC1J
bmZpbml0eV0sIFsxLCAxXSwKKyAgICAgICAgICAgIFsxLCBJbmZpbml0eV0sIFtJbmZpbml0eSwg
MV0sIFtJbmZpbml0eSwgSW5maW5pdHldIF0pOworCisKKyAgICBrZXlzb3J0KCdUZXN0IGRpZmZl
cmVudCBzdHVmZiBhdCBvbmNlJywKKyAgICAgICAgWworICAgICAgICAgIG5vdywKKyAgICAgICAg
ICBbMCwgW11dLAorICAgICAgICAgICJ0ZXN0IiwKKyAgICAgICAgICAxLAorICAgICAgICAgIFsi
YSIsIFsxLCBbLTFdXV0sCisgICAgICAgICAgWyJiIiwgImEiXSwKKyAgICAgICAgICBbIDAsIDIs
ICJjIl0sCisgICAgICAgICAgWyJhIiwgWzEsIDJdXSwKKyAgICAgICAgICBbXSwKKyAgICAgICAg
ICBbMCwgW10sIDNdLAorICAgICAgICAgIFsiYSIsICJiIl0sCisgICAgICAgICAgWyAxLCAyIF0s
CisgICAgICAgICAgWyJhIiwgImIiLCAiYyJdLAorICAgICAgICAgIG9uZV9zZWNfYWdvLAorICAg
ICAgICAgIFsgMCwgImIiLCAiYyJdLAorICAgICAgICAgIEluZmluaXR5LAorICAgICAgICAgIC1J
bmZpbml0eSwKKyAgICAgICAgICAyLjU1LAorICAgICAgICAgIFsgMCwgbm93IF0sCisgICAgICAg
ICAgWzFdCisgICAgICAgIF0sCisgICAgICAgIFsKKyAgICAgICAgICAtSW5maW5pdHksCisgICAg
ICAgICAgMSwKKyAgICAgICAgICAyLjU1LAorICAgICAgICAgIEluZmluaXR5LAorICAgICAgICAg
IG9uZV9zZWNfYWdvLAorICAgICAgICAgIG5vdywKKyAgICAgICAgICAidGVzdCIsCisgICAgICAg
ICAgW10sCisgICAgICAgICAgWzAgLDIsICJjIl0sCisgICAgICAgICAgWzAsIG5vd10sCisgICAg
ICAgICAgWzAsICJiIiwgImMiXSwKKyAgICAgICAgICBbMCwgW11dLAorICAgICAgICAgIFswLCBb
XSwgM10sCisgICAgICAgICAgWzFdLAorICAgICAgICAgIFsxLCAyXSwKKyAgICAgICAgICBbImEi
LCAiYiJdLAorICAgICAgICAgIFsiYSIsICJiIiwgImMiXSwKKyAgICAgICAgICBbImEiLCBbMSwg
Ml1dLAorICAgICAgICAgIFsiYSIsIFsxLCBbLTFdXV0sCisgICAgICAgICAgWyJiIiwgImEiXQor
ICAgICAgICBdKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9rZXlwYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleXBhdGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
YWI5ZWQ3YmUwNjM2NTY5Yzc0NDJjYzU4MzIxNWEwZDFhMGExODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9r
ZXlwYXRoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACisKK1BBU1MgS2V5cGF0aCAtIG15
LmtleSAKK1BBU1MgS2V5cGF0aCAtIG15LmvDuGkgCitQQVNTIEtleXBhdGggLSBteS5rZXlfeWEg
CitQQVNTIEtleXBhdGggLSBwdWJsaWMua2V5JHlhIAorUEFTUyBLZXlwYXRoIC0gdHJ1ZS4kIAor
UEFTUyBLZXlwYXRoIC0gbXkuXyAKK1BBU1MgS2V5cGF0aCAtIGRlbGV0ZS5hNyAKK1BBU1MgS2V5
cGF0aCAtIHAucC5wLnAucC5wLnAucC5wLnAucC5wLnAucCAKK1BBU1MgS2V5cGF0aCAtIHN0ci5s
ZW5ndGggCitQQVNTIEtleXBhdGggLSBhcnIubGVuZ3RoIAorUEFTUyBLZXlwYXRoIC0gbGVuZ3Ro
IAorUEFTUyBLZXlwYXRoIC0gJycgdXNlcyB2YWx1ZSBhcyBrZXkgCitQQVNTIEtleXBhdGggLSBb
JyddIHVzZXMgdmFsdWUgYXMgW2tleV0gCitQQVNTIEtleXBhdGggLSBbJ3gnLCAneSddIAorUEFT
UyBLZXlwYXRoIC0gW1sneCddLCAneSddIChzdHJpbmdpZmllcykgCitQQVNTIEtleXBhdGggLSBb
J3gnLCB7dG9TdHJpbmctPid5J31dIChzdHJpbmdpZmllcykgCitQQVNTIEtleXBhdGggLSBuYW1l
LHR5cGUgCitQQVNTIEtleXBhdGggLSBuYW1lLHR5cGUubmFtZSAKK1BBU1MgS2V5cGF0aCAtIGFy
cmF5IGxvb3AgLT4gc3RyaW5naWZ5IGJlY29tZXMgWycnXSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aC5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9rZXlwYXRoLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTkwYmYxNjgxMmY2YzVhZmMxNmQ1OTgyMjg3MzE0
ZmMzMzNmMjZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aC5odG0KQEAgLTAsMCArMSwxNDYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPktleXBhdGg8L3RpdGxlPgorPGxpbmsgcmVs
PWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCNrZXktcGF0aC1jb25zdHJ1Y3QiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iQSBrZXkgcGF0aCBpcyBhIERPTVN0cmluZyB0aGF0IGRlZmluZXMgaG93IHRvIGV4dHJhY3Qg
YSBrZXkgZnJvbSBhIHZhbHVlLiBBIHZhbGlkIGtleSBwYXRoIGlzIGVpdGhlciB0aGUgZW1wdHkg
c3RyaW5nLCBhIEphdmFTY3JpcHQgaWRlbnRpZmllciwgb3IgbXVsdGlwbGUgSmF2YXNjcmlwdCBp
ZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyAoQVNDSUkgY2hhcmFjdGVyIGNvZGUgNDYp
IFtFQ01BLTI2Ml0uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRlZGJfZm9yX211bHRp
cGxlX3Rlc3RzKCk7CisKKyAgICBmdW5jdGlvbiBrZXlwYXRoKGtleXBhdGgsIG9iamVjdHMsIGV4
cGVjdGVkX2tleXMsIGRlc2MpIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIChkZXNjID8gZGVzYyA6IGtleXBhdGgp
KSwKKworICAgICAgICAgICAgc3RvcmVfbmFtZSA9ICJzdG9yZS0iKyhEYXRlLm5vdygpKStNYXRo
LnJhbmRvbSgpOworCisgICAgICAgIHZhciBvcGVuX3JxID0gZ2xvYmFsX2RiLnNldFRlc3QodCk7
CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZShzdG9yZV9uYW1lLCB7IGtleVBhdGg6IGtleXBhdGggfSk7CisK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQob2JqZWN0c1tpXSk7CisgICAgICAgIH07CisKKyAg
ICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIg
YWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbihzdG9y
ZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKHN0b3JlX25hbWUpCisg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2Yo
KSk7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2tleV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMsICJrZXlvcmRlciBhcnJheSIp
OworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBrZXlwYXRoKCdteS5rZXknLAor
ICAgICAgICBbIHsgbXk6IHsga2V5OiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBdKTsKKworICAg
IGtleXBhdGgoJ215LmvDuGknLAorICAgICAgICBbIHsgbXk6IHsga8O4aTogNSB9IH0gXSwKKyAg
ICAgICAgWyA1IF0pOworCisgICAga2V5cGF0aCgnbXkua2V5X3lhJywKKyAgICAgICAgWyB7IG15
OiB7IGtleV95YTogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdw
dWJsaWMua2V5JHlhJywKKyAgICAgICAgWyB7IHB1YmxpYzogeyBrZXkkeWE6IDEwIH0gfSBdLAor
ICAgICAgICBbIDEwIF0pOworCisgICAga2V5cGF0aCgndHJ1ZS4kJywKKyAgICAgICAgWyB7IHRy
dWU6IHsgJDogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdteS5f
JywKKyAgICAgICAgWyB7IG15OiB7IF86IDEwIH0gfSBdLAorICAgICAgICBbIDEwIF0pOworCisg
ICAga2V5cGF0aCgnZGVsZXRlLmE3JywKKyAgICAgICAgWyB7IGRlbGV0ZTogeyBhNzogMTAgfSB9
IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdwLnAucC5wLnAucC5wLnAucC5w
LnAucC5wLnAnLAorICAgICAgICBbIHtwOntwOntwOntwOntwOntwOntwOntwOntwOntwOntwOntw
OntwOntwOjEwfX19fX19fX19fX19fX0gXSwKKyAgICAgICAgWyAxMCBdKTsKKworICAgIGtleXBh
dGgoJ3N0ci5sZW5ndGgnLAorICAgICAgICBbIHsgc3RyOiAicG9ueSIgfSwgeyBzdHI6ICJteSIg
fSwgeyBzdHI6ICJsaXR0bGUiIH0sIHsgc3RyOiAiIiB9IF0sCisgICAgICAgIFsgMCwgMiwgNCwg
NiBdKTsKKworICAgIGtleXBhdGgoJ2Fyci5sZW5ndGgnLAorICAgICAgICBbIHthcnI6IFswLCAw
LCAwLCAwXX0sIHthcnI6IFt7fSwgMCwgImhlaSIsICJsZW5ndGgiLCBJbmZpbml0eSwgW11dfSwg
e2FycjogWzEwLCAxMF19LCB7IGFycjogW119IF0sCisgICAgICAgIFsgMCwgMiwgNCwgNiBdKTsK
KworICAgIGtleXBhdGgoJ2xlbmd0aCcsCisgICAgICAgIFsgWzEwLCAxMF0sICIxMjMiLCB7IGxl
bmd0aDogMjAgfSBdLAorICAgICAgICBbIDIsIDMsIDIwIF0pOworCisgICAga2V5cGF0aCgnJywK
KyAgICAgICAgWyBbImJhZ3MiXSwgImJlYW4iLCAxMCBdLAorICAgICAgICBbIDEwLCAiYmVhbiIs
IFsiYmFncyJdIF0sCisgICAgICAgICInJyB1c2VzIHZhbHVlIGFzIGtleSIpOworCisgICAga2V5
cGF0aChbJyddLAorICAgICAgICBbIFsiYmFncyJdLCAiYmVhbiIsIDEwIF0sCisgICAgICAgIFsg
WzEwXSwgWyJiZWFuIl0gLCBbWyJiYWdzIl1dIF0sCisgICAgICAgICJbJyddIHVzZXMgdmFsdWUg
YXMgW2tleV0iKTsKKworICAgIGtleXBhdGgoWyd4JywgJ3knXSwKKyAgICAgICAgWyB7eDoxMCwg
eToyMH0sIHt5OjEuMzM3LCB4OjEwMH0gXSwKKyAgICAgICAgWyBbMTAsIDIwXSwgWzEwMCwgMS4z
MzddIF0sCisgICAgICAgICJbJ3gnLCAneSddIik7CisKKyAgICBrZXlwYXRoKFtbJ3gnXSwgWyd5
J11dLAorICAgICAgICBbIHt4OjEwLCB5OjIwfSwge3k6MS4zMzcsIHg6MTAwfSBdLAorICAgICAg
ICBbIFsxMCwgMjBdLCBbMTAwLCAxLjMzN10gXSwKKyAgICAgICAgIltbJ3gnXSwgJ3knXSAoc3Ry
aW5naWZpZXMpIik7CisKKyAgICBrZXlwYXRoKFsneCcsIHt0b1N0cmluZzpmdW5jdGlvbigpe3Jl
dHVybiAneSd9fV0sCisgICAgICAgIFsge3g6MTAsIHk6MjB9LCB7eToxLjMzNywgeDoxMDB9IF0s
CisgICAgICAgIFsgWzEwLCAyMF0sIFsxMDAsIDEuMzM3XSBdLAorICAgICAgICAiWyd4Jywge3Rv
U3RyaW5nLT4neSd9XSAoc3RyaW5naWZpZXMpIik7CisKKyAgICBpZiAoZmFsc2UpIHsKKyAgICAg
ICAgdmFyIG15YmxvYiA9IEJsb2IoWyJZb2RhIl0sIHt0eXBlOidzdXByYXdzdW0nfSk7CisgICAg
ICAgIGtleXBhdGgoWydsZW5ndGgnLCAndHlwZSddLAorICAgICAgICAgICAgWyBteWJsb2IgXSwK
KyAgICAgICAgICAgIFsgNCwgJ3N1cHJhd3N1bScgXSwKKyAgICAgICAgICAgICJbQmxvYi5sZW5n
dGgsIEJsb2IudHlwZV0iKTsKKyAgICB9CisKKyAgICAvLyBGaWxlLm5hbWUgYW5kIEZpbGUubGFz
dE1vZGlmaWVkRGF0ZSBpcyBub3QgdGVzdGFibGUgYXV0b21hdGljYWxseQorCisgICAga2V5cGF0
aChbJ25hbWUnLCAndHlwZSddLAorICAgICAgICBbIHsgbmFtZTogIm9yYW5nZSIsIHR5cGU6ICJm
cnVpdCIgfSwgeyBuYW1lOiAib3JhbmdlIiwgdHlwZTogWyJ0ZWxlY29tIiwgImZyZW5jaCJdIH0g
XSwKKyAgICAgICAgWyBbIm9yYW5nZSIsICJmcnVpdCJdLCBbIm9yYW5nZSIsIFsidGVsZWNvbSIs
ICJmcmVuY2giXV0gXSk7CisKKyAgICBrZXlwYXRoKFsnbmFtZScsICd0eXBlLm5hbWUnXSwKKyAg
ICAgICAgWyB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiB7IG5hbWU6ICJmcnVpdCIgfX0sIHsgbmFt
ZTogIm9yYW5nZSIsIHR5cGU6IHsgbmFtZTogInRlbGVjb20iIH19IF0sCisgICAgICAgIFsgWyJv
cmFuZ2UiLCAiZnJ1aXQiXSwgWyJvcmFuZ2UiLCAidGVsZWNvbSIgXSBdKTsKKworICAgIGxvb3Bf
YXJyYXkgPSBbXTsKKyAgICBsb29wX2FycmF5LnB1c2gobG9vcF9hcnJheSk7CisgICAga2V5cGF0
aChsb29wX2FycmF5LAorICAgICAgICBbICJhIiwgMSwgWyJrIl0gXSwKKyAgICAgICAgWyBbMV0s
IFsiYSJdLCBbWyJrIl1dIF0sCisgICAgICAgICJhcnJheSBsb29wIC0+IHN0cmluZ2lmeSBiZWNv
bWVzIFsnJ10iKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tl
eXBhdGhfaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoX2ludmFsaWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYwOTgyNDI2MjhmODAwZjhkMmJkYWY4MDEzNjcyZDVlYWMwMzc0ZTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9rZXlwYXRoX2ludmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAK
KworUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiaiBhIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0g
Ii55byIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJ5byxsbyIgCitQQVNTIEludmFsaWQga2V5
UGF0aCAtIFtdIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSBbImFycmF5IHdpdGggc3BhY2UiXSAK
K1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gbXVsdGlkaW1lbnNpb25hbCBhcnJheSAoaW52YWxpZCB0
b1N0cmluZykgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIzbSIgCitQQVNTIEludmFsaWQga2V5
UGF0aCAtIHt0b1N0cmluZy0+M219IAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibXkuMTMzNyIg
CitQQVNTIEludmFsaWQga2V5UGF0aCAtICIuLnlvIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0g
InkuLm8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAieS5vLiIgCitQQVNTIEludmFsaWQga2V5
UGF0aCAtICJ5Lm8uLiIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJtLioiIAorUEFTUyBJbnZh
bGlkIGtleVBhdGggLSAiXCJtXCIiIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibSUiIAorUEFT
UyBJbnZhbGlkIGtleVBhdGggLSAibS8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibS9hIiAK
K1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0mIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0h
IiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIioiIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAi
Ki4qIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIl5tIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRo
IC0gIi9tLyIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleXBhdGhfaW52YWxpZC5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoX2ludmFsaWQu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNjMWQ0NDQxNmZiZWFkMmVlZmJhN2U0ZDExZWEwNzc0ZTVmMjI5MDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoX2ludmFsaWQuaHRtCkBAIC0wLDAgKzEsNjUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkludmFsaWQga2V5cGF0aDwvdGl0bGU+Cis8bGlu
ayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI2tleS1wYXRoLWNvbnN0cnVjdCI+Cis8bGluayByZWw9YXNzZXJ0
IHRpdGxlPSJBIGtleSBwYXRoIGlzIGEgRE9NU3RyaW5nIHRoYXQgZGVmaW5lcyBob3cgdG8gZXh0
cmFjdCBhIGtleSBmcm9tIGEgdmFsdWUuIEEgdmFsaWQga2V5IHBhdGggaXMgZWl0aGVyIHRoZSBl
bXB0eSBzdHJpbmcsIGEgSmF2YVNjcmlwdCBpZGVudGlmaWVyLCBvciBtdWx0aXBsZSBKYXZhc2Ny
aXB0IGlkZW50aWZpZXJzIHNlcGFyYXRlZCBieSBwZXJpb2RzIChBU0NJSSBjaGFyYWN0ZXIgY29k
ZSA0NikgW0VDTUEtMjYyXS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBnbG9iYWxfZGIgPSBjcmVhdGVkYl9mb3Jf
bXVsdGlwbGVfdGVzdHMoKTsKKworICAgIGZ1bmN0aW9uIGludmFsaWRfa2V5cGF0aChrZXlwYXRo
LCBkZXNjKSB7CisgICAgICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiSW52YWxpZCBrZXlQYXRoIC0g
IiArIChkZXNjID8gZGVzYyA6IGZvcm1hdF92YWx1ZShrZXlwYXRoKSksIHVuZGVmaW5lZCwgMik7
CisKKyAgICAgICAgdmFyIG9wZW5ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQpLAorICAgICAgICAg
ICAgc3RvcmVfbmFtZSAgPSAic3RvcmUtIiArIERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpOwor
CisgICAgICAgIG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZShzdG9yZV9uYW1lLCB7IGtleVBhdGg6IGtleXBhdGggfSkKKyAgICAgICAg
ICAgICAgICB9LCAiY3JlYXRlT2JqZWN0U3RvcmUgd2l0aCBrZXlQYXRoIik7CisKKyAgICAgICAg
ICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSk7CisgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCBrZXlwYXRoKTsKKyAgICAgICAgICAg
ICAgICB9LCAiY3JlYXRlSW5kZXggd2l0aCBrZXlQYXRoIik7CisKKyAgICAgICAgICAgIGRiLmNs
b3NlKCk7CisKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9OworICAgIH0KKwor
ICAgIGludmFsaWRfa2V5cGF0aCgnaiBhJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCcueW8nKTsK
KyAgICBpbnZhbGlkX2tleXBhdGgoJ3lvLGxvJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKFtdKTsK
KyAgICBpbnZhbGlkX2tleXBhdGgoWydhcnJheSB3aXRoIHNwYWNlJ10pOworICAgIGludmFsaWRf
a2V5cGF0aChbJ211bHRpX2FycmF5JywgWydhJywgJ2InXV0sICJtdWx0aWRpbWVuc2lvbmFsIGFy
cmF5IChpbnZhbGlkIHRvU3RyaW5nKSIpOyAvLyA9PiBbJ211bHRpX2FycmF5JywgJ2EsYiddCisg
ICAgaW52YWxpZF9rZXlwYXRoKCczbScpOworICAgIGludmFsaWRfa2V5cGF0aCh7dG9TdHJpbmc6
ZnVuY3Rpb24oKXtyZXR1cm4gJzNtJ319LCAne3RvU3RyaW5nLT4zbX0nKTsKKyAgICBpbnZhbGlk
X2tleXBhdGgoJ215LjEzMzcnKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoJy4ueW8nKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJ3kuLm8nKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoJ3kuby4nKTsKKyAg
ICBpbnZhbGlkX2tleXBhdGgoJ3kuby4uJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtLionKTsK
KyAgICBpbnZhbGlkX2tleXBhdGgoJyJtIicpOworICAgIGludmFsaWRfa2V5cGF0aCgnbSUnKTsK
KyAgICBpbnZhbGlkX2tleXBhdGgoJ20vJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtL2EnKTsK
KyAgICBpbnZhbGlkX2tleXBhdGgoJ20mJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtIScpOwor
ICAgIGludmFsaWRfa2V5cGF0aCgnKicpOworICAgIGludmFsaWRfa2V5cGF0aCgnKi4qJyk7Cisg
ICAgaW52YWxpZF9rZXlwYXRoKCdebScpOworICAgIGludmFsaWRfa2V5cGF0aCgnL20vJyk7CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleXBhdGhfbWF4c2l6
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9rZXlwYXRoX21heHNpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYy
OTI5MWI0MzFkZjA2ZTQ5NmU5YThkMjU5ZDcxMDhkN2E2ZDZkMmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9r
ZXlwYXRoX21heHNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIEtleXBh
dGggLSB+MjYwIGNoYXJzIAorUEFTUyBLZXlwYXRoIC0gfjUzMCBjaGFycyAKK1BBU1MgS2V5cGF0
aCAtIH4xMDUwIGNoYXJzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoX21heHNpemUuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aF9t
YXhzaXplLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjllMTIwZTc4ZmU5MzY1OTM2YWUwNDUyZWVjOWMwMTg1
Mjg0N2E4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aF9tYXhzaXplLmh0bQpAQCAtMCwwICsxLDYz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5LZXlw
YXRoPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9J
bmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LXBhdGgtY29uc3RydWN0Ij4K
KzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEga2V5IHBhdGggaXMgYSBET01TdHJpbmcgdGhhdCBk
ZWZpbmVzIGhvdyB0byBleHRyYWN0IGEga2V5IGZyb20gYSB2YWx1ZS4gQSB2YWxpZCBrZXkgcGF0
aCBpcyBlaXRoZXIgdGhlIGVtcHR5IHN0cmluZywgYSBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIG9y
IG11bHRpcGxlIEphdmFzY3JpcHQgaWRlbnRpZmllcnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMgKEFT
Q0lJIGNoYXJhY3RlciBjb2RlIDQ2KSBbRUNNQS0yNjJdLiI+Cis8bWV0YSBuYW1lPXRpbWVvdXQg
Y29udGVudD1sb25nPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBrZXlwYXRoKGtleXBhdGgsIG9iamVjdHMsIGV4
cGVjdGVkX2tleXMsIGRlc2MpIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIChkZXNjID8gZGVzYyA6IGtleXBhdGgp
LCB7IHRpbWVvdXQ6IDEwMDAwIH0pLAorICAgICAgICAgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworCisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6IGtleXBhdGggfSk7CisK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQob2JqZWN0c1tpXSk7CisgICAgICAgIH07CisKKyAg
ICAgICAgb3Blbl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZChlLnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgfTsKKworICAgICAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBhY3R1YWxf
a2V5cyA9IFtdLAorICAgICAgICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikK
KyAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAg
ICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAg
ICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5
cywgZXhwZWN0ZWRfa2V5cywgImtleW9yZGVyIGFycmF5Iik7CisgICAgICAgICAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9
OworICAgIH0KKworICAgIGtleXBhdGgoJ21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFpLmtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWV5JywKKyAgICAgICAgWyB7IG1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFpOiB7IGtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5
OiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBdLCAnfjI2MCBjaGFycycpOworCisgICAga2V5cGF0
aCgnbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWkua2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZXknLAorICAgICAgICBbIHsgbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWk6IHsga2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlf
a2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXk6IDEwIH0g
fSBdLAorICAgICAgICBbIDEwIF0sICd+NTMwIGNoYXJzJyk7CisKKyAgICBrZXlwYXRoKCdtYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaS5rZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleScsCisgICAgICAgIFsgeyBtYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaTogeyBrZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVleTogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSwgJ34xMDUwIGNoYXJz
Jyk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2xvZz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2xpc3Rfb3Jk
ZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvbGlzdF9vcmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTc5M2I1ZDY2MGE2YmU3YWUwZDk0MGMwYjgxODJhMWEyZmIwNzk4MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2xpc3Rfb3JkZXJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIG9iamVj
dFN0b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXIgLSBudW1iZXJzIAorUEFTUyBvYmplY3RT
dG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbnVtYmVycyAnb3ZlcmZsb3cnIAorUEFT
UyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbGV4aWdyYXBoaWNhbCBz
dHJpbmcgc29ydCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbGlzdF9vcmRlcmluZy5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9saXN0X29yZGVyaW5nLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OTk3NjdhMGE3MzE5YzJlZWZmZDQwYzhiMWNiZTZjMzJiYTlkM2VhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvbGlzdF9vcmRlcmluZy5odG0KQEAgLTAsMCArMSw2MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+b2JqZWN0U3RvcmVOYW1l
cyBhbmQgaW5kZXhOYW1lcyBvcmRlcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxp
bmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmls
ZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkRhdGFiYXNlLW9iamVjdFN0b3JlTmFtZXMiPgor
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGxpc3QgbXVzdCBiZSBzb3J0ZWQgaW4gYXNjZW5k
aW5nIG9yZGVyIHVzaW5nIHRoZSBhbGdvcml0aG0gZGVmaW5lZCBieSBzdGVwIDQgb2Ygc2VjdGlv
biAxMS44LjUsIFRoZSBBYnN0cmFjdCBSZWxhdGlvbmFsIENvbXBhcmlzb24gQWxnb3JpdGhtIG9m
IHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24gW0VDTUEtMjYyXS4iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICBmdW5jdGlvbiBsaXN0X29yZGVyKGRlc2MsIHVuc29ydGVkLCBleHBlY3RlZCkgeworICAgICAg
ICB2YXIgb2JqU3RvcmUsIGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB1bnNvcnRlZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKHVuc29ydGVkW2ldKTsKKworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAib2JqZWN0
U3RvcmVOYW1lcyBsZW5ndGgiKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhw
ZWN0ZWQubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVj
dFN0b3JlTmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAib2JqZWN0U3RvcmVOYW1lc1siK2krIl0iKTsK
KworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1bnNvcnRlZC5sZW5ndGg7IGkrKykK
KyAgICAgICAgICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCh1bnNvcnRlZFtpXSwgImxlbmd0
aCIpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMubGVu
Z3RoLCBleHBlY3RlZC5sZW5ndGgsICJpbmRleE5hbWVzIGxlbmd0aCIpOworICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAiaW5k
ZXhOYW1lc1siK2krIl0iKTsKKyAgICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCwgIm9iamVjdFN0b3JlTmFtZXMgbGVuZ3Ro
Iik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsr
KQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lc1tpXSwg
ZXhwZWN0ZWRbaV0sICJvYmplY3RTdG9yZU5hbWVzWyIraSsiXSIpOworCisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgs
ICJpbmRleE5hbWVzIGxlbmd0aCIpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBl
eHBlY3RlZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0
b3JlLmluZGV4TmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAiaW5kZXhOYW1lc1siK2krIl0iKTsKKwor
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgbGlzdF9vcmRl
cigibnVtYmVycyIsCisgICAgICAgIFsxMjM0NTYsIC0xMjM0NSwgLTEyMywgMTIzLCAxMjM0LCAt
MTIzNCwgMCwgMTIzNDUsIC0xMjM0NTZdLAorICAgICAgICBbIi0xMjMiLCAiLTEyMzQiLCAiLTEy
MzQ1IiwgIi0xMjM0NTYiLCAiMCIsICIxMjMiLCAiMTIzNCIsICIxMjM0NSIsICIxMjM0NTYiXSk7
CisKKyAgICBsaXN0X29yZGVyKCJudW1iZXJzICdvdmVyZmxvdyciLAorICAgICAgICBbOSwgMSwg
MTAwMDAwMDAwMCwgMjAwMDAwMDAwMDAwMDAwMDAwXSwKKyAgICAgICAgWyIxIiwgIjEwMDAwMDAw
MDAiLCAiMjAwMDAwMDAwMDAwMDAwMDAwIiwgIjkiXSk7CisKKyAgICBsaXN0X29yZGVyKCJsZXhp
Z3JhcGhpY2FsIHN0cmluZyBzb3J0IiwKKyAgICAgICAgWyAiY2MiLCAiYyIsICJhYSIsICJhIiwg
ImJiIiwgImIiLCAiYWIiLCAiIiwgImFjIiBdLAorICAgICAgICBbICIiLCAiYSIsICJhYSIsICJh
YiIsICJhYyIsICJiIiwgImJiIiwgImMiLCAiY2MiIF0pOworCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL29iamVjdHN0b3JlX2tleW9yZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L29iamVjdHN0b3JlX2tleW9yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWI0OGZjZTc1
ZDhhMTQ0NjZlNDk2MThiNDAxODRiNmE0NmE1MGE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvb2JqZWN0c3Rv
cmVfa2V5b3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFZlcmlmeSBr
ZXkgc29ydCBvcmRlciBpbiBhbiBvYmplY3Qgc3RvcmUgaXMgJ251bWJlciA8IERhdGUgPCBET01T
dHJpbmcnICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvb2JqZWN0c3RvcmVfa2V5b3JkZXIuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvb2JqZWN0c3RvcmVf
a2V5b3JkZXIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViMmNlZjM2ZTU4ZjczMWNjMTU5NTdlNzUzMzZlODg3
M2IzOTk5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9vYmplY3RzdG9yZV9rZXlvcmRlci5odG0KQEAgLTAs
MCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+VmVyaWZ5IGtleSBzb3J0IG9yZGVyIGluIGFuIG9iamVjdCBzdG9yZSBpcyAnbnVtYmVyICZs
dDsgRGF0ZSAmbHQ7IERPTVN0cmluZycgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICBkID0gbmV3IERhdGUoKSwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICByZWNvcmRzID0gWyB7IGtleTogZCB9LAorICAgICAgICAgICAgICAgICAgeyBrZXk6ICJ0ZXN0
IiB9LAorICAgICAgICAgICAgICAgICAgeyBrZXk6IDEgfSwKKyAgICAgICAgICAgICAgICAgIHsg
a2V5OiAyLjU1IH0gIF0sCisgICAgICBleHBlY3RlZEtleU9yZGVyID0gWyAxLCAyLjU1LCBkLnZh
bHVlT2YoKSwgInRlc3QiIF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQor
ICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAg
ICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAg
ICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVk
S2V5T3JkZXIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9yZXF1ZXN0X2J1YmJs
ZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFmZmM1ODE0Mzc1ZmYxOTI4
ZjEzYzgzYzBhYzI3NDZiNTc4NTI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3JlcXVlc3RfYnViYmxlLWFu
ZC1jYXB0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBCdWJibGluZyBh
bmQgY2FwdHVyaW5nIG9mIHJlcXVlc3QgZXZlbnRzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9yZXF1ZXN0X2J1YmJs
ZS1hbmQtY2FwdHVyZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS5odG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzNhNGY0NTFiNmVkNmRmOTdlODNjMmRjMWUzYjExNmY1Njg3YzU3YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLmh0bQpAQCAtMCwwICsxLDY5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+QnViYmxpbmcgYW5kIGNh
cHR1cmluZyBvZiByZXF1ZXN0IGV2ZW50czwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgdmFyIGV2ZW50cyA9IFtdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgICAgICB2
YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicyIpOworICAgICAgICB2YXIgcnExID0g
c3RvcmUuYWRkKCIiLCAxKTsKKyAgICAgICAgdmFyIHJxMiA9IHN0b3JlLmFkZCgiIiwgMSk7Cisg
ICAgICAgIGRiLm9uZXJyb3IgPSBmdW5jdGlvbigpe307CisKKyAgICAgICAgbG9nX3JlcXVlc3Qo
JyBkYicsICBkYik7CisgICAgICAgIGxvZ19yZXF1ZXN0KCd0eG4nLCB0eG4pOworICAgICAgICBs
b2dfcmVxdWVzdCgncnExJywgcnExKTsKKyAgICAgICAgbG9nX3JlcXVlc3QoJ3JxMicsIHJxMik7
CisKKyAgICAgICAgLy8gRG9uJ3QgbGV0IGl0IGdldCB0byBhYm9ydAorICAgICAgICBkYi5hZGRF
dmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpIH0s
IGZhbHNlKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgbG9nKCJvcGVuX3JxLnN1Y2Nlc3MiKShlKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhldmVudHMsIFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNhcHR1cmUgIGRiLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiY2FwdHVyZSB0eG4uc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjYXB0dXJlIHJxMS5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImJ1YmJsZSAgcnExLnN1Y2Nlc3MiLAorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlICBkYi5lcnJvcjogQ29uc3RyYWludEVycm9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgdHhuLmVy
cm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiY2FwdHVyZSBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHJxMi5lcnJvcjogQ29uc3RyYWludEVy
cm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgdHhu
LmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYnViYmxlICAgZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuc3VjY2VzcyIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJldmVudHMiKTsKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAgfQorCisKKyAgICBmdW5j
dGlvbiBsb2dfcmVxdWVzdCh0eXBlLCBvYmopIHsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVu
ZXIoJ3N1Y2Nlc3MnLCBsb2coJ2NhcHR1cmUgJyArIHR5cGUgKyAnLnN1Y2Nlc3MnKSwgdHJ1ZSk7
CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgbG9nKCdidWJibGUgICcg
KyB0eXBlICsgJy5zdWNjZXNzJyksIGZhbHNlKTsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Vycm9yJywgbG9nKCdjYXB0dXJlICcgKyB0eXBlICsgJy5lcnJvcicpLCB0cnVlKTsKKyAg
ICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgbG9nKCdidWJibGUgICcgKyB0eXBl
ICsgJy5lcnJvcicpLCBmYWxzZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgewor
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdl
dCAmJiBlLnRhcmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAi
OiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgZXZlbnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zdHJpbmctbGlzdC1vcmRlcmluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9zdHJpbmctbGlzdC1vcmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI3NjBk
YTI1ZTMxYzQzMDJhZDY2ZTIwMTc4YmNjYTQ5MGM4ZTg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3N0cmlu
Zy1saXN0LW9yZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0
IHN0cmluZyBsaXN0IG9yZGVyaW5nIGluIEluZGV4ZWREQiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc3RyaW5nLWxp
c3Qtb3JkZXJpbmcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvc3RyaW5nLWxpc3Qtb3JkZXJpbmcuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3Mjg0
NWY0MTNkZjY1YzIyNDk5YWUwMzg4YzY2NWQwOTAyNDgxNTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zdHJp
bmctbGlzdC1vcmRlcmluZy5odG0KQEAgLTAsMCArMSw4NSBAQAorPCEtLQorVGVzdCBjb252ZXJ0
ZWQgZnJvbSBXZWJLaXQ6CitodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xpc3Qtb3JkZXJpbmcuanMKKy0t
PgorCis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAt
LT4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+VGVzdCBzdHJpbmcgbGlzdCBvcmRlcmlu
ZyBpbiBJbmRleGVkREI8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkRh
dGFiYXNlLW9iamVjdFN0b3JlTmFtZXMiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGxp
c3QgbXVzdCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIHVzaW5nIHRoZSBhbGdvcml0aG0g
ZGVmaW5lZCBieSBzdGVwIDQgb2Ygc2VjdGlvbiAxMS44LjUsIFRoZSBBYnN0cmFjdCBSZWxhdGlv
bmFsIENvbXBhcmlzb24gQWxnb3JpdGhtIG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNp
ZmljYXRpb24gW0VDTUEtMjYyXS4iPgorPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86cm9t
YWluLmh1ZXRAZ21haWwuY29tIiB0aXRsZT0iUm9tYWluIEh1ZXQiPgorCis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBleHBl
Y3RlZE9yZGVyID0gWworICAgICAgICAiIiwKKyAgICAgICAgIlx4MDAiLCAvLyAnTlVMTCcgKFUr
MDAwMCkKKyAgICAgICAgIjAiLAorICAgICAgICAiMSIsCisgICAgICAgICJBIiwKKyAgICAgICAg
IkIiLAorICAgICAgICAiYSIsCisgICAgICAgICJiIiwKKyAgICAgICAgIlx4N0YiLCAvLyAnREVM
RVRFJyAoVSswMDdGKQorICAgICAgICAiXHhDMCIsIC8vICdMQVRJTiBDQVBJVEFMIExFVFRFUiBB
IFdJVEggR1JBVkUnIChVKzAwQzApCisgICAgICAgICJceEMxIiwgLy8gJ0xBVElOIENBUElUQUwg
TEVUVEVSIEEgV0lUSCBBQ1VURScgKFUrMDBDMSkKKyAgICAgICAgIlx4RTAiLCAvLyAnTEFUSU4g
U01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRScgKFUrMDBFMCkKKyAgICAgICAgIlx4RTEiLCAvLyAn
TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURScgKFUrMDBFMSkKKyAgICAgICAgIlx4RkYi
LCAvLyAnTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMnIChVKzAwRkYpCisgICAg
ICAgICJcdTAxMDAiLCAvLyAnTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE1BQ1JPTicgKFUr
MDEwMCkKKyAgICAgICAgIlx1MTAwMCIsIC8vICdNWUFOTUFSIExFVFRFUiBLQScgKFUrMTAwMCkK
KyAgICAgICAgIlx1RDgzNFx1REQxRSIsIC8vICdNVVNJQ0FMIFNZTUJPTCBHLUNMRUYnIChVKzFE
MTFFKSwgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlycworICAgICAgICAiXHVGRkZEIiAvLyAnUkVQTEFD
RU1FTlQgQ0hBUkFDVEVSJyAoVStGRkZEKQorICAgIF07CisKKyAgICB2YXIgaSwgdG1wLCBwZXJt
dXRlZE9yZGVyID0gZXhwZWN0ZWRPcmRlci5zbGljZSgpOworICAgIHBlcm11dGVkT3JkZXIucmV2
ZXJzZSgpOworICAgIGZvciAoaSA9IDA7IGkgPCBwZXJtdXRlZE9yZGVyLmxlbmd0aCAtIDI7IGkg
Kz0gMikgeworICAgICAgICB0bXAgPSBwZXJtdXRlZE9yZGVyW2ldOworICAgICAgICBwZXJtdXRl
ZE9yZGVyW2ldID0gcGVybXV0ZWRPcmRlcltpICsgMV07CisgICAgICAgIHBlcm11dGVkT3JkZXJb
aSArIDFdID0gdG1wOworICAgIH0KKworICAgIHZhciBvYmpTdG9yZSwgZGI7CisgICAgdmFyIHQg
PSBhc3luY190ZXN0KCk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRoZSBleHBlY3RlZCBvcmRlciBp
cyB0aGUgY2Fub25pY2FsIEpTIHNvcnQgb3JkZXIuCisgICAgdmFyIHNvcnRlZE9yZGVyID0gZXhw
ZWN0ZWRPcmRlci5zbGljZSgpOworICAgIHNvcnRlZE9yZGVyLnNvcnQoKTsKKyAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHNvcnRlZE9yZGVyLCBleHBlY3RlZE9yZGVyKTsKKworICAgIHZhciByZXF1
ZXN0ID0gY3JlYXRlZGIodCk7CisKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgLy8gT2Jq
ZWN0IHN0b3Jlcy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwZXJtdXRlZE9yZGVyLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KHBlcm11dGVkT3JkZXJbaV0pOworICAgICAgICB9CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoZGIub2JqZWN0U3RvcmVOYW1lcywgZXhwZWN0ZWRPcmRlcik7CisKKyAgICAgICAgLy8gSW5k
ZXhlcy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwZXJtdXRlZE9yZGVyLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleChwZXJtdXRlZE9yZGVyW2ld
LCAia2V5UGF0aCIpOworICAgICAgICB9CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMob2Jq
U3RvcmUuaW5kZXhOYW1lcywgZXhwZWN0ZWRPcmRlcik7CisgICAgfTsKKworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAvLyBPYmplY3Qgc3RvcmVzLgorICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMsIGV4cGVjdGVkT3Jk
ZXIpOworICAgICAgICAvLyBJbmRleGVzLgorICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG9i
alN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVkT3JkZXIpOworICAgICAgICB0LmRvbmUoKTsKKyAg
ICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zdXBwb3J0
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvc3VwcG9ydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZWVjYTRmMWY1Mzg1YzZiYTIyMDE1YTBjOTEyZGMy
N2IwNjNiZDI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc3VwcG9ydC5qcwpAQCAtMCwwICsxLDEyNiBAQAor
dmFyIGRhdGFiYXNlTmFtZSA9ICJkYXRhYmFzZSI7Cit2YXIgZGF0YWJhc2VWZXJzaW9uID0gMTsK
KworaWYgKCF3aW5kb3cuaW5kZXhlZERCKQoreworICAgIGlmICh3aW5kb3cubXNJbmRleGVkREIp
CisgICAgeworICAgICAgICB3aW5kb3cuaW5kZXhlZERCID0gd2luZG93Lm1zSW5kZXhlZERCOwor
ICAgIH0KKyAgICBlbHNlIGlmICh3aW5kb3cubW96SW5kZXhlZERCKQorICAgIHsKKyAgICAgICAg
d2luZG93LmluZGV4ZWREQiA9IHdpbmRvdy5tb3pJbmRleGVkREI7CisgICAgfQorICAgIGVsc2Ug
aWYgKHdpbmRvdy53ZWJraXRJbmRleGVkREIpCisgICAgeworICAgICAgICB3aW5kb3cuaW5kZXhl
ZERCICAgICAgICA9IHdlYmtpdEluZGV4ZWREQjsKKyAgICAgICAgSURCQ3Vyc29yICAgICAgICAg
ICAgICAgPSB3ZWJraXRJREJDdXJzb3I7CisgICAgICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uICAg
ID0gd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247CisgICAgICAgIElEQkluZGV4ICAgICAgICAg
ICAgICAgID0gd2Via2l0SURCSW5kZXg7CisgICAgICAgIElEQk9iamVjdFN0b3JlICAgICAgICAg
ID0gd2Via2l0SURCT2JqZWN0U3RvcmU7CisgICAgICAgIElEQlJlcXVlc3QgICAgICAgICAgICAg
ID0gd2Via2l0SURCUmVxdWVzdDsKKyAgICAgICAgSURCS2V5UmFuZ2UgICAgICAgICAgICAgPSB3
ZWJraXRJREJLZXlSYW5nZTsKKyAgICAgICAgSURCVHJhbnNhY3Rpb24gICAgICAgICAgPSB3ZWJr
aXRJREJUcmFuc2FjdGlvbjsKKyAgICB9Cit9CisKKy8qIERlbGV0ZSBjcmVhdGVkIGRhdGFiYXNl
cworICoKKyAqIEdvIHRocm91Z2ggZWFjaCBmaW5pc2hlZCB0ZXN0LCBzZWUgaWYgaXQgaGFzIGFu
IGFzc29jaWF0ZWQgZGF0YWJhc2UuIENsb3NlCisgKiB0aGF0IGFuZCBkZWxldGUgdGhlIGRhdGFi
YXNlLiAqLworYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24odGVzdHMpCit7CisgICAg
Zm9yICh2YXIgaSBpbiB0ZXN0cykKKyAgICB7CisgICAgICAgIGlmKHRlc3RzW2ldLmRiKQorICAg
ICAgICB7CisgICAgICAgICAgICB0ZXN0c1tpXS5kYi5jbG9zZSgpOworICAgICAgICAgICAgd2lu
ZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0ZXN0c1tpXS5kYi5uYW1lKTsKKyAgICAgICAg
fQorICAgIH0KK30pOworCitmdW5jdGlvbiBmYWlsKHRlc3QsIGRlc2MpIHsKKyAgICByZXR1cm4g
dGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICBpZiAoZSAmJiBlLm1lc3NhZ2Ug
JiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKGRlc2MgKyAi
ICgiICsgZS50YXJnZXQuZXJyb3IubmFtZSArICI6ICIgKyBlLm1lc3NhZ2UgKyAiKSIpOworICAg
ICAgICBlbHNlIGlmIChlICYmIGUubWVzc2FnZSkKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNo
ZWQoZGVzYyArICIgKCIgKyBlLm1lc3NhZ2UgKyAiKSIpOworICAgICAgICBlbHNlIGlmIChlICYm
IGUudGFyZ2V0LnJlYWR5U3RhdGUgPT09ICdkb25lJyAmJiBlLnRhcmdldC5lcnJvcikKKyAgICAg
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoZGVzYyArICIgKCIgKyBlLnRhcmdldC5lcnJvci5uYW1l
ICsgIikiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChkZXNj
KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlZGIodGVzdCwgZGJuYW1lLCB2ZXJzaW9u
KQoreworICAgIHZhciBycV9vcGVuID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKGRibmFt
ZSwgdmVyc2lvbik7CisgICAgcmV0dXJuIHJxX29wZW4uc2V0VGVzdCh0ZXN0KTsKK30KKworZnVu
Y3Rpb24gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKGRibmFtZSwgdmVyc2lvbikgeworICAg
IHZhciBycV9vcGVuLAorICAgICAgICBmYWtlX29wZW4gPSB7fSwKKyAgICAgICAgdGVzdCA9IG51
bGwsCisgICAgICAgIGRibmFtZSA9IChkYm5hbWUgPyBkYm5hbWUgOiAidGVzdGRiLSIgKyBuZXcg
RGF0ZSgpLmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkgKTsKKworICAgIGlmICh2ZXJzaW9uKQor
ICAgICAgICBycV9vcGVuID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgdmVyc2lvbik7
CisgICAgZWxzZQorICAgICAgICBycV9vcGVuID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFt
ZSk7CisKKyAgICBmdW5jdGlvbiBhdXRvX2ZhaWwoZXZ0LCBjdXJyZW50X3Rlc3QpIHsKKyAgICAg
ICAgLyogRmFpbCBoYW5kbGVycywgaWYgd2UgaGF2ZW4ndCBzZXQgb24vd2hhdGV2ZXIvLCBkb24n
dAorICAgICAgICAgKiBleHBlY3QgdG8gZ2V0IGV2ZW50IHdoYXRldmVyLiAqLworICAgICAgICBy
cV9vcGVuLm1hbnVhbGx5X2hhbmRsZWQgPSB7fQorCisgICAgICAgIHJxX29wZW4uYWRkRXZlbnRM
aXN0ZW5lcihldnQsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50X3Rlc3Qg
IT09IHRlc3QpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJx
X29wZW4ubWFudWFsbHlfaGFuZGxlZFtldnRdKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoInVuZXhwZWN0ZWQgb3Blbi4iICsgZXZ0ICsgIiBldmVudCIpOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldC5yZXN1bHQgKyAiIiA9
PSAiW29iamVjdCBJREJEYXRhYmFzZV0iICYmICF0aGlzLmRiKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMuZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5kYi5vbmVycm9yID0gZmFpbCh0ZXN0LCAidW5leHBlY3RlZCBkYi5lcnJvciIpOworICAgICAg
ICAgICAgICAgICAgICB0aGlzLmRiLm9uYWJvcnQgPSBmYWlsKHRlc3QsICJ1bmV4cGVjdGVkIGRi
LmFib3J0Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZGIub252ZXJzaW9uY2hhbmdlID0g
ZmFpbCh0ZXN0LCAidW5leHBlY3RlZCBkYi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSkKKyAgICAgICAgcnFfb3Blbi5fX2RlZmlu
ZVNldHRlcl9fKCJvbiIgKyBldnQsIGZ1bmN0aW9uKGgpIHsKKyAgICAgICAgICAgIHJxX29wZW4u
bWFudWFsbHlfaGFuZGxlZFtldnRdID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghaCkKKyAgICAg
ICAgICAgICAgICBycV9vcGVuLmFkZEV2ZW50TGlzdGVuZXIoZXZ0LCBmdW5jdGlvbigpIHt9KTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBycV9vcGVuLmFkZEV2ZW50TGlzdGVu
ZXIoZXZ0LCB0ZXN0LnN0ZXBfZnVuYyhoKSk7CisgICAgICAgIH0pCisgICAgfQorCisgICAgLy8g
YWRkIGEgLnNldFRlc3QgbWV0aG9kIHRvIHRoZSBEQiBvYmplY3QKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkocnFfb3BlbiwgJ3NldFRlc3QnLCB7CisgICAgICAgIGVudW1lcmFibGU6IGZhbHNl
LAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24odCkgeworICAgICAgICAgICAgdGVzdCA9IHQ7CisK
KyAgICAgICAgICAgIGF1dG9fZmFpbCgidXBncmFkZW5lZWRlZCIsIHRlc3QpOworICAgICAgICAg
ICAgYXV0b19mYWlsKCJzdWNjZXNzIiwgdGVzdCk7CisgICAgICAgICAgICBhdXRvX2ZhaWwoImJs
b2NrZWQiLCB0ZXN0KTsKKyAgICAgICAgICAgIGF1dG9fZmFpbCgiZXJyb3IiLCB0ZXN0KTsKKwor
ICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHJldHVy
biBycV9vcGVuOworfQorCitmdW5jdGlvbiBhc3NlcnRfa2V5X2VxdWFscyhhY3R1YWwsIGV4cGVj
dGVkLCBkZXNjcmlwdGlvbikgeworICAgIGFzc2VydF9lcXVhbHMoaW5kZXhlZERCLmNtcChhY3R1
YWwsIGV4cGVjdGVkKSwgMCwgZGVzY3JpcHRpb24pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24t
Y3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tY3JlYXRlX2lu
X3ZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1N2I5YWJhMTVjNWIzMTE0
NjI0MjJjNjI0OTQwOTI0ZDY2Y2YyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVh
dGVfaW5fdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
QXR0ZW1wdCB0byBjcmVhdGUgbmV3IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2ZXJzaW9uY2hhbmdl
IHRyYW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNo
YW5nZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS5odG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDAyNzkxNmQyZTUwNTgyNjhhMDM5M2RhOTc2YTk2MWRhZTdlNmU0NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLmh0bQpAQCAtMCwwICsxLDgy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+QXR0ZW1w
dCB0byBjcmVhdGUgbmV3IHRyYW5zYWN0aW9ucyBpbnNpZGUgYSB2ZXJzaW9uY2hhbmdlIHRyYW5z
YWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIGV2ZW50cyA9
IFtdLAorICAgICAgICBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorCisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0CisKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAg
ICAgICAgIC5hZGQoInZlcnNpb25jaGFuZ2UxIiwgMSkKKyAgICAgICAgICAgIC5hZGRFdmVudExp
c3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJzaW9uY2hhbmdlX2FkZC5zdWNjZXNzIikpCisKKyAg
ICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCBmdW5jdGlvbigpIHsgZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikgfSkKKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbgor
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAuY291bnQoMikK
KyAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJzaW9uY2hh
bmdlX2NvdW50LnN1Y2Nlc3MiKSkKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3Rh
dGVFcnJvcicsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRl
IikgfSkKKworICAgICAgICBvcGVuX3JxLnRyYW5zYWN0aW9uCisgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgIC5hZGQoInZlcnNpb25jaGFuZ2UyIiwgMikKKyAg
ICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJ2ZXJzaW9uY2hhbmdl
X2FkZDIuc3VjY2VzcyIpKQorCisgICAgICAgIG9wZW5fcnEudHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGxvZygidmVyc2lvbmNoYW5nZV90eG4uY29t
cGxldGUiKShlKQorCisgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgIC5jb3VudCgp
CisgICAgICAgICAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsb2coImNvbXBs
ZXRlX2NvdW50LnN1Y2Nlc3MiKSkKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUp
CisKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUi
KQorICAgICAgICB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgIC5wdXQoIndv
byIsIDEpCisgICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsIGxvZygiY29t
cGxldGUyX2dldC5zdWNjZXNzIikpCisKKyAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0aGlzLnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2
ZW50cywgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9uY2hhbmdl
X2FkZC5zdWNjZXNzOiAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVy
c2lvbmNoYW5nZV9jb3VudC5zdWNjZXNzOiAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidmVyc2lvbmNoYW5nZV9hZGQyLnN1Y2Nlc3M6IDIiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9uY2hhbmdlX3R4bi5jb21wbGV0ZSIsCisKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9ycS5zdWNjZXNzOiBbb2JqZWN0IElE
QkRhdGFiYXNlXSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGxl
dGVfY291bnQuc3VjY2VzczogMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNvbXBsZXRlMl9nZXQuc3VjY2VzczogMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiKQorICAgICAgICAgICAgdGhp
cy5kb25lKCkKKyAgICAgICAgfSkKKyAgICB9CisKKworICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsK
KyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50YXJn
ZXQgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsg
IjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpCisgICAgICAgICAgICBlbHNlIGlmKGUgJiYgZS50
YXJnZXQgJiYgZS50YXJnZXQucmVzdWx0ICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAg
ZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cpCisgICAgICAgIH07CisgICAgfQor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tbGlm
ZXRpbWUtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2U5ZjZjYjExMGI2ZDg2MGVlZWEwMmJiNTY1ODBkNzdi
MDQ1ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQmxvY2tlZCBldmVudCAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1saWZldGltZS1i
bG9ja2VkLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDRiOWFiMGI4NzcyNmM2OTA5NWFiODFhY2RmODc5ZDQx
Y2ZkYTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC5odG0K
QEAgLTAsMCArMSwxMDggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPkJsb2NrZWQgZXZlbnQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxzY3JpcHQ+CisK
KyAgICB2YXIgZGIsIGRiX2dvdF92ZXJzaW9uY2hhbmdlLCBkYjIsCisgICAgICAgIGV2ZW50cyA9
IFtdLAorICAgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEw
MDAwfSk7CisKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBvcGVucnEgPSBp
bmRleGVkREIub3BlbignZGInLCAzKTsKKworICAgICAgICAvLyAxCisgICAgICAgIG9wZW5ycS5v
bnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBl
dmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsKKyAgICAgICAgICAgIGUudGFyZ2V0LnJlc3Vs
dC5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8g
MgorICAgICAgICBvcGVucnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGV2ZW50cy5w
dXNoKCJvcGVuLiIgKyBlLnR5cGUpOworCisgICAgICAgICAgICAvLyAzCisgICAgICAgICAgICBk
Yi5vbnZlcnNpb25jaGFuZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICAgICAgZXZlbnRzLnB1c2goImRiLiIgKyBlLnR5cGUpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm9sZFZlcnNpb24sIDMsICJvbGQgdmVyc2lvbiIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9uLCA0LCAibmV3IHZlcnNpb24iKTsKKyAgICAg
ICAgICAgICAgICAvLyBEbyBub3QgY2xvc2UgZGIgaGVyZSAoYXMgd2Ugc2hvdWxkKQorICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIub25lcnJv
ciA9IGZhaWwodCwgImRiLmVycm9yIik7CisgICAgICAgICAgICBkYi5hYm9ydCA9IGZhaWwodCwg
ImRiLmFib3J0Iik7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1bmMoT3BlblNl
Y29uZCksIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9w
ZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJvciIpOworICAgICAgICBvcGVucnEub25i
bG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7CisKKyAgICB9KTsKKworICAgIGZ1bmN0
aW9uIE9wZW5TZWNvbmQgKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIsIHVuZGVmaW5l
ZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2Vd
Iik7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcywgWyAi
c3RvcmUiIF0pOworCisgICAgICAgIHZhciBvcGVucnEyID0gaW5kZXhlZERCLm9wZW4oJ2RiJywg
NCk7CisKKyAgICAgICAgLy8gNAorICAgICAgICBvcGVucnEyLm9uYmxvY2tlZCA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50
eXBlKTsKKyAgICAgICAgICAgIC8vIFdlJ3JlIGNsb3NpbmcgY29ubmVjdGlvbiBmcm9tIHRoZSBv
dGhlciBvcGVuKCkKKyAgICAgICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIC8vIDUKKyAgICAgICAgb3BlbnJxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAg
ICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkYjIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisKKyAgICAgICAg
ICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIyLm9udmVyc2lvbmNoYW5nZSA9IGZhaWwodCwg
ImRiMi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICBkYjIub25lcnJvciA9IGZhaWwodCwg
ImRiMi5lcnJvciIpOworICAgICAgICAgICAgZGIyLmFib3J0ID0gZmFpbCh0LCAiZGIyLmFib3J0
Iik7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIDYKKyAgICAgICAgb3BlbnJxMi5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmVudHMucHVzaCgi
b3BlbjIuIiArIGUudHlwZSk7CisKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZl
bnRzLAorICAgICAgICAgICAgICAgIFsgIm9wZW4udXBncmFkZW5lZWRlZCIsCisgICAgICAgICAg
ICAgICAgICAib3Blbi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICJkYi52ZXJzaW9uY2hh
bmdlIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi5ibG9ja2VkIiwKKyAgICAgICAgICAgICAg
ICAgICJvcGVuMi51cGdyYWRlbmVlZGVkIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi5zdWNj
ZXNzIiwKKyAgICAgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJy
b3JzCisgICAgICAgIG9wZW5ycTIub25lcnJvciA9IGZhaWwodCwgIm9wZW4yLmVycm9yIik7Cisg
ICAgfQorCisKKyAgICAvLyBDbGVhbnVwCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVu
Y3Rpb24odGVzdHMpIHsKKyAgICAgICAgaWYgKGRiMikgZGIyLmNsb3NlKCk7CisgICAgICAgIGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGInKTsKKyAgICB9KQorCis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLWxpZmV0aW1l
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWIzZmRkNDU3ZjY0N2QwYmY5ODhjNzc5MmI2MWUw
YmRlODVjNDY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3QgZXZlbnRzIG9wZW5pbmcgYSBzZWNvbmQg
ZGF0YWJhc2Ugd2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVuIGFscmVhZHkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L3RyYW5zYWN0aW9uLWxpZmV0aW1lLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLWxpZmV0aW1lLmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yODJiZjZkZTkyNGJlMDQyNzBhMjUxOTlhMGM4YzcwOTg1OGVkYjM0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvdHJhbnNhY3Rpb24tbGlmZXRpbWUuaHRtCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0aXRsZT5UZXN0IGV2ZW50cyBvcGVuaW5nIGEgc2Vjb25kIGRhdGFiYXNlIHdo
ZW4gb25lIGNvbm5lY3Rpb24gaXMgb3BlbiBhbHJlYWR5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLCBkYl9nb3RfdmVy
c2lvbmNoYW5nZSwgZGIyLAorICAgICAgICBldmVudHMgPSBbXSwKKyAgICAgICAgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pOworCisgICAgdC5zdGVwKGZ1
bmN0aW9uKCkgeworICAgICAgICB2YXIgb3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7
CisKKyAgICAgICAgLy8gMQorICAgICAgICBvcGVucnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUu
dHlwZSk7CisgICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0
b3JlJyk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIDIKKyAgICAgICAgb3BlbnJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgICAgICBldmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsK
KworICAgICAgICAgICAgLy8gMworICAgICAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJkYi4i
ICsgZS50eXBlKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9u
LCAzLCAib2xkIHZlcnNpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3
VmVyc2lvbiwgNCwgIm5ldyB2ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgZGIuY2xvc2UoKTsK
KyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgICAgIGRi
Lm9uZXJyb3IgPSBmYWlsKHQsICJkYi5lcnJvciIpOworICAgICAgICAgICAgZGIuYWJvcnQgPSBm
YWlsKHQsICJkYi5hYm9ydCIpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHQuc3RlcF9mdW5j
KE9wZW5TZWNvbmQpLCAxMCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEVycm9ycworICAg
ICAgICBvcGVucnEub25lcnJvciA9IGZhaWwodCwgIm9wZW4uZXJyb3IiKTsKKyAgICAgICAgb3Bl
bnJxLm9uYmxvY2tlZCA9IGZhaWwodCwgIm9wZW4uYmxvY2tlZCIpOworCisgICAgfSk7CisKKyAg
ICBmdW5jdGlvbiBPcGVuU2Vjb25kIChlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIyLCB1
bmRlZmluZWQpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiICsgIiIsICJbb2JqZWN0IElEQkRh
dGFiYXNlXSIpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFt
ZXMsIFsgInN0b3JlIiBdKTsKKworICAgICAgICB2YXIgb3BlbnJxMiA9IGluZGV4ZWREQi5vcGVu
KCdkYicsIDQpOworCisgICAgICAgIC8vIDQKKyAgICAgICAgb3BlbnJxMi5vbnVwZ3JhZGVuZWVk
ZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsK
KworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJh
c2VdIik7CisKKyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIyLm9udmVyc2lv
bmNoYW5nZSA9IGZhaWwodCwgImRiMi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICBkYjIu
b25lcnJvciA9IGZhaWwodCwgImRiMi5lcnJvciIpOworICAgICAgICAgICAgZGIyLmFib3J0ID0g
ZmFpbCh0LCAiZGIyLmFib3J0Iik7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIDUKKyAgICAg
ICAgb3BlbnJxMi5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICBldmVudHMucHVzaCgib3BlbjIuIiArIGUudHlwZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoZXZlbnRzLAorICAgICAgICAgICAgICAgIFsgIm9wZW4udXBncmFkZW5l
ZWRlZCIsCisgICAgICAgICAgICAgICAgICAib3Blbi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAg
ICAgICJkYi52ZXJzaW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi51cGdyYWRl
bmVlZGVkIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi5zdWNjZXNzIiwKKyAgICAgICAgICAg
ICAgICBdKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7
IH0sIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9wZW5y
cTIub25lcnJvciA9IGZhaWwodCwgIm9wZW4yLmVycm9yIik7CisgICAgICAgIG9wZW5ycTIub25i
bG9ja2VkID0gZmFpbCh0LCAib3BlbjIuYmxvY2tlZCIpOworICAgIH0KKworCisgICAgLy8gQ2xl
YW51cAorICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzKSB7CisgICAg
ICAgIGlmIChkYjIpIGRiMi5jbG9zZSgpOworICAgICAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoJ2RiJyk7CisgICAgfSkKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZXF1
ZXN0cXVldWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZmY0NmViZjhkMDJmYWNlMDI4YzdhMzJlZGE3NzhlNjE5OTBlMDIxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBUcmFuc2FjdGlvbnMgaGF2ZSBhIHJlcXVlc3QgcXVldWUgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZXF1ZXN0
cXVldWUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YTFjZmMwNzNkM2ExM2UyYjljOTRiZWE0MTk1MjE0MGU3
MDExZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUuaHRtCkBAIC0w
LDAgKzEsODkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5UcmFuc2FjdGlvbnMgaGF2ZSBhIHJlcXVlc3QgcXVldWU8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhl
IE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCit2YXIgZGIsIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91
dDogMTAwMDB9KSwKKyAgICBrZXlzID0geyB0eG46IFtdLCB0eG4yOiBbXSB9LAorICAgIG9wZW5f
cnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICB2YXIgaSwgb3M7CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICBmb3Ig
KGkgPSAxOyBpIDwgNjsgaSsrKQorICAgIHsKKyAgICAgICAgb3MgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgib3MiICsgaSwgeyBhdXRvSW5jcmVtZW50OiB0cnVlLCBrZXlQYXRoOiAiayIgfSk7Cisg
ICAgICAgIG9zLmFkZCh7IG9zOiAib3MiICsgaSB9KTsKKyAgICAgICAgb3MucHV0KHsgb3M6ICJv
cyIgKyBpLCBrOiBpfSk7CisgICAgICAgIG9zLmFkZCh7IG9zOiAib3MiICsgaSB9KTsKKyAgICB9
Cit9CisKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIHZhciB0eG4gPSBk
Yi50cmFuc2FjdGlvbihbIm9zMiIsICJvczEiLCAib3MzIiwgIm9zNSJdKQorICAgIHR4bi5vYmpl
Y3RTdG9yZSgib3MxIikub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAgICB0
eG4ub2JqZWN0U3RvcmUoIm9zMyIpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIp
CisgICAgdHhuLm9iamVjdFN0b3JlKCJvczEiKS5nZXQoMikub25zdWNjZXNzID0gcmVnKCJ0eG4i
KQorICAgIHR4bi5vYmplY3RTdG9yZSgib3MyIikuZ2V0KDMpLm9uc3VjY2VzcyA9IHJlZygidHhu
IikKKworICAgIHZhciB0eG4yID0gZGIudHJhbnNhY3Rpb24oWyJvczQiLCAib3MzIiwgIm9zMSIs
ICJvczUiXSkKKyAgICB2YXIgb3M0ID0gdHhuMi5vYmplY3RTdG9yZSgib3M0IikKKworICAgIGZv
ciAodmFyIGk9MDsgaSA8IDM7IGkrKykgeworICAgICAgICBvczQub3BlbkN1cnNvcigpLm9uc3Vj
Y2VzcyA9IHJlZygidHhuMiIpCisgICAgICAgIG9zNC5nZXQoNSkub25zdWNjZXNzID0gcmVnKCJ0
eG4yIikKKyAgICAgICAgb3M0LmdldCg0KS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQorICAgICAg
ICB0eG4ub2JqZWN0U3RvcmUoIm9zMiIpLmdldCgxKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCisg
ICAgICAgIHR4bjIub2JqZWN0U3RvcmUoIm9zMyIpLmdldCgxKS5vbnN1Y2Nlc3MgPSByZWcoInR4
bjIiKQorICAgIH0KKworICAgIHR4bjIub2JqZWN0U3RvcmUoIm9zMSIpLmdldCgyKS5vbnN1Y2Nl
c3MgPSByZWcoInR4bjIiKQorICAgIHR4bi5vYmplY3RTdG9yZSgib3MxIikub3BlbkN1cnNvcihu
dWxsLCAicHJldiIpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAgICBvczQub3BlbkN1cnNvcihu
dWxsLCAicHJldiIpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCisKKyAgICB0eG4ub25jb21wbGV0
ZSA9IHQuc3RlcF9mdW5jKGZpbmlzaCk7CisgICAgdHhuMi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1
bmMoZmluaXNoKTsKK30KKworCitmdW5jdGlvbiByZWcobikgeworICAgIHJldHVybiB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbiAoZSkgeworICAgICAgICB2YXIgdiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgaWYgKHYudmFsdWUpIHYgPSB2LnZhbHVlOworICAgICAgICBrZXlzW25dLnB1c2godi5v
cyArICI6ICIgKyB2LmspOworICAgIH0pOworfQorCit2YXIgZmluaXNoX3RvX2dvID0gMjsKK2Z1
bmN0aW9uIGZpbmlzaCgpIHsKKyAgICBpZiAoLS1maW5pc2hfdG9fZ28pCisgICAgICAgIHJldHVy
bjsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoa2V5c1sndHhuJ10sIFsKKyAgICAgICAgIm9z
MTogMSIsCisgICAgICAgICJvczM6IDEiLAorICAgICAgICAib3MxOiAyIiwKKyAgICAgICAgIm9z
MjogMyIsCisgICAgICAgICJvczI6IDEiLCAib3MyOiAxIiwgIm9zMjogMSIsCisgICAgICAgICJv
czE6IDIiLAorICAgIF0sICd0cmFuc2FjdGlvbiBrZXlzJyk7CisKKyAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGtleXNbJ3R4bjInXSwgWworICAgICAgICAib3M0OiAxIiwgIm9zNDogNSIsICJvczQ6
IDQiLCAib3MzOiAxIiwKKyAgICAgICAgIm9zNDogMSIsICJvczQ6IDUiLCAib3M0OiA0IiwgIm9z
MzogMSIsCisgICAgICAgICJvczQ6IDEiLCAib3M0OiA1IiwgIm9zNDogNCIsICJvczM6IDEiLAor
ICAgICAgICAib3MxOiAyIiwKKyAgICAgICAgIm9zNDogNSIsCisgICAgXSwgJ3RyYW5zYWN0aW9u
IDIga2V5cycpOworCisgICAgdC5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNlZWQzNzQxMDJjMWU3MTc1YTY0ZWI3NmVjMGJhNmZjMjUxZTJkYmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIENhcHR1cmUgYW5kIGJ1YmJsZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rp
b25fYnViYmxlLWFuZC1jYXB0dXJlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWRkOTg1OWY1NmQ1MmM1YzNkOWRjYjBkNzEyMmUyYzVhMzg5OGUyYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS5odG0KQEAgLTAs
MCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PkNhcHR1cmUgYW5kIGJ1YmJsZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFy
IGV2ZW50cyA9IFtdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgdmFyIHJxMSA9IHN0
b3JlLmFkZCgiIiwgMSk7CisgICAgICAgIHZhciBycTIgPSBzdG9yZS5hZGQoIiIsIDEpOworCisg
ICAgICAgIGRiLm9uZXJyb3IgPSB1bmRlZmluZWQ7IC8vIFdlIHdpbGwgcnVuIGRiLmVycm9yLCBi
dXQgZG9uJ3QgbGV0IHRoYXQgZmFpbCB0aGUgdGVzdAorCisgICAgICAgIGxvZ19ldmVudHMoJ2Ri
JywgZGIsICdzdWNjZXNzJyk7CisgICAgICAgIGxvZ19ldmVudHMoJ2RiJywgZGIsICdlcnJvcicp
OworCisgICAgICAgIGxvZ19ldmVudHMoJ3R4bicsIHR4biwgJ3N1Y2Nlc3MnKTsKKyAgICAgICAg
bG9nX2V2ZW50cygndHhuJywgdHhuLCAnZXJyb3InKTsKKworICAgICAgICBsb2dfZXZlbnRzKCdy
cTEnLCBycTEsICdzdWNjZXNzJyk7CisgICAgICAgIGxvZ19ldmVudHMoJ3JxMScsIHJxMSwgJ2Vy
cm9yJyk7CisKKyAgICAgICAgbG9nX2V2ZW50cygncnEyJywgcnEyLCAnc3VjY2VzcycpOworICAg
ICAgICBsb2dfZXZlbnRzKCdycTInLCBycTIsICdlcnJvcicpOworCisgICAgICAgIC8vIERvbid0
IGxldCBpdCBnZXQgdG8gYWJvcnQKKyAgICAgICAgZGIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3In
LCBmdW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1bHQoKTsgfSwgZmFsc2UpOworICAgIH0KKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5f
cnEuc3VjY2VzcyIpKGUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBkYi5zdWNjZXNz
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgdHhuLnN1
Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBy
cTEuc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWJi
bGUgIHJxMS5zdWNjZXNzIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY2FwdHVyZSBkYi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgdHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBycTIuZXJy
b3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJidWJibGUgIHJxMi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgdHhuLmVycm9yOiBDb25zdHJhaW50RXJy
b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnViYmxlICBkYi5l
cnJvcjogQ29uc3RyYWludEVycm9yIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAib3Blbl9ycS5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiKTsKKyAgICAg
ICAgdGhpcy5kb25lKCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBsb2dfZXZlbnRzKHR5cGUs
IG9iaiwgZXZ0KSB7CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2dCwgbG9nKCdjYXB0
dXJlICcgKyB0eXBlICsgJy4nICsgZXZ0KSwgdHJ1ZSk7CisgICAgICAgIG9iai5hZGRFdmVudExp
c3RlbmVyKGV2dCwgbG9nKCdidWJibGUgICcgKyB0eXBlICsgJy4nICsgZXZ0KSwgZmFsc2UpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCisg
ICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5h
bWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7
CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvdmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
MTU1MmNiMmZkMDlhMzFhMjk0ZmU1YjdmNGQ3YTI1ZjJjNmNlYTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi92
YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgVmFsdWVzIC0gRGF0ZSAK
K1BBU1MgVmFsdWVzIC0gQXJyYXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3ZhbHVlLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3ZhbHVlLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMGU4M2I2ODBjNjAxYzQ3YmY2MWI1NDZjYTdiZjg1OWZlOGI2ZDNmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvdmFsdWUuaHRtCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlZhbHVlczwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIHZhbHVlKHZhbHVlLCBfaW5zdGFuY2VvZikgeworICAgIHZhciB0
ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgX2luc3RhbmNlb2YubmFtZSk7
CisgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0
YW5jZW9mIF9pbnN0YW5jZW9mLCAiVEVTVCBFUlJPUiwgaW5zdGFuY2VvZiIpOworICAgIH0pOwor
CisgICAgY3JlYXRlZGIodCkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgICAgICAgICAuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIikKKyAgICAgICAgICAgICAgICAuYWRkKHZhbHVlLCAxKTsKKworICAgICAgICBlLnRhcmdl
dC5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBlLnRh
cmdldC5yZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAgICAuZ2V0KDEpCisgICAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFzc2VydF90cnVl
KGUudGFyZ2V0LnJlc3VsdCBpbnN0YW5jZW9mIF9pbnN0YW5jZW9mLCAiaW5zdGFuY2VvZiIpCisg
ICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKK30KKwordmFsdWUobmV3IERhdGUoKSwgRGF0ZSk7Cit2YWx1ZShuZXcgQXJyYXkoKSwg
QXJyYXkpOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3Zh
bHVlX3JlY3Vyc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi92YWx1ZV9yZWN1cnNpdmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU5NTdlN2VmOTdjYWM3MGY2MDQ5MjZlMTY4MjhiN2ZmMjIxYzFmNzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi92YWx1ZV9yZWN1cnNpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
CitQQVNTIFJlY3Vyc2l2ZSB2YWx1ZSAtIGFycmF5IGRpcmVjdGx5IGNvbnRhaW5zIHNlbGYgCitQ
QVNTIFJlY3Vyc2l2ZSB2YWx1ZSAtIGFycmF5IGluZGlyZWN0bHkgY29udGFpbnMgc2VsZiAKK1BB
U1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkgbWVtYmVyIGNvbnRhaW5zIHNlbGYgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3ZhbHVlX3JlY3Vyc2l2ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi92YWx1ZV9yZWN1cnNpdmUuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0
NDZhZWEyYjRjYjkwN2Y5YzU1MGY4MzI2NjQ5OTg1ODBiY2EyM2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi92
YWx1ZV9yZWN1cnNpdmUuaHRtCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlJlY3Vyc2l2ZSB2YWx1ZTwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHJlY3Vyc2l2ZV92YWx1ZShkZXNjLCB2YWx1ZSkg
eworICAgIHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRl
c2MpOworCisgICAgY3JlYXRlZGIodCkub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgic3RvcmUiKQorICAgICAgICAgIC5hZGQodmFsdWUsIDEpOworCisgICAgICAgIGUudGFyZ2V0
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiLnRy
YW5zYWN0aW9uKCdzdG9yZScpCisgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgnc3RvcmUnKQor
ICAgICAgICAgICAgICAuZ2V0KDEpCisgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgdHJ5Cisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB2YXIgZnJlc2hfdmFsdWUgPSBK
U09OLnN0cmluZ2lmeSh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNo
ZWQoIlRlc3RjYXNlIGlzIHdyaXR0ZW4gd3JvbmdseSwgbXVzdCBzdXBwbHkgc29tZXRoaW5nIHJl
Y3Vyc2l2ZSAodGhhdCBKU09OIHdvbid0IHN0cmluZ2lmeSkuIik7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGNhdGNoIChlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGUubmFtZSA9PSAnVHlwZUVycm9yJykKKyAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZS50YXJnZXQu
cmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJF
eHBlY3RlZCBhIG5vbi1KU09OLXNlcmlhbGl6YWJsZSB2YWx1ZSBiYWNrLCBkaWRuJ3QgZ2V0IHRo
YXQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICBjYXRjaCAoZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfTsKK30K
KwordmFyIHJlY3Vyc2l2ZSA9IFtdOworcmVjdXJzaXZlLnB1c2gocmVjdXJzaXZlKTsKK3JlY3Vy
c2l2ZV92YWx1ZSgnYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZSk7CisK
K3ZhciByZWN1cnNpdmUyID0gW107CityZWN1cnNpdmUyLnB1c2goW3JlY3Vyc2l2ZTJdKTsKK3Jl
Y3Vyc2l2ZV92YWx1ZSgnYXJyYXkgaW5kaXJlY3RseSBjb250YWlucyBzZWxmJywgcmVjdXJzaXZl
Mik7CisKK3ZhciByZWN1cnNpdmUzID0gW3JlY3Vyc2l2ZV07CityZWN1cnNpdmVfdmFsdWUoJ2Fy
cmF5IG1lbWJlciBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlMyk7CisKKzwvc2NyaXB0PgorCis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvd3JpdGVyLXN0YXJ2YXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NjEwMTE4MzAw
Y2NmNGZlMjU2NTgwMWEzNDBkOWRlNjBjYzNhNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi93cml0ZXItc3Rh
cnZhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgV3JpdGVyIHN0YXJ2
YXRpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL3dyaXRlci1zdGFydmF0aW9uLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3dyaXRlci1zdGFydmF0aW9u
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGE2ZGNiNzBkNGY5NDhhYzY1MDI0ZjU3ODYwZTY2NzhkODEzODlj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24uaHRtCkBAIC0wLDAgKzEsMTA1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+V3JpdGVyIHN0
YXJ2YXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9A
b3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIG5hbWU9dGltZW91
dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHJlYWRfcmVxdWVzdF9jb3VudCA9IDAsIHJlYWRf
c3VjY2Vzc19jb3VudCA9IDA7CisgICAgdmFyIHdyaXRlX3JlcXVlc3RfY291bnQgPSAwLCB3cml0
ZV9zdWNjZXNzX2NvdW50ID0gMDsKKyAgICB2YXIgUlFfQ09VTlQgPSAyNTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCh1bmRlZmluZWQsIHt0aW1lb3V0OiAyMDAwMH0p
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzIikK
KyAgICAgICAgICAuYWRkKCIxIiwgMSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBpID0gMCwgY29udGludWVfcmVhZGluZyA9IHRy
dWU7CisKKyAgICAgICAgLyogUHJlLWZpbGwgc29tZSByZWFkIHJlcXVlc3RzICovCisgICAgICAg
IGZvciAoaSA9IDA7IGkgPCBSUV9DT1VOVDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZWFkX3JlcXVlc3RfY291bnQrKzsKKworICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiKQor
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInMiKQorICAgICAgICAgICAgICAuZ2V0KDEpCisg
ICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHJlYWRfc3VjY2Vzc19jb3VudCsrOworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUsICJyZWFkb25seSIp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5zdGVwKGxv
b3ApOworCisgICAgICAgIGZ1bmN0aW9uIGxvb3AoKSB7CisgICAgICAgICAgICByZWFkX3JlcXVl
c3RfY291bnQrKzsKKworICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiKQorICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInMiKQorICAgICAgICAgICAgICAuZ2V0KDEpCisgICAgICAgICAg
ICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHJlYWRfc3VjY2Vzc19jb3VudCsrOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSwgInJlYWRvbmx5Iik7CisK
KyAgICAgICAgICAgICAgICBpZiAocmVhZF9zdWNjZXNzX2NvdW50ID49IFJRX0NPVU5UICYmIHdy
aXRlX3JlcXVlc3RfY291bnQgPT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHdyaXRlX3JlcXVlc3RfY291bnQrKzsKKworICAgICAgICAgICAgICAgICAgICBkYi50
cmFuc2FjdGlvbigicyIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgicyIpCisgICAgICAgICAgICAgICAgICAgICAgLmFkZCgid3JpdHRlbiIsIHJlYWRf
cmVxdWVzdF9jb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgd3JpdGVfc3VjY2Vzc19jb3VudCsrOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC50cmFuc2FjdGlvbi5tb2RlLCAicmVhZHdyaXRlIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwg
cmVhZF9zdWNjZXNzX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndyaXRlIGNiIGNhbWUgYmVmb3JlIGxhdGVyIHJlYWQgY2IncyIpCisgICAgICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgICAgIC8qIFJlYWRzIGRvbmUgYWZ0ZXIgdGhl
IHdyaXRlICovCisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA1OyBpKyspCisg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfcmVxdWVz
dF9jb3VudCsrOworCisgICAgICAgICAgICAgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigicyIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgicyIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zdWNjZXNzX2NvdW50Kys7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAocmVhZF9zdWNj
ZXNzX2NvdW50IDwgUlFfQ09VTlQgKyA1KQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodGhp
cy5zdGVwX2Z1bmMobG9vcCksIHdyaXRlX3JlcXVlc3RfY291bnQgPyAxMDAwIDogMTAwKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIG1lcmVseSBhICJuaWNl
IiBoYWNrIHRvIHJ1biBmaW5pc2ggYWZ0ZXIgdGhlIGxhc3QgcmVxdWVzdCBpcyBkb25lCisgICAg
ICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oInMiKQorICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJzIikKKyAgICAgICAgICAgICAgICAgIC5jb3VudCgpCisgICAgICAgICAgICAgICAg
ICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnN0ZXBfZnVuYyhmaW5pc2gp
LCAxMDApOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisKK2Z1bmN0
aW9uIGZpbmlzaCgpIHsKKyAgICBhc3NlcnRfZXF1YWxzKHJlYWRfcmVxdWVzdF9jb3VudCwgcmVh
ZF9zdWNjZXNzX2NvdW50LCAicmVhZCBjb3VudHMiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHdyaXRl
X3JlcXVlc3RfY291bnQsIHdyaXRlX3N1Y2Nlc3NfY291bnQsICJ3cml0ZSBjb3VudHMiKTsKKyAg
ICB0aGlzLmRvbmUoKTsKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGY5ZGI2YzUxM2NmMGJj
YzRhNjcyN2Y0MDdlNmNmMGYwMjU0MGQwNC4uZTlmYTI0ZDZmM2JiZWVjYjMzMGZjZTBhZjU4NTY4
NjliNDYyNmY2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTI3OTMsMTEgKzI3OTMsMTEgQEAgd2Via2l0Lm9yZy9iLzE0ODQ3MCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWUKIHdlYmtpdC5v
cmcvYi8xNDg0NzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9pbnRlcmZhY2VzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDg0NzAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRv
LWNsYXNzZXMvZGlzYWJsZWQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0ODQ3MCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Nlcy9mb2N1cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTQ4NDcw
IGltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UuaHRtIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTQ4NDcwIGltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNv
bnRpbnVlLmh0bSBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE0ODQ3MCBpbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXguaHRtIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMTQ4NDcwIGltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Mi5odG0g
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNDg0NzAgaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXRLZXkyLmh0bSBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzE0ODQ3MCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItYWR2YW5jZS5o
dG0gWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xNDg0NzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bSBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzE0ODQ3MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4Lmh0bSBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzE0ODQ3MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJp
bmRleF9nZXQyLmh0bSBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzE0ODQ3MCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9nZXRLZXkyLmh0bSBbIEZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0ODQ3MCBzY3JvbGxiYXJzL3Njcm9sbGJhci1kcmFnLXRo
dW1iLXdpdGgtbGFyZ2UtY29udGVudC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQ4
NDcwIHN2Zy90ZXh0L2ZvcmVpZ25PYmplY3QtcmVwYWludC54bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xNDg0NzAgc3ZnL3RleHQvc2VsZWN0LXRleHQtc3ZnZm9udC5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRiZmY5
NGVhYWIzYjM3Y2M3MmFmODNhNzA3NTZkZWI4MWVlMTA1ZjQuLmY4MTdjODZhNmQ5N2JlYWNmYTc2
MzdlZjFkYTk2NWFiMTkxYWJkNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xNTM3LDcgKzE1MzcsNyBAQCB3ZWJraXQub3JnL2IvMTQ1MjYwIG1lZGlh
L2F1ZGlvLXBsYXliYWNrLXJlc3RyaWN0aW9uLXBsYXkuaHRtbCAgWyBUaW1lb3V0IFBhc3MgXQog
d2Via2l0Lm9yZy9iLzE0NjczMSBmYXN0L2V2ZW50cy90b3VjaC90YXAtaGlnaGxpZ2h0LWNvbG9y
Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNDY3MzEgZmFzdC9ldmVudHMvdG91Y2gv
dG91Y2gtc2NhbGVkLXNjcm9sbGVkLmh0bWwgWyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzE1
MzA2MSBbIFJlbGVhc2UgXSBpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50
cnktYmlnLmh0bSBbIFRpbWVvdXQgXQord2Via2l0Lm9yZy9iLzE1MzA2MSBbIFJlbGVhc2UgXSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1tdWx0aWVu
dHJ5LWJpZy5odG0gWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE1MzQ2OCBpbnNwZWN0b3Iv
ZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sIFsgVGltZW91dCBdCiAKQEAgLTI1OTIsMTEg
KzI1OTIsMTEgQEAgd2Via2l0Lm9yZy9iLzE1MjY0MyBzdG9yYWdlL2luZGV4ZWRkYi91bnByZWZp
eC13b3JrZXJzLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTI2NDMgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi8xNTI2NDMgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d29ya2VyLWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCiAKLXdlYmtpdC5vcmcvYi8xNTI2NDMgaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS5odG0gWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8xNTI2NDMgaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGlu
dWUuaHRtIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTUyNjQzIGltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC5odG0gWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8xNTI2NDMgaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLmh0bSBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzE1MjY0MyBpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTIuaHRtIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTUyNjQzIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1hZHZhbmNlLmh0bSBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzE1MjY0MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3ItY29udGludWUuaHRtIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvMTUyNjQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXguaHRtIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
MTUyNjQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4
X2dldDIuaHRtIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTUyNjQzIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2dldEtleTIuaHRtIFsgRmFpbHVy
ZSBdCiAKIHdlYmtpdC5vcmcvYi8xNTI2NDMgc3RvcmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTI2NDMgc3RvcmFnZS9pbmRleGVk
ZGIvY29ubmVjdGlvbi1sZWFrLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI3
ZjZkNDFkYzBjODJhOGIxZTlhYjdjOGI3YjMyZWE0ZTI2ODVkNTkuLjFhNzY2ODY2ZGY1MTBiZWIy
ZmM5YzY0MmNhOTI4YmY3YmJmOWJjYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAwMiw3ICsxMDAy
LDggQEAgYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCiAjIEluZGV4ZWREQiBpcyBub3Qgc3VwcG9ydGVkIG9uIGlPUyBXSzEu
CiBzdG9yYWdlL2luZGV4ZWRkYgotaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYgoraW1wb3J0ZWQvdzNj
L0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQgogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxl
Lmh0bWwKIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCiBmYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNGExYjdhNTU0ZGVkNmI0YzY5MDMyNzkxODc4
YjJjNzYxYzA0NmMwMC4uNGY3ODA0NTNkN2E0YjMxMDEyYTkxZjk2YjlkZTQ3NmIxOGM5MjM5NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
Mjk4LDcgKzI5OCw3IEBAIHdlYmtpdC5vcmcvYi8xNTUwNTAgc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBbIFNrCiAKIHdlYmtpdC5vcmcvYi8x
NTUxMzggWyBZb3NlbWl0ZSBdIGluc3BlY3Rvci9jb25zb2xlL2FkZEluc3BlY3RlZE5vZGUuaHRt
bCBbIFBhc3MgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xNTQ2MDYgWyBSZWxlYXNlIFlvc2Vt
aXRlIF0gaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1h
c3luYy5odG0gWyBQYXNzIFRpbWVvdXQgXQord2Via2l0Lm9yZy9iLzE1NDYwNiBbIFJlbGVhc2Ug
WW9zZW1pdGUgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy5odG0gWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJr
aXQub3JnL2IvMTU1MTUxIFsgRGVidWcgRWxDYXBpdGFuIF0gbWVkaWEvdHJhY2svdHJhY2stY3Vl
cy1wYXVzZS1vbi1leGl0Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY2ODEyYTg2OGI5MTQ2NDI0N2MwYTNlNzZj
NTdjNmI3NTk5MTQ1YWMuLjJhZTEyMjgyMGE0ZGM5YTYyNzk4NWVlNjU2MzVlZjMwNzE1YjhlMTMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNTEsNyAr
MjUxLDggQEAgZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItcmVzdG9yZWQtYW5kLXRoZW4tbG9ja2Vk
Lmh0bWwgWyBTa2lwIF0KIAogIyBUT0RPIEluZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQuCiBz
dG9yYWdlL2luZGV4ZWRkYi8gWyBTa2lwIF0KLWltcG9ydGVkL3czYy9pbmRleGVkZGIgWyBTa2lw
IF0KK2ltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZyBbIFNraXAgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIgWyBTa2lwIF0KIGpzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtaWRiLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwgWyBTa2lwIF0K
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sIFsgU2tpcCBd
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>